版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、西安理工大學(xué)電子工程西安理工大學(xué)電子工程系系if_else語(yǔ)句語(yǔ)句 if語(yǔ)句是用來(lái)斷定所給定的條件能否滿足,根據(jù)斷定的結(jié)果真或假)決議執(zhí)行給出的兩種操作之一 。Verilog 言語(yǔ)提供了三種方式的if語(yǔ)句: if (表達(dá)式 語(yǔ)句1; if (表達(dá)式 語(yǔ)句1; else 語(yǔ)句2; if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3; . else if(表達(dá)式m) 語(yǔ)句m; else 語(yǔ)句n;if_else語(yǔ)句語(yǔ)句六點(diǎn)闡明 :三種方式的if語(yǔ)句中在if后面都有“表達(dá)式,普通為邏輯表達(dá)式或關(guān)系表達(dá)式。系統(tǒng)對(duì)表達(dá)式的值進(jìn)展判別,假設(shè)為0,x,z,按“
2、假處置,假設(shè)為1,按“真處置,執(zhí)行指定的語(yǔ)句。第二、第三種方式的if語(yǔ)句中,在每個(gè)else前面有一分號(hào),整個(gè)語(yǔ)句終了處有一分號(hào)。 else子句不能作為語(yǔ)句單獨(dú)運(yùn)用,它必需是if語(yǔ)句的一部分,與if配對(duì)運(yùn)用。 各 有 一 個(gè) 分 號(hào) If (ab) out1 =int1;else out1 b)l beginl out1=int1;l out2=int2;lendlelselbeginl out1=int2;l out2 D C B Acase語(yǔ)句是一種多分支選擇語(yǔ)句 .case (敏感表達(dá)式 分支表達(dá)式1:語(yǔ)句1; 分支表達(dá)式2:語(yǔ)句2; 分支表達(dá)式n:語(yǔ)句n; default: 語(yǔ)句n+1;
3、endcasecase括弧內(nèi)的表達(dá)式稱為控制表達(dá)式也稱為敏感表達(dá)式,case分支項(xiàng)中的表達(dá)式稱為分支表達(dá)式??刂票磉_(dá)式通常表示為控制信號(hào)的某些位,分支表達(dá)式那么用這些控制信號(hào)的詳細(xì)形狀值來(lái)表示:分支表達(dá)式是常量表達(dá)式。case語(yǔ)句的行為好像一個(gè)嵌套的if語(yǔ)句。當(dāng)控制表達(dá)式的值與分支表達(dá)式的值相等時(shí),就執(zhí)行分支表達(dá)式后面的語(yǔ)句。假設(shè)一切的分支表達(dá)式的值都沒(méi)有與控制表達(dá)式的值相匹配的,就執(zhí)行default后面的語(yǔ)句。default項(xiàng)可有可無(wú),一個(gè)case語(yǔ)句里只準(zhǔn)有一個(gè)default項(xiàng)。case語(yǔ)句通常用于微處置器的指令譯碼,語(yǔ)句通常用于微處置器的指令譯碼,case語(yǔ)句的行為好像一語(yǔ)句的行為好像一
4、個(gè)嵌套的個(gè)嵌套的if語(yǔ)句。語(yǔ)句。 case, casez和casex case語(yǔ)句逐位比較case表達(dá)式和分支表達(dá)式中的0、1、x、z值,值x和z只從字面上解釋,即作為x和z值; casez語(yǔ)句中,值z(mì)被以為是無(wú)關(guān)值,z也可以寫成“?。 casex語(yǔ)句中,值x和z都被以為是無(wú)關(guān)位。 casez語(yǔ)句用來(lái)處置不思索高阻值z(mì)的比較過(guò)程,casex語(yǔ)句那么將高阻值z(mì)和不定值都視為不用關(guān)懷的情況。所謂不用關(guān)懷的情況,即在表達(dá)式進(jìn)展比較時(shí),不將該位的形狀思索在內(nèi)。這樣在case語(yǔ)句表達(dá)式進(jìn)展比較時(shí),就可以靈敏地設(shè)置以對(duì)信號(hào)的某些位進(jìn)展比較。casez語(yǔ)句casex語(yǔ)句case語(yǔ)句時(shí)生成鎖存器的例子case
5、語(yǔ)句時(shí)生成鎖存器的例子 a l w a y s ( s e l 1 : 0 o r a o r b ) c a s e ( s e l 1 : 0 ) 2 b 0 0 : q = a ; 2 b 1 1 : q = b ; e n d c a s e 有 鎖 存 器 a l w a y s ( s e l 1 : 0 o r a o r b ) c a s e ( s e l 1 : 0 ) 2 b 0 0 : q = a ; 2 b 1 1 : q = b ; d e f a u l t : q = b 0 ; e n d c a s e 無(wú) 鎖 存 器 case語(yǔ)句時(shí)生成鎖存器的例子cas
6、e語(yǔ)句時(shí)生成鎖存器的例子輸出信號(hào)為復(fù)數(shù)時(shí),假設(shè)不將一切條件寫全輸出信號(hào)為復(fù)數(shù)時(shí),假設(shè)不將一切條件寫全Always (A) begin case (A) 3b000 : begin DATA1 = 1b1; DATA2= 1b0; end 3b001 : begin DATA1 = 1b0; DATA3= 1b1; end 3b010 : begin DATA1 = 1b0; DATA2= 1b1; end 3b101 : begin DATA1 = 1b1; end default : begin DATA1 = 1b0; DATA2= 1b0; DATA3= 1b0; endEndcasee
7、nd沒(méi)有DATA3的描畫沒(méi)有DATA2的描畫輸出信號(hào)為復(fù)數(shù)時(shí),針對(duì)每一個(gè)條件應(yīng)將輸出寫全輸出信號(hào)為復(fù)數(shù)時(shí),針對(duì)每一個(gè)條件應(yīng)將輸出寫全Always (A) begin case (A) 3b000 : begin DATA1 = 1b1; DATA2= 1b0; DATA3= 1bx; end 3b001 : begin DATA1 = 1b0; DATA2= 1bx; DATA3= 1b1; end 3b010 : begin DATA1 = 1b0; DATA2= 1b1; DATA3= 1bx; end 3b101 : begin DATA1 = 1b1; DATA2= 1bx; DATA
8、3= 1bx; end default : begin DATA1 = 1b0; DATA2= 1b0; DATA3= 1b0; endEndcaseendcase語(yǔ)句時(shí)生成鎖存器的例子Always (A) begin DATA1 = 1bx; DATA1= 1bx; DATA2= 1bx; case (A) 3b000 : begin DATA1 = 1b1; DATA2= 1b0; end 3b001 : begin DATA1 = 1b0; DATA3= 1b1; end 3b010 : begin DATA1 = 1b0; DATA2= 1b1; end 3b101 : begin D
9、ATA1 = 1b1; end default : begin DATA1 = 1b1; DATA1= 1b1; DATA2= 1b0; end初始值描畫方式Case分支的全列舉假設(shè)沒(méi)有在case表達(dá)式一切能夠的取值情況下都對(duì)變量賦值,那么該變量就會(huì)被推導(dǎo)成鎖存器。但是,假設(shè)設(shè)計(jì)者知道case表達(dá)式不會(huì)取case分支項(xiàng)中未列出的任何其他值,那么可以運(yùn)用綜合指令:full_case.綜合工具在case語(yǔ)句中遇到這樣的綜合指令時(shí)就會(huì)以為:case表達(dá)式一切能夠的取值都曾經(jīng)羅列出來(lái)了,不存在其他能夠的取值。這樣變量就在case語(yǔ)句的一切分支中都被賦值了,因此不會(huì)推導(dǎo)成鎖存器。運(yùn)用綜合指令:full_
10、case/Synthesis full_case并行Case分支Case語(yǔ)句的verilog語(yǔ)義闡明了選取case分支的優(yōu)先級(jí)順序。Case表達(dá)式首先與第一個(gè)分支項(xiàng)進(jìn)展比較,假設(shè)不一樣,那么再與下一個(gè)分支項(xiàng)比較,依此類推。Case語(yǔ)句暗示了檢查分支項(xiàng)的優(yōu)先級(jí)順序。假設(shè)設(shè)計(jì)者知道一切的分支項(xiàng)相互排斥,希望把case控制邏輯綜合成譯碼器,而不是優(yōu)先級(jí)邏輯,可以運(yùn)用綜合指令:parallel_case。運(yùn)用綜合指令:parallel_casefunction 范圍范圍 函數(shù)名函數(shù)名; begin . endendfunctionassign x = sign_extend(a); / functio
11、n 調(diào)用調(diào)用函數(shù)的定義蘊(yùn)含聲明了與函數(shù)同名的、函數(shù)內(nèi)部的變量。如在函數(shù)的聲明語(yǔ)句中為缺省,那么這個(gè)變量是一位的,否那么是與函數(shù)定義中一致的變量。定義函數(shù)時(shí)至少要有一個(gè)輸入?yún)⒘?。在函?shù)的定義中必需有一條賦值語(yǔ)句給函數(shù)中的一個(gè)內(nèi)部變量賦以函數(shù)的結(jié)果值,該內(nèi)部變量具有和函數(shù)名一樣的名字:函數(shù)前往值被賦予函數(shù)同名的內(nèi)部變量。 函數(shù)function)assign x = sign_extend(a); / function 調(diào)用調(diào)用 using ANSI C Style arguments function calc_parity (input 31:0 address); begin /Return
12、the xor of all address bits. calc_parity = address; end endfunctionEx: assign o=a&b; assign o=(sel)?a:b;module 41sel( in, sel, out );input 3:0 in;input 1:0 sel;output out;function select;input 3:0 a;input 1:0 b;case( b)2h0 : select = a0;2h1 : select = a1;2h2 : select =a2;2h3 : select = a3;endcas
13、eendfunctionassign out = select( in, sel ); / function select調(diào)調(diào)用用endmodule 復(fù)數(shù)位選擇器復(fù)數(shù)位選擇器function、case語(yǔ)句描畫語(yǔ)句描畫in0in1in2in3sel1:0out4 to 1selectmodule 41sel( in, sel, out );input 3:0 in;input 1:0 sel;outputout;function select;input 3:0 in;input 1:0 sel;case( sel )2h0 : select = in0;2h1 : select = in1;2
14、h2 : select = in2;2h3 : select = in3;endcaseendfunctionassign out = select( in, sel ); endmodule module 41sel( in, sel, out );input 3:0 in;input 1:0 sel;outputout;function select;input 3:0 in;input 1:0 sel;if( sel = 2h0 )select = in0;else if( sel = 2h1 )select = in1;else if( sel = 2h2 )select = in2;
15、elseselect = in3; endfunctionassign out = select( in, sel ); endmodule3 to 1selectmodule 31sel( in, sel, out );input 2:0 in;input 1:0 sel;outputout;function select;input 2:0 in;input 1:0 sel;case( sel )2h0 : select = in0;2h1 : select = in1;default :select = in2;endcaseendfunctionassign out = select(
16、 in, sel ); endmodulemodule 31sel( in, sel, out );input 2:0 in;input 1:0 sel;outputout;function select;input 2:0 in;input 1:0 sel;if( sel = 2h0 )select = in0;else if( sel = 2h1 )select = in1;elseselect = in2;endfunctionassign out = select( in, sel ); endmodule循環(huán)語(yǔ)句循環(huán)語(yǔ)句 在Verilog HDL中存在著四種類型的循環(huán)語(yǔ)句,用來(lái)控制執(zhí)
17、行語(yǔ)句的執(zhí)行次數(shù)。 forever 延續(xù)的執(zhí)行語(yǔ)句。 repeat 延續(xù)執(zhí)行一條語(yǔ)句 n 次。 while 執(zhí)行一條語(yǔ)句直到某個(gè)條件不滿足。假設(shè)一開(kāi)場(chǎng)條件即 不滿足(為假),那么語(yǔ)句一次也不能被執(zhí)行。 for for語(yǔ)句經(jīng)過(guò)以下三個(gè)步驟來(lái)決議語(yǔ)句的循環(huán)執(zhí)行。 先給控制循環(huán)次數(shù)的變量賦初值。 斷定控制循環(huán)的表達(dá)式的值,如為假那么跳出循環(huán)語(yǔ)句,如為真那么執(zhí)行指定的語(yǔ)句后,轉(zhuǎn)到第三步。 執(zhí)行一條賦值語(yǔ)句來(lái)修正控制循環(huán)變量次數(shù)的變量的值,然后前往第二步。forever語(yǔ)句語(yǔ)句forever語(yǔ)句的格式如下:forever 語(yǔ)句; 或forever begin多條語(yǔ)句 end此循環(huán)語(yǔ)句延續(xù)執(zhí)行過(guò)程語(yǔ)句。同
18、時(shí),在過(guò)程語(yǔ)句中必需運(yùn)用某種方式的時(shí)序控制,否那么, forever循環(huán)將在0時(shí)延后永遠(yuǎn)循環(huán)下去。 initialbeginclk = 0;#5 forever #10 clk = clk;end這一實(shí)例產(chǎn)生時(shí)鐘波形;時(shí)鐘首先初始化為0,并不斷堅(jiān)持到第5個(gè)時(shí)間單位。以后每隔10個(gè)時(shí)間單位,clk反相一次。Forever不可綜合,普通用來(lái)產(chǎn)生仿真波形。repeat語(yǔ)句語(yǔ)句 repeat語(yǔ)句的格式如下:repeat(表達(dá)式) 語(yǔ)句在repeat語(yǔ)句中,其表達(dá)式通常為常量表達(dá)式。while語(yǔ)句while語(yǔ)句的格式如下: while(表達(dá)式) 語(yǔ)句for語(yǔ)句語(yǔ)句 for語(yǔ)句的普通方式為: for表達(dá)式
19、1;表達(dá)式2;表達(dá)式3) 語(yǔ)句執(zhí)行過(guò)程如下:1)先求解表達(dá)式1;2)求解表達(dá)式2,假設(shè)其值為真非0),那么執(zhí)行for語(yǔ)句中指定的內(nèi)嵌語(yǔ)句,然后執(zhí)行下面的第3步。假設(shè)為假(0),那么終了循環(huán),轉(zhuǎn)到第5步。3)假設(shè)表達(dá)式為真,在執(zhí)行指定的語(yǔ)句后,求解表達(dá)式3。4)轉(zhuǎn)回上面的第2步驟繼續(xù)執(zhí)行。執(zhí)行for語(yǔ)句下面的語(yǔ)句。for語(yǔ)句最簡(jiǎn)單的運(yùn)用方式是很易了解的,其方式如下: for(循環(huán)變量賦初值;循環(huán)終了條件;循環(huán)變量增值) 執(zhí)行語(yǔ)句for語(yǔ)句語(yǔ)句 for循環(huán)語(yǔ)句實(shí)踐上相當(dāng)于采用while循環(huán)語(yǔ)句建立以下的循環(huán)構(gòu)造: begin 循環(huán)變量賦初值; while(循環(huán)終了條件) begin 執(zhí)行語(yǔ)句 循環(huán)
20、變量增值; end endfor語(yǔ)句語(yǔ)句for循環(huán)語(yǔ)句是典型的可以綜合的循環(huán)語(yǔ)句,循環(huán)語(yǔ)句是典型的可以綜合的循環(huán)語(yǔ)句,for循環(huán)的綜合是經(jīng)過(guò)循環(huán)的綜合是經(jīng)過(guò)展開(kāi)來(lái)實(shí)現(xiàn)的。也就是說(shuō),復(fù)制展開(kāi)來(lái)實(shí)現(xiàn)的。也就是說(shuō),復(fù)制for循環(huán)中的一切語(yǔ)句,對(duì)循環(huán)變量循環(huán)中的一切語(yǔ)句,對(duì)循環(huán)變量每一個(gè)能夠的取值復(fù)制一次每一個(gè)能夠的取值復(fù)制一次.需求對(duì)循環(huán)邊境加以限制,保證循環(huán)邊境都是常量。需求對(duì)循環(huán)邊境加以限制,保證循環(huán)邊境都是常量。always語(yǔ)句格式如下:語(yǔ)句格式如下: always always語(yǔ)句是反復(fù)執(zhí)行的,只需和一定的時(shí)序控制結(jié)合在一同才有用。語(yǔ)句是反復(fù)執(zhí)行的,只需和一定的時(shí)序控制結(jié)合在一同才有用。假設(shè)
21、一個(gè)假設(shè)一個(gè)always語(yǔ)句沒(méi)有時(shí)序控制,那么這個(gè)語(yǔ)句沒(méi)有時(shí)序控制,那么這個(gè)always語(yǔ)句將會(huì)生成一語(yǔ)句將會(huì)生成一個(gè)仿真死鎖。個(gè)仿真死鎖。 always areg = areg; 此語(yǔ)句將在此語(yǔ)句將在0時(shí)辰無(wú)限循環(huán),構(gòu)成仿真死鎖。時(shí)辰無(wú)限循環(huán),構(gòu)成仿真死鎖。行為建模:運(yùn)用行為建模:運(yùn)用always語(yǔ)句語(yǔ)句兩種時(shí)序控制方式1) 時(shí)延控制 always #half_period clk = clk; 這個(gè)例子生成了一個(gè)周期為:period(=2*half_period) 的無(wú)限延續(xù)的信號(hào)波形,常用這種方法來(lái)描畫時(shí)鐘信號(hào),作為鼓勵(lì)信號(hào)來(lái)測(cè)試所設(shè)計(jì)的電路 。2) 事件控制 在事件控制中,always
22、的過(guò)程語(yǔ)句基于事件執(zhí)行。 符號(hào)“ 被用來(lái)指明事件控制event control。 always 的事件可以控制是沿觸發(fā),也可以是電平觸發(fā),可以單個(gè)信號(hào),也可以多個(gè)信號(hào)。假設(shè)是多個(gè)信號(hào),那么信號(hào)名之間需求有關(guān)鍵字 or。事件控制always (posedge clock or negedge reset) /由兩個(gè)沿觸發(fā)的always塊 begin end在Verilog HDL中posedge和negedge是表示正沿和負(fù)沿的關(guān)鍵字 always ( a or b or c ) /由多個(gè)電平觸發(fā)的always塊 begin end always ( a,b,c ) /由多個(gè)電平觸發(fā)的alway
23、s塊 begin endalways語(yǔ)句沿觸發(fā)的always塊經(jīng)常描畫時(shí)序邏輯,假設(shè)符合可綜合風(fēng)格要求可用綜合工具自動(dòng)轉(zhuǎn)換為表示時(shí)序邏輯的存放器組和門級(jí)邏輯電平觸發(fā)的always塊經(jīng)常用來(lái)描畫組合邏輯和帶鎖存器的組合邏輯,假設(shè)符合可綜合風(fēng)格要求可轉(zhuǎn)換為表示組合邏輯的門級(jí)邏輯或帶鎖存器的組合邏輯。一個(gè)模塊中可以有多個(gè)always塊,它們都是并行運(yùn)轉(zhuǎn)的。always (靈敏度表靈敏度表) 賦值描畫賦值描畫 其中,靈敏度表內(nèi)元素可以為:其中,靈敏度表內(nèi)元素可以為:posedge 信號(hào)多數(shù)為時(shí)鐘信號(hào)及復(fù)位信號(hào)多數(shù)為時(shí)鐘信號(hào)及復(fù)位 negedge 信號(hào)多數(shù)為時(shí)鐘信號(hào)及復(fù)位信號(hào)多數(shù)為時(shí)鐘信號(hào)及復(fù)位用用reg、wire定義的變量及信號(hào)定義的變量及信號(hào)各信號(hào)之間用各信號(hào)之間用“or隔開(kāi)。隔開(kāi)。always (posedge 信號(hào)信號(hào) or negedge 信號(hào)信號(hào)) 賦值描畫賦值描畫 用用always
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代交通樞紐的鐵路貨運(yùn)效率優(yōu)化
- 深度解讀如何用云計(jì)算構(gòu)建高效智能制造平臺(tái)
- 國(guó)慶節(jié)巡航摩旅活動(dòng)方案
- 小學(xué)趣味運(yùn)動(dòng)會(huì)活動(dòng)方案策劃
- 2024年春七年級(jí)地理下冊(cè) 第九章 第二節(jié) 巴西說(shuō)課稿 (新版)新人教版
- 23 梅蘭芳蓄須說(shuō)課稿-2024-2025學(xué)年四年級(jí)上冊(cè)語(yǔ)文統(tǒng)編版001
- 8 千年夢(mèng)圓在今朝(說(shuō)課稿)2023-2024學(xué)年部編版語(yǔ)文四年級(jí)下冊(cè)
- 5 協(xié)商決定班級(jí)事務(wù) 說(shuō)課稿-2024-2025學(xué)年道德與法治五年級(jí)上冊(cè)統(tǒng)編版
- 2023八年級(jí)英語(yǔ)上冊(cè) Module 9 Population Unit 3 Language in use說(shuō)課稿(新版)外研版
- 《10天然材料和人造材料》說(shuō)課稿-2023-2024學(xué)年科學(xué)三年級(jí)下冊(cè)青島版
- SHT+3413-2019+石油化工石油氣管道阻火器選用檢驗(yàn)及驗(yàn)收標(biāo)準(zhǔn)
- 2024年云南省中考數(shù)學(xué)真題試卷及答案解析
- 人教版PEP英語(yǔ)單詞表三年級(jí)到六年級(jí)
- 新疆烏魯木齊市2024年中考英語(yǔ)模擬試題(含答案)
- (正式版)JBT 14932-2024 機(jī)械式停車設(shè)備 停放客車通-用技術(shù)規(guī)范
- 2024年度-脛腓骨骨折
- 應(yīng)用密碼學(xué)課件
- 礦井通風(fēng)安全培訓(xùn)課件
- 2024年中國(guó)國(guó)際投資促進(jìn)中心限責(zé)任公司招聘高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 苯胺合成靛紅工藝
- 質(zhì)量保證發(fā)展史和國(guó)外相關(guān)標(biāo)準(zhǔn)簡(jiǎn)介
評(píng)論
0/150
提交評(píng)論