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