altera ddr2控制器求助,快疯了!
时间:10-02
整理:3721RD
点击:
用的是de4的板子,ep4sgx540kh40c2的器件。软件为quartus9.1 sp2.先用de4自带的DE4_DDR的工程跑了,通过,证明板子是好的。然后在自己的项目里,生成ddr2的ip,所有参数都和DE4_DDR的配置一样。然后仿真也是通过的。但是下载到板子后,init_done信号始终为低。cas_n,we_n,ras_n三个信号一直为低。用signaltap抓控制器内部的信号,发现seq_wrapper中的输出seq_ac_cas_n等信号都是有的,变化也和仿真时初始化的过程一样,但是最后经过一个stratixiii_ddio_out的模块后,就一直为低。而模块的所有输入都是正确的。想在signaltp中抓这个模块,但是无法进行,估计这个是altera自己的一个io库吧。
后来实在没办法,在原来能过的DE4_DDR的工程里,添加我原来项目的所有文件,结果这次上板就通过了,读写也正常。即使把ddr2控制器改动下,重新生成也是可以通过的。但无论如何在自己的工程里,就始终是仿真通过,上板就是信号拉低。
所以想请教下高手们,这到底是什么原因?
另外有个问题,关于pin_assignment.tcl的。我看说明说,需要在里面修改顶层的名字。但是我看自带的DE4的工程里,顶层是de4_ddr,管脚都是M1_DDR*这样的格式,而在脚本里确实ddr2的实例化名字,这样运行难道没问题嘛?
后来实在没办法,在原来能过的DE4_DDR的工程里,添加我原来项目的所有文件,结果这次上板就通过了,读写也正常。即使把ddr2控制器改动下,重新生成也是可以通过的。但无论如何在自己的工程里,就始终是仿真通过,上板就是信号拉低。
所以想请教下高手们,这到底是什么原因?
另外有个问题,关于pin_assignment.tcl的。我看说明说,需要在里面修改顶层的名字。但是我看自带的DE4的工程里,顶层是de4_ddr,管脚都是M1_DDR*这样的格式,而在脚本里确实ddr2的实例化名字,这样运行难道没问题嘛?
可能是pin_assignment有问题,打开综合报告.qsf文件,看看里面的ddr管脚分配正确不
我关于qsf中关于管脚的部分,直接复制DE4工程中的部分。就是把里面一个group改成是tcl脚本中的group,因为两次生成的时候不一样,group的数字不一样。
我本来是想运行tcl脚本的,但是我现在比较迷惑的是,我ip的顶层确实是mem_*的命名,但是项目的顶层是M1_DDR*的命名,那我到底tcl中该如何修改呢?我看DE4_DDR中好像没有管这个,tcl还是mem的命名
自己顶了
你最顶层是什么就改成什么!那两个TCL文件肯定要执行的,是SOPC生成的还要改一个地方~
改哪里?
多关注这方面的信息啊
你是不是忘记加SDC文件了?还有就是TCl文件里面,有个管脚设置的地方要和你fpga的顶层文件的DDR2控制器名称一致。我也用的DE4,DDR2用过HP2和Uniphy都可以正常使用。
刚开始开发DDR,最近也遇到了这样的疑惑,不知道如何使用TCL文件了,请问小编解决这个问题了没