(1)LIBRARY和PACHAGE的声明部分
作用:库(Library)是用于存放预先编译好的程序(package),程序包中定义了数据集合体、逻辑操作和元件等。主要是声明在设计或实体中将用到的常数,数据类型,元件及子系统等。
使用格式:LIBRARY 库名;
USE 库名.程序包名.ALL;
例如: LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
(2)ENTITY定义
作用:定义本设计的输入/出端口,即定义电路的外观,即I/O接口的类型和数量使用格式:
格式:
ENTITY 实体名 IS
port( 端口名 : 端口模式 数据类型;
........
端口名:端口模式 数据类型;
)
END 实体名;
例:
ENTITY MUX41A IS
PORT (A,B,C,D,s0,s1,s2,s3 :IN STD_LOGIC;
Y : OUT STD_LOGIC);
END ENTITY MUX41A;
(3)ARCHITECTURE定义
作用:定义实体的实现。即电路的具体描述,说明电路执行什么动作或实现功能。
使用格式:
ARCHITECTURE 结构体名 of 实体名 IS
begin
描述语句;
end 结构体名;
例如:
ARCHITECTURE BHV OF MUX41A IS
SIGNAL S:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
S <= s3 & s2 & s1 & s0 ;
Y<=A WHEN S="1110" ELSE
B WHEN S="1101" ELSE
C WHEN S="1011" ELSE
D WHEN S="0111" ELSE
‘1’;
END BHV;