Vhdl 组件实例化错误

Vhdl 组件实例化错误,vhdl,Vhdl,对于以下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;

对于以下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; 
ieee库;
使用ieee.std_logic_1164.all;
实体dff是
港口(
d、 clk:标准逻辑中;
q:输出标准(U逻辑);
结束dff;
dff的体系结构表现为
开始
过程(clk)
开始
如果(时钟='1'),则

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

。覆盖dff实体(和体系结构)不是错误。Modelsim错误是IEEE Std 1076-2008 7.3.3默认绑定指示第9段中的语义检查:“如果实体方面隐含的设计实体包含正式端口,则默认绑定指示包括默认端口映射方面。默认端口映射方面将相应组件实例化中的每个本地端口关联起来(如果有)具有相同简单名称的形式。如果这种形式不存在或其模式和类型不适合于这种关联,则为错误……”
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;