Arrays 常值verilog数组

Arrays 常值verilog数组,arrays,parameters,constants,verilog,Arrays,Parameters,Constants,Verilog,如何获得常量值数组或参数数组?我想用这个数组来选择寄存器的一部分,所以它应该是常量。因为我想将这些部分分配给在for循环中生成的函数的输入,所以我需要一个数组来使用索引 这是我的代码中有问题的部分,因为在I的每次迭代中,我都需要一个新的encoderOut generate for ( i=0; i<row ; i=i+1) begin:hi for ( j=0; j<column ; j=j+1) begin:ji oneBitBlock #(choices

如何获得常量值数组或参数数组?我想用这个数组来选择寄存器的一部分,所以它应该是常量。因为我想将这些部分分配给在for循环中生成的函数的输入,所以我需要一个数组来使用索引

这是我的代码中有问题的部分,因为在
I
的每次迭代中,我都需要一个新的
encoderOut

generate
  for ( i=0; i<row ; i=i+1) begin:hi
    for ( j=0; j<column ; j=j+1) begin:ji
      oneBitBlock #(choicesBit,selBit,funcBit,funcCount,(j+1)*row-1)U (rst,muxChoices[encoderOut-1:0],gene[pack*(i*row + j) +: encoderOut],gene[pack*(i*row + j)+encoderOut +: encoderOut],gene[pack*(i*row + j)+2*(encoderOut) +: funcBit],out[i*row + j]);
    end
  end
endgenerate
生成

遗憾的是,对于(i=0;i来说,没有直接的方法来生成参数数组。但是,如果您的参数值被限制为32位,那么您可以连接这些值,并使用移位和掩码提取它们:

parameter TABLE = {32'd12,32'd45,32'd11}, // parameter values (value1,value2,value3...)
parameter TABLE_N   = 4, // number of entries in a table
现在,将encoderOut替换为

((TABLE >> (32*(TABLE_N - i - 1 ))) & {32{1'b1}})