verilog:如何操作参数化大小的阵列

verilog:如何操作参数化大小的阵列,verilog,Verilog,我有一个关于多阵列操作的问题。下面的代码适用于固定数量的数组 wire [size-1:0] data [0:3]; wire [size-1:0] result; assign result = data[0]&data[1]&data[2]&data[3]; 但是对于像这样的参数化数字数组,我该如何处理它呢 wire [size-1:0] data [0:num-1]; wire [size-1:0] result; assign result = ????

我有一个关于多阵列操作的问题。下面的代码适用于固定数量的数组

wire [size-1:0] data [0:3];
wire [size-1:0] result;

assign result = data[0]&data[1]&data[2]&data[3];
但是对于像这样的参数化数字数组,我该如何处理它呢

wire [size-1:0] data [0:num-1];
wire [size-1:0] result;

assign result = ????

任何想法或建议,希望你们有一些简单的答案。

我能想到的最好的答案是:

always @* begin
  result = 0;
  for (i=0; i<num; i=i+1) begin
    result = result & data[i];
  end    
end
始终@*开始
结果=0;
对于(i=0;i
wire[size-1:0]数据[0:num-1];
导线[size-1:0]数据_tmp[0:num-1];
导线[尺寸-1:0]结果;
生成
genvar i;
对于(i=0;i
wire [size-1:0] data[0:num-1];
wire [size-1:0] data_tmp[0:num-1];
wire [size-1:0] result;

generate
    genvar i;
    for (i=0; i < num; i=i+1) begin
        if (i == 0)
            assign data_tmp[i] = data[i];
        else if (i == num-1)
            assign result = data_tmp[i-1] & data[i];
        else
            assign data_tmp[i] = data_tmp[i-1] & data[i];
    end
endgenerate