完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嗨,
我用VHDL开发了一个用于DDR SDRAM的控制器。 我正在测试Chipscope中代码的稳健性,当我像01,02,03,04,05,06,07,08,09,0a,0b,0c,0d,0e那样连续写入数据(8位)时 ,0f,10,11,12,.......我能够正确读取数据。 但是当把数据写成00,ff,00,ff,00,ff,00,ff,00,ff,00,ff,......我无法正确读取数据时,我得到像40这样的东西,fe ,40,fe,40,fe,01,fe,....那么,从读数据我们可以看出,几个位并没有同时改变状态,解决这个问题的任何解决方案? 问候, 维杰 |
|
相关推荐
9个回答
|
|
它可能取决于如何定义PERIOD约束,因为输入时钟通过时钟管理进行路由,您需要确保约束也会通过。
为此,我认为您需要将输入时钟指定为TNM_NET,如下所示: NET“clock50”TNM_NET =“clock50”; TIMESPEC“TS_clock50”= PERIOD“clock50”20 ns HIGH 50%; 据我所知,这允许工具为生成的时钟导出正确的时钟关系。 你可能已经这样做了,但你还没有说清楚。 对于DDR接口,我认为您应该指定OFFSET = IN和OFFSET = OUT约束,以强制工具满足接口的要求。 我真的,真的,建议您阅读时序收敛指南UG612以获得此处理。 ----------“我们必须学会做的事情,我们从实践中学习。” - 亚里士多德 在原帖中查看解决方案 |
|
|
|
你能为设计提供所有的时序约束吗?当你模拟时你会看到你的模拟RAM模型产生相同的效果吗?
----------“我们必须学会做的事情,我们从实践中学习。” - 亚里士多德 |
|
|
|
vijayakumard写道:
嗨, 我用VHDL开发了一个用于DDR SDRAM的控制器。 我正在测试Chipscope中代码的稳健性,当我像01,02,03,04,05,06,07,08,09,0a,0b,0c,0d,0e那样连续写入数据(8位)时 ,0f,10,11,12,.......我能够正确读取数据。 但是当把数据写成00,ff,00,ff,00,ff,00,ff,00,ff,00,ff,......我无法正确读取数据时,我得到像40这样的东西,fe ,40,fe,40,fe,01,fe,....那么,从读数据我们可以看出,几个位并没有同时改变状态,解决这个问题的任何解决方案? 问候, 维杰 听起来像是经典的计时问题。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
维杰,
这与你的其他线程中的问题相同吗? http://forums.xilinx.com/t5/New-Users-Forum/How-to-match-exactly-the-Behavioral-and-Post-Route-simulations/m-p/345629#M5383 请看那边的回复。 如果您错误地异步采样,那么您的失败绝对是我所期望的。 你看到的数据可能只是在chipcope输入端被错误捕获。 - 标记 |
|
|
|
我只给出了一个约束,即PERIOD约束。
我正在给出50 MHz时钟作为MMCM的输入时钟,因为我正在生成所需的时钟。 所以,我给出了50 MHz时钟的PERIOD约束。 当我进行后置路由模拟时,时钟不是同步的,并且存在对数据的建立和保持违规。 那么,你能建议我解决这个问题吗? 问候, 维杰 |
|
|
|
它可能取决于如何定义PERIOD约束,因为输入时钟通过时钟管理进行路由,您需要确保约束也会通过。
为此,我认为您需要将输入时钟指定为TNM_NET,如下所示: NET“clock50”TNM_NET =“clock50”; TIMESPEC“TS_clock50”= PERIOD“clock50”20 ns HIGH 50%; 据我所知,这允许工具为生成的时钟导出正确的时钟关系。 你可能已经这样做了,但你还没有说清楚。 对于DDR接口,我认为您应该指定OFFSET = IN和OFFSET = OUT约束,以强制工具满足接口的要求。 我真的,真的,建议您阅读时序收敛指南UG612以获得此处理。 ----------“我们必须学会做的事情,我们从实践中学习。” - 亚里士多德 |
|
|
|
大家好,
最后,正如你所说,我指定了OFFSET OUT约束。 然后我的代码开始给出正确的结果,没有任何误码。 我要感谢Howard,Mark,Deepika,Vanitha和Gabor提出的宝贵建议。 温暖的问候, 维杰 |
|
|
|
|
|
|
|
嗨霍华德,
####约束#### NET“ddr_main_clk”TNM_NET =“ddr_main_clk”; TIMESPEC TS_ddr_main_clk = PERIOD“ddr_main_clk”20 ns HIGH 50%; OFFSET = OUT 1.5 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ck”上升; OFFSET = OUT -1.5 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ck”上升; OFFSET = OUT 1.8 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ck”FALLING; OFFSET = OUT -1.2 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ck”FALLING; OFFSET = OUT 1.8 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ckn”上升; OFFSET = OUT -1.2 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ckn”上升; OFFSET = OUT 1.5 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ckn”FALLING; OFFSET = OUT -1.5 ns有效3 ns后“ddr_main_clk”REFERENCE_PIN“ddr_ckn”FALLING; 问候, 维杰 |
|
|
|
只有小组成员才能发言,加入小组>>
2429 浏览 7 评论
2831 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2298 浏览 9 评论
3378 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2468 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1377浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
596浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
461浏览 1评论
2014浏览 0评论
738浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-29 13:14 , Processed in 2.199224 second(s), Total 92, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号