基于FPGA的像素探测器数据缓存设计
2.3 FIFO输出时序模块
FIFO输出时序模块用于使FIFO的输出信号符合Flash读写时序规范。由FIFO的时序仿真图可以看出,当读请求信号rdreq发出后,数据要延迟15 ns左右才会输出。如果Flash控制器发出读请求信号后立即读FIFO的数据,则会造成差错。因此本模块可以衔接FIFO和Flash控制器的端口时序。
时序仿真图如图6所示。由时序仿真图可以看出,sendready信号相对于empty信号延迟了13 ns左右,dataout信号相对于sendready信号延迟了20 ns左右。可以满足FIFO时序要求。
参照时序仿真图对各个端口及时序进行说明:
clk: FIFO输入时序模块时钟输入,1 bit。用于同步datain16、dataout16、empty、complete、sendready信号,与FIFO中wrclk信号相频相同。
complete: 数据接收完成信号,1 bit。当存储器从模块接收数据完成时发送给FIFO输出时序模块,持续时长1周期,FIFO输出时序模块接收到此信号时对内部数据进行初始化,开始对新的信号输入进行计时。
datain16: 16位数据输入端口,16 bit。用于输入16位数据。
dataout16: 16位数据输出端口,16 bit。用于输出16位数据。
sendready: 数据准备就绪信号,1 bit。当FIFO收到读数据请求信号并且有数据输出时sendready发送有效信号,存储器读取输出数据。
write_en: 写使能信号,1 bit。当要向FIFO中写入数据时为高电平,dataout16进行数据输出。
模块流程图如图7所示。
3 设计验证
3.1 验证
将程序下载到CycloneII FPGA芯片中,并且用按键作为输入信号进行了测试,在控制台上打印 FIFO的输出结果,结果如图8所示。
3.2 验证结果分析
当FIFO中的数据经过时序转换模块可以向存储器写入时,ready信号为1,同时数据写入寄存器并在控制台打印,然后再将寄存器中的数据写入存储器,并向时序转换模块返回完成信号complete高电平1,等待从FIFO中读取新数据。经过验证,本设计可以将输入数据进行缓存并且输出给NiosII CPU,符合像素探测器数据缓存要求。
FPGA IP 嵌入式 PLD CPLD SoC 数字信号处理 消费电子 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)