ICG使能端的信号一般是怎么产生的呢
时间:10-02
整理:3721RD
点击:
ICG使能端的信号一般是怎么产生的呢是根据它控制的reg的输入信号的异或值得到的吗?
不是想问在flow中如何插入ICG,是想问下这个信号如何来的;
前端写出的Verilog代码就像上面那样,这个en怎么来的都可以,比如若干寄存器通过若干组合逻辑产生,只要寄存器有可能保持原值,就可以等效转换成上面的代码。
是通过代码“算”出来的,但具体方法不是将D端输入“异或”这么简单。
恩 是通过怎么样的代码 或者通过什么运算,比如将什么什么信号进行什么运算得到或者在代码中是如何体现的呢
综合的时候自动插入的,compile_ultra -gate_clock ,
读下power compiler 的文档
恩 这个我懂,我也有脚本;我是想问下 这个信号一般是怎么产生的 因为我看到篇文章 如下:
不是想问在flow中如何插入ICG,是想问下这个信号如何来的;
寄存器D端接一个Mux输出,该Mux的A数据输入接该寄存器Q端(逻辑功能:保持不变),B数据输入接其他信号,此时Mux选择信号S可作为该寄存器的Clock Gating Enable信号。
。
你说的这是ICG取代原始reg的过程,那我要问 这个原始MUX的select 信号,是如何来的,或者在代码中通过什么信号产生的
- always@(posedge clk)
- if(en)
- d <= d_next;
前端写出的Verilog代码就像上面那样,这个en怎么来的都可以,比如若干寄存器通过若干组合逻辑产生,只要寄存器有可能保持原值,就可以等效转换成上面的代码。
写过代码么, HDL中会直接定义使能信号的啊
EDA如何自动地从RTL分析推算逻辑是一门学问,我只知道开头基础的知识叫BDD什么的。如何从逻辑里面抽取可被CG替代的部分,应该是这EDA分析学科的较高级技巧,我说不清楚了。应该有paper或专利吧?
要不你搜一搜?然后分享一下心得?