whizkid
2004-11-12 05:10:02 UTC
Hi Friends,
I am doing a module design in which I wanted to implement
module/block level clock gating.
If there is an enable I want the clock to reach DFFs otherwise not. I
have been coding the RTL like
always@(posedge CLK or negedge RST) begin
if(!RST) begin
MUX_IN_COUNTER <= 5'b00000;
end
else if(ENB) begin
MUX_IN_COUNTER<= n_MUX_IN_COUNTER;
end
end
All the registers are gated with ENB pin. and I am using DC & power
compiler to synthesis this RTL .
Power compiler infers a Integrated clock gate cell , as I have
specified using the set_clock_gating_style command.
Power compiler infers one clock gate cell for each verilog sub_module
(though all the flops are gated by same enable).The problem is there
are around 6000 flops in my design. and some modules contain upto 800
flops. Due to fanout load on these highly loaded ICGs(Integrated clock
gate cells) the gated clock output is getting delayed to upto 30-35%.
Due to this I am getting lot of violations in netlist simulations
though Design compiler says My timing is easily Met..
Can anyone please suggest a solution ??
One solution I am thinking about is to force DC to take more clock
gate cells(say one CG cell for 40 flops) instead of one to load 800
flops. but i dont know how to do it.. does anyone know it ??
thanks
Whizkid
I am doing a module design in which I wanted to implement
module/block level clock gating.
If there is an enable I want the clock to reach DFFs otherwise not. I
have been coding the RTL like
always@(posedge CLK or negedge RST) begin
if(!RST) begin
MUX_IN_COUNTER <= 5'b00000;
end
else if(ENB) begin
MUX_IN_COUNTER<= n_MUX_IN_COUNTER;
end
end
All the registers are gated with ENB pin. and I am using DC & power
compiler to synthesis this RTL .
Power compiler infers a Integrated clock gate cell , as I have
specified using the set_clock_gating_style command.
Power compiler infers one clock gate cell for each verilog sub_module
(though all the flops are gated by same enable).The problem is there
are around 6000 flops in my design. and some modules contain upto 800
flops. Due to fanout load on these highly loaded ICGs(Integrated clock
gate cells) the gated clock output is getting delayed to upto 30-35%.
Due to this I am getting lot of violations in netlist simulations
though Design compiler says My timing is easily Met..
Can anyone please suggest a solution ??
One solution I am thinking about is to force DC to take more clock
gate cells(say one CG cell for 40 flops) instead of one to load 800
flops. but i dont know how to do it.. does anyone know it ??
thanks
Whizkid