乒乓操作是一个主要用于数据流控制的处理技巧,典型的乒乓操作如下图所示。
外部输入数据流通过“输入数据选择控制”模块送入两个数据缓冲区中,数据缓冲模块可以为任何存储模块,比较常用的存储单元为双口RAM(Dual RAM)、SRAM、SDRAM、FIFO等。
在第1个数据缓冲周期,将输入的数据流缓存到“数据缓冲1”模块。在第2个缓冲周期,“输入数据选择控制”模块将输入的数据流缓存到“数据缓冲2”模块中的同时,“输出数据选择控制”模块将“数据缓冲1”模块第1个周期缓存的数据流送到“后续处理”模块进行后续的数据处理。在第3个缓冲周期,在“输入数据选择控制”模块的再次切换后,输入的数据流缓存到“缓冲数据1”模块,与此同时,“输出数据选择控制”模块也做切换,将“数据缓冲2”模块缓存的第2个周期的数据送到“后续处理”模块,如此不断循环。
这里正是用到了乒乓操作完成数据的无缝缓冲与处理。乒乓操作可以通过“输入数据选择控制”和“输出数据选择控制”按节拍、相互配合地进行来回切换,蒋经国缓冲的数据流没有停顿的送到“后续处理”模块。
应用实例:在液晶显示使用乒乓操作可以提高图像的切换速度。
对于外部接口传输的图像数据,以一帧图像为单位进行SDRAM的切换控制。当SDRAM1缓存图像数据时,液晶显示的是SSRAM2的数据图像;反之,当SDRAM2缓存图像数据时,液晶显示的是SDRAM1的数据图像;如此反复,这样处理的好处在于液晶显示的图像数据瞬间切换完成,掩盖了可能比较缓慢的图像数据流变化过程。
摘抄自:《深入浅出玩转FPGA》