VHDL与数字电路设计.ppt

上传人:s****8 文档编号:68962298 上传时间:2022-12-30 格式:PPT 页数:194 大小:748.50KB
返回 下载 相关 举报
VHDL与数字电路设计.ppt_第1页
第1页 / 共194页
VHDL与数字电路设计.ppt_第2页
第2页 / 共194页
点击查看更多>>
资源描述

《VHDL与数字电路设计.ppt》由会员分享,可在线阅读,更多相关《VHDL与数字电路设计.ppt(194页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第四章第四章VHDL硬件描述语言硬件描述语言张志安张志安 南京理工大学南京理工大学12/30/20221南京理工大学机械工程学院主要内容主要内容4.1 VHDL4.1 VHDL4.1 VHDL4.1 VHDL语言概述语言概述语言概述语言概述 4.2 VHDL4.2 VHDL4.2 VHDL4.2 VHDL语言程序的基本结构语言程序的基本结构语言程序的基本结构语言程序的基本结构4.3 VHDL4.3 VHDL4.3 VHDL4.3 VHDL语言的数据类型及运算操作符语言的数据类型及运算操作符语言的数据类型及运算操作符语言的数据类型及运算操作符4.4 VHDL4.4 VHDL4.4 VHDL4.4

2、 VHDL语言的顺序描述语句语言的顺序描述语句语言的顺序描述语句语言的顺序描述语句4.5 VHDL4.5 VHDL4.5 VHDL4.5 VHDL语言的并发描述语句语言的并发描述语句语言的并发描述语句语言的并发描述语句4.6 VHDL4.6 VHDL4.6 VHDL4.6 VHDL语言在数字电路中的应用语言在数字电路中的应用语言在数字电路中的应用语言在数字电路中的应用12/30/20222南京理工大学机械工程学院4.1 VHDL语言概述语言概述 VHDLVHDLVHDLVHDL:V V V VHSIC(Very High Speed Integrated Circuit)HSIC(Very H

3、igh Speed Integrated Circuit)HSIC(Very High Speed Integrated Circuit)HSIC(Very High Speed Integrated Circuit)H H H Hardwareardwareardwareardware D D D Descriptionescriptionescriptionescription L L L Languageanguageanguageanguage 8080年代初由美国国防部在实施超高速集成电路(年代初由美国国防部在实施超高速集成电路(VHSICVHSIC)项目时开发的。项目时开发的。19

4、871987年由年由 IEEE IEEE 协会批准为协会批准为 IEEE IEEE 工业标准,称为工业标准,称为IEEE1076-1987IEEE1076-1987。各各EDAEDA公司相继推出支持公司相继推出支持VHDLVHDL的设计环境。的设计环境。19931993年被更新为年被更新为 93 93 标准,即标准,即IEEE1076-1993IEEE1076-1993。进一步提高抽象描述层次,扩展系统描述能力。进一步提高抽象描述层次,扩展系统描述能力。12/30/20223南京理工大学机械工程学院数字电子技术的基本知识回顾数字电子技术的基本知识回顾组合逻辑电路组合逻辑电路 编码器、译码器、数

5、据选择器、加法器、数值比较器等编码器、译码器、数据选择器、加法器、数值比较器等时序逻辑电路时序逻辑电路同步时序逻辑电路同步时序逻辑电路异步时序逻辑电路异步时序逻辑电路寄存器、移位寄存器、计数器、序列信号发生器寄存器、移位寄存器、计数器、序列信号发生器12/30/20224南京理工大学机械工程学院一、传统设计方法一、传统设计方法(1)首先确定可用的元器件;)首先确定可用的元器件;(2)根据这些器件进行逻辑设计,完成各模块;)根据这些器件进行逻辑设计,完成各模块;(3)将各模块进行连接,最后形成系统;)将各模块进行连接,最后形成系统;(4)而后经调试、测量观察整个系统是否达到规定)而后经调试、测量

6、观察整个系统是否达到规定的性能指标。的性能指标。传统的设计方法是基于传统的设计方法是基于中小规模集成电路器件中小规模集成电路器件进行设计(如进行设计(如74系列及其改进系列、系列及其改进系列、74HC系列系列等都属于通用型数字集成电路),等都属于通用型数字集成电路),而且是采用自而且是采用自底向上进行设计:底向上进行设计:12/30/20225南京理工大学机械工程学院 EDA(Electronics Design Automation)即电子设计自动化即电子设计自动化技术,是利用计算机工作平台,从事电子系统和电路设计的一技术,是利用计算机工作平台,从事电子系统和电路设计的一项技术。项技术。ED

7、A技术为电子系统设计带来了这样的变化:技术为电子系统设计带来了这样的变化:(1)设计效率提高,设计周期缩短;)设计效率提高,设计周期缩短;(2)设计质量提高;)设计质量提高;(3)设计成本降低;)设计成本降低;(4)能更充分地发挥设计人员的创造性;)能更充分地发挥设计人员的创造性;(5)设计成果的重用性大大提高,省去了不必要的重复劳动。)设计成果的重用性大大提高,省去了不必要的重复劳动。二、二、EDA设计方法设计方法 12/30/20226南京理工大学机械工程学院自顶向下的设计方法自顶向下的设计方法数字电路的数字电路的EDA设计是基于设计是基于PLD进行设计的,支持进行设计的,支持自顶自顶向下

8、向下的设计方法:的设计方法:(1)首先从系统设计入手,在顶层进行功能划分和结)首先从系统设计入手,在顶层进行功能划分和结构设计;构设计;(2)然后再逐级设计底层的结构;)然后再逐级设计底层的结构;(3)并在系统级采用仿真手段验证设计的正确性;)并在系统级采用仿真手段验证设计的正确性;(4)最后完成整个系统的设计,实现从设计、仿真、)最后完成整个系统的设计,实现从设计、仿真、测试一体化。测试一体化。12/30/20227南京理工大学机械工程学院传统设计方法传统设计方法 vs EDA设计方法设计方法 传统设计传统设计传统设计传统设计方法方法方法方法EDAEDA设计设计设计设计方法方法方法方法自底向

9、上自底向上手手动设计动设计软软硬件分离硬件分离原理原理图设计图设计方式方式系系统统功能固定功能固定不易仿真不易仿真难测试难测试修改修改模模块难块难移植共享移植共享设计设计周期周期长长自自顶顶向下向下自自动设计动设计打破打破软软硬件屏障硬件屏障原理原理图图、HDL等等设计设计方式方式系系统统功能易改功能易改易仿真易仿真易易测试测试修改修改模模块块可移植共享可移植共享设计设计周期短周期短12/30/20228南京理工大学机械工程学院三、三、PLD器件器件 如如果果能能把把所所设设计计的的数数字字系系统统做做成成一一片片大大规规模模集集成成电电路路,则则不不仅仅能能减减小小电电路路的的体体积积、重重

10、量量、功功耗耗,而而且且会会使使电电路路的的可可靠靠性性大为提高。大为提高。为为某某种种专专门门用用途途而而设设计计的的集集成成电电路路叫叫做做专专用用集集成成电电路路,即即所所谓的谓的ASIC(Application Specific Integrated Circuit的缩写)。的缩写)。在在用用量量不不大大的的情情况况下下,设设计计和和制制造造这这样样的的专专用用集集成成电电路路成成本本很高,而且设计、制造的周期也较长。很高,而且设计、制造的周期也较长。可可编编程程逻逻辑辑器器件件的的研研制制成成功功为为解解决决上上述述问问题题提提供供了了比比较较理理想想的途径。的途径。(一)出现的背景

11、(一)出现的背景(一)出现的背景(一)出现的背景12/30/20229南京理工大学机械工程学院(二)(二)PLD概述概述PLD:可编程逻辑器件(:可编程逻辑器件(Programmable Logic Device)可编程逻辑器件是一种数字集成电路的半成品,在其芯片可编程逻辑器件是一种数字集成电路的半成品,在其芯片上按一定排列方式集成了大量的逻辑门和触发器等基本逻辑元上按一定排列方式集成了大量的逻辑门和触发器等基本逻辑元件。通过编程可以设置其逻辑功能。件。通过编程可以设置其逻辑功能。PLD编程编程:利用开发工具对利用开发工具对PLD进行加工,即按设计要求将这些片内进行加工,即按设计要求将这些片内

12、的元件连接起来,使之完成某个逻辑电路或系统的功能,成为的元件连接起来,使之完成某个逻辑电路或系统的功能,成为一个专用集成电路(一个专用集成电路(ASICApplication Specific Integrated Circuit)。)。12/30/202210南京理工大学机械工程学院PLD开发系统开发系统PLD开发系统包括硬件和软件两部分。开发系统包括硬件和软件两部分。硬件部分:计算机、下载电缆或编程器;硬件部分:计算机、下载电缆或编程器;软件部分:集成开发系统。软件部分:集成开发系统。Altera公司:公司:Maxplus、Quartus Xilinx公司:公司:Foundation、IS

13、E Lattice公司:公司:Synario System、ispEXPERT System12/30/202211南京理工大学机械工程学院四、四、PLD设计流程设计流程设计准备设计准备设计输入设计输入设计处理设计处理器件编程器件编程功能仿真功能仿真时序仿真时序仿真器件测试器件测试12/30/202212南京理工大学机械工程学院1、PLD设计准备设计准备 在设计之前,首先要进行方案论证和器件选择等在设计之前,首先要进行方案论证和器件选择等设计准备工作。设计准备工作。设计者首先要根据任务要求,判断系统的可行性。设计者首先要根据任务要求,判断系统的可行性。系统的可行性要受到逻辑要求合理性、成本、开

14、发条系统的可行性要受到逻辑要求合理性、成本、开发条件、器件供应等方面的约束。件、器件供应等方面的约束。若系统可行,则根据系统所完成的功能及复杂程若系统可行,则根据系统所完成的功能及复杂程度,对器件本身的资源和成本、工作速度及连线的可度,对器件本身的资源和成本、工作速度及连线的可布性等方面进行权衡,选择合适的设计方案和合适的布性等方面进行权衡,选择合适的设计方案和合适的器件类型。器件类型。12/30/202213南京理工大学机械工程学院2、设计输入、设计输入 将所设计的电路的逻辑功能按照开发系统要求的形将所设计的电路的逻辑功能按照开发系统要求的形式表达出来的过程称为设计输入。式表达出来的过程称为

15、设计输入。通常,设计输入有如下三种方式:通常,设计输入有如下三种方式:(1)原理图输入方式)原理图输入方式 适用于对系统及各部分电路很熟悉的场合。适用于对系统及各部分电路很熟悉的场合。(2)硬件描述语言输入方式)硬件描述语言输入方式 硬件描述语言是用文本方式描述设计,硬件描述语硬件描述语言是用文本方式描述设计,硬件描述语言有言有ABEL、AHDL、VHDL、Verilog等,其中等,其中VHDL和和Verilog已成为已成为IEEE标准。标准。(3)波形输入方式)波形输入方式12/30/202214南京理工大学机械工程学院3、设计处理、设计处理n逻辑优化逻辑优化 把逻辑描述转变为最适合在器件中

16、实现的形式,优化使设计把逻辑描述转变为最适合在器件中实现的形式,优化使设计所占用的资源最少。所占用的资源最少。n逻辑综合逻辑综合 根据设计描述,对给定的硬件结构组件,最终获得门级电路根据设计描述,对给定的硬件结构组件,最终获得门级电路甚至更底层的电路描述文件,即将多个模块化设计文件合并甚至更底层的电路描述文件,即将多个模块化设计文件合并为一个网表文件。为一个网表文件。n适配适配 确定优化后的逻辑能否与器件中的宏单元和确定优化后的逻辑能否与器件中的宏单元和I/O单元适配。单元适配。n分割分割 将大的设计分割为多个便于器件内部资源实现的逻辑小块的将大的设计分割为多个便于器件内部资源实现的逻辑小块的

17、形式。形式。12/30/202215南京理工大学机械工程学院4、设计校验、设计校验设计校验过程包括功能仿真和时序仿真。设计校验过程包括功能仿真和时序仿真。功能仿真功能仿真时序仿真时序仿真5、器件编程、器件编程 器件编程就是将开发系统生成的目标文件下载到可器件编程就是将开发系统生成的目标文件下载到可编程逻辑器件中,编程逻辑器件中,来定义内部模块的逻辑功能以及它们来定义内部模块的逻辑功能以及它们的相互连接关系。的相互连接关系。两种编程方式:两种编程方式:n编程器编程器n下载电缆下载电缆返回返回返回返回12/30/202216南京理工大学机械工程学院4.2 VHDL语言程序的基本结构语言程序的基本结

18、构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;VHDLVHDL程序程序程序程序 库、包集合库、包集合 实体(实体(Entity)结构体结构体 (Architecture)进程进程 或其它并行结构或其它并行结构 配置(配置(Configuration)12/30/202217南京理工大学机械工程学院库(库(Library)是经编译后的数据的集合,它用于存放)是经编译后的数据的

19、集合,它用于存放包集合定义、实体定义、构造体定义和配置定义。包集合定义、实体定义、构造体定义和配置定义。声明格式:声明格式:Library 库名库名;(1)库()库(Library)4.2 VHDL语言程序的基本结构语言程序的基本结构VHDL库可分为库可分为 5种:种:1)IEEE 库库2)STD 库(标准库)库(标准库)3)面向)面向ASIC的库的库4)WORK库(默认库)库(默认库)5)用户定义库)用户定义库12/30/202218南京理工大学机械工程学院4.2 VHDL语言程序的基本结构语言程序的基本结构(2)包集合()包集合(Package)包集合包集合(Package)中定义了基本的

20、常数、信号、数据)中定义了基本的常数、信号、数据类型、元件语句、函数定义及过程定义等。是库结构中的类型、元件语句、函数定义及过程定义等。是库结构中的一个层次。一个层次。声明格式:声明格式:use 库名包集合名项目名;库名包集合名项目名;use 库名库名.PACKAGE名名.All;包集合的结构包括:包集合的结构包括:包集合标题(包首)包集合标题(包首)包集合主体(包体)包集合主体(包体)12/30/202219南京理工大学机械工程学院 package 包集合名 is 包说明项 end 包集合名;4.2 VHDL语言程序的基本结构语言程序的基本结构(2)包集合()包集合(Package)pack

21、age body 包集合名 is 包体说明项 end 包集合名;包集合标题包集合标题 包集合主体包集合主体包集合体并非必须,只有在包集合中要说明子程序时,包集合体才是必须的。12/30/202220南京理工大学机械工程学院 作作用用:ENTITY(实实体体)用用于于定定义义电电路路的的外外观观,即即I/O端端口的类型和数量。口的类型和数量。定义格式:定义格式:Entity 实体名 is Port(a:in bit;b:in bit;c:out bit);End 实体名;(3 3)实体()实体()实体()实体(ENTITYENTITY)定义区)定义区)定义区)定义区端口名端口名数据类型数据类型端

22、口模式端口模式4.2 VHDL语言程序的基本结构语言程序的基本结构:;12/30/202221南京理工大学机械工程学院端口说明端口说明(PORT)端端口口为为设设计计实实体体和和其其外外部部环环境境提提供供动动态态通通信信的的通通道道,是是对对基基本本设设计计单单元元与与外外部部接接口口的的描描述述,其其功功能能相相当当电电路路图图符符号号的的外外部部引引脚脚。端端口口可可以以被被赋赋值值,也也可可以以当当做做逻逻辑辑变变量量用在逻辑表达式中。用在逻辑表达式中。其一般书写格式为:其一般书写格式为:PORT(端口名端口名:端口模式:端口模式 数据类型;数据类型;端口名端口名:端口模式:端口模式

23、数据类型;数据类型;););(3 3)实体()实体()实体()实体(ENTITYENTITY)定义区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构12/30/202222南京理工大学机械工程学院标识符标识符的定义原则:的定义原则:(1)标识符由字母、数字和下划线组成,)标识符由字母、数字和下划线组成,a_7a_7;(2)标识符不区分大小写,)标识符不区分大小写,ab和和AB是一样的;是一样的;(3)第一个字符必须是字母,即)第一个字符必须是字母,即a666a666;(4)不允许有两个连续的下划线,不允许有两个连续的下划线,a_ba_b错误;错误;(5)末尾不能是下

24、划线,)末尾不能是下划线,mnamemname_ _错误;错误;(6)标识符不能和关键字相同)标识符不能和关键字相同,如如EntityEntity,isis等。等。(3 3)实体()实体()实体()实体(ENTITYENTITY)定义区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构12/30/202223南京理工大学机械工程学院端口模式端口模式(MODE)有以下几种类型:IN;OUT;INOUT;BUFFER 端口模式可用下图说明:(黑框代表一个设计或模块)IN OUT BUFFER INOUT(3 3)实体()实体()实体()实体(ENTITYENTITY)定义

25、区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构12/30/202224南京理工大学机械工程学院(3 3)实体()实体()实体()实体(ENTITYENTITY)定义区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构输入(输入(IN)允许信号进入实体,主要用于时钟输入、控制输入允许信号进入实体,主要用于时钟输入、控制输入(如(如load、reset、enable、clk)和单向的数据输入)和单向的数据输入(如地址数据信号(如地址数据信号address)等。)等。输出(输出(OUT)输出模式只允许信号离开实体,常用于计数输出、输出模式只允

26、许信号离开实体,常用于计数输出、单向数据输出、被设计实体产生的控制其他实体的单向数据输出、被设计实体产生的控制其他实体的信号等。注意:输出模式不能用于被设计实体的内信号等。注意:输出模式不能用于被设计实体的内部反馈,因为输出端口在实体内不能看做是可读的。部反馈,因为输出端口在实体内不能看做是可读的。12/30/202225南京理工大学机械工程学院(3 3)实体()实体()实体()实体(ENTITYENTITY)定义区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构双向模式(双向模式(INOUT)双向模式允许信号双向传输(既可以进入实体,也可以双向模式允许信号双向传输

27、(既可以进入实体,也可以离开实体),双向模式端口允许引入内部反馈。离开实体),双向模式端口允许引入内部反馈。缓冲(缓冲(BUFFER)缓冲模式允许信号输出到实体外部,但同时也可以在实缓冲模式允许信号输出到实体外部,但同时也可以在实体内部引用该端口的信号。缓冲端口既能用于输出也能体内部引用该端口的信号。缓冲端口既能用于输出也能用于反馈。缓冲模式用于在实体内部建立一个可读的输用于反馈。缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器输出、计数器的现态用来决定计数出端口,例如计数器输出、计数器的现态用来决定计数器的次态。器的次态。12/30/202226南京理工大学机械工程学院(3 3)实体

28、()实体()实体()实体(ENTITYENTITY)定义区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构out out out out 和和和和 buffer buffer buffer buffer 的区别:的区别:的区别:的区别:12/30/202227南京理工大学机械工程学院 结构体也叫结构体也叫构造体构造体,结构体描述了基本设计单元(实体),结构体描述了基本设计单元(实体)的结构、行为、元件及内部连接关系,也就是说它的结构、行为、元件及内部连接关系,也就是说它定义了设定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内计实体的功能,规定了设计实体的

29、数据流程,制定了实体内部元件的连接关系部元件的连接关系。结构体对其基本设计单元的输入和输出。结构体对其基本设计单元的输入和输出关系可用以下关系可用以下三种方式进行描述三种方式进行描述,即,即行为描述行为描述(基本设计单(基本设计单元的数学模型描述)、寄存器传输描述(元的数学模型描述)、寄存器传输描述(数据流描述数据流描述)和)和结结构描述构描述(逻辑元件连接描述)。(逻辑元件连接描述)。结构体结构体是对实体功能的具体描述,因此它一定要跟在实是对实体功能的具体描述,因此它一定要跟在实体的后面体的后面。(4 4)结构体()结构体()结构体()结构体(ARCHITECTUREARCHITECTURE

30、)定义区)定义区)定义区)定义区4.2 VHDL语言程序的基本结构语言程序的基本结构12/30/202228南京理工大学机械工程学院(4 4)结构体()结构体()结构体()结构体(ARCHITECTUREARCHITECTURE)定义区)定义区)定义区)定义区定义格式:Architecture 结构体名结构体名 of 实体实体名名 is 声声明明语语句句;(内内部部信信号号、变变量量、常常数数,元元件件,子子程程序序声声明明)Begin 并行描述语句;并行描述语句;End 结构体名;结构体名;4.2 VHDL语言程序的基本结构语言程序的基本结构12/30/202229南京理工大学机械工程学院结

31、构体(结构体(结构体(结构体(ARCHITECTUREARCHITECTURE)构造图)构造图)构造图)构造图12/30/202230南京理工大学机械工程学院图中图中5种功能描述语句的基本组成和功能分别是:种功能描述语句的基本组成和功能分别是:块块语语句句是是由由一一系系列列并并行行语语句句构构成成的的组组合合体体,它它的的功功能能是是将将结结构构体体中中的的并并行行语语句组成一个或多个子模块。句组成一个或多个子模块。进进程程语语句句定定义义顺顺序序语语句句模模块块,用用以以将将从从外外部部获获得得的的信信号号值值或或内内部部运运算算数数据据向向其他的信号进行赋值。其他的信号进行赋值。信号赋值

32、语句信号赋值语句将设计实体内的处理结果向定义的信号或界面端口进行赋值。将设计实体内的处理结果向定义的信号或界面端口进行赋值。子程序调用语句子程序调用语句可以调用进程或参数,并将获得的结果赋值于信号。可以调用进程或参数,并将获得的结果赋值于信号。元件例化语句元件例化语句对其他的设计实体做元件调用说明,并将此元件的端口与其他对其他的设计实体做元件调用说明,并将此元件的端口与其他元件、信号或高层实体的界面端口进行连接。元件、信号或高层实体的界面端口进行连接。(4 4)结构体()结构体()结构体()结构体(ARCHITECTUREARCHITECTURE)定义区)定义区)定义区)定义区4.2 VHDL

33、语言程序的基本结构语言程序的基本结构12/30/202231南京理工大学机械工程学院4.2 VHDL语言程序的基本结构语言程序的基本结构实体与结构体的关系:设计实体结构体1结构体2结构体3结构体n。一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同。12/30/202232南京理工大学机械工程学院4.2 VHDL语言程序的基本结构语言程序的基本结构(5 5)配置()配置()配置()配置(CONFIGURATIONCONFIGURATION)设计实体结构体1结构体2结构体3结构体n。一个设计实体的多种实现方式配置:从某个实体的多种结构体描述方式中选择 特定的一个。12/30

34、/202233南京理工大学机械工程学院configuration 配置名 of 实体名 is for 选配结构体名 end for;end 配置名;4.2 VHDL语言程序的基本结构语言程序的基本结构(5 5)配置()配置()配置()配置(CONFIGURATIONCONFIGURATION)在用在用VHDL描述硬件电路时,常常采用描述硬件电路时,常常采用结构描述方式结构描述方式和和混合描述方式混合描述方式。在这两种描述方式中,常常需要将其他设计实体作为元件进行引用,这在这两种描述方式中,常常需要将其他设计实体作为元件进行引用,这时就需要时就需要将不同元件通过配置安装到不同的设计实体中。将不同

35、元件通过配置安装到不同的设计实体中。VHDLVHDL提供了提供了提供了提供了配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结配置语句用于描述各种设计实体和元件之间连接关系以及设计实体和结构体之间的连接关系。构体之间的连接关系。构体之间的连接关系。构体之间的连接关系。12/30/202234南京理工大学机械工程学院 library ieee;use ieee.std_logic_1164.all;entity nand is port(a:in std_log

36、ic;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;例:一个与非门不同实现方式的配置如下:例:一个与非门不同实现方式的配置如下:12/30/202235南京理工大学机械工程学院architecture art2 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

37、(a=1)and(b=1)else 0;end architecture art2;例:一个与非门不同实现方式的配置如下:例:一个与非门不同实现方式的配置如下:12/30/202236南京理工大学机械工程学院configuration first of nand is for art1;end for;end first;configuration second of nand is for art2 end for;end second;例:一个与非门不同实现方式的配置如下:例:一个与非门不同实现方式的配置如下:12/30/202237南京理工大学机械工程学院二输入与门电路设计范例二输入与门

38、电路设计范例 abc电路真值表电路真值表abc00010001011112/30/202238南京理工大学机械工程学院Library std;Use std.standard.all;Entity and2 is Port(a:in bit;b:in bit;c:out bit);End and2;-实体定义结束。实体定义结束。双减号双减号-为为VHDL程序的注释符,类似程序的注释符,类似C语言中的语言中的/注释符。注释符。二输入与门电路设计范例二输入与门电路设计范例 12/30/202239南京理工大学机械工程学院二输入与门电路设计范例二输入与门电路设计范例Architecture Na o

39、f and1 is Begin c=0 when a=0 and b=0 else 0 when a=1 and b=0 else 0 when a=0 and b=1 else 1;-符号符号=为信号直接赋值符。为信号直接赋值符。End Na;-结构体结构体Na Architecture Nb of and2 is Begin c=a and b;-and 为逻辑与操作为逻辑与操作End Nb;-结构体结构体Nb12/30/202240南京理工大学机械工程学院二输入与门电路设计范例二输入与门电路设计范例Configuration s1 of and1 isfor Naend for;end

40、configuration s1;Configuration s2 of and2 isfor Nbend for;end configuration s2;-结构体配置结束。结构体配置结束。12/30/202241南京理工大学机械工程学院2选选1多路选择器的多路选择器的VHDL描述描述12/30/202242南京理工大学机械工程学院2选选1多路选择器的多路选择器的VHDL描述描述ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN

41、y=a WHEN s=0 ELSE b ;END ARCHITECTURE one;实体实体结构体结构体12/30/202243南京理工大学机械工程学院2选选1多路选择器的多路选择器的VHDL描述描述ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e:BIT;BEGINd=a AND(NOT S);e=b AND s;y=d OR e ;END ARCHITECTURE one;12/30/202244南京理工大学机械工程

42、学院2选选1多路选择器的多路选择器的VHDL描述描述ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s)BEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;12/30/202245南京理工大学机械工程学院mux21a功能时序波形功能时序波形2选选1多路选择器的多路选择器的VHDL描述描述返回返回返回返回12/30/202246南京

43、理工大学机械工程学院4.3 VHDL语言的数据类型及运算操作符语言的数据类型及运算操作符n1、数据对象、数据对象n2、数据类型、数据类型n3、运算操作符、运算操作符n4、数据对象属性数据对象属性n5、VHDL语言词法规则语言词法规则12/30/202247南京理工大学机械工程学院1、数据对象、数据对象 三种对象:常量(三种对象:常量(ConstantConstant)变量(变量(VariableVariable)信号(信号(SignalSignal)三种对象的物理含义:三种对象的物理含义:常量代表数字电路中的电源、地、恒定逻常量代表数字电路中的电源、地、恒定逻 辑值等常数;辑值等常数;变量代表

44、暂存某些值的载体,常用于描述变量代表暂存某些值的载体,常用于描述 算法;算法;信号代表物理设计中的某一条硬件连接线,信号代表物理设计中的某一条硬件连接线,包括输入、输出端口。包括输入、输出端口。12/30/202248南京理工大学机械工程学院1、数据对象、数据对象三种对象的特点及说明场合:信号:全局量,用于architecture、package、entitiy。变量:局部量,用于process、function、procedure。常量:全局量,可用于上面两种场合。12/30/202249南京理工大学机械工程学院1、数据对象、数据对象常量说明常量说明 常量说明:对某一个常量名赋予一个固定的值

45、。格式:例:constant data:bit_vector(3 downto 0):=“1010”constant width:integer:=8;constant x:new_bit:=x;常量数据类型必须与表达式的数据类型一致。constant 常数名:数据类型:=表达式;12/30/202250南京理工大学机械工程学院常量的可视性(作用范围):常量的可视性(作用范围):库、程序包 实体(Entity)结构体1 进 程1 结构体2 进 程2 常量是常量是全局全局量量,其作用,其作用范围取决于范围取决于常量被定义常量被定义的位置。的位置。12/30/202251南京理工大学机械工程学院1

46、、数据对象、数据对象变量说明变量说明 变量是一个局部量,只能在进程和子程序中定义、使用。其作用范围仅限于定义了变量的进程和子程序中。格式:例:variable a,b:bit;variable count:integer range 0 to 255:=10;变量的初值可用于仿真,但综合时被忽略。variable 变量名:数据类型 约束条件:=表达式;12/30/202252南京理工大学机械工程学院1、数据对象、数据对象信号说明信号说明 电子硬件系统运行的基本特性:各部分电路工作的并行特性;信号传输过程中的延时特性;多驱动源的总线特性;时序电路中触发器的记忆特性等。信号是电子系统内部硬件连接和

47、硬件特性的抽象表示。用来描述硬件系统的基本特性。格式:signal 信号名:数据类型 约束条件:表达式;12/30/202253南京理工大学机械工程学院1、数据对象、数据对象例:例:signal a,b:bit;signal a,b:bit;signal init:integer:=-1;signal init:integer:=-1;signal s1:std_logic:=0;signal s1:std_logic:=0;signal s2:std_logic_vector(15 signal s2:std_logic_vector(15 downtodownto 0);0);注:注:a.

48、a.综合时初值被忽略。综合时初值被忽略。b.b.信号是全局量。可在结构体、实体、块中信号是全局量。可在结构体、实体、块中 说明和使用信号。说明和使用信号。c.c.在进程和子程序中只能使用信号,不能说在进程和子程序中只能使用信号,不能说 明信号。明信号。12/30/202254南京理工大学机械工程学院例:进程中信号与变量的使用例:进程中信号与变量的使用entity ex isentity ex is port(.);port(.);end ex;end ex;architecture arch_ex of ex isarchitecture arch_ex of ex is signal sig

49、nal a a,b b:std_logic;:std_logic;beginbegin process(process(a a,b b)variable c,d:std_logic;variable c,d:std_logic;begin begin c:=a+b;c:=a+b;d:=a-b;d:=a-b;end process;end process;end arch_ex;end arch_ex;12/30/202255南京理工大学机械工程学院1、数据对象、数据对象信号信号与与端口端口的区别:的区别:除没有方向说明外,信号与实体的“端口(PORT)”概念相似。端口是一种隐形的信号。enti

50、ty exam is port(signal a,b:in std_logic;signal c:out std_logic);end exam;端口是一种有方向的信号。即输出端口不能读出数据,只能写入数据;输入端口不能写入数据,只能读出数据。信号本身无方向,可读可写。12/30/202256南京理工大学机械工程学院信号与信号与变量变量的区别:的区别:信号和变量是信号和变量是VHDLVHDL中重要的客体,他们之间的主要区别有:中重要的客体,他们之间的主要区别有:信号赋值至少要有信号赋值至少要有延时;而变量赋值没有。延时;而变量赋值没有。信信号号除除当当前前值值外外有有许许多多相相关关的的信信息

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

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁