|
在程序運行過程中,其值不能被改變的量稱為常量。下面首先對在Verilog HDL語言中使用的數(shù)字及其
表示方式進行介紹。
一.?dāng)?shù)字
y 整數(shù):
在Verilog HDL中,整型常量即整常數(shù)有以下四種進制表示形式:
1) 二進制整數(shù)(b或B)
2) 十進制整數(shù)(d或D)
3) 十六進制整數(shù)(h或H)
4) 八進制整數(shù)(o或O)
數(shù)字表達方式有以下三種:
1) <位寬><進制><數(shù)字>這是一種全面的描述方式。
2) <進制><數(shù)字>在這種描述方式中,數(shù)字的位寬采用缺省位寬(這由具體的機器系統(tǒng)
決定,但至少32位)。
3) <數(shù)字>在這種描述方式中,采用缺省進制十進制。
在表達式中,位寬指明了數(shù)字的精確位數(shù)。例如:一個4位二進制數(shù)的數(shù)字的位寬為4,一個4位十六進制
數(shù)的數(shù)字的位寬為16(因為每單個十六進制數(shù)就要用4位二進制數(shù)來表示)。見下例:
8'b10101100 //位寬為8的數(shù)的二進制表示, 'b表示二進制
8'ha2 //位寬為8的數(shù)的十六進制,'h表示十六進制。
y x和z值:
在數(shù)字電路中,x代表不定值,z代表高阻值。一個x可以用來定義十六進制數(shù)的四位二進制數(shù)的狀態(tài),
八進制數(shù)的三位,二進制數(shù)的一位。z的表示方式同x類似。z還有一種表達方式是可以寫作?。在使用
case表達式時建議使用這種寫法,以提高程序的可讀性。見下例:
4'b10x0 //位寬為4的二進制數(shù)從低位數(shù)起第二位為不定值
4'b101z //位寬為4的二進制數(shù)從低位數(shù)起第一位為高阻值
12'dz //位寬為12的十進制數(shù)其值為高阻值(第一種表達方式)
12'd? //位寬為12的十進制數(shù)其值為高阻值(第二種表達方式)
8'h4x //位寬為8的十六進制數(shù)其低四位值為不定值
y 負數(shù):
一個數(shù)字可以被定義為負數(shù),只需在位寬表達式前加一個減號,減號必須寫在數(shù)字定義表達式的最前
面。注意減號不可以放在位寬和進制之間也不可以放在進制和具體的數(shù)之間。見下例:
-8'd5 //這個表達式代表5的補數(shù)(用八位二進制數(shù)表示)
8'd-5 //非法格式
y 下劃線(underscore_):
下劃線可以用來分隔開數(shù)的表達以提高程序可讀性。但不可以用在位寬和進制處,只能用在具體的數(shù)
字之間。見下例:
16'b1010_1011_1111_1010 //合法格式
8'b_0011_1010 //非法格式
當(dāng)常量不說明位數(shù)時,默認值是32位,每個字母用8位的ASCII值表示。
例:
10=32’d10=32’b1010
1=32’d1=32’b1
-1=-32’d1=32’hFFFFFFFF
‘BX=32’BX=32’BXXXXXXX…X
“AB”=16’B01000001_01000010
|
|