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;iwire[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