次のような配列があるとします。
parameter n=100;
reg array[0:n-1];
配列内のすべてのビットの論理 OR 値を取得するにはどうすればよいでしょうか? 結果の回路は組み合わせでなければなりません。
これは、 this oneからのフォローアップの質問です。 (答えの下の議論を見てください)
次のような配列があるとします。
parameter n=100;
reg array[0:n-1];
配列内のすべてのビットの論理 OR 値を取得するにはどうすればよいでしょうか? 結果の回路は組み合わせでなければなりません。
これは、 this oneからのフォローアップの質問です。 (答えの下の議論を見てください)
これが設計要件を満たしているかどうかはわかりませんが、reg [n-1:0] array;
1 ビット ワイヤの配列を使用するよりも 100 ビット バスの方がはるかに簡単な場合があります。Verilog には、配列をサポートするための最適な構文がありません。代わりにバスがあれば、割り当てを行うことができますresult = |array;
配列を使用する必要がある場合は、最初に生成ループを使用してバスに変換し、次に同じことを行うことを検討します。
parameter n=100;
reg array[0:n-1];
wire [n-1:0] dummywire;
genvar i;
generate
for (i = 0; i < n; i = i+1) begin
assign dummywire[i] = array[i];
end
endgenerate
assign result = |dummywire;
配列でこれを行うよりエレガントな方法を知りません。