A FIFO stack is implemented using a DPRAM. One of the ports of the DPRAM is
used to add elements to the FIFO stack, and the other port is used to
remove elements from the FIFO stack. The ports operate in separate clock
domains. A synchronization circuit coordinates the read and write
operations across the clock domains.