VHDL编程基础培训

上传人:无*** 文档编号:138736047 上传时间:2022-08-22 格式:PPTX 页数:68 大小:514.36KB
收藏 版权申诉 举报 下载
VHDL编程基础培训_第1页
第1页 / 共68页
VHDL编程基础培训_第2页
第2页 / 共68页
VHDL编程基础培训_第3页
第3页 / 共68页
资源描述:

《VHDL编程基础培训》由会员分享,可在线阅读,更多相关《VHDL编程基础培训(68页珍藏版)》请在装配图网上搜索。

1、 编编 程程 基基 础础 邯郸人才网 目目 录录3.1 概述概述 3.2 设计实体的基本结构设计实体的基本结构 3.3 语言要素语言要素 3.4 顺序语句顺序语句 3.5 并行语句并行语句 3.6 的库和程序包的库和程序包 3.7 设计流程设计流程 3.1 概概 述述 3.1.1 语言简介语言简介 是超高速集成电路硬件描述语言(是超高速集成电路硬件描述语言()。是标准化程度)。是标准化程度最高的硬件描述语言。目前流行的工具软件全部支持,是现最高的硬件描述语言。目前流行的工具软件全部支持,是现代电子设计师必须掌握的硬件设计计算机语言。代电子设计师必须掌握的硬件设计计算机语言。(1)逻辑描述层次:

2、一般的硬件描述语言可以在三个层次上逻辑描述层次:一般的硬件描述语言可以在三个层次上进行电路描述,层次由高到低依次可分为行为级、级进行电路描述,层次由高到低依次可分为行为级、级(寄存器寄存器转换级转换级)和门电路级。语言是一种高级描述语言,适用于行为和门电路级。语言是一种高级描述语言,适用于行为级和级的描述,最适于描述电路的行为;级和级的描述,最适于描述电路的行为;(2)设计要求:进行电子系统设计时可以不了解电路的结构设计要求:进行电子系统设计时可以不了解电路的结构细节,设计者所做的工作较少;和语言进行电子系统设计时细节,设计者所做的工作较少;和语言进行电子系统设计时需了解电路的结构细节,设计者

3、需做大量的工作。需了解电路的结构细节,设计者需做大量的工作。3.2 设计实体的基本结构设计实体的基本结构 通过描述一个二输入或门的实例,来说明的基本结构。通过描述一个二输入或门的实例,来说明的基本结构。例例1 一个二输入或门的程序如下:一个二输入或门的程序如下:;库的使用说明库的使用说明 1164;实体描述器件的输入、输出端口和数据类型用的程序包实体描述器件的输入、输出端口和数据类型用的程序包 2 实体实体2的说明的说明 (:;端口声明,端口声明,A、B是标准逻辑位类型的输入端口是标准逻辑位类型的输入端口 );声明声明C是标准逻辑位类型的输出端口是标准逻辑位类型的输出端口 2;2 实体实体2的

4、结构体的结构体 的说明的说明 C B;二输入或门逻辑功能描述二输入或门逻辑功能描述 ;或门程序包含了的库、程序包、实体说明和结构体几个主要部分。语句或门程序包含了的库、程序包、实体说明和结构体几个主要部分。语句C B为或门电路的逻辑描述,其他都作为或门对外部端口的描述,设计实体定义为或门电路的逻辑描述,其他都作为或门对外部端口的描述,设计实体定义了或门外部界面后,其他的设计就可以直接调用这个或门实体。了或门外部界面后,其他的设计就可以直接调用这个或门实体。3.2.1 程序设计举例程序设计举例1设计思路设计思路 以全加器为例以全加器为例例例2 全加器可以由两个全加器可以由两个1位的半加器构成。位

5、的半加器构成。1位半加器的端口位半加器的端口信号信号A 和和B分别是分别是2位相加的二进制输入信号,是相加和的输位相加的二进制输入信号,是相加和的输出信号,是进位输出信号,左边的门电路结构构成了右边的出信号,是进位输出信号,左边的门电路结构构成了右边的半加器。半加器。图中,全加器图中,全加器 内部的功能结构是由内部的功能结构是由3个逻辑器件个逻辑器件构成的,即由两个半加器构成的,即由两个半加器U1、U2和一个或门和一个或门U3连接而成。连接而成。1 位全加器逻辑原理图位全加器逻辑原理图 2.源程序源程序1)或门的逻辑描述或门的逻辑描述;库的使用说明库的使用说明 1164;实体描述器件的输入、输

6、出端口和数据类型用的程序包实体描述器件的输入、输出端口和数据类型用的程序包 2 实体实体2的说明的说明 (;端口声明,端口声明,a、b是标准逻辑位类型的输入端口是标准逻辑位类型的输入端口 c:);声明声明c是标准逻辑位类型的输出端口是标准逻辑位类型的输出端口 2;1 2 实体实体2的结构体的结构体1的说明的说明 c b;1;2)半加器的逻辑描述半加器的逻辑描述 ;库的使用说明库的使用说明 1164;实体的说明实体的说明 (;);2 实体的结构体实体的结构体2的说明的说明 =(a b)(a b);e);名称映射法名称映射法 U2 ();名字关联方式名字关联方式 U32 ();3;3.说明及分析说

7、明及分析(1)整个设计包括三个设计实体,分别为整个设计包括三个设计实体,分别为2、和,其中实体、和,其中实体为顶层实体。三个设计实体均包括三个组成部分:库、程序包为顶层实体。三个设计实体均包括三个组成部分:库、程序包使用说明,实体说明和结构体说明。这三个设计实体既可以作使用说明,实体说明和结构体说明。这三个设计实体既可以作为一个整体进行编译、综合与存档,也可以各自进行独立编译、为一个整体进行编译、综合与存档,也可以各自进行独立编译、独立综合与存档,或被其他的电路系统所调用。独立综合与存档,或被其他的电路系统所调用。(2)实体实体 2定义了或门定义了或门2的引脚信号的引脚信号a、b(输入输入)和

8、和c(输出输出),结构体结构体1描述了输入与输出信号间的逻辑关系,将输入信号描述了输入与输出信号间的逻辑关系,将输入信号a、b相或后传给输出信号端相或后传给输出信号端c,由此实体和结构体描述一个完整的,由此实体和结构体描述一个完整的或门元件。或门元件。(3)实体及对应的结构体实体及对应的结构体2描述了一个半加器。是由一个与非描述了一个半加器。是由一个与非门、一个非门、一个或门和一个与门连接而成的,其逻辑门、一个非门、一个或门和一个与门连接而成的,其逻辑关系来自于半加器真值表。在中,逻辑算符、和分别代关系来自于半加器真值表。在中,逻辑算符、和分别代表表“与非与非”、“非非”、“或或”和和“与与”

9、4种逻辑运算关系。种逻辑运算关系。(4)在全加器接口逻辑描述中,在全加器接口逻辑描述中,1位二进制全加器的原理图,位二进制全加器的原理图,实体定义了引脚的端口信号属性和数据类型。其中,和分实体定义了引脚的端口信号属性和数据类型。其中,和分别为两个输入的相加位,为低位进位输入,别为两个输入的相加位,为低位进位输入,为进位输出,为进位输出,为为1位和输出。其对应的结构体位和输出。其对应的结构体3的功能是利用声明语句和的功能是利用声明语句和例化语句将上面由两个实体例化语句将上面由两个实体2和描述的独立器件,按照图和描述的独立器件,按照图3.2全加器内部逻辑原理图中的接线方式连接起来。全加器内部逻辑原

10、理图中的接线方式连接起来。(5)在结构体在结构体3中,中,语句结构对所要调用的或门和半加语句结构对所要调用的或门和半加器两元件作了声明器两元件作了声明(),并由语句定义了三个信号,并由语句定义了三个信号d、e和和f,作,作为中间信号转存点,以利于几个器件间的信号连接。为中间信号转存点,以利于几个器件间的信号连接。“()”语句称为元件例化语句语句称为元件例化语句()。所谓例化,在电路板上,。所谓例化,在电路板上,相当于往上装配元器件;在逻辑原理图上,相当于从元件库相当于往上装配元器件;在逻辑原理图上,相当于从元件库中取了一个元件符号放在电路原理图上,并对此符号的各引中取了一个元件符号放在电路原理

11、图上,并对此符号的各引脚进行连线。例化也可理解为元件映射或元件连接,是映射脚进行连线。例化也可理解为元件映射或元件连接,是映射的意思。例如,语句的意思。例如,语句“U2:(e,f,)”表示将实表示将实体描述的元件体描述的元件U2的引脚信号的引脚信号a、b、和分别连向外部信号、和分别连向外部信号e、f和。符号和。符号“=”表示信号连接。表示信号连接。(6)实体引导的逻辑描述也是由三个主要部分构成的,即实体引导的逻辑描述也是由三个主要部分构成的,即库、实体和结构体。从表面上看来,库的部分仅包含一个标库、实体和结构体。从表面上看来,库的部分仅包含一个标准库和打开的准库和打开的1164程序包。但实际上

12、,从结构体的描述中可程序包。但实际上,从结构体的描述中可以看出,其对外部的逻辑有调用的操作,这类似于对库或程以看出,其对外部的逻辑有调用的操作,这类似于对库或程序包中的内容作了调用。因此,库结构部分还应将上面的或序包中的内容作了调用。因此,库结构部分还应将上面的或门和半加器的描述包括进去,作为工作库中的两个待调用的门和半加器的描述包括进去,作为工作库中的两个待调用的元件。由此可见,库结构也是程序的重要组成部分。元件。由此可见,库结构也是程序的重要组成部分。3.2.2 程序的基本结构程序的基本结构 完整的程序完整的程序(设计实体设计实体)具有固定的结构。应包括三个基本具有固定的结构。应包括三个基

13、本组成部分:库、程序包使用说明,实体说明和实体对应的结构组成部分:库、程序包使用说明,实体说明和实体对应的结构体说明。体说明。库、程序包使用说明用于打开本设计实体将要用到的库、程库、程序包使用说明用于打开本设计实体将要用到的库、程序包;序包;实体说明用于描述该设计实体与外界的接口信号说明,是可实体说明用于描述该设计实体与外界的接口信号说明,是可视部分;视部分;结构体说明用于描述该设计实体内部工作的逻辑关系。结构体说明用于描述该设计实体内部工作的逻辑关系。在一个实体中,可以含有一个或一个以上的结构体,而在在一个实体中,可以含有一个或一个以上的结构体,而在每一个结构体中又可以含有一个或多个进程以及

14、其他的语句。每一个结构体中又可以含有一个或多个进程以及其他的语句。实体还可以有配置说明语句。配置说明语句主要用于以层实体还可以有配置说明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例化,或是为实体选定次化的方式对特定的设计实体进行元件例化,或是为实体选定某个特定的结构体。某个特定的结构体。程序设计基本结构程序设计基本结构 库、程序包使用说明配置(CONFIGURATION)结构体(ARCHITECTURE)实体(ENTITY)PORT端口说明结构体说明GENERIC类属说明体实计设结构体功能描述3.2.2 程序的基本结构程序的基本结构库、程序包库、程序包 根据语法规则,在程

15、序中使用的文字、数据对象、数根据语法规则,在程序中使用的文字、数据对象、数据类型都需要预先定义。为了方便用编程,将预定义的数据类型都需要预先定义。为了方便用编程,将预定义的数据类型、元件调用声明据类型、元件调用声明()及一些常用子程序收集在一起,及一些常用子程序收集在一起,形成程序包,供设计实体共享和调用。形成程序包,供设计实体共享和调用。若干个程序包则形成库,常用的库是标准库。因此,若干个程序包则形成库,常用的库是标准库。因此,在每个设计实体开始都有打开库或程序包的语句。例如在每个设计实体开始都有打开库或程序包的语句。例如 ;1164;表示设计实体中被描述器件的输入、输出端口和数据表示设计实

16、体中被描述器件的输入、输出端口和数据类型将要用到标准库中的类型将要用到标准库中的1164程序包。程序包。3.2.3 实体实体()实体实体()是设计实体中的重要组成部分,是一是设计实体中的重要组成部分,是一个完整的、独立的语言模块。它相当于电路中的个完整的、独立的语言模块。它相当于电路中的一个器件或电路原理图上的一个元件符号。一个器件或电路原理图上的一个元件符号。实体由实体声明和结构体组成。实体声明部实体由实体声明和结构体组成。实体声明部分指定了设计单元的输入输出端口或引脚,是设分指定了设计单元的输入输出端口或引脚,是设计实体经封装后对外的一个通信界面,是外界可计实体经封装后对外的一个通信界面,

17、是外界可以看到的部分。以看到的部分。结构体用来描述设计实体的逻辑结构和逻辑结构体用来描述设计实体的逻辑结构和逻辑功能。由语句构成,是外界看不到的部分。一个功能。由语句构成,是外界看不到的部分。一个实体可以拥有一个或多个结构体。实体可以拥有一个或多个结构体。1实体语句结构实体语句结构实体声明部分的常用语句结构如下:实体声明部分的常用语句结构如下:实体名实体名 (类属表类属表);(端口表端口表);实体名;实体名;实体声明单元必须以语句实体声明单元必须以语句“实体名实体名”开始,以语句开始,以语句“实体名;实体名;”结束,结束,实体名是设计者自己给设计实体的命名,可作为其他实体名是设计者自己给设计实

18、体的命名,可作为其他 设计实体对该设计实体进行调用时用。中间在方括号内的语句设计实体对该设计实体进行调用时用。中间在方括号内的语句描述,在特定的情况下并非是必须的。描述,在特定的情况下并非是必须的。2类属类属()说明语句说明语句 类属类属()参数声明必须放在端口声明之前,参数声明必须放在端口声明之前,用于指定如矢量位数、器件延迟时间等参数。用于指定如矢量位数、器件延迟时间等参数。类属声明的一般书写格式如下:类属声明的一般书写格式如下:(常数名;数据类型常数名;数据类型:设定值:设定值 ;常数名:数据类型;常数名:数据类型:设定值:设定值);例例:(1.0);m是一个值为是一个值为1.0的时间参

19、数的时间参数 10 m;表示表示d0 经经1.0延迟后才送到延迟后才送到1【例【例3.2.2】2输入与门的实体描述。输入与门的实体描述。2 (:1;:1);(a1:;a0:;z0:);2;这是一个准备作为这是一个准备作为2输入与门的设计实体的实体描述,输入与门的设计实体的实体描述,在类属说明中定义参数为上沿宽度,为下沿宽度,它们分别在类属说明中定义参数为上沿宽度,为下沿宽度,它们分别为为1,这两个参数用于仿真模块的设计。,这两个参数用于仿真模块的设计。3端口说明端口说明 端口声明语句是描述器件的外部接口信号的声明,相当端口声明语句是描述器件的外部接口信号的声明,相当于器件的引脚声明。实体端口声

20、明的一般书写格式如下:于器件的引脚声明。实体端口声明的一般书写格式如下:(端口名:方向端口名:方向 数据类型;数据类型;端口名:方向端口名:方向 数据类型数据类型);例如例如 (a,;声明声明a,b是标准逻辑位类型的输入端口是标准逻辑位类型的输入端口 s:;声明声明s是标准逻辑位类型的输入端口是标准逻辑位类型的输入端口 y:);声明声明y是标准逻辑位类型的输出端口是标准逻辑位类型的输出端口 端口名是实体每一个对外通道的名字;端口方向模式是端口名是实体每一个对外通道的名字;端口方向模式是通道上数据流动的方式,如输入或输出等;数据类型是端口通道上数据流动的方式,如输入或输出等;数据类型是端口上流动

21、数据的表达格式。上流动数据的表达格式。对语句中的所有操作数的数据类型都有严格的规定。一对语句中的所有操作数的数据类型都有严格的规定。一个实体通常有一个或多个端口,端口类似于原理图部件符号个实体通常有一个或多个端口,端口类似于原理图部件符号上的管脚。实体与外界交流的信息必须通过端口通道流入或上的管脚。实体与外界交流的信息必须通过端口通道流入或流出。流出。定义了定义了4种常用的端口模式:种常用的端口模式:输入的引脚,输入的引脚,输出的引脚,输出的引脚,带输出缓冲器并可以回读的引脚带输出缓冲器并可以回读的引脚(与引脚不同与引脚不同),双向引脚双向引脚(即引脚即引脚)。此模式的端口是普通输出端口。此模

22、式的端口是普通输出端口()加入三态加入三态输出缓冲器和输入缓冲器构成的。输出缓冲器和输入缓冲器构成的。端口描述中的数据类型主要有两类:端口描述中的数据类型主要有两类:位位()和位矢量和位矢量()。若端口的数据类型定义为,则其信号值是一个若端口的数据类型定义为,则其信号值是一个1位的二进位的二进制数,取值只能是制数,取值只能是0或或1;若端口数据类型定义为,则其信号;若端口数据类型定义为,则其信号值是一组二进制。值是一组二进制。INOUTBUFFERINOUT端口模式(方向)说明端口模式(方向)说明端口模式符号图 3.2.4 结构体结构体()结构体是用于描述设计实体的内部结构以及实体结构体是用于

23、描述设计实体的内部结构以及实体端口间的逻辑关系,在电路上相当于器件的内部电路端口间的逻辑关系,在电路上相当于器件的内部电路结构。一个完整的结构体由两个基本层次组成:结构。一个完整的结构体由两个基本层次组成:对数据类型、常数、信号、子程序和元件等元素的对数据类型、常数、信号、子程序和元件等元素的信号声明部分。信号声明部分。描述实体逻辑行为的,以各种不同的描述风格表达描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句。的功能描述语句。进程语句块语句体结构明说体构结述能描功体构结元件例化语句子程序调用语句信号赋值语句常数说明数据类型说明信号说明例化元件说明子程序说明结结构构体体构构造造图图1

24、.结构体的一般语句格式结构体的一般语句格式 结构体的语句格式如下:结构体的语句格式如下:结构体名结构体名 实体名实体名 信号声明语句信号声明语句;为内部信号名称及类型声明为内部信号名称及类型声明 功能描述语句功能描述语句 结构体名;结构体名;其中,实体名必须是所在设计实体的名字,而结构体名可其中,实体名必须是所在设计实体的名字,而结构体名可以由设计者自己选择,但当一个实体具有多个结构体时,结以由设计者自己选择,但当一个实体具有多个结构体时,结构体的取名不可重复。构体的取名不可重复。例如例如 设设a、b是或非门的输入端口,是或非门的输入端口,z是输出端口,是输出端口,y是结构是结构体内部信号,则

25、用描述的两输入端或非门的结构体为:体内部信号,则用描述的两输入端或非门的结构体为:1 y:;y b;结构体功能描述语句结构体功能描述语句 z y;1;2结构体说明语句结构体说明语句 结构体中的说明语句是对结构体的功能结构体中的说明语句是对结构体的功能描述语句中将要用到的信号描述语句中将要用到的信号()、数据类型、数据类型()、常数常数()、元件、元件()、函数、函数()和过程和过程()等加以说明的等加以说明的语句。语句。但在一个结构体中说明和定义的数据类但在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个型、常数、元件、函数和过程只能用于这个结构体中,若希望其能用于其他的实

26、体或结结构体中,若希望其能用于其他的实体或结构体中,则需要将其作为程序包来处理。构体中,则需要将其作为程序包来处理。3功能描述语句结构 功能描述语句结构含有五种不同类型,以并行方式工作。在每一语句结构的内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句。各语句结构的基本组成和功能分别是:(1)块语句()是由一系列并行执行语句构成的组合体,它的功能是将结构体中的并行语句组成一个或多个模块。(2)进程语句()定义顺序语句模块,用以将从外部获得的信号值,或内部的运算数据向其他的信号进行赋值。(3)信号赋值语句(赋值目标=表达式;)将设计实体内的处理结果向定义的信号或界面端口进行赋值。(4)子

27、程序调用语句用于调用一个已设计好的子程序。子程序有过程()和函数()两种类型。(5)元件例化()语句对其他的设计实体作元件调用说明,并将此元件的端口与其他的元件、信号或高层次实体的界面端口进行连接。例例1:半加器的描述半加器的描述;1164;库使用声明库使用声明 (;实体端口声明实体端口声明 );b;结构体功能描述语句结构体功能描述语句 b;例例2:2选选1数据选择器的描述数据选择器的描述;1164;21(:;s:;y:);21;21 y 0 b;例例3:锁存器的描述:锁存器的描述;1164;1(d:;:;);1;1 ()1 q;例例4 四位二进制加法计数器四位二进制加法计数器;1164;4

28、(;0 15);4;4 ()1 1 15 q=0;=0;14 q1;=1;q7S7S7S7S7S7S7S7S7S7S7S7S7S7S7S7S;例例6 奇偶校验器的描述奇偶校验器的描述;1164;(7 0););(a);0;n 0 7 a(n);yb)a;b;1;在设计实体中声明的数据类型、子程序或数据对象对于其他设计实体是在设计实体中声明的数据类型、子程序或数据对象对于其他设计实体是不可再利用的。为了使已声明的数据类型、子程序、元件能被其他设计实体不可再利用的。为了使已声明的数据类型、子程序、元件能被其他设计实体调用或共享,可以把它们汇集在程序包中。包中可以有多个元件和函数。调用或共享,可以把

29、它们汇集在程序包中。包中可以有多个元件和函数。打开打开1程序包的语句为:程序包的语句为:1 放在实体声明前面放在实体声明前面函数调用语句函数调用语句 函数名函数名 (关联参数表)(关联参数表)例如,调用求最大值函数的语句为:例如,调用求最大值函数的语句为:();元件例化语句元件例化语句第一步第一步 设计二输入与非门设计二输入与非门;1164;2 (;);2;2 2 cc1d1y);名字关联方式名字关联方式 u32 (z1);混合关联方式混合关联方式 41;3.2 语言要素语言要素3.2.1 文字规则文字规则1.数字型文字数字型文字(1)整数文字)整数文字 整数文字由数字和下划线组成。下划线用来

30、将整数文字由数字和下划线组成。下划线用来将数字分组,便于读出。数字分组,便于读出。例:例:5,678,156E2,45_234_287相当于相当于(45,234,287)(2)实数文字)实数文字 实数文字由数字、小数点和下划线组成。实数文字由数字、小数点和下划线组成。例:例:188.993,88_670_551.453_909相当于相当于(88,670,551.453,909)(3)以数字基数表示的文字)以数字基数表示的文字 以数字基数表示的文字的格式为:以数字基数表示的文字的格式为:数制数制#数值数值#例:例:10#170#;十进制数值十进制数值 16;十六进制数值十六进制数值 2#1101

31、0001#;二进制数值二进制数值 8#376#;八进制数字八进制数字(4)物理量文字)物理量文字 表示时间、长度等物理量。例如,表示时间、长度等物理量。例如,60s,100m。2.字符串文字字符串文字 字符串文字包括字符和字符串。字符是以单引号括起来的字符串文字包括字符和字符串。字符是以单引号括起来的数字、字母和符号。包括文字字符串和数值字符串。数字、字母和符号。包括文字字符串和数值字符串。(1)文字字符串)文字字符串文字字符串是用双引号括起来的一维字符数组。文字字符串是用双引号括起来的一维字符数组。例:例:“”“”,“A”,“A”都是文字字符串。都是文字字符串。(2)数值字符串)数值字符串

32、数值字符串也叫做矢量,格式为数值字符串也叫做矢量,格式为 数制基数符号数制基数符号“数值字符串数值字符串”例:例:B”111011110”;二进制数数组,位矢量组长度是二进制数数组,位矢量组长度是9 O”15”;八进制数数组,等效八进制数数组,等效B”001101”,位矢量组长度是,位矢量组长度是6 X”0”;十六进制数数组,等效十六进制数数组,等效B”101011010000”,位矢量组长度是,位矢量组长度是12 B、O、X分别是二进制、八进制、十六进制基数符号。分别是二进制、八进制、十六进制基数符号。3.标识符标识符 标识符是用户给常量、变量、信号、端口、子程序或参数定义的名字。标标识符是

33、用户给常量、变量、信号、端口、子程序或参数定义的名字。标识符的命名规则是:以字母开头,后跟若干字母、数字或单个下划线构成,识符的命名规则是:以字母开头,后跟若干字母、数字或单个下划线构成,但最后不能为下划线。但最后不能为下划线。例:例:,21,为合法标识符;为合法标识符;2,21,为错误的标识符。为错误的标识符。4.下标名下标名 下标名用于指示数组型变量或信号的某一元素。下标名的格式为:下标名用于指示数组型变量或信号的某一元素。下标名的格式为:标识符(表达式)标识符(表达式)例:例:b(3),a(m)都是下标名。都是下标名。5.段名段名段名是多个下标名的组合。段名的格式为:段名是多个下标名的组

34、合。段名的格式为:标识符(表达式标识符(表达式 方向方向 表达式)表达式)例:例:D(7 0);可表示数据总线可表示数据总线D7D0D(0 7);可表示数据总线可表示数据总线D0D73.2.2 数据对象数据对象 数据对象包括变量、常量和信号。1.变量 变量()是一个局部量。只能在进程()、函数()和过程()中声明和使用。变量不能将信息带出对它定义的当前设计单元。变量赋值的数据传输是立即发生的,不存在延时。变量要声明后才能使用,变量声明的语法格式为:变量名:数据类型:=初始值;例:;为整型变量 2;赋初值2 变量赋值语句的语法格式为:目标变量名:=表达式例:(0 7);100;“1010101”

35、15;a(3 6)(1,1,0,1);a(0 5)(2 7);2.信号信号 信号是描述硬件系统的基本数据对象。不仅可以容纳当信号是描述硬件系统的基本数据对象。不仅可以容纳当前值,也可以保持历史值,类似于连线。前值,也可以保持历史值,类似于连线。信号声明语句的语法格式为:信号声明语句的语法格式为:信号名:数据类型信号名:数据类型:=初值初值;0;为标准逻辑位信号为标准逻辑位信号 初值为初值为0;为位信号为位信号(15 0);为标准逻辑位矢量,矢量长度为为标准逻辑位矢量,矢量长度为16信号的赋值语句格式为:信号的赋值语句格式为:目标信号名目标信号名=表达式表达式例:例:x=9;z 5;目标信号需要

36、一定延迟时间,设置延迟目标信号需要一定延迟时间,设置延迟5信号与变量是有区别的。变量在进程、函数和过程中声明,信信号与变量是有区别的。变量在进程、函数和过程中声明,信号在结构体中声明。变量用号在结构体中声明。变量用“”“”号赋值,无延迟时间,而信号赋值,无延迟时间,而信号用号用“=”赋值,赋值过程有延迟时间。信号赋初值的符号赋值,赋值过程有延迟时间。信号赋初值的符号是是“”“”。3.常数常数常数的声明格式为:常数的声明格式为:常数名:数据类型:常数名:数据类型:=初值;初值;例:例:“010111”;5.0;:25;3.2.3 数据类型数据类型1(布尔布尔)数据类型数据类型 (假)和(假)和(

37、真),以枚举类型预定义,定义语句为:(真),以枚举类型预定义,定义语句为:();2(位)数据类型(位)数据类型 位数据类型包括位数据类型包括0和和1,定义语句为:,定义语句为:(0,1);3 位矢量是用双引号括起来的数字序列,如位矢量是用双引号括起来的数字序列,如“0011”,X”00”等。定义语句为:等。定义语句为:();其中,其中,表示数据范围未定界。在使用位矢量时,必须注明位宽,表示数据范围未定界。在使用位矢量时,必须注明位宽,例如:例如:(7 0);4(字符)数据类型(字符)数据类型 字符是用单引号括起来的码字符,如字符是用单引号括起来的码字符,如A,a,定义语句为:,定义语句为:Z

38、(,);5(整数)数据类型(整数)数据类型整数包括正整数、负整数和零。整数是整数包括正整数、负整数和零。整数是32位的带符号数。位的带符号数。6(自然数)和(正整数)数据类型(自然数)和(正整数)数据类型自然数是整数的一个子集,包括自然数是整数的一个子集,包括0和正整数。和正整数。7(实数)数据类型(实数)数据类型实数由正、负、小数点和数字组成,例如,实数由正、负、小数点和数字组成,例如,-1.02.51.0E38都是实数。都是实数。8(字符串)数据类型(字符串)数据类型字符串是用双引号括起来的字符序列,也称字符串矢量或字符串数组。字符串是用双引号括起来的字符序列,也称字符串矢量或字符串数组。

39、例如,例如,”A.”,”1010011”等是字符串。等是字符串。9(时间)数据类型(时间)数据类型时间是物理量数据,由整数数据和单位两部分组成。定义语句为:时间是物理量数据,由整数数据和单位两部分组成。定义语句为:-2147483647 21474836473.2.5 预定义的标准逻辑位和矢量预定义的标准逻辑位和矢量1(标准逻辑位)数据类型(标准逻辑位)数据类型 在中,标准逻辑位数据有九种逻辑值:在中,标准逻辑位数据有九种逻辑值:U(未初始化的)、(未初始化的)、X(强未知的)、(强未知的)、0(强(强0)、)、1(强(强1)、)、Z(高(高阻态)、阻态)、W(弱未知的)、(弱未知的)、L(弱

40、(弱0)、)、H(弱(弱1)和和-(忽略)。它们在(忽略)。它们在1164程序包中的定义语句:程序包中的定义语句:(U,X,0,1,Z,W,L,H,-);注意:数据类型中的数据是用大写字母定义的。注意:数据类型中的数据是用大写字母定义的。2.(标准逻辑矢量)数据类型(标准逻辑矢量)数据类型 标准逻辑矢量数据在数字电路中常用于表示总线。它们在标准逻辑矢量数据在数字电路中常用于表示总线。它们在1164程程序包中的定义语句:序包中的定义语句:();3.2.6 操作符操作符 的操作符包括逻辑操作符的操作符包括逻辑操作符()、关系操作符、关系操作符()、算术操作符、算术操作符()和符号操作符和符号操作符

41、()四四类。类。类型类型操作符操作符功能功能操作数数据类型操作数数据类型算算术术操操作作符符+加加整数整数-减减整数整数&并并一维数组一维数组*乘乘整数和实数整数和实数/除除整数和实数整数和实数取模取模整数整数求余求余整数整数逻辑左移逻辑左移或布尔型一维数组或布尔型一维数组逻辑右移逻辑右移或布尔型一维数组或布尔型一维数组算术左移算术左移或布尔型一维数组或布尔型一维数组算术右移算术右移或布尔型一维数组或布尔型一维数组逻辑循环左移逻辑循环左移或布尔型一维数组或布尔型一维数组逻辑循环右移逻辑循环右移或布尔型一维数组或布尔型一维数组*乘方乘方整数整数取绝对值取绝对值整数整数类型类型操作符操作符功能功能

42、操作数数据类型操作数数据类型关关系系操操作作符符=等于等于任何数据类型任何数据类型不等于不等于任何数据类型任何数据类型大于大于枚举与整数及对应的一维数组枚举与整数及对应的一维数组=大于等于大于等于枚举与整数及对应的一维数组枚举与整数及对应的一维数组逻逻辑辑操操作作符符与与、或或、与非与非、或非或非、异或异或、异或非异或非、非非、符号操符号操作符作符+正正整数整数-负负整数整数注意:注意:(1)要遵循在基本操作符间操作数是同数据类型的规则。)要遵循在基本操作符间操作数是同数据类型的规则。(2)要遵循操作数的数据类型必须与操作符要求的数据类)要遵循操作数的数据类型必须与操作符要求的数据类型完全一致

43、。型完全一致。(3)包含多种操作符的表达式中,需要用括号将这些运算)包含多种操作符的表达式中,需要用括号将这些运算分组。例如分组。例如(a b)c(4)在中有并置运算操作符)在中有并置运算操作符“&”,它用来完成一维数组的,它用来完成一维数组的位扩展。例如,将一维数组位扩展。例如,将一维数组s1,s2扩展为二维数组的语扩展为二维数组的语句是:句是:s12。3.3 的顺序语句的顺序语句 的基本描述语句包括顺序语句()和并行语句()。顺序语句只能出现在进程()、过程()和函数()中,按照程序书写的顺序自上而下、一条一条地执行。顺序语句可以描述数字逻辑系统中的组合逻辑电路和时序逻辑电路。的顺序语句有

44、赋值语句、流程控制语句、等待语句、子程序调用语句、返回语句和空操作语句等六类。3.3.1 赋值语句赋值语句1.变量赋值语句变量赋值语句变量赋值语句的格式为:变量赋值语句的格式为:目标变量名赋值源(表达式)目标变量名赋值源(表达式)例如例如 5.0。2.信号赋值语句信号赋值语句信号赋值语句的格式为:信号赋值语句的格式为:目标信号名目标信号名=赋值源赋值源例如例如 y=1。信号赋值语句可以出现在进程或结构体中,若出现在进程信号赋值语句可以出现在进程或结构体中,若出现在进程或子程序中则是顺序语句,若出现在结构体中则是并行语或子程序中则是顺序语句,若出现在结构体中则是并行语句。句。对于数组元素赋值,可

45、以采用下列格式:对于数组元素赋值,可以采用下列格式:(1 4);a=“1101”为信号为信号a整体赋值整体赋值 a(1 2)=“10”;为信号为信号a中的部分位赋值中的部分位赋值 a(1 2)(2 3);3.3.2 流程控制语句流程控制语句 流程控制语句有语句、流程控制语句有语句、语句、语句、语句和语句、语句、语句和语句五种。语句五种。1语句语句格式格式1为:为:条件句条件句 顺序语句;顺序语句;;格式格式2为:为:条件句条件句 顺序语句;顺序语句;顺序语句;顺序语句;;格式格式3 为:为:条件句条件句 顺序语句;顺序语句;条件句条件句 顺序语句;顺序语句;顺序语句;顺序语句;;语句中至少应有

46、1个条件语句,条件句必须由表达式构成。语句根据条件句产生的判断结果或,有条件的选择执行其后的顺序语句。例:图示硬件电路的语言描述:例:图示硬件电路的语言描述:;1164;1 (;);1;5 1 ();a ;y;5;输入输入输出输出a0 a1 a2 a3 a4 a5 a6 a7y2 y1 y0 x x x x x x x 0 x x x x x x 0 1 x x x x x 0 1 1 x x x x 0 1 1 1 x x x 0 1 1 1 1 x x 0 1 1 1 1 1 x 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0

47、 1 1 0 1 0 0 0 1 0 0 0例:例:8线线-3线优先编码器的设计。线优先编码器的设计。;1164;(7 0);(2 0);6 (a)(a(7)=0)y=“111”;(a(7)=0)y=“111”;(a(6)=0)y=“110”;(a(5)=0)y=“101”;(a(4)=0)y=“100”;(a(3)=0)y=“011”;(a(2)=0)y=“010”;(a(1)=0)y=“001”;(a(0)=0)y=“000”;y=“000”;6;2语句语句用语句描述用语句描述4选选1数据选择器数据选择器;1164;41 (s12;);41;7 41 s:(1 0);szzzz”不是操作符

48、,起到不是操作符,起到“”“”的作用。的作用。z=X;当当s的值不是选择值时,的值不是选择值时,z做未知处理做未知处理 ;7;s1 s2z0 00 11 01 1abcd3语句语句 是循环语句,可以使一组顺序语句重复执行,执行的次数由设定的循环参数确定。是循环语句,可以使一组顺序语句重复执行,执行的次数由设定的循环参数确定。语句有语句有3种格式,每种格式都可以用种格式,每种格式都可以用“标号标号”来给语句定位,但也可以不使用,用方来给语句定位,但也可以不使用,用方括号将括号将“标号标号”括起来,表示它为任选项。括起来,表示它为任选项。(1)语句)语句例:例:8位奇偶校验器的描述位奇偶校验器的描

49、述;1164;(7 0););8 (a);0;n 0 7 a(n);y;8;(2)语句语句;1164;1 (7 0););1;8 (a);0;0;n8 a(n);1;y;8;1时钟信号的描述时钟信号的描述 时钟信号的描述如图时钟信号的描述如图8.3所示,时钟上升沿和下降沿的到来表示发所示,时钟上升沿和下降沿的到来表示发生了一个事件,用生了一个事件,用表示,时钟的边沿变化可以用条件语句描述。例表示,时钟的边沿变化可以用条件语句描述。例如:如:时钟上升沿的到来可以写为时钟上升沿的到来可以写为“1”;时钟下降沿的到来可以写为时钟下降沿的到来可以写为“0”。也可以写做:也可以写做:时钟上升沿时钟上升沿

50、“1 0 ”;时钟下降沿时钟下降沿“0 1 ”。图图8.3 时钟脉冲的描述时钟脉冲的描述2时序逻辑电路的描述时序逻辑电路的描述例例8.14 带有异步复位、置位端的上升沿触发的带有异步复位、置位端的上升沿触发的D触发器。触发器。;1164;(:;Q:);()0 Q=1;0 Q=0;1 Q(2 0)(3 1);右移右移 (3)(3 1)(2 0);左移左移 (0);并行输入并行输入 ;Q;寄存器输出更新寄存器输出更新 ;互动抢答1、程序应包括三个基本组成部分,哪三个?说出名称和意义。19页2、这个语句是什么含意?作用?14页3、实体()是什么?由哪两部分组成?22页4、实体声明包含哪两部分?哪一个

51、在前面?23页5、结构体由几部分组成?功能是什么?在同一个实体中可以包含多个结构体吗?22、29页互动抢答互动抢答1、打开、打开1程序包的语句是什么?放在程序的什么位置?程序包的语句是什么?放在程序的什么位置?2、变量一个全局量,正确吗?能够在哪里声明和使用?、变量一个全局量,正确吗?能够在哪里声明和使用?48页页3、信号描述的是什么?类似于、信号描述的是什么?类似于 语言中哪个量?信号与变量区别是什么?语言中哪个量?信号与变量区别是什么?49页页4、数据类型和区别是什么?、数据类型和区别是什么?50页页5、算术操作符、关系操作符和逻辑操作符对数据类型的要求有什么不、算术操作符、关系操作符和逻辑操作符对数据类型的要求有什么不同?同?6、的顺序语句只能出现在什么中?顺序语句可以描述数字逻辑系统中、的顺序语句只能出现在什么中?顺序语句可以描述数字逻辑系统中逻辑电路?的顺序语句有哪六类?逻辑电路?的顺序语句有哪六类?56页页3.7 VHDL设计流程设计流程演讲完毕,谢谢观看!

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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