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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6814|回复: 10

[原创] 一个 关于Clock Gating 的典型问题求助!!

[复制链接]
发表于 2010-10-25 12:54:35 | 显示全部楼层 |阅读模式

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

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

x
在我的设计里,内部主要工作时钟是在复位撤销之后才给出的。
我原来的设计期望,在复位撤销的时候,所有的触发器都被异步复位到确定的状态。

但是加入了ClockGating之后,出现了一个问题:
因为ClockGating的加入,导致了复位撤销的时候,时钟是不定态,从而导致了所有的触发器都在复位撤销的时候变成了不定态(Gate仿真的时候)。

我自己觉得,这个问题似乎和ClockGating的时候使用的Latch是没有复位端的Latch有关,不知道有没有大侠遇到过类似的问题,遇到过的给我指导下吧:)

我看所有的关于ClockGating的文档,都是以没有复位端的Latch来做Gating的,不知道可不可以采用带复位端的Latch做Gating,怎样做呢?
发表于 2010-10-25 18:48:19 | 显示全部楼层
这个我觉得没有必要吧。
可以考虑给这些latch在仿真的时候赋予一个random的初始值。
 楼主| 发表于 2010-10-26 16:52:23 | 显示全部楼层
谢谢yx.yang的回复, 仿真的时候,给latch赋初值的方式确实是可以让仿真通过的,但是这样的方式还是让我觉得很不爽,因为这种latch的数量非常多,每次综合还有所差异,用仿真脚本给这些latch赋初值本身是件很劳累的事情。而且,赋初值本身不是非常可靠的做法,毕竟和工具产生的原始仿真文件的不一致。

所以还想继续问问,有没有哪位遇到过类似的问题,如何解决?
 楼主| 发表于 2010-10-27 08:41:45 | 显示全部楼层
waiting......
发表于 2010-10-27 13:24:16 | 显示全部楼层
期待答案
发表于 2010-10-27 17:17:54 | 显示全部楼层
你们的设计用许多同步reset吗??
发表于 2010-10-27 17:42:56 | 显示全部楼层
有个方法大家看怎么样
就是每个clock domain的reset都和clock做同步,然后再给模块,无论模块使用同步还是异步reset
而pll/dll的reset要和system reset区分开
 楼主| 发表于 2010-11-4 14:59:11 | 显示全部楼层
谢谢大家的关注,关于这个问题,最终没有得到非常满意的结论。没有想明白为什么。
但是问题最终还是必须解决,因此我最终退了一步,对我的时钟复位逻辑进行了一点点修改。
前面说过,在我的设计里,内部主要工作时钟是在复位撤销之后才给出的。我做的修改,是在复位撤销之前,给内部主要工作时钟送出了一个脉冲,其它方面完全没有变,结果问题就这样解决了。
我想其他同志如果采用和我最初一样的时钟复位电路的话,一定也会遇到同样的问题的,希望他疑惑的时候能够找到这个帖子,并把自己的理解补充进来 ;)
发表于 2010-11-4 16:58:59 | 显示全部楼层
我这里用PowerCompiler加的ICG,EN默认都是有效的,reset期间时钟可以通过,不存在不定态问题。
发表于 2010-11-5 09:58:11 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-7-5 14:13 , Processed in 0.022938 second(s), 7 queries , Gzip On, MemCached On.

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