3.3 VHDL语言要素
操作符重载: VHDL是强类型语言,相同类型的操作数才能进行操作。VHDL自身定义的算术和布尔函数仅对内部数据类型(standard 程序包中的数据类型)有效。即: 算术运算符+, -, <, >, <=, >= 仅对integer类型有效。 布尔运算符AND, OR, NOT仅对 bit 类型有效。 如: variable a,b,c :integer; variable x,y,z :bit; c := a + b; z := x and y; 问题:a, b, c 与 x, y, z 之间,或与 std_logic 等其它数据类型之间能否相互操作? 重载操作符 为了方便各种不同数据类型间的运算,VHDL允许用户对原有的基本操作符重新定义,赋予新的含义和功能,从而建立一种新的操作符,这就是重载操作符,定义这种操作符的函数成为重载函数。事实上,在程序包STD_LOGIC_UNSIGNED中已定义了多种可供不同数据类型间操作的算符重载函数。 Synopsys的程序包STD_LOGIC_ARITH、STD_LOGIC_UNSIGNED和STD_LOGIC_SIGNED中已经为许多类型的运算重载了算术运算符和关系运算符,因此只要引用这些程序包,SIGNED、UNSIGNED、STD_LOGIC和INTEGER之间即可混合运算;INTEGER、STD_LOGIC和STD_LOGIC_VECTOR之间也可以混合运算。
|
|||