EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计

上传人:E**** 文档编号:91298953 上传时间:2019-06-27 格式:PPT 页数:47 大小:967.50KB
返回 下载 相关 举报
EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计_第1页
第1页 / 共47页
EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计_第2页
第2页 / 共47页
EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计_第3页
第3页 / 共47页
EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计_第4页
第4页 / 共47页
EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计》由会员分享,可在线阅读,更多相关《EDA技术基础第2版教学课件作者郭勇EDA技术基础2.第10章节可编程逻辑器件设计(47页珍藏版)》请在金锄头文库上搜索。

1、机械工业出版社同名教材 配套电子教案,EDA技术基础(第2版),制作:福建信息职业技术学院 郭勇,第10章 可编程逻辑器件设计,本章要点 10.1 可编程逻辑器件(PLD)概述 10.2 VHDL硬件描述语言简介 10.3 使用MAX+PLUS软件进行PLD设计,本章要点, 掌握PLD基本特点和VHDL硬件描述语言 掌握MAX+PLUS软件的使用 掌握PLD设计的方法,返回,10.1 可编程逻辑器件(PLD)概述,可编程逻辑器件是一种半导体集成器件的半成品。在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,如对这些基本器件适当地连接(此连接的过程

2、称为编程或配置),就可以完成某个电路或系统的功能。 可编程逻辑器件大致可分为FPGA(现场可编程门阵列)、CPLD(复杂的可编程逻辑器件)、SPLD(简单的可编程逻辑器件)3类,它们的规模和结构有较大的区别,但使用方法是基本一致的,其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。虽然CPLD与FPGA在很大程度上具有类似之处,但由于内部结构上的差异导致了它们在功能与性能上的差异。,返回,10.2 VHDL硬件描述语言简介,在传统的硬件电路设计中,主要的设计文件是电路原理图,而采用硬件描述语言(HDL)设计系统硬件电路时主要使用HDL编写源程序。 所谓硬件描述语

3、言,就是该语言可以描述硬件电路的功能、信号连接关系及定时关系。许多公司开发了自己专有的HDL,但一直没有一种标准的HDL,直到1987年底,IEEE确认美国国防部开发的VHDL为标准硬件描述语言(IEEE-1076)。此后,各EDA公司研制的硬件电路设计工具逐渐向VHDL靠拢,VHDL在电子设计领域得到广泛的接受,1993年,IEEE对VHDL进行了修订,公布了新版本的VHDL(即IEEE-1076-1993)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,在电子工程领域,设计人员都极其重视对其的学习研究,VHDL已成为事实上的通用硬件描述语言。,10.2.1 VHDL基本

4、结构,一个完整的VHDL程序通常包含实体(Entity),构造体(Architecture),配置(Configuration),程序包(Package)和库(Library)5个部分。前4种是可分别编译的源设计单元。实体和构造体这两个基本结构是必需的,它们可以构成最简单的VHDL程序,实体用于描述所设计的系统的外部接口信号;构造体用于描述系统内部的结构和行为;程序包集合存放各设计模块都能共享的数据类型、常数和子程序等;配置用于从库中选取所需单元来组成系统设计的不同版本;库存放已经编译的实体、构造体、包集合和配置。 1.实体 任何一个基本设计单元的实体说明都具有如下的结构: Entity 实体

5、名 Is 类属参数说明;,端口说明; End Entity实体名; 一个基本设计单元的实体说明以“Entity 实体名 Is”开始至“End 实体名”结束,主要包括类属说明和端口说明。 类属参数说明 类属参数说明必须放在端口说明之前,用于指定参数,用来确定设计实体中定义的局部常数,在模块化设计中常用于不同层次模块间信息的传递。 类属说明的一般格式为: Generic(常数名,常数名:数据类型:设定值 ;常数名,常数名:数据类型:设定值); 端口说明 端口说明是对基本设计实体(单元)与外部接口的描述,也可以说是对外部引脚信号的名称,数据类型和输入、输出方向的描述。其一般书写格式如下:,Port(

6、端口名,端口名;端口方向 数据类型; 端口名,端口名;端口方向 数据类型); 2.构造体 构造体是一个基本设计单元的实体,它具体地指明了该基本设计单元的行为、元件及内部的连接关系,即它定义了设计单元具体的功能,确定设计实体输出与输入之间的逻辑关系。 一个设计实体可有一个或多个结构体,每个构造体对应着一种设计方案的描述。但对于多个结构体的实体,必须用Configuration配置语句,选择用于综合的结构体和用于仿真的结构体,综合后的可映射予硬件电路的设计实体,只对应所选择的这个结构体。 由于构造体是对实体功能的具体描述,因此它一定要跟在实体的后面。,一个构造体的具体结构描述如下: Archite

7、cture 构造体名 Of 实体名 Is 说明语句 Begin 并行处理语句; End Architecture构造体名; 一个构造体从“Architecture 构造体名 Of 实体名 Is”开始,至“End 构造体名”结束。构造体的名称是对本构造体的命名,它是该构造体的唯一名称。 3.配置 配置语句是用来描述设计过程中不同层次之间的连接关系以及实体与结构体之间的连接关系。也就是说,在设计过程中,利用配置从多个结构体中选择不同的结构体与设计的实体相对应,再通过比较多次的仿真结果,选出性能最佳的结构体。,配置语句的基本格式如下: Configuration 配置名 Of 实体名 Is 说明语句

8、; End 配置名; 根据不同的配置类型,说明语句有简有繁,其中常用的最简单默认配置格式结构如下: Configuration 配置名 Of 实体名 Is For 选配构造体名 End For End 配置名; 这种配置用于选择不包含块(Block)和元件(Components)的构造体。在配置语句中只包含有实体所选配的构造体名。 4.程序包和库 设计过程中,在一个实体和结构体中定义的常数、数据类型、元件说明、子程序等,只能在定义的设计实体和结构体中使用,,而不能用于其他设计实体。因此,为了使已定义过的常数、数据类型、元件说明、子程序等能够被其他更多的设计实体使用,可以把它们做成一个VHDL程

9、序包共享。如果把多个程序包合并起来放入一个VHDL库中,就可以使它更适用于一般的访问和调用,因此程序包和库是一个层次结构的关系。 程序包 定义程序包的语句格式为: Package 程序包名 Is 说明语句; End 程序包名; Package Body 程序包名 Is 说明语句 End 程序包名;,一个程序包由两大部分组成:一部分是从“Package 程序包 Is”开始,至第一个“End 程序包”结束,这部分称为程序包标题(Header);另一部分从“Package Body 程序包名 Is”开始,至第二个“End 程序包”结束,这部分称为程序包体。 库 库的作用与程序包类似,只是级别高于程序

10、包。它用来存放编译过的程序包定义、实体定义、构造体定义和配置定义。VHDL语言中,库的说明总是放在设计单元的最前面,它可以用library语句打开,其格式为: Library 库名; 利用这条语句可以在其后的设计实体打开以各库名命名的库,使用其中的程序包。当前在VHDL语言中存在的库大致可以分为5种:IEEE库、Std库、ASIC矢量库、用户定义的库和Work库。其中Std库和Work库为预定义库,其他的为资源库。,打开库后,要用Use语句来打开库中的程序包,其格式有两种如下: Use 库名.程序包名.项目名; Use 库名.程序包.All; 第一种语句格式是开放指定库中的特定程序包内所选的项

11、目;第二种语句格式是开放指定库中特定程序包的所有内容。 应当注意,Library语句与Use语句的作用范围是紧跟其后的实体及其结构体。若一个程序中有一个以上的实体,则应在每个实体的前面分别加上Library语句和Use语句,说明对应的实体及其结构体需要使用的库和程序包。,VHDL语言像其它高级语言一样,在描述语句中也是有标识符语法规则、数据对象、数据类型、属性、表达式和运算符等一些规定。 1.标识符 在基本标识符中规定必须以英文字母开头,其他字符可以用英文字母(az,AZ)、数字(09)以及下划线(_);字母不区分大小写;不能以下划线结尾,更不能出现连续的两个和两个以上的下划线,避免使用VHD

12、L的保留字。 扩展标识符在标识符上用反斜杠分隔,同时取消基本标识符规则中的限制,可以任意使用字符、图形符号、空格、保留字等,也可以用数字开头,连续出现两个或两个以上的下划线,但扩展标识符要区分大小写;即使基本标识符和扩展标识符同名,也不表示同一名称。,10.2.2 VHDL语言的基本元素和基本描述语句,2.数据对象 在VHDL语言中凡是可以赋予一个值的对象就称为客体。在客体中主要包括以下三种:信号(Signal)、常数(Constant)、变量(Variable)。虽然文件也是对象,可是它不可以通过复制来更新文件的内容,只能作为参数向子程序传递,通过子程序对文件进行读和写操作。这些对象在使用前

13、,应加以说明。 对象说明的格式为: 对象类别 标识符表:类型标识:=初值; 例如: Signal Ground:Bit:=0; Constant Daly:Time:=100NS; Variable Count:Integer Range 0 To 255:=10; 作为硬件描述语言元素,变量和信号相似,但通常只代表暂存某些值的载体。,3.数据类型 VHDL在对数据对象进行定义时,都要指定数据类型。因此,VHDL提供了多种标准的数据类型,并允许用户自定义数据类型。 VHDL的预定义数据类型 预定义数据类型是用户不必通过Use语句做说明而可以直接使用的,它们是在标准程序包Standard中定义。

14、 用户自定义的数据类型 VHDL语言中,通常用户用类型说明语句Type和子类型说明语句Subtype进行说明。 类型说明的格式为: Type 数据类型名 ,数据类型名 Is 数据类型定义 用户自定义的数据类型可以有枚举类型,整数类型,数组类型,记录类型,时间类型和实数类型等。,4.VHDL语言的运算操作符 VHDL语言中的操作符大致可以分为四类:逻辑运算、关系运算、算术运算、和其他运算符,如表10-43所示。 对于VHDL语言中的运算符和操作数之间需注意: 在基本操作符间操作数要具有相同的数据类型。 操作数的数据类型必须与操作符所要求的类型完全一致。 在VHDL语言中表达式不允许不用括号而把不

15、同的运算符结合起来,同时还要注意运算符的优先级别,因此在编程中要正确使用括号来构造表达式。 5.VHDL语言主要描述语句 VHDL语言的主要描述语句有两类:顺序语句和并行语句。顺序语句是指程序按照语句的书写顺序执行;并行语句是指程序只执行被激活的语句,对所有被激活语句的执行也不受书写顺序的影响。但有时并行语句中又有顺序语句。,顺序语句 与一般高级语言中一样,顺序语句是按出现的次序加以执行的,但在VHDL语言中,顺序语句只能出现在进程或子程序中。顺序语句可以进行算术、逻辑运算,信号和变量的赋值,子程序调用,可以进行条件控制和迭代。 VHDL顺序语句主要包括:变量赋值语句、信号赋值语句、IF语句、

16、CASE语句、LOOP语句、NEXT语句、EXIT语句、NULL语句、WAIT语句、RETURN语句和过程调用语句。 其中,空(NULL)语句表示只占位置的一种空处理操作,但是它可以用来为所对应信号赋一个空值,表示关闭或停止。 变量赋值语句与信号赋值语句 变量赋值语句的语句格式为: 变量名 := 赋值表达式; 例如: out1:=3; out2:=3.0;,信号赋值语句的语句格式为: 信号名 = 信号量表达式; 例如: a=b; c=q NOR (a AND b); 要求“=”两边的信号变量的类型和位长度应该一致。 If语句 If语句是一种条件选择语句,根据语句中所设的一种或多种条件,有选择地执行指定的顺序语句。If语句的格式为: If 条件 Then 顺序语句 Elsif 条件 Then 顺序语句; Else 顺序语句; End If;,Case语句 Case语句是以一个多值表达式为条件,根据满足的条件直接选择多路分支

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号