11.x XST  – “错误:HDLCompiler:40  – ”。vhd“行xx:不是组件”-Altera-Intel论坛-FPGA CPLD-ChipDebug

11.x XST – “错误:HDLCompiler:40 – ”。vhd“行xx:不是组件”

问题描述

我有一个设计,我在一个包中声明了一个与我的一个实例同名的组件。我在Virtex-6 / Spartan-6上遇到以下错误,但是对于任何旧器件都没有任何问题:

“错误:HDLCompiler:40 – ”<file> .vhd“行xx:<名称>不是组件”

以下示例导致错误,请注意组件的名称和实例都是my_name:

库;

使用ieee.std_logic_1164.all;

包my_pack_0003是

组件my_name是

port(in_port:in std_logic;

out_port:out std_logic);

最终组件;

最终包;

———————————–

库;

使用ieee.std_logic_1164.all;

库工作;

使用work.my_pack_0003.all;

实体ex_0003是

port(in_port:in std_logic;

out_port:out std_logic);

结束ex_0003;

ex_0003的架构beh

开始

my_name:my_name端口映射(in_port => in_port, – 注意:错误点在这里

out_port => out_port);

结束;

解决/修复方法

在11.2中,XST为Virtex-6和Spartan-6系列引入了新的VHDL / Verilog解析器。有关此更改的更多信息,请参阅(Xilinx答复32927)

以上代码不符合VHDL LRM。要解决此问题,只需更改实例或组件的名称即可。

例如,在上面的代码中,您可以将源编辑为:

库;

使用ieee.std_logic_1164.all;

包my_pack_0003是

组件my_name是

port(in_port:in std_logic;

out_port:out std_logic);

最终组件;

最终包;

———————————–

库;

使用ieee.std_logic_1164.all;

库工作;

使用work.my_pack_0003.all;

实体ex_0003是

port(in_port:in std_logic;

out_port:out std_logic);

结束ex_0003;

ex_0003的架构beh

开始

my_inst :my_name端口映射(in_port => in_port, – 注意:错误点在这里

out_port => out_port);

结束;

请登录后发表评论

    没有回复内容