位置:51电子网 » 技术资料 » EDA/PLD

DDR SDRAM控制器的FPGA实现

发布时间:2008/5/28 0:00:00 访问次数:510

摘要:ddr sdram高容量和快速度的优点使它获得了广泛的应用,但是其接口与目前广泛应用的微处理器不兼容。介绍了一种通用的ddr sdram控制器的设计,从而使得ddr sdram能应用到微处理器中去。

关键词:ddr sdram控制器 延时锁定回路 fpga

ddr sdram是建立在sdram的基础上的,但是速度和容量却有了提高。首先,它使用了更多的先进的同步电路。其次,它使用延时锁定回路提供一个数据滤波信号。当数据有效时,存储器控制器可使用这个数据滤波信号精确地定位数据,每16位输出一次,并且同步来自不同的双存储器模块的数据。

ddr sdram不需要提高时钟频率就能加倍提高sdram的速度,因为它允许在时钟脉冲的上升沿和下降沿读写数据。至于地址和控制信号,还是跟传统的sdram一样,在时钟的上升沿进行传输。

由于微处理器、dsp等不能直接使用ddr sdram,所以本文介绍一种基于fpga的ddr sdram控制电路。

图1 ddr sdram控制器逻辑图

1 ddr sdram控制器的设计

1.1总体逻辑图

ddr sdram控制器的总体逻辑图如图1所示。主要由ddr控制模块(controller)、ddr接口模块ddr_interface以及延时锁定回路模块(dll)三部分组成。下面详细介绍各个模块的设计。

1.2 ddr控制模块的设计

ddr控制模块包含了主要的状态转换。处理器通过sys_cmd对ddr控制模块写入命令,完成总线仲裁、解释命令、时序分配等任务。当ddr接口模块对ddr sdrar数据读写时便进行控制。

控制器的状态机如图2所示。控制器开始设置在空闲(idle)状态,接下去的状态根据控制命令的不同可以是预充电precharge、导入模式寄存器load mode register、刷新refresh、有效active等状态。要进入读写数据状态,必须先经过有效状态。读数据时,状态机由有效状态转换为读准备状态 然后根据指令进入读状态。控制模块保持在读状态直到脉冲终止命令触发或者数据读完。写的过程与读类似,在后面的接口模块中将详细介绍。

1.3 ddr接口模块

ddr接口模块负责维持外部信号、ddr控制器与ddr sdram之间的双向数据总线信号,保证数据和命令能送达ddr sdram。

图3给出了读写操作的数据流框图。对写周期而言,128位的sys_data_i被fpga_clk2x分频为64位的数据,通过lac_clk选择高低位。为了减小输入输出的延迟,数据在进出模块时都将被保存在输入输出寄存器中。ddr_write_en产生ddr_dq所需的三态信号。

对于写周期而言,64位的ddr_dq信号在输入输出寄存器被fpga_clk2x触发装配成128位的信号,其中低位信号在下降沿时被装配,高位信号在上升沿时被装配。

图4给出了一个典型的写操作的波形图。在t1期间,写命令、地址和第一个128位数据被分别置于sys_cmd、sys_addr和sys_data_i三个端口。在t2期间控制器的状态由空闲转变为有效。接下来两个周期,控制器给出active命令以及行片选地址。再经3个周期的延迟以后,控制器给出writea命令和列片选地址。接下来,ddr_dq和ddr_dqs被设置成双倍速率模式。

图3 读写数据流框图

1.4 dll模块

图5示出了给fpga以及ddr sdram提供时钟信号的两个dll模块的结构图。第一个dll模块,即dll_ext给ddr sdram提供ddr_clk及dd

摘要:ddr sdram高容量和快速度的优点使它获得了广泛的应用,但是其接口与目前广泛应用的微处理器不兼容。介绍了一种通用的ddr sdram控制器的设计,从而使得ddr sdram能应用到微处理器中去。

关键词:ddr sdram控制器 延时锁定回路 fpga

ddr sdram是建立在sdram的基础上的,但是速度和容量却有了提高。首先,它使用了更多的先进的同步电路。其次,它使用延时锁定回路提供一个数据滤波信号。当数据有效时,存储器控制器可使用这个数据滤波信号精确地定位数据,每16位输出一次,并且同步来自不同的双存储器模块的数据。

ddr sdram不需要提高时钟频率就能加倍提高sdram的速度,因为它允许在时钟脉冲的上升沿和下降沿读写数据。至于地址和控制信号,还是跟传统的sdram一样,在时钟的上升沿进行传输。

由于微处理器、dsp等不能直接使用ddr sdram,所以本文介绍一种基于fpga的ddr sdram控制电路。

图1 ddr sdram控制器逻辑图

1 ddr sdram控制器的设计

1.1总体逻辑图

ddr sdram控制器的总体逻辑图如图1所示。主要由ddr控制模块(controller)、ddr接口模块ddr_interface以及延时锁定回路模块(dll)三部分组成。下面详细介绍各个模块的设计。

1.2 ddr控制模块的设计

ddr控制模块包含了主要的状态转换。处理器通过sys_cmd对ddr控制模块写入命令,完成总线仲裁、解释命令、时序分配等任务。当ddr接口模块对ddr sdrar数据读写时便进行控制。

控制器的状态机如图2所示。控制器开始设置在空闲(idle)状态,接下去的状态根据控制命令的不同可以是预充电precharge、导入模式寄存器load mode register、刷新refresh、有效active等状态。要进入读写数据状态,必须先经过有效状态。读数据时,状态机由有效状态转换为读准备状态 然后根据指令进入读状态。控制模块保持在读状态直到脉冲终止命令触发或者数据读完。写的过程与读类似,在后面的接口模块中将详细介绍。

1.3 ddr接口模块

ddr接口模块负责维持外部信号、ddr控制器与ddr sdram之间的双向数据总线信号,保证数据和命令能送达ddr sdram。

图3给出了读写操作的数据流框图。对写周期而言,128位的sys_data_i被fpga_clk2x分频为64位的数据,通过lac_clk选择高低位。为了减小输入输出的延迟,数据在进出模块时都将被保存在输入输出寄存器中。ddr_write_en产生ddr_dq所需的三态信号。

对于写周期而言,64位的ddr_dq信号在输入输出寄存器被fpga_clk2x触发装配成128位的信号,其中低位信号在下降沿时被装配,高位信号在上升沿时被装配。

图4给出了一个典型的写操作的波形图。在t1期间,写命令、地址和第一个128位数据被分别置于sys_cmd、sys_addr和sys_data_i三个端口。在t2期间控制器的状态由空闲转变为有效。接下来两个周期,控制器给出active命令以及行片选地址。再经3个周期的延迟以后,控制器给出writea命令和列片选地址。接下来,ddr_dq和ddr_dqs被设置成双倍速率模式。

图3 读写数据流框图

1.4 dll模块

图5示出了给fpga以及ddr sdram提供时钟信号的两个dll模块的结构图。第一个dll模块,即dll_ext给ddr sdram提供ddr_clk及dd

相关IC型号
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!