私はiverilogの新機能で、100Mhzのクロック周波数をより大きなプロジェクトの一環として扱いやすくするためにカウンタを作成しています。 これを行うコードがいくつか見つかりましたので、そのためにテストベンチを作成しようとしました。ここ は、私が見つけたコードです。ここでiverilog testbenchエラー:入力がワイヤとして宣言されていますが、そうではありません
module slowClock_tb(clk, reset, clk_1Hz);
input clk;
input reset;
output clk_1Hz;
initial
begin
clk = 1'b0;
reset = 1'b0;
#2 reset = ~reset;
end
always #3 clk = ~clk;
slowClock clock_generator(clk, reset, clk_1Hz);
endmodule
はエラーメッセージです:
$ iverilog slowClock.v slowClock_tb.v
slowClock_tb.v:8: error: clk is not a valid l-value in slowClock_tb.
slowClock_tb.v:2: : clk is declared here as wire.
slowClock_tb.v:9: error: reset is not a valid l-value in slowClock_tb.
slowClock_tb.v:3: : reset is declared here as wire.
slowClock_tb.v:10: error: reset is not a valid l-value in slowClock_tb.
slowClock_tb.v:3: : reset is declared here as wire.
slowClock_tb.v:14: error: clk is not a valid l-value in slowClock_tb.
slowClock_tb.v:2: : clk is declared here as wire.
4 error(s) during elaboration.
最初のエラーメッセージ:clkがある
module slowClock(clk, reset, clk_1Hz);
input clk, reset;
output clk_1Hz;
reg clk_1Hz;
reg [27:0] counter;
[email protected](posedge reset or posedge clk)
begin
if (reset == 1'b1)
begin
clk_1Hz <= 0;
counter <= 0;
end
else
begin
counter <= counter + 1;
if (counter == 25_000_000)
begin
counter <= 0;
clk_1Hz <= ~clk_1Hz;
end
end
end
endmodule
、ここでは、私が書いたテストベンチがありますここでは電線と宣言した。 しかし、それは元のコードまたはテストベンチのワイヤとして宣言されていません。リセットの場合も同じです。 私はキャンパス内の教師からの助けを得ようとしましたが、なぜこれが起こっているのか分からず、それを修正する方法をアドバイスできませんでした。
誰でもこれを修正する方法を提案できますか?