Xilinx IP核使用(一)--FIFO

今天在将SRIO的数据存入FIFO后,然后把FIFO中的数据不断送入FFT进行运算时,对于几个控制信号总产生问题。所以单独对FIFO进行了仿真。原来感觉FIFO的几个参数端口一目了然啊,还需要什么深入了解吗,在实验发生问题才知道当时的想法多么幼稚啊。

下面对xilixn FIFO核进行下简单说明,配上仿真时序图和源代码,描述的还是比较清晰的。希望对和我一样刚接触FPGA不久的同学能有一点点帮助^_^

这个仿真的功能是要实现向FIFO256存入1到256个数,再将1-256读出。注意这里选的是FULL FLAGS RESET VALUE OF 1

这是我想当然的仿真结果:这里可以看到数据1丢失了,第一个读出的数据是2。再看图1的data_count,这里先说下data_count的含义,当前时钟进行写操作,则下一时钟data_count加1,当前时钟进行读操作,则下一时钟data_count减1。因此由图隐约可以知道为什么数据1丢失了。


查看了下XILIXN FIFO的官方文档,说在进行写复位后,要延迟3个时钟周期才能进行写操作。因此我在写复位以后,通过count引入了3个时钟的延迟,如下图,发现数据没有发生的丢失的情况了。


FIFO核非常好用,在读操作的时候,我们可以通过data_count来知道还有多少个数据将要读出,这对于后面的FFT参数控制很关键。当我加上FFT模块时,又出问题了,上面写复位的FULL高电平对信号的控制产生了的影响,即数据并没有传入FIFO,FULL就已经拉高了。重新回到FIFO文档,看到了答案FULL FLAGS RESET VALUE OF 0,在选了这个选项后,异步写复位将用最少的时间来完成。话不多说看仿真图一目了然。

来源:兔美酱的博客

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值