单个clock gating的使用
时间:10-02
整理:3721RD
点击:
我想再时钟的输入端附近添加一个clock gate,而gate之后的时钟才给后面所有的寄存器使用。例如,
clock pin: clk,
gating pin: start
output clk: clk_gated
当我使用insert_clock_gating命令的时候,网表中会产生很多个clock gate,从而导致大量面积的浪费。
但当我自己写一个clock gate的时候,DC却不能识别到,不知道是怎么回事。工具是会自动识别还是需要一些控制命令呢?
代码如下:
clock pin: clk,
gating pin: start
output clk: clk_gated
当我使用insert_clock_gating命令的时候,网表中会产生很多个clock gate,从而导致大量面积的浪费。
但当我自己写一个clock gate的时候,DC却不能识别到,不知道是怎么回事。工具是会自动识别还是需要一些控制命令呢?
代码如下:
- assign clk_gated = start_reg & clk;
- always @(posedge clk or negedge reset) begin
- if(!reset) start_reg <= 0;
- else start_reg <= start;
- end
另求问,这时候clk_gated是否需要设generate clock呢?
为什么不能识别呢?DC应该知道这是一个门控啊,应该不用create_generated_clock,在clock端只做一个create_clock就行,DC会通过clock上的与门
