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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1659|回复: 3

[求助] 终于,我也遇到了时序问题了,激动求解中

[复制链接]
发表于 2014-9-28 14:29:50 | 显示全部楼层 |阅读模式

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

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

x
最近遇到一些问题,代码里有两个20M时钟,一个是外部芯片的输入时钟,一个是片内PLL产生的20mHz。另外还有一个是33Mhz的PCI总线输入时钟。最初写代码时,我认为20MHz也不算高频,并且工程也不大, 于是就没有注意跨时钟域的处理和时钟约束,现在代码写完了,调试时遇到了很头疼的问题,就是代码不稳定。代码功能是对CCD进行图像采集,现在的运行情况,采到50几左右,图像就错掉了。
由于情况不稳定,无法设置准确的捕捉条件,我用signaltap捉了好几天才捉到几个造成不稳定情况的因素。主要如下:

1.状态机跳入了一个未知状态:同时处在了IDLE和READ状态。后来发现原因是:状态机工作在33MHz,而从IDLE到工作状态的跳转条件却是由一个20MHz时钟产生的,虽然33MHz采20MHz,理论上是没有什么问题,但是却导致了状态机跳转不稳定。后来我使用33兆时钟对20兆时钟打了两拍,就暂未出现以上情况。


2.DPRAM的读出数据存在毛刺。原因是:数据同步在片内PLL产生的20MHz,而写时钟却是片外输出的20兆时钟,可能造与写进去的时候就产生了毛刺,从而读出时也产生了毛刺。

        3.一个模块A产生一个20M时钟的低电平脉冲信号,当它传到另一个模块后,用同样的20M时钟去采,居然偶尔会出现采不到的情况。
        以上前两个问题,都是跨时钟域的信号没有进行处理造的,看来时钟问题真的是不管多大的频率都要注意啊,不然是后患无穷。
以前只是在看别人的文档时,了解到对于跨时钟域的信号可能会遇到种种问题,直到现在自己遇到了,才明白其重要性。只是现在还是不大明白,对第1个问题,为何解决方法是打两拍,因为理论是高频采低频是没问题才对啊。另外第2个问题,两个时钟都是20兆,频率一样的,可能只是相位不同,为何会出现毛刺呢?
        对于第3个问题,我真是无解啊,目前出来的错,都是第三个问题造成的,为何两个模块都工作在同一个时钟下,会出现漏采的情况呢
发表于 2014-9-28 17:06:52 | 显示全部楼层
2.DPRAM的读出数据存在毛刺。原因是:数据同步在片内PLL产生的20MHz,而写时钟却是片外输出的20兆时钟,可能造与写进去的时候就产生了毛刺,从而读出时也产生了毛刺

====================
dpram读写时钟是同步的还是异步的?

既然是dpram可以用异步的

如果产生毛刺那是时钟产生有问题。
发表于 2014-9-28 17:07:40 | 显示全部楼层
至于你的第三个问题,如果2个20M是异步的,用的时候还是要小心
发表于 2014-9-29 09:36:03 | 显示全部楼层
时钟无论多慢,对 hold 的影响都一样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-19 21:58 , Processed in 0.018765 second(s), 7 queries , Gzip On, Redis On.

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