【无标题】

Xilinx FIFO使用总结
FIFO是我们在FPGA开发中经常用到的模块,在数据缓存和跨时钟域同步等都会有涉及。在实际工程使用前,我们需要熟悉掌握FIFO IP的配置过程及时序特点。
下面对xilinx的FIFO IP在vivado下的配置过程,以及主要信号的时序关系总结如下。
其中,FIFO为同步FIFO,位宽为16bit,深度为128。

一、配置过程
1、首先,选择native类型的FIFO,然后选择common clock block RAM,即采用读写采用相同时钟的块RAM,如果FIFO深度小于32也可以选择distrubuited RAM,即分布式RAM,但不推荐使用。对于读写采用不同时钟的FIFO也可以在这个选择。

在这里插入图片描述 

2、选择标准FIFO,设置读写位宽及FIFO深度,异步复位,以及读FIFO的初始化值。需要注意在异步复位几拍周期后再对FIFO进行读写操作。

在这里插入图片描述

 

3、配置需要引出的握手信号,需要注意开展配置握手信号是低电平有效还是高电平有效,以及可动态编程“几乎空”及“几乎满”信号产生的时序位置。

在这里插入图片描述

 

4、配置读写计数信号,因为我们FIFO深度是128,因此计数器为7位。

在这里插入图片描述

 

5、下面是最后生成的FIFO summary

在这里插入图片描述

 


二、时序特点
1、写FIFO时序特点
首先向FIFO写129个数据,查看FIFO信号写时序。其中涉及以下几个信号:
wr_data_in:16位的写数据
wr_en:写使能
wr_ack:写反馈
full:写满信号
almost full:几乎满信号
overflow:写溢出信号
data_count:读写FIFO计数器
下面是写FIFO起始位置时序:

在这里插入图片描述

 

下面是写FIFO结束位置时序:

在这里插入图片描述
可以得出写FIFO特点:
1)、写数据与写使能信号是完全同步的。
2)、写反馈比写使能信号要晚1拍。
3)、写满与写使能信号是完全同步的。
4)、几乎写满信号是在写完数据的前1拍有效。(即还剩一个数据就写满了)。
5)、写溢出信号是在写满信号有效后的晚1拍有效。

 

2、读FIFO时序特点
然后向FIFO读129个数据,查看FIFO信号读时序。其中涉及以下几个信号:
rd_data_out:16位的读数据
rd_en:读使能
valid:读有效信号
empty:读空信号
almost empty:几乎空信号
underflow:读溢出信号
data_count:读写FIFO计数器
下面是读FIFO起始位置时序:

在这里插入图片描述

 

下面是读FIFO结束位置时序:

在这里插入图片描述

 

可以得出读FIFO特点:
1)、读数据比读使能信号到要延迟1拍。
2)、读数据与读有效信号是完全同步的。
3)、读空与读使能信号是完全同步的。
4)、几乎读空信号是在读完数据的前1拍有效。(即还剩一个数据就读完了)。
5)、读溢出信号是在读空信号有效后的晚1拍有效。

三、FIFO使用过程中的注意事项
1、FIFO的复位是高电平有效的;
2、FIFO复位若干周期后再对FIFO进行读写操作;
3、读FIFO出来的数据比读使能信号晚1拍;
4、读空及写满信号是与读写使能信号完全同步的,因此可以用读空或写满信号作为FIFO的使能信号,但是要用组合逻辑(assign ),确保实时性。
5、读数据与读有效信号是完全同步的。
————————————————
版权声明:本文为CSDN博主「wuzhirui志锐」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39789553/article/details/120305449

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值