zhangljz
Member level 5
Hi guys,
I am using clock gating in cadence RTL compiler, but there is no ICG cell in the library. So I implemented an ICG cell with code, which is active high ICG cell
But after insertion of clock gating, it seems that rtl compiler take the ICG cell for timing borrow purpose, not for clock gating, like this:
I can not see the effect of the clock delay due to the ICG cell. In the picture, the clock of valid_event_buf_reg[10] is from an ICG cell (red cell), but in the timing report, the capture clock path only take clock uncertainty into account, no ICG delay.
I didn't use clock gating before, I don't how to make constrain on it, especially for the coded ICG cells.
Anybody can help.
Thank you
I am using clock gating in cadence RTL compiler, but there is no ICG cell in the library. So I implemented an ICG cell with code, which is active high ICG cell
Code:
module ICG_posedge(
input ck_in,
input enable,
input test,
output ck_out
);
reg en1;
wire tm_out, ck_inb;
assign tm_out = enable | test ;
assign ck_inb = ~ck_in;
always @(ck_inb, tm_out)
if(ck_inb)
en1 = tm_out;
assign ck_out = ck_in & en1;
endmodule
But after insertion of clock gating, it seems that rtl compiler take the ICG cell for timing borrow purpose, not for clock gating, like this:
I can not see the effect of the clock delay due to the ICG cell. In the picture, the clock of valid_event_buf_reg[10] is from an ICG cell (red cell), but in the timing report, the capture clock path only take clock uncertainty into account, no ICG delay.
I didn't use clock gating before, I don't how to make constrain on it, especially for the coded ICG cells.
Anybody can help.
Thank you