カウンタとMUXで周波数分周器を作りたいと思います。エラー(10219):Mux.v(19)のVerilog HDL連続割り当てエラー:割り当ての左側のオブジェクト "muxout"がネットタイプである必要があります
は、私はこのプロジェクトのための3モジュールを作る
// 4ビットカウンタ
module Counter (input clk, input reset, output reg[3:0] out);
[email protected](posedge clk or posedge reset)
begin
if(reset)
out = 4'b0000;
else
begin
if(clk)
if(out < 4'b1111)
out = out + 4'b0001;
else
out = 4'b0000;
end
end
endmodule
//モジュール4by1のマルチプレクサ
module Mux (input [3:0] muxin , input [1:0] sel, output reg muxout);
function _4by1mux;
input [3:0] muxin;
input [1:0] sel;
case (sel)
2'b00 : _4by1mux = muxin[0];
2'b01 : _4by1mux = muxin[1];
2'b10 : _4by1mux = muxin[2];
2'b11 : _4by1mux = muxin[3];
endcase
endfunction
assign muxout = _4by1mux(muxin, sel);
endmodule
//モジュールfreqDivider
module freqDivider(input clk, input reset, input [1:0] sel, output reg muxout);
wire [3:0]counterbus;
Counter ct1 (clk, reset, counterbus);
Mux mux1 (counterbus, sel, muxout);
endmodule
モジュールfreqDividerはトップである、と私は、モジュールのカウンタとマルチプレクサ
呼び出すが、モジュールMUXは
Error (10219): Verilog HDL Continuous Assignment error at Mux.v(19):
object "muxout" on left-hand side of assignment must have a net type
このエラー
PSに問題があります。入力セルは時間によって変更されます
また、Cntrl + Kを使用してコードを書式化してください。また、問題の詳細を説明してください。また、問題解決のためのヘルプが必要な場所 – mhasan
申し訳ありませんが、これは初めてのコードです と出力 'muxout'割り当てられる....しかし、なぜですか? – KorHotGuy
FYI:問題のステートメントには関係しませんが、 'if(clk)'行は削除してください。シミュレーションは正常に動作しますが、ほとんどのシンセサイザはすべての信号を手続き型ブロック(常に '@(posedge/negedge ...)')の感度リストで使用し、本体で非同期入力として使用します。 'if(clk)'行がなければ、 'Counter'モジュールは同じものをシミュレートし、正しく合成します。 – Greg