随笔~~fifo的简单实现(ise)

fifo是一种先进先出的数据存储和缓冲器,其本质是RAM。fifo的位宽就是每个数据的位宽,fifo的深度简单来说是需要存多少个数据。fifo有同步fifo和异步fifo两种,同步即读写时钟相同,异步fifo即读写时钟不同。一般异步fifo用的较多,用来处理跨时钟域的问题。

1.在ise软件中,调用了一个8x256的同步fifo IP核,其主要配置如下图所示,

接口类型选择了Native,而AXI4类型主要用于与软核CPU通信中,尤其是在ZYNQ的PL和PS通信中。

选择相同的读写时钟,即同步fifo。选择的memory类型是Block RAM,两种类型的区别是,Block RAM是硬件存在的ram资源,是单纯的存储资源,需要整块使用;而Distributed ram是用逻辑单元拼出来的,用内部寄存器和查找表等资源搭建的RAM,深度不大于32.因为大了之后寻址布线可能长,用起来有问题,资源特别少的时候可以考虑搭建。

宽度为8位,深度为256,READ MODE默认,Standard FIFO为当给出读使能后,数据会延迟一拍;First-Word Fall-Through 则是当给出读使能,立即给出数据。

此页面上基本上都为fifo的标志信号,具体可以通过代码实现来查看各自的用途。

Programmable Full Type 和 Programmable Empty Type 是:根据需要设置提前多少个数据来给自己提示即将写满还是即将读空。比如说上图中252,就是提前3个数据将PROG_FULL标志拉高。

默认next,

最后给出设置的fifo的报告,点击generate生成ip。

在代码中,将输入数据有效和写满取反相与,来产生写使能信号,读标志和读空取反相与产生读使能信号。

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值