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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 7006|回复: 13

[讨论] 最近项目中遇到的dcfifo的问题,和大家分享一下!

[复制链接]
发表于 2010-2-22 09:44:03 | 显示全部楼层 |阅读模式

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

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

×
工程中用到一个dcfifo,由Altera的Megafunction生成。

wrclk=33MHz,是外部输入的pci时钟;rdclk=120MHz,是由50MHz的晶振经PLL生成。

实际测试的时候发现运行一段时间就会出现数据错乱的情况。

未修改其他逻辑,只是弃用了板上的50MHz晶振,用33MHz的pci时钟经PLL生成99MHz和132MHz的时钟。fifo的rdclk改为99MHz。另外工程中用到120MHz时钟的模块改为99MHz或132MHz。

再测试就没有问题了。

我们定位问题:33MHz时钟和120MHz时钟无任何相位和频率关系,导致fifo运行不稳定。

但是Altera的文档上根本没有这一限制啊,理论上是不应该出问题的。

这是不是Altera dcfifo的一个......呢???


欢迎有经验的大侠们加入讨论,分享自己的经验啊。
 楼主| 发表于 2010-2-22 09:51:32 | 显示全部楼层
还有就是同样的代码,就是用的板子不是同一块,在客户那里出问题,在我们这里就是不出问题,所以在debug的时候都是远程。我觉得很奇怪......
回复 支持 反对

使用道具 举报

发表于 2010-2-22 16:56:07 | 显示全部楼层
看看里面是否有什么异步处理的时候没处理好,产生了亚稳态的问题
回复 支持 反对

使用道具 举报

发表于 2010-2-22 20:44:06 | 显示全部楼层
与时钟频率关系无关,是逻辑设计的问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-23 09:15:52 | 显示全部楼层
3# 心海的一滴泪
谢谢。

最初的设计33MHz和120MHz时钟的唯一有交叉的地方就是用于数据缓存的dcfifo,写时钟是33MHz,读时钟是120MHz。

所以我觉得不是我的逻辑设计产生了亚稳态,而是我调用的这个IP核产生了亚稳态。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-23 09:18:36 | 显示全部楼层
4# jackertja

我没有改其他的逻辑,只是将时钟换了一下,一开始写时钟33MHz,读时钟120MHz出问题;后来换成写时钟33MHz,读时钟采用写时钟的3倍频99MHz就对了。我觉得这样看来的话逻辑是没有问题的。时钟的差别导致我调用的这个dcfifo的运行不一样了。
回复 支持 反对

使用道具 举报

发表于 2010-2-23 11:04:28 | 显示全部楼层
6# psd0208
可是降低时钟频率,MTBF也会跟着降低呀,亚稳态发生的几率也会降低的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-2-23 14:34:58 | 显示全部楼层
7# defflin

谢谢!有道理!
回复 支持 反对

使用道具 举报

发表于 2010-2-23 15:07:52 | 显示全部楼层
显然是亚稳态造成的
回复 支持 反对

使用道具 举报

发表于 2010-3-3 20:21:40 | 显示全部楼层
学习了。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-9-14 09:25 , Processed in 0.021801 second(s), 6 queries , Gzip On, Redis On.

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