请教一下xilinx MIS IP core仿真DDR3时DDR3内存初值的问题
时间:10-02
整理:3721RD
点击:
最近仿真DDR3 RDIMM内存读写,发现在init_done起来以后先去读取DDR3内存,里面的初值不是0。查看ddr3_model.sv里面的代码,里面写了一段:
- `ifdef mem_init
- in = $fopen("mem_init.txt","r");
- while( !$feof(in)) begin
- memory_write(bank, row, col, data);
- ......
- end
- `endif
大义应该是需要读取一个txt文件,按照格式把txt文件内存一次写回到memory中作为初始化初值。
但是我觉得这个mem_init.txt文件会比较大,因为我仿真的DDR3 RDIMM内存大小是8GB。
请问一下大家有什么其他方式能够更方便的为memory仿真赋初值吗?(全零即可)
MIG core 在 init calibra的时候,会反复读写bank0 row 0 ,这样你读的row 0 col 0 的值就和初始化的不一样了。
可以在例化 ddr controller的时候进行设置用哪个bank 哪个row 进行初始化 calibra。
谢谢答复!
再追问一下:
请问这个控制是手动修改这几个参数吗:
- parameter CALIB_ROW_ADD = 'H000;
- parameter CALIB_COL_ADD = 'H000;
- parameter CALIB_BA_ADD = 'H000;
是的。
从未遇到过这个问题呢。
