VHDL數(shù)據(jù)對象及各種數(shù)據(jù)
——存放各種類型數(shù)據(jù)的容器,包括變量、常量和信號
1. 變量(VARIABLE)
規(guī)則:只能在進程(PROCESS)、函數(shù)(FUNCTION)和過程(PROCEDURE)中說明和使用的局域量
定義格式:
VARIABLE 變量名:數(shù)據(jù)類型{:=初始值}
例如:VARIABLE a:INTEGER
VARIABLE b:INTEGER:=2;
變量賦值語句(區(qū)別端口賦值語句格式):
目標變量名:=表達式
例如:VARIABLE x,y:REAL
VARIABLE a,b:BIT VECTOR(0 TO 7);
x:=100.0;
y:=1.5+x;
a:=“1010101”
a(3 TO 6):=(‘1’,‘1’,‘0’,‘1’);
a(0 TO 5):=b(2 TO 7);
a(7) : = ‘0’;
注意事項:
變量是一個局部量,不能將信息帶出對它作出定義的當前設計單元。變量的賦值是一種理想化的數(shù)據(jù)傳輸,是立即發(fā)生,不存在任何延時的行為。
VHDL語言規(guī)則不支持變量附加延時語句
變量賦值過程中必須保持數(shù)據(jù)類型的一致
2. 信號(SIGNAL)
規(guī)則:信號是在結構體(ARCHITECTURE)、程序包(PACKAGE)和實體中說明的全局量。
定義格式:SIGNAL 信號名:數(shù)據(jù)類型:=初值;
例如:SIGNAL temp:STD LOGIC:=‘0’;
SIGNAL flaga,flagb:BIT
SIGNAL data:STD LOGIC VECTOR(15 DOWNTO 0);
信號賦值語句:
目標信號名<=表達式
例如:x<=9;
y<=x;
z<=x AFTER 5ns;
信號具有全局性特征。
信號的數(shù)據(jù)傳入不是即時的,需要一定延時時間。
信號與變量的區(qū)別:
(1)使用場合不同;(變量:進程;信號:結構體)
(2)變量用“:=”號賦值,其值被立即使用(無時間延遲);而信號用“<=”賦值,其值可以附加延遲。
3. 常數(shù)(CONSTANT)
規(guī)則:可以出現(xiàn)在實體、結構體、程序包、塊、進程和子程序。常數(shù)在程序前部定義,且一旦被賦值就不能再改變。
定義格式:
CONSTANT 常數(shù)名:數(shù)據(jù)類型:=初值;
例如:
CONSTANT fbus:BIT VECTOR:=“010111”;
CONSTANT Vcc:REAL:=5.0;
CONSTANT dely:TIME:=25ns;
常量具有全局性意義。
常量數(shù)據(jù)類型必須與表達式的數(shù)據(jù)類型一致。常量的數(shù)據(jù)類型可以是標量類型或復合類型,但不能是文件類型(file)或存取類型(Access)。
來源:ks991次