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

相关推荐
萨文 摩尔杰10 小时前
GPS原理学习
学习·fpga开发
Huangichin11 小时前
跟着Gemini学System Verilog
fpga开发
LCMICRO-1331084774613 小时前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc
s090713616 小时前
保姆级教程十二:USB摄像头接入!ZYNQ+OpenCV+FPGA硬件加速图像处理实战(视觉终极篇)
图像处理·opencv·fpga开发·zynq·硬件加速
CoderIsArt20 小时前
FPGA-based 量子电路仿真
fpga开发
碎碎思1 天前
升级版流水灯:用FPGA控制上千颗RGB LED
fpga开发
FPGA-ADDA1 天前
第二篇:Xilinx 7系列FPGA详解——从Spartan到Virtex
fpga开发·fpga·sdr·rfsoc
逐步前行1 天前
STM32_SysTick_寄存器操作
stm32·嵌入式硬件·fpga开发
良许Linux2 天前
FPGA的选型和应用
数据库·图像处理·计算机视觉·fpga开发
上班最快乐2 天前
基于FPGA的APS6404L-3SQR QSPI PSRAM驱动设计(3)
fpga开发