Problem

(Register Design) A FIFO (first in, first out) queue is a special- purpose register file n...

(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

Step-by-Step Solution

Request Professional Solution

Request Solution!

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.

Request! (Login Required)


All students who have requested the solution will be notified once they are available.
Add your Solution
Textbook Solutions and Answers Search
Solutions For Problems in Chapter 6