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