Clock-gating:在时钟频率加快的同时,有时候会产生不必要的跳转。有的时候输入并没有改变,但是由于时钟的跳转,寄存器的值会被一遍一遍的刷新。可能输入才更改一次,结果时钟已经跳了几万次,这样的差距是可怕的。每次时钟上升沿,输出就要重新计算一遍,这样带来的功耗是巨大的。如果使用门控的话,我们就可以增加一个逻辑,就是只有在满足某种条件之下,时钟的上升沿才会对使得整个电路重新计算。(比如这个条件就是输入发生变化)这样的话就可大大降低功耗。
没有门控的代码:
module clock(
a,
b,
c,
clock,
rst
);
input wire clock;
input wire rst;
input wire [31:0]a;
input wire [31:0]b;
output reg [63:0]c;
always@(posedge clock,posedge rst)
begin<