我有个函数包中定义了
-- signed_add,结果做截位处理,位数没有扩张
function signed_add (a,b:std_logic_vector) return std_logic_vector is
variable a_ext,b_ext :std_logic_vector((a'high+1) downto 0);
variable sum :std_logic_vector((a'high+1) downto 0);
begin
a_ext <= a(a'high)& a; b_ext <= b(a'high) & b; -- 符号扩展
sum <= a_ext + b_ext;
return sum((a'high+1) downto 1);
end function;
编译通过了,
然后令一个文件中的代码调用这个函数使用:Y(2*widthDAT-1 downto widthDAT) <= signed_add(xich,xqsh);
其中定义了 signal xich,xqsh,xqch,xish:std_logic_vector(widthDAT-1 downto 0);
而 Y 是端口信号:Y

ut std_logic_vector(2*widthDAT-1 downto 0);
编译时出现下面的错误:
Error (10527): VHDL Variable Assignment Statement error at mypackage.vhd(24): Variable Assignment Statement must use := to assign value to variable "a_ext" 谁知道这个错误为什么吗 ??谢谢