一、基本概念
乒乓操作是FPGA开发中的一种数据缓冲优化设计技术,可以看成是另一种形式的流水线技术,具有节约缓冲空间、对数据流无缝处理等优点,其操作原理如图所示。
在输入数据流到达时,输入数据流选择单元对其流向进行控制,其执行流程:
①在第一个缓冲周期,输入数据流写入数据缓冲模块1,写完之后进入第二个缓冲周期。
②在第二个缓冲周期,输入数据流写入数据缓冲模块2,同时将数据缓冲模块1中的数据读出。
③在第三个缓冲周期,输入数据流写入数据缓冲模块1,同时将数据缓冲模块2中的数据读出。
如此反复循环地操作,即为乒乓操作。
乒乓操作特点:实现跨时钟域的数据传输,其基本原理:
输入数据流的 面积 × 速度 = 输出数据流的 面积 × 速度
面积:即数据传输线的位宽,bit。
速度:即数据传输的时钟频率,hz。
例:输入数据流为 50Mhz × 8bit,则输出数据流为 25Mhz × 16bit,这样就实现了跨时钟域的数据传输。
二、题目要求
使用数据产生模块输出 50Mhz × 8bit 的数据 8'b0 ~ 8'b199,通过乒乓操作读取数据,对其缓存并输出为 25Mhz × 16bit 的数据 16'h0100、16'h0302 ... 16'h6362 ... 16'hc7c6、16'h0100...
三、思路整理
将其划分为四个模块,如图所示。
模块框图如图所示。