版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系第六章第六章 Verilog行為語句行為語句6.1 過程語句過程語句 6.2 塊語句塊語句 6.3 賦值語句賦值語句6.4 條件語句條件語句 6.5 循環(huán)語句循環(huán)語句 6.6 編譯指示編譯指示語句語句 6.7 任務(wù)與函數(shù)語句任務(wù)與函數(shù)語句 6.8 順序執(zhí)行與并發(fā)執(zhí)行順序執(zhí)行與并發(fā)執(zhí)行第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系在一個(gè)模塊(在一個(gè)模塊(mo
2、dule)中,使用中,使用initial和和always語句的次數(shù)語句的次數(shù)是不受限制的。是不受限制的。initial語句常用于仿真中的初始化,語句常用于仿真中的初始化,initial過過程塊中的語句僅執(zhí)行一次;程塊中的語句僅執(zhí)行一次;always塊內(nèi)的語句則是不斷重復(fù)塊內(nèi)的語句則是不斷重復(fù)執(zhí)行的執(zhí)行的, ,直到仿真過程結(jié)束。直到仿真過程結(jié)束。6.1 過程語句過程語句(initial、always)第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系6.1.1 always過程語句使用模板過程語句使用模板:lalways ()begin/過程賦值過程
3、賦值/if-else,case,casex,casez選擇語句選擇語句/while,repeat,for循環(huán)循環(huán)/task,function調(diào)用調(diào)用endl“always”過程語句通常是帶有觸發(fā)條件的,觸發(fā)過程語句通常是帶有觸發(fā)條件的,觸發(fā)條件寫在敏感信號(hào)表達(dá)式中,只有當(dāng)觸發(fā)條件滿條件寫在敏感信號(hào)表達(dá)式中,只有當(dāng)觸發(fā)條件滿足時(shí),其后的足時(shí),其后的“begin-end”塊語句才能被執(zhí)行。塊語句才能被執(zhí)行。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系always的敏感信號(hào)表達(dá)式的敏感信號(hào)表達(dá)式:l敏感信號(hào)表達(dá)式又稱事件表達(dá)式或敏感信號(hào)列表,即當(dāng)敏
4、感信號(hào)表達(dá)式又稱事件表達(dá)式或敏感信號(hào)列表,即當(dāng)該表達(dá)式中變量的值改變時(shí),就會(huì)引發(fā)塊內(nèi)語句的執(zhí)行。該表達(dá)式中變量的值改變時(shí),就會(huì)引發(fā)塊內(nèi)語句的執(zhí)行。因此敏感信號(hào)表達(dá)式中應(yīng)列出影響塊內(nèi)取值的所有信號(hào)。因此敏感信號(hào)表達(dá)式中應(yīng)列出影響塊內(nèi)取值的所有信號(hào)。若有兩個(gè)或兩個(gè)以上信號(hào)時(shí),它們之間用若有兩個(gè)或兩個(gè)以上信號(hào)時(shí),它們之間用“or”連接。連接。l例如:例如:(a) a) / /當(dāng)信號(hào)當(dāng)信號(hào)a a的值發(fā)生改變的值發(fā)生改變 (a or b) a or b) / /當(dāng)信號(hào)當(dāng)信號(hào)a a或信號(hào)或信號(hào)b b的值發(fā)生改變的值發(fā)生改變 (posedge clock) /posedge clock) /當(dāng)當(dāng)clock
5、clock 的上升沿到來時(shí)的上升沿到來時(shí) (negedge clock) /negedge clock) /當(dāng)當(dāng)clock clock 的下降沿到來時(shí)的下降沿到來時(shí) (posedge clk or negedge reset) posedge clk or negedge reset) / /當(dāng)當(dāng)clkclk的上升沿到來或的上升沿到來或resetreset信號(hào)的下降沿到來信號(hào)的下降沿到來第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系敏感信號(hào)列表舉例敏感信號(hào)列表舉例44選選1 1數(shù)據(jù)選擇器數(shù)據(jù)選擇器:lmodule mux4_1(out,in0,
6、in1,in2,in3,sel);output out;input in0,in1,in2,in3;input1:0 sel; reg out;always (in0 or in1 or in2 or in3 or sel) /敏感信號(hào)列表敏感信號(hào)列表case(sel) 2b00: out=in0; 2b01: out=in1; 2b10: out=in2; 2b11: out=in3; default: out=2bx;endcaseendmodule第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系posedge和和negedge關(guān)鍵字關(guān)鍵字:
7、 :l對(duì)于時(shí)序電路,事件通常是由時(shí)鐘邊沿觸發(fā)的,為表達(dá)對(duì)于時(shí)序電路,事件通常是由時(shí)鐘邊沿觸發(fā)的,為表達(dá)邊沿這個(gè)概念,邊沿這個(gè)概念,Verilog提供了提供了posedge和和negedge關(guān)鍵字關(guān)鍵字來描述。來描述。l【例】同步置數(shù)、同步清零的計(jì)數(shù)器:【例】同步置數(shù)、同步清零的計(jì)數(shù)器:module count(out,data,load,reset,clk);output7:0 out; input7:0 data;input load,clk,reset; reg7:0 out;always (posedge clk) /clk上升沿觸發(fā)上升沿觸發(fā) begin if(!reset) out=
8、8h00; /同步清同步清0, 低電平有效低電平有效 else if(load) out=data; /同步預(yù)置同步預(yù)置 else out=out+1;/計(jì)數(shù)計(jì)數(shù) endendmodule第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系敏感信號(hào)列表中用逗號(hào)分隔敏感信號(hào)敏感信號(hào)列表中用逗號(hào)分隔敏感信號(hào)l在在Verilog-1995中,書寫敏感信號(hào)列表時(shí),通常用中,書寫敏感信號(hào)列表時(shí),通常用“or”來連接敏感信號(hào),如來連接敏感信號(hào),如:always (a or b or cin) cout, sum=a+b+cin; always (posedge
9、clk or negedge clr) if (!clr) q=0; else q=d;l在在Verilog-2001中可用逗號(hào)分隔敏感信號(hào),上面的語句可中可用逗號(hào)分隔敏感信號(hào),上面的語句可寫為寫為:always (a, b, cin) /用逗號(hào)分隔信號(hào)用逗號(hào)分隔信號(hào)cout, sum=a+b+cin;always (posedge clock, negedge clr)if (!clr) q=0;else q end_wave; join并行塊并行塊fork_joinbegin #50 r = h35; #50 r = hE2; #50 r = h00; #50 r = hF7; #50 -
10、 end_wave; end第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系賦值分為兩類賦值分為兩類:連續(xù)連續(xù)賦值語句賦值語句(Continuous Assignments)assign語句,用于對(duì)語句,用于對(duì)wire型變量賦值,是描述型變量賦值,是描述組合邏輯組合邏輯最最常用的方法之一。常用的方法之一。【例例】assign c=a&b; /a、b、c均為均為wire型變量型變量詳見詳見5.2。過程過程賦值語句賦值語句(Procedural Assignments)用于對(duì)用于對(duì)reg型變量賦值,有兩種方式:型變量賦值,有兩種方式:u非阻塞
11、非阻塞(non-blocking)賦值方式:賦值方式: 賦值符號(hào)為賦值符號(hào)為=,如,如 b = a ; u阻塞(阻塞(blocking)賦值方式:賦值方式: 賦值符號(hào)為賦值符號(hào)為=,如,如 b = a 6.3 過程過程賦值語句賦值語句第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系19191. 1. 非阻塞非阻塞賦值方式賦值方式 always (posedge clk) begin b = a ; c = b; endclkDFFcD QD QabDFF非阻塞非阻塞賦值賦值在塊結(jié)束時(shí)才在塊結(jié)束時(shí)才完成賦值操作!完成賦值操作!注:注:c c的值比的
12、值比b b的值落后一個(gè)時(shí)鐘周期!的值落后一個(gè)時(shí)鐘周期!非阻塞賦值與阻塞非阻塞賦值與阻塞賦值的區(qū)別賦值的區(qū)別第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系2. 2. 阻塞阻塞賦值方式賦值方式 always (posedge clk) begin b = a ; c = b; end阻塞阻塞賦值賦值在在該語句結(jié)束時(shí)就該語句結(jié)束時(shí)就完成賦值操作!完成賦值操作!clkDFFcD Qab注:注:在一個(gè)塊語句中,如果有多條阻塞在一個(gè)塊語句中,如果有多條阻塞賦值語句,在前賦值語句,在前面的賦值語句沒有完成之前,后面的語句就不能被面的賦值語句沒有完成之前,后面
13、的語句就不能被執(zhí)行,就像被阻塞了一樣,因此稱為執(zhí)行,就像被阻塞了一樣,因此稱為阻塞阻塞賦值方式賦值方式。 這里這里c的值與的值與b的值一樣的值一樣 !第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系非阻塞賦值仿真波形圖非阻塞賦值仿真波形圖 阻塞賦值仿真波形圖阻塞賦值仿真波形圖 第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系u非阻塞(非阻塞(non-blocking)賦值方式賦值方式 ( b= a):b的值被賦成新值的值被賦成新值a的操作的操作, 并不是立刻完成的,而是并不是立刻完成的,而是在塊結(jié)束
14、時(shí)才完成;在塊結(jié)束時(shí)才完成;塊內(nèi)的多條塊內(nèi)的多條賦值語句在塊結(jié)束時(shí)同時(shí)賦值;賦值語句在塊結(jié)束時(shí)同時(shí)賦值;硬件有對(duì)應(yīng)的電路。硬件有對(duì)應(yīng)的電路。u阻塞(阻塞(blocking)賦值方式賦值方式 ( b = a):b的值立刻被賦成新值的值立刻被賦成新值a;完成該賦值語句后才能執(zhí)行下一句的操作;完成該賦值語句后才能執(zhí)行下一句的操作;硬件沒有對(duì)應(yīng)的電路,因而綜合結(jié)果未知。硬件沒有對(duì)應(yīng)的電路,因而綜合結(jié)果未知。非阻塞非阻塞賦值與賦值與阻塞阻塞賦值方式的主要區(qū)別賦值方式的主要區(qū)別v在同一過程中對(duì)同一變量的賦值,兩者在同一過程中對(duì)同一變量的賦值,兩者不不允許允許混混合使合使用!用!v建議在可綜合風(fēng)格的模塊中使
15、用建議在可綜合風(fēng)格的模塊中使用非阻塞非阻塞賦值!賦值!第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系高級(jí)程序語句高級(jí)程序語句條件語句條件語句循環(huán)控制語句循環(huán)控制語句if-else條件條件case條件條件foreverrepeatwhilefor6.4 條件語句條件語句第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系6.4.1 if條件語句條件語句if-else語句使用方法有以下語句使用方法有以下3種:種:if(表達(dá)式)表達(dá)式) 語句語句1;if(表達(dá)式)表達(dá)式) 語句語句1; else 語句語句2
16、;if(表達(dá)式表達(dá)式1) 語句語句1; else if(表達(dá)式表達(dá)式2) 語句語句2; else if(表達(dá)式表達(dá)式3) 語句語句3; else if(表達(dá)式表達(dá)式n) 語句語句n; else 語句語句n+1;第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系【例例】 模為模為60的的BCD碼加法計(jì)數(shù)器碼加法計(jì)數(shù)器counter60.valwaysalways塊語句和塊語句和assignassign語句是并語句是并行執(zhí)行的!行執(zhí)行的!在在alwaysalways塊內(nèi)的語塊內(nèi)的語句是順序執(zhí)行的!句是順序執(zhí)行的!第六章第六章 Verilog行為語句行為
17、語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系使用使用if語句五點(diǎn)說明:語句五點(diǎn)說明:三種形式的三種形式的if語句中在語句中在if后面都有后面都有“表達(dá)式表達(dá)式”,一般為,一般為邏輯表達(dá)式或關(guān)系表達(dá)式,且必須放在括號(hào)中。邏輯表達(dá)式或關(guān)系表達(dá)式,且必須放在括號(hào)中。第二、第三種形式的第二、第三種形式的if語句中,在每個(gè)語句中,在每個(gè)else前面有一前面有一分號(hào),整個(gè)語句結(jié)束處有一分號(hào)。分號(hào),整個(gè)語句結(jié)束處有一分號(hào)。在在if和和else后面可以包含一個(gè)內(nèi)嵌的操作語句后面可以包含一個(gè)內(nèi)嵌的操作語句(如上例如上例),也可以有多個(gè)操作語句,此時(shí)用也可以有多個(gè)操作語句,此時(shí)用 begin和和end
18、這兩個(gè)這兩個(gè)關(guān)鍵詞將幾個(gè)語句包含起來成為一個(gè)復(fù)合塊語句。關(guān)鍵詞將幾個(gè)語句包含起來成為一個(gè)復(fù)合塊語句。允許允許“表達(dá)式表達(dá)式”簡(jiǎn)寫。如:簡(jiǎn)寫。如:if(en=1)可簡(jiǎn)寫為可簡(jiǎn)寫為if(en)。if語句的嵌套在語句的嵌套在if語句中又包含一個(gè)或多個(gè)語句中又包含一個(gè)或多個(gè)if語句稱為語句稱為if語句的嵌套。語句的嵌套。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系使用條件語句注意事項(xiàng)使用條件語句注意事項(xiàng)u應(yīng)注意列出所有條件分支,否則當(dāng)條件不滿足應(yīng)注意列出所有條件分支,否則當(dāng)條件不滿足時(shí),編譯器會(huì)生成一個(gè)鎖存器保持原值時(shí),編譯器會(huì)生成一個(gè)鎖存器保持原值
19、;u這一點(diǎn)可用于設(shè)計(jì)時(shí)序電路,如計(jì)數(shù)器:條件這一點(diǎn)可用于設(shè)計(jì)時(shí)序電路,如計(jì)數(shù)器:條件滿足時(shí)加滿足時(shí)加1,否則保持原值不變。,否則保持原值不變。u而在組合電路設(shè)計(jì)中,應(yīng)避免而在組合電路設(shè)計(jì)中,應(yīng)避免生成隱含鎖存器生成隱含鎖存器!有效的方法是在有效的方法是在if語句最后寫上語句最后寫上else項(xiàng);在項(xiàng);在case語語句最后寫上句最后寫上default項(xiàng)。項(xiàng)。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系例例設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器always (al or d) begin if(al) q=d; else q=0; end0dalqm
20、ultiplexer當(dāng)當(dāng)al為為0時(shí),時(shí),q等于等于0!如何正確使用如何正確使用if語句?語句?生成了不想要的鎖存器:生成了不想要的鎖存器:不會(huì)生成鎖存器:不會(huì)生成鎖存器:always (al or d) begin if(al) q=d; enddDFFD Qalq當(dāng)當(dāng)al為為0時(shí),時(shí),q保持原值!保持原值!第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系如何正確使用如何正確使用case語句?語句?always (sel1:0 or a or b) case(sel1:0) 2b00: q=a; 2b11: q=b; endcase生成了不想要
21、的鎖存器:生成了不想要的鎖存器:例例 設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器always (sel1:0 or a or b) case(sel1:0) 2b00: q=a; 2b11: q=b; default: q=b0; endcase不會(huì)生成鎖存器:不會(huì)生成鎖存器:v避免生成鎖存器的原則:避免生成鎖存器的原則:u如果用到如果用到if語句,最好寫上語句,最好寫上else項(xiàng);項(xiàng);u如果用到如果用到case語句,最好寫上語句,最好寫上default項(xiàng)。項(xiàng)。當(dāng)當(dāng)sel為為00或或11以外的以外的值時(shí),值時(shí),q保持原值!保持原值!第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程
22、系材料與能源學(xué)院微電子工程系6.4.2 case條件語句條件語句條件語句分為兩種:條件語句分為兩種:case語句和語句和if-else語句語句,它們都是順序它們都是順序語句,應(yīng)放在語句,應(yīng)放在“always”塊內(nèi)。塊內(nèi)。case語句的使用格式如下:語句的使用格式如下:case (敏感表達(dá)式)敏感表達(dá)式) 值值1: 語句語句1; /case分支項(xiàng)分支項(xiàng) 值值2: 語句語句2; 值值n: 語句語句n; default:語句語句n+1; endcaseu當(dāng)敏感表達(dá)式取不同的值時(shí)當(dāng)敏感表達(dá)式取不同的值時(shí), 執(zhí)行不同的語句。執(zhí)行不同的語句。u功能功能:當(dāng)某個(gè)當(dāng)某個(gè)(控制控制)信號(hào)取不同的值時(shí),給另一個(gè)(
23、輸出)信號(hào)取不同的值時(shí),給另一個(gè)(輸出)信號(hào)賦不同的值。常用于多條件譯碼電路信號(hào)賦不同的值。常用于多條件譯碼電路(如譯碼器、數(shù)如譯碼器、數(shù)據(jù)選擇器、狀態(tài)機(jī)、微處理器的指令譯碼據(jù)選擇器、狀態(tài)機(jī)、微處理器的指令譯碼)。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系BCD碼碼七段數(shù)碼管顯示譯碼器七段數(shù)碼管顯示譯碼器module decode4_7(decodeout,indec);module decode4_7(decodeout,indec);output6:0 decodeout;output6:0 decodeout;input3:0 ind
24、ec; reg6:0 decodeout;input3:0 indec; reg6:0 decodeout;always (indec)always (indec)begin case(indec) begin case(indec) / /用用casecase語句進(jìn)行譯碼語句進(jìn)行譯碼 4 4d0:decodeout=7b1111110;d0:decodeout=7b1111110; 4d1:decodeout=7b0110000; 4d1:decodeout=7b0110000; 4d2:decodeout=7b1101101; 4d2:decodeout=7b1101101; 4d3:de
25、codeout=7b1111001; 4d3:decodeout=7b1111001; 4d4:decodeout=7b0110011; 4d4:decodeout=7b0110011; 4d5:decodeout=7b1011011; 4d5:decodeout=7b1011011; 4d6:decodeout=7b1011111; 4d6:decodeout=7b1011111; 4d7:decodeout=7b1110000; 4d7:decodeout=7b1110000; 4d8:decodeout=7b1111111; 4d8:decodeout=7b1111111; 4d9:de
26、codeout=7b1111011; 4d9:decodeout=7b1111011; default: decodeout=7bx; default: decodeout=7bx;endcase endendcase endendmoduleendmodule第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系使用使用case語句說明:語句說明:其中其中“敏感敏感表達(dá)式表達(dá)式”又稱為又稱為“控制控制表達(dá)式表達(dá)式”,通常表示,通常表示為控制信號(hào)的某些位。為控制信號(hào)的某些位。值值1值值n稱為稱為分支分支表達(dá)式,用控制信號(hào)的具體狀態(tài)值表示,表達(dá)式,用控制
27、信號(hào)的具體狀態(tài)值表示,因此又稱為因此又稱為常量常量表達(dá)式。表達(dá)式。default項(xiàng)可有可無,一個(gè)項(xiàng)可有可無,一個(gè)case語句里只能有一個(gè)語句里只能有一個(gè)default項(xiàng)項(xiàng)!值值1值值n必須互不相同,否則矛盾。必須互不相同,否則矛盾。值值1值值n的位寬必須相等,且與控制表達(dá)式的位寬相同。的位寬必須相等,且與控制表達(dá)式的位寬相同。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系是是case語句的兩種變體語句的兩種變體u在在case語句中,分支表達(dá)式每一位的值都是確語句中,分支表達(dá)式每一位的值都是確定的(或者為定的(或者為0,或者為,或者為1););u
28、在在casez語句中,若分支表達(dá)式某些位的值為高語句中,若分支表達(dá)式某些位的值為高阻值阻值z(mì),則不考慮對(duì)這些位的比較;,則不考慮對(duì)這些位的比較;u在在casex語句中,若分支表達(dá)式某些位的值為語句中,若分支表達(dá)式某些位的值為z或不定值或不定值x,則不考慮對(duì)這些位的比較。,則不考慮對(duì)這些位的比較。u在分支表達(dá)式中,可用在分支表達(dá)式中,可用“?”來標(biāo)識(shí)來標(biāo)識(shí)x或或z。casez與與casex語句語句第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系module mux_z(out,a,b,c,d,select); output out; input a
29、,b,c,d; input3:0 select; reg out; /必須聲明必須聲明 always (select3:0 or a or b or c or d) begin casez (select) 4b?1: out = a; 4b?1? : out = b; 4b? 1? : out = c; 4b 1? : out = d; endcase endendmodule【例例】 用用casez描述的數(shù)據(jù)選擇器描述的數(shù)據(jù)選擇器這 里這 里 “ ? ”表示高阻態(tài)表示高阻態(tài)第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系6.5 循環(huán)語句循環(huán)語
30、句循環(huán)語句分為循環(huán)語句分為4種:種:for語句語句通過通過3個(gè)步驟來決定語句的循環(huán)執(zhí)行個(gè)步驟來決定語句的循環(huán)執(zhí)行:(1)給控制循環(huán)次數(shù)的變量賦初值。)給控制循環(huán)次數(shù)的變量賦初值。(2)判定循環(huán)執(zhí)行條件,若為假則跳出循環(huán);若為真,)判定循環(huán)執(zhí)行條件,若為假則跳出循環(huán);若為真,則執(zhí)行指定的語句后,轉(zhuǎn)到第(則執(zhí)行指定的語句后,轉(zhuǎn)到第(3)步。)步。(3)修改循環(huán)變量的值,返回第()修改循環(huán)變量的值,返回第(2)步)步repeat語句語句連續(xù)執(zhí)行一條語句連續(xù)執(zhí)行一條語句n次次while語句語句執(zhí)行一條語句,直到循環(huán)執(zhí)行條件不滿足;執(zhí)行一條語句,直到循環(huán)執(zhí)行條件不滿足;若一開始條件即不滿足,則該語句一次
31、也不能被執(zhí)行!若一開始條件即不滿足,則該語句一次也不能被執(zhí)行!forever語句語句無限連續(xù)地執(zhí)行語句,可用無限連續(xù)地執(zhí)行語句,可用disable語句語句中斷。中斷。generate語句語句Verilog-2001新增特性新增特性。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系for語句語句for語句的一般形式為:語句的一般形式為: for(表達(dá)式表達(dá)式1;條件表達(dá)式;表達(dá)式;條件表達(dá)式;表達(dá)式2) 語句語句它的執(zhí)行過程為:它的執(zhí)行過程為:執(zhí)行表達(dá)式執(zhí)行表達(dá)式1,實(shí)際是對(duì),實(shí)際是對(duì)循環(huán)變量賦初值循環(huán)變量賦初值;判斷條件表達(dá)式判斷條件表達(dá)式,若其
32、值為真若其值為真(非非0),則執(zhí)行,則執(zhí)行for語句中語句中指定語句,然后執(zhí)行下面的第指定語句,然后執(zhí)行下面的第3步;若為假步;若為假(0),則結(jié),則結(jié)束循環(huán),轉(zhuǎn)到第束循環(huán),轉(zhuǎn)到第步。步。 條件表達(dá)式實(shí)際為循環(huán)結(jié)束條條件表達(dá)式實(shí)際為循環(huán)結(jié)束條件件。在執(zhí)行指定的語句后,執(zhí)行表達(dá)式在執(zhí)行指定的語句后,執(zhí)行表達(dá)式2,然后繼續(xù)判斷條,然后繼續(xù)判斷條件表達(dá)式。件表達(dá)式。表達(dá)式表達(dá)式2實(shí)際為循環(huán)控制變量增量表達(dá)式實(shí)際為循環(huán)控制變量增量表達(dá)式。執(zhí)行執(zhí)行for語句下面的語句。語句下面的語句。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系module vote7
33、 ( pass,vote ); input 6:0 vote; output pass; reg2:0 sum; /sum/sum為為regreg型變量,用于統(tǒng)計(jì)贊成的人數(shù)型變量,用于統(tǒng)計(jì)贊成的人數(shù) integer i; reg pass; always (vote) begin sum = 0; /sum/sum初值為初值為0 0 for(i = 0;i=3d4) 第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系while語句語句while語句帶有一個(gè)條件控制表達(dá)式,在條件滿足時(shí),語句帶有一個(gè)條件控制表達(dá)式,在條件滿足時(shí),重復(fù)執(zhí)行過程語句。重復(fù)
34、執(zhí)行過程語句。while語句的格式如下:語句的格式如下: while(條件表達(dá)式條件表達(dá)式) 語句;語句; 或或 while(條件表達(dá)式條件表達(dá)式) begin 多條語句多條語句 ; end執(zhí)行過程:首先判讀條件表達(dá)式是否成立,如成立,執(zhí)行過程:首先判讀條件表達(dá)式是否成立,如成立,則執(zhí)行過程語句,然后再對(duì)條件表達(dá)式是否成立進(jìn)行則執(zhí)行過程語句,然后再對(duì)條件表達(dá)式是否成立進(jìn)行判斷,只要成立就再次執(zhí)行過程語句,如此不斷重復(fù),判斷,只要成立就再次執(zhí)行過程語句,如此不斷重復(fù),直到條件表達(dá)式不成立,程序退出直到條件表達(dá)式不成立,程序退出while語句。語句。MAX + PLUS II不支持,但不支持,但Q
35、uartus II支持!支持!第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系下例用下例用while循環(huán)語句對(duì)循環(huán)語句對(duì)rega這個(gè)這個(gè)8位二進(jìn)制數(shù)中值為位二進(jìn)制數(shù)中值為1的位的位進(jìn)行計(jì)數(shù)。進(jìn)行計(jì)數(shù)。 begin:count1s reg7:0 tempreg; count0; tempregrega; while (tempreg=1) begin if (tempreg 0) countcount+1; tempregtempreg1; end end第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程
36、系repeat語句語句repeat語句是重復(fù)執(zhí)行若干次的語句,帶有一個(gè)控制語句是重復(fù)執(zhí)行若干次的語句,帶有一個(gè)控制循環(huán)次數(shù)的常數(shù)或變量。循環(huán)次數(shù)的常數(shù)或變量。repeat語句的格式如下:語句的格式如下: repeat(表達(dá)式表達(dá)式) 語句;語句; 或或 repeat(表達(dá)式表達(dá)式) begin 多條語句多條語句 ; end在在repeat語句中,其表達(dá)式為常量表達(dá)式,用以控制語句中,其表達(dá)式為常量表達(dá)式,用以控制循環(huán)次數(shù)。所以,無需循環(huán)次數(shù)控制增量表達(dá)式及其循環(huán)次數(shù)。所以,無需循環(huán)次數(shù)控制增量表達(dá)式及其計(jì)算。計(jì)算。MAX + PLUS II不支持,但不支持,但Quartus II支持!支持!第
37、六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系module mult_repeat(outcome, a, b);parameter size=8; inputsize:1 a,b;output2*size:1 outcome;reg2*size:1 temp_a,outcome;regsize:1 temp_b;always (a or b) begin outcome=0; temp_a=a; temp_b=b; repeat(size) /repeat/repeat語句,語句,sizesize為循環(huán)次數(shù)為循環(huán)次數(shù) begin if(temp
38、_b1) / /* *如果如果temp_btemp_b的最低位為的最低位為1 1,就執(zhí)就執(zhí) 行下面的加法行下面的加法* */ / outcome=outcome +temp_a; temp_a=temp_a1; /操作數(shù)操作數(shù)b b右移一位右移一位 end endendmodule【例例】 用用repeat實(shí)現(xiàn)實(shí)現(xiàn)8位二進(jìn)制數(shù)乘法位二進(jìn)制數(shù)乘法移位相加操作移位相加操作8次,實(shí)現(xiàn)乘法運(yùn)算次,實(shí)現(xiàn)乘法運(yùn)算第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系forever語句語句forever語句是無限循環(huán)語句,該循環(huán)語句中的循環(huán)語句是無限循環(huán)語句,該循環(huán)
39、語句中的循環(huán)體部分將不斷重復(fù)執(zhí)行。該語句不需要聲明任何變體部分將不斷重復(fù)執(zhí)行。該語句不需要聲明任何變量。量。forever語句的格式如下:語句的格式如下: forever 語句;語句; 或或 forevere begin 多條語句多條語句 ; endforever循環(huán)語句常用于產(chǎn)生周期性的波形,作為仿循環(huán)語句常用于產(chǎn)生周期性的波形,作為仿真測(cè)試信號(hào)。它與真測(cè)試信號(hào)。它與always語句不同之處在于它不能語句不同之處在于它不能獨(dú)立寫在程序中,而必須寫在獨(dú)立寫在程序中,而必須寫在initial塊中。塊中。一般情況下是不可綜合的!常用在測(cè)試文件中一般情況下是不可綜合的!常用在測(cè)試文件中第六章第六章
40、Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系initial begin : Clocking clk = 0; #10 forever #10 clk = !clk; endinitial begin : Stimulus disable Clocking; / 停止時(shí)鐘停止時(shí)鐘 end 【例例】 用用forever產(chǎn)生時(shí)鐘信號(hào)產(chǎn)生時(shí)鐘信號(hào)第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系generate語句語句Verilog-2001新增了語句新增了語句“generate”,通過,通過generate循環(huán),可
41、以產(chǎn)生一個(gè)對(duì)象(比如一個(gè)循環(huán),可以產(chǎn)生一個(gè)對(duì)象(比如一個(gè)元件或一個(gè)模塊等)的多個(gè)例化,為可變尺度的元件或一個(gè)模塊等)的多個(gè)例化,為可變尺度的設(shè)計(jì)提供了方便。設(shè)計(jì)提供了方便。generate語句語句有有g(shù)enerate-for、generate-if、genetate-case。generate-for語句語句必須用必須用genvar關(guān)鍵字定義關(guān)鍵字定義for的索引變量;的索引變量;for的內(nèi)容必須用的內(nèi)容必須用beginend塊語句包起來,塊語句包起來,哪怕只有一句;哪怕只有一句;beginend塊必須起個(gè)名字。塊必須起個(gè)名字。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工
42、程系材料與能源學(xué)院微電子工程系module gray2bin1 ( bin, gray ); parameter SIZE = 8;input SIZE-1:0 bin; output SIZE-1:0 gray;genvar i;generatefor (i = 0;i=SIZE;i = i+1)begin:b1assingn bini=graySIZE-1:0 ;endendgenerateendmodule第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系等同于下面的語句:等同于下面的語句:assingn bin0=graySIZE-1:0
43、;assingn bin1=graySIZE-1:1 ;assingn bin2=graySIZE-1:2 ;assingn bin3=graySIZE-1:3 ;assingn bin4=graySIZE-1:4 ;assingn bin5=graySIZE-1:5 ;assingn bin6=graySIZE-1:6 ;assingn bin7=graySIZE-1:7 ;第五章第五章 Verilog運(yùn)算符與結(jié)構(gòu)描述語句運(yùn)算符與結(jié)構(gòu)描述語句 材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系6.6 編譯指示語句編譯指示語句Verilog允許在程序中使用特殊的編譯向?qū)г试S在程序中使用特殊的
44、編譯向?qū)? (Compiler Directives)語句,在編譯時(shí),通常先對(duì)語句,在編譯時(shí),通常先對(duì)這些向?qū)дZ句進(jìn)行這些向?qū)дZ句進(jìn)行“預(yù)處理預(yù)處理”,然后再將預(yù)處理,然后再將預(yù)處理的結(jié)果和源程序一起進(jìn)行編譯。的結(jié)果和源程序一起進(jìn)行編譯。向?qū)дZ句以符號(hào)向?qū)дZ句以符號(hào)“”開頭,以區(qū)別于其它語句。開頭,以區(qū)別于其它語句。Verilog提供了十幾條編譯向?qū)дZ句,如:提供了十幾條編譯向?qū)дZ句,如:define、ifdef、else、endif、restall等。比較常用的有等。比較常用的有define,include和和ifdef、else、endif等等。第六章第六章 Verilog行為語句行為語句
45、材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系宏替換宏替換definedefine語句用于將一個(gè)簡(jiǎn)單的名字或標(biāo)志符(或稱語句用于將一個(gè)簡(jiǎn)單的名字或標(biāo)志符(或稱為宏名)來代替一個(gè)復(fù)雜的名字或字符串,其使用為宏名)來代替一個(gè)復(fù)雜的名字或字符串,其使用格式為:格式為:define 宏名(標(biāo)志符)宏名(標(biāo)志符) 字符串字符串如:如:define sum ina+inb+inc+ind在上面的語句中,用簡(jiǎn)單的宏名在上面的語句中,用簡(jiǎn)單的宏名sum來代替了一個(gè)來代替了一個(gè)復(fù)雜的表達(dá)式復(fù)雜的表達(dá)式ina+inb+inc+ind,采用了這樣的定義采用了這樣的定義形式后,在后面的程序中,就可以直接用形式后
46、,在后面的程序中,就可以直接用sum來代來代表表達(dá)式表表達(dá)式ina+inb+inc+ind了。了。define不是不是Verilog HDL語句,不必在行末加分號(hào)!語句,不必在行末加分號(hào)!define屬于編譯指示語句,不參與綜合。屬于編譯指示語句,不參與綜合。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系關(guān)于宏定義的說明關(guān)于宏定義的說明宏名可以用宏名可以用大寫大寫字母,也可用字母,也可用小寫小寫字母表示;但字母表示;但建建議用大寫字母議用大寫字母,以與變量名相區(qū)別。,以與變量名相區(qū)別。 define語句可以寫在模塊定義的語句可以寫在模塊定義的外
47、面外面或或里面里面。宏。宏名的有效范圍為定義命令之后到源文件結(jié)束。名的有效范圍為定義命令之后到源文件結(jié)束。在引用已定義的宏名時(shí),必須在其前面加上符號(hào)在引用已定義的宏名時(shí),必須在其前面加上符號(hào)“ ”。 使用宏名代替一個(gè)字符串,可簡(jiǎn)化書寫,便于記憶,使用宏名代替一個(gè)字符串,可簡(jiǎn)化書寫,便于記憶,易于修改。易于修改。預(yù)處理時(shí)只是將程序中的宏名替換為字符串,不管預(yù)處理時(shí)只是將程序中的宏名替換為字符串,不管含義是否正確。只有在編譯宏展開后的源程序時(shí)才含義是否正確。只有在編譯宏展開后的源程序時(shí)才報(bào)錯(cuò)。報(bào)錯(cuò)。宏名和宏內(nèi)容必須在同一行中進(jìn)行聲明宏名和宏內(nèi)容必須在同一行中進(jìn)行聲明!第六章第六章 Verilog行
48、為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系文件包含文件包含includeinclude是文件包含語句,它可將一個(gè)文件全部是文件包含語句,它可將一個(gè)文件全部包含到另一個(gè)文件中。其格式為:包含到另一個(gè)文件中。其格式為:include “文件名文件名”使用使用include語句時(shí)應(yīng)注意以下幾點(diǎn):語句時(shí)應(yīng)注意以下幾點(diǎn):一個(gè)一個(gè)include語句只能指定一個(gè)被包含的文件。語句只能指定一個(gè)被包含的文件。include語句可以出現(xiàn)在源程序的任何地方。語句可以出現(xiàn)在源程序的任何地方。被包含的文件若與包含文件不在同一個(gè)子目被包含的文件若與包含文件不在同一個(gè)子目錄下,必須指明其路徑名。錄下
49、,必須指明其路徑名。文件包含允許多重包含,比如文件文件包含允許多重包含,比如文件1包含文件包含文件2,文件,文件2又包含文件又包含文件3等。等。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系 include “././halfadder.v” /雙引號(hào)內(nèi)是所包含文件的路徑和文件名雙引號(hào)內(nèi)是所包含文件的路徑和文件名 module adder; endmodule【例例】 假設(shè)假設(shè)halfadder.v文件的內(nèi)容如下:文件的內(nèi)容如下: module halfadder; endmodule 編 譯 時(shí) ,編 譯 時(shí) , a d d e r. v 中
50、 的中 的 i n c l u d e 這 一 行 將 由 文 件這 一 行 將 由 文 件“././halfadder.v”的內(nèi)容替代。的內(nèi)容替代。adder.v的內(nèi)容變成:的內(nèi)容變成: module halfadder; endmodule module adder; endmodule第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系 時(shí)間尺度時(shí)間尺度timescale在在Verilog HDL模型中,所有時(shí)延都用單位時(shí)間表示。模型中,所有時(shí)延都用單位時(shí)間表示。timescale定義時(shí)延單位和時(shí)延精度,其格式如下定義時(shí)延單位和時(shí)延精度,其格式
51、如下:timescale在這條命令中,時(shí)間單位參量是用來定義模塊中仿真時(shí)在這條命令中,時(shí)間單位參量是用來定義模塊中仿真時(shí)間和延遲時(shí)間的基準(zhǔn)單位的。時(shí)間精度參量是用來聲明間和延遲時(shí)間的基準(zhǔn)單位的。時(shí)間精度參量是用來聲明該模塊的仿真時(shí)間的精確程度的,該參量被用來對(duì)延遲該模塊的仿真時(shí)間的精確程度的,該參量被用來對(duì)延遲時(shí)間值進(jìn)行取整操作時(shí)間值進(jìn)行取整操作(仿真前仿真前),因此該參量又可以被稱,因此該參量又可以被稱為取整精度為取整精度。時(shí)間單位和時(shí)間精度參量值的數(shù)字必須是整數(shù),其有效時(shí)間單位和時(shí)間精度參量值的數(shù)字必須是整數(shù),其有效數(shù)字為數(shù)字為1,10,100,單位為,單位為s,ms,us,ns,ps,f
52、s。如果在同一個(gè)程序設(shè)計(jì)里,存在多個(gè)如果在同一個(gè)程序設(shè)計(jì)里,存在多個(gè)timescale命令,命令,則用最小的時(shí)間精度值來決定仿真的時(shí)間單位。則用最小的時(shí)間精度值來決定仿真的時(shí)間單位。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系例:例: timescale 1ns/100ps module andfunc (z, a, b); output z; input a, b; and #(5.22, 6.17) u1 (z, a, b); /規(guī)定上升及下降時(shí)延規(guī)定上升及下降時(shí)延 endmodule 時(shí)延單位是時(shí)延單位是ns,時(shí)延精度是,時(shí)延精度是0.
53、1ns/100ps)。因此,時(shí)。因此,時(shí)延值延值5.22對(duì)應(yīng)對(duì)應(yīng)5.2ns(精度為(精度為0.1ns),時(shí)延),時(shí)延6.17對(duì)應(yīng)對(duì)應(yīng)6.2ns。 若替換為若替換為timescale 10ns/1ns。 那么那么5.22對(duì)應(yīng)對(duì)應(yīng)52ns,6.17對(duì)應(yīng)為對(duì)應(yīng)為62ns。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系 條件編譯命令條件編譯命令ifdef、else、endififdef 宏名宏名程序段程序段 1 endif 它的作用是當(dāng)宏名已經(jīng)被定義過它的作用是當(dāng)宏名已經(jīng)被定義過(用用define命令定命令定義義),則對(duì)程序段,則對(duì)程序段1進(jìn)行編譯;否
54、則程序段進(jìn)行編譯;否則程序段1被忽略。被忽略。ifdef 宏名宏名 程序段程序段1 else 程序段程序段2 endif 它的作用是當(dāng)宏名已經(jīng)被定義過它的作用是當(dāng)宏名已經(jīng)被定義過(用用define命命令定義令定義),則對(duì)程序段,則對(duì)程序段1進(jìn)行編譯,程序段進(jìn)行編譯,程序段2將被忽略;否將被忽略;否則編譯程序段則編譯程序段2,程序段,程序段1被忽略。被忽略。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系6.7 任務(wù)與函數(shù)任務(wù)與函數(shù)任務(wù)任務(wù)( (task)和和函數(shù)函數(shù)( (function)語句分別用來由用戶定語句分別用來由用戶定義任務(wù)和函數(shù)。義任
55、務(wù)和函數(shù)。任務(wù)和函數(shù)往往是大的程序模塊中在任務(wù)和函數(shù)往往是大的程序模塊中在不同不同地點(diǎn)地點(diǎn)多次多次用到的用到的相同相同的程序段。的程序段。利用任務(wù)和函數(shù)可將一個(gè)很大的程序模塊分解為許利用任務(wù)和函數(shù)可將一個(gè)很大的程序模塊分解為許多較小的任務(wù)和函數(shù),便于理解和調(diào)試。多較小的任務(wù)和函數(shù),便于理解和調(diào)試。輸入、輸出和總線信號(hào)的值可以傳入、傳出任務(wù)和輸入、輸出和總線信號(hào)的值可以傳入、傳出任務(wù)和函數(shù)。函數(shù)。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系6.7.1 任務(wù)任務(wù)(task) 任務(wù)是一段封裝在關(guān)鍵詞任務(wù)是一段封裝在關(guān)鍵詞task-endtask之間
56、的程序。任之間的程序。任務(wù)是通過調(diào)用來執(zhí)行的,任務(wù)有接受數(shù)據(jù)的輸入端和返回?cái)?shù)務(wù)是通過調(diào)用來執(zhí)行的,任務(wù)有接受數(shù)據(jù)的輸入端和返回?cái)?shù)據(jù)的輸出端。另外,任務(wù)可以彼此調(diào)用,而且任務(wù)內(nèi)還可以據(jù)的輸出端。另外,任務(wù)可以彼此調(diào)用,而且任務(wù)內(nèi)還可以調(diào)用函數(shù)。調(diào)用函數(shù)。任務(wù)定義任務(wù)定義格式格式: task ; /注意無端口列表注意無端口列表 端口及數(shù)據(jù)類型聲明語句;端口及數(shù)據(jù)類型聲明語句; 其它語句;其它語句; endtask第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系定義任務(wù)的注意事項(xiàng):定義任務(wù)的注意事項(xiàng):第一行第一行task語句不能列出端口名列表。語句不能
57、列出端口名列表。在任務(wù)定義結(jié)構(gòu)中的行為語句部分可以有延時(shí)語句、敏感在任務(wù)定義結(jié)構(gòu)中的行為語句部分可以有延時(shí)語句、敏感事件控制語句等時(shí)間控制語句出現(xiàn)。事件控制語句等時(shí)間控制語句出現(xiàn)。一個(gè)任務(wù)可以沒有輸入、輸出和雙向端口,也可以有一個(gè)一個(gè)任務(wù)可以沒有輸入、輸出和雙向端口,也可以有一個(gè)或多個(gè)輸入、輸出和雙向端口。或多個(gè)輸入、輸出和雙向端口。一個(gè)任務(wù)可以沒有返回值,也可以通過輸出端口或雙向端一個(gè)任務(wù)可以沒有返回值,也可以通過輸出端口或雙向端口返回一個(gè)或多個(gè)返回值??诜祷匾粋€(gè)或多個(gè)返回值。在一個(gè)任務(wù)中可以條用其它的任務(wù)和函數(shù),也可以調(diào)用該在一個(gè)任務(wù)中可以條用其它的任務(wù)和函數(shù),也可以調(diào)用該任務(wù)本身。任務(wù)本
58、身。在任務(wù)定義結(jié)構(gòu)內(nèi)可以出現(xiàn)在任務(wù)定義結(jié)構(gòu)內(nèi)可以出現(xiàn)disable中止語句,這條語句的中止語句,這條語句的執(zhí)行將中斷正在執(zhí)行的任務(wù),程序?qū)⒎祷卣{(diào)用任務(wù)的地方執(zhí)行將中斷正在執(zhí)行的任務(wù),程序?qū)⒎祷卣{(diào)用任務(wù)的地方繼續(xù)向下執(zhí)行。繼續(xù)向下執(zhí)行。第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系【例例】: task read_mem; /任務(wù)定義,任務(wù)名任務(wù)定義,任務(wù)名read_mem input 15:0 address; /輸入端口說明輸入端口說明 output 31:0 data; /輸出端口說明輸出端口說明 reg 3:0 counter; /局部變量
59、說明局部變量說明 reg 7:0 temp 1:4 ; /局部變量說明局部變量說明 begin for ( counter=1; counter=4; counter=counter+1) temp counter =mem address+counter-1; data= temp1, temp2, temp3, temp4; end endtask /任務(wù)定義任務(wù)定義結(jié)尾結(jié)尾第六章第六章 Verilog行為語句行為語句材料與能源學(xué)院微電子工程系材料與能源學(xué)院微電子工程系任務(wù)的調(diào)用任務(wù)的調(diào)用 任務(wù)的調(diào)用是通過任務(wù)調(diào)用語句實(shí)現(xiàn)的,任務(wù)調(diào)用任務(wù)的調(diào)用是通過任務(wù)調(diào)用語句實(shí)現(xiàn)的,任務(wù)調(diào)用語句格式:語
60、句格式: (端口端口1,端口,端口2,.,端口,端口N);任務(wù)調(diào)用的注意事項(xiàng)任務(wù)調(diào)用的注意事項(xiàng):任務(wù)調(diào)用語句只能出現(xiàn)在過程塊內(nèi)。任務(wù)調(diào)用語句只能出現(xiàn)在過程塊內(nèi)。任務(wù)調(diào)用語句就像一條普通的行為語句那樣得到執(zhí)行。任務(wù)調(diào)用語句就像一條普通的行為語句那樣得到執(zhí)行。當(dāng)被調(diào)用的任務(wù)具有輸入或輸出端口時(shí),任務(wù)調(diào)用語當(dāng)被調(diào)用的任務(wù)具有輸入或輸出端口時(shí),任務(wù)調(diào)用語句必須包含端口名列表,這個(gè)列表內(nèi)的端口名順序和類句必須包含端口名列表,這個(gè)列表內(nèi)的端口名順序和類型必須與任務(wù)定義中端口說明部分的端口順序和類型一型必須與任務(wù)定義中端口說明部分的端口順序和類型一致。任務(wù)語句中的輸出端口類型必須是寄存器型變量。致。任務(wù)語句中的輸出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版寵物攝影服務(wù)合同樣本3篇
- 2025年度船舶安全航行培訓(xùn)及應(yīng)急預(yù)案合同4篇
- 二零二五年度礦產(chǎn)資源承包經(jīng)營(yíng)權(quán)租賃合同范本4篇
- 二零二五年度消防監(jiān)控系統(tǒng)設(shè)計(jì)與施工合同3篇
- 二零二五年度生物科技研發(fā)貸款合同3篇
- 預(yù)制塊施工方案
- 應(yīng)力釋放孔施工方案
- 宿遷家用坡道地坪施工方案
- 2025版木門行業(yè)市場(chǎng)營(yíng)銷戰(zhàn)略合作合同4篇
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編
- 湖北省黃石市陽新縣2024-2025學(xué)年八年級(jí)上學(xué)期數(shù)學(xué)期末考試題 含答案
- 硝化棉是天然纖維素硝化棉制造行業(yè)分析報(bào)告
- 央視網(wǎng)2025亞冬會(huì)營(yíng)銷方案
- 《00541語言學(xué)概論》自考復(fù)習(xí)題庫(含答案)
- 《無砟軌道施工與組織》 課件 第十講雙塊式無砟軌道施工工藝
- 江蘇省南京市、鹽城市2023-2024學(xué)年高三上學(xué)期期末調(diào)研測(cè)試+英語+ 含答案
- 2024新版《藥品管理法》培訓(xùn)課件
- 《阻燃材料與技術(shù)》課件 第7講 阻燃橡膠材料
- 爆炸物運(yùn)輸安全保障方案
- 江蘇省南京市2025屆高三學(xué)業(yè)水平調(diào)研考試數(shù)學(xué)試卷(解析版)
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)任務(wù)五 引發(fā)用戶共鳴外部條件的把控
評(píng)論
0/150
提交評(píng)論