书签 分享 收藏 举报 版权申诉 / 96
上传文档赚钱

类型第2章-VHDL设计入门-《EDA技术》-教学课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4847992
  • 上传时间:2023-01-17
  • 格式:PPT
  • 页数:96
  • 大小:507KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《第2章-VHDL设计入门-《EDA技术》-教学课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    EDA技术 VHDL 设计 入门 EDA 技术 教学 课件
    资源描述:

    1、 【要求要求】掌握掌握VHDL语言的基本知识和运用语言的基本知识和运用VHDL语言设计逻辑电路语言设计逻辑电路的基本方法。的基本方法。【知识点知识点】l 理解理解VHDL程序的基本结构程序的基本结构l 理解理解VHDL程序的顺序语句程序的顺序语句l 理解理解VHDL程序的并行语句程序的并行语句l 理解理解VHDL程序的语言要素程序的语言要素第2章 VHDL设计入门下一页 【重点和难点重点和难点】l VHDL程序的顺序结构程序的顺序结构l VHDL程序的并行结构程序的并行结构【引言引言】HDL文本输入设计法是文本输入设计法是Quartus II的一个重要输入的一个重要输入设计法设计法,本书主要介

    2、绍,本书主要介绍VHDL文本输入法。本章讨论文本输入法。本章讨论VHDL语言的基本知识和运用语言的基本知识和运用 VHDL语言设计逻辑电路的语言设计逻辑电路的方法,在以后各章再对方法,在以后各章再对VHDL文本输入设计法及其应用作文本输入设计法及其应用作进一步的讨论。进一步的讨论。本章先介绍本章先介绍VHDL程序的基本结构、顺序语句和并行程序的基本结构、顺序语句和并行 语句,最后对语句,最后对VHDL程序的语言要素做一个总结。程序的语言要素做一个总结。第2章 VHDL设计入门下一页上一页第2章 VHDL设计入门2.1 VHDL程序的基本结构程序的基本结构2.2 VHDL程序的顺序语句程序的顺序

    3、语句2.3 VHDL程序的并行语句程序的并行语句2.4 VHDL程序的语言要素总结程序的语言要素总结2.5 本章小结本章小结上一页 VHDL程序包含实体程序包含实体(ENTITY)、结构体、结构体(ARCHITECTURE)、配置、配置(CONFIGURATION)、程序包、程序包(PACKAGE、库、库(LIBRARY)5个部分。个部分。简单的实体是由实体和结构体两部分组成的。简单的实体是由实体和结构体两部分组成的。实体用于描述设计系统的外部接口信号,结构体用于描述系实体用于描述设计系统的外部接口信号,结构体用于描述系统的行为、系统数据的流程或者系统组织结构形式。统的行为、系统数据的流程或者

    4、系统组织结构形式。设计实体是设计实体是VHDL程序的基本单元,是电子系统的抽象。程序的基本单元,是电子系统的抽象。简单的实体可以是一个与门电路简单的实体可以是一个与门电路(AND GATE),复杂的实,复杂的实体可以是一个微处理器或一个数字电了系统。体可以是一个微处理器或一个数字电了系统。实体由实体说明和结构体说明两部分组成。实体由实体说明和结构体说明两部分组成。2.1 VHDL程序的基本结构下一页下一页上一页2.1 VHDL程序的基本结构 【例例2.1】以下是一个简单的以下是一个简单的VHDL源程序,可以归纳出源程序,可以归纳出VHDL程序的基本结构。程序的基本结构。ENTITY m yan

    5、d2 IS -实体名称为实体名称为and2 PORT (a,b:IN BIT;-a,b是两个输入引脚是两个输入引脚 c:OUT BIT);-c为输出引脚为输出引脚 END m yand2;ARCHITECTURE examl OF myand2 IS -结构体结构体 BEGIN exam 1是对实体是对实体and2的内部的内部 c=a AND b;描述,描述了描述,描述了and2器件的内部器件的内部 功能为实现一个功能为实现一个2输入与门输入与门 END exam1;下一页上一页 由例由例2.1可以看出,可以看出,VHDL程序由两部分组成程序由两部分组成:第第1部分为实体说明部分为实体说明.第

    6、第2部分为结构体。部分为结构体。VHDL程序结构更抽象、更基本、更简练的表示如程序结构更抽象、更基本、更简练的表示如图图2-1所示。所示。设计实体用关键字设计实体用关键字ENTITY来标识,结构体来标识,结构体ARCHITECTURE来标识。来标识。系统设计中的实体提供该设计系统的公共信息,结构体定义了各系统设计中的实体提供该设计系统的公共信息,结构体定义了各个个 模块内的操作特性。模块内的操作特性。一个设计实体必须包含一个结构体或含有多个结构体。一个电子一个设计实体必须包含一个结构体或含有多个结构体。一个电子系统的设计模型如系统的设计模型如图图2-2所示。所示。2.1 VHDL程序的基本结构

    7、下一页一、实体一、实体 实体由实体名、类型说明、端口说明、实体说明部分和实体语实体由实体名、类型说明、端口说明、实体说明部分和实体语句部分组成。句部分组成。1.实体语句结构实体语句结构根据根据IEEE标准,实体组织的一般格式为标准,实体组织的一般格式为:ENTITY实体名实体名IS GENERIC(类型说明类型说明);PORT(端口说明端口说明);实体说明部分实体说明部分:BEGIN 实体语句部分实体语句部分;END ENTITY实体名实体名;2.1 VHDL程序的基本结构 实体名是设计者自己给设计实体的命名,其他设计实体可对该设实体名是设计者自己给设计实体的命名,其他设计实体可对该设计实体进

    8、行调用。中间在方括号内的语句描述,在特定的情况下并非计实体进行调用。中间在方括号内的语句描述,在特定的情况下并非是必须的。是必须的。2.类型说明类型说明 类型说明是实体说明中的可选项,放在端口说明之前,其一般使类型说明是实体说明中的可选项,放在端口说明之前,其一般使写格式为写格式为:GENERIC CONSTANT名字表名字表:1N了类型标识了类型标识:一静态一静态表达式表达式,举例举例:GENERIC(m:TIME:=3ns)这个参数说明是指在这个参数说明是指在VHDL程序中,结构体内的参数程序中,结构体内的参数m的值为的值为3ns。下一页上一页2.1 VHDL程序的基本结构 类型说明和端口

    9、说明是实体说明的组成部分,用于说明设计实体和类型说明和端口说明是实体说明的组成部分,用于说明设计实体和外部通信的通道。利用外部通信通道,参数的类型说明为设计实体提外部通信的通道。利用外部通信通道,参数的类型说明为设计实体提供信息。参数的类型用来规定端口的大示、供信息。参数的类型用来规定端口的大示、I/O引脚的指派、实体中引脚的指派、实体中子元件的数口和实体的定时特性等信息。子元件的数口和实体的定时特性等信息。3.端口说明端口说明 端口说明是对设计实体与外部接口的描述,是设计实体和外部环境端口说明是对设计实体与外部接口的描述,是设计实体和外部环境动态通信的通道,其功能对应于电路图符号的一个引脚。

    10、实体说明中动态通信的通道,其功能对应于电路图符号的一个引脚。实体说明中的每一个的每一个I/O信号被称为一个端口,一个端口就是一个数据对象。端信号被称为一个端口,一个端口就是一个数据对象。端口可以被赋值,也可以当做变量用在逻辑表达式中。定义实体的一组口可以被赋值,也可以当做变量用在逻辑表达式中。定义实体的一组端口称作端口说明。端口称作端口说明。下一页上一页2.1 VHDL程序的基本结构 端口说明的组织结构必须有一个名称、一个通信模式和一个数据类端口说明的组织结构必须有一个名称、一个通信模式和一个数据类型。端口说明的一般格式为型。端口说明的一般格式为:Port(端口名,端口名端口名,端口名:模式模

    11、式 数据类型名数据类型名 端口名,端口名端口名,端口名:模式模式 数据类型名数据类型名);端口名是赋于每个外部引脚的名称,名称的含义要明确,如端口名是赋于每个外部引脚的名称,名称的含义要明确,如D开头开头的端口名表示数据,的端口名表示数据,A开头的端口名表示地址等。端口名通常用几个英开头的端口名表示地址等。端口名通常用几个英文字母或一个英文字母加数字表示。文字母或一个英文字母加数字表示。下面是合法的端口名下面是合法的端口名:CLK,RESET,A0,D3。模式用来说明数据、信号通过该端口的传输方向。端口模式有模式用来说明数据、信号通过该端口的传输方向。端口模式有IN,OUT,BUFFER,1N

    12、OUT。下一页上一页2.1 VHDL程序的基本结构下一页上一页 (1)输入输入(IN)输入仅允许数据流入输入模式主要用于时钟输入、控制输入输入仅允许数据流入输入模式主要用于时钟输入、控制输入(如如RESET,ENABLE,CLK)和单向的数据输入,如地址信号和单向的数据输入,如地址信号(ADDRESS)。不用的输入一般接地,以免浮动引入干扰噪声。不用的输入一般接地,以免浮动引入干扰噪声。(2)输出输出(OUT)输出仅允许数据流从实体内部输出。端口的驱动源是由被设计的输出仅允许数据流从实体内部输出。端口的驱动源是由被设计的实体内部进行的。输出模式不能用于被设计实体的内部反馈,因为输实体内部进行的

    13、。输出模式不能用于被设计实体的内部反馈,因为输出端口在实体内不能看做可读的。输出模式常用于计数输出、单向数出端口在实体内不能看做可读的。输出模式常用于计数输出、单向数据输出、设计实体产生的控制其他实体的信号等。一般而言,不用的据输出、设计实体产生的控制其他实体的信号等。一般而言,不用的输出端口不能接地,避免造成输出高电平时烧毁被设计实体。输出端口不能接地,避免造成输出高电平时烧毁被设计实体。2.1 VHDL程序的基本结构(3)缓冲缓冲(BUFFER)缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部缓冲模式的端口与输出模式的端口类似,只是缓冲模式允许内部引用该端口的信号。缓冲端口既能用于

    14、输出,也能用于反馈。引用该端口的信号。缓冲端口既能用于输出,也能用于反馈。缓冲端口的驱动源可以是缓冲端口的驱动源可以是:设计实体的内部信号源设计实体的内部信号源;其他实体的缓冲端口。其他实体的缓冲端口。缓冲不允许多重驱动,不与其他实体的双向端口和输出端口相连。缓冲不允许多重驱动,不与其他实体的双向端口和输出端口相连。内部反馈的实现方法有内部反馈的实现方法有:建立缓冲模式端口建立缓冲模式端口;建立设计实体的内部节点。建立设计实体的内部节点。下一页上一页2.1 VHDL程序的基本结构 缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器输缓冲模式用于在实体内部建立一个可读的输出端口,例如计数器

    15、输出,计数器的现态被用来决定计数器的次态。实体既需要输出,又需出,计数器的现态被用来决定计数器的次态。实体既需要输出,又需要反馈,这时设计端口模式应为缓冲模式。要反馈,这时设计端口模式应为缓冲模式。(4)双向模式双向模式(INOUT)双向模式可以代替输入模式、输出模式和缓冲模式。双向模式可以代替输入模式、输出模式和缓冲模式。在设计实体的数据流中,有些数据是双向的,数据可以流入该设计在设计实体的数据流中,有些数据是双向的,数据可以流入该设计实体,也有数据从设计实体流出,这时需要将端口模式设计为双向端实体,也有数据从设计实体流出,这时需要将端口模式设计为双向端口。口。双向模式的端口允许引入内部反馈

    16、,所以双向模式端口还可以作为双向模式的端口允许引入内部反馈,所以双向模式端口还可以作为缓冲模式用。由上述分析可见,双向端口是一个完备的端口模式。缓冲模式用。由上述分析可见,双向端口是一个完备的端口模式。下一页上一页2.1 VHDL程序的基本结构二、结构体二、结构体 结构体具体指明了该设计实体的行为,定义了该设计实体的结构体具体指明了该设计实体的行为,定义了该设计实体的功能,规定了该端口。输入信号的驱动源由设计实体的数据流程,功能,规定了该端口。输入信号的驱动源由设计实体的数据流程,指派了实体中内部元件的连接关系。指派了实体中内部元件的连接关系。用用VHDL语言描述结构体有语言描述结构体有4种方

    17、法种方法:行为描述法行为描述法:采用进程语句,顺序描述被称设计实体的行为。采用进程语句,顺序描述被称设计实体的行为。数据流描述法数据流描述法:采用进程语句,顺序描述数据流在控制流作采用进程语句,顺序描述数据流在控制流作用下被加工、处理、存储的全过程。用下被加工、处理、存储的全过程。结构描述法结构描述法:采用并行处理语句描述设计实体内的结构组织采用并行处理语句描述设计实体内的结构组织和元件互连关系。和元件互连关系。下一页上一页2.1 VHDL程序的基本结构 采用多个进程采用多个进程(PROCESS)、多个模块、多个模块(BLOCKS)、多个子程、多个子程序序(SUBPROGRAMS)的子结构方式

    18、。的子结构方式。结构体的一般书写格式为结构体的一般书写格式为:ARCHITECTURE结构体名结构体名OF实体名实体名IS 定义语句,内部信号,常数,数据类型,函数定义定义语句,内部信号,常数,数据类型,函数定义 BEGIN 并行处理语句并行处理语句;进程语句进程语句;END结构体名结构体名;下一页上一页2.1 VHDL程序的基本结构 一个结构体的组织结构从一个结构体的组织结构从“ARCHITECTURE结构体名结构体名OF实体名实体名IS”开始,到开始,到“END结构体名结构体名”结束。结束。结构体名称由设计者自由命名,是结构体的唯一名称。结构体名称由设计者自由命名,是结构体的唯一名称。OF

    19、后面的实后面的实体名称表明该结构体属于哪个设计实体,有些设计实体中可能含有多个体名称表明该结构体属于哪个设计实体,有些设计实体中可能含有多个结构体。这些结构体的命名可以从不同侧面反映结构体的特色,让人一结构体。这些结构体的命名可以从不同侧面反映结构体的特色,让人一目了然。例如目了然。例如:ARCHITECTURE behacvioral OF mux IS -用结构体行为命名用结构体行为命名 ARCHITECTURE dataflow OF mux IS -用结构体的数据流命名用结构体的数据流命名 下一页上一页2.1 VHDL程序的基本结构 ARCHITECTURE structural OF

    20、 mux IS -用结构体的组织结构命名用结构体的组织结构命名 ARCHITECTURE bool OF mux IS -用结构体的数学表达方式命名用结构体的数学表达方式命名 ARCHITECTURE latch OF mux IS -用结构体的功能来定义用结构体的功能来定义 上述几个结构体都属于设计实体上述几个结构体都属于设计实体mux,每个结构体有着不同的,每个结构体有着不同的名称,使得阅读名称,使得阅读VHDL程序的人能直接从结构体的描述方式了解程序的人能直接从结构体的描述方式了解功能,定义电路行为。功能,定义电路行为。下一页上一页2.1 VHDL程序的基本结构三、程序包三、程序包 实体

    21、中定义的各种数据类型、子程序和元件调用说明只能局限在实体中定义的各种数据类型、子程序和元件调用说明只能局限在该实体内或结构体内调用,其他实体不能使用。该实体内或结构体内调用,其他实体不能使用。程序包的语句格式如下程序包的语句格式如下:PACKAGE程序包名程序包名IS -程序包首开始程序包首开始 程序包首说明语句程序包首说明语句 END程序包名程序包名;-程序包首结束程序包首结束 PACKAGE BODY程序包名程序包名IS -程序包体开始程序包体开始 程序包体说明语句程序包体说明语句 END程序包名程序包名;-程序包体结束程序包体结束 下一页上一页2.1 VHDL程序的基本结构 STD_LO

    22、GIC_1164程序包是程序包是IEEE库中最常用的程序包,是库中最常用的程序包,是IEEE的标准程序包。其中包括了一些数据类型、了类型和函数的定的标准程序包。其中包括了一些数据类型、了类型和函数的定义,这些定义将义,这些定义将VHDL扩展为一个能描述多值逻辑扩展为一个能描述多值逻辑(即除具有即除具有“0”和和“1”以外还有其他的逻辑量,如高阻态以外还有其他的逻辑量,如高阻态“Z、不定态、不定态“X”等等)的硬的硬件描述语言。件描述语言。程序包结构中,程序包体并非是必须的,程序包首可以独立定义程序包结构中,程序包体并非是必须的,程序包首可以独立定义和使用。和使用。例如例如:PACKAGE PA

    23、C1 IS -程序包首开始程序包首开始 TYPE BYTE IS RANGE 0 TO 255;-定义数据类型定义数据类型BYTE 下一页上一页2.1 VHDL程序的基本结构 SIGNAL ADDEND:NIBBLE;-定义信号定义信号ADDEND END PAC1;-程序包首结束程序包首结束 如果要使用这个程序包中的所有定义,可用如果要使用这个程序包中的所有定义,可用USE语句访问此程序语句访问此程序包包:USE WORK.PAC1.ALL;四、库四、库 在利用在利用VHDL进行工程设计中,为了提高设计效率以及使设计遵循进行工程设计中,为了提高设计效率以及使设计遵循某些统一的语言标准或数据格

    24、式,有必要将一些有用的信息汇集在一个某些统一的语言标准或数据格式,有必要将一些有用的信息汇集在一个或几个库中以供调用。这些信息可以是预先定义的数据类型、子程序等或几个库中以供调用。这些信息可以是预先定义的数据类型、子程序等设计单元的集合体设计单元的集合体(程序包程序包),或预先设计好的各种设计实体,或预先设计好的各种设计实体(元件库程元件库程序包序包)。因此,可以把库看成是一种用来存储预先完成的程序包和数据。因此,可以把库看成是一种用来存储预先完成的程序包和数据集合体的仓库。集合体的仓库。上一页下一页2.1 VHDL程序的基本结构 库的语句格式如下库的语句格式如下:LIBRARY库名库名:这一

    25、语句相当于为其后的设计实体打开了以次库名命名的库,以便这一语句相当于为其后的设计实体打开了以次库名命名的库,以便设计实体可以利用其中的程序包。如语句设计实体可以利用其中的程序包。如语句“LIBRARY_IEEE;”表示表示打开打开IEEE库。库。1.库的种类库的种类 (1)IEEE库库 IEEE库是库是VH支持工业标准的程序包。支持工业标准的程序包。IEEE库中的标准程序包主库中的标准程序包主要包含要包含STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_SIGNED,STD_LOGIC_UNSIGNED程序包。程序包。上一页下一页2.1 VHDL程序的基本结构

    26、(2)STD库库 STD库是库是VHDL的标准库,的标准库,VHDL在编译过程中自动使用这个库,在编译过程中自动使用这个库,所以使用时不需要语句说明,类似所以使用时不需要语句说明,类似“LIBRARY_STD”这种语句是不这种语句是不必要的。必要的。(3)WORK库库 WORK库是用户的库是用户的VHDL设计的现行工作库,用于存放用户设计和设计的现行工作库,用于存放用户设计和定义的一些设计单元和程序包。因此,自动满足定义的一些设计单元和程序包。因此,自动满足VHDL的语言标准,实的语言标准,实际调用中,也不需要语句说明。际调用中,也不需要语句说明。2.库的用法库的用法 在在VHDL中,库的说明

    27、语句是放在实体单元的前面,而目库语言一中,库的说明语句是放在实体单元的前面,而目库语言一般必须与般必须与USE语言同用。库语言关键词语言同用。库语言关键词LIBRARY,指明所使用的库,指明所使用的库上一页下一页2.1 VHDL程序的基本结构名。名。USE语句指明库中的程序包。一旦说明了程序包,整个设计实体语句指明库中的程序包。一旦说明了程序包,整个设计实体都可以进入访问和调用,但其作用范围仅限于所说明的设计实体。都可以进入访问和调用,但其作用范围仅限于所说明的设计实体。USE语句的使用将使说明的程序包对本设计实体部分全部开放,语句的使用将使说明的程序包对本设计实体部分全部开放,USE语句的使

    28、用有两种常用格式语句的使用有两种常用格式:USE库名库名.程序包名程序包名.项目名项目名;USE库名库名.程序包名程序包名.ALL;例如例如:LIBRARY IEEE;-打开打开IEEE库库 USE IEEE.STD_LOGIC_1164.ALL;-使用使用IEEE库内的库内的STD_LOGIC_1164 上一页下一页2.1 VHDL程序的基本结构 USE IEEE.STD_LOGIC_UNSIGNED.ALL;-使用使用IEEE库内的库内的STD LOGIC UNSIGNED程序包内程序包内 的所有资源的所有资源五、配置五、配置 配置可以把特定的结构体指定给一个确定的实体。为了满足不同设配置

    29、可以把特定的结构体指定给一个确定的实体。为了满足不同设计阶段或不同场合的需要,对某一个实体,我们可以给出儿种不同形式计阶段或不同场合的需要,对某一个实体,我们可以给出儿种不同形式的结构体描述,这样在其他实体调用该实体时,就可以根据需要选择其的结构体描述,这样在其他实体调用该实体时,就可以根据需要选择其中某一个结构体,选择不同的结构体以便进行性能对比试验,确认性能中某一个结构体,选择不同的结构体以便进行性能对比试验,确认性能最佳的结构体。以上这些工作就由配置来完成。最佳的结构体。以上这些工作就由配置来完成。上一页下一页2.1 VHDL程序的基本结构配置语句的一般语句如下配置语句的一般语句如下:C

    30、ONFIGURATION 配置名配置名 OF 实体名实体名 IS 配置语句说明配置语句说明 END 配置名配置名;例例2.2在描述一个与非门在描述一个与非门NAND的设计实体中会有两个不同的逻的设计实体中会有两个不同的逻辑描述方法构成的结构体。用配置语句来为特定的结构体击求作配置指辑描述方法构成的结构体。用配置语句来为特定的结构体击求作配置指定。定。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MYNAND IS 上一页下一页2.1 VHDL程序的基本结构 PORT(A:IN STD_LOGIC;B:IN STD_LOGIC;C:OUT STD

    31、_LOGIC);END ENTITY MYNAND;ARCHITECTURE ART1 OF MYNAND IS BEGIN C=NOT(A AND B);END ARCHITECYURE ART1;ARCHITECTURE ART2 OF MYNAND IS BEGIN 上一页下一页2.1 VHDL程序的基本结构 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;CONFIGURATION SECOND OF

    32、IS FOR ART2 END FOR;END SECOND;上一页下一页2.1 VHDL程序的基本结构 CONFIGURATION FIRST OF IS FOR ART1 END FOR;END FIRST;在本例中,若指定配置名为在本例中,若指定配置名为SECOND,则为实体,则为实体NAND配置的结配置的结构体为构体为ART2;若指定配置名为若指定配置名为FIRST,则为实体,则为实体NAND配置的结构体配置的结构体为为ARTl。两种结构的描述方式不同,但是逻辑功能相同。两种结构的描述方式不同,但是逻辑功能相同。上一页返 回2.1 VHDL程序的基本结构 顺序语句是顺序语句是VHDL程

    33、序设计中很贡要的语句系列之一,它能够从程序设计中很贡要的语句系列之一,它能够从多个侧面完整地描述数字系统的硬件结构和基本逻辑功能。顺序语句多个侧面完整地描述数字系统的硬件结构和基本逻辑功能。顺序语句与传统软件要指的是语句的执行与传统软件要指的是语句的执行(指仿真执行指仿真执行)顺序与它们书写顺序基顺序与它们书写顺序基本一致。本一致。顺序语句只能出现在进程顺序语句只能出现在进程(PROCESS)或了程序或了程序(PROCEDURE)、函数、函数(FUNCTION)中使用,按程序书写的顺序中使用,按程序书写的顺序自上而下、一个一个语句地执行。进程本身属于并行语句,这就是说自上而下、一个一个语句地执

    34、行。进程本身属于并行语句,这就是说在同一设计实体中,所有的进程都是并行执行的,每一个进程内部的在同一设计实体中,所有的进程都是并行执行的,每一个进程内部的语句是顺序执行的。语句是顺序执行的。本节主要介绍赋值语句、本节主要介绍赋值语句、IF语句、语句、CASE语句、语句、LOOP语句。语句。2.2 VHDL程序的顺序语句下一页一、顺序赋值语句一、顺序赋值语句 顺序语句中的赋值语句分变量赋值语句和信号赋值语句。其用途是顺序语句中的赋值语句分变量赋值语句和信号赋值语句。其用途是将一个值或者表达式的运算结果传递给一个变量、信号或者由它们组成将一个值或者表达式的运算结果传递给一个变量、信号或者由它们组成

    35、的数组。但一者是有区别的,变量赋值时间延迟为零,而信号赋值一定的数组。但一者是有区别的,变量赋值时间延迟为零,而信号赋值一定存在时间延迟。存在时间延迟。1.变量赋值语句变量赋值语句 格式格式:口标变量名口标变量名:一赋值源一赋值源(表达式表达式):例如例如:x:=5.0;z:=x+y;其中其中x和和z都是变量,都是变量,:=表示给变量赋值。表示给变量赋值。上一页下一页 2.2 VHDL程序的顺序语句 2.信号赋值语句信号赋值语句 格式格式:口标信号名口标信号名=赋值源赋值源:例如例如:y=3;b(3 TO 4)=c(1 TO 2);其中其中y为信号,而为信号,而b则为数组型信号,则为数组型信号

    36、,=表示给信号赋值。表示给信号赋值。二、二、IF语句语句 IF语句的书写格式如下二种语句的书写格式如下二种:1.简化的简化的IF语句语句 IF条件表达式条件表达式THEN 顺序语句顺序语句:END IF:上一页下一页 2.2 VHDL程序的顺序语句 第一种语句的执行情况是,当程序执行到该语句时,首先检测关键第一种语句的执行情况是,当程序执行到该语句时,首先检测关键词词IF后的后的“条件表达式条件表达式”的布尔值是否为真的布尔值是否为真(TURE。如果为真,那。如果为真,那么么THEN将顺序执行将顺序执行“顺序语句顺序语句”中的各条语句,直到中的各条语句,直到“END IF:;如果为假如果为假C

    37、FALSE),则不执行,则不执行“顺序语句顺序语句”,直接到跳到,直接到跳到“END IF,结束,结束IF语句的执行。语句的执行。【例例2.3】用用IF语句描述一个简单的语句描述一个简单的D触发器。触发器。ENTITY dffl IS PORT(d,c1k:IN BIT;q:ouT BIT);END dffl;上一页下一页 2.2 VHDL程序的顺序语句 ARCHITECTURE one OF dffl IS BEGIN PROCESS(clk)BEGIN IF (clkevent AND clk=1)THEN q=d;END IF;END PROCESS;END one;上一页下一页 2.2

    38、 VHDL程序的顺序语句 2.两分支结构两分支结构 IF 条件表达式条件表达式 THEN 顺序语句顺序语句;ELSE 顺序语句顺序语句;END IF;两分支结构的执行情况是,当关键词两分支结构的执行情况是,当关键词“IF”后的后的“条件表达式条件表达式”为真为真时,则顺序执行其下面的时,则顺序执行其下面的“顺序语句顺序语句”中的各条语句,当中的各条语句,当“顺序语句顺序语句”执行完成后,直接跳到执行完成后,直接跳到“END IF:”,结束,结束IF语句的执行语句的执行;当当“IF”)西的西的“条件表达式条件表达式”为假时,则程序直接跳到关键词为假时,则程序直接跳到关键词“ELSE”,执行其,执

    39、行其下面的顺序语句,直到下面的顺序语句,直到“END IF;”。因此它是一种两分支的结构。因此它是一种两分支的结构。上一页下一页 2.2 VHDL程序的顺序语句 【例例2.4】用用IF语句描述一个语句描述一个2输入端的与门。输入端的与门。ENTITY mvand2 IS PORT(a,b:IN BIT;y:OUT BIT);END mvand2;ARCHITECTURE one OF mvand2 IS BEGIN PROCESS(a,b)BEGIN IF (a=1 AND b=1)THEN 上一页下一页 2.2 VHDL程序的顺序语句 y=1;ELSE y=0;END IF;END PROC

    40、ESS;END one;3.多分支结构多分支结构 IF 条件表达式条件表达式 THEN 顺序语句顺序语句;ELSIF 条件表达式条件表达式 THEN 顺序语句顺序语句;上一页下一页 2.2 VHDL程序的顺序语句 ELSE 顺序语句顺序语句;END IF;多分支结构通过关键词多分支结构通过关键词“ELSIF”设定了多个判断条件设定了多个判断条件(条件表达条件表达式式),这些判断条件的优先顺序,这些判断条件的优先顺序(从高到低从高到低)与书写与书写“条件表达式条件表达式”的先的先后顺序一致。当某一判断条件为真时,则顺序执行其后的后顺序一致。当某一判断条件为真时,则顺序执行其后的“顺序语句顺序语句

    41、”,执行完成后,直接跳到执行完成后,直接跳到“END IF;”当某一判断条件为假时,则跳过当某一判断条件为假时,则跳过其后的其后的“顺序语句顺序语句”,再测试下一个条件表达式。当所有的条件表达式,再测试下一个条件表达式。当所有的条件表达式都为假时,则执行关键词都为假时,则执行关键词ELSE”下的顺序语句下的顺序语句”。因此它是一种多分。因此它是一种多分支结构,功能与并行语句中的条件信号赋值语匀类似。支结构,功能与并行语句中的条件信号赋值语匀类似。上一页下一页 2.2 VHDL程序的顺序语句 【例例2.5】8线一线一3线优先编码器的设计线优先编码器的设计 LIBRARY IEEE;USE IEE

    42、E.STD_LOGIC 1164.ALL;ENTITY coder IS PORT(a:IN STD_LOGIC_VECTOR(0 TO 7);v:OUT STD_LOGlC_VECTOR(2 DOWN TO 0);END coder;ARCHITECTURE rtl OF coder IS BEGIN PROCESS(a)BEGIN上一页下一页 2.2 VHDL程序的顺序语句 IF a(7)=0 THEN y=111“;ELSIF(a(6)=0)THEN y=110;ELSIF(a(5)=0)THEN y=101;ELSIF(a(4)=0)THEN y=100;ELSIF(a(3)=0)TH

    43、EN y=011;ELSIF(a(2)=0)THEN y=010;ELSIF(a(1)=0)THEN y=001;ELSE y顺序语句顺序语句;When选择值选择值=顺序语句顺序语句;When OTHERS=顺序语句顺序语句;END CASE;注意注意:“=”不是运算符,相当不是运算符,相当“THEN“。上一页下一页 2.2 VHDL程序的顺序语句说明说明:语句执行时,首先计算语句执行时,首先计算“表达式表达式”的值,然后执行与的值,然后执行与“表达式表达式”值相同的值相同的“选择值选择值”)后的后的“顺序语句顺序语句”,最后,最后END CASE。这单。这单要注意,要注意,“=”不是操作符,

    44、它只相当于不是操作符,它只相当于“THEN”的作用。从这一点的作用。从这一点上来说,上来说,CASE语句和并行选择信号赋值语句的功能相当。语句和并行选择信号赋值语句的功能相当。条件句中的条件句中的“选择值选择值”必须在必须在“表达式表达式”的取值范围内,并目要的取值范围内,并目要完全覆盖完全覆盖“表达式表达式”的所有取值。当的所有取值。当“选择值选择值”不能完全覆盖不能完全覆盖“表达式表达式”的所有取值时,则最后一个条件语句中的的所有取值时,则最后一个条件语句中的“选择值选择值”必须用必须用OTHERS”表示,以表示表示,以表示“选择值选择值”未能列出未能列出“表达式表达式”的其他取值。的其他

    45、取值。关键词关键词OTHERS”只能出现一次,目只能作为最后一种条件取值。这只能出现一次,目只能作为最后一种条件取值。这一点对于定义成一点对于定义成STD LOGIC和和STD LOGIC VECTOR的数据类型尤的数据类型尤为重要。为重要。上一页下一页 2.2 VHDL程序的顺序语句 “选择值选择值”可以有以下四种不同的表达方式可以有以下四种不同的表达方式:单个数值,如单个数值,如4;数数值选择范围,如值选择范围,如(2 TO 4),表示取值为,表示取值为2,3 和和 4;并列数值,如并列数值,如35,表示取值为表示取值为3或或5;混合方式,以上三种方式的混合。混合方式,以上三种方式的混合。

    46、每一条件语句中的每一条件语句中的“选择值选择值”只能出现一次,不能有相同只能出现一次,不能有相同“选择选择值值”的条件语句。的条件语句。与与IF语句相比,语句相比,CASE语句组的程序可读性比较好,这是因为它语句组的程序可读性比较好,这是因为它把条件中把条件中“表达式表达式”的所有取值都列了出来,可执行条件一口了然。但的所有取值都列了出来,可执行条件一口了然。但对相同的逻辑功能描述,综合后,用对相同的逻辑功能描述,综合后,用CASE语句描述比语句描述比IF描述耗用更多描述耗用更多的硬件资源。因此,对本身就具有优先逻辑关系的描述的硬件资源。因此,对本身就具有优先逻辑关系的描述(如优先编码如优先编

    47、码器器),采用,采用IF语句比语句比CASE语句更合适。语句更合适。上一页下一页 2.2 VHDL程序的顺序语句【例例2.6】用用CASE语句描述语句描述4选选1数据选择器。数据选择器。LIBRARY IEEE;USE IEEE.STD LOGIC 1164.ALL;ENTITY mux4 1 IS PORT(a,b,c,d:IN STD_LOGIC;se1:IN STD_LOGIC_VECTOR(1 DOWNTO 0);y:OUT STD_LOGIC);END mux4 1;ARCHITECTURE one OF mux4 1 IS BEGIN 上一页下一页 2.2 VHDL程序的顺序语句

    48、PROCESS(sel,a,b,c,d)BEGIN CASE sel IS WHEN “00”=yyyyy=X;END CASE;END PROCESS;END one;上一页下一页 2.2 VHDL程序的顺序语句四、四、LOOP语句语句 LOOP语句就是循环语句,它可以使所包含的一组顺序语句被循环语句就是循环语句,它可以使所包含的一组顺序语句被循环执行。执行。标号标号:FOR 循环变量循环变量 IN 循环范围循环范围 LOOP 顺序语句顺序语句;END LOOP 标号标号;常用的书写格式如下常用的书写格式如下:“循环变量循环变量”是一个临时变量,属于是一个临时变量,属于Loop语句的局部变量

    49、,它由语句的局部变量,它由Loop语句自动定义,不必事先定义。该变量只能作为赋值源,不能被语句自动定义,不必事先定义。该变量只能作为赋值源,不能被赋值。使用时应注意,在赋值。使用时应注意,在Loop语句范围内不要再使用其他与此循环变语句范围内不要再使用其他与此循环变量同名的标识符。量同名的标识符。上一页下一页 2.2 VHDL程序的顺序语句“循环范围循环范围”规定循环语句被执行的次数。规定循环语句被执行的次数。“循环变量循环变量”从从“循环范循环范围围”的初值开始,每执行完一次的初值开始,每执行完一次“顺序语句顺序语句”后递增后递增1,直到达到,直到达到“循循环范围环范围”指定的最大值。指定的

    50、最大值。【例例2.7】用用FOR_LOOP语句描述语句描述图图2-3的电路。的电路。ENTITY exam_1 IS PORT(a:IN BIT_VECTOR(0 TO 3);out1:0UT BIT_VECTOR(0 TO 3);END exam 1:ARCHITECTURE beh OF exam_1 IS BEGIN 上一页下一页 2.2 VHDL程序的顺序语句 PROCESS(a)VARIABLE b:BIT;BEGIN b:=1;FOR i IN 0 TO 3 LOOP b:=a(3-i)AND b;outl(i)=b;END LOOP;END PROCESS;END beh;上一页

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:第2章-VHDL设计入门-《EDA技术》-教学课件.ppt
    链接地址:https://www.163wenku.com/p-4847992.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库