vhdl语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章 VHDL硬件描述语言本章要点

VHDL语言的数据结构

VHDL语言的顺序语句和并行语句

VHDL程序设计

6.1 VHDL概述 6.1.1 VHDL的特点

(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性。

(2)具有丰富的模拟仿真语句和库函数。

(3)VHDL有良好的可读性,接近高级语言,容易理解。

(4)系统设计与硬件结构无关。

(5)支持模块化设计。

(6)用VHDL完成的一个确定设计,可以利用EDA工具自动地把VHDL描述转变成门电路级网表文件。

(7)设计灵活,修改方便。

用VHDL设计电路主要的工作过程是:编辑、编译、功能仿真(前仿真)、综合、布局、布线、后仿真(时序仿真)。

6.1.2 VHDL的基本结构

一个VHDL程序必须包括实体(ENTITY)和结构体(ARCHITECTURE)。除实体和结构体外,多数程序还要包含库和程序包部分。实体中定义了一个设计模块的外部输入和输出端口,即模块(或元件)的外部特征,描述了一个元件或一个模块与其他部分(模块)之间的连接关系,可以看作是输入输出信号和芯片管脚信息。结构体主要用来说明元件内部的具体结构,即对元件内部的逻辑功能进行说明,是程序设计的核心部分。库是程序包的集合,不同的库有不同类型的程序包。程序包用来定义结构体和实体中要用到的数据类型、元件和子程序等。

【例6-1】用VHDL设计一个非门(反向器)。

非门即 y = a,设反相器的VHDL的文件名是not1.vhd,其中的.vhd是VHDL程序文件的扩展名。程序结构如下:--库和程序包部分

LIBRARY IEEE; --打开IEEE库

USE IEEE.STD_LOGIC_1164.ALL; --调用库中STD_LOGIC_1164程序包

--实体部分

ENTITY not1 IS --实体名为 not1

PORT ( --端口说明

a:IN STD_LOGIC; --定义端口类型和数据类型

y:OUT STD_LOGIC);

END not1: --实体结束

--结构体部分

ARCHITECTURE inv OF not1 IS --结构体名为 inv

BEGIN

y <= NOT a; --将a取反后赋值给输出端口y

END inv; --结构体结束

这是一个完整的VHDL源程序实例。其中的第一部分是库和程序包,是用VHDL编写的共享文件,定义结构体和实体中要用到的数据类型、元件、子程序等,放在名为IEEE的库中。第二部分是实体,相当于定义电路单元的管脚信息。第三部分是结构体,用来描述电路的内部结构和逻辑功能。两条短划线是注释标识符,其右侧内容是对程序的具体注释,并不执行。所有语句都是以“;”结束,另外程序中不区分字母的大小写。

6.1.3 VHDL的库和程序包

1.库库是专门用于存放预先编译好的程序包的地方,对应一个文件目录,程序包的文件就放在此目录中,其功能相当于共享资源的仓库,所有已完成的设计资源只有存入某个“库”内才可以被其他实体共享。常用的库有IEEE库、STD库和WORK库。库语句格式如下:

LIBRARY 库名;

2.程序包程序包是用VHDL语言编写的一段程序,可以供其他设计单元调用和共享,相当于公用的“工具箱”,各种数据类型、子程序等一旦放入了程序包,就成为共享的“工具”,类似于C语言的头文件,使用它可以减少代码的输入量,使程序结构清晰。程序包分为包头和包体两部分。

程序包格式如下。

包头格式:PACKAGE 程序包名 IS

[包头说明语句]

END 程序包名;

包体格式:

PACKAGE BODY 程序包名 IS

[包体说明语句]

END 程序包名;

调用程序包的通用模式为:USE 库名.程序包名.ALL;

常用预定义程序包有以下四个:

(1)STD_LOGIC_1164程序包

(2)STD_LOGIC_ARITH程序包

(3)STD_LOGIC_SIGNED程序包

(4)STD_LOGIC_UNSIGNED程序包

6.1.4 VHDL的实体

VHDL描述的对象称为实体,是设计中最基本的模块。实体的格式如下:

ENTITY 实体名 IS

[GENERIC(类属说明)]

[PORT(端口说明)]

END 实体名;

1.类属说明类属说明是实体说明的一个可选项(可选项用[…]表示),主要为设计实体指定参数,可以用来定义端口宽度、实体中元件的数目、器件延迟时间等。

类属说明语句的格式如下:

GENERIC(常数名1:数据类型1:= 设定值1;

……;

常数名n:数据类型n:= 设定值n);

2.端口说明端口说明也是实体说明的一个可选项,负责对实体中输入和输出端口进行描述。端口说明语句格式如下:

PORT(端口信号名1:端口模式1 数据类型1;

……;

端口信号名n:端口模式n 数据类型n);

6.1.5 VHDL的结构体

结构体用来描述设计实体的内部结构或行为,是实体的一个重要组成部分,定义了实体的具体功能,规定了实体中的信号数据流程,确定了实体中内部元件的连接关系。结构体用三种方式对设计实体进行描述,分别是行为描述、寄存器传输描述和结构描述。其格式如下:

ARCHITECTURE 结构体名 OF 实体名 IS

[结构体说明部分;]

BEGIN

功能描述语句;

END 结构体名;

【例6-4】通过中间信号m实现输入端到输出端的数据传输。

ENTITY mybody IS --实体名为mybody

PORT( in1 :IN BIT; --定义端口

output1 :OUT BIT );

END mybody;

ARCHITECTURE myprog OF mybody IS --结构体名为myprog

SIGNAL m:BIT; --定义中间信号m

BEGIN

相关文档
最新文档