异步FIFO的低水线判定

最近做一个模块,需要用异步FIFO把链路层发来的局部不定时突发数据重建成连续稳定输出的视频流。
输出要达到连续稳定的话,开始输出之前,需要在FIFO里攒够一定数量的数据,即FIFO的低水线,用于防止underflow。对应的还有高水线,即数据不能多于高水线,否则来不及输出就overflow了。
从某个角度看,FIFO的的低水线给整个数据通道带来了一个latency。这个latency对于周期性的视频流来说,其最初的判定条件对于后续的数据传输有可能是不匹配的。除非能做到实时调整低水线。但是对于输出时序是固定的场景来说,不太可能有机会去做预测和实时调整。但好在FIFO前后的数据速率在大尺度上是保持一致的。因此只要在数据通道上再引入一个绝对的latency,就基本可以在一定范围内解决低水线判定对于后续传输不适应的问题。
一句话总结,就是给初次判定加点margin,让后续略有变化的数据传输能够满足这个判定。
Vivado是一款由赛灵思(Xilinx)公司开发的集成电路设计工具。它提供了丰富的功能和工具,用于设计、验证和实现FPGA(现场可编程门阵列)和SoC(片上系统)。异步FIFO(First In First Out)是FIFO的一种类型,用于跨时钟域信号传递。异步FIFO与同步FIFO相比,不要求读写时钟频率相同,因此更加灵活。 在Vivado中,可以使用IP核(Intellectual Property)库中提供的现成的异步FIFO IP来设计异步FIFO。这个IP核包含了异步FIFO的功能模块,可以直接在设计中使用。可以通过Vivado的可视化界面添加异步FIFO IP核,并根据设计需求进行配置。配置完成后,可以生成对应的硬件描述语言(HDL)代码,通过这些代码可以实例化异步FIFO模块。 除了使用Vivado提供的异步FIFO IP核外,您也可以自己编写异步FIFO模块。根据您提供的引用,您可以自编异步FIFO,并根据具体需求选择normal模式或show-ahead模式。在设计完成后,您可以使用Vivado提供的testbench功能对异步FIFO进行仿真,以验证其功能和性能。根据您的描述,测试结果与Xilinx IP一致,这表明您的自编异步FIFO在功能上与Xilinx IP相似。 总结起来,您可以在Vivado中使用现成的异步FIFO IP核,也可以自己编写异步FIFO模块。通过Vivado的可视化界面或者HDL代码进行配置和实例化。最后,使用Vivado的testbench功能对异步FIFO进行仿真,以验证其功能和性能。这样,您就可以在Vivado中设计和实现异步FIFO了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值