次のワイヤ設定がある場合、ワイヤの割り当てはすべて有効ですか?
wire[3:1] w;
wire w1;
wire [1:0] w2;
A) w1 = w[2];
B) w2 = w[1:0];
C) w2 = w[1:2];
私はすべてが有効であると推測しています....
次のワイヤ設定がある場合、ワイヤの割り当てはすべて有効ですか?
wire[3:1] w;
wire w1;
wire [1:0] w2;
A) w1 = w[2];
B) w2 = w[1:0];
C) w2 = w[1:2];
私はすべてが有効であると推測しています....
推測しないでください。自分でコードをコンパイルしてみてください。A と B は有効な構文です。私が試したシミュレーター(VCSおよびNC-Verilog)によると、Cは違法な構文です。
assign w2 = w[1:2];
コンパイルエラーメッセージは「不正なパーツ選択範囲」のようなものになります。
IEEE Standard for Verilog (Std 1364-2005) のセクション 5.2.1「Vector bit-select and part-select addressing」では、最初の数値は 2 番目の数値より上位のビットをアドレス指定する必要があると記載されています。