问题描述
在MIG生成的控制器设计中,刷新率设置为7.8微秒。
解决/修复方法
从MIG 2.1发布开始, MIG用户指南中提供了此信息。有关详细信息,请参阅MIG用户指南 。
更改Virtex-5 DDR和DDR2接口的刷新率
更改顶级参数TREFI_NS,以设置选定的刷新间隔(以纳秒为单位)。
控制器大约每个(TREFI_NS * 1000)/ CLK_PERIOD时钟周期发出刷新,其中CLK_PERIOD是以皮秒为单位定义时钟周期的顶级参数。如果上面的公式超过4095,则必须手动将CTRL模块中的信号refi_cnt_r扩展到12位以上。
CKE计数器用于刷新间隔以倒计时。如果要更改TREFI_NS,还必须在ddr2_phy_init hdl文件中修改cke_200us_cnt_r。这可确保保留200us的初始化时间。您需要根据对刷新间隔所做的更改来添加或删除位。
使用直接时钟读取捕获方法和Virtex-4 DDR接口更改Virtex-4 DDR2接口的刷新率
更改文件“mymodule_parameters_0.v”(或.vhd)中的全局定义(对于Verilog)或常量(对于VHDL)变量max_ref_cnt ,以便max_ref_cnt =(时钟周期中的刷新间隔)=(刷新间隔)/(时钟周期) 。例如,对于以200 MHz运行的内存总线,刷新率为3.9微秒:
max_ref_cnt = 3.9微秒/(时钟周期)= 3.9微秒/ 5 ns = 780(十进制)= 0x30C
如果上述值超过(2 ^ max_ref_width – 1),则必须在“parameters_0.v / vhd”文件中相应增加max_ref_width的值,以增加用于跟踪刷新间隔的计数器的宽度。
使用SERDES读取捕获方法更改Virtex-4 DDR2接口的刷新率
该公式类似于Virtex-4 DDR2直接时钟盒。但是,由于控制器中的刷新逻辑以内存总线速率的一半运行,因此公式为max_ref_cnt =(刷新间隔)/(2 *时钟周期)。例如,对于以267 MHz运行的内存总线,刷新率为3.9us:
max_ref_cnt = 3.9 us /(2 *时钟周期)= 3.9 us / 7.49 ns = 521(十进制)= 0x209
如果上述值超过(2 ^ max_ref_width – 1),则必须在“parameters_0.v / vhd”文件中相应增加max_ref_width的值,以增加用于跟踪刷新间隔的计数器的宽度。
更改Spartan-3 / -3E设计的刷新率
公式和修改过程与Virtex-4 DDR和DDR2直接时钟接口相同。
没有回复内容