注1:如果各位觉得我包含在自己日志里面对您不妥,或者涉及隐私的话,请告知我,我删除。 注2:问题的解答我只列举我自己的想法,不保证可以一直追踪到真正正确的解答,所以请如果有看客的话,解答仅作参考之用,也欢迎大家在blog里留言评论。

避免用组合逻辑产生时钟

上一篇 / 下一篇  2011-04-06 12:32:34 / 个人分类:经验集锦

今天看到一个问题如下:
  在生成位流文件的时候,显示的警告如下:
  Clock net u8/dout_not 0001 is sourced by a combinatorial pin.This is not good design practice.Use the CE pin to control the loading of data into the flip-flop.

回复:

报告的warning和这个模块看起来没关系,至少从你贴的代码没看出来问题。但是报告的warning你的确需要关注,你用了gating clock,你是不是将这个模块的dout在外面用作时钟了?如果是的话,设计是不建议这样用的。
最好不要用运算之后的信号来做一个模块的输入时钟,因为信号的时钟要求非常高的质量,对于duty-cycle, jitter, skew都有非常高的要求。但是组合逻辑生成的时钟可能会有毛刺等等对于时钟是非常致命的东西。
除非你非常有把握,否则不建议这样的设计方法。
这就是这个警告的意思。

评:对于ASIC设计来说,gating-clock可以通过特定的单元或者综合工具,由工艺库提供商或者综合器来保证gating-clock的正确性。在RTL代码级设计中,尽量不要使用gating-clock来控制时钟。使用控制时钟的方法非常危险,因为这个非常难以通过后端约束来解决组合逻辑产生的glitch,这些时钟的glitch会使设计功能变得杂乱无章,无法跟踪,导致仿真和综合后结果不能match。

当然,我觉得ASIC设计后端place&route可以人工干预,以此来控制产生的clock的质量。FPGA实现就没有这么好的命运了,大多数的FPGA是经过工具自动布局布线完成,而且FPGA设计因为其灵活性,经常有非常多次数的设计交替(不像ASIC,芯片做一次后端,制造出来了,ASIC设计就结束了)。所以,每次FPGA自动布局布线都可能会将产生的clock布线结果不一样,那么clock质量就不一样,这样设计的后端会非常难做,产生的bit流文件也非常难在FPGA上debug(调试)。

最后,需要指出的是,不是不能在FPGA内用gating clock,不同的FPGA厂商有其自己的gating clock或者时钟生成器的方法。需要详细参考其data-sheet。避免问题的产生。


TAG: Clock clock gating

引用 删除 mythbuster   /   2018-09-19 22:06:33
请教一下博主,我现在有个项目就是ASIC有很多的门控时钟,由于项目对功耗的要求很高。在FPGA板级验证的时候很多寄存器都要靠这个门控时钟驱动的,要是一个个改成CE驱动,任务量很大啊,而且ASIC有专门的PMU模块,要是改成CE驱动那些逻辑信号岂不是都要引入到相关的模块中。
有没有什么简单快速的方法?
ASIC&FPGA 引用 删除 acgoal   /   2011-04-08 08:47:11
1. 第一点来说,对于自己用组合逻辑做gating-clock的话。ASIC/FPGA能用lint在代码初期检查出来非法的gating-clock的。ASIC的综合工具DC会否报warning我不确定,但是应该是有的。FPGA的synplify肯定是有的。
2. synplify是可以报告这些组合逻辑产生gating-clock,会影响系统功能稳定性的问题。但是不是error,而是warning。

最后,还是如我上面说的,不要试图自己在RTL代码中用组合逻辑产生gating-clock,而应该用后端公司提供的standard cell来实现,或者design compiler也支持自动插入gating-clock单元。这些影响系统稳定性的东西不容易通过simulation解决,而往往等芯片tapeout后产品测试才能发现,进而致命。
引用 删除 macdir   /   2011-04-07 15:50:17
我们刚刚碰到了这个问题,gated clock送到外面产生毛刺,导致一个强势gs的ic device不能工作。但是这个gated logic is neccessary。我们的解决办法是用后端公司的专用cell来解决这个glitch问题,但是我们现在不知道还有没有类似的问题。有两个问题:
1.请问楼主在做ASIC综合或者其他工具能否检查到这种问题。
2. 你提到的那段warning是synplify产生的么?
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

acgoal

acgoal

Ethernet switch ASIC Design,emulation

我的栏目

日历

« 2019-01-21  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 62625
  • 日志数: 24
  • 建立时间: 2010-12-17
  • 更新时间: 2018-11-20

RSS订阅

Open Toolbar
博聚网