規(guī)范建議
以下是一些書寫規(guī)范的要求:
1
、用有意義的有效的名字如
sum
,、
cpu_addr
等,。
2
、用下劃線區(qū)分詞語組合,,如
cpu_addr
,。
3
、采用一些前綴或后綴,,比如:時鐘采用
clk
前綴:
clk_50m
,,
clk_cpu
;低電平采用
_n
后綴:
enable_n
,;
4
,、統(tǒng)一縮寫,如全局復位信號
rst
,。
5
,、同一信號在不同層次保持一致性,如同一時鐘信號必須在各模塊保持一致,。
6
,、自定義的標識符不能與保留字(關鍵詞)同名。
7
,、參數(shù)統(tǒng)一采用大寫,,如定義參數(shù)使用
SIZE
。
???????Verilog 數(shù)字進制格式包括二進制,、八進制,、十進制和十六進制,一般常用的為二進制,、十進制和十六進制,。
二進制表示如下:
4’b0101
表示
4
位二進制數(shù)字
0101
,;
十進制表示如下:
4’d2
表示
4
位十進制數(shù)字
2
(二進制
0010
);
十六進制表示如下:
4’ha
表示
4
位十六進制數(shù)字
a
(二進制
1010
),,十六進制的計數(shù)方式為
0
,
1
,,
2…9,,
a
,
b
,,
c
,,
d
,
e
,,
f
,,最大計數(shù)為
f
(
f
:十進制表示為
15
)。
當代碼中沒有指定數(shù)字的位寬與進制時,,默認為
32
位的十進制,,比如
100
,實際上表示的值為
32’d100
,。
在
Verilog 語法中,,主要有三大類數(shù)據(jù)類型,即寄存器類型,、線網(wǎng)類型和參數(shù)類型,。從名稱中,我們可
以看出,,真正在數(shù)字電路中起作用的數(shù)據(jù)類型應該是寄存器類型和線網(wǎng)類型,。
1)
寄存器類型
寄存器類型表示一個抽象的數(shù)據(jù)存儲單元,它只能在
always
語句和
initial 語句中被賦值,,并且它的值
從一個賦值到另一個賦值過程中被保存下來,。如果該過程語句描述的是時序邏輯,即
always 語句帶有時鐘信號,,則該寄存器變量對應為寄存器,;如果該過程語句描述的是組合邏輯,即 always 語句不帶有時鐘信號,,則該寄存器變量對應為硬件連線,;寄存器類型的缺省值是 x(未知狀態(tài))。寄存器數(shù)據(jù)類型有很多種,,如 reg,、integer、real 等,,其中最常用的就是 reg 類型,,它的使用方法如下:
2)
線網(wǎng)類型
線網(wǎng)表示
Verilog 結構化元件間的物理連線。它的值由驅動元件的值決定,例如連續(xù)賦值或門的輸出,。
如果沒有驅動元件連接到線網(wǎng),,線網(wǎng)的缺省值為
z(高阻態(tài))。線網(wǎng)類型同寄存器類型一樣也是有很多種,,
如
tri
和
wire
等,,其中最常用的就是
wire
類型,它的使用方法如下:
3)
參數(shù)類型
我們再來看下參數(shù)類型,,參數(shù)其實就是一個常量,,常被用于定義狀態(tài)機的狀態(tài)、數(shù)據(jù)位寬和延遲大小
等,,由于它可以在編譯時修改參數(shù)的值,,因此它又常被用于一些參數(shù)可調的模塊中,使用戶在實例化模塊時,,可以根據(jù)需要配置參數(shù),。在定義參數(shù)時,我們可以一次定義多個參數(shù),,參數(shù)與參數(shù)之間需要用逗號隔
開,。這里我們需要注意的是參數(shù)的定義是局部的,只在當前模塊中有效,。它的使用方法如下:
Verilog 中的運算符按照功能可以
為下述類型:
1
,、算術運算符、
2
,、關系運算符,、
3
、邏輯運算符,、
4
,、條件運算符、
5,、位運算符,、 6、移位運算符,、
7
,、拼接運算符。
1)
算術運算符
2)
關系運算符
3)
邏輯運算符
4)
條件運算符
5)
位運算符
6)
移位運算符
7)
拼接運算符
8)
運算符的優(yōu)先級
|
|