jake的个人空间 http://blog.eetop.cn/1592 [收藏] [复制] [分享] [RSS]

日志

为啥时钟毛刺会毁了整个设计 -- min pulse width

热度 12已有 2247 次阅读2021-1-16 01:45 |系统分类:芯片设计

合格的设计人员知道要避免clock path 上的毛刺,但99% 却讲不清究竟为什么。 Clock path 上的毛刺对同步数字电路是致命的。 这和 flip flops 的一个隐蔽 timing 要求有关 -- min pulse width,最小时钟脉冲宽度。

下面是 .lib 某个 D flip flop 时钟 min_pulse_width 要求的例子。 时钟上升沿 280ps,时钟脉冲宽度不小于 0.65918ns,否则这个 D flip flop 就不能保证正常翻转。 后仿里 D flip flop 的输出变 X 0.66ns 不是个小数字。 毛刺宽度可以轻易小于这个级别。

image.png

新工艺的 .lib 通常都有 min pulse width 很多老工艺 .lib 没有这个数据,但不是说老工艺对时钟毛刺免疫。 有兴趣的朋友不妨跑一组 Spectre sim, 一目了然。

为啥时钟毛刺 min pulse width 违例会毁了这个电路? 同步数字电路通常有反馈。 简单的计数器就是一个有反馈的同步数字电路。 状态机也是。 带反馈的电路中有一个 flip flop 不能正常翻转,整个电路就乱了。

时钟上的毛刺通常是设计不周造成的,尤其是时钟切换电路设计的缺陷。 有空再聊这个话题。

发表评论 评论 (7 个评论)

回复 jake 2021-1-31 23:18
补充一下,文章里讲的是clock path 上的毛刺。 Datapath 上的毛刺不是问题。 STA 会保障 datapath毛刺不出现在时钟 active edge 前后的 setup window, hold window,保障 flip flop 不会锁存错误数据。
回复 0417多音字 2021-2-4 17:20
那怎么去修这个错误,在icc2里修还是pt,用那条命令修比较好
回复 0417多音字 2021-2-4 17:20
@jake
回复 jake 2021-2-4 23:17
0417多音字: 那怎么去修这个错误,在icc2里修还是pt,用那条命令修比较好
时钟上的问题应该在设计中解决,靠工具修很难。 在 Innovus 或 ICC 里手动调节可能可以在某个 corner 解决,但无法保证所以 corner 都可以过。
在设计上保证不出现问题,才是终极解决方案。
一般 Min pulse width 也是在设计中就考虑到。 工具通常只能修 setup, hold, MPW 在最后才报告。 GHz 级的高速设计中往往会在 critical path 上 instantiate 例化一些寄存器,就是在设计中已经考虑了 MPW。
回复 0417多音字 2021-2-5 14:21
jake: 时钟上的问题应该在设计中解决,靠工具修很难。 在 Innovus 或 ICC 里手动调节可能可以在某个 corner 解决,但无法保证所以 corner 都可以过。
在设计上保证不 ...
那mpw出现的原因除了CKbuff和noise,就很有可能是前端设计的问题?
回复 jake 2021-2-5 14:42
0417多音字: 那mpw出现的原因除了CKbuff和noise,就很有可能是前端设计的问题?
CLK buffer noise 应该不是主要原因。 SI glitch 是可以修的。 clk buffer 的非对称性造成占空比变化,在高速电路里容易导致 mpw violation。
还有就是综合工具选的 flip flop 不好,setup, hold 没问题,但 mpw 要求过大,接近高速时钟 50%。 综合工具不查 MPW 。
回复 jiru000000 2021-2-9 17:39
很简单,稳定的状态才能保证电路正常工作,就像模拟为啥需要稳定的静态工作点,不稳定容易翻车

facelist

您需要登录后才可以评论 登录 | 注册

关闭

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

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

GMT+8, 2021-3-6 15:26 , Processed in 0.028608 second(s), 7 queries , Gzip On, Redis On.

返回顶部