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 がフリーズします。正確にゼロになるわけではありません。をアサートrst
すると、 を解放しない限り変化しないゼロ以外のランダム パターンが表示されrst
ます。
私の質問は:if(rst) begin
ブロックが実行されると、counter
が 0 に設定されます。LED は からコンボ ロジックとして割り当てられているためcounter
、すぐに反映されるべきではありませんか?