此时将数组分配给32位向量

时间:2018-05-01 21:03:30

标签: system-verilog

我有一个32位宽的n个元素的数组,我试图将这些元素分配给一个向量,我有以下代码:

 function automatic logic [SIZE-1:0] my_function (my_array x_map);

    logic SIZE-1:0] y_map               = '0;
    int fctr                            = (SIZE)/32;
    int top_bnd                         = 31;
    int lwr_bnd                         = 0;

for(int k0 = 0; k0 < fctr; k0++)
    begin

    y_map[top_bnd:lwr_bnd]              = x_map[k0];
    top_bnd                             = (top_bnd + 32'hFFFF);
    lwr_bnd                             = (lwr_bnd + 32'hFFFF);

    end

return y_map;

endfunction

然而,这不起作用,我得到两个错误:

1)&#34;部件选择的范围是非法的&#34; 2)&#34;无法评估左切片表达式中的表达式,表达式必须是编译时间常数&#34;

由于

1 个答案:

答案 0 :(得分:0)

您可能希望使用此

的流媒体运算符
y_map = {<<32{x_map}};

顺便说一下,您应该在示例中显示所有标识符的声明,即my_array