基于Verilog HDL语言的32X8 FIFO设计
本文介绍的32X8FIFO设计采用了双体存储器(FIFOMemory)结构(如图2)。每个FIFOMemery中都有一个16X8的RAM,rd-cntr3: 和wr-cntr3: 分别作为读、写地址,rd-cntr和wr-cntr分别作为读、写状态位。对整个系统,当写信号(wrN)有效,数据将写入FIFO,且交替写入这两个分立的存储器。当读信号(rdN)有效,数据将被读出FIFO,且交替从这两个分立的存储器读出。对基于单体存储器的FIFO,在读操作的同时不能有任何的写操作,只能在读操作结束后再进行写操作。本文应用的交替读写机制使得32X8 FIFO具有可以同时读写的能力,即对一个存储器读操作的同时可以对另一个存储器写操作;对一个存储器写操作的同时可以对另一个存储器读操作。32X8 FIFO Data Path的结构框图如图3所示。其结构中有两个分立的存储器FIFOmem(even)和FIFOmem(odd)。FIFO cntrl模块控制对这两个分立存储器的读、写操作。而整个系统的空、满标志位分别由FIFOmem(even)和FIFOmem(odd)中的空、满标志位mem_full_even、mem_empty_even、mem_full_odd和mem_empty_odd来实现。其中rdN和wrN为整个系统的读写控制信号,rstN为FIFO复位信号。同时可以看出32X8 FIFO共有3个周期的延时:输入寄存器,FIFOMemery和输出寄存器延时,存取速度快。
图2 FIFOMemory结构框图
图3 32X8FIFODataPath结构框图
评论