1、結(jié)構(gòu)描述形式
從電路結(jié)構(gòu)的角度來描述電路模塊,稱為結(jié)構(gòu)描述形式。
Verilog HDL中定義了26個有關(guān)門級的關(guān)鍵字,比較常用的有8個:
and nand nor or xor xnor buf not。
其調(diào)用格式為:
門類型 《實例名》(輸出,輸入1,輸入2,。。。。,輸入N)
eg. nand na01(na_out, a, b, c);
表示一個名字為na01的與非門,輸出為na_out,輸入為a,b,c。
2、數(shù)據(jù)流描述形式
對線型變量進行操作,就是數(shù)據(jù)流描述形式。數(shù)據(jù)流描述一般采用assign連續(xù)賦值語句來實現(xiàn),主要用于實現(xiàn)組合功能。連續(xù)賦值語句右邊所有的變量受持續(xù)監(jiān)控,只要這些變量有一個發(fā)生變化,整個表達式就被重新賦值給左端。
其格式為:
assign L_s = R_s;
3、行為描述形式
從功能和行為的角度來描述一個實際電路,稱為行為級描述形式。行為描述主要包括過程結(jié)構(gòu)、語句塊、時序控制、流控制四個方面,主要用于時序邏輯功能的實現(xiàn)。
1、過程結(jié)構(gòu)
過程結(jié)構(gòu)采用下面四種過程模塊來實現(xiàn):
initial模塊 always模塊 任務(wù)(task)模塊 函數(shù)(function)模塊
(1)initial模塊
在進行仿真時,一個initial模塊從模擬0時刻開始執(zhí)行,且在仿真過程中只執(zhí)行一次,在執(zhí)行完一次后,該initial就被掛起,不再執(zhí)行。如果仿真中有兩個initial模塊,則同時從0時刻開始執(zhí)行
initial模塊是面向仿真的,是不可綜合的,通常被用來描述測試模塊的初始化、監(jiān)視、波形生成等功能。
其格式為:
initial
begin/fork
塊內(nèi)變量說明
時序控制1 行為語句1;
。。。。
時序控制n 行為語句n;
end/join
其中,begin/end塊定義語句是串行執(zhí)行的,而fork/join塊語句中的語句定義是并行執(zhí)行的。
(2)always模塊
always模塊是一直重復執(zhí)行且可綜合的,多個always模塊是同時并行執(zhí)行的。其格式為:
always@(敏感時間列表)
begin/fork
塊內(nèi)變量說明
時序控制1 行為語句1;
。。。。
時序控制n 行為語句n;
end/join
2、語句塊
語句塊就是在initial或always模塊中位于begin.。.end/fork.。.join塊定義語句之間的一組行為語句。
(1)begin.。.end
串行塊,塊內(nèi)的語句逐次逐條順序執(zhí)行。
(2)fork.。.join
并行塊,塊內(nèi)的語句都是各自獨立地同時開始執(zhí)行。
3、時序控制
Verilog HDL提供兩種類型的顯示時序控制:延時控制和事件控制。
(1)延時控制
其格式如下:
# 延時數(shù) 表達式;
延時控制只能在仿真中使用,是不可綜合的。在綜合時,所有的延時控制都會被忽略。
(2)事件控制
分為兩種:邊沿觸發(fā)事件和電平觸發(fā)事件控制。
邊沿觸發(fā):上升沿posedge,下降沿negedge。
4、流控制
流控制語句包括3類:跳轉(zhuǎn)、分支、循環(huán)。
(1)if語句
else分支可缺省,但會生成本不期望的鎖存器,所以不要省去。
(2)case語句
其格式如下:
case(變量)
情況1:語句1 ;
。。。。。
情況n:語句n;
default: 語句n+1;
endcase
default語句缺省也會生成鎖存器,所以不要省去。
if語句是串行執(zhí)行的,case語句是并行執(zhí)行的,選用if語句要占用額外的硬件資源。
(3)循環(huán)語句
for循環(huán)。
while循環(huán)。
forever循環(huán):forever語句必須寫在initial模塊中,用于產(chǎn)生周期性波形。
repeat循環(huán):執(zhí)行指定的循環(huán)數(shù),如果循環(huán)計數(shù)表達式的值不確定(x或z),那么循環(huán)次數(shù)按0處理,其格式:
repeat(表達式)
begin
。。。。。
end
編輯:jq
-
Verilog HDL
+關(guān)注
關(guān)注
17文章
126瀏覽量
50424
原文標題:Verilog HDL語言(2) : Verilog HDL語言的描述語句
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論