新闻中心

EEPW首页>EDA/PCB>设计应用> 基于FPGA 的DDR SDRAM控制器在高速数据采集系统中

基于FPGA 的DDR SDRAM控制器在高速数据采集系统中

作者: 时间:2012-11-05 来源:网络 收藏

3.2各模块结构图

系统的顶层文件DATA_SAMPLE 的结构如图5 所示,内置的主要有前端缓存模块DATATO_RAM、后端缓存模块TO_LD 和的控制模块。从数据流程上看,前端缓存将双路AD 采集到的数据合并成64 位,当缓存中的数据达到设定的存储深度时,控制模块在100MHz 的时钟下将数据读出,并将64 位数据拆分成32 位分别存储到两片SDRAM 中。进入到读状态时,控制模块同时从两片DDR SDRAM 中读出32位的数据,根据用户所选择的数据通道,控制逻辑将相应的数据送入后端缓存中,后端缓存再将数据拆分成16 位,通过PCI 局部总线传送到上位机中。从控制流程上看,DATATO_RAM和TO_LD 中都设置了数据计数器,当DATATO_RAM 中存储的数据量超过设定值时,读使能RDEN 有效,控制模块从缓存中一次读走4 个数据。后端缓存的控制方式与此类似。

控制模块SDRAM 由两部分组成,其结构如图6 所示。其中ADDR 为地址产生模块,给控制核ddr_sdram 提供数据操作的行地址和列地址。控制核ddr_sdram 完成的功能包括将内部状态转换产生的CMD 控制命令译码成DDR SDRAM 所能实现的各种操作并实现以双倍的速率与DDR SDRAM 进行数据交换的接口。ddr_sdram 的结构框图如图7 所示。

控制核ddr_sdram 采用自顶而下模块化的设计方法,由4 个模块构成:ddr_sdram 顶层模块、控制接口模块、命令模块和数据路径模块。ddr_sdram 顶层模块初始化并把其余三个模块有机地结合起来;控制接口模块接收CMD 命令和相关存储器地址,对命令进行译码并将请求发送给命令模块;命令模块接收从控制接口模块译码后的命令和地址,产生相应的命令给DDR SDRAM;数据路径模块在读命令READA 和写命令WRITEA 期间处理数据交换。控制接口模块包含1 个命令译码器和1 个16 位的刷新减计数器及相应的控制电路。 命令译码器译码并将译码后的命令及相应的地址转送给命令模块。减计数器和相应的控制电路用来产生刷新命令给命令模块。其值就是由LOAD_REG2 命令写入到REG2 中的值。当计数器减到0 时,控制接口模块就向命令模块发Request 并一直保持到命令模块发Ack 来响应该请求。一旦控制接口模块接收到Ack,减计数器就会重新写入REG2 中的值。命令模块由1 个简单的仲裁器、命令发生器及命令时序器组成。它接收从控制接口模块来的译码后的命令,同时接收刷新控制逻辑发来的刷新请求命令并产生正确的命令给DDR SDRAM。仲裁器在控制接口发来的命令和刷新控制逻辑发来的刷新请求命令之间进行仲裁。刷新请求命令的优先级高于控制接口来的命令。

在仲裁器收到命令译码器发来的命令后,该命令就传送到命令发生器,命令时序器即用3 个移位寄存器产生正确的命令时序后发给DDR SDRAM。1 个移位寄存器用来控制激活命令时序,1 个用来控制READA 和WRITEA命令,1 个用来计时操作命令的持续时间,为仲裁器确定最后的请求操作是否完成。数据路径模块提供了DDR SDRAM 到的数据通道。在和DDR SDRAM 接口的一方,数据路径模块将从DDR SDRAM 过来的数据总线宽度翻倍,并在200MHz 的时钟频率接收DDR SDRAM 在100MHz 时钟的上下沿送出的数据。在和接口的一方,数据路径模块将从FPGA 送来的数据宽度减半并以2 倍的速率送给DDR SDRAM。4 系统实现的功能及结果分析逻辑分析仪SignalTap II 是Quartus II 软件中集成的一个内部逻辑分析软件,使用它可以观察本设计的内部信号波形。在系统的软件设计和仿真完成之后,将编译后的文件下载到系统的硬件中,对DDR SDRAM的状态转移和读写流程中各个信号进行了实时的采集与显示。

如图8 所示,是读数据时嵌入式逻辑分析仪采集到的波形图。第9 行到第15行的信号显示的是读流程中各状态之间的切换过程。读命令发出之后,经过CAS 潜伏期,DDR SDRAM 突发传输8 个数据,并产生选通信号DQS。控制器在读到数据线DQ 上的数据后,将数据宽度加倍,传送到后端缓存中。



关键词:SDRAMFPGADDR控制器

评论


相关推荐

技术专区

关闭