第4节 VHLDL具体组成模块
库
库的含义
- 库(Library)是经编译后的数据的集合,它存放包集合定义、实体定义、构造体定义和配置定义
- 它可以使设计者共享已经编译过的设计成果。库和库之间是独立的,不能互相嵌套。
库的种类
- IEEE库
- STD库
- WORK库
- ASIC矢量库
- 用户定义的库
库的使用
- 对库及其内部程序包进行说明:
--Library 库名列表;
--Use 库名.程序包名.all;
--Use 库名.程序包名.项目名;
- 例如:
--Library ieee;
--Use ieee.std_logic_1164.all;
- 库说明作用范围
--库说明语句的作用范围从一个实体说明开始到它所属的构造体、配置为止。当一个源程序中出现两个以上的实体时,两条作为使用库的说明语句应在每个实体说明语句前重复书写。
程序包
程序包说明部分和包体部分的书写格式:
PACKAGE 程序包名 IS
[说明语句];
END 包集合名;
PACKAGE BODY 程序包名 IS
[说明语句和子程序体];
END 包集合名;
实体说明
ENTITY <entity_name> IS
Generic Declarations
Port Declarations
END <entity_name>;
(1076-1987 version)
END ENTITY <entity_name> ; ( 1076-1993 version)
- 端口说明的常用格式
PORT(名字:信号模式 数据类型;……);
- 信号模式
in: 输入,流入端口
out: 输出,流出端口
inout: 双向端口(既可流入,又可流出)
buffer: 缓冲端口(输出,可以反馈到实体内部)
linkage:不指定方向,可与任意方向的信号连接
- 常用数据类型
std_logic, std_logic_vector
实体说明举例
ENTITY Example IS
Generic ( tplh , tphl : time := 5 ns;
de_value : integer := 1
);
Port ( clk : in bit;
flag : out bit;
q : out bit_vector(3 downto 0)
);
END ENTITY Example;
结构体概述
- 用来描述实体的内部结构和逻辑功能
- 必须和实体(ENTITY)相联系
- 一个实体(ENTITY)可以有多个结构体
- 结构体的运行是并发的
- 结构体类型包括:
--行为描述
--结构描述
--混合描述
结构体基本结构
ARCHITECTURE <identifier> OF <entity_id> IS
——说明语句
BEGIN
——并行语句
END <identifier> ; (1076-1987 version)
END ARCHITECTURE; (1076-1993 version)
实体和结构体之间的关系

结构体的三种子结构
- 块(Block
--是结构体的子模块,由若干并发语句构成。
- 进程(Process)
--一个结构体可以包含多个进程;
--进程之间是并发的,进程内部是顺序执行的。
- 子程序
--过程(Procedure)和函数(Function)
--由顺序语句组成
VHDL语言结构体的描述方式
- 行为描述方式
--描述电路行为,不涉及具体硬件;
--寄存器传输RTL描述(数据流描述方式)
-是行为级描述的一种,可综合。
- 结构描述方式
--描述电路结构,涉及下一层电路模块。
- 混合描述方式
--上述描述方式的组合。
行为描述方式
- 所谓行为描述,就是对设计实体的数学模型的描述,其抽象程度较高。
- 行为描述类似于高级编程语言,当要描述一个设计实体的行为时,无须知道具体电路的结构,只需要用一组状态来描述即可。
- 行为描述的优点在于只需要描述清楚输入与输出的行为,而不需要花费更多的精力关注设计功能的门级实现。
结构体--行为描述

寄存器转移级/数据流描述方式
- 一种可综合的行为级描述。
- 数据流描述是对从信号到信号的数据流的路径形式进行描述,因此很容易进行逻辑综合。
- 由于要对信号的流动路径进行描述,因此要求设计人员对设计实体的功能实现要有一定的了解,有时候还需要对内部电路有清楚的认识,具有一定的难度。
结构体--数据流描述

结构描述方式
- 结构描述方式就是在多层次的设计中,通过调用库中的元件或是已设计好的模块来完成设计实体功能的描述。
- 在结构体中,描述只表示元件(或模块)和元件(或模块)之间的互连。
- 当引用库中不存在的元件时,必须首先进行元件的创建,然后将其放在工作库中,通过调用工作库来引用元件。在引用元件时,要先在结构体说明部分进行元件的说明,然后在使用元件进行元件例化。
结构体--结构化描述

配置
- 在器件和实体、结构体,实体和结构体之间建立关联;
- 能使设计更灵活和快速;
- 在仿真环境用的比较多,综合环境中不提供或受限制
- 根据不同的使用情况,配置大致可分为四种类型:
- 默认配置:
--如果一个实体有多个结构体对应,可通过默认配置将实体和一个特定的结构体关联起来。
--只能用来选择不含有任何块语句和元件的结构体。
- 元件配置
--在元件例化时,component语句没有指明元件属于哪个库的实体及其结构体。可用配置语句进行指定。
- 块配置
--对于含有块语句的结构体,对块语句中的元件进行配置。
- 结构体配置
--对结构体中所引用的元件进行配置,配置说明放在结构体的说明语句部分,即配置说明不需要与元件所在的结构体分开。
VHDL的基本语法结构
- 标识符、数字、注释、
- 字符、字符串、 、
- 数据对象(常量、信号、变量、文件)、
- 别名、
- 数据类型(标量、复合、存取、文件、子类型)
- 运算符(逻辑、关系、算术、并置)
<<上一节 下一节>>