是否可以将压缩数组转换为解压缩数组,并将unpacked数组用作模块实例化中的参数?打包数组被定义为localparam。
以下是我想要做的事情的说明
curl 162.243.100.100
答案 0 :(得分:1)
您可以使用赋值模式将打包数组转换为解压缩数组,但它不是非常灵活/可扩展:
unpacked_array = '{ packed_array[0], packed_array[1], ... , packed_array[...]};
例如
localparam [7:0] packed_array = '{default: 0};
localparam unpacked_array [3:0] = '{ packed_array[0], packed_array[1], packed_array[2], packed_array[3]};
module1 #(unpacked_array) myModule1();
https://www.edaplayground.com/x/3v8V
您可以使用流媒体运算符将解压缩的数组转换为压缩数组:
packed_array = { << { unpacked_array }};
例如
localparam unpacked_array[7:0] = '{default: 0};
localparam [3:0] packed_array = { << { unpacked_array[3:0] }};
module1 #(packed_array) myModule1();