数据流处理之乒乓操作
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”处理分流的数据,是面积与速度互换原则的体现!
数据流处理之乒乓操作相关推荐
- 芯片设计概念:乒乓操作,串并转换,流水线操作
乒乓操作 乒乓操作"是一个常常应用于数据流控制的处理技巧.通过乒乓操作实现低速模块处理高速数据的实质是:通过 DPRAM 这种缓存单元实现了数据流的串并转换,并行用 " 数据预处理 ...
- (19)FPGA乒乓操作
(19)FPGA乒乓操作 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA乒乓操作 5)结语 1.2 FPGA简介 FPGA(Field Programmable ...
- IIC总线随机读VHDL实现FIFO实现乒乓操作HM62256测试定制IP核
博客简介 本博客是本人大二上学期数字系统实验硬件描述3的内容,在此记录以防丢失.目录如下: IIC串行总线时序分析 VHDL编程设计专门状态机与2片异步FIFO来实现乒乓操作 设计HM62256测试电 ...
- 乒乓操作的写入控制器
乒乓操作的写入控制器,由wr_en使能,使能后,将会根据内存写入次数的计数,输出合适的地址,内存块的片选信号,以及将数据源的数据输出,由于wr_req要求先数据一个时钟,这样,如果使能模块判断可以写入 ...
- 【Verilog基础】RTL设计指导原则(面积与速度互换(模块复用)、乒乓操作、流水线操作)
文章目录 面积与速度互换 乒乓操作 流水线操作 问题讨论 RTL 级设计的评判标准很多,如时序性能.所占面积.可测试性.可重用性.功耗.时钟域的分配.复位信号设计以及是否与所用 EDA 工具匹配等.如 ...
- 最详细的FPGA的双口RAM乒乓操作与数据处理实例(第一部分)
首先说明一下 代码都是自己完全手写的,如果有人看了我的代码,欢迎指出不足,写的不好也不要嘲笑,一个字一个字写出来的. - 1.目的 测试双口RAM的乒乓操作的功能,研究RAM输入输出操作,以及乒乓操作 ...
- 乒乓操作(Ping-Pong)的理解:为什么是另一种pipeline?
1.乒乓操作的原理 乒乓操作用于数据流控制的处理技巧. 在两个功能块(function block)对接时,由于瞬时数据率的差异(如block A的写数据频率为200Mhz,而block B的读数据频 ...
- 四十三、深入Java中的数组流,数据流和对象流操作
@Author:Runsen @Date:2020/6/8 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...
- FPGA基于双端口RAM的乒乓操作
如果需要重读,需要用ram,如果不需要重读的话就用FIFO 双buffer不太好实现错误重传机制!!!! 双buffer作用: 1.跨时钟域 2.完成数据位宽转换 3.完成数据缓冲 双buffer缓冲 ...
- 分块矩阵乘法+乒乓操作
本文用system verilog实现了分块矩阵乘法中计算输出矩阵的某一块,并且进行了pingpang操作,以掩盖数据传输时间. 这是顶层模块的代码: `timescale 1ns / 1ps // ...
最新文章
- windows下安装Python virtualenvwrapper-win
- 网络推广外包没有效果?很可能是在网络推广外包基础上出现问题!
- 导入代码时eclipse的src目录变为包名
- DEEPIN 20.2.2社区版设置双屏显示(y7000p)
- Adempiere 在Ubuntu下的安装方法(二)
- 2014 Louis Vuitton 40769 apricot NevadaJack Nicklaus
- IAR Embedded Workbench IDE 显示行号
- Python与数据结构[4] - 散列表[1] - 分离链接法的 Python 实现
- 不小心误删除Mac苹果系统联系人和Safari浏览器书签信息如何恢复?
- pdf转word文档总结
- Linux(CentOS 7)服务器增加固态硬盘作为系统盘
- 使用WInDynamicDesktop自定义上传图库生成主题教程
- DELL服务器 RAID 配置详解
- wps图表横纵坐标怎么设置_用WPS的excel插入图表怎样快速设置横纵坐标轴
- modbus通讯协议详解
- Django请求和响应对象
- 在clubof.net上建立了个人主页
- Open Policy Agent(OPA) rego使用
- 智能路由器VS传统路由器:未来由谁主宰?
- 自体脂肪填充苹果肌硬块多久消
热门文章
- No matter how hard it is or no matter how bad it gets, I am going to make it!
- (技术类)中标麒麟linux终端命令操作之小白不知道的点(1)
- 天梯赛java题解 L1-087 机工士姆斯塔迪奥分数 20
- 深度学习论文: Avoiding Overfitting: A Survey on Regularization Methods for Convolutional Neural Networks
- UML2.51边译边学-接口
- poj 1284 Primitive Roots 求素数元根数
- [SugerTangYL] 时钟管理(分频器、倍频器、锁相环)Verilog
- 用coding向你最爱的人说圣诞快乐
- 如何提高用户粘性,增强活跃度?
- 赵普:安全感先于幸福感