Verilog 數(shù)值表示

2022-05-16 13:52 更新

數(shù)值種類

Verilog HDL 有下列四種基本的值來表示硬件電路中的電平邏輯:

  • 0:邏輯 0 或 "假"
  • 1:邏輯 1 或 "真"
  • x 或 X:未知
  • z 或 Z:高阻

?x? 意味著信號數(shù)值的不確定,即在實際電路里,信號可能為 1,也可能為 0。

?z? 意味著信號處于高阻狀態(tài),常見于信號(input, reg)沒有驅(qū)動時的邏輯結(jié)果。例如一個 pad 的 input 呈現(xiàn)高阻狀態(tài)時,其邏輯值和上下拉的狀態(tài)有關(guān)系。上拉則邏輯值為 1,下拉則為 0 。

整數(shù)數(shù)值表示方法

數(shù)字聲明時,合法的基數(shù)格式有 4 中,包括:十進制('d 或 'D),十六進制('h 或 'H),二進制('b 或 'B),八進制('o 或 'O)。數(shù)值可指明位寬,也可不指明位寬。

指明位寬:

4'b1011         // 4bit 數(shù)值
32'h3022_c0de   // 32bit 的數(shù)值

其中,下劃線 ?_? 是為了增強代碼的可讀性。

不指明位寬:

一般直接寫數(shù)字時,默認為十進制表示,例如下面的 3 種寫法是等效的:

counter = 'd100 ; //一般會根據(jù)編譯器自動分頻位寬,常見的為32bit
counter = 100 ;
counter = 32'h64 ;

負數(shù)表示

通常在表示位寬的數(shù)字前面加一個減號來表示負數(shù)。例如:

-6'd15  
-15

-15 在 5 位二進制中的形式為 5'b10001, 在 6 位二進制中的形式為 6'b11_0001。

需要注意的是,減號放在基數(shù)和數(shù)字之間是非法的,例如下面的表示方法是錯誤的:

4'd-2 //非法說明

實數(shù)表示方法

實數(shù)表示方法主要有兩種方式:

十進制:

30.123
6.0
3.0
0.001

科學(xué)計數(shù)法:

1.2e4         //大小為12000
1_0001e4      //大小為100010000
1E-3          //大小為0.001

字符串表示方法

字符串是由雙引號包起來的字符隊列。字符串不能多行書寫,即字符串中不能包含回車符。Verilog 將字符串當(dāng)做一系列的單字節(jié) ASCII 字符隊列。例如,為存儲字符串 "w3cschool.cn", 需要 12*8bit 的存儲單元。例如:

reg [0: 12*8-1]       str ;
initial begin
    str = "w3cschool.cn";
end


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號