第2章-VHDL设计入门-《EDA技术》-教学课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章-VHDL设计入门-《EDA技术》-教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA技术 VHDL 设计 入门 EDA 技术 教学 课件
- 资源描述:
-
1、 【要求要求】掌握掌握VHDL语言的基本知识和运用语言的基本知识和运用VHDL语言设计逻辑电路语言设计逻辑电路的基本方法。的基本方法。【知识点知识点】l 理解理解VHDL程序的基本结构程序的基本结构l 理解理解VHDL程序的顺序语句程序的顺序语句l 理解理解VHDL程序的并行语句程序的并行语句l 理解理解VHDL程序的语言要素程序的语言要素第2章 VHDL设计入门下一页 【重点和难点重点和难点】l VHDL程序的顺序结构程序的顺序结构l VHDL程序的并行结构程序的并行结构【引言引言】HDL文本输入设计法是文本输入设计法是Quartus II的一个重要输入的一个重要输入设计法设计法,本书主要介
2、绍,本书主要介绍VHDL文本输入法。本章讨论文本输入法。本章讨论VHDL语言的基本知识和运用语言的基本知识和运用 VHDL语言设计逻辑电路的语言设计逻辑电路的方法,在以后各章再对方法,在以后各章再对VHDL文本输入设计法及其应用作文本输入设计法及其应用作进一步的讨论。进一步的讨论。本章先介绍本章先介绍VHDL程序的基本结构、顺序语句和并行程序的基本结构、顺序语句和并行 语句,最后对语句,最后对VHDL程序的语言要素做一个总结。程序的语言要素做一个总结。第2章 VHDL设计入门下一页上一页第2章 VHDL设计入门2.1 VHDL程序的基本结构程序的基本结构2.2 VHDL程序的顺序语句程序的顺序
3、语句2.3 VHDL程序的并行语句程序的并行语句2.4 VHDL程序的语言要素总结程序的语言要素总结2.5 本章小结本章小结上一页 VHDL程序包含实体程序包含实体(ENTITY)、结构体、结构体(ARCHITECTURE)、配置、配置(CONFIGURATION)、程序包、程序包(PACKAGE、库、库(LIBRARY)5个部分。个部分。简单的实体是由实体和结构体两部分组成的。简单的实体是由实体和结构体两部分组成的。实体用于描述设计系统的外部接口信号,结构体用于描述系实体用于描述设计系统的外部接口信号,结构体用于描述系统的行为、系统数据的流程或者系统组织结构形式。统的行为、系统数据的流程或者
4、系统组织结构形式。设计实体是设计实体是VHDL程序的基本单元,是电子系统的抽象。程序的基本单元,是电子系统的抽象。简单的实体可以是一个与门电路简单的实体可以是一个与门电路(AND GATE),复杂的实,复杂的实体可以是一个微处理器或一个数字电了系统。体可以是一个微处理器或一个数字电了系统。实体由实体说明和结构体说明两部分组成。实体由实体说明和结构体说明两部分组成。2.1 VHDL程序的基本结构下一页下一页上一页2.1 VHDL程序的基本结构 【例例2.1】以下是一个简单的以下是一个简单的VHDL源程序,可以归纳出源程序,可以归纳出VHDL程序的基本结构。程序的基本结构。ENTITY m yan
5、d2 IS -实体名称为实体名称为and2 PORT (a,b:IN BIT;-a,b是两个输入引脚是两个输入引脚 c:OUT BIT);-c为输出引脚为输出引脚 END m yand2;ARCHITECTURE examl OF myand2 IS -结构体结构体 BEGIN exam 1是对实体是对实体and2的内部的内部 c=a AND b;描述,描述了描述,描述了and2器件的内部器件的内部 功能为实现一个功能为实现一个2输入与门输入与门 END exam1;下一页上一页 由例由例2.1可以看出,可以看出,VHDL程序由两部分组成程序由两部分组成:第第1部分为实体说明部分为实体说明.第
6、第2部分为结构体。部分为结构体。VHDL程序结构更抽象、更基本、更简练的表示如程序结构更抽象、更基本、更简练的表示如图图2-1所示。所示。设计实体用关键字设计实体用关键字ENTITY来标识,结构体来标识,结构体ARCHITECTURE来标识。来标识。系统设计中的实体提供该设计系统的公共信息,结构体定义了各系统设计中的实体提供该设计系统的公共信息,结构体定义了各个个 模块内的操作特性。模块内的操作特性。一个设计实体必须包含一个结构体或含有多个结构体。一个电子一个设计实体必须包含一个结构体或含有多个结构体。一个电子系统的设计模型如系统的设计模型如图图2-2所示。所示。2.1 VHDL程序的基本结构
7、下一页一、实体一、实体 实体由实体名、类型说明、端口说明、实体说明部分和实体语实体由实体名、类型说明、端口说明、实体说明部分和实体语句部分组成。句部分组成。1.实体语句结构实体语句结构根据根据IEEE标准,实体组织的一般格式为标准,实体组织的一般格式为:ENTITY实体名实体名IS GENERIC(类型说明类型说明);PORT(端口说明端口说明);实体说明部分实体说明部分:BEGIN 实体语句部分实体语句部分;END ENTITY实体名实体名;2.1 VHDL程序的基本结构 实体名是设计者自己给设计实体的命名,其他设计实体可对该设实体名是设计者自己给设计实体的命名,其他设计实体可对该设计实体进
8、行调用。中间在方括号内的语句描述,在特定的情况下并非计实体进行调用。中间在方括号内的语句描述,在特定的情况下并非是必须的。是必须的。2.类型说明类型说明 类型说明是实体说明中的可选项,放在端口说明之前,其一般使类型说明是实体说明中的可选项,放在端口说明之前,其一般使写格式为写格式为:GENERIC CONSTANT名字表名字表:1N了类型标识了类型标识:一静态一静态表达式表达式,举例举例:GENERIC(m:TIME:=3ns)这个参数说明是指在这个参数说明是指在VHDL程序中,结构体内的参数程序中,结构体内的参数m的值为的值为3ns。下一页上一页2.1 VHDL程序的基本结构 类型说明和端口
9、说明是实体说明的组成部分,用于说明设计实体和类型说明和端口说明是实体说明的组成部分,用于说明设计实体和外部通信的通道。利用外部通信通道,参数的类型说明为设计实体提外部通信的通道。利用外部通信通道,参数的类型说明为设计实体提供信息。参数的类型用来规定端口的大示、供信息。参数的类型用来规定端口的大示、I/O引脚的指派、实体中引脚的指派、实体中子元件的数口和实体的定时特性等信息。子元件的数口和实体的定时特性等信息。3.端口说明端口说明 端口说明是对设计实体与外部接口的描述,是设计实体和外部环境端口说明是对设计实体与外部接口的描述,是设计实体和外部环境动态通信的通道,其功能对应于电路图符号的一个引脚。
10、实体说明中动态通信的通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个的每一个I/O信号被称为一个端口,一个端口就是一个数据对象。端信号被称为一个端口,一个端口就是一个数据对象。端口可以被赋值,也可以当做变量用在逻辑表达式中。定义实体的一组口可以被赋值,也可以当做变量用在逻辑表达式中。定义实体的一组端口称作端口说明。端口称作端口说明。下一页上一页2.1 VHDL程序的基本结构 端口说明的组织结构必须有一个名称、一个通信模式和一个数据类端口说明的组织结构必须有一个名称、一个通信模式和一个数据类型。端口说明的一般格式为型。端口说明的一般格式为:Port(端口名,端口名端口名,端口名:模式模
11、式 数据类型名数据类型名 端口名,端口名端口名,端口名:模式模式 数据类型名数据类型名);端口名是赋于每个外部引脚的名称,名称的含义要明确,如端口名是赋于每个外部引脚的名称,名称的含义要明确,如D开头开头的端口名表示数据,的端口名表示数据,A开头的端口名表示地址等。端口名通常用几个英开头的端口名表示地址等。端口名通常用几个英文字母或一个英文字母加数字表示。文字母或一个英文字母加数字表示。下面是合法的端口名下面是合法的端口名:CLK,RESET,A0,D3。模式用来说明数据、信号通过该端口的传输方向。端口模式有模式用来说明数据、信号通过该端口的传输方向。端口模式有IN,OUT,BUFFER,1N
12、OUT。下一页上一页2.1 VHDL程序的基本结构下一页上一页 (1)输入输入(IN)输入仅允许数据流入输入模式主要用于时钟输入、控制输入输入仅允许数据流入输入模式主要用于时钟输入、控制输入(如如RESET,ENABLE,CLK)和单向的数据输入,如地址信号和单向的数据输入,如地址信号(ADDRESS)。不用的输入一般接地,以免浮动引入干扰噪声。不用的输入一般接地,以免浮动引入干扰噪声。(2)输出输出(OUT)输出仅允许数据流从实体内部输出。端口的驱动源是由被设计的输出仅允许数据流从实体内部输出。端口的驱动源是由被设计的实体内部进行的。输出模式不能用于被设计实体的内部反馈,因为输实体内部进行的
13、。输出模式不能用于被设计实体的内部反馈,因为输出端口在实体内不能看做可读的。输出模式常用于计数输出、单向数出端口在实体内不能看做可读的。输出模式常用于计数输出、单向数据输出、设计实体产生的控制其他实体的信号等。一般而言,不用的据输出、设计实体产生的控制其他实体的信号等。一般而言,不用的输出端口不能接地,避免造成输出高电平时烧毁被设计实体。输出端口不能接地,避免造成输出高电平时烧毁被设计实体。2.1 VHDL程序的基本结构(3)缓冲缓冲(BUFFER)缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部引用该端口的信号。缓冲端口既能用于
14、输出,也能用于反馈。引用该端口的信号。缓冲端口既能用于输出,也能用于反馈。缓冲端口的驱动源可以是缓冲端口的驱动源可以是:设计实体的内部信号源设计实体的内部信号源;其他实体的缓冲端口。其他实体的缓冲端口。缓冲不允许多重驱动,不与其他实体的双向端口和输出端口相连。缓冲不允许多重驱动,不与其他实体的双向端口和输出端口相连。内部反馈的实现方法有内部反馈的实现方法有:建立缓冲模式端口建立缓冲模式端口;建立设计实体的内部节点。建立设计实体的内部节点。下一页上一页2.1 VHDL程序的基本结构 缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器输缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器
15、输出,计数器的现态被用来决定计数器的次态。实体既需要输出,又需出,计数器的现态被用来决定计数器的次态。实体既需要输出,又需要反馈,这时设计端口模式应为缓冲模式。要反馈,这时设计端口模式应为缓冲模式。(4)双向模式双向模式(INOUT)双向模式可以代替输入模式、输出模式和缓冲模式。双向模式可以代替输入模式、输出模式和缓冲模式。在设计实体的数据流中,有些数据是双向的,数据可以流入该设计在设计实体的数据流中,有些数据是双向的,数据可以流入该设计实体,也有数据从设计实体流出,这时需要将端口模式设计为双向端实体,也有数据从设计实体流出,这时需要将端口模式设计为双向端口。口。双向模式的端口允许引入内部反馈
16、,所以双向模式端口还可以作为双向模式的端口允许引入内部反馈,所以双向模式端口还可以作为缓冲模式用。由上述分析可见,双向端口是一个完备的端口模式。缓冲模式用。由上述分析可见,双向端口是一个完备的端口模式。下一页上一页2.1 VHDL程序的基本结构二、结构体二、结构体 结构体具体指明了该设计实体的行为,定义了该设计实体的结构体具体指明了该设计实体的行为,定义了该设计实体的功能,规定了该端口。输入信号的驱动源由设计实体的数据流程,功能,规定了该端口。输入信号的驱动源由设计实体的数据流程,指派了实体中内部元件的连接关系。指派了实体中内部元件的连接关系。用用VHDL语言描述结构体有语言描述结构体有4种方
17、法种方法:行为描述法行为描述法:采用进程语句,顺序描述被称设计实体的行为。采用进程语句,顺序描述被称设计实体的行为。数据流描述法数据流描述法:采用进程语句,顺序描述数据流在控制流作采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。用下被加工、处理、存储的全过程。结构描述法结构描述法:采用并行处理语句描述设计实体内的结构组织采用并行处理语句描述设计实体内的结构组织和元件互连关系。和元件互连关系。下一页上一页2.1 VHDL程序的基本结构 采用多个进程采用多个进程(PROCESS)、多个模块、多个模块(BLOCKS)、多个子程、多个子程序序(SUBPROGRAMS)的子结构方式
18、。的子结构方式。结构体的一般书写格式为结构体的一般书写格式为:ARCHITECTURE结构体名结构体名OF实体名实体名IS 定义语句,内部信号,常数,数据类型,函数定义定义语句,内部信号,常数,数据类型,函数定义 BEGIN 并行处理语句并行处理语句;进程语句进程语句;END结构体名结构体名;下一页上一页2.1 VHDL程序的基本结构 一个结构体的组织结构从一个结构体的组织结构从“ARCHITECTURE结构体名结构体名OF实体名实体名IS”开始,到开始,到“END结构体名结构体名”结束。结束。结构体名称由设计者自由命名,是结构体的唯一名称。结构体名称由设计者自由命名,是结构体的唯一名称。OF
19、后面的实后面的实体名称表明该结构体属于哪个设计实体,有些设计实体中可能含有多个体名称表明该结构体属于哪个设计实体,有些设计实体中可能含有多个结构体。这些结构体的命名可以从不同侧面反映结构体的特色,让人一结构体。这些结构体的命名可以从不同侧面反映结构体的特色,让人一目了然。例如目了然。例如:ARCHITECTURE behacvioral OF mux IS -用结构体行为命名用结构体行为命名 ARCHITECTURE dataflow OF mux IS -用结构体的数据流命名用结构体的数据流命名 下一页上一页2.1 VHDL程序的基本结构 ARCHITECTURE structural OF
20、 mux IS -用结构体的组织结构命名用结构体的组织结构命名 ARCHITECTURE bool OF mux IS -用结构体的数学表达方式命名用结构体的数学表达方式命名 ARCHITECTURE latch OF mux IS -用结构体的功能来定义用结构体的功能来定义 上述几个结构体都属于设计实体上述几个结构体都属于设计实体mux,每个结构体有着不同的,每个结构体有着不同的名称,使得阅读名称,使得阅读VHDL程序的人能直接从结构体的描述方式了解程序的人能直接从结构体的描述方式了解功能,定义电路行为。功能,定义电路行为。下一页上一页2.1 VHDL程序的基本结构三、程序包三、程序包 实体
21、中定义的各种数据类型、子程序和元件调用说明只能局限在实体中定义的各种数据类型、子程序和元件调用说明只能局限在该实体内或结构体内调用,其他实体不能使用。该实体内或结构体内调用,其他实体不能使用。程序包的语句格式如下程序包的语句格式如下:PACKAGE程序包名程序包名IS -程序包首开始程序包首开始 程序包首说明语句程序包首说明语句 END程序包名程序包名;-程序包首结束程序包首结束 PACKAGE BODY程序包名程序包名IS -程序包体开始程序包体开始 程序包体说明语句程序包体说明语句 END程序包名程序包名;-程序包体结束程序包体结束 下一页上一页2.1 VHDL程序的基本结构 STD_LO
22、GIC_1164程序包是程序包是IEEE库中最常用的程序包,是库中最常用的程序包,是IEEE的标准程序包。其中包括了一些数据类型、了类型和函数的定的标准程序包。其中包括了一些数据类型、了类型和函数的定义,这些定义将义,这些定义将VHDL扩展为一个能描述多值逻辑扩展为一个能描述多值逻辑(即除具有即除具有“0”和和“1”以外还有其他的逻辑量,如高阻态以外还有其他的逻辑量,如高阻态“Z、不定态、不定态“X”等等)的硬的硬件描述语言。件描述语言。程序包结构中,程序包体并非是必须的,程序包首可以独立定义程序包结构中,程序包体并非是必须的,程序包首可以独立定义和使用。和使用。例如例如:PACKAGE PA
23、C1 IS -程序包首开始程序包首开始 TYPE BYTE IS RANGE 0 TO 255;-定义数据类型定义数据类型BYTE 下一页上一页2.1 VHDL程序的基本结构 SIGNAL ADDEND:NIBBLE;-定义信号定义信号ADDEND END PAC1;-程序包首结束程序包首结束 如果要使用这个程序包中的所有定义,可用如果要使用这个程序包中的所有定义,可用USE语句访问此程序语句访问此程序包包:USE WORK.PAC1.ALL;四、库四、库 在利用在利用VHDL进行工程设计中,为了提高设计效率以及使设计遵循进行工程设计中,为了提高设计效率以及使设计遵循某些统一的语言标准或数据格
24、式,有必要将一些有用的信息汇集在一个某些统一的语言标准或数据格式,有必要将一些有用的信息汇集在一个或几个库中以供调用。这些信息可以是预先定义的数据类型、子程序等或几个库中以供调用。这些信息可以是预先定义的数据类型、子程序等设计单元的集合体设计单元的集合体(程序包程序包),或预先设计好的各种设计实体,或预先设计好的各种设计实体(元件库程元件库程序包序包)。因此,可以把库看成是一种用来存储预先完成的程序包和数据。因此,可以把库看成是一种用来存储预先完成的程序包和数据集合体的仓库。集合体的仓库。上一页下一页2.1 VHDL程序的基本结构 库的语句格式如下库的语句格式如下:LIBRARY库名库名:这一
25、语句相当于为其后的设计实体打开了以次库名命名的库,以便这一语句相当于为其后的设计实体打开了以次库名命名的库,以便设计实体可以利用其中的程序包。如语句设计实体可以利用其中的程序包。如语句“LIBRARY_IEEE;”表示表示打开打开IEEE库。库。1.库的种类库的种类 (1)IEEE库库 IEEE库是库是VH支持工业标准的程序包。支持工业标准的程序包。IEEE库中的标准程序包主库中的标准程序包主要包含要包含STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_SIGNED,STD_LOGIC_UNSIGNED程序包。程序包。上一页下一页2.1 VHDL程序的基本结构
展开阅读全文