(Register Design) A FIFO (first in, first out) queue is a special- purpose register file n words deep and m bits wide that operates as follows (see the block diagram in Figure 1(a)). When a PUSHJDATA control input is asserted, new data at the inputs at the right is read into the end of the queue. When a POP_JDATA control input is asserted, existing data at the head of the queue becomes available at the outputs at the left. Since the FIFO has finite capacity, two status outputs indicate whether the FIFO is empty or full. PUSHJDATA is inhibited in a full FIFO, while POPJDATA is inhibited in an empty FIFO. On reset, the FIFO should be set to empty.
A “flow-through” FIFO is the simplest form of this kind of device. The FIFO must fill up with data before any data can be removed. Furthermore, the FIFO must be emptied completely before new data can be placed in it. Using only shift-register components and combinational logic, design a flow-through 4-word by 4-bit FIFO. Consider carefully how to represent the empty/full status of the FIFO. (Hint: Consider adding an (m + 1)st bit to the FIFO to indicate whether the FIFO word is valid.)
Figure 1
We need at least 10 more requests to produce the solution.
0 / 10 have requested this problem solution
The more requests, the faster the answer.