我有一个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;
由于
答案 0 :(得分:0)
您可能希望使用此
的流媒体运算符y_map = {<<32{x_map}};
顺便说一下,您应该在示例中显示所有标识符的声明,即my_array
。