门控时钟需要修改RTL代码吗?
综合工具会自动认出来enable的function, 不用改RTL
那请问,如果我没有加enable的话,是不是就不能插入ICG了?除非去改RTL?
RTL代码里没有用到使能信号,工具那里会去识别,开什么玩笑?
有时不是刻意去加一个enable,但是工具会自动分析逻辑,如何可以找到隐含的enable,它也会插入ICG
如果这个flipflop的数据端本身能够infer出一个enable信号,那当然可以insert clock gating. 如果本身就没有enable这样的function,那当然也不会insert ICG
一般来说,形如
always @ (posedge clk or negedge rst_n)
begin
if (rst_n == 1'b0)
.....
else if (en)
......
end
这类的DFF,在满足约束条件的情况下都可以自动综合门控,本质上就是存在一个条件,使DFF值不改变,即Q端连到D端。
问题疑惑:如果代码风格没有明显的en信号,DC工具会自己识别吗?
一般情况下,DC中需要设置set_clock_gating_style来识别和添加ICG,
之后输出ungated report 来分析代码,对不能gating的rtl进行修改
常见不能insert ICG有两种,min bit width和常数位
时不是刻意去加一个enable,但是工具会自动分析逻辑,如何可以找到隐含的enable,它也会插入ICG
问一下大家 这个使能端是怎么设计出来的呀?好像改动很大的样子。
早些时候要工程师自己写,现在都是工具来帮我们完成。
工具会自动分析,当然也可以在约束中给某个reg插上clock gate
门控时钟必须要有一定代码风格才行啊,要不然工具想插都插不进去,写脚本也插不进去。
要插入门控时钟两个条件必须满足:1、有使能信号;2、在默认状态下数据保持