FPGA中的乒乓操作

  • 为什么不直接选用一个缓存更大的FIFO而选用乒乓操作
  • 为什么乒乓操作可以实现低速处理高速数据
  • 乒乓操作适用哪些场景

一、乒乓操作结构

首先先介绍一下乒乓操作的原理,其结构如下:

输入选择单元负责将数据送到数据缓冲模块,然后输出选择单元负责读取数据缓冲模块的数据,实现在向数据缓冲模块1写入数据的同时,读取数据缓冲模块2的数据;在向数据缓冲模块2写入数据的同时,读取数据缓冲模块1的数据,以此来让数据不简单的流入后续模块。

需要注意的点是,相邻两次存入数据缓冲模块的数量需要是一致的,这样才能够实现读写操作的对齐,即在一个缓冲模块刚写完的时候另一个缓冲模块刚好读空。

二、为什么不用缓存更大的FIFO而选用乒乓操作

选用乒乓操作而不选用缓存更大的FIFO,个人认为原因主要有以下几点:

  • 除真双口RAM外,其他FIFO不能同时读写,在某一时刻只能读或写,而真双口RAM在写入位宽大于54,深度大于512时资源是简单双口RAM的两倍,面积也会增大;详细可见下面文章:

    为何有时简单双口RAM是真双口RAM资源的一半-CSDN博客

  • 改变数据的输出顺序时,由于FIFO为先入先出,对于一个FIFO无法实现非顺序输出数据;然而可以通过两个FIFO来回交替,乒乓操作实现。

除此之外,个人觉得二者没有太大的区别。

总结来说,乒乓操作提供了一种通过两个或多个缓冲区交替工作来提高数据处理速率和吞吐量的方法,尤其适用于速率匹配和无缝数据流处理。而FIFO是一种更简单、更通用的缓冲技术,适用于广泛的数据存储和流控制需求。选择哪种技术取决于具体的应用场景和设计要求

三、乒乓操作如何实现低速处理高速数据

之前看到别的文章说,如果数据输入频率为10M,两个RAM的读取频率为5M,从整体上看是10M,个人认为这种说法是不正确的,这并不是低速处理高速数据的本质,因为在任何一个时刻只有一个RAM能被读。

之所以能够实现低速处理高速数据,其本质是因为在RAM的两侧读写位宽是不一样的,数据处理侧的RAM数据位宽是写入位宽的两倍,这样即使频率只有输入侧的一半依然能够以10M的数据速率处理。只要RAM两端的频率和位宽的乘积相等即可。

相关推荐
北京太速科技股份有限公司7 小时前
太速科技-FMC144 -八路 250MSPS 14bit AD FMC子卡
fpga开发
不可思议迷宫1 天前
Verilog编程实现一个分秒计数器
单片机·嵌入式硬件·fpga开发
Terasic友晶科技1 天前
第3篇:Linux程序访问控制FPGA端LEDR<一>
fpga开发·嵌入式系统·de1-soc开发板
双料毒狼_s1 天前
【FPGA】状态机思想回顾流水灯
fpga开发
双料毒狼_s1 天前
【FPGA实战】基于DE2-115实现数字秒表
fpga开发
Cynthia的梦2 天前
FPGA学习-基于 DE2-115 板的 Verilog 分秒计数器设计与按键功能实现
fpga开发
9527华安2 天前
Xilinx系列FPGA实现HDMI2.1视频收发,支持8K@60Hz分辨率,提供2套工程源码和技术支持
fpga开发·音视频·8k·hdmi2.1
大熊Superman2 天前
FPGA实现LED流水灯
fpga开发
泪水打湿三角裤2 天前
fpga:分秒计时器
fpga开发
奋斗的牛马2 天前
FPGA_AXI仿真回环(一)
fpga开发