第4章__VHDL设计入门.ppt

第4章__VHDL设计入门

3、程序包的定义 PACKAGE 程序包名 IS 程序包首说明语句; END[PACKAGE] 程序包名; PACKAGE BODY 程序包名 IS 程序包体说明语句; END [PACKAGE BODY] 包集合名; [重点提示]程序包体为可选项,程序包首与程序包体名字应相同; 4、库与程序包的使用 除WORK、STD库外,其他库与程序包使用前首先要声明。格式如下: LIBRARY 库名; USE 库名.程序包名.项目名; USE 库名.程序包名.ALL; 最后的一个USE语句中的ALL表示使用这个程序包中的所有资源。 例如: LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL; LIBRARY IEEEE; USE IEEE.STD_LOGIC_1164.ALL; 库说明的作用范围从实体开始到其所属构造体、配置为止。 使用下面语句使用用户定义的程序包; USE work.包名.项目名; USE work.包名.ALL; 二、实体 实体(ENTITY)VHDL程序的主体,包括实体声明和结构体两部分。实体声明部分描述所设计的电路与外部电路的接口,指定其输入/输出端口或引脚,而结构体则用来规定所设计电路的内部结构和输入与输出引脚间的逻辑关系。 实体声明格式是: ENTITY 实体名 IS [GENERIC(类属表);]----类属参数声明 PROT(端口表);----端口声明 END [ENTITY] 实体名; 1、类属参数声明 放在端口声明之前,指定所设计电路所用到的类属参数,如矢量位数、时间单位等,主要在进行考虑一般性的设计时用到,通过改变这些类属参数可适应不同情况要求。 例如: GENERIC(n:POSITIVE:=8);---声明一个类属参数。 2、端口声明 描述所设计的电路与外部电路的接口,指定其输入/输出端口或引脚。其格式如下: 下面是一个实体声明的例子: ENTITY and_n IS GENERIC(n:POSITIVE:=8);---声明一个类属参数。 PORT(a:IN BIT_VECTOR((n-1) DOWNTO 0);---bit为位数据类型, f:OUT BIT);---只有‘0’和‘1’两个值,bit_vector是位矢量。 END and_n; 三、结构体 结构体则用来规定所设计电路的内部结构和输入输出引脚间的逻辑关系。其格式如下: 1、结构体内的声明语句 结构体的声明部分用来声明只能用于所设计电路内部的常数、数据类型、信号、元件和子程序。这些声明只能用于这个结构体中。 2、功能描述语句的类型 (1)进程语句,其内部为顺序语句。 (2)并行过程调用语句 (3)并行的信号赋值语句包括简单信号赋值语句、条件信号赋值语句和选择信号赋值语句。 (4)元件例化语句 (5)生成语句 下面是一个实体与结构体的具体例子: ENTITY adder IS PORT(op1,op2: IN UNSIGNED(7 downto 0); Result : OUT INTEGER); END adder; ARCHITECTURE maxpld OF adder IS BEGIN Result =CONV_INTEGER(op1+op2); END maxpld; 四、 配置 一个实体可有几个结构体。配置是在一个实体有几个结构体时,用来为实体指定特定的情况下使用哪个特定的结构体。在仿真时可利用配置为实体选择不同的结构体。其格式如下: 4.3 VHDL程序的顺序结构 VHDL的基本描述语句有顺序语句(Sequential Statements)和并行语句(Concurrent Statements)。顺序语句的特点是:其中每一条语句在行为仿真是的执行顺序都是按照它们的书写顺序。而并行语句的特点则是:各个并行

文档评论(0)

1亿VIP精品文档

相关文档