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两端的频率和位宽的乘积相等即可。

相关推荐
XINVRY-FPGA1 天前
XC7VX690T-2FFG1157I Xilinx AMD Virtex-7 FPGA
arm开发·人工智能·嵌入式硬件·深度学习·fpga开发·硬件工程·fpga
Terasic友晶科技1 天前
【案例展示】友晶科技全息传感器桥接解决方案
科技·fpga开发·holoscan·agilex 5·terasic
学习永无止境@1 天前
Verilog中有符号数计算
图像处理·算法·fpga开发
学习永无止境@1 天前
Sobel边缘检测的MATLAB实现
图像处理·opencv·算法·计算机视觉·fpga开发
fei_sun1 天前
数字芯片流程
fpga开发
YaraMemo1 天前
射频链的构成
5g·fpga开发·信息与通信·信号处理·射频工程
fei_sun1 天前
逻辑设计工程技术基础
fpga开发
fei_sun1 天前
有限状态机设计基础
fpga开发
HIZYUAN1 天前
AG32 MCU可以替代STM32+CPLD吗 (二)
stm32·单片机·嵌入式硬件·fpga开发·agm ag32·国产mcu+fpga·低成本soc
FPGA-ADDA2 天前
第一篇:软件无线电(SDR)概念与架构演进
fpga开发·信号处理·软件无线电·rfsoc·47dr