微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的像素探测器数据缓存设计

基于FPGA的像素探测器数据缓存设计

时间:12-27 来源:互联网 点击:

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,符合像素探测器数据缓存要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top