Verilog HDL 有下列四種基本的值來表示硬件電路中的電平邏輯:
?x
? 意味著信號數(shù)值的不確定,即在實(shí)際電路里,信號可能為 1,也可能為 0。
?z
? 意味著信號處于高阻狀態(tài),常見于信號(input, reg)沒有驅(qū)動時的邏輯結(jié)果。例如一個 pad 的 input 呈現(xiàn)高阻狀態(tài)時,其邏輯值和上下拉的狀態(tài)有關(guān)系。上拉則邏輯值為 1,下拉則為 0 。
數(shù)字聲明時,合法的基數(shù)格式有 4 中,包括:十進(jìn)制('d 或 'D),十六進(jìn)制('h 或 'H),二進(jìn)制('b 或 'B),八進(jìn)制('o 或 'O)。數(shù)值可指明位寬,也可不指明位寬。
4'b1011 // 4bit 數(shù)值
32'h3022_c0de // 32bit 的數(shù)值
其中,下劃線 ?_
? 是為了增強(qiáng)代碼的可讀性。
一般直接寫數(shù)字時,默認(rèn)為十進(jìn)制表示,例如下面的 3 種寫法是等效的:
counter = 'd100 ; //一般會根據(jù)編譯器自動分頻位寬,常見的為32bit
counter = 100 ;
counter = 32'h64 ;
通常在表示位寬的數(shù)字前面加一個減號來表示負(fù)數(shù)。例如:
-6'd15
-15
-15 在 5 位二進(jìn)制中的形式為 5'b10001, 在 6 位二進(jìn)制中的形式為 6'b11_0001。
需要注意的是,減號放在基數(shù)和數(shù)字之間是非法的,例如下面的表示方法是錯誤的:
4'd-2 //非法說明
實(shí)數(shù)表示方法主要有兩種方式:
30.123
6.0
3.0
0.001
科學(xué)計(jì)數(shù)法:
1.2e4 //大小為12000
1_0001e4 //大小為100010000
1E-3 //大小為0.001
字符串是由雙引號包起來的字符隊(duì)列。字符串不能多行書寫,即字符串中不能包含回車符。Verilog 將字符串當(dāng)做一系列的單字節(jié) ASCII 字符隊(duì)列。例如,為存儲字符串 "w3cschool.cn", 需要 12*8bit 的存儲單元。例如:
reg [0: 12*8-1] str ;
initial begin
str = "w3cschool.cn";
end
更多建議: