描述
我在Vivado Design Suite中收到以下错误:
错误:[Synth-1716]无法从纯函数’foo’中访问’i’。
综合以下代码时收到错误。
我怎么能避免这个?
实体测试是
港口 (Clk:在std_logic中;Rst:在std_logic中;我:在std_logic_vector(10 downto 0));最终实体;架构RTL的测试是function foo(X:in integer)返回std_logic_vector是开始return conv_std_logic_vector(X,I’length);结束功能;开始终端架构;
解
根据VHDL LRM,除非另有说明,否则函数的类型为“纯”。
纯函数只能接收信号或常量,而不是变量。
这就是显示错误的原因。
要使示例代码有效,您需要使函数“不纯”。
要使其不纯,请更改以下函数定义:
function foo(X:in integer)返回std_logic_vector是
至:
不纯函数foo(X:整数)返回std_logic_vector是
没有回复内容