微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > 微电子学习交流 > 加clock gate的基本原则是什么,怎么验证。

加clock gate的基本原则是什么,怎么验证。

时间:12-12 整理:3721RD 点击:
讨论技术啦,老师们。
一般clock gate的基本原则是什么?
比如说,什么情况加clock gate合适,按面积大小,寄存器个数,或者其它?
en信号必需考虑那些条件?
还有什么其它的注意事项?
最重要的, 怎么做verification?

个人意见,供参考~
clock gate 为了低功耗。在不影响功能的情况下,尽量搞gate吧。当然是不是要考虑实现的难度。
至于verification ,有个思路
假设 gate_en  --------------
             |              |
             A1              A2
  clock err            |
             ----------
                       B1
  clock right                    |
             --------------------
                                 B1
A1~A2是gate en 有效
出错的gate是clock的上升沿在这个区间内出现了。如果没出现认为正确。
这样就剩下几个时间做个减法判断 B1-A1>B1-A2则正确
不知道有没有说清楚~,个人愚见,可能有错误~

always @(posedge clk)
   if(en)
       data <= data_next
如果data位数比较多(》3?),就可以加clock gate
en去控制clk_gater 的使能

这种style的代码都是工具自动帮你做self clock gating的

fine-grained的clock gate, 让工具自己加就好了。 但是工具必定不可能太智能吧,更高level的clock gate 应该还是需要手工去加吧。

好想法,就是在使能clockgate和不使能clockgate的情况下做RTL<->RTL的Formal Verification。
还有没有其它的主流的验证方法啊?

clock gate不仅降低功耗而且会减小面积。不过clock gate的级数过多会导致大的latency。

隐式的clock gate不需要专门验证,属于formal的一个功能。

为啥会减小面积啊,比加clock gate前不是逻辑增加了么。。。

简单点可以看有gating的寄存器占的百分比
复杂点可以结合toggle rate计算功耗

目前的大部分formal工具都是验证组合逻辑,clock gate涉及时序逻辑,一般都是绕过
的。
时序逻辑formal的可以参考calypto的slec

你说的是时钟的源头
一gating,一大堆都gating了

always @(posedge clk)
    if (en)
        dout[127:0] <= din;
实际等效于:
assign tmp[127:0] = en? din : dout;
always @(posedge clk)
    dout[127:0] <= tmp;
一共有128个mux2
换成clock gate:
assign clk_dout = en? clk : 1'b0; //伪代码
always @(posedge clk_dout)
    dout[127:0] <= din;

同学习,所以没有enable 的reg bus 不能做clock gating。。。。

clock gating虽然是低功耗设计,但是加太多反而会浪费功耗的。PowerArtist可以帮你分析clock gating的efficiency,帮你比较加了clock gating节省的功耗跟引入的功耗的差值。当然还会告诉你哪里该加clock gate但是忘记加了。

请问apache对于CG优化前后的rtl是怎么做一致性检查的?

每个公司都有一致性检查的Flow,即便apache做检查了,也还是要去用s或者c家的tool再验证一下的,所以现在我们不检查。

哦,PowerArtist是在RTL做CG优化,还是像power compiler一样在网表上做?

RTL level计算和优化功耗,并且可以挑选最差的vector直接给后端做IR验证。

就是吃进RTL,吐出RTL?
那第三方的formal工具很难搞定前后两版RTL的一致性检查吧?
工具会产生类似SVF的guide文件给第三方formal工具吗?

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

网站地图

Top