EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计

上传人:w****i 文档编号:92500430 上传时间:2019-07-10 格式:PPT 页数:78 大小:1.76MB
返回 下载 相关 举报
EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计_第1页
第1页 / 共78页
EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计_第2页
第2页 / 共78页
EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计_第3页
第3页 / 共78页
EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计_第4页
第4页 / 共78页
EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计》由会员分享,可在线阅读,更多相关《EDA技术基础与应用 教学课件 ppt 作者 郭勇第9章 FPGA-CPLD数字系统设计(78页珍藏版)》请在金锄头文库上搜索。

1、1,EDA技术基础与应用,制作: 郭勇,2,第九章主要内容,本章要点 掌握FPGA/CPLD器件基本特点和VHDL硬件描述语言 掌握Quartus软件的设计方法和步骤,3,9.1 FPGA/CPLD器件概述,可编程逻辑器件是一种半导体集成器件的半成品。在可编程逻辑器件的芯片中按一定方式(阵列形式或单元阵列形式)制作了大量的门、触发器等基本逻辑器件,如对这些基本器件适当地连接(此连接的过程称为编程或配置),就可以完成某个电路或系统的功能。 可编程逻辑器件大致可分为FPGA(现场可编程门阵列)、CPLD(复杂的可编程逻辑器件)、SPLD(简单的可编程逻辑器件)3类。,4,由于各个可编程逻辑器件公司

2、的产品在价格、性能、逻辑规模和封装以及EDA开发工具性能等方面各具特色,因此,设计者必须根据各自的设计在其中作出选择,一般在选择过程中需要考虑下列问题。 器件资源的选择:设计前应考虑设计对器件逻辑资源的需求、设计完成后可能要增加的功能以及后期升级的可能性等问题,然后作出适当的选择。,5,器件速度的选择:CPLD和FPGA的工作速度很高,pin to pin延时已达ns级,在设计中需对器件速度的选择应做综合考虑,并非速度越高越好。器件速度应与所设计系统的最高工作速度相一致,所选器件速度越高电路板设计难度越大。 器件封装的选择:CPLD和FPGA器件的封装形式有很多,其中主要有PLCC、PQFP、

3、TQFP、RQFP、VQFP、MQFP、PGA和BGA等。,6,9.2 VHDL硬件描述语言,在传统的硬件电路设计中,主要的设计文件是电路原理图,而采用硬件描述语言(HDL)设计系统硬件电路时主要使用HDL编写源程序。所谓硬件描述语言,就是该语言可以描述硬件电路的功能,信号连接关系及定时关系。 现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,在电子工程领域,设计人员都极其重视对其的学习研究,VHDL已成为事实上的通用硬件描述语言。,7,9.2.1 VHDL基本结构 一个完整的VHDL程序通常包含实体(Entity),构造体(Architecture),配置(Configura

4、tion),程序包(Package)和库(Library)5个部分。实体和构造体这两个基本结构是必需的,它们可以构成最简单的VHDL程序。,8,1.实体 任何一个基本设计单元的实体说明都具有如下的结构: ENTITY 实体名 IS 类属参数说明; 端口说明; END ENTITY实体名; 一个基本设计单元的实体说明以“ENTITY 实体名 IS”开始至“END 实体名”结束,主要包括类属说明和端口说明。,9,(1)类属参数说明 类属参数说明必须放在端口说明之前,用于指定参数,用来确定设计实体中定义的局部常数,在模块化设计中常用于不同层次模块间信息的传递。 (2)端口说明 端口说明是对基本设计实

5、体(单元)与外部接口的描述,也可以说是对外部引脚信号的名称,数据类型和输入、输出方向的描述。,10,2.构造体 构造体是一个基本设计单元的实体,它具体地指明了该基本设计单元的行为、元件及内部的连接关系,也就是说它定义了设计单元具体的功能,确定设计实体输出与输入之间的逻辑关系。 由于构造体是对实体功能的具体描述,因此它一定要跟在实体的后面。通常,先编译实体之后才能对构造体进行编译。如果实体需要重新编译,那么相应构造体也应重新进行编译。,11,(1)说明语句 结构体中的说明语句是对结构体的并行功能描述语句中将要用到的信号(SIGNAL),类型(TYPE),常数(CONSTANT),元件(COMPO

6、NENT),函数(FUNCTION)和过程(PROCEDURE)等加以说明和定义,而且这些定义只能用于本结构体中,不能直接用于别的结构体,如果要用于其他的结构体中,则需要当作程序包处理。,12,(2)并行处理语句 并行处理语句有五种不同类型的语句结构,但它们都是以并行方式工作的。这五种语句结构分别为块语句、进程语句、信号赋值语句、子程序调用语句和元件例化语句。,13,3.配置 配置语句在功能上是用来描述设计过程中不同层次之间的连接关系以及实体与结构体之间的连接关系。 配置语句的基本格式如下: CONFIGURATION 配置名 OF 实体名 IS 说明语句; END 配置名; 根据不同的配置类

7、型,说明语句有简有繁,其中常用的最简单默认配置格式结构如下: CONFIGURATION 配置名 OF 实体名 IS FOR 选配构造体名 END FOR END 配置名;,14,4.程序包和库 设计过程中,在一个实体和结构体中定义的常数、数据类型、元件说明、子程序等,只能在定义的设计实体和结构体中使用,而不能用于其他设计实体。因此,为了使已定义过的常数、数据类型、元件说明、子程序等能够被其他更多的设计实体使用,可以把它们做成一个VHDL程序包共享。如果把多个程序包合并起来放入一个VHDL库中,就可以使它更适用于一般的访问和调用。,15,(1)程序包 定义程序包的语句格式为: PACKAGE

8、程序包名 IS 说明语句; END 程序包名; PACKAGE BODY 程序包名 IS 说明语句 END 程序包名; 一个程序包由两大部分组成:一部分是从“PACKAGE 程序包 IS”开始,至第一个“END程序包”结束,这部分称为程序包标题(Header);另一部分从,16,“PACKAGE BODY程序包名 IS”开始,至第二个“END 程序包”结束,这部分称为程序包体。 (2)库 库的作用与程序包类似,只是级别高于程序包。它用来存放编译过的程序包定义、实体定义、构造体定义和配置定义。VHDL语言中,库的说明总是放在设计单元的最前面,它可以用LIBRARY语句打开,其格式为: LIBRA

9、RY 库名;,17,打开库后,要用USE语句来打开库中的程序包,其格式有两种如下: USE 库名.程序包名.项目名; USE 库名.程序包.ALL; 应当注意,LIBRARY语句与USE语句的作用范围是紧跟其后的实体及其结构体。若一个程序中有一个以上的实体,则应在每个实体的前面分别加上LIBRARY语句和USE语句,说明对应的实体及其结构体需要使用的库和程序包。,18,9.2.2 VHDL语言的基本元素和基本描述语句 VHDL语言像其它高级语言一样,在描述语句中也是有标识符语法规则、数据对象、数据类型、属性、表达式和运算符等一些规定。 1.标识符 VHDL语言两次确定并扩展了标识符的语法规则。

10、在基本标识符中规定必须以英文字母开头,其他字符可以用英文字母(az,AZ)、数字(09)以及下划线(_);字母不区分大小写;不能以下划线结尾,更不能出现连续的,19,两个和两个以上的下划线,避免使用VHDL的保留 字。 扩展标识符中的规定对VHDL标识符的定义更加自由了,只要在标识符上用反斜杠分隔,同时取消了基本标识符规则中的限制,可以任意使用字符、图形符号、空格、保留字等,也可以用数字开头,连续出现两个或两个以上的下划线。,20,2.数据对象 在VHDL语言中凡是可以赋予一个值的对象就称为客体。在客体中主要包括以下三种:信号(SIGNAL)、常数(CONSTANT)、变量(VARIABLE)

11、。 对象说明的格式为: 对象类别 标识符表:类型标识:=初值; 例如:SIGNAL ground:BIT:=0; CONSTANT DALY:TIME:=100ns; VARIABLE count:INTEGER RANGE 0 TO 255:=10;,21,3.数据类型 VHDL在对数据对象进行定义时,都要指定数据类型。因此,VHDL提供了多种标准的数据类型,并且允许用户自定义数据类型。 (1)VHDL的预定义数据类型 10种标准的数据类型如表9-2所示:,22,(2)用户自定义的数据类型 VHDL语言中,通常用户用类型说明语句TYPE和子类型说明语句SUBTYPE进行说明。 类型说明的格式

12、为: TYPE 数据类型名 ,数据类型名 IS 数据类型定义 用户自定义的数据类型可以有枚举类型,整数类型,数组类型,记录类型,时间类型和实数类型等。,23,4.VHDL语言的运算操作符 VHDL语言中的操作符大致可以分为四类:逻辑运算、关系运算、算术运算、和其他运算符,如表9-3所示:,24,对于VHDL语言中的运算符和操作数之间需注意: 在基本操作符间操作数要具有相同的数据类型。 操作数的数据类型必须与操作符所要求的数据类型完全一致。 在VHDL语言中表达式不允许不用括号而把不同的运算符结合起来,同时还要注意运算符的优先级别,因此在编程中要正确使用括号来构造表达式。运算符的优先级如表9-4

13、所示。,25,26,5.VHDL语言主要描述语句 VHDL语言的主要描述语句有两类:顺序语句和并行语句。 顺序语句 与一般高级语言中一样,顺序语句是按出现的次序加以执行的,但在VHDL语言中,顺序语句只能出现在进程或子程序中。顺序语句可以进行算术、逻辑运算,信号和变量的赋值,子程序调用,可以进行条件控制和迭代。,27,变量赋值语句与信号赋值语句 变量赋值语句的语句格式为: 变量名 := 赋值表达式; 例如: out1:=3; out2:=3.0; 信号赋值语句的语句格式为: 信号名 = 信号量表达式; 例如:a=b; c=q NOR (a AND b); 要求“=”两边的信号变量的类型和位长度

14、应该一致。,28,If语句 If语句是一种条件选择语句,根据语句中所设的一种或多种条件,有选择地执行指定的顺序语句。If语句的格式为: If 条件 Then 顺序语句 Elsif 条件 Then 顺序语句; Else 顺序语句; End If;,29,Case语句 Case语句是以一个多值表达式为条件,根据满足的条件直接选择多路分支中的一路分支,故常用来描述总线、编码、译码等行为。Case语句的格式为: Case 表达式 Is When 条件表达式 = 顺序语句; When Others = 顺序语句; End Case;,30,Loop语句、Next语句和exit语句 Loop语句主要功能是

15、使一组顺序语句被循环执行,因此它是一种循环语句,其格式为: 标号: Loop 顺序语句; End Loop 标号; Loop语句是描述循环语句的,而Next语句和Exit语句是用于Loop内部,用来控制循环跳转方向。 Next语句的功能是有条件或无条件地中止当前的循环,而是进入下一轮的循环。,31,Next语句的格式为: Next 循环标号 When 条件; 当Next语句后不跟标号,Next语句作用于当前最内层循环,否则转到指定的循环中。 Exit语句也是用于Loop语句内部,与Next语句不同的是Exit语句结束Loop语句;而Next语句是结束本次循环,开始下一次的循环。 Exit语句的

16、格式为: Exit 循环标号 When 条件; 当Exit语句不含标号和条件时,表明无条件结束Loop语句的执行。,32,并行语句 并行语句是VHDL硬件描述语言特色的体现,是用来直接构成结构体,使结构体具有层次性,简单易读。 主要的并行语句有:进程语句、并行信号代入语句、条件信号代入语句、选择信号代入语句、并行过程调用语句、块语句、并行断言语句、生成语句和元件例化语句。 进程语句的格式为:,33,进程标号: PROCESS (敏感信号表) IS 说明语句; BEGIN 顺序语句; END PROCESS 进程标号; 进程语句虽然是一个并行语句,但在进程内部却是顺序执行的。只有当敏感信号表中的信号发生变化时,进程才被激活,顺序执行进程内部语句。,34,9.3使用Quartus软件进行PLD设计,利用FPGA和CPLD的设计软件可以将设计好的程序写入在PLD器件中,好比自行设计IC集成电路一样

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

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

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