文档介绍:第四章 VHDL语言要素
VHDL的文字规则
整数:整数都是十进制的数,如: 5, 678, 0, 156E2(=15600), 45_234_287 (=45234287)。
实数:实数也都是十进制的数,但必须带有小数点,如:, (=),,-2(=)。
以数制基数表示的文字:用这种方式表示的数由五个部分组成。第一部分是用十进制数标明数值进位的基数;第二部分是数制隔离符号“#”;第三部分是表达的数;第四部分是指数隔离符号“#”;第五部分是用十进制数表示的指数部分,这一部分如果为0可以省略。
SIGNAL d1,d2,d3,d4,d5: INTEGER RANGE 0 TO 255;
d1 <= 110#170#; ----(十进制表示,等于170)
d2 <= 16#FE#; ----(十六进制表示,等于254)
d3 <= 2#1111_1110#; ----(二进制表示,等于254)
d4 <= 8#376#; ----(八进制表示,等于254)
d5 <= 16#E#E1; ----(十六进制表示,等于2#1110000#,等于224)
字符是用单引号括起来的ASCII字符,可以是数值,也可以是符号或字母。如:‘Z’、‘1’、‘*’、‘a’等。
(1)文字字符串
文字字符串是用双引号括起来的一串文字,如:"ERROR" , "Both S and Q equal to 1" , "X" , ""。
(2)数位字符串
数位字符串也称为位矢量,是预定义的数据Bit的一位数组。
B:二进制基数符号,表示二进制位0或1,在字符串中的每位表示一个Bit。
O:八进制基数符号,在字符串中的每一个数代表一个八进制数,即代表一个3位(BIT) 的二进制数。
X:十六进制基数符号(0~F),代表一个十六进制数,即一个4位的二进制数。
例如:
data1 <= B"1_1101_1110"
data2 <= O"15"
data3 <= X"AD0"
data4 <= B"101_010_101_010"
data5 <= "101_010_101_010“
data6 <= "0AD0"
标识符是最常用的操作符,标识符可以是常数、变量、信号、端口、子程序或参数的名字。 VHDL基本标识符的书写遵循如下规则:
⑴有效的字符:包括26个大小写英文字母,数字包括0~9 以及下划线“_”。
⑵任何标识符必须以英文字母开头。
⑶必须是单一下划线“_”,且其前后都必须有英文字母或数字。
⑷标识符中的英语字母不分大小写。
下标名用于指示数组型变量或信号的某一元素。下标段名则用于指示数组型变量或信号的某一段元素。下标名的语句格式如下:
标识符(表达式)
例如:
SIGNAL a,b : BIT_VECTOR (0 TO 3);
SIGNAL z : BIT ;
z <= b(3);
VHDL数据对象(DATA OBJECTS)
在VHDL中,数据对象有三类,即变量(VARIABLE)、常量(CONSTANT)和信号(SIGNAL)。
(VARIABLE)
定义变量的一般表述如下:
VARIABLE变量名:数据类型:= 初始值;
例如:
VARIABLE a:INTEGER RANGE 0 TO 15;
VARIABLE d:STD_LOGIC;
目标变量名:= 表达式;
例如:
VARIABLE x,y : INTEGER RANGE 15 DOWNTO 0;
VARIABLE a,b : STD_LOGIC_VECTOR(7 DOWNTO 0);
x := 11 ;
y := 2 + x ;
a := b;
a (0 TO 5) := b(2 TO 7);