VHDL字符及数据类型.ppt_第1页
VHDL字符及数据类型.ppt_第2页
VHDL字符及数据类型.ppt_第3页
VHDL字符及数据类型.ppt_第4页
VHDL字符及数据类型.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第四章VHDL字符及数据类型,1,4.1VHDL文字,4.1.1数字,整数:整数都是十进制的数,如:5,678,0,156E2(=15600),45_23.14_287(=4523.14287),实数文:实数也都是十进制的数,但必须带有小数点,如:1.3.13.15,88_670_551.453.1_909(=88670551.453.1909),1.0,44.99E-2(=0.4499),以数制基数表示的文字:用这种方式表示的数由五个部分组成。SIGNALd1,d2,d3,d4,d5,:INTEGERRANGE0TO255;d1=110#170#;-(十进制表示,等于170)d2=16#FE#;-(十六进制表示,等于254)d3.1=2#1111_1110#;-(二进制表示,等于254)d4=8#376#;-(八进制表示,等于254)d5=16#E#E1;-(十六进制表示,等于2#1110000#,等于224),物理量文字(VHDL综合器不接受此类文字)。如:60s(60秒),100m(100米),k(千欧姆),177A(177安培),4.1.2字符串,(1)文字字符串,(2)数位字符串,ERROR,BothSandQequalto1,X,BB$CC,B:二进制基数符号,表示二进制位0或1,在字符串中的每位表示一个Bit。,O:八进制基数符号,在字符串中的每一个数代表一个八进制数,即代表一个3.1位(BIT)的二进制数。,X:十六进制基数符号(0F),代表一个十六进制数,即一个4位的二进制数。,data1=B1_1101_1110-二进制数数组,位矢数组长度是9data2=O15-八进制数数组,位矢数组长度是6data3.1=XAD0-十六进制数数组,位矢数组长度是12data4=B101_010_101_010-二进制数数组,位矢数组长度是12data5=101_010_101_010-表达错误,缺B。data6=0AD0-表达错误,缺X。,4.1.3标识符,下标名,格式:标识符(表达式),规则:l有效的字符:包括26个大小写英文字母,数字包括09以及下划线“_”l任何标识符必须以英文字母开头。l必须是单一下划线“_”,且其前后都必须有英文字母或数字。l标识符中的英语字母不分大小写。l允许包含图形符号(如回车符、换行符等),也允许包含空格符。,下例的两个下标名中一个是m,属不可计算,另一个是,属可计算的。SIGNALa,b:BIT_VECTOR(0TO3);SIGNALm:INTEGERRANGE0TO3;SIGNALy,z:BIT;y=a(m);-不可计算型下标表示z=b(3);-可计算型下标表示,4.2数据类型,标量型(ScalarType),复合类型(CompositeType),存取类型(AccessType),文件类型(FilesType),4.2.1VHDL的预定义数据类型,1.布尔(BOOLEAN)数据类型,2.位(BIT)数据类型,3.位矢量(BIT_VECTOR)数据类型,4.字符(CHARACTER)数据类型,5.整数(INTEGER)数据类型,6.实数(REAL)数据类型,7.字符串(STRING)数据类型,VARIABLEstring_var:STRING(1TO7);string_var:=abcd;,8.时间(TIME)数据类型,4.2.1VHDL的预定义数据类型,4.2.3其他预定义标准数据类型,1.无符号数据类型(UNSIGNEDTYPE),2.有符号数据类型(SIGNEDTYPE),4.2数据类型,十进制的8可以作如下表示:UNSIGNED(1000),两则无符号数据定义的示例:VARIABLEvar:UNSIGNED(0TO10);SIGNALsig:UNSIGNED(5TO0);,例如:SIGNED(0101)代表+5,5SIGNED(1011)代表5,4.2.4数组类型,4.2数据类型,限定性数组,限定性数组定义语句格式如下:TYPE数组名ISARRAY(数组范围)OF数据类型;,非限定性数组,非限制性数组的定义语句格式如下:TYPE数组名ISARRAY(数组下标名RANGE)OF数据类型;,4.2.4数组类型,【例4.1】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdecoder3to8ISPORT(input:INSTD_LOGIC_VECTOR(2DOWNTO0);output:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDdecoder3to8;ARCHITECTUREbehaveOFdecoder3to8ISBEGINPROCESS(input)BEGINoutput0);output(CONV_INTEGER(input)=1;ENDPROCESS;ENDbehave;,4.3VHDL操作符,表4-1VHDL操作符列表,表4-1VHDL操作符列表,接上页,表4-2VHDL操作符优先级,【例4.2】SIGNALa,b,c:STD_LOGIC_VECTOR(3.1DOWNTO0);SIGNALd,e,f,g:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALh,I,j,k:STD_LOGIC;SIGNALl,m,n,o,p:BOOLEAN;.a=bANDc;-b、c相与后向a赋值,a、b、c的数据类型同属4位长的位矢量d=eORfORg;-两个操作符OR相同,不需括号h=(iNANDj)NANDk;-NAND不属上述三种算符中的一种,必须加括号l=(mXORn)AND(oXORp);-操作符不同,必须加括号h=iANDjANDk;-两个操作符都是AND,不必加括号h=iANDjORk;-两个操作符不同,未加括号,表达错误a=bANDe;-操作数b与e的位矢长度不一致,表达错误h=iORl;-i的数据类型是位STD_LOGIC,而l的数据类型是.-布尔量BOOLEAN,因而不能相互作用,表达错误。,4.3.1逻辑操作符,4.3.2关系操作符,【例4-3】ENTITYrelational_ops_1ISPORT(a,b:INBITVECTOR(0TO3);m:OUTBOOLEAN);ENDrelational_ops_1;ARCHITECTUREexampleOFrelational_ops_1ISBEGINoutput”(大于)、“=”(大于等于)“=”(小于等于),4.3.3算术操作符,表4-3算术操作符分类表,1.求和操作符,【例4-4】VARIABLEa,b,c,d,e,f:INTEGERRANGE0TO255;.a:=b+c;d:=ef;,【例4-5】PROCEDUREadding_e(a:ININTEGER;b:INOUTINTEGER)IS.b:=a+b;,【例4-6】PACKAGEexample_arithmeticISTYPEsmall_INtISRANGE0TO7;ENDexample_arithmetic;USEWORK.example_arithmetic.ALL;ENTITYarithmeticISPORT(a,b:INSMALL_INT;c:OUTSMALL_INT);ENDarithmetic;ARCHITECTUREexampleOFarithmeticISBEGINc=a+b;ENDexample;,2.求积操作符,4.3.3算术操作符,3.符号操作符,求积操作符包括*(乘)、/(除)、MOD(取模)和REM(取余)四种操作符。,符号操作符“+”和“”的操作数只有一个,3.3.3算术操作符,4.混合操作符,【例4.7】SIGNALa,b:INTEGERRANGE8to7;SIGNALc:INTEGERRANGE0to15;SIGNALd:INTEGERRANGE0to3.1;a=ABS(b);c=2*d;,混合操作符包括乘方“*”操作符和取绝对值“ABS”操作符两种,【例4.8】LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYdecoder3to8ISport(input:INSTD_LOGIC_VECTOR(2DOWNTO0);outp

温馨提示

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

评论

0/150

提交评论