【问题标题】:Component instantiation error组件实例化错误
【发布时间】:2017-06-29 12:56:30
【问题描述】:

对于以下 VHDL 代码:

library ieee;
use ieee.std_logic_1164.all;
entity dff is
  port(
      d, clk: in std_logic;
      q: out std_logic);
end dff;
architecture behave of dff is
  begin
    process(clk)
      begin
      if(clk = '1') then
        q<= d;
    end if;
  end process;
end behave; 

----------------------------------------------- ----------------------

还有一个测试平台:

library ieee;
use ieee.std_logic_1164.all;
entity dff is
end dff;
architecture behave of dff is
  component dff is
port(d, clk: in std_logic;
     q: out std_logic);


 end component;


    signal  d_in: std_logic;
    signal  clk_in: std_logic;
    signal  q_out: std_logic;

begin
  d_ff : dff port map( d_in, clk_in, q_out);
  process
    begin
      if(clk_in = '1') then
      q_out<= d_in;
      end if;
  end process;
end behave;  

在尝试模拟 Modelsim 时显示以下错误:

#加载设计时出错
以下组件端口不在实体上:
q
时钟

【问题讨论】:

    标签: vhdl


    【解决方案1】:

    您的测试台的实体名称也是dff。你需要给它一个不同的名字(例如dff_tb)。因此,当您编译测试平台时,它会覆盖另一个 dff 实体。

    【讨论】:

    • 澄清一下。覆盖 dff 实体(和架构)不是错误。 Modelsim 错误是 IEEE Std 1076-2008 7.3.3 默认绑定指示,第 9 段中的语义检查:“如果实体方面暗示的设计实体包含正式端口,则默认绑定指示包括默认端口映射方面。默认端口map aspect 将相应组件实例化(如果有)中的每个本地端口与具有相同简单名称的形式相关联。如果这样的形式不存在,或者它的模式和类型不适合这样的形式,则会出错协会。 ...."
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 2014-09-30
    • 1970-01-01
    • 2010-11-03
    • 2016-07-13
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多