1.乒乓操作原理

乒乓操作主要是用于数据流控制的处理技巧,用低速器件满足高速数据流的处理问题。

外部输入数据流通过“输入数据选择控制器模块”送入两个数据缓冲区,数据缓冲区为存储模块。
在第一个缓冲周期,将输入的数据流缓存到“数据缓冲1”模块,在第二个缓冲周期,“输入数据选择控制模块”将数据流缓存到“数据缓冲2”模块的同时,“输出数据选择控制模块”将“数据缓冲1”模块的第一个周期缓存的数据送到”后续处理”,模块进行后续的数据处理,在第三个缓冲周期,在“输入数据选择控制”模块的再次切换后,输入的数据流缓存到“数据缓冲1”模块,与此同时,“输出数据选择控制”模块也做出切换,将“数据缓冲2”模块缓存的第二个周期的数据送到“后续处理模块”,如此循环。

这里正是利用了乒乓操作完成数据的无缝缓冲与处理,乒乓操作可以通过“输入数据选择控制”和“输出数据选择控制”按节拍,相互配合地进行来回切换,将经过缓冲的数据流没有停顿的送到“后续处理模块”。
对于外部接口传输的图像数据,以一帧图像为单位进行SDRAM的切换控制,当SDRAM1缓存图像数据时,液晶显示的是SDRAM2的数据图像;反之,当SDRAM2缓存图像数据时,液晶显示的是SDRAM1的数据图像,如此反复,这样出路的好处在于液晶显示图像切换瞬间完成,掩盖了可能比较缓慢的图像数据流变换过程。

采用双口RAM,并在DPRAM后引入一级数据预处理模块实现用低速模块处理高速数据流。

A端口处输入数据流速率为100Mbps,在第1个缓冲周期10ms内,通过“输入数据选择单元”,从B1到达DPRAM1。B1的数据速率也是100Mbps,DPRAM1要在10ms内写入1Mb数据。同理,在第2个10ms,数据流被切换到DPRAM2,端口B2的数据速率也是100Mbps,DPRAM2在第2个10ms被写入1Mb数据。在第3个10ms,数据流又切换到DPRAM1,DPRAM1被写入1Mb数据。

仔细分析就会发现到第3个缓冲周期时,留给DPRAM1读取数据并送到“数据预处理模块1”的时间一共是20ms。有的工程师困惑于DPRAM1的读数时间为什么是20ms,这个时间是这样得来的:首先,在在第2个缓冲周期向DPRAM2写数据的10ms内,DPRAM1可以进行读操作;另外,在第1个缓冲周期的第5ms起(绝对时间为5ms时刻),DPRAM1就可以一边向500K以后的地址写数据,一边从地址0读数,到达10ms时,DPRAM1刚好写完了1Mb数据,并且读了500K数据,这个缓冲时间内DPRAM1读了5ms;在第3个缓冲周期的第5ms起(绝对时间为35ms时刻),同理可以一边向500K以后的地址写数据一边从地址0读数,又读取了5个ms,所以截止DPRAM1第一个周期存入的数据被完全覆盖以前,DPRAM1最多可以读取20ms时间,而所需读取的数据为1Mb,所以端口C1的数据速率为:1Mb/20ms=50Mbps。因此,“数据预处理模块1”的最低数据吞吐能力也仅仅要求为50Mbps。同理,“数据预处理模块2”的最低数据吞吐能力也仅仅要求为50Mbps。换言之,通过乒乓操作,“数据预处理模块”的时序压力减轻了,所要求的数据处理速率仅仅为输入数据速率的1/2。

通过乒乓操作实现低速模块处理高速数据的实质是:通过DPRAM这种缓存单元实现了数据流的串并转换,并行用“数据预处理模块1”和“数据预处理模块2”处理分流的数据,是面积与速度互换原则的体现!

数据流处理之乒乓操作相关推荐

  1. 芯片设计概念:乒乓操作,串并转换,流水线操作

    乒乓操作 乒乓操作"是一个常常应用于数据流控制的处理技巧.通过乒乓操作实现低速模块处理高速数据的实质是:通过 DPRAM 这种缓存单元实现了数据流的串并转换,并行用 " 数据预处理 ...

  2. (19)FPGA乒乓操作

    (19)FPGA乒乓操作 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA乒乓操作 5)结语 1.2 FPGA简介 FPGA(Field Programmable ...

  3. IIC总线随机读VHDL实现FIFO实现乒乓操作HM62256测试定制IP核

    博客简介 本博客是本人大二上学期数字系统实验硬件描述3的内容,在此记录以防丢失.目录如下: IIC串行总线时序分析 VHDL编程设计专门状态机与2片异步FIFO来实现乒乓操作 设计HM62256测试电 ...

  4. 乒乓操作的写入控制器

    乒乓操作的写入控制器,由wr_en使能,使能后,将会根据内存写入次数的计数,输出合适的地址,内存块的片选信号,以及将数据源的数据输出,由于wr_req要求先数据一个时钟,这样,如果使能模块判断可以写入 ...

  5. 【Verilog基础】RTL设计指导原则(面积与速度互换(模块复用)、乒乓操作、流水线操作)

    文章目录 面积与速度互换 乒乓操作 流水线操作 问题讨论 RTL 级设计的评判标准很多,如时序性能.所占面积.可测试性.可重用性.功耗.时钟域的分配.复位信号设计以及是否与所用 EDA 工具匹配等.如 ...

  6. 最详细的FPGA的双口RAM乒乓操作与数据处理实例(第一部分)

    首先说明一下 代码都是自己完全手写的,如果有人看了我的代码,欢迎指出不足,写的不好也不要嘲笑,一个字一个字写出来的. - 1.目的 测试双口RAM的乒乓操作的功能,研究RAM输入输出操作,以及乒乓操作 ...

  7. 乒乓操作(Ping-Pong)的理解:为什么是另一种pipeline?

    1.乒乓操作的原理 乒乓操作用于数据流控制的处理技巧. 在两个功能块(function block)对接时,由于瞬时数据率的差异(如block A的写数据频率为200Mhz,而block B的读数据频 ...

  8. 四十三、深入Java中的数组流,数据流和对象流操作

    @Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  9. FPGA基于双端口RAM的乒乓操作

    如果需要重读,需要用ram,如果不需要重读的话就用FIFO 双buffer不太好实现错误重传机制!!!! 双buffer作用: 1.跨时钟域 2.完成数据位宽转换 3.完成数据缓冲 双buffer缓冲 ...

  10. 分块矩阵乘法+乒乓操作

    本文用system verilog实现了分块矩阵乘法中计算输出矩阵的某一块,并且进行了pingpang操作,以掩盖数据传输时间. 这是顶层模块的代码: `timescale 1ns / 1ps // ...

最新文章

  1. windows下安装Python virtualenvwrapper-win
  2. 网络推广外包没有效果?很可能是在网络推广外包基础上出现问题!
  3. 导入代码时eclipse的src目录变为包名
  4. DEEPIN 20.2.2社区版设置双屏显示(y7000p)
  5. Adempiere 在Ubuntu下的安装方法(二)
  6. 2014 Louis Vuitton 40769 apricot NevadaJack Nicklaus
  7. IAR Embedded Workbench IDE 显示行号
  8. Python与数据结构[4] - 散列表[1] - 分离链接法的 Python 实现
  9. 不小心误删除Mac苹果系统联系人和Safari浏览器书签信息如何恢复?
  10. pdf转word文档总结
  11. Linux(CentOS 7)服务器增加固态硬盘作为系统盘
  12. 使用WInDynamicDesktop自定义上传图库生成主题教程
  13. DELL服务器 RAID 配置详解
  14. wps图表横纵坐标怎么设置_用WPS的excel插入图表怎样快速设置横纵坐标轴
  15. modbus通讯协议详解
  16. Django请求和响应对象
  17. 在clubof.net上建立了个人主页
  18. Open Policy Agent(OPA) rego使用
  19. 智能路由器VS传统路由器:未来由谁主宰?
  20. 自体脂肪填充苹果肌硬块多久消

热门文章

  1. No matter how hard it is or no matter how bad it gets, I am going to make it!
  2. (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
  3. 天梯赛java题解 L1-087 机工士姆斯塔迪奥分数 20
  4. 深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks
  5. UML2.51边译边学-接口
  6. poj 1284 Primitive Roots 求素数元根数
  7. [SugerTangYL] 时钟管理(分频器、倍频器、锁相环)Verilog
  8. 用coding向你最爱的人说圣诞快乐
  9. 如何提高用户粘性,增强活跃度?
  10. 赵普:安全感先于幸福感