Design of RTL Synthesizable 32-Bit FIFO Memory

DOI : 10.17577/IJERTV5IS110348

Download Full-Text PDF Cite this Publication

Text Only Version

Design of RTL Synthesizable 32-Bit FIFO Memory

Shilpi Maurya

Noida institute of Engineering and Technology,Greater Noida, India Student of Masters of Technology VLSI design, Final Year

Abstract: First-In First-Out (FIFO) memory structures have been the dominant mechanism to control the flow of data between source and destination. The function of FIFO runs around memory element and control circuitry. There are many methods to design FIFO but our focus is on designing single bit memory cell there by 8×32 buffer to be used in synchronous or asynchronous FIFO. Conventional FIFOs use dual port RAM as memory element for FIFO. This work presents a unique idea for storing the data suitable for FIFO to function correctly resulting in increased performance. The novelty of the architecture includes Extra hardware signal Almost Full signal is asserted to avoid overflow (Credit based Information). We have implemented and synthesized Synchronous FIFO in register-transfer-level (RTL) using Verilog along with few sequential latches and digital logic gates and simulation is carried out at the gate-level using Xilinx-ISE 13.3 tool to deliver delay, power and area estimates for the same.

Keyword: Fifo, Synchronous, Rtl.


    FIFO (first-in, first-out) is a mechanism to handle program work requests from queues or stacks so that the oldest request is handled first. In hardware it is either an array of flops or Read/Write memory where data is written to memory in one clock domain and on request data is read from memory in another clock domain following same order as written. FIFO is said to be SYNCHRONOUS if read and write operations are performed using same clock signal and FIFO is said to be ASYNCHRONOUS if read and write operations are performed using different clock signals The clock domain that supplies data to FIFO is often called as WRITE CONTROL LOGIC and the clock domain that reads data from the FIFO is often called as READ CONTROL LOGIC. FIFOs are used in designs to transfer data words from one clock domain to another or to control the flow of data between source and destination when the input data can not be forwarded right away to the output port. As shown in Fig 1 synchronous FIFO has a single clock port for both data-read and data-write operations. Both write and read events take place at the rising edge of clocks.

    Fig 1. Block diagram of Synchronous FIFO

    A Synchronous FIFO has a single clock port for both data- read and data-write operations. Both write and read events take place at the rising edge of clocks. Data can be

    read out of the FIFO via the module's data-output port in the order in which it was written by asserting read-request prior to a rising clock edge. The RESET signal clears internal control logic and the status flags. In this paper 32-bit Memory-Based synchronous FIFO is designed that could perform read and write operation at same time. After the FIFO is RESET, winc (write enable) signal and rinc (read enble) signal are set to high, wdata is the input data written to FIFO memory in seqential order at rising edge of the clock signal whenever write enable (winc) is high and FIFO is not full; and rdata is the output data read from the FIFO memory in same order as written whenever read enable (rinc) is high and FIFO is not empty; Otherwise previous data is available at the output port. FIFO wfull and FIFO rempty are status flags that represent the status of the FIFO. No data should be written in full condition and no data should be read in empty condition, as it can lead to loss of data or generation of non- relevant data. The almost Full signal will be HIGH when one location is empty to write data. The almost full and full signal will eliminate the overhead of sending credit information at every cycle. There are many methodologies to design FIFO memory like using RAM or Using register files. But the proposed FIFO memory is efficient and shows high speed and also minimizes the area. Table 1 shows different input and output signals with their description.

    Table:1 Signal description




    For FIFO



    Resets the FIFO



    Clock input to FIFO



    (32:0) 16 bit data input to the FIFO



    (32:0) 16 bit data output from the FIFO



    Write enable (write request)



    Read enable(read request)

    Almost full


    Sets when one location is left to write



    Sets when FIFO is full

    For FIFO Memory



    Address of the memory location where the data is to be written into.



    Address of the memory location where the data is to be written from.



    Write enable


    This paper presents a novel memory cell structure of for storing single bit. Single bit memory cell consist of D-type flip flop, 2:1 mux and 2- input AND gate. Multiplexer is used to close and open a feedback loop around flip-flop under control of the enable signal. This technique would save a fair amount of power dissipation.

    Fig.4 RTL diagram of 8×32 synchronous FIFO

    Write Data

    Write Enable from Decoder

    D Q Read Data


    Read Enable from



    Fig.2 1-bit Memory cell for FIFO

    When we want to write data (either 0 bit or 1 bit ) into memory then a write enable signal high will be generated though a decoder using write address provided by pointer manager. Similarly in order to read data we will generate read enable through decoder using read address given by pointer manager of FIFO controller.

    Fig.3 RTL diagram of 8×32 FIFO memory

    Fig.5 FIFO read and write operation depicting full and empty conditions

    Fig.3 shows the RTL diagram of 8×32 FIFO memory which consist of 1-bit memory cells. The depth of the FIFO is 8 while the word length is 32 bit. First of all 32 bit buffer is designed using 1 bit memory cell and then 8×32 FIFO memory is designed and this memory is used to implement synchronous FIFO (fig.4).


    We use Xilinx Spartan 3E devices to design and implement the FIFO with layout adjustments to fulfil the

    timing constraints which are mandatory for the correct operations of the circuits. Firstly, to verify the functionality of the synchronous FIFO, the gate-level simulation of the eight-stage, 32-bit is carried out as shown in Fig. 5. indicating the empty/full conditions.

    TABLE2: FPGA area utilization estimate

    Number of bonded IOBs

    Logic utilization




    Number of Slice registers




    Number of Slice LUTS




    Number of fully used LUT-FF pairs







    Number of





    Area estimation can be done from device utilization summary illustrated in table 2. Dynamic power analysis calculated with the help of Xilinx ISE tool 13.3 is illustrated with the help of fig.6. It can be observed that dynamic power of the dsesign is 4 mw when 100 MHz. Also delay of our design is 5.041ns.

    Fig.6 Dynamic power frequency relation


A synchronous FIFO design is presented in this paper. The novel memory structure presented in the design enhances the performance of the FIFO in terms of area delay and power. This structure enables the design to reduce a power consumption of 4 mw at frequency of 100MHz. The circuit components (LUTs) are utilized in the range of 5% to 66%. This circuit also reduces the delay period of 5.041ns.


  1. Clifford E. Cummings, "Simulation and Synthesis Techniques for Asynchronous FIFO Design with Asynchronous Pointer Comparisons"

    SNUG-2002, San Jose, CA

  2. Shruti Sharma Implementation of an RTL synthesizable asynchronous FIFO for conveying data by avoiding actual data movement via FIFO 6th International Conference on Computing, Communication and Networking Technologies

    (ICCCNT),Pages: 7, DOI: 10.1109/ICCCNT.2015.73952 17 2015

  3. M.A.Khan, A.Q.Ansari, n bit multiple read and write FIFO memory model for Noc, DOI: 10.1109/WICT.2011.6141440 2011pp. 1322 1327

  4. Elrabaa, M.E.S., A new FIFO design enabling fully- synchronous on-chip datacommunication network, Electronics, Communications and Photonics Conference (SIECPC), 2011 Saudi International, year: 2011, Pp: 1 6

  5. Po-Tsang Huang; Wei Hwang, Energy- efficient techniques for circuit design in network-on-

    chip platforms, Green Circuits and Systems (ICGCS), International Conference,Year: 2010, pp: 305 – 310,

  6. Fattah, M.; Manian, A.; Rahimi, A.; Mohammadi, S. A High Throughput Low Power FIFO Used for GALS No C Buffers VLSI (ISVLSI), IEEE Computer Society Annual Symposium, Year: 2010Pp: 333 – 338

Leave a Reply