我在verilog中做了一个计数器,并在硬件中实现了它。但我无法解释行为代码是:
module clock_test(clk_in,led,rst);
input wire clk_in;
input wire rst;
output wire [7:0] led;
reg [23:0] counter = 24'b0;
assign led = counter[23:16];
always @(posedge clk_int) begin
if(rst) begin
counter <= 0;
end
else begin
counter <= counter +1;
end
end
endmodule // clock_test
在硬件中,当我点击 时rst
,LED 会在计数时冻结。它并没有完全为零。Assert rst
,你可以看到一些非零的随机模式,除非我 release ,否则它们不会改变rst
。
我的问题是:当if(rst) begin
块执行时,counter
设置为 0。由于 LED 被分配为组合逻辑counter
,它不应该立即反映吗?