文章目录
- 1 FIFO(先入先出)
- 1.1 概念
- 1.2 应用场景
- 1.3 FIFO信号
- 1.4 FIFO读写时序
- 1.4.1 FIFO读时序
- 1.4.2 FIFO写时序
- 参考
1 FIFO(先入先出)
1.1 概念
FIFO(First in First out)即先入先出队列,是一种数据缓存器,其没有外部读写地址线,数据地址由内部的读写指针自动加1完成,使用简单。但这也造成FIFO只能按顺序写入数据和读取数据。
1.2 应用场景
FIFO主要应用在以下几个场景中:
- 数据缓存:可以暂时存储数据以便进行运算、传输等逻辑操作。
- 跨时钟域处理:进行数据的跨时钟域处理,即当数据以X频率的时钟获取到,却需要Y频率的时钟取进行处理时,使用FIFO能够更好的完成该操作。
- 不同数据位宽处理:当数据进行宽度转换时也可以使用FIFO进行操作。
1.3 FIFO信号
FIFO常用到的信号如下图
- rd_clk、wr_clk:FIFO的读写时钟,数据的读写基于这两个时钟进行。
- rd_en、wr_en:读写使能,写使能信号拉高时向FIFO里面进行数据写入,读使能拉高时则从FIFO里读出数据。
- rst:FIFO复位信号,拉高时对FIFO进行复位操作。
- din、dout:din为写入FIFO的数据,dout为从FIFO读出的数据。
- empty、full:空满信号,empty拉高时标识FIFO里面的数据也被全部读出,不能在进行读操作;full拉高时则表示FIFO能容纳的数据量已达到设计的大小,不能再向里面写入数据了。
- rd_data_count、wr_data_count:读写数据计数,每写入一个数据时两个计数器自增1,每读出一个数据两个计数器自减1.
1.4 FIFO读写时序
1.4.1 FIFO读时序
FIFO有两种模式:Standard FIFO(标准模式)和First-Word Fall-Through(FWFT模式)。两种模式下的读时序是不同的,标准模式下读操作时数据会在读使能拉高的下一个时钟给出,而FWFT模式下数据则在读使能拉高的同一个时钟给出。
- Standard FIFO模式下读时序:
- First-Word Fall-Through模式下读时序:
1.4.2 FIFO写时序
在两种模式下其写时序都是一样的,在写使能拉高的同一个时钟沿开始写入数据。
参考
1、https://blog.csdn.net/qq_38812860/article/details/120138467
2、https://blog.csdn.net/HouQi02/article/details/51683635