11.x XST  – “ERROR:HDLCompiler:40  –  .vhd Line xx:不是组件”-Altera-Intel社区-FPGA CPLD-ChipDebug

11.x XST – “ERROR:HDLCompiler:40 – .vhd Line xx:不是组件”

问题描述

我有一个设计,组件和信号具有相同的名称。在针对Virtex-6 / Spartan-6器件时,我在XST中收到以下错误,但是当我定位旧器件时没有任何问题。为什么?

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

示例代码:

文件:ex_0001.vhd

编译库:工作

库;

使用ieee.std_logic_1164.all;

包my_pack_0001是

组件my_name

port(in_port:in std_logic;

out_port:out std_logic);

最终组件;

最终包;

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

库;

使用ieee.std_logic_1164.all;

库工作;

使用work.my_pack_0001.all;

实体ex_0001是

port(in_port:in std_logic;

out_port:out std_logic);

结束ex_0001;

ex_0001的架构是

signal my_name :std_logic;

开始

my_name <= in_port;

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

out_port => out_port);

结束;

解决/修复方法

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

这不是符合VHDL LRM的代码。要解决此问题,您必须重命名信号或组件。

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

库;

使用ieee.std_logic_1164.all;

包my_pack_0001是

组件my_name

port(in_port:in std_logic;

out_port:out std_logic);

最终组件;

最终包;

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

库;

使用ieee.std_logic_1164.all;

库工作;

使用work.my_pack_0001.all;

实体ex_0001是

port(in_port:in std_logic;

out_port:out std_logic);

结束ex_0001;

ex_0001的架构是

signal my_name :std_logic;

开始

my_name <= in_port;

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

out_port => out_port);

结束;

在上面的代码中,将my_name重命名为my_name_signal

请登录后发表评论

    没有回复内容