什么是FPGA里面的乒乓机制?

如题所述

数据处理流程: 数据接收->数据处理->数据发送
乒乓机制就是有套块数据接收路径,一块数据接收时,算法处理另一块数据,而不用等待当前数据接收完后再处理,作用是提高数据吞吐量。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-26
背景
  目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简
单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。   系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。   FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。
1 系统组成
乒乓球比赛游戏机的组成如图1所示。比赛规则约定:五局三胜;11分一局;裁判发出比赛开始信号,触发FPGA内部随机数发生器模块产生首次发球权方;比赛进行中,选手连续两次获得发球权后,发球权交予对方,如未获发球权方发球,裁判端犯规音响电路鸣响;13个LED排列成行模拟乒乓球台;点亮的LED模拟乒乓球,受FPGA控制从左到右或从右到左移动;比赛选手通过按钮输入模拟击球信号,实现LED移位方向的控制;若发亮的LED运动在球台中点至对方终点之间时,对方未能及时按下击球按钮使其向相反方向移动,即失去一分。
2 功能模块设计
图1中,基于FPGA设计的控制端为整个系统的核心,其内部主要由简易随机数发生器、发球权控制器、乒乓球位置控制器、甲乙方计分控制器、犯规音响控制器等模块组成。整个控制端采用模块化设计,先用VHDL语言编写功能模块,然后用顶层原理图将各功能模块连接起来。设计的难点在于协调各模块工作,严格遵守各信号间时序关系。本系统采用1 kHz系统时钟。
2.1 简易随机数发生器
比赛首次发球权由随机数发生器产生的数据决定,其随机性要求不严,因此,采用非常简单的模式产生,即一旦FPGA上电,系统时钟百分频产生一方波信号square,当裁判闭合开始比赛开关产生start信号上升沿时,读取此时square信号值作为随机数发生器输出randq。模块仿真如图2所示,结果满足设计要求。此模块设计时保证了square信号周期应远大于start信号上升沿建立时间,保证随机数据的正确读取。
2.2 发球权控制器
发球权控制器的控制过程为:如果按下复位按钮,发球权数码管显示8,否则,开始比赛开关闭合时,显示随机数发生器的值(0或1,0代表甲方、1代表乙方)。而在比赛中,为遵守发球权交换规则,设计甲乙双方计分器总和信号sum_sc是不为0的偶数时(即计分总和最低位sum_sc0下降沿到来时),发球权数码管显示由0变为1或由1变为0。
此模块设计中,发球权数码管的信号控制受多个时钟的控制,即开始比赛开关start和计分值sum_sc0信号,这在VHDL编程语言中无法用一个进程实现,必须将两个信号组合成一个时钟信号,并统一两个时钟的触发沿。因此最佳时钟触发方式如图3所示的fqq_en信号。为满足这种时序要求,借助计分总和次低位sum_sc1信号设计entity sum_sc_mod2,由于start和sum_sc1的频率都远低于系统时钟信号clk频率,则可借助clk高频信号捕捉其边沿产生新的时钟信号fqq_en,并产生其计数值,仿真波形如图4(a)所示。为保证发球权数码管显示正确,设计entitv led_fqq_ctl在fqq_en下降沿时,根据其计数值产生相应的数码管输出信号led_fqq,仿真波形如图4(b)所示。
发球权控制器的VHDL核心程序如下:
2.3 乒乓球位置控制、甲乙计分、犯规音响控制
乒乓球位置控制电路为FPGA控制端的核心,依据比赛规则,采用了Mealy型状态机来实现,大大降低了设计难度。状态机共定义了7个状态,各状态定义如表1所示,状态转换如图5所示,转换条件如表2所示,具体程序如下。
3 顶层模块仿真测试
由于篇幅限制,本系统中的分频器、译码器等常用模块的设计就不再此赘述,最终顶层原理图设计如图6所示,仿真波形如图7所示,分析波形可知,图中开始比赛信号产生后,首次发球权方为乙方,甲方发球造成犯规音响电路鸣响,即speaker信号为高电平,然后乙方发球,乒乓球依次移位,甲方接球成功后乙方未接球成功,甲方得分,cnta信号为“0110000”,注意,此处输出为驱动数码管输出信号,代表数字“1”。通过仿真可知,该系统设计满足游戏机比赛规则要求。
4 结语
采用VHDL语言编程,基于FPGA成功设计了一款乒乓球比赛游戏机,通过仿真验证可知,结果满足设计需求,系统具有发球权控制、自动计分、犯规提示等多种功能,能有效模拟实际乒乓球比赛。该系统进一步改进思路为:改用人体感应传感器来采集击球信号,采用FPGA产生视频信号传送到电视机或监视器,更直观地展示乒乓球运动轨迹,从而真正实现人机互动,优化虚拟效果。

什么是FPGA里面的乒乓机制?
乒乓机制就是有套块数据接收路径,一块数据接收时,算法处理另一块数据,而不用等待当前数据接收完后再处理,作用是提高数据吞吐量。

孩子都能学会的FPGA:第十四课——FPGA的乒乓操作
在FPGA开发中,乒乓操作是一种高效的数据缓冲优化技术,类似于流水线工作方式。它将输入数据流等分到两个数据缓冲模块(如RAM或FIFO),通过“输入数据流选择单元”的切换,实现数据在两个缓冲区之间的交替读写。例如,数据在第一个周期被缓存在“模块1”,第二个周期切换到“模块2”,处理完后,模块1...

FPGA乒乓操作疑问
乒乓操作主要是通过面积更换时间,比如一下情况,一个数据流过来,处理模块需要进行5个时钟节拍来处理,在处理出去,这样一共需要7个节拍(假设数据进入进出通过一个时钟锁存);此时如果我们增加一个处理模块,第一个节拍将数据通过数据选择选择器将数据存入第一个模块处理,在第二个节拍时将第二个数据送...

最详细的 FPGA 的双口 RAM 乒乓操作与数据处理实例有哪些?
深入探索:FPGA双口RAM的乒乓操作与数据处理实战详解在FPGA的世界里,乒乓操作如同一场精密的舞蹈,它以双口RAM(DPRAM)为核心,构建出数据流的无缝切换与高效处理。想象一下,输入数据如同乒乓球在两个缓冲区间来回跳跃,每个周期都在完成一次数据的流入与流出,这就是乒乓操作的精髓所在。其关键在于双管齐...

fpga fifo 和 pingpong 有什么不同?
pingpong就是著名的乒乓,用于用慢速设备处理高速数据,里面的数据缓冲就用的fifo(思想),他有多个fifo,这样就能从宏观上看就相当于将高速数据分频了,然后每个低速时钟同时处理,处理完后有汇集起来,变成高速数据,这是面积换速度的一个体现,跟流水线有点异曲同工之妙 其实思想都差不多,都是先将...

求一份关于FPGA游戏机设计(最好是乒乓球)的英文文献!好的话!会追加财富...
基于FPGA“乒乓球比赛游戏机”的设计 曹莉凌刘雨青 【摘要】:FPGA的低成本正推动其在消费电子产品中的应用,为进一步挖掘其在娱乐产品应用中的巨大商机,基于Altera公司FPGA,在QuartusⅡ8.1环境下,运用VHDL语言、采用有限状态机等设计方法设计了一款乒乓球比赛游戏机。介绍了该游戏机系统功能模块划分及关键...

B超原理中的FPGA是什么意思
在为了满足视频显示的实时性,该采集系统采用双帧存结构的乒乓机制,由FPGA实现读写互锁控制。经帧相关处理完后的视频数据交替写入帧存A和帧存B,帧存读控制器根据后端处理速度读取帧存中的数据,送往DMA控制器,DMA控制器开启DMA通道进行数据传输。FPGA实现读写控制时,为了避免同时对一个帧存进行读写操作,需要设置读写...

各位大神,我在用FPGA做VGA显示,利用了乒乓存储,现在显示的图像会不断...
你现在现象感觉数据是正确的,但数据对应VGA的位置一直在变化。 因此, 确认同步脉冲的检测是否正确(行、列),存储的图形数据是否有溢出, 读写时序是否有延迟等等。另外,确认你在乒乓操作时的切换逻辑是否一直有延迟。

verilog编程技巧
串并转换是 FPGA设计的一个重要技巧,它是数据流处理的常用手段,也是面积与速度互换思想的直接体现。串并转换的实现方法多种多样,根据数据的排序和数量的要求,可以选用寄存器、 RAM 等实现。前面在乒乓操作的图例中,就是通过 DPRAM 实现了数据流的串并转换,而且由于使用了 DPRAM,数据的缓冲区可以开得很大,对于数量比...

fpga芯片可以干嘛用的
FPGA(现场可编程门阵列)技术在多个领域中都有着广泛的应用。以下是FPGA芯片的一些主要用途:1. 视频处理:FPGA芯片在视频分割系统中扮演着重要角色。它们能够通过预先编程的逻辑结构,灵活地调整内部电路,优化数据路径,从而加速图像处理。例如,乒乓技术和流水线技术能够提高视频信号的处理速度。此外,FPGA...

相似回答