VHDL数据类型(vhdl语法).ppt
文本预览下载声明
VHDL数据类型;二、VHDL数据类型与数据对象; VHDL语言中的基本数据类型; 逻辑数据类型;标准逻辑类型
Type Std_Logic Is
( ‘U’, --Undefined(未初始化)
‘X’ , --Forcing Unknown(强未知)
‘0’ , --Forcing 0(强0)
‘1’ , --Forcing 1(强1)
‘Z’ , --Hign Impedance(高阻)
‘W’, --Weak Unknown(弱未知)
‘L’ , --Weak 0(弱0)
‘H’ , --Weak 1(弱1)
‘-’ , --Don’t Care(忽略)
)
; 逻辑序列
;Signal data: Std_Logic_Vector( 7 downto 0);
Signal addr: Bit_Vector ( 0 to 3);
; 序列的分解与合成
Signal A: Std_Logic_Vector( 3 downto 0);
Signal B: Std_Logic_Vector( 0 to 3);
Signal C: Std_Logic_Vector( 0 to 1);
Signal D: Std_Logic_Vector( 1 downto 0);
C= A( 2 downto 1);
B= A(3) D ‘1’;; 数值类型
(1)整数
Type Integer Is Range -231 ~ 231-1
限定整数取值范围的方法:
Signal A: Integer;
Signal B: Integer Range 0 to 7;
Signal C: Integer Range -1 to 1;; 无符号数 Unsigned
与标准逻辑序列相似,声明时必须指明其
位数。
Signal A : Unsigned(3 downto 0);
Signal B : Unsigned( 7 downto 0);
注意: 必须使用downto形式。;(2)实数
Type Real Is Range -1.7E38 to 1.7E38;
实数类型的表示可用科学计数形式或者带小数点的形式。; VHDL中的运算符;关系运算符:
= 等于/= 不等于 小于= 小于或等于 大于= 大于或等于
注:其中‘=’操作符也用于表示信号的赋值操作。
; 用户自定义数据类型:
(1) 列举数据类型
Type 列举名称 is (元素1,元素2,…)
例子:
Type state is(S0,S1,S2,S3);
Signal A: state;
;(2) 数组类型
Type 数组名称 is Array(范围) of 数据类型;
例子:
Type Byte is Array(7 downto 0) of Bit;
Signal sdo: Byte;
; 数据类型的转换
在VHDL语言里,不同类型的数据信号之间不能互相赋值。当需要不同类型数据之间传递信息时,就需要类型转换函数将其中的一种类型数据转换为另一中数据类型后,再进行信号的传递。
;例如:
Signal Y : Std_logic_vector(7 downto 0);
Signal X : Integer range 0 to 255;
Y= CONV_STD_LOGIC_VECTOR(X,8);
;CONV_INTEGER
将数据类型 UNSIGNED, SIGNED转换为INTEGER 类型.
CONV_UNSIGNED
将数据类型INTEGER, SIGNED转换为UNSIGNED 类型.
CONV_SIGNED
将数据类型INTEGER, UNSIGNED转换为SIGNED类型.
CONV_STD_LOGIC_VECTOR
将数据类型INTEGER, UNSIGNED, SIGNED, STD_LOGIC转换为STD_LOGIC_VECTOR 类型. ; 数据对象;(1) 常量
定义格式:
Constant 常量名称: 数据类型 :=给定值;
常量通常来来定义延迟和功耗等参数。注意!常数定义的同时进行赋初值。常数可以在实体说明、结构体描述中使用。;library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; --必需定义+
entity exam1 is
port (ip : in std_logic_vector(3
显示全部