(精品)第二章VHDL语言元素.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(精品)第二章VHDL语言元素.ppt》由会员分享,可在线阅读,更多相关《(精品)第二章VHDL语言元素.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章第二章 VHDLVHDL语言元素语言元素 2.1VHDL语言的客体语言的客体2.2VHDL语言的数据类型语言的数据类型2.3VHDL数据类型转换数据类型转换2.4VHDL词法规则与标识符词法规则与标识符总总目录目录章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节2.1 VHDL2.1 VHDL语言的客体语言的客体 VHDLVHDL语言中,可以赋予一个质的对象就称为客体。语言中,可以赋予一个质的对象就称为客体。客体主要包括以下三种:变量(客体主要包括以下三种:变量(VARIABLEVARIABLE)、)、常量常量(CONSTANTCONSTANT)、)、信号(信号(SIGNAL
2、SIGNAL)。)。2.1.1常量(常量(CONSTANT)(常数常数)定定义义一一个个常常数数主主要要是是为为了了使使设设计计实实体体中中的的某某些些量量易易于于阅阅读读和和修修改改。常常数数说说明明就就是是对对某某一一常常数数名名赋赋予予一一个个固固定定的的值值。通通常常在在程程序序开开始始前前进进行行赋赋值值,该该值值的的数数据据类型在说明语句中说明。类型在说明语句中说明。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录例如:例如:CONSTANTVcc:REAL:=5.0;CONSTANTFbus:BIT_VECTOR:=“1011”;CONSTANTDelay
3、:TIME:=10ns;注注:常量是一个恒定不变的值,一旦做了数据类型和常量是一个恒定不变的值,一旦做了数据类型和赋赋值定义,它在程序中就不能再改变。值定义,它在程序中就不能再改变。常数说明语句格式为:常数说明语句格式为:CONSTANT常数名:数据类型常数名:数据类型:=表达式;表达式;章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录变变量量只只能能在在进进程程和和子子程程序序中中用用,是是一一个个局局部部量量,不不能能将将信信息息带带出出对对它它做做出出定定义义的的当当前前设设计计单单元元。与与信信号号不不同同,变变量量的的赋赋值值是是理理想想化化数数据据传传输输,
4、其其赋赋值值是是立立即即生生效效的的,不存在任何的延时行为。不存在任何的延时行为。变量定义语句的格式为:变量定义语句的格式为:VARIABLE变量名变量名:数据类型数据类型:约束条件约束条件:=初始值;初始值;例如:例如:VARIABLEn:INTEGERRANGE0TO15:=2;VARIABLEa:INTEGER;2.1.2变量(变量(VARIABLE)章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录变量赋值语句的格式为:变量赋值语句的格式为:目标变量名目标变量名:=表达式;表达式;赋赋值值语语句句“:=”右右边边的的表表达达式式必必须须与与目目标标变变量量具具有有
5、相相同同的的数数据据类类型型,这这个个表表达达式式可可以以是是一一个个运运算算表表达达式也可以是一个数值。式也可以是一个数值。变变量量赋赋值值语语句句左左边边的的目目标标变变量量可可以以是是单单值值变变量量,也也可以是变量的集合。可以是变量的集合。例如定义变量:例如定义变量:VARIABLEa,b:=REAL;VARIABLEx,y:=BIT_VECTOR(0TO7););章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录信号是电子电路内部硬件连接的抽象。它可以作为设信号是电子电路内部硬件连接的抽象。它可以作为设计实体中的并行语句模块间交流信息的通道。计实体中的并行语句模
6、块间交流信息的通道。信号及其相关的延时语句明显地体现了硬件系统的特信号及其相关的延时语句明显地体现了硬件系统的特征。征。信号定义语句的格式为:信号定义语句的格式为:SIGNAL信号名:数据类型:约束条件信号名:数据类型:约束条件:=表达式;表达式;例如:例如:SIGNALgnd:BIT:=0;SIGNALdata:STD_LOGIC_VECTOR(7DOWNTO0);2.1.3 信号(信号(SIGNAL)章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录信号赋值语句表达式为:信号赋值语句表达式为:目标信号名目标信号名=表达式;表达式;符符号号“=”表表示示赋赋值值操操作作
7、,即即将将数数据据信信息息传传入入。数数据据信信息息传传入入时时可可以以设设置置延延时时过过程程,这这与与器器件件的的实实际际传传播播延时十分接近。延时十分接近。因因此此信信号号值值的的代代入入采采用用“=”代代入入符符,而而不不是是像像变变量赋值时那样用量赋值时那样用“:”。但但信信号号定定义义时时初初始始赋赋值值符符号号“:”,即即仿仿真真的的时时间间坐标是从赋初始值开始的。坐标是从赋初始值开始的。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录注意注意:变量和信号都必须先定义变量和信号都必须先定义,后赋值。注意赋值符后赋值。注意赋值符“=”和和“:”的差别。的差别
8、。信号赋值语句举例:信号赋值语句举例:x=y;a=1;s1=s2AFTER10ns;信号与变量的区别:信号与变量的区别:信信号号和和变变量量是是VHDL中中重重要要的的客客体体,他他们们之之间间的的主主要区别有:要区别有:(1)信号赋值至少要有信号赋值至少要有延时;而变量赋值没有。延时;而变量赋值没有。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录(2)信信号号除除当当前前值值外外有有许许多多相相关关的的信信息息,如如历历史史信信息息和和投投影波形;而变量只有当前值。影波形;而变量只有当前值。(3)进程对信号敏感而不对变量敏感。进程对信号敏感而不对变量敏感。(4)信信
9、号号可可以以是是多多个个进进程程的的全全局局信信号号;而而变变量量只只在在定定义义他他们的顺序域可见(共享变量除外)。们的顺序域可见(共享变量除外)。(5)信号是硬件中连线的抽象描述,他们的功能是保存变信号是硬件中连线的抽象描述,他们的功能是保存变化的数据值和连接子元件,信号在元件的端口连接元件。化的数据值和连接子元件,信号在元件的端口连接元件。变量在硬件中没有类似的对应关系,他们用于硬件特变量在硬件中没有类似的对应关系,他们用于硬件特性的高层次建模所需要的计算中。性的高层次建模所需要的计算中。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录2.2 VHDL语言的数据类
10、型语言的数据类型 在对在对VHDLVHDL的客体进行定义时,都要指定其数据类型。的客体进行定义时,都要指定其数据类型。VHDLVHDL有多种标准的数据类型,并且允许用户自定义数据有多种标准的数据类型,并且允许用户自定义数据类型。类型。在在VHDLVHDL语言语义约束中,对类型的要求反映在赋值语语言语义约束中,对类型的要求反映在赋值语句的目标与源的一致,表达式中操作的一致,子类型中句的目标与源的一致,表达式中操作的一致,子类型中 约束与类型的一致等许多方面。约束与类型的一致等许多方面。2.2.1 VHDL2.2.1 VHDL中预定义的数据类型(编程者可直接使用)中预定义的数据类型(编程者可直接使
11、用)预定义类型在预定义类型在VHDLVHDL标准程序包标准程序包STANDARDSTANDARD中定义,在中定义,在 应用中自动包含进应用中自动包含进VHDLVHDL的源文件,不需要的源文件,不需要USEUSE语句显示语句显示 调用。调用。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录1.整数(整数(INTEGER)整数与数学中整数的定义相似,可以使用预定义运整数与数学中整数的定义相似,可以使用预定义运算操作符,如加算操作符,如加“”、减、减“”、乘、乘“”、除、除“”进行算术运算。在进行算术运算。在VHDL语言中,整数的表示范语言中,整数的表示范围为围为214748
12、36472147483647,即从,即从(2311)到到(2311)。2.实数(实数(REAL)在在进进行行算算法法研研究究或或实实验验时时,作作为为对对硬硬件件方方案案的的抽抽象象手手段段,常常常常采采用用实实数数四四则则运运算算。实实数数的的定定义义值值范范围围为为1.0E+38+1.0E+38。实实数数有有正正负负数数,书书写写时时一一定定要要有有小小数点。例如:数点。例如:1.0,+2.5,1.0E+38数据类型说明如下数据类型说明如下数据类型说明如下数据类型说明如下:章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录3.位位(BIT)用用来来表表示示数数字字系系
13、统统中中的的信信号号值值。位位值值用用字字符符0或或者者1(将将值值放放在在引引号号中中)表表示示。与与整整数数中中的的1和和0不不同同,1和和0仅仅表示一个位的两种取值。仅仅表示一个位的两种取值。位位数数据据可可以以用用来来描描述述数数字字系系统统中中总总线线的的值值。位位数数据据不不同于布尔数据,可以用转换函数进行转换。同于布尔数据,可以用转换函数进行转换。4.位矢量位矢量(BIT_VECTOR)位位矢矢量量是是用用双双引引号号括括起起来来的的一一组组数数据据。例例如如:“001100”,X“00bb”。在在这这里里位位矢矢量量前前面面的的X表表示示是是十十六六进进制制。用用位位矢矢量量数
14、数据据表表示示总总线线状状态态最最形形象象也也最最方方便便,在在VHDL程程序序中中将将会会经经常常遇遇到到。使使用用位位矢矢量量时时必必须须注注明明位宽,即数组中元素个数和排列位宽,即数组中元素个数和排列.例如:例如:SIGNALs1:BIT_VECTOR(15DOWNTO0););章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录5.布尔量布尔量(BOOLEAN)一个布尔量具有两种状态,一个布尔量具有两种状态,“真真”或者或者“假假”。虽然布尔量也是。虽然布尔量也是二值枚举量,但它和位不同没有数值的含义,也不能进行算术运算。二值枚举量,但它和位不同没有数值的含义,也不
15、能进行算术运算。它能进行关系运算。例如,它可以在它能进行关系运算。例如,它可以在if语句中被测试,测试结果产生语句中被测试,测试结果产生一个布尔量一个布尔量TRUE或者或者FALSE。6.字符字符(CHARACTER)字符也是一种数据类型,所定义的字符量通常用单引号括起来,字符也是一种数据类型,所定义的字符量通常用单引号括起来,如如a。一般情况下一般情况下VHDL对大小写不敏感,但对字符量中的大小对大小写不敏感,但对字符量中的大小写则认为是不一样的。例如,写则认为是不一样的。例如,B不同于不同于b。字符量中的字符可以是从字符量中的字符可以是从a到到z中的任一个字母,从中的任一个字母,从0到到9
16、中的任一中的任一个数以及空格或者特殊字符,如个数以及空格或者特殊字符,如$,%等等。等等。包集合包集合standard中给出了预定义的中给出了预定义的128个个ASC码字符,不能打印码字符,不能打印的用标识符给出。的用标识符给出。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录7.字符串字符串(STRING)字字符符串串是是由由双双引引号号括括起起的的一一个个字字符符序序列列,也也称称字字符符矢矢量量或或字字符符串串组组。字字符符串串常常用用于于程程序序的的提提示示和和说说明明。字字符符串举例如下:串举例如下:VATIABLEstring_1:STRING(0TO3);
17、string_1:=“abcd”;8.时间时间(TIME)时时间间是是一一个个物物理理量量数数据据。完完整整的的时时间间量量数数据据应应包包含含整整数数和和单单位位两两部部分分,而而且且整整数数和和单单位位之之间间至至少少应应留留一一个个空格的位置。例如空格的位置。例如55sec,2min等。等。字符字符1与整数与整数1和实数和实数1.0都是不相同的,当要明确都是不相同的,当要明确指出指出1的字符数据的字符数据时,则可写为:时,则可写为:CHARACTER(1)。)。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录9.错误等级错误等级(SEVERITYLEVEL)错错误
18、误等等级级类类型型数数据据用用来来表表征征系系统统的的状状态态,共共有有4种种:note(注注意意),warning(警警告告),error(出出错错),failure(失败)。失败)。在在系系统统仿仿真真过过程程中中可可以以用用这这4种种状状态态来来提提示示系系统统当当前前的的工工作作情情况况,从从而而使使设设计计人人员员随随时时了了解解当当前前系系统统工工作作的的情况,并根据系统的不同状态采取相应的对策。情况,并根据系统的不同状态采取相应的对策。在在包包集集合合STANDARD中中给给出出了了时时间间的的预预定定义义,其其单单位位为为fs,ps,ns,s,ms,sec,min和和hr。例例
19、如如:20s,100ns,3sec。在在系系统统仿仿真真时时,时时间间数数据据特特别别有有用用,用用它它可可以以表表示示信信号号延延时时,从从而而使使模模型型系系统统能能更更逼逼近近实实际际系系统统的的运运行行环境。环境。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录上述上述10种数据类型是种数据类型是VHDL语言中标准的数据类型,在语言中标准的数据类型,在编程时可以直接引用。如果用户需使用这编程时可以直接引用。如果用户需使用这10种以外的数据种以外的数据类型,则必须进行自定义。但大多数的类型,则必须进行自定义。但大多数的CAD厂商已在包集厂商已在包集合中对标准数据类
20、型进行了扩展。例如,数组型数据等,合中对标准数据类型进行了扩展。例如,数组型数据等,请同学们注意。请同学们注意。10.大大于于等等于于零零的的整整数数(自自然然数数)(NATURAL),正正整整数数(POSITIVE)这这两两种种数数据据是是整整数数的的子子类类,NATURAL类类数数据据为为取取0和和0以上的正整数;而以上的正整数;而POSITIVE则只能为正整数。则只能为正整数。章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录可以由用户定义的数据类型有:可以由用户定义的数据类型有:枚举(枚举(ENUMERATED)类型;类型;整数(整数(INTEGER)类型;类型;
21、实数(实数(REAL)、)、浮点数(浮点数(FLOATING)类型;类型;数组(数组(ARRAY)类型;类型;存取(存取(ACCESS)类型;类型;文件(文件(FILE)类型;类型;记录(记录(RECORDE)类型;类型;时间(时间(TIME)类型(物理类型)。类型(物理类型)。2.2.2用户自定义的数据类型用户自定义的数据类型 章目录章目录第一节第一节第二节第二节第三节第三节第四节第四节总总目录目录用户自定义数据类型方式用户自定义数据类型方式用户自定义数据类型方式用户自定义数据类型方式用户可采用类型定义语句用户可采用类型定义语句type和子类型定义语句和子类型定义语句subtype自定义数据
22、类自定义数据类型,如枚举类型、整数类型、数组类型、记录类型、时间类型及实数型,如枚举类型、整数类型、数组类型、记录类型、时间类型及实数类型等。类型等。1)type语句语句格式:格式:type数据类型名数据类型名is数据类型定义数据类型定义of基本数据类型;基本数据类型;或或type数据类型名数据类型名is数据类型定义;数据类型定义;例:例:typestatesis(read,write););signalpresent_state,next_state:states;再举一例自定义数据类型再举一例自定义数据类型week如下:如下:typeweekis(sun,mon,tue,wed,thu,f
23、ri,sat););signalhotel,home:week;上述对信号上述对信号hotel和和home的定义表明它们是自定义数据的定义表明它们是自定义数据类型类型week,因此这两个信号之间可以相互作用,因为,因此这两个信号之间可以相互作用,因为只有它们属于同一数据类型。只有它们属于同一数据类型。2)subtype语句语句subtype语语句句用用来来定定义义数数据据类类型型的的子子类类型型。VHDL规规定定任任何何基基本本数数据据类类型型均均可可定定义义其其子子类类型型。子子类类型型与与其其父父类类型型完完全兼容。全兼容。格式:格式:subtype子类型名子类型名is基本数据类型基本数据
24、类型range约束范围;约束范围;例:例:typeintegeris2147483647to+2147483647;typeiisintegerrange0to50;subtypenaturalisintegerrange0to+2147483647;subtypeciisirange0to30;subtypediiscirange0to10;subtypedataisbit_vector(3downto0);subtypelower_dataisdata;第第三三句句定定义义自自然然数数为为整整数数数数据据类类型型的的子子类类型型;第第四四句句定定义义ci为为i的的子子类类型型。第第五五句句
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 第二 VHDL 语言 元素
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内