在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3649|回复: 4

[原创] 关于XILINX SP6 MCB使用 调试经验分享

[复制链接]
发表于 2013-6-3 20:09:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
最近一直在调试XILINX SP6的 MCB 从DDR2到DDR3。DDR2调试还算顺利,移植到DDR3出现了一些意外情况,在网上搜索没有找到相似的答案,自己研究终于搞定,鉴于自己一直在网上享受别人的恶成果,没有贡献过自己的成果,这一次我决定花时间,写下调试过程给大家分享,以免跟我遇到一样问题的人浪费不必要的时间。

移植到DDR3后发现,cmd_fifo的cmd_full会跑一段时间后一直拉高,相当于死掉。一开始怀疑是电源供电不足,检查了电源,发现电源稳定,经过一系列验证后,基本确定是FPGA的问题。
然后从FPGA入手,换了好几个版本的MCB依然不能解决,后来开始查UCF,首先发现自己UCF用的是DDR2改过来的,发现时序约束3.333ns而我跑的是333MHz,以为找到原因,修改UCF发现仍然没解决。

而后又发现,SP6-2生成333MHz的MCB后ucf中 : CONFIG MCB_PERFORMANCE= EXTENDED;
而以前ddr2的ucf中是 : CONFIG MCB_PERFORMANCE= STANDARD;
修改后,发现仍然没有搞定。

然后我只好降频,把DDR3的频率由333MHz降到300MHz,综合加载后,发现现象消除能解决。这样我就基本确定是时序跑不对,
应该是板子制造工艺没达到要求。
但是我没有放弃,我继续对照ucf发现,ddr3的 ucf中,sdram_xx信号的IOSTANDARD约束后面还增加了OUT_TERM = UNTUNED_50的约束,怀疑既然特别增加的肯定有它的意义,是不是就是这个影响了板子时序呢,再次把ddr3的频率修改回成333MHz,把“OUT_TERM = UNTUNED_50”约束加上,至此,ucf已经全部改成和生成core时推荐的一样,跑bit加载,发现现象解决了。


总结:由于自己是从ddr2的设计直接改过来的,没有注意到细节,所以最最重要的用xilinx 的mcb一定要遵循xilinx 的任何推荐,除非他有说明,可以怎样怎样,不然完全遵循,肯定不会出错。


现在看来,原因是找到了,但是自己一开始怀疑是我控制用户接口的逻辑错了,着实让我花了很多时间和精力。但是这个却是一开始可以避免的,但是通过这个错误,更加让我加深了对MCB的认识,也是有收获的。
发表于 2014-1-7 13:08:52 | 显示全部楼层
really?
发表于 2014-2-24 06:10:27 | 显示全部楼层
顶!!!!!!!!!!!!!!!!!!!!
发表于 2014-2-24 08:35:31 | 显示全部楼层
有时候核生成的ucf也需要稍微改动的
发表于 2014-3-12 14:28:18 | 显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-6 05:20 , Processed in 0.028005 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表