当前位置:   article > 正文

乒乓操作-低速模块——高速模块_ddr乒乓操作

ddr乒乓操作

目录

 低速模块处理高速数据流:

实现中的总结:

相机时序低速输入->高速输出:

不是整数倍读写速率:


摘自:

CMOS摄像头(4):SDRAM和乒乓操作 - 咸鱼FPGA - 博客园

 彻底弄懂乒乓操作与并行化_快,快去救列宁!的博客-CSDN博客

 低速模块处理高速数据流:

        假设端口A的输入数据流的速率为 100Mbps,而一个数据预处理模块运算速度只有50Mbps,如果不采用乒乓操作结构,很明显数据预处理模块是处理不了数据端口A的数据流的。

        当采用上图的乒乓操作方式之后。假设两个数据缓冲模块的内存大小都是1Mb,故每段乒乓缓冲周期为10ms。但是此时留给每个数据预处理模块的运算时间不再是10ms,而是20ms了,20ms内数据预处理模块是可以处理掉1Mb数据的。为什么留给数据预处理模块的时间有20ms呢?这20ms等于往自己写入数据的10ms加上往另外一个缓冲模块写入数据的10ms。因为这20ms内数据预处理模块都可以从自己本级的缓冲模块读取数据做运算。

        这就做到了采用低速的数据预处理模块处理高速的数据流。上图是2级乒乓操作结构(因为数据流速率是预处理模块速率的2倍),如果数据流速率是预处理模块速率的n倍,就可以采用n级乒乓操作结构。这也是面积换速度的方法。

        0.5s后,R1存入50Mbit同时处理了25Mbit

        1s后,R1处理完了,并开始输出50Mbit,R2存入50Mbit同时处理了25Mbit

        1.5s后,R1的50Mbit输出完了,并又存入了50Mbit同时处理了25Mbit,R2处理完了,并开始输出50Mbit

        2s后,R1处理完了,并开始输出50Mbit,R2的50Mbit输出完了,并又存入了50Mbit同时处理了25Mbit        

        所以RAM的写入时钟是也是读出时钟的2倍,但野火里的实验,RAM的读出时钟是减半了,但却带宽*2,速度就是核写入速度一样,我觉得完全没必要时钟减半,直接用一样的时钟不行吗?用一半的时钟,不加宽带宽也可行吧。那就相当于RAM0.5s把存入的50Mbit送了25Mbit至处理模块。

      这就做到了采用低速的数据预处理模块处理高速的数据流。上图是2级乒乓操作结构(因为数据流速率是预处理模块速率的2倍),如果数据流速率是预处理模块速率的n倍,就可以采用n级乒乓操作结构。这也是面积换速度的方法。

实现中的总结:

        野火的实验里,实现低速模块处理高速模块,但省略了低速处理模块,RAM输出还是高速

        数据在时钟上升沿发送,输入选择模块接收数据时,也用一个reg寄存一下,采用时钟下降沿寄存。上升沿采到的就是数据变化的那一刻,这样采到的信号可能就是不稳定的状态。

相机时序低速输入->高速输出:

        假设OV5640 帧率 30fps,输出VGA 帧率 60fps,无乒乓操作时:

         当写入第二帧的上半帧时,VGA会读取存储的一整帧,这样会产生第一帧下半帧和第二帧上半帧混在一起,错帧。使用乒乓操作后:

         一块内存存一帧。当读取右边内存两次,使得左边内存存够一帧,在跳转到左边内存读这一帧,也读两次,使得右边内存存够一帧,再跳转。

不是整数倍读写速率:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/386460
推荐阅读
相关标签
  

闽ICP备14008679号