我想记录下自己的想法。
博客上别人写的有的有错误,有毛刺,而且不精简。
以下:
module latch_clockgating
(
input clk,
input enable,
output wire clk_out
);
reg enable_q;
always@(negedge clk)
begin
enable_q <= enable;
end
assign clk_out = enable_q&clk;
endmodule
`timescale 1ns/1ns
module latch_clockgating_tb;
reg clk;
wire clk_out;
reg enable;
initial
begin
enable = 1'b0;
clk = 1'b0;
#25 enable = 1'b1;
#30 enable = 1'b0;
end
always #5 clk = ~clk;
latch_clockgating
A(
.clk(clk ),
.enable(enable),
.clk_out(clk_out)
);
endmodule
波形如下: