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