微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > about gated clock

about gated clock

时间:10-02 整理:3721RD 点击:
向各位DX请教:
1。为什么在FPGA设计中不推荐用gated clock?它有什么优缺点?
2。如果已经使用了gated clock,是不是编译会报错(如setup/hold)?加约束是不是可以解决?如何加?
3。如果必须修改设计,怎样改比较妥?最好给个简单例子。
先谢谢了。

about gated clock
gated clock问题多多,首先可能会引入毛刺,当然这个根据设计还算是可以避免的,但gated clock最大的问题是不能进行静态时序分析。一般用了这个编译并不报错,但是会给warning。
一般解决办法是你把和clock相与或者相或的信号加到触发器的使能端。时钟直接接clk端。

about gated clock
谢谢bravelu!
我在进行一个设计的修改,原设计用了很多gated clock,但实际使用正常。现在我改了一部分设计,编译得到很多warning:
Warning: Can't achieve minimum setup and hold requirement xxx along 34 path(s). See Report window for details.
我查看了Report,全是clock hold warning.
由于这部分设计在系统的群路部分,老板要求新设计与原设计能兼容,我不敢去修改它,怕动了以后会有影响。不知不修改,也就是说不管这些warnings,能否正常工作?或者说有什么约束技巧可以消除这些warnings?
另外,我印象中bravelu小编做过关于telecom bus的东东,想必也一定做过CDR吧?如果做过的话,能否帮我解答一些关于CDR的phase detecor和freq. detector方面的问题(我已发在通信技术板块里)?谢谢!

about gated clock
[这个贴子最后由一声叹息在 2004/04/22 06:42pm 第 2 次编辑]
如果非使用不可的话,可以约束一下该网络的skew,例如:对XILINX的设计软件用max_skew的约束试一下。对setup/hold的warning,从可靠性的角度讲,最好解决。
个人看法:在FPGA中使用门时钟最大的问题还是skew的问题,至于毛刺还是次要的(通过设计可以解决)。欢迎大家探讨。

about gated clock
谢谢一声叹息小编!
我去ALTERA问了几天了,也没人理睬我,还是eetop好啊!
可惜我用的是quartus,不知道怎么去弄,找了一整天了也没找着设置的地方。这里这么多人用xilinx,下个项目我一定要换器件!
言归正传,请问我又如何确定是否能正常工作呢?
另外,为此我也查了一些资料,据说在asic设计时,常用到gated clock,例如手机芯片,用于降低功耗。那么他们是怎么编译通过的呢?

about gated clock
ASIC采用gated clock也要解决skew的问题!只是在FPGA中的P&R是你很难控制的,尤其是route。

about gated clock
再次感谢一声叹息!
你的意思是不是这些warnings会影响route,那么我是不是必须修改设计啊?
BTW:既然我提出了gated clock的问题,可能其它新手也会遇到,大家请一起来讨论吧。如果我的问题解决了,我也会把我的体会整理后发上来。

about gated clock
asic里面也是非常不推荐用gated clock的,以前去参加一个synopsys的培训,他们的人也是强烈建议工程师做设计的时候不要用,而基于低功耗考虑的时候那种gated clock 是用 eda 工具自动插入的,当然也许有高手手工做,就不在讨论范围内了。
至于那个hold time的警告,我觉得还得看看代码,要看具体情况了,不一定会有问题。但是我们公司的要求是不能有这种warning。

about gated clock
在ASIC设计中,有时gate clock 还是必须要用到的,比如有电源管理时,当芯片进入D3hold状态时,有部分逻辑的clock需要停掉,只有采用gate clock来完成。解决skew的办法是采用clock tree,如果你只进行千端设计,你必须把clock tree的结构和指标告知p&R的人员,以便按照你的设计来产生clock tree

about gated clock
谢谢几位高手。
我的这个项目中的确需要象clock tree这样的技术,因为有很多时钟,有些是从高频时钟分出来的,可是我不懂怎么用,我用的是cyclone,不知能否指点一下?

I do not agree. In our ASIC design, the gated clocks are used extensively - almost each FF has to be gated. It is the most efficient way to save power. Furthermore, do not let tool (like Synopsys Power Compiler) insert clock gating cell automatically. It will cause lots of problems, i.e. formal verification.
Another way to solve your problem is to re-arrange the clock buffer tree, for example, if the skew is big due to too many flop load, you can use two clock buffer to drive them.
One design rule is use registered clock enable signal for clock gating cell. It shall prevent glitch problem on clock enable. I do not understand why you said STA could not report clock gating cell setup/hold violation.

about gated clock
我理解的ASIC中时钟树就是专门为系统中时钟设计的低SKEW的网络;而FPGA的全局时钟网络不就是这个吗?所以我觉得时钟树技术和FPGA关系不大吧!对否,请指点!
分频时钟推荐的做法好象都是将基准时钟分频得到的信号作为使能信号控制那些需要在分频后频率下工作的电路,而时钟还是基准时钟。

about gated clock
不能用门控时钟,而我们常用的这种分频信号作使能的技巧能起到降低功耗的作用吗?该怎么作呢?

about gated clock
先申明我自己在低功耗方面没什么经验,没有真正尝试过自己在设计中用过门控时钟,说错了什么请见谅。我一直都赞同基于低功耗的考虑门控时钟是必须的,我所说的应该用工具插入门控时钟的话是来自synopsys的工程师,而非自己的经验,也许他们是基于对自己产品的信任或商业上的考虑,看样子各位大侠的实际做法是自己加占多数吧,误导了大家向各位道歉。对于门控时钟对STA的影响,我也没有具体研究过,也还是听他们的工程师说过自己插入的门有时会使STA的结果不准确,而他们工具插入的可以被自己的STA工具识别出来,所以结果更好。我又不求甚解,胡乱传达了,呵呵。自我打倒一把:)。

about gated clock
昨天insight的研讨会上关于门控时钟部分是这样的:
。gated clocks - DON'T DO IT!
- Timing tools will not recongnize it as a clock.
- Subject to voltage and temperature changes
- Susceptible to glitching
- Introduces indeterminate skew.

about gated clock
谢谢各位的帮助。
我无奈只好去把gated clock 改成clock enable方式,改得我手都酸。这到还没什么,因为编译是通过了,没有告警,可是从仿真看时序上与原先不一样了,这样我就做不到与原有系统兼容了,请大家再帮帮我吧,我现在都改晕了,怎么弄啊?

about gated clock
问题是两方面的:
1. 门控时钟是不是一定需要,如果不需要,则不建议用门控时钟,这样就没任何问题了;楼上改完以后和原时序不一样,那肯定就是改错什么地方啦 :(
2. 如果一定需要门控时钟,则对于FPGA来说,由于时钟线已经布好,所以对于高手来说,你的精力就在于仔细处理一下门控电路就可以了,这是你必须作的工作,包括注意skew和warning等信息,熟悉了你的这部分后面就好作了;对于信号的时序的问题,可以看看是不是可以当不同时钟域的异步电路来处理。
这是俺的一点看法,不对之处大家可以批评指正。

about gated clock
谢谢老扁小编。可是我不是高手,所以才搞不定呀!还请多多指教!
门控时钟不是我想要的,是原设计就有的,我修改和增加了很多功能模块,但编译得到很多warnings,几百个,害得我更本就不敢保证自己的设计能实际应用。
这部分warnings都在原设计群路部分,其中有1个高频时钟要分出十几个低频时钟,有6路还要求输出给外电路用,对我来说,我希望最好不要改,又没有warnings,这样才能保证与原系统兼容。
现在我也希望我有地方改错了,因为我已经改得晕头转向了,那么多的dff要改成dffe!如果是改错了,只要找到错误,就解决了,我也可以松口气了。我再查查。

about gated clock
cdcll:
dffe是带enable的dff吗?
直接把门控信号接这个dffe的enable端?
看看功能上是不是可以这样直接转啊?有没有细节区别?
以前的没有原代码,只有netlist啊?晕~

about gated clock
今天不知怎么搞的,半天了,一直打不开eetop网页,现在总算进来了!
回老扁:
是用门和ff构成的“巨大”原理图,你听听就晕~,那我可怎么办啊,还得面对啊!
事实上我早就差不多晕了,图也要打印成好多张,拼成大的,才看得清楚。如果是语言的,我至少还可以贴出来请大家帮我看。
在quartus II 里,dffe是带enable的dff,我是把原来的dff的clk接在dffe的enable上,再把输入的高频时钟接dffe的clk,这样做是不是有问题?

"我是把原来的dff的clk接在dffe的enable上" 你说的这个clk是不是一个gated clk?
如果是的话,应该把通过逻辑门之前的门控信号接enable,那个不间歇时钟接clk端,如果另外引入高频时钟,可能会有相位上的稍微不同。

about gated clock
cdcll,你这种接法消除了多时钟,但功能可能有变化,因为以前你是gated clock的沿触发,而现在在gated clock有效时,高速时钟会触发很多次,所以你得看看你的dffe的输入数据是不是肯定在这两种情况下不变。

about gated clock
谢谢bravelu和老扁。
那些gated clk的不间歇时钟接clk端还是有同样的告警,而把芯片的输入时钟接过来,告警就没有了,所以我也是不得以才接高频时钟。
老扁说得问题的确存在,我昨天仿真时发现后,已经把enable改成一个高频时钟脉宽,但相位上仍然存在bravelu说的-稍微不同,有些地方有一个高频时钟宽度的差异。
这几天被这个问题整死了!
我打算再花点精力,把那些enable全部提前高频时钟的半个脉宽,也就是用高频时钟的负跳变来产生,(原来的gated clk是正跳变产生的),这样可以保证修改后的enable在高频时钟的正跳变到来前有效。不过想想容易,做起来又是大工程啊,高手们帮我看看,这样做是不是可行?

about gated clock
有大侠告诉我说,Q II 4.0有hold time的优化选项,不知各位有没有用过? 我现在用的还是3.0。如果确定可以解决我的问题,我就尽快换4.0。


顶!

一个gated clock都搞的这样。楼上的兄弟们都工作多少年了啊?

hold time的警告有时不会影响,但最好把它处理掉。在ASIC中很多时序可以加约束的。FPGA中约束不是很好加。

想问一下这句话的意思
gated clock where the clock is automatically diabled and not propagated

我不明白GATED CLOCK怎么能接到CLK EN端,这样会引起功能的改变。在FPGA里面,只能是将功耗控制信号接到DFF-EN,DFF-CLK接到全局时钟往里面。在做可靠性试验的时候,高温60度以上就会造成严重的CLK SKEW和噪声。因此,保证时钟线路是非常重要的。

是看文献看到的,因为对门控时钟没有什么概念,还请教大侠们指点一二

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top