Vivado  – 综合 – 错误:[Synth-1716]无法从纯函数'foo'中访问'i'。-Xilinx-AMD社区-FPGA CPLD-ChipDebug

Vivado – 综合 – 错误:[Synth-1716]无法从纯函数'foo'中访问'i'。

描述

我在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是

请登录后发表评论

    没有回复内容