文档介绍:EDA技术与VHDL
第10章
VHDL结构
VHDL实体
VHDL实体作为一个设计实体(独立的电路功能结构)的组成部分,其功能是对这个设计实体与外部电路进行接口描述。实体是设计实体的表层设计单元,实体说明部分规定了设计单元的输入输出接口信号或引脚,它是设计实体对外的一个通信界面。实体的具体表述和用法已在前面有过详细例解,这里不再重复。
KX康芯科技
VHDL结构体
1. 结构体的一般语言格式
ARCHITECTURE 结构体名 OF 实体名 IS
[说明语句]
BEGIN
[功能描述语句]
END ARCHITECTURE 结构体名;
VHDL结构体
2. 结构体说明语句
3. 功能描述语句结构
进程语句
信号赋值语句
子程序调用语句
元件例化语句
VHDL子程序
VHDL函数
FUNCTION 函数名(参数表) RETURN 数据类型--函数首
FUNCTION 函数名(参数表)RETURN 数据类型 IS -- 函数体
[ 说明部分]
BEGIN
顺序语句;
END FUNCTION 函数名;
【例8-1】
LIBRARY IEEE;
USE ;
PACKAGE packexp IS --定义程序包
FUNCTION max( a,b : IN STD_LOGIC_VECTOR) --定义函数首
RETURN STD_LOGIC_VECTOR ;
FUNCTION func1 ( a,b,c : REAL ) --定义函数首
RETURN REAL ;
FUNCTION "*" ( a ,b : INTEGER ) --定义函数首
RETURN INTEGER ;
FUNCTION as2 (SIGNAL in1 ,in2 : REAL ) --定义函数首
RETURN REAL ;
END ;
PACKAGE BODY packexp IS
FUNCTION max( a,b : IN STD_LOGIC_VECTOR) --定义函数体
RETURN STD_LOGIC_VECTOR IS
BEGIN
IF a > b THEN RETURN a; ELSE RETURN b; END IF;
END FUNCTION max; --结束FUNCTION语句
END; --结束PACKAGE BODY语句
LIBRARY IEEE; -- 函数应用实例
USE ;
USE ;
ENTITY axamp IS
PORT(dat1,dat2 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
dat3,dat4 : IN STD_LOGIC_VECTOR(3 DOWNTO 0);
out1,out2 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) );
END;
ARCHITECTURE bhv OF axamp IS
BEGIN
out1 <= max(dat1,dat2); --用在赋值语句中的并行函数调用语句
PROCESS(dat3,dat4)
BEGIN
out2 <= max(dat3,dat4); --顺序函数调用语句
END PROCESS;
END;
KX康芯科技
VHDL子程序
VHDL函数
图8-1 10-2 例8-1的逻辑电路图
VHDL子程序
【例8-2】
LIBRARY IEEE;
USE ;
ENTITY func IS
PORT ( a : IN STD_LOGIC_VECTOR (0 to 2 ) ;
m : OUT STD_LOGIC_VECTOR (0 to 2 ) );
END ENTITY func ;
ARCHITECTURE demo OF func IS
FUNCTION sam(x ,y ,z : STD_LOGIC) RETURN STD_LOGIC IS
BEGIN
RETURN ( x AND y ) OR z ;
END FUNCTION sam ;
BEGIN
PROCESS ( a )
BEGIN
m(0) = sam( a(0), a(1), a(2) ) ;
m(1) = sam( a(2), a(0), a(1) ) ;
m(2) = sam( a(1), a(2), a(0) ) ;
END PROCES