Verilog通过遍历数组来分配线

时间:2014-08-03 09:16:07

标签: verilog

如何使用线阵列的AND操作分配线?

    parameter row = 4;
    parameter col = 8;
    wire ready [row-1:0][col-1:0];
    output wire allready;

逻辑上我想做

allready = AND ready [i] [j]为所有i,j

1 个答案:

答案 0 :(得分:1)

对于mutlibit线,可以使用缩减运算符&

wire [row-1:0] ready;
wire allready = &ready;

但是这对解压缩的数组(多维)无效。

一种解决方案是创建一个循环来索引维度,并使用结果到目前为止的值。这可以通过以下方式实现:

output reg allready;

always @* begin
  allready=1'b1;
  for (int i =0; i<col; i++) begin
    allready = allready & (&ready[i]) ;
  end 
end