FIFO设计 verilog代写

hw5

同步FIFO的设计思路:

1.同步FIFO的基本原理:

FIFO(First In First Out)——是一种可以实现数据先入先出的存储器件。FIFO就像一个单向管道,数据只能按固定的方向从管道一头进来,再按相同的顺序从管道另一头出去,最先进来的数据必定是最先出去。FIFO被普遍用作数据缓冲器。

FIFO的基本单元是寄存器,作为存储器件,FIFO的存储能力是由其内部定义的存储寄存器的数量决定的。本题中所设计的是同步FIFO(即输出输入端时钟频率一致),异步复位,其存储能力为(4×4,设计的这么小主要是由于板子的寄存器数量非常有限当然也可以使用4×8或者4×16),输出两个状态信号:full与empty,以供后继电路使用。

2.本组同步FIFO的设计分析与框架:

同步FIFO整体架构:

解释与说明:上图中最大的矩形框所包围的内部部分为所设计的同步FIFO,由FIFO主控体和RAM构成。FIFO主控体接收来自外部的读写控制信号(read_n,write_n)、复位信号(reset_n)和时钟信号(clock),并在时钟上升沿到来时根据从RAM返回的counter信号进行读写控制判断以及读写指针的计算,并将所得结果以mwrite_n,mread_n,wr_pointer ,rd_pointer信号的形式传递给RAM进行相应的读写操作。其中counter信号代表RAM体内已存储未读数据的数据个数。整个同步FIFO包括八条外部数据信号线(包括总线)和五条内部数据信号线。

 

 

同步FIFO的具体设计:

程序开始先进行复位判断,假如复位键按下,则进行复位。接着判断读信号是否有效,假如无效,则判断写是否有效,假如有效,并且存储体不满的话则进行写操作,先产生正确的写指针,然后将输入的数据写入对应的RAM空间内。读雷同。当读写都有效时,counter不做更改,而直接产生读写指针,然后进行读写操作,当然在读写之前要先判断是否空满。

Leave a Reply

Your email address will not be published. Required fields are marked *