VHDL与数字电路设计课件.ppt
《VHDL与数字电路设计课件.ppt》由会员分享,可在线阅读,更多相关《VHDL与数字电路设计课件.ppt(194页珍藏版)》请在三一办公上搜索。
1、第四章VHDL硬件描述语言,张志安 南京理工大学,10/9/2022,1,南京理工大学机械工程学院,第四章VHDL硬件描述语言张志安 10/9/20221南京,主要内容4.1 VHDL语言概述 4.2 VHDL语言程序的基本结构4.3 VHDL语言的数据类型及运算操作符4.4 VHDL语言的顺序描述语句4.5 VHDL语言的并发描述语句4.6 VHDL语言在数字电路中的应用,10/9/2022,2,南京理工大学机械工程学院,主要内容10/9/20222南京理工大学机械工程学院,4.1 VHDL语言概述,VHDL: VHSIC (Very High Speed Integrated Circui
2、t) Hardware Description Language,80年代初由美国国防部在实施超高速集成电路(VHSIC)项目时开发的。 1987年由 IEEE 协会批准为 IEEE 工业标准,称为IEEE1076-1987。 各EDA公司相继推出支持VHDL的设计环境。 1993年被更新为 93 标准,即IEEE1076-1993。 进一步提高抽象描述层次,扩展系统描述能力。,10/9/2022,3,南京理工大学机械工程学院,4.1 VHDL语言概述 VHDL: 80年代,数字电子技术的基本知识回顾,组合逻辑电路 编码器、译码器、数据选择器、加法器、数值比较器等时序逻辑电路同步时序逻辑电路异
3、步时序逻辑电路寄存器、移位寄存器、计数器、序列信号发生器,10/9/2022,4,南京理工大学机械工程学院,数字电子技术的基本知识回顾组合逻辑电路 10/9/20224,一、传统设计方法,(1)首先确定可用的元器件;(2)根据这些器件进行逻辑设计,完成各模块;(3)将各模块进行连接,最后形成系统;(4)而后经调试、测量观察整个系统是否达到规定的性能指标。,传统的设计方法是基于中小规模集成电路器件进行设计(如74系列及其改进系列、74HC系列等都属于通用型数字集成电路),而且是采用自底向上进行设计:,10/9/2022,5,南京理工大学机械工程学院,一、传统设计方法(1)首先确定可用的元器件;
4、传统的,EDA(Electronics Design Automation)即电子设计自动化技术,是利用计算机工作平台,从事电子系统和电路设计的一项技术。EDA技术为电子系统设计带来了这样的变化:(1)设计效率提高,设计周期缩短;(2)设计质量提高;(3)设计成本降低;(4)能更充分地发挥设计人员的创造性;(5)设计成果的重用性大大提高,省去了不必要的重复劳动。,二、EDA设计方法,10/9/2022,6,南京理工大学机械工程学院,EDA(Electronics Design,自顶向下的设计方法,数字电路的EDA设计是基于PLD进行设计的,支持自顶向下的设计方法:(1)首先从系统设计入手,在顶
5、层进行功能划分和结构设计;(2)然后再逐级设计底层的结构;(3)并在系统级采用仿真手段验证设计的正确性;(4)最后完成整个系统的设计,实现从设计、仿真、测试一体化。,10/9/2022,7,南京理工大学机械工程学院,自顶向下的设计方法数字电路的EDA设计是基于PLD进行设计的,传统设计方法 vs EDA设计方法,10/9/2022,8,南京理工大学机械工程学院,传统设计方法 vs EDA设计方法 传统设计方法EDA设计,三、PLD器件,如果能把所设计的数字系统做成一片大规模集成电路,则不仅能减小电路的体积、重量、功耗,而且会使电路的可靠性大为提高。 为某种专门用途而设计的集成电路叫做专用集成电
6、路,即所谓的ASIC(Application Specific Integrated Circuit的缩写)。 在用量不大的情况下,设计和制造这样的专用集成电路成本很高,而且设计、制造的周期也较长。 可编程逻辑器件的研制成功为解决上述问题提供了比较理想的途径。,(一)出现的背景,10/9/2022,9,南京理工大学机械工程学院,三、PLD器件 如果能,(二)PLD概述,PLD:可编程逻辑器件(Programmable Logic Device) 可编程逻辑器件是一种数字集成电路的半成品,在其芯片上按一定排列方式集成了大量的逻辑门和触发器等基本逻辑元件。通过编程可以设置其逻辑功能。PLD编程:
7、利用开发工具对PLD进行加工,即按设计要求将这些片内的元件连接起来,使之完成某个逻辑电路或系统的功能,成为一个专用集成电路(ASICApplication Specific Integrated Circuit)。,10/9/2022,10,南京理工大学机械工程学院,(二)PLD概述PLD:可编程逻辑器件(Programmab,PLD开发系统,PLD开发系统包括硬件和软件两部分。硬件部分:计算机、下载电缆或编程器;软件部分:集成开发系统。 Altera公司:Maxplus 、 Quartus Xilinx公司:Foundation、 ISE Lattice公司:Synario System、i
8、spEXPERT System,10/9/2022,11,南京理工大学机械工程学院,PLD开发系统PLD开发系统包括硬件和软件两部分。10/9/,四、PLD设计流程,10/9/2022,12,南京理工大学机械工程学院,四、PLD设计流程设计准备设计输入设计处理器件编程功能仿真时,1、PLD设计准备,在设计之前,首先要进行方案论证和器件选择等设计准备工作。 设计者首先要根据任务要求,判断系统的可行性。系统的可行性要受到逻辑要求合理性、成本、开发条件、器件供应等方面的约束。 若系统可行,则根据系统所完成的功能及复杂程度,对器件本身的资源和成本、工作速度及连线的可布性等方面进行权衡,选择合适的设计方
9、案和合适的器件类型。,10/9/2022,13,南京理工大学机械工程学院,1、PLD设计准备 在设计之前,首先要进行方案,2、设计输入,将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输入。 通常,设计输入有如下三种方式: (1)原理图输入方式 适用于对系统及各部分电路很熟悉的场合。 (2)硬件描述语言输入方式 硬件描述语言是用文本方式描述设计,硬件描述语言有ABEL、AHDL、VHDL、Verilog等,其中VHDL和Verilog已成为IEEE标准。 (3)波形输入方式,10/9/2022,14,南京理工大学机械工程学院,2、设计输入 将所设计的电路的逻辑功能按照开发系
10、统要求,3、设计处理,逻辑优化 把逻辑描述转变为最适合在器件中实现的形式,优化使设计所占用的资源最少。 逻辑综合 根据设计描述,对给定的硬件结构组件,最终获得门级电路甚至更底层的电路描述文件,即将多个模块化设计文件合并为一个网表文件。适配 确定优化后的逻辑能否与器件中的宏单元和I/O单元适配。分割 将大的设计分割为多个便于器件内部资源实现的逻辑小块的形式。,10/9/2022,15,南京理工大学机械工程学院,3、设计处理逻辑优化10/9/202215南京理工大学机械工,4、设计校验,设计校验过程包括功能仿真和时序仿真。 功能仿真时序仿真,5、器件编程,器件编程就是将开发系统生成的目标文件下载到
11、可编程逻辑器件中,来定义内部模块的逻辑功能以及它们的相互连接关系。 两种编程方式:编程器下载电缆,返回,10/9/2022,16,南京理工大学机械工程学院,4、设计校验设计校验过程包括功能仿真和时序仿真。 5、器件编,4.2 VHDL语言程序的基本结构,Library std; Use std.standard.all;Entity and2 is Port( a,b : in bit;c : out bit);End and2;Architecture a1 of and2 is Begin c = a and b; End a1;,VHDL程序,10/9/2022,17,南京理工大学机械工
12、程学院,4.2 VHDL语言程序的基本结构Library std;,库(Library)是经编译后的数据的集合,它用于存放包集合定义、实体定义、构造体定义和配置定义。声明格式: Library 库名;,(1)库( Library ),4.2 VHDL语言程序的基本结构,VHDL库可分为 5种:,1)IEEE 库,2)STD 库(标准库),3)面向ASIC的库,4)WORK库(默认库),5)用户定义库,10/9/2022,18,南京理工大学机械工程学院,库(Library)是经编译后的数据的集合,它用于存放(1),4.2 VHDL语言程序的基本结构,(2)包集合( Package ),包集合 (
13、Package )中定义了基本的常数、信号、数据类型、元件语句、函数定义及过程定义等。是库结构中的一个层次。声明格式: use 库名包集合名项目名; use 库名. PACKAGE名.All;,包集合的结构包括: 包集合标题(包首) 包集合主体(包体),10/9/2022,19,南京理工大学机械工程学院,4.2 VHDL语言程序的基本结构(2)包集合( Pack,ackage 包集合名 is 包说明项 end 包集合名;,4.2 VHDL语言程序的基本结构,(2)包集合( Package ),ackage body 包集合名 is 包体说明项 end 包集合名;,包集合标题,包集合主体,包集合
14、体并非必须,只有在包集合中要说明子程序时,包集合体才是必须的。,10/9/2022,20,南京理工大学机械工程学院,ackage 包集合名 is4.2 VHDL语言,作用: ENTITY(实体)用于定义电路的外观,即I/O端口的类型和数量。 定义格式:Entity 实体名 is Port( a : in bit; b : in bit; c : out bit);End 实体名;,(3)实体(ENTITY)定义区,端口名,数据类型,端口模式,4.2 VHDL语言程序的基本结构,:,;,10/9/2022,21,南京理工大学机械工程学院,作用: ENTITY(实体)用于定义电路的外观,即I/,端
15、口说明(PORT) 端口为设计实体和其外部环境提供动态通信的通道,是对基本设计单元与外部接口的描述,其功能相当电路图符号的外部引脚。端口可以被赋值,也可以当做逻辑变量用在逻辑表达式中。其一般书写格式为:PORT (端口名 :端口模式 数据类型; 端口名 :端口模式 数据类型; );,(3)实体(ENTITY)定义区,4.2 VHDL语言程序的基本结构,10/9/2022,22,南京理工大学机械工程学院,端口说明(PORT)(3)实体(ENTITY)定义区4.2,标识符的定义原则:(1)标识符由字母、数字和下划线组成, a_7;(2)标识符不区分大小写,ab和AB是一样的;(3)第一个字符必须是
16、字母,即a666;(4)不允许有两个连续的下划线,a_b错误;(5)末尾不能是下划线,mname_错误;(6)标识符不能和关键字相同,如Entity,is等。,(3)实体(ENTITY)定义区,4.2 VHDL语言程序的基本结构,10/9/2022,23,南京理工大学机械工程学院,标识符的定义原则:(3)实体(ENTITY)定义区4.2,端口模式(MODE)有以下几种类型: IN ;OUT;INOUT ;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块) IN OUT BUFFER INOUT,(3)实体(ENTITY)定义区,4.2 VHDL语言程序的基本结构,10/9/2022
17、,24,南京理工大学机械工程学院,端口模式(MODE)有以下几种类型:(3)实体(ENTITY,(3)实体(ENTITY)定义区,4.2 VHDL语言程序的基本结构,输入(IN)允许信号进入实体,主要用于时钟输入、控制输入(如load、reset、enable、clk)和单向的数据输入(如地址数据信号address)等。,输出(OUT) 输出模式只允许信号离开实体,常用于计数输出、单向数据输出、被设计实体产生的控制其他实体的信号等。注意:输出模式不能用于被设计实体的内部反馈,因为输出端口在实体内不能看做是可读的。,10/9/2022,25,南京理工大学机械工程学院,(3)实体(ENTITY)定
18、义区4.2 VHDL语言程序的,(3)实体(ENTITY)定义区,4.2 VHDL语言程序的基本结构,双向模式(INOUT)双向模式允许信号双向传输(既可以进入实体,也可以离开实体),双向模式端口允许引入内部反馈。,缓冲(BUFFER) 缓冲模式允许信号输出到实体外部,但同时也可以在实体内部引用该端口的信号。缓冲端口既能用于输出也能用于反馈。缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器输出、计数器的现态用来决定计数器的次态。,10/9/2022,26,南京理工大学机械工程学院,(3)实体(ENTITY)定义区4.2 VHDL语言程序的,(3)实体(ENTITY)定义区,4.2 VH
19、DL语言程序的基本结构,out 和 buffer 的区别:,10/9/2022,27,南京理工大学机械工程学院,(3)实体(ENTITY)定义区4.2 VHDL语言程序的,结构体也叫构造体,结构体描述了基本设计单元(实体)的结构、行为、元件及内部连接关系,也就是说它定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内部元件的连接关系。结构体对其基本设计单元的输入和输出关系可用以下三种方式进行描述,即行为描述(基本设计单元的数学模型描述)、寄存器传输描述(数据流描述)和结构描述(逻辑元件连接描述)。 结构体是对实体功能的具体描述,因此它一定要跟在实体的后面 。,(4)结构体(ARCHIT
20、ECTURE)定义区,4.2 VHDL语言程序的基本结构,10/9/2022,28,南京理工大学机械工程学院,结构体也叫构造体,结构体描述了基本设计单元(,(4)结构体(ARCHITECTURE)定义区,定义格式: Architecture 结构体名 of 实体名 is 声明语句;(内部信号、变量、常数,元件,子程序声明) Begin 并行描述语句; End 结构体名;,4.2 VHDL语言程序的基本结构,10/9/2022,29,南京理工大学机械工程学院,(4)结构体(ARCHITECTURE)定义区定义格式: 4,结构体(ARCHITECTURE)构造图,10/9/2022,30,南京理工
21、大学机械工程学院,结构体(ARCHITECTURE)构造图10/9/20223,图中5种功能描述语句的基本组成和功能分别是:块语句是由一系列并行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个子模块。进程语句定义顺序语句模块,用以将从外部获得的信号值或内部运算数据向其他的信号进行赋值。信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。子程序调用语句可以调用进程或参数,并将获得的结果赋值于信号。 元件例化语句对其他的设计实体做元件调用说明,并将此元件的端口与其他元件、信号或高层实体的界面端口进行连接。,(4)结构体(ARCHITECTURE)定义区,4.2 VHDL
22、语言程序的基本结构,10/9/2022,31,南京理工大学机械工程学院,图中5种功能描述语句的基本组成和功能分别是:(4)结构体(A,4.2 VHDL语言程序的基本结构,实体与结构体的关系:,一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同。,10/9/2022,32,南京理工大学机械工程学院,4.2 VHDL语言程序的基本结构实体与结构体的关系:设计,4.2 VHDL语言程序的基本结构,(5)配置(CONFIGURATION),配置:从某个实体的多种结构体描述方式中选择 特定的一个。,10/9/2022,33,南京理工大学机械工程学院,4.2 VHDL语言程序的基本结
23、构(5)配置(CONFIG,configuration 配置名 of 实体名 is for 选配结构体名 end for ;end 配置名;,4.2 VHDL语言程序的基本结构,(5)配置(CONFIGURATION),在用VHDL描述硬件电路时,常常采用结构描述方式和混合描述方式。在这两种描述方式中,常常需要将其他设计实体作为元件进行引用,这时就需要将不同元件通过配置安装到不同的设计实体中。VHDL提供了配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结构体之间的连接关系。,10/9/2022,34,南京理工大学机械工程学院,configuration 配置名 of 实体名 is
24、,library ieee; use ieee.std_logic_1164.all; entity nand is port(a: in std_logic; b: in std_logic; c: out std_logic); end entity nand; architecture art1 of nand is begin c=not (a and b); end architecture art1;,例:一个与非门不同实现方式的配置如下:,10/9/2022,35,南京理工大学机械工程学院,library ieee;例:一个与非门不同实现方式的配置,architecture ar
25、t2 of nand is begin c=1 when (a=0) and (b=0) else 1 when (a=0) and (b=1) else 1 when (a=1) and (b=0) else 0 when (a=1) and (b=1) else 0; end architecture art2;,例:一个与非门不同实现方式的配置如下:,10/9/2022,36,南京理工大学机械工程学院,architecture art2 of nand is例:,configuration first of nand is for art1; end for; end first; co
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 数字电路 设计 课件
链接地址:https://www.31ppt.com/p-1289779.html