看看这个帖子吧,上面有解释 可能问题 1。有把。。。\coregen\mem_interface_top_withtb\rtl里所有文件加到新工程里吗? 2。有把。。。\coregen\mem_interface_top_withtb\sim里所有文件加到新工程里吗? 3。有把'board_file' 改成顶层模块的名字吗? 4。由认真看readme文本里的最后一段吗? Notes : To run simulations for different data widths and configurations, users should modify the test bench files with right memory models and design files. User should modify the sys_clk_in and sys_clk_in_L frequency in test bench according to the frequency selected for the design. 这涉及到你用mig生成的核是针对什么型号的DDR的,数据和地址位宽,工作频率等相关参数。 然后根据这些到ddr_parameters.v文件里看看你用到的那段的相关参数(被注释掉地就不管了)和你ddrdatasheet提供的参数要求是不是相符 ,比如下面这段: parameter tCK = 5.0; // tCK ns Nominal Clock Cycle Time parameter tDQSQ = 0.4; // tDQSS ns DQS-DQ skew, DQS to last DQ valid, per group, per access parameter tMRD = 10.0; // tMRD ns Load Mode Register command cycle time parameter tRAP = 15.0; // tRAP ns ACTIVE to READ with Auto precharge command parameter tRAS = 40.0; // tRAS ns Active to Precharge command time parameter tRC = 55.0; // tRC ns Active to Active/Auto Refresh command time parameter tRFC = 70.0; // tRFC ns Refresh to Refresh Command interval time parameter tRCD = 15.0; // tRCD ns Active to Read/Write command time parameter tRP = 15.0; // tRP ns Precharge command period parameter tRRD = 10.0; // tRRD ns Active bank a to Active bank b command time parameter tWR = 15.0; // tWR ns Write recovery time 还有这段: parameter ADDR_BITS = 13; // Set this parameter to control how many Address bits are used parameter DQ_BITS = 16; // Set this parameter to control how many Data bits are used parameter DQS_BITS = 2; // Set this parameter to control how many DQS bits are used parameter DM_BITS = 2; // Set this parameter to control how many DM bits are used parameter COL_BITS = 9; // Set this parameter to control how many Column bits are used 以上这些参数是我的ddr的参数,只是举个例子。 应该可以跑仿真了吧 还不行的话,就再把ddr.v文件打开,到最后一段,还有几个参数,对照你的ddr的datasheet修改一下,再不行就见鬼了。 比如我的: specparam tDSS = 1.0; // tDSS ns DQS falling edge to CLK rising (setup time) = 0.2*tCK specparam tDSH = 1.0; // tDSH ns DQS falling edge from CLK rising (hold time) = 0.2*tCK specparam tIH = 0.600; // tIH ns Input Hold Time specparam tIS = 0.600; // tIS ns Input Setup Time specparam tDQSH = 1.75; // tDQSH ns DQS input High Pulse Width = 0.35*tCK specparam tDQSL = 1.75; // tDQSL ns DQS input Low Pulse Width = 0.35*tCK 以上这些只能解决功能仿真问题,至于后仿真我这边还有问题,知道告诉我一声:) 另:用于跑波形的test_top里面的clk,reset信号的赋值也要根据你自己的需要手动设置一下。 http://www.edacn.net/bbs/viewthread.php?tid=82867
[此贴子已经被admin于2007-8-14 17:19:02编辑过] |