为了方便测试,针对A板的硬件开发了FPGA代码,由于A板加工周期较长,无法按照正程流程进入调试。使用与A板相同FPGA型号的B板进行调试,A板与B板大部分外设相同,区别可能是管脚约束不一样。
A板和B板的DDR管脚是不相同的,A板使用的是5片256M的DDR芯片,而B板使用的是4片256M的DDR芯片,在生成IP核的时候,除了更新DDR的UCF文件,还有一个重要信号就是DM信号。对于A板而言,生成mig核的时候,不会有DM信号,需要在IP核外单独控制DM信号,将DM赋值为0,并输出到端口。对于B板而言,生成mig核的时候,带有dm信号,不需要在核外单独控制dm信号,但需要将DM信号输出到端口,否则会报DM信号属性不能设置的严重警告。
对于这样的错误,查找错误原因的主要点其实是显而易见的,两个工程的差别仅仅存在于DM信号,应该将跟DDR相关的所有信号进行查看,直至输入输出端口,而不是一直拘泥于mig核的生成,结果跑了一天半的工程仍然报此严重警告