




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)值集合數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式語句Verilog HDL歷史1983年,Gateway Design Automation公司推出Verilog語言,開發(fā)了仿真與驗(yàn)證工具;1985年,GDA推出Verilog仿真器Verilog-XL:仿真速度快,處理能力強(qiáng),具有交互式調(diào)試手段;1987年,Synopsys公司的綜合軟件開始接受Verilog輸入;1989年,Cadence公司收購(gòu)GDA,進(jìn)一步擴(kuò)大Verilog的影響;1990年,Open Verilog International(OVI)成立,推廣Verilo
2、g HDL和Veriog-XL被廣泛推廣;1993年,OVI推出Verilog2.0,作為IEEE提案提出申請(qǐng);1995年,IEEE通過Verilog HDL標(biāo)準(zhǔn)IEEE1364;2001年,IEEE 發(fā)布了Verilog HDL 1364-2001標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)中加入了Verilog HDL-A標(biāo)準(zhǔn),使Verilog能夠描述模擬設(shè)計(jì)。2005年,發(fā)布了Verilog 2005;2009年,與system Verilog合并為IEEE Standard 1800-2009Verilog HDL現(xiàn)狀目前,Verilog與VHDL成為最廣泛使用的、具有國(guó)際標(biāo)準(zhǔn)支持的硬件描述語言,絕大多數(shù)的EDA廠
3、商都支持這兩種描述語言;在工業(yè)界和ASIC設(shè)計(jì)領(lǐng)域,Verilog HDL應(yīng)用更加廣泛。Verilog的描述方式行為描述:描述功能結(jié)構(gòu)描述:描述元器件間連接關(guān)系混合描述:Verilog允許兩種描述方式共存于同一模塊。Verilog 描述的抽象級(jí)別系統(tǒng)級(jí)(system): 用高級(jí)語言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。能力稍差。 算法級(jí)(algorithmic): 用高級(jí)語言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。 RTL級(jí)(Register Transfer Level): 描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。 門級(jí)(gate-level): 描述邏輯門以及邏輯門之間的連接的模型。開關(guān)級(jí)(swit
4、ch-level): 描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)值集合數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式語句例1: module adder ( count,sum,a,b,cin ); input 2:0 a,b; input cin; output count; output 2:0 sum; assign count,sum=a+b+cin; endmodule 這個(gè)例子描述了一個(gè)三位的加法器。 從module開始到endmodule結(jié)束的一個(gè)完整單元稱為模塊,Verilog程序是以模塊為基本單元組織起來的,類
5、似于C語言中的函數(shù)。簡(jiǎn)單的Verilog程序例2:module compare ( equal,a,b ); output equal; /聲明輸出信號(hào)equal input 1:0 a,b; /聲明輸入信號(hào)a,b assign equal=(a=b)?1:0; /*如果兩個(gè)輸入信號(hào)相等,輸出為1。否則為0*/endmodule比較器.在這個(gè)程序中,/*.*/和/.表示注釋部分 。與C語言相同。大部分注釋只起到幫助理解的作用。但是在ISE實(shí)現(xiàn)設(shè)計(jì)時(shí),一些特殊的注釋也會(huì)被編譯工具所識(shí)別簡(jiǎn)單的Verilog程序例3:module trist2(out,in,enable); output out;
6、 input in, enable; bufif1 mybuf(out,in,enable);endmodule這個(gè)程序描述了一個(gè)三態(tài)驅(qū)動(dòng)器。程序通過調(diào)用一個(gè)實(shí)例元件bufif1來實(shí)現(xiàn)其功能。屬于結(jié)構(gòu)描述方式。簡(jiǎn)單的Verilog程序例4:module trist1(out,in,enable); output out; input in, enable; mytri tri_inst(out,in,enable); endmodule module mytri(out,in,enable); output out; input in, enable; assign out = enable?
7、 In : bz; endmodule簡(jiǎn)單的Verilog程序簡(jiǎn)單的Verilog程序timescale 1ns/100psmodule Detector110 (input a, clk, reset, output w);parameter 1:0 s0=2b00, s1=2b01, s2=2b10, s3=2b11;reg 1:0 current;always (posedge clk) beginif (reset) current = s0;elsecase (current)s0: if (a) current = s1; else current = s0;s1: if (a)
8、current = s2; else current = s0;s2: if (a) current = s2; else current = s3;s3: if (a) current = s1; else current = s0;endcaseendassign w = (current = s3) ? 1: 0;endmoduletimescale 1ns/100psmodule Detector110Tester;reg aa, clock, rst;wire ww;Detector110 UUT (aa, clock, rst, ww);initial beginaa = 0; c
9、lock = 0; rst = 1;endinitial repeat (44) #7 clock = clock;initial repeat (15) #23 aa = aa;initial begin#31 rst = 1;#23 rst = 0;endalways (ww) if (ww = 1)$display (“A 1 was detected on w at time = %t”, $time);endmoduleVerilog HDL程序是由模塊構(gòu)成的。模塊是可以進(jìn)行層次嵌套的。正因?yàn)槿绱?才可以將大型的數(shù)字電路設(shè)計(jì)分割成不同的小模塊來實(shí)現(xiàn)特定的功能,最后通過頂層模塊調(diào)用子模
10、塊來實(shí)現(xiàn)整體功能。每個(gè)模塊要進(jìn)行端口定義,并說明輸入輸出口,然后對(duì)模塊的功能進(jìn)行邏輯描述。 Verilog HDL程序的書寫格式自由,一行可以寫幾個(gè)語句,一個(gè)語句也可以分寫多行。 除了endmodule語句外,每個(gè)語句和數(shù)據(jù)定義的最后必須有分號(hào) 可以用/*.*/和/.對(duì)Verilog HDL程序的任何部分作注釋。簡(jiǎn)單的Verilog程序同一電路的多種描述方法例5(1):二選一的選擇器module muxtwo(out,a,b,sl); input a, b, sl; output out; reg out; always (sl or a or b) if(!sl) out=a; else o
11、ut=b;endmodule 同一電路的多種描述方法例5(2):二選一的選擇器module muxtwo(out,a,b,sl); input a, b, sl; output out; assign out = sel?b:a;endmodule 同一電路的多種描述方法例5(3):二選一的選擇器module muxtwo(out,a,b,sl); input a, b, sl; output out; wire nsl, sela,selb; assign nsl = sl; not #1 u1(nsl,sl); and #1 u2(sela,a,nsl); and #1 u3(selb,
12、b, sl); or #1 u4(out, sela, selb); endmodule 同一電路的多種描述方法三種不同的描述方法綜合出完全相同的結(jié)果。例5(1)是RTL級(jí)行為描述例5(2)是布爾代數(shù)級(jí)行為描述例5(3)是門級(jí)結(jié)構(gòu)描述提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)值集合數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式語句 module 模塊名(端口列表); endmodule模塊基本結(jié)構(gòu) module (端口列表);端口I/O說明內(nèi)部信號(hào)聲明功能定義 endmodule模塊內(nèi)部結(jié)構(gòu)IO說明的格式IO類型關(guān)鍵詞 信號(hào)位寬-1:0 端口名;IO類型關(guān)鍵詞:input,ou
13、tput,inout。位寬描述:一般用信號(hào)位寬-1:0形式 ,并不是必須實(shí)質(zhì)上是MSB:LSB。內(nèi)部信號(hào)聲明類似于C語言中的變量定義。常見方式:reg 10:0 Var1;wire 10:0 var2;wire a, b,c;功能定義三種主要形式:assign:例:assign a=b&c;always:例:always (b or c) a=b&c;元件(實(shí))例化例:and and1(a,b,c); BUFG BUFG_inst ( .O(out), / Clock buffer output .I(in) / Clock buffer input );注意三種方式可以在同一個(gè)模塊之內(nèi)混合使
14、用;同一個(gè)模塊內(nèi)可以有多個(gè)always塊,多個(gè)assign和多個(gè)元件例化。所有這些單元是并行執(zhí)行的。這些單元的書寫順序不影響邏輯功能;例:三位全加器module adder ( cout,sum,a,b,cin );input 2:0 a,b;input cin;output cout;output 2:0 sum;reg cout;reg 2:0sum;always (a or b or cin) cout,sum=a+b+cin;endmodule三位全加器程序綜合結(jié)果三位全加器程序綜合結(jié)果提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)值集合數(shù)據(jù)類型常量與變量運(yùn)算
15、符與表達(dá)式語句比特值集合4狀態(tài)值集合0:邏輯0或“假”1:邏輯1或“真”x:未知、不定z:高阻注:x和z不分大小寫。128狀態(tài)值集合:包含強(qiáng)度信息其他值集合整數(shù)(32bits)實(shí)數(shù)字符串時(shí)間(64bits)布爾值(0,1)提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)值集合數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式語句數(shù)據(jù)類型19種。分為兩大類線網(wǎng)型:表示Ve r i l o g元件間的物理連線,它的值由驅(qū)動(dòng)元件的值決定,沒有驅(qū)動(dòng)元件連接到線網(wǎng),線網(wǎng)的缺省值為z。寄存器類型:。register type表示一個(gè)抽象的數(shù)據(jù)存儲(chǔ)單元,它只能在過程塊中被賦值,并且它的值從一個(gè)賦值到另
16、一個(gè)賦值被保存下來。寄存器類型的變量具有x的缺省值。線網(wǎng)型:wire,triwor,trior,wand,triand,trireg,tri1,tri0supply0,supply1寄存器型:reginteger,timereal,realtimewire和tri用于連接單元的連線是最常見的線網(wǎng)類型。默認(rèn)值為z。wire與tri語法和語義一致;三態(tài)線可以用于描述多個(gè)驅(qū)動(dòng)源驅(qū)動(dòng)同一根線的線網(wǎng)類型;并且沒有其他特殊的意義。通常都用wire。其他線網(wǎng)型用于底層設(shè)計(jì)與仿真,F(xiàn)PGA設(shè)計(jì)通常不會(huì)涉及。多驅(qū)動(dòng)源時(shí)wire的值未說明的線網(wǎng)在Verilog HDL中,有可能不必聲明某種線網(wǎng)類型。在這樣的情況下
17、,缺省線網(wǎng)類型為1位wire類型。output端口信號(hào)如果是線網(wǎng)型也不需定義,此時(shí)認(rèn)為位寬由端口定義給出。寄存器類型reg:數(shù)據(jù)儲(chǔ)存單元的抽象只能在always、initial的順序塊內(nèi)被賦值。默認(rèn)初始值為x。integer、time、real、realtime:只能用于仿真,不用于設(shè)計(jì)。如何選擇正確的數(shù)據(jù)類型? 輸入口(input)可以由寄存器或線網(wǎng)驅(qū)動(dòng),但它本身只能驅(qū)動(dòng)線網(wǎng)。輸出口 (output)可以由寄存器或線網(wǎng)驅(qū)動(dòng),但它本身只能驅(qū)動(dòng)線網(wǎng)。輸入/輸出口(inout)只可以由線網(wǎng)驅(qū)動(dòng),而且它本身只能驅(qū)動(dòng)線網(wǎng)。如果信號(hào)變量是在過程塊 (initial塊 或 always塊)中被賦值的,必須
18、把它聲明為寄存器類型變量舉例module top;wire y; reg a, b; DUT u1(y,a,b); initial begin a = 0; b = 0; #10 a =1; . end endmodule module DUT(Y, A, B); output Y; input A,B: wire Y, A, B; and (Y, A, B); endmodule模塊DUT的邊界輸入口輸出口輸出/入口netnetnet/registernetnet/registernetinout提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)數(shù)據(jù)類型常量與變量運(yùn)算符
19、與表達(dá)式語句標(biāo)識(shí)符所謂標(biāo)識(shí)別符就是用戶為程序描述中的Verilog 對(duì)象所起的名字。模塊名、變量名、常量名、函數(shù)名、任務(wù)名標(biāo)識(shí)符必須以英語字母(a-z, A-Z)起頭,或者用下橫線符( _ )起頭。其中可以包含數(shù)字、$符和下劃線符。標(biāo)識(shí)符最長(zhǎng)可以達(dá)到1023個(gè)字符。模塊名、端口名和實(shí)例名都是標(biāo)識(shí)符。Verilog語言是大小寫敏感的,因此sel 和 SEL 是兩個(gè)不同的標(biāo)識(shí)符。注:所有的關(guān)鍵詞都是小寫的。常量整數(shù)表達(dá)方式:標(biāo)準(zhǔn)方式:默認(rèn)位寬,與機(jī)器類型有關(guān):默認(rèn)十進(jìn)制進(jìn)制二進(jìn)制(b或B):8b10101100十進(jìn)制(d或D)十六進(jìn)制(h或H): 8ha2八進(jìn)制(o或O)常量負(fù)數(shù): 在位寬表達(dá)式前
20、加一個(gè)減號(hào), 如 -8d5 注:減號(hào)不可以放在位寬和進(jìn)制之間,也不可以放在進(jìn)制和具體的數(shù)之間。8d-5下劃線: 只能用在具體的數(shù)字之間 如16b1010_1111_1010注意:位數(shù)指的是二進(jìn)制位數(shù)。 參數(shù)型常量parameter:格式:parameter 參數(shù)名1=表達(dá)式1,參數(shù)名2=表達(dá)式2;這里的表達(dá)式只能是常量或常量表達(dá)式。經(jīng)常用戶定義延遲時(shí)延和位寬。在模塊引用時(shí),可通過參數(shù)傳遞改變?cè)诒灰媚K中定義的參數(shù)??梢栽谄渌K修改參數(shù)型常量值:defparam例:module Decoder(A,F);parameter Width=1,polarity = 1;endmodulemodu
21、le Top;wire 3:0 A4; wire 4:0 A5; wire 15:0 F16;wire 31:0 F32;Decoder #(4,0) D1(A4, F16);Decoder #(4,0) D2(A5, F32);endmodule變量wire wire_name1;wire MSB:LSB wire_name;reg reg_name1;reg MSB:LSB reg_name;例: wire 2:0 a; reg b; reg 3:0 c,d;memory 型變量定義通過擴(kuò)展reg型數(shù)據(jù)的地址范圍來生成。reg n-1:0 mem_namem-1:0;n為位寬,m為存儲(chǔ)深度
22、。類似于C語言的數(shù)組。比較reg a15:0;和reg 15:0 a;reg 15:0 a255:0, b,c;/?什么含義? 存儲(chǔ)器元素可以通過“數(shù)組下標(biāo)”來尋址,也就是給出元素在存儲(chǔ)器的位置來尋址。 mem_name 地址表達(dá)式Verilog 1995不支持多維數(shù)組。即只能對(duì)存儲(chǔ)器字進(jìn)行尋址,而不能對(duì)存儲(chǔ)器中一個(gè)字的各個(gè)位進(jìn)行尋址。Verilog 2001雖然支持多維數(shù)組,但是一般不推薦使用。module mems;reg 8: 1 mem_a 0: 255; / 聲明存儲(chǔ)器 mem_areg 8: 1 mem_word; / 臨時(shí)變量 mem_ word. . .initial begi
23、n $displayb( mem_a5); /顯示存儲(chǔ)器中第6個(gè)字的內(nèi)容 mem_word = mem_a5; $displayb( mem_word8); / /顯示第6個(gè)字的最高有效位 endendmodule對(duì)存儲(chǔ)器字的某些位進(jìn)行存取操作時(shí),要通過暫存器進(jìn)行存儲(chǔ)器尋址提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)數(shù)據(jù)類型常量與變量運(yùn)算符與表達(dá)式語句運(yùn)算符與表達(dá)式算術(shù)運(yùn)算符(+,-,x,/,%)賦值運(yùn)算符(=,=,=)邏輯運(yùn)算符(&,|,!)條件運(yùn)算符(?;)位運(yùn)算符 (,|,&,)移位運(yùn)算符()拼接運(yùn)算符()算術(shù)運(yùn)算符 加法 減法 * 乘法/除法取模乘法可用,但
24、需注意區(qū)分有符號(hào)和無符號(hào);對(duì)部分綜合工具,除法和取模只有除數(shù)和模數(shù)為2的冪次時(shí)可綜合。算術(shù)運(yùn)算操作時(shí),如果某一個(gè)操作數(shù)有不定值x,則運(yùn)算結(jié)果也為不定值。位運(yùn)算符5種:按位取反&: 按位與|:按位或:按位異或(模2加):按位異或非邏輯運(yùn)算符 & 邏輯與 | 邏輯或 ! 邏輯非 邏輯操作符的結(jié)果為一位1,0或x;邏輯操作符只對(duì)邏輯值運(yùn)算;如操作數(shù)為全0,則其邏輯值為false;如操作數(shù)有一位為1,則其邏輯值為true;若操作數(shù)只包含0、x、z,則邏輯值為x。關(guān)系運(yùn)算符:大于=:大于等于等式運(yùn)算符= (等于) != (不等于)=(等于) != (不等于)注: “=”和“=”運(yùn)算符不同,在對(duì)操作數(shù)進(jìn)行
25、比較時(shí)對(duì)某些位的不定值x和高阻值z(mì)也進(jìn)行了比較,兩個(gè)操作數(shù)必須完全一致,其結(jié)果為1,否則為 0綜合工具往往忽略二者差異。=01xz=01xz01000010 xx10100101xxx0010 xxxxxz0001zxxxx移位運(yùn)算符兩個(gè)左移()例: a=1; result = a2; (a=0100 result=0100)位拼接運(yùn)算符 : 可以把兩個(gè)或多個(gè)信號(hào)的某些位拼接起來進(jìn)行運(yùn)算操作,如:a,b3:0,w,3b10簡(jiǎn)化寫法:a,4w 等效于a,w,w,w,w嵌套:b,3a,b等效于b, a,b, a,b, a,b 注: 在位拼接運(yùn)算符中不允許存在沒有指明位數(shù)的信號(hào)縮減運(yùn)算符單目運(yùn)算符,
26、與按位運(yùn)算符形式類似& , |, &, |, 注: 縮減運(yùn)算是對(duì)單個(gè)操作數(shù)進(jìn)行與、或等遞推運(yùn)算,最后的運(yùn)算結(jié)果是1位的二進(jìn)制數(shù)。 條件運(yùn)算符?:例:assign c = sel? a : b;優(yōu)先級(jí)提綱Verilog HDL簡(jiǎn)介 簡(jiǎn)單的Verilog HDL程序模塊結(jié)構(gòu)常量與變量數(shù)據(jù)類型運(yùn)算符與表達(dá)式語句結(jié)構(gòu)說明語句任何過程塊都需要從屬于以下4種結(jié)構(gòu)說明語句。alwaysinitialtaskfunctioninitial語句格式initial begin 語句1; 語句2; 語句n;endinitial語句該語句只執(zhí)行一次。通常用于測(cè)試程序,產(chǎn)生測(cè)試向量。always在仿真過程中是不斷活動(dòng)著
27、的。always語句后跟著的過程塊是否執(zhí)行,則要看它的觸發(fā)條件是否滿足。如果不斷滿足,則不斷循環(huán)執(zhí)行。 格式:always 語句;時(shí)序控制的方式不同,對(duì)應(yīng)不同的邏輯,起不同作用。不同的always形式always #half_period clk = clk;通常用于產(chǎn)生測(cè)試時(shí)鐘reg tick;always (posedge clk) begin tick = tick; count = counter + 1; end最常見的一種方式不同的always形式always (a or b or sel) c=sel?a:b;always (posedge clk or reset) begin
28、 if(reset) count=0; else begin if (count = 511) count = 0; else count = count+1; end end賦值語句連續(xù)賦值語句assign wire_var = expression;非阻塞賦值方式b=a;阻塞賦值方式b=a;后面兩種用于過程塊中。阻塞賦值 Vs.非阻塞賦值非阻塞賦值在語句塊中,上面語句所賦的變量值不能立即就為下面的語句所用;塊語句結(jié)束后才能完成這次賦值操作。阻塞賦值賦值語句執(zhí)行完后,才執(zhí)行下面的語句;被賦值的變量在賦值語句執(zhí)行完之后立刻改變的。阻塞賦值 Vs.非阻塞賦值在時(shí)序邏輯中使用阻塞語句可能會(huì)產(chǎn)生意想
29、不到的結(jié)果。例:(1)always (posedge clk) begin b=a; c=b; end (2)always (posedge clk) begin b=a; c=b; end 阻塞賦值 Vs.非阻塞賦值(1)(2)阻塞賦值 Vs.非阻塞賦值使用非阻塞賦值語句描述組合邏輯容易出現(xiàn)的問題舉例。module ao4(y,a,b,c,d); output 5:0 y; input 4:0 a, b, c, d; reg 5:0 y, tmp1, tmp2; always (a or b or c or d) begin tmp1 = a+b; tmp2 =c+d; y = tmp1+
30、tmp2; endendmodule阻塞賦值 Vs.非阻塞賦值解決辦法:module ao4(y,a,b,c,d); output 5:0 y; input 4:0 a, b, c, d; reg 5:0 y, tmp1, tmp2; always (a or b or c or d or tmp1 or tmp2) begin tmp1 = a+b; tmp2 =c+d; y = tmp1+ tmp2; endendmodulemodule ao4(y,a,b,c,d); output 5:0 y; input 4:0 a, b, c, d; reg 5:0 y, tmp1, tmp2; a
31、lways (a or b or c or d) begin tmp1 = a+b; tmp2 =c+d; y = tmp1+ tmp2; endendmodule阻塞賦值 Vs. 非阻塞賦值要點(diǎn):在描述組合邏輯的always塊中使用阻塞賦值。在描述時(shí)序邏輯的always塊中用非阻塞賦值。鎖存器電路建模時(shí),用非阻塞賦值。在同一always塊中建立時(shí)序和組合邏輯電路時(shí),用非阻塞賦值。在同一個(gè)always塊不允許既用非阻塞賦值,又用阻塞賦值。不允許在一個(gè)以上的always塊中為同一個(gè)變量賦值。塊語句將兩條或多條語句組合在一起。順序塊 (beginend)并行塊 (forkjoin)順序塊begin
32、end格式: begin:塊名 塊內(nèi)聲明語句 語句1; 語句2; . . 語句n;end 順序塊舉例: begin areg=breg; creg=areg ; end begin areg=breg; creg=areg ; end并行塊格式: fork:塊名 塊內(nèi)聲名語句 語句1; 語句2; . . 語句n;join 并行塊的特點(diǎn)塊內(nèi)語句是同時(shí)執(zhí)行的,即程序流程控制一進(jìn)入該塊,塊內(nèi)語句則開始并行執(zhí)行。如果塊內(nèi)語句有時(shí)延,則所有時(shí)延都是相對(duì)于同一時(shí)間基準(zhǔn)而言的。順序塊中的時(shí)延都是相對(duì)于前一語句而言的。并行塊中容易出現(xiàn)競(jìng)爭(zhēng)問題,在設(shè)計(jì)中不建議使用。 條件語句三種形式if(表達(dá)式)語句。如:if
33、(表達(dá)式) 語句1 else 語句2if(表達(dá)式1) 語句1 else if (表達(dá)式2) 語句2; else if (表達(dá)式3) 語句3; else if (表達(dá)式m) 語句m;注: 條件語句必須在過程塊語句中使用,不能單獨(dú)使用。if后面的表達(dá)式的值只有為1時(shí)才按“真”處理 條件語句if語句的嵌套 if(表達(dá)式1) if (表達(dá)式2) 語句1; else 語句2; else if (表達(dá)式3) 語句3; else 語句4; 注: else總是與它最上面的最近的if配對(duì)。如果if與else的數(shù)目不一樣,為了實(shí)現(xiàn)程序設(shè)計(jì)者的目的,可以用beginend語句確定配對(duì)關(guān)系。Case語句case(表達(dá)
34、式) endcase casez(表達(dá)式) endcase casex(表達(dá)式) endcase一般格式: 分支表達(dá)式: 語句; 默認(rèn)項(xiàng); 語句; Case語句注: 1 控制表達(dá)式通常表示為控制信號(hào)的某些位。 2 分支表達(dá)式則用這些控制信號(hào)的具體狀態(tài)值表示,都是常量表達(dá)式。 3 從語法上說,默認(rèn)項(xiàng)可有可無,一個(gè)case語句里只準(zhǔn)有一個(gè)默認(rèn)項(xiàng)。 4 每一個(gè)case分項(xiàng)的分支表達(dá)式的值必須互相不相同。 5 執(zhí)行完case分項(xiàng)后的語句,則跳出該case語句結(jié)構(gòu),終止case語句的執(zhí)行。 不需要break語句。Case語句casez, casex用來處理比較過程中的不必考慮的情況。casez語句處理不考慮高阻值z(mì)的比較過程。casex語句將高阻值z(mì)和不定值都視為不必關(guān)心的情況
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 郫縣電梯加裝施工方案
- 2025屆湖南省張家界市名校中考生物五模試卷含解析
- 出售廣東漁船合同范例
- 專題01 聲現(xiàn)象(3大模塊知識(shí)清單+3個(gè)易混易錯(cuò)+2種方法技巧+典例真題精析)-2025年中考地理一輪復(fù)習(xí)知識(shí)清單
- 單位共有房屋買賣合同范例
- 多媒體教學(xué)計(jì)劃
- 眼科手術(shù)患者護(hù)理
- 員工福利的改進(jìn)與落實(shí)計(jì)劃
- 環(huán)保與可持續(xù)發(fā)展計(jì)劃
- 班主任的班級(jí)學(xué)習(xí)目標(biāo)計(jì)劃
- 貴州省2025年初中學(xué)業(yè)水平考試英語模擬練習(xí)卷(含答案含聽力二維碼無音頻及原文)
- 2025廣東深圳證券交易所及其下屬單位信息技術(shù)專業(yè)人員招聘筆試參考題庫(kù)附帶答案詳解
- 第20課《井岡翠竹》部編版2024-2025七年級(jí)語文下冊(cè)
- 中華人民共和國(guó)文物保護(hù)法
- 小學(xué)五年級(jí)體育教案全冊(cè)(人教版)
- 2024《整治形式主義為基層減負(fù)若干規(guī)定》全文課件
- 20以內(nèi)加減法口算題(10000道)(A4直接打印-每頁(yè)100題)
- SHAFER氣液聯(lián)動(dòng)執(zhí)行機(jī)構(gòu)培訓(xùn)
- (完整)消化性潰瘍PPT課件ppt
- 新版《義務(wù)教育英語課程標(biāo)準(zhǔn)(2022年版)》PPT課件
- 全國(guó)優(yōu)秀中醫(yī)臨床人才研修項(xiàng)目考試大綱
評(píng)論
0/150
提交評(píng)論