基于Verilog HDL語(yǔ)言的32X8 FIFO設(shè)計(jì)
2 32X8FIFO系統(tǒng)結(jié)構(gòu)
本文介紹的32X8FIFO設(shè)計(jì)采用了雙體存儲(chǔ)器(FIFOMemory)結(jié)構(gòu)(如圖2)。每個(gè)FIFOMemery中都有一個(gè)16X8的RAM,rd-cntr3: 和wr-cntr3: 分別作為讀、寫(xiě)地址,rd-cntr和wr-cntr分別作為讀、寫(xiě)狀態(tài)位。對(duì)整個(gè)系統(tǒng),當(dāng)寫(xiě)信號(hào)(wrN)有效,數(shù)據(jù)將寫(xiě)入FIFO,且交替寫(xiě)入這兩個(gè)分立的存儲(chǔ)器。當(dāng)讀信號(hào)(rdN)有效,數(shù)據(jù)將被讀出FIFO,且交替從這兩個(gè)分立的存儲(chǔ)器讀出。對(duì)基于單體存儲(chǔ)器的FIFO,在讀操作的同時(shí)不能有任何的寫(xiě)操作,只能在讀操作結(jié)束后再進(jìn)行寫(xiě)操作。本文應(yīng)用的交替讀寫(xiě)機(jī)制使得32X8 FIFO具有可以同時(shí)讀寫(xiě)的能力,即對(duì)一個(gè)存儲(chǔ)器讀操作的同時(shí)可以對(duì)另一個(gè)存儲(chǔ)器寫(xiě)操作;對(duì)一個(gè)存儲(chǔ)器寫(xiě)操作的同時(shí)可以對(duì)另一個(gè)存儲(chǔ)器讀操作。32X8 FIFO Data Path的結(jié)構(gòu)框圖如圖3所示。其結(jié)構(gòu)中有兩個(gè)分立的存儲(chǔ)器FIFOmem(even)和FIFOmem(odd)。FIFO cntrl模塊控制對(duì)這兩個(gè)分立存儲(chǔ)器的讀、寫(xiě)操作。而整個(gè)系統(tǒng)的空、滿標(biāo)志位分別由FIFOmem(even)和FIFOmem(odd)中的空、滿標(biāo)志位mem_full_even、mem_empty_even、mem_full_odd和mem_empty_odd來(lái)實(shí)現(xiàn)。其中rdN和wrN為整個(gè)系統(tǒng)的讀寫(xiě)控制信號(hào),rstN為FIFO復(fù)位信號(hào)。同時(shí)可以看出32X8 FIFO共有3個(gè)周期的延時(shí):輸入寄存器,FIFOMemery和輸出寄存器延時(shí),存取速度快。
圖2 FIFOMemory結(jié)構(gòu)框圖
圖3 32X8FIFODataPath結(jié)構(gòu)框圖
評(píng)論