2 硬件描述语言VHDL基础0910_第1页
2 硬件描述语言VHDL基础0910_第2页
2 硬件描述语言VHDL基础0910_第3页
2 硬件描述语言VHDL基础0910_第4页
2 硬件描述语言VHDL基础0910_第5页
已阅读5页,还剩35页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2 硬件描述语言VHDL基础 2.1 概述2.2 VHDL的主要构件2.3 数据类型和运算2.4 行为和结构描述2022/8/11西安交通大学电气学院电子学2.1 概述组合电路传统的设计方法缺点 对于复杂数字系统的设计,很繁琐,设计者和其他人员也不容易了解设计是否正确和互相交流。 HDL (Hardware Description Language, HDL) 目的:便于利用计算机进行数字系统辅助设计便于交流和存档HDL是描述电子系统硬件行为、结构和数据的语言,是一种描述复杂数字电路的工具,是设计者与电子设计自动化(EDA)软件之间的界面。 2022/8/11西安交通大学电气学院电子学组合电路

2、设计方法比较 传统 逻辑命题 列真值表 化简逻辑函数 画逻辑电路图 HDL用HDL描述系统的结构或行为用设计软件工具生成与硬件实现有关的工艺文件用高密度可编程逻辑器件来实现系统 2022/8/11西安交通大学电气学院电子学VHDL的优点: 1.覆盖面广,描述能力强,是一个多层次的硬件描述语言;2. 可读性好;3. 生命期长,其硬件描述与工艺技术无关;4. 支持大规模设计的分解和已有设计再利用;5. 已成为IEEE承认的一个工业标准,成为一 种通用的硬件描述语言。2022/8/11西安交通大学电气学院电子学2.2 VHDL的主要构件 2.2.1 实体(ENTITY)2.2.2 结构体(ARCHI

3、TECTURE) 2.2.3 程序包(PACKAGE) 2.2.4 库(LIBRARY) 2022/8/11西安交通大学电气学院电子学2.2.1 实体 设计电路的最基本部分。描述一个设计单元的外部接口以及连接信 号的类型和方向。当一个实体经过编译并被放入库中之后,它就成为其他设计可以采用的一种元件。主要描述了设计单元的名称和端口的引脚等信息。2022/8/11西安交通大学电气学院电子学实体的一般格式ENTITY 实体名 IS PORT(端口表); 实体说明部分; BEGIN 实体语句部分;END ENTITY 实体名;例2.2.1或门的实体ENTITY orgate IS PORT( a,b:

4、IN BIT ; z:OUT BIT); END orgate;2022/8/11西安交通大学电气学院电子学 名称 端口 信息 信号取值 类型:两值逻辑、整数、 实数、记录、数组 实体(entity) 端口 模式:输入、输出、双向、缓冲 2022/8/11西安交通大学电气学院电子学2.2.2 结构体 结构体(architecture)电路描述部分用于描述设计单元内部的行为、元件及连接关系。一个实体可以对应多个结构体,每个结构体代表该硬件的某一方面特性。每一特性的描述,又由于其层次、实现方法不同形成多个结构体。 2022/8/11西安交通大学电气学院电子学结构体的一般格式 architectur

5、e 结构体名of 实体名 is 定义语句;(内部信号,常数,数据类型,函数定义等)begin 并行处理语句; 进程语句;end 结构体名; 2022/8/11西安交通大学电气学院电子学例2.2.2 或门的结构体ARCHITECTURE behave OF orgate ISBEGIN or_func:PROCESS (a,b) BEGIN IF(a=1 or b=1) THEN z = 1; ELSE z = 0; END IF; END process or_func;END behave; 2022/8/11西安交通大学电气学院电子学VHDL主要采取的描述方式行为描述描述该设计单元的功能。

6、主要使用函数、过程和进程语句,以算法形式描述数据的变换和传送。 结构描述描述该设计单元的硬件结构,即该电路是如何构成的。主要使用配置指定语句及元件例化语句描述元件的类型及互连关系。 2022/8/11西安交通大学电气学院电子学2.2.3 程序包 程序包(package)设计中所用的子程序和公用数据类型的集合。 程序包说明的一般形式程序包名:任选项可以在程序包中使用的说明有:信号说明、属性说明和元件说明等。package 程序包名 is 说明部分end 程序包名2022/8/11西安交通大学电气学院电子学包体名总是与它对应的程序包名相同,package body 是保留字。可以在包体出现的说明有

7、:基本说明和子程序体等。 包体的一般形式package body 程序包名is 说明部分end 程序包名 2022/8/11西安交通大学电气学院电子学程序包的调用例如,调用程序包ieee.std_logic_1164.all中的内容。需要使用Library和 use语句。library ieee;use ieee.std_logic_1164.all;这两句放在程序的前面,表示后面在实体和结构体中要用到库IEEE中的标准类型包ieee.std中的数据类型。 包体中的子程序体和基本说明不能被其它VHDL单元使用,程序包中的说明是公共的,是可调用的。要是一个程序包中所定义的内容可以被调用,应在VH

8、DL单元前加上use 语句。2022/8/11西安交通大学电气学院电子学2.2.4 库 库(library) 用来存放可编译的设计单元。 VHDL编译的结果存放在一个库中,以便以后进行模拟或者其它设计使用。包括存放公用说明的程序包公用的设计实体 公用的设计实现构造体 公用的设计版本配置2022/8/11西安交通大学电气学院电子学库好处它使得编译过的设计能为大家共享VHDL库分为设计库和资源库两类。调用设计库无需使用library语句就可直接使用。资源库存放常规元件和标准模块,使用前要预先用library语句声明。例如要调用库ieee的VHDL语句是:library ieee。 2022/8/1

9、1西安交通大学电气学院电子学2.3 数据类型与运算 VHDL硬件描述语言中有三类对象:信号、变量和常量。 VHDL是一种非常严格的数据类型化语言,规定每个信号、常量、变量或表达式都要有确定的数据类型。 2.3.1 标量数据类型2.3.2 复合数据类型2.3.3 IEEE标准数据类型2.3.4 运算及运算符2022/8/11西安交通大学电气学院电子学2.3.1标量数据类型 标量数据类型包括:字符、位、布尔量、实数、整数、物理单位和枚举等。类型说明的一般形式是: type类型名is类型定义 2022/8/11西安交通大学电气学院电子学一个字符放入单引号中就定义了一个字符:xa z 中任一个字符、0

10、 9中的数字和特殊字符数字系统中的信号经常用位来表示表示的方法是用0或1来表示一个位的两个可能值位矢量数组位矢量是用双引号括起来的位文字,称之为位矢量数组。例如:“001100”标量数据类型2022/8/11西安交通大学电气学院电子学布尔数据类型一个布尔文字用来表示真(True)或者假(False)一般关系操作会产生一个布尔量结果整数与浮点数据类型的范围限制由关键字range 和范围说明组成形式较简单的范围说明是由两个表达式和一个方向组成,方向to表示范围的上升,方向downto 表示范围的下降。例如0 to 3和7 downto 0等。 2022/8/11西安交通大学电气学院电子学枚举类型T

11、YPE my_state IS (reset, rw_cycle, int_cycle) signal state:my_state; state = reset; OK state = “00”; ERR 枚举类型定义在形式上是括号括起来的枚举文字表。枚举文字:标识符、字符文字。 一个标识符或字符文字在同一个枚举类型定义中只能出现一次,但容许同一标识符或字符文字出现在不同的枚举类型的定义中。 举例2022/8/11西安交通大学电气学院电子学物理类型举例 type Resistance is range 1 to E9;units ohm; 基本单位 kohm=1000 ohm; 次级单位,基

12、本单位的整数倍 end units; 2022/8/11西安交通大学电气学院电子学2.3.2 复合数据类型 复合类型举例type Instruction is record Opcode_field:Opcode; Operand_1: address; Operand_2: address; end record; 分类记录:异构复合类型 数组:同构复合类型 2022/8/11西安交通大学电气学院电子学2.3.3 IEEE标准数据类型“std_logic”和“std_logic_vector” “0”0;“1” 1;“U”初始值;“X”不定,未知;“Z”高阻状态;“W”弱信号不定,未知;“L

13、”弱信号0;“H”弱信号1;“-”不可能情况2022/8/11西安交通大学电气学院电子学2.3.4 运算及运算符 逻辑代数中的各种逻辑运算都有专门的运算符号在VHDL中:与、或、与非、或非、异或、非and、or、nand、nor、xor、 not逻辑运算所涉及的对象必须事先定义为bit、bit_vector或boolean等数据类型运算符not的优先级别最高。 2022/8/11西安交通大学电气学院电子学library ieee;use ieee.std_logic_1164.aLL;entity muls is port (a,b,c:in bit ; z :out bit);end mul

14、s;architecture ex of muls is begin z = a and not(b or c);end ex;例2.3.4 运算符优先级的举例2022/8/11西安交通大学电气学院电子学2.4 行为和结构描述 VHDL在两个层次上定义了数字系统的行为:顺序(Sequential)层和并发(Concurrent)层。顺序层:在单个进程中用顺序语句规定其一步一步的行为;并发层:定义不同进程间的相互关系,尤其是信号传递的问题。进程是VHDL中最主要的并发语句,是联系时序层和并发层的一种纽带。2022/8/11西安交通大学电气学院电子学2.4行为和结构描述2.4.1 进程2.4.2

15、并发行为2.4.3 VHDL的行为描述2.4.4 VHDL的结构描述2022/8/11西安交通大学电气学院电子学2.4.1 进程(PROCESS) 进程句法的一般形式:进程名 PROCESS 敏感信号表变量说明语句;BEGIN 顺序说明语句;END PROCESS 进程名; 进程:行为描述构造体中的一部分,它用时序语句描述了硬件的行为。定义了本进程的作用范围描述了本进程被激活后要执行的行为2022/8/11西安交通大学电气学院电子学2.4.1进程(PROCESS)进程中的关键字:PROCESS、WAIT UNTIL、 BEGIN、 WAIT FOR、END PROCESS等。敏感信号表中可以有

16、一个或多个敏感信号。当然也可以不用敏感信号,但此时需用其他形势的敏感信号WAIT UNTIL或WAIT FOR来激活进程。变量说明语句中定义本进程所需的局部数据。顺序说明语句用来定义进程的行为。2022/8/11西安交通大学电气学院电子学2.4.1进程(PROCESS)一旦进程的敏感信号表中的任一信号发生变化,进程所定义的行为就被执行一次。进程的两种状态:激活状态和挂起状态。每一个进程在给定的时间内都有可能被激活,而且所有激活的进程都是并发执行的。2022/8/11西安交通大学电气学院电子学2.4.2 并发行为 用硬件描述语言VHDL所设计的电子系统实际工作时是并行操作,所以系统中的元件在模拟

17、时间上应该同时运行。并发语句就是用来表示这种并发行为的。VHDL语言中电路描述部分(architecture)中的语句都是并行的,在字面上的顺序并不代表它们的执行顺序。 2022/8/11西安交通大学电气学院电子学2.4.2 并发行为【例2.4.1】两个功能完全等价的结构体。 ENTITY exe IS PORT (a,b:IN bit ; c,d:OUT bit); END exe;ARCHITECTURE exe_arc1 OF exe IS BEGIN c = a AND b; d = NOT a OR b;END exe_arc1;2022/8/11西安交通大学电气学院电子学2.4.2

18、 并发行为 ARCHITECTURE exe_arc2 OF exe IS BEGIN d = NOT a OR b; c = a AND b; END exe_arc2;2022/8/11西安交通大学电气学院电子学2.4.3 VHDL的行为描述 行为描述:用算法来对单元的功能进行描述。 例2.4.2 加法器的行为描述LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;ENTITY adder IS PORT (op1, op2 :IN UNSIGNED(7 DOWMTO 0); result : OUT INTEGER);END adder;ARCHITECTURE maxpld OF adder ISBEGINresult = conv_integer(op1 + op2);END maxpld; 2022/8/11西安交通大学电气学院电子学2.4.4 VHDL的结构描述 描述一个设计单元的硬件结构,就是描述它的组成元件和它们之间的连接关系。结构描述的基本单元是“调用元件语句”,元件是已经编译好的放在库里的低层设计单元。2022/8/11西安交通大学电气学院电子学例2.4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论