1

次のような配列があるとします。

parameter n=100;
reg array[0:n-1];

配列内のすべてのビットの論理 OR 値を取得するにはどうすればよいでしょうか? 結果の回路は組み合わせでなければなりません。

これは、 this oneからのフォローアップの質問です。 (答えの下の議論を見てください)

4

1 に答える 1

4

これが設計要件を満たしているかどうかはわかりませんが、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;

配列でこれを行うよりエレガントな方法を知りません。

于 2013-05-17T22:20:23.827 に答える