EDA技术基础(2)--第10章_可编程逻辑器件设计_第1页
EDA技术基础(2)--第10章_可编程逻辑器件设计_第2页
EDA技术基础(2)--第10章_可编程逻辑器件设计_第3页
EDA技术基础(2)--第10章_可编程逻辑器件设计_第4页
EDA技术基础(2)--第10章_可编程逻辑器件设计_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、机械工业出版社的同名教材包括:电子教案,EDA技术基础(第二板块),制作:福建信息职业技术学院郭容,第十章可编程逻辑设备设计,牙齿章节要点10.1可编程逻辑设备(PLD)概述10.2 VHDL硬件技术语言简介使用10.3 MAX PLUS软件进行PLD设计PLUS在可编程逻辑设备的芯片上,以一定的方式(阵列或单元阵列格式)创建了许多门、触发器等基本逻辑设备。正确连接这些基本设备(牙齿连接过程称为编程或配置),可以完成电路或系统的功能。可编程逻辑设备大致可分为现场可编程门阵列(FPGA)、复杂可编程逻辑设备(CPLD)和简单可编程逻辑设备(SPLD)3茄子类别。规模和结构差别很大,但使用方法基本

2、相同。最广泛使用的是现场可编程门阵列(FPGA)。CPLD和FPGA非常相似,但是内部结构上的差异导致了功能和性能上的差异。返回,10.2 VHDL硬件描述语言简介,在现有硬件电路设计中,主要设计文件是电路原理图,在使用硬件描述语言(HDL)设计系统硬件电路时,主要使用HDL编写源程序。硬件描述语言是描述硬件电路的功能、信号连接关系和时序关系的语言。许多公司开发了自己的HDL,但直到1987年底,IEEE确认这是美国国防部开发的VHDL牙齿标准硬件说明语言(IEEE-1076)。随后,每个EDA开发的硬件电路设计工具逐渐接近VHDL,VHDL在电子设计领域被广泛接受,1993年IEEE修订了V

3、HDL,发布了新版本的VHDL(例如IEE-1076-1993)。目前,VHDL和Verilog是IEEE的产业标准硬件描述语言,在电子工程学领域,设计师非常重视对其的学习研究,而VHDL实际上已成为普通的硬件描述语言。10.2.1 VHDL基本结构,整个VHDL程序通常包含实体、结构、配置、包(包),前四个是可以单独编译的源设计单元。两种茄子基本结构(实体和结构)可以配置最简单的VHDL程序,实体用于描述所设计系统的外部介面信号。结构体用于描述系统内部的结构和行为。包集合包含可由每个设计模块共享的数据类型、常量、子节目等。从库中选择所需的单元,以配置系统设计的其他版本。将编译后的实体、配置、

4、包集合和配置置于库存中。1.实体所有基本设计单位的实体说明具有实体实体实体名称Is一般参数说明结构。通信端口说明;End Entity实体名称;基本设计单位的实体说明以“实体实体名称Is”开头,以“End实体名称”结尾。这主要包括一般说明和通信端口说明。一般参数说明一般参数说明应放在通信端口说明之前,用于指定确定设计实体中定义的局部常数的参数,并且经常用于模块化设计中徐璐其他层次的模块之间的信息传递。一般描述的一般格式为一般(常数名称,常数名称:资料类型:设定;常数名称,常数名称:资料类型:设定值);通信端口描述通信端口描述是基本设计实体(单元)和外部接口的描述,或外部插针信号的名称、数据类型

5、和输入和输出方向的描述。一般写入格式为,通信端口(通信端口名称,通信端口名称)。通信端口方向数据类型通信端口名称,通信端口名称:通信端口方向数据类型);2.核心组件是基本设计单位的实体,具体表示基本设计单位的行为、元件和内部连接关系。也就是说,定义设计单位的特定功能以确定设计图元输出和输入之间的逻辑关系。一个设计图元可以有一个或多个结构,每个结构对应一个设计方案的说明。但是,对于多个结构,必须使用Configuration配置语句选择统一结构和模拟中使用的结构。合并后可以映射到硬件电路的设计图元仅适用于选定结构。构造体是对实体功能的具体说明,所以要跟在实体后面。构造函数的具体结构如下:Arch

6、itecture构造函数名称Of实体名称Is说明语句Begin并行处理语句;End Architecture组件名称;一个核心以Architecture核心层名称Of实体名称Is开始,以End核心层名称结束。建构本体的名称是牙齿建构本体的名称,是牙齿建构本体的唯一名称。3.建构语句用于说明设计过程中徐璐其他阶层之间的连接关系,以及实体与结构之间的连接。也就是说,在设计过程中,使用配置从多个结构中徐璐选择不同的结构,然后比较多个模拟结果以选择性能最佳的结构。配置语句的默认格式为:Configuration配置名称Of实体名称Is说明语句;End配置名称;根据配置类型,说明语句很简单。此处最常用的

7、最简单的基本配置格式结构如下:配置配置名称Of实体名称Is For可选配置名称End For End配置名称;牙齿配置用于选择不包含块和零部件的构造实体。建构陈述式仅包含从实体中选取的建构本体名称。4.在封装和资料库设计期间,在一个图元和结构中定义的常数、资料类型、元件描述和子节目等只能在定义的设计图元和结构中使用,不能在其他设计图元中使用。因此,可将定义的常数、数据类型、元件说明、子节目等共享为VHDL包,以便在其它更多设计图元中使用。将多个包合并到一个VHDL库中更适合于常规访问和调用,因此包和库是分层关系。套装程式定义套装程式的叙述句格式为Package套装程式名称Is说明叙述句。End

8、软件包名称;Package Body软件包名称Is说明语句End软件包名称;程序包由两个茄子主要组件组成。一个是从“包Is”开始,以第一个“End包”结束的部分,牙齿部分称为包标题。另一部分以“Package Body包名称Is”开头,以第二个“End包”结尾。牙齿节称为程序包体。库库的工作方式与包类似,只是库库的级别高于包。用于存档编译后的包定义、实体定义、构造函数定义和配置定义。在VHDL语言中,库的说明始终位于设计单元的前面,可以库库名称格式作为库语句打开。使用牙齿语句可以在以下设计实体中打开使用每个库名称命名的库,并使用其中的包:存在于当前VHDL语言中的库可以分为五个茄子类别:IEE

9、E库、Std库、ASIC矢量库、用户定义库和Work库。其中Std和Work资源库是预先定义的资源库,其他资源库是资源库。要在打开库后使用Use语句打开库的包,请使用Use库名称。包名称。项目名称使用两种茄子格式。Use库名称。包。All;第一种语句格式是打开指定库的特定包内的选定项目。第二种语句格式是打开指定库中特定包的所有内容。需要注意的是,Library语句和Use语句的范围是紧随其后的实体及其结构。如果程序中有多个实体,则必须在每个实体前分别添加Library和Use语句,以说明该实体及其结构所需的库和包。VHDL语言与其他高级语言一样,说明语句具有标识符语法规则、数据对象、数据类型、

10、属性、表达式和运算符等规则。1.标识符规定默认标识符必须以字母字符开头,其他字符可以以字母字符(az、AZ)、数字(09)和下划线(_)开头。字符不区分大小写。不要使用VHDL保留字,因为不能以下划线结束,并且不能出现两个或更多连续的下划线。扩展标识符由标识符中的反斜杠分隔,并解除默认标识符规则的限制。可以任意使用字母、图形符号、空格、保留字等,也可以从数字开始连续显示两条或多条下划线,但是扩展标识符区分大小写。即使基本标识符和扩展标识符具有相同的名称,它们也不表示相同的名称。10.2.2 VHDL语言的基本元素和基本说明语句,2 .数据对象是可以在VHDL语言中赋予值的对象称为对象。物件有三

11、种茄子主要类型:信号(Signal)、常数(Constant)和变数(Variable)。文件也是对象,但不能通过复制更新档案内容。作为参数传递给子程序,并且可以通过子程序读取和写入文件。牙齿对象在使用前必须说明。物件描述的格式为:物件品类识别码表格:类型识别码:=初始值;示例:signal ground:bit:=0;constant Daly:time:=100 ns;variable count:integer range 0 to 255:=10;作为硬件说明语言元素,变量和信号类似,但通常只表示保留特定值的载体。3 .数据类型定义VHDL数据对象时,请指定数据类型。因此,VHDL提供

12、了多种茄子标准数据类型,并允许用户自定义数据类型。VHDL中的预定义数据类型预定义数据类型无需用户通过Use语句进行说明即可直接使用,它在标准包Standard中定义。在自定义数据类型VHDL语言中,通常使用类型说明语句Type和子类型说明语句Subtype进行说明。类型说明的格式包括类型数据类型名称、数据类型名称Is数据类型定义用户定义的数据类型可以具有枚举类型、整数类型、数组类型、唱片类型、时间类型、实数类型等。4 .VHDL语言中的运算符VHDL语言中的运算符可以分为四个茄子类别:逻辑、关系、算术和其他运算符,如表10-43所示。对于VHDL语言中的运算符和操作数,基础运算符之间的操作数

13、必须具有相同的数据类型。操作数的数据类型必须与运算符所需的类型完全匹配。在VHDL语言中,表达式不能在不使用括号的情况下合并徐璐的其他运算符,还必须注意运算符的优先级级别,因此在编程时必须正确使用括号构建表达式。5.VHDL语言基本说明语句VHDL语言的基本说明语句有两类茄子:顺序语句和并行语句。顺序语句是指程序按照语句的写入顺序执行。并行语句意味着只执行启用了程序的语句,对所有启用了程序的语句执行都不受写入顺序的影响。但是,有时并行语句具有顺序语句。顺序语句按照它们在普通高级语言中的出现顺序执行,但在VHDL语言中,它们只能出现在进程或子程序中。顺序语句可以执行算术、逻辑运算符、信号和变量分

14、配、子节目调用、条件控制和迭代。VHDL顺序语句主要包括变量赋值语句、信号赋值语句、IF语句、CASE语句、LOOP语句、NEXT语句、EXIT语句、NULL语句、WAIT语句、RETURN语句和过程调用语句。其中,空语句表示仅占用位置的空处理操作,但可以为该信号分配空值以表示结束或停止。变量赋值语句和信号赋值语句变量赋值语句的语句格式是变量名:=赋值表达式。例如:out 1:=3;out 2:=3.0;信号赋值语句的语句格式为信号名称=信号量表达式。例如:a=b;C=q nor (a和b);“=”两侧的信号变量类型和位长度必须匹配。If语句If语句是条件选择语句,可以根据语句中设置的一个或多

15、个条件选择性地执行指定顺序语句。If语句的格式为If条件Then顺序语句Elsif条件Then顺序语句。Else序列语句;恩迪夫;Case语句Case语句通常用于描述巴士、编码、解码等行为,条件是根据满足的条件直接选择多个分支中的所有分支。Case语句的格式为Case表达式Is When条件表达式=顺序语句。When Others=顺序语句;EndCase;条件表达式中的值可以表示一个值、多个值的“或”关系、值范围或所有其他默认值。“Others”表示未在任何给定条件语句中列出的其他可能值。Others在使用时只能出现一次,并且只能按最后一个条件赋值。Loop语句、Next语句和exit语句L

16、oop语句的主要功能是循环访问一组顺序语句,因此这是标签: Loop序列语句形式的循环语句。End Loop标签;Loop语句描述循环语句,而Next语句和Exit语句用于Loop内部,后者控制循环跳转的方向。Next语句的功能是进入下一轮的循环,而不是有条件地或无条件地中断当前循环。Next语句的格式为Next循环标签When条件。如果Next语句后面没有标签,则Next语句将在当前最内层的循环上运行。否则,将转到指定的循环。Exit语句也用于Loop语句内部。与Next语句不同,Exit语句结束Loop语句。Next语句是结束牙齿循环并开始下一个循环。Exit语句的格式为Exit循环标签When条件。如果Exit语句没有标签和条件,则无条件结束Loop语句的执行。并行语句并行语句是VHDL硬件描述语言的特征,用于直接构建结构,使结构分层和易于阅读。主要并行语句包括进程语句、并行信号赋值语句

温馨提示

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

最新文档

评论

0/150

提交评论