我无法编译此代码:
function integer[$] get_register_name;
integer ret[$];
ret.push_back(1);
ret.push_back(2);
return ret;
endfunction
是否可以从函数返回队列?
我无法编译此代码:
function integer[$] get_register_name;
integer ret[$];
ret.push_back(1);
ret.push_back(2);
return ret;
endfunction
是否可以从函数返回队列?
是的,您可以从函数返回队列。但要这样做,您必须使用typedef
并返回该类型定义一个新类型。
typedef integer queue_of_int[$];
function queue_of_int get_register_name();
queue_of_int ret;
ret.push_back(1);
ret.push_back(2);
return ret;
endfunction
请注意,在 typedef 中,[$]
在类型名称之后,而队列元素类型在类型名称之前。
下面是对我有用的代码示例....
typedef bit[31:0] bitQueue[$];
//合并第一个和第二个队列,//将第二个队列添加到第一个队列的末尾
function bitQueue mergeEnd(bit[31:0] queue_1[$], bit[31:0] queue_2[$]);
foreach (queue_2[i]) queue_1.push_back(queue_2[i]);
return queue_1;
endfunction