介绍下用MIG成的DDR2 SDRAM控制器.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
介绍下用MIG成的DDR2 SDRAM控制器

MIG2.0是Xilinx内嵌在ISE中用来生成各种IP核的软件工具,可以用它来直接生成DDR2控制器设计模块,模块包含可自由修改的HDL源代码和约束文件。用户可以在MIG的GUI图形界面根据所选的存储器件选择对应模板、总线宽度和速度级别,并设置CAS延迟、突发长度、引脚分配等关键参数。如果所选器件与MIG所列模板不相符,可在代码生成后灵活修改这些代码。 DDR2 SDRAM控制器参考设计主要包含四个模块:Infrastructure module(基础模块)、Data_Path module(数据通道模块)、Controller module(控制模块)和IOBs module(输入输出接口模块)。 Infrastructure module产生控制器工作的时钟和复位信号,时钟信号由内部的DCM(时钟管理单元)对外部输入的时钟倍频产生,模块还包含一个延迟校准监视器,用来校准读数据选通脉冲(DQS)对读数据(DQ)的延迟,使读数据选通脉冲边沿正确对齐DQ有效窗口的中间位置,以便正确锁存读数据。 Data_Path module负责传输数据,在写操作时将写数据传送给DDR2 SDRAM;在读操作时将DDR2发送过来的数据寄存并同步到系统时钟去。 Controller module负责DDR2 SDRAM的上电初始化,在初始化后接收用户的指令并将其译码产生读写和相关的控制信号,此外控制器也为其他模块提供控制信号以辅助这些模块完成其功能。 控制器所有的输入/输出信号都在IOBs module中被接收或者发送,而所有地址和控制信号在IOB中都用触发器打一拍后再被送出,以最大限度的满足DDR2 SDRAM的建立和保持时间。 用户接口信号 信号名称 方向 描述 reset_in I 系统复位 user_input_data[31:0] I 写数据,DQS的上升沿传送写数据的高16位,DQS的下降沿传送写数据的低16位 user_data_mask[3:0] I 写数据的数据屏蔽位,高2位负责上升沿数据的屏蔽,低2位负责下降沿数据的屏蔽 user_output_data[31:0] O 读出数据 user_data_valid I 为‘1’时代表读出数据有效 user_input_address[22:0] I 行列地址,行地址在高位,列地址在低位 user_bank_address[1:0] I DDR2 SDRAM的bank地址 user_command_reg[3:0] I DDR2控制器的命令寄存器 user_cmd_ack I 为‘0’代表允许用户发出命令 init_val I 为‘1’代表初始化操作已完成 burst_done O 为‘1’时终止突发操作 rst_dqs_div_in I 在读操作时被置‘0’,由控制器自动产生,用户无需输入 rst_dqs_div_out O 在外部与rst_dqs_div_in连接 系统上电后,用户发出初始化命令,控制器负责对DDR2进行寄存器的配置及其他初始化操作,待初始化完成后,控制器置init_val为‘1’,然后用户就可以继续对DDR2 SDRAM进行读写等操作。 用户命令 user_command_reg[3:0] 描述 0000 空操作 0010 初始化命令 0100 写命令 0110 读命令 其他 保留 在写DDR2的过程中,用户将写命令、要写入的数据和目的地址通过用户接口传送给控制器,如图所示。写命令在与系统时钟有180°相位差的clk180时钟的上升沿发送,控制器在clk180的上升沿置user_cmd_ack为‘1’,通知用户写命令已收到。当突发长度(BL)为4时,每个目的地址对应4个写数据,每个时钟对应2个(32位)的写数据。要终止突发写操作,需要将burst_done信号在最后一个地址发出后置‘1’,并保证两个时钟周期有效,控制器在检测到burst_done有效后将终止写操作,并发出写后自动预充电命令对当前工作行进行预充电。预充电结束后,控制器将usr_cmd_ack置‘0’,告知用户可以继续对DDR2进行读写操作。 在读DDR2的过程中,用户将读命令和目的地址通过用户接口传送给控制器,如图所示。读命令在时钟clk180的上升沿发送,控制器接收到读命令后置user_cmd_ack为‘1’,通知用户读命令已收到。控制器在采集到读数据后,置user_data_valid信号为‘1’,告知用户读取。要终止突发读操作,具体操作与终止突发写操作同,在此就不再赘述。 需要注意的是rst_dqs_div_in(输入信号)和rst_dqs_div_out(输出信号)是参考设计额外引出的一根外部环回信号,rst_dqs_div_out由控制器产生

文档评论(0)

hhax1 + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档