欢迎来到天天文库
浏览记录
ID:19559087
大小:690.50 KB
页数:41页
时间:2018-10-03
《第三讲 vhdl字符及数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VHDL字符及数据类型1VHDL词法规则与标识符VHDL语言的数据类型VHDL的语言要素,作为硬件描述语言的基本结构元素,主要有:数据对象数据类型各类操作数及运算操作符VHDL词法规则与标识符而这些基本元素都是由VHDL文字组成,而VHDL文字主要包括词法构成(注释,数字,字符(串),下标)和标识符。词法规则注释为了提高VHDL源程序的可读性,在VHDL中可以写入注释。注释以--开头直到本行末尾的一段文字。在quartusⅡ中可以看见,敲入--之后,后面字体的颜色就发生改变。注释不是VHDL设计描述的一部分,编译后存入数据库
2、中的信息不包含注释。注释举例:Q:OUTSTD_LOGIC_VECTOR(0TO11);--A/D转换数据输出显示(行注释)--SRAM数据写入控制状态机(段注释)WRIT_STATE:PROCESS(clk,rst)--SRAM写入控制状态机时序电路进程数字型文字可以有多种表达方式:可以是十进制数,也可以表示为二进制、八进制或十六进制等为基的数,可以是整数,也可以是含有小数点的浮点数。数字十进制整数表示法:如:012578_456(=78456)2E6在相邻数字之间插入下划线,对十进制数值不产生影响,仅仅是为了提高文字的可
3、读性。允许在数字之前冠以若干个0,但不允许在数字之间存在空格。以基表示的数:用这种方式表示的数由五个部分组成。第一部分,用十进制数标明数值进位的基数;第二部分,数值隔离符号“#”;第三部分,表达的文字;第四部分,指数隔离符号“#”;第五部分,用十进制表示的指数部分,这一部分的数如果为0可以省去不写。SIGNALd1,d2,d3,d4,d5:INTEGERRANGE0TO255;d1<=10#170#;--(十进制表示,等于170)d2<=16#FE#;--(十六进制表示,等于254)d3<=2#1111_1110#;--(二
4、进制表示,等于254)d4<=8#376#;--(八进制表示,等于254)d5<=16#E#E1;--(十六进制表示,等于2#1110000#,等于224)实数:实数必须带有小数点。如:12.00.03.146_741_113.66652.6E-2物理量文字:综合器不支持物理量文字的综合。如:60s(秒)100m(米)10A(安培)字符和字符串字符用单引号引起来的ASCⅡ字符,可以是数值,也可以是符号或字母。如:‘E’,‘e’,‘$’,‘23’,‘A’…字符串一维的字符数组,需放在双引号中。有两种类型的字符串:文字字符串和位
5、矢量字符串。文字字符串是用双引号引起来的一串文字。如:“FALSE”,“X”,“THISISEND”位矢量字符串被双引号引起来的扩展的数字序列,数字序列前冠以基数说明符。基数符有“B”、“O”、“X”,他们的含义如下。B:二进制基数符号,表示二进制位0或1,在字符串中每一个位表示一个BIT。O:八进制基数符号,在字符串中每一个数代表一个八进制数,即代表一个3位(BIT)的二进制数。X:十六进制基数符号,代表一个十六进制数,即代表一个4位二进制数。例如:B“1011_1111”,O“152”,X“F821”下标名下标名用于指示
6、数组型变量或信号的某一元素。SIGNALa,b:BIT_VECTOR(0TO3);SIGNALs:INTEGERRANGE0TO2;SIGNALx,y:BIT;x<=a(s);y<=b(3);上例中,a(s)为一下标语句,s是不可计算的下标名,只能在特定情况下进行综合;b(3)的下标为3,可以进行综合。s,3均为下标!!标识符是最常用的操作符,可以是常数、变量、信号、端口、子程序或参数的名字。标识符规则是VHDL语言中符号书写的一般规则,为EDA工具提供了标准的书写规范。VHDL’87版本标识符为短标识符VHDL’93版标识
7、符为扩展标识符。标识符短标识符VHDL短标识符需遵守以下规则:必须以英文字母开头;英文字母、数字(0~9)和下划线都是有效的字符;短标识符不区分大小写;下划线(_)的前后都必须有英文字母或数字。一般的,在书写程序时,应将VHDL的保留字大写或黑体,设计者自己定义的字符小写,以使得程序便于阅读和检查。尽管VHDL仿真综合时不区分大小写,但一个优秀的硬件程序设计师应该养成良好的习惯。例:合法的标识符:S_MACHINE,present_state,sig3不合法的标识符:present-state,3states,cons_,_
8、now,entity,_sig为什么它们是不合法的?扩展标识符扩展标识符的识别和书写有下面的规则:用反斜杠来界定扩展标识符如control_machine,s_block等都是合法的扩展标识符扩展标识符允许包含图形符号和空格如s&33,legal$state是合法的扩展标识
此文档下载收益归作者所有