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