VHDL 元件例化语句

来源:百度知道 编辑:UC知道 时间:2024/06/03 05:51:37
VHDL 元件例化语句的问题,
元件例化语句怎么用? 简单说就是在写一个 全加器时候,引用半加器
实体是
Entity full_adder is
Port(a ,b,,cin: in std_logic;
S,co: out std_logic);
End full_adder;
在结构体中先说明
Component half_adder
Port(a,b: in std_logic;
s,co: out std_logic);
end component;
然后就引用,。。
有点搞不清楚,
是不是只能引用work库中的元件?
Work库中有那些元件?

引用的东西要在同一个project里的其他文件里有定义才行。
给你个例子看下就明白了,这是引用一位全加器构成一个四位全加器。
project名是adder,里面两个vhd文件,分别为fulladder.vhd和adder.vhd
fulladder.vhd内容如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY FullAdder is --这是一位全加器
port(
A:in std_logic;
B:in std_logic;
C:in std_logic;
Carry:out std_logic;
Sum:out std_logic
);
END FullAdder;

architecture a of FullAdder is
begin
Sum<=A xor B xor C;
Carry<=(A and B) or (A and C) or (B and C);
end a;

adder.vhd内容如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity adder is --四位全加器
port(
A,B:in std_logic_vector(3 downto 0);
S:out std_logic_vector(3 downto 0);
C:inout std_logic_vector(4 downto 0)
);
end adder;