版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第5章章 Verilog設(shè)計(jì)深入設(shè)計(jì)深入 5.1 過程中的兩類賦值語句過程中的兩類賦值語句過程過程賦值語句賦值語句用于對用于對regreg型變量賦值,有兩種方式:型變量賦值,有兩種方式:n阻塞(阻塞(blocking)blocking)賦值方式(順序執(zhí)行)賦值方式(順序執(zhí)行) 賦值符號(hào)為賦值符號(hào)為= =,如,如 b b = = a a ;n非阻塞(非阻塞(non-blocking)non-blocking)賦值方式(并行執(zhí)行)賦值方式(并行執(zhí)行) 賦值符號(hào)為賦值符號(hào)為=,如,如 b b = a a ; 連續(xù)賦值語句是并行連續(xù)賦值語句是并行的。不允許的。不允許允許,允許, Q1的值是最后一的值
2、是最后一個(gè)表達(dá)式的值個(gè)表達(dá)式的值5.1 過程中的兩類賦值語句過程中的兩類賦值語句n 比較兩類語句的不同比較兩類語句的不同 :n條件:條件:A和和B同一時(shí)刻從同一時(shí)刻從0變到變到1過程中的過程中的 阻塞式賦值語句是順序執(zhí)行的,阻塞式賦值語句是順序執(zhí)行的,后一條語句在前一條語句執(zhí)行完后一條語句在前一條語句執(zhí)行完 進(jìn)行。進(jìn)行。結(jié)果為:結(jié)果為:M1=1,M2=1,Q=1非阻塞式賦值語句是同時(shí)執(zhí)行的,非阻塞式賦值語句是同時(shí)執(zhí)行的, 過過程啟動(dòng)后,分別計(jì)算出右側(cè)表達(dá)式的值,程啟動(dòng)后,分別計(jì)算出右側(cè)表達(dá)式的值,執(zhí)行到執(zhí)行到end后,同時(shí)被賦值。后,同時(shí)被賦值。結(jié)果為:結(jié)果為:M1=1,M2=0,Q=0賦值的
3、類型的選擇取決于建模的邏輯類型賦值的類型的選擇取決于建模的邏輯類型u在時(shí)序塊的在時(shí)序塊的 RTL 代碼中使用非阻塞賦值。代碼中使用非阻塞賦值。 非阻塞賦值在塊結(jié)束后才完成賦值操作,此賦值方式可以避免在非阻塞賦值在塊結(jié)束后才完成賦值操作,此賦值方式可以避免在仿真出現(xiàn)冒險(xiǎn)和競爭現(xiàn)象。仿真出現(xiàn)冒險(xiǎn)和競爭現(xiàn)象。u在組合的在組合的 RTL 代碼中使用阻塞賦值。代碼中使用阻塞賦值。 使用阻塞方式對一個(gè)變量進(jìn)行賦值時(shí),此變量的值在賦值語句執(zhí)使用阻塞方式對一個(gè)變量進(jìn)行賦值時(shí),此變量的值在賦值語句執(zhí)行完后就立即改變。行完后就立即改變。5.1.3深入認(rèn)識(shí)阻塞賦值和非阻塞賦值的特點(diǎn)深入認(rèn)識(shí)阻塞賦值和非阻塞賦值的特點(diǎn)
4、阻塞、非阻塞對比阻塞、非阻塞對比非阻塞賦值語句并行執(zhí)行,因此臨時(shí)變量不可避免地在一個(gè)周期中非阻塞賦值語句并行執(zhí)行,因此臨時(shí)變量不可避免地在一個(gè)周期中被賦值,在下一個(gè)周期中被采樣。被賦值,在下一個(gè)周期中被采樣。 module bloc (clk, a, b); input clk, a; output b; reg y; reg b; always ( posedge clk) begin y =a; b =y; endendmodulemodule nonbloc (clk, a, b); input clk, a; output b; reg y; reg b; always ( posed
5、ge clk) begin y = a; b = y; endendmodule使用阻塞賦值,此描述綜合使用阻塞賦值,此描述綜合出一個(gè)出一個(gè)D flip-flop:使用非阻塞賦值,此描述將使用非阻塞賦值,此描述將綜合出兩個(gè)綜合出兩個(gè)D Flip-flop。阻塞與非阻塞語句的使用阻塞與非阻塞語句的使用module dffa(clk, a, e); input wire clk; input wire a; output reg e; reg b, c, d; always ( b ) begin c = b; d = c; e = d; end always (posedge clk) b =
6、a;endmodulemodule dffa(clk, a, e); input wire clk; input wire a; output reg e; reg b, c, d; always ( b ) begin c = b; d = c; e = d; end always (posedge clk) b = a;endmodule5.1 過程中的兩類賦值語句過程中的兩類賦值語句 5.1.3 深入認(rèn)識(shí)阻塞賦值和非阻塞式賦值的特點(diǎn)深入認(rèn)識(shí)阻塞賦值和非阻塞式賦值的特點(diǎn) 5.1 過程中的兩類賦值語句 5.1.3 深入認(rèn)識(shí)阻塞賦值和非阻塞式賦值的特點(diǎn)深入認(rèn)識(shí)阻塞賦值和非阻塞式賦值的特點(diǎn) n非
7、阻塞非阻塞(non-blocking)non-blocking)賦值方式賦值方式 ( b= a) ( b= a):nb b的值被賦成新值的值被賦成新值a a的操作的操作, , 并不是立刻完成的,而并不是立刻完成的,而是在塊結(jié)束時(shí)才完成;是在塊結(jié)束時(shí)才完成;n塊內(nèi)的多條賦值語句在塊結(jié)束時(shí)同時(shí)賦值;塊內(nèi)的多條賦值語句在塊結(jié)束時(shí)同時(shí)賦值;n硬件有對應(yīng)的電路硬件有對應(yīng)的電路。n阻塞阻塞(blocking)blocking)賦值方式賦值方式 ( b = a) ( b = a):nb b的值立刻被賦成新值的值立刻被賦成新值a a;n完成該賦值語句后才能執(zhí)行下一句的操作;完成該賦值語句后才能執(zhí)行下一句的操作
8、;n硬件沒有對應(yīng)的電路,因而綜合結(jié)果未知。硬件沒有對應(yīng)的電路,因而綜合結(jié)果未知。非阻塞賦值與阻塞賦值方式的主要非阻塞賦值與阻塞賦值方式的主要區(qū)別區(qū)別v建議在初學(xué)時(shí)只使用一種方式,不要混用!建議在初學(xué)時(shí)只使用一種方式,不要混用!v建議在可綜合風(fēng)格的模塊中使用建議在可綜合風(fēng)格的模塊中使用非阻塞非阻塞賦值!賦值!總結(jié):阻塞和非阻塞賦值比較總結(jié):阻塞和非阻塞賦值比較v 時(shí)序電路建模時(shí),用非阻塞賦值;時(shí)序電路建模時(shí),用非阻塞賦值;v鎖存器電路建模時(shí),用非阻塞賦值;鎖存器電路建模時(shí),用非阻塞賦值;v用用 always always 塊建立組合邏輯模型時(shí),用阻塞賦值;塊建立組合邏輯模型時(shí),用阻塞賦值;v在同
9、一個(gè)在同一個(gè)alwaysalways塊中建立時(shí)序和組合邏輯電路時(shí),用非阻塞賦值;塊中建立時(shí)序和組合邏輯電路時(shí),用非阻塞賦值;v在同一個(gè)在同一個(gè)alwaysalways塊中不要既用非阻塞賦值又用阻塞賦值;塊中不要既用非阻塞賦值又用阻塞賦值;v不要在一個(gè)以上的不要在一個(gè)以上的alwaysalways塊中為同一個(gè)變量賦值;塊中為同一個(gè)變量賦值;v在一個(gè)源程序中,要么都采用阻塞賦值語句,要么都采用非阻塞賦在一個(gè)源程序中,要么都采用阻塞賦值語句,要么都采用非阻塞賦值語句,最好不要混合使用,否則可能邏輯關(guān)系出錯(cuò)!為易于綜合,值語句,最好不要混合使用,否則可能邏輯關(guān)系出錯(cuò)!為易于綜合,建議均采用非阻塞賦值語
10、句!建議均采用非阻塞賦值語句!alwaysalways語句語句無限循環(huán)語句無限循環(huán)語句 alwaysalways語句在仿真過程中是不斷重復(fù)執(zhí)行的,但語句在仿真過程中是不斷重復(fù)執(zhí)行的,但alwaysalways語句后跟著的語句后跟著的過程塊是否執(zhí)行,則要看它的觸發(fā)條件是否滿足,如滿足則運(yùn)行塊一過程塊是否執(zhí)行,則要看它的觸發(fā)條件是否滿足,如滿足則運(yùn)行塊一次,如不斷滿足,則循環(huán)執(zhí)行次,如不斷滿足,則循環(huán)執(zhí)行 格式:格式: always always 注意:注意: alwaysalways語句由于其不斷重復(fù)執(zhí)行特性,只有和一定的時(shí)序控制語句由于其不斷重復(fù)執(zhí)行特性,只有和一定的時(shí)序控制結(jié)合在一起才有用,
11、如果一個(gè)結(jié)合在一起才有用,如果一個(gè)alwaysalways語句沒有時(shí)序控制,則這個(gè)語句沒有時(shí)序控制,則這個(gè)alwaysalways語句將回生成一個(gè)仿真死鎖語句將回生成一個(gè)仿真死鎖。如:。如: always areg = areg;always areg = areg; 5.2 過程結(jié)構(gòu)總結(jié)過程結(jié)構(gòu)總結(jié) n在過程塊中的賦值稱為過程賦值。在過程塊中的賦值稱為過程賦值。n在過程賦值語句中表達(dá)式左邊的信號(hào)必須是寄存器類型(如在過程賦值語句中表達(dá)式左邊的信號(hào)必須是寄存器類型(如reg類型)類型)n在過程賦值語句等式右邊可以是任何有效的表達(dá)式,數(shù)據(jù)類在過程賦值語句等式右邊可以是任何有效的表達(dá)式,數(shù)據(jù)類型也
12、沒有限制。型也沒有限制。n如果一個(gè)信號(hào)沒有聲明則缺省為如果一個(gè)信號(hào)沒有聲明則缺省為wire類型。使用過程賦值類型。使用過程賦值語句給語句給wire賦值會(huì)產(chǎn)生錯(cuò)誤。賦值會(huì)產(chǎn)生錯(cuò)誤。在過程塊中可以說明過程時(shí)序。過程時(shí)序控制有三類:在過程塊中可以說明過程時(shí)序。過程時(shí)序控制有三類:n簡單延時(shí)簡單延時(shí)(#delay):延遲指定時(shí)間步后執(zhí)行:延遲指定時(shí)間步后執(zhí)行n邊沿敏感的時(shí)序控制:邊沿敏感的時(shí)序控制:()n在信號(hào)發(fā)生翻轉(zhuǎn)后執(zhí)行。在信號(hào)發(fā)生翻轉(zhuǎn)后執(zhí)行。n可以說明信號(hào)有效沿是上升沿可以說明信號(hào)有效沿是上升沿(posedge)還是下降沿還是下降沿(negedge)。n可以用關(guān)鍵字可以用關(guān)鍵字or指定多個(gè)參數(shù)。
13、指定多個(gè)參數(shù)。n電平敏感的時(shí)序控制:電平敏感的時(shí)序控制:wait()n直至直至expr值為真時(shí)(非零)才執(zhí)行。值為真時(shí)(非零)才執(zhí)行。n若若expr已經(jīng)為真則立即執(zhí)行。已經(jīng)為真則立即執(zhí)行。5.2 過程結(jié)構(gòu)總結(jié)過程結(jié)構(gòu)總結(jié) 簡單延時(shí)簡單延時(shí)在在test bench中使用簡單延時(shí)(中使用簡單延時(shí)(#延時(shí))施加激勵(lì),或在行為模型中模擬延時(shí))施加激勵(lì),或在行為模型中模擬實(shí)際延時(shí)。實(shí)際延時(shí)。module muxtwo (out, a, b, sl); input a, b, sl; output out; reg out; always ( sl or a or b) if (! sl) #10 out
14、 = a; / 從從a a到到outout延時(shí)延時(shí)1010個(gè)時(shí)間單位個(gè)時(shí)間單位 else #12 out = b;/從從b b到到outout延時(shí)延時(shí)1212個(gè)時(shí)間單位個(gè)時(shí)間單位endmodule在簡單延時(shí)中可以使用模塊參數(shù)在簡單延時(shí)中可以使用模塊參數(shù)parameter:module clock_gen (clk); output clk; reg clk; parameter cycle = 20; initial clk = 0; always #(cycle/2) clk = clk;endmodule邊沿敏感時(shí)序邊沿敏感時(shí)序時(shí)序控制時(shí)序控制可以用在可以用在RTL級(jí)或行為級(jí)組合邏輯或時(shí)序
15、邏輯描述中??杉?jí)或行為級(jí)組合邏輯或時(shí)序邏輯描述中。可以用關(guān)鍵字以用關(guān)鍵字posedge和和negedge限定信號(hào)敏感邊沿。敏感表中可以有多個(gè)限定信號(hào)敏感邊沿。敏感表中可以有多個(gè)信號(hào),用關(guān)鍵字信號(hào),用關(guān)鍵字or連接。連接。module reg_ adder (out, a, b, clk); input clk; input 2: 0 a, b; output 3: 0 out; reg 3: 0 out; reg 3: 0 sum; always ( a or b) / 若若a或或b發(fā)生任何變化,執(zhí)行發(fā)生任何變化,執(zhí)行 #5 sum = a + b; always ( negedge clk)
16、 / 在在clk下降沿執(zhí)行下降沿執(zhí)行 out = sum;endmodule注注:事件控制符:事件控制符or和位或操作符和位或操作符|及邏輯或操作符及邏輯或操作符|沒有任何關(guān)系。沒有任何關(guān)系。過程語句具有順序與并行雙重性過程語句具有順序與并行雙重性一、一、語句的順序執(zhí)行語句的順序執(zhí)行 在在 “always”always”模塊內(nèi),邏輯按書寫的模塊內(nèi),邏輯按書寫的順序順序執(zhí)行。執(zhí)行。 順序語句順序語句“always”“always”模塊內(nèi)的語句。模塊內(nèi)的語句。 在在 “always”always”模塊內(nèi),若隨意顛倒賦值語句的書寫順模塊內(nèi),若隨意顛倒賦值語句的書寫順序,可能導(dǎo)致不同的結(jié)果序,可能導(dǎo)致
17、不同的結(jié)果 注意阻塞賦值語句當(dāng)本語句結(jié)束時(shí)即完成賦值操作!注意阻塞賦值語句當(dāng)本語句結(jié)束時(shí)即完成賦值操作!例例1順序執(zhí)行模塊順序執(zhí)行模塊1。module serial1(q,a,clk); output q,a; input clk; reg q,a; always (posedge clk) begin q=q; /阻塞賦值語句阻塞賦值語句 a=q; endendmodule例例2順序執(zhí)行模塊順序執(zhí)行模塊2。module serial2(q,a,clk); output q,a; input clk; reg q,a; always (posedge clk) begin a=q; q=q;
18、endendmodule對前一時(shí)刻的對前一時(shí)刻的q q值取反值取反對當(dāng)前時(shí)刻的對當(dāng)前時(shí)刻的q q值取反值取反對前一時(shí)刻的對前一時(shí)刻的q q值取反值取反對前一時(shí)刻的對前一時(shí)刻的q q值取反值取反a a和和q q的波形反相!的波形反相!a a和和q q的波形完全相同!的波形完全相同!過程語句具有順序與并行雙重性過程語句具有順序與并行雙重性serial1.vwfserial2.vwfa a和和q q的波的波形反相!形反相!a a和和q q的波形的波形完全一樣!完全一樣!q=q; a=q;a=q; q=q;過程語句具有順序與并行雙重性過程語句具有順序與并行雙重性二、二、語句的并行執(zhí)行語句的并行執(zhí)行 “
19、always”always”模塊、模塊、“assign”assign”語句、實(shí)例元件都是同時(shí)(即語句、實(shí)例元件都是同時(shí)(即并并行行)執(zhí)行的?。﹫?zhí)行的! 它們在程序中的先后順序?qū)Y(jié)果并沒有影響。它們在程序中的先后順序?qū)Y(jié)果并沒有影響。 下面下面 兩個(gè)例子將兩條賦值語句分別放在兩個(gè)兩個(gè)例子將兩條賦值語句分別放在兩個(gè)“always”always”模塊模塊中,盡管兩個(gè)中,盡管兩個(gè)“always”always”模塊順序相反,但仿真波形完全相模塊順序相反,但仿真波形完全相同,同,過程語句具有順序與并行雙重性過程語句具有順序與并行雙重性例例3.11.3并行執(zhí)行模塊并行執(zhí)行模塊1。module parall1
20、(q,a,clk); output q,a; input clk; reg q,a; always (posedge clk) begin q=q; end always (posedge clk) begin a=q; endendmodule例例3.11.4并行執(zhí)行模塊并行執(zhí)行模塊2。module parall2(q,a,clk); output q,a; input clk; reg q,a; always (posedge clk) begin a=q; end always (posedge clk) begin q=q; endendmodule過程語句具有順序與并行雙重性過程語句
21、具有順序與并行雙重性parall1.vwf對前一時(shí)刻的對前一時(shí)刻的q q值取反值取反對前一時(shí)刻的對前一時(shí)刻的q q值取反值取反不完整條件語句與時(shí)序電路的關(guān)系不完整條件語句與時(shí)序電路的關(guān)系自然完全的條件語句自然完全的條件語句module comcase ( input wire a, b, c, d, output reg e ); always ( a or b or c or d) case ( a, b) 2b11: e = d; 2b10: e = c; 2b01: e = 1b0; 2b00: e = 1b1; endcaseendmodulemodule compif ( input
22、 wire a, b, c, d, output reg e ); always ( a or b or c or d) if (a & b) e = d; else if (a & b) e = c; else if ( a & b) e = 1b0; else if ( a & b) e = 1b1;endmodule 例中定義了所有可能的選項(xiàng),綜合結(jié)果是純組合邏輯,沒有不期望例中定義了所有可能的選項(xiàng),綜合結(jié)果是純組合邏輯,沒有不期望的鎖存器產(chǎn)生。的鎖存器產(chǎn)生。不完全條件語句不完全條件語句module inccase ( input wire a, b, c, d, output reg
23、e ); always ( a or b or c or d) case ( a, b) 2b11: e = d; 2b10: e = c; endcaseendmodulemodule incpif ( input wire a, b, c, d, output reg e ); always ( a or b or c or d) if (a & b) e = d; else if (a & b) e = c;endmodule在上面的例子中,當(dāng)在上面的例子中,當(dāng)a變?yōu)榱銜r(shí),不對變?yōu)榱銜r(shí),不對e賦新值。因此賦新值。因此e保保存其值直到存其值直到a變?yōu)樽優(yōu)?。這是鎖存器的特性。這是鎖存器的特
24、性。 若若 a a 變?yōu)樽優(yōu)?0 0,e e 為何值為何值default完全條件語句完全條件語句module comcase ( input wire a, b, c, d, output reg e ); always ( a, b, c, d) case ( a, b) 2b11: e = d; 2b10: e = c; default: e = bx; endcaseendmodulemodule compif ( input wire a, b, c, d, output reg e ); always ( a, b, c, d) if (a & b) e = d; else if (
25、a & b) e = c; else e = bx;endmodule 綜合工具將綜合工具將 bx作為無關(guān)值,因此作為無關(guān)值,因此if語句類似于語句類似于“ full case”,可以,可以進(jìn)行更好的優(yōu)化。進(jìn)行更好的優(yōu)化。 例中沒有定義所有選項(xiàng),但對沒有定義的項(xiàng)給出了缺省行為。同樣,例中沒有定義所有選項(xiàng),但對沒有定義的項(xiàng)給出了缺省行為。同樣,其綜合結(jié)果為純組合邏輯其綜合結(jié)果為純組合邏輯沒有不期望的鎖存器產(chǎn)生。沒有不期望的鎖存器產(chǎn)生。 5.3 移位寄存器設(shè)計(jì)移位寄存器設(shè)計(jì) 5.3.1 含同步預(yù)置功能的移位寄存器設(shè)計(jì)含同步預(yù)置功能的移位寄存器設(shè)計(jì) 同步并行預(yù)置功能的同步并行預(yù)置功能的8位右移移位寄
26、存器位右移移位寄存器1.高高7位二進(jìn)制數(shù)位二進(jìn)制數(shù)更新低更新低7位的值,位的值,最高位由最初高最高位由最初高位填補(bǔ)位填補(bǔ)5.3.2 模式可控的移位寄存器設(shè)計(jì)模式可控的移位寄存器設(shè)計(jì) 移位運(yùn)算符移位運(yùn)算符移位運(yùn)算符移位運(yùn)算符說明說明 n An 或或 An A3 = 4b0001; 4b10014 = 4b0000 4b10011 = 5b10010; 4b10012 = 6b100100; 16 = 32b1000000v將操作數(shù)右移或左移將操作數(shù)右移或左移n n位,相當(dāng)位,相當(dāng)于將操作數(shù)除以或乘以于將操作數(shù)除以或乘以2 2n n。右移位數(shù)不變,右移位數(shù)不變,但右移的數(shù)據(jù)但右移的數(shù)據(jù)會(huì)丟失!會(huì)丟
27、失!5.3.3 使用移位操作符設(shè)計(jì)移位寄存器使用移位操作符設(shè)計(jì)移位寄存器 5.3.3 使用移位操作符設(shè)計(jì)移位寄存器使用移位操作符設(shè)計(jì)移位寄存器異步復(fù)位的異步復(fù)位的4位右移移位寄存器位右移移位寄存器 如前例的設(shè)計(jì)原理如前例的設(shè)計(jì)原理使用移位操作符使用移位操作符5.4 5.4 乘法器設(shè)計(jì)及相關(guān)語句應(yīng)用乘法器設(shè)計(jì)及相關(guān)語句應(yīng)用 parameter parameter常量(符號(hào)常量)常量(符號(hào)常量)用用parameterparameter來定義一個(gè)標(biāo)識(shí)符,代表一個(gè)常量來定義一個(gè)標(biāo)識(shí)符,代表一個(gè)常量稱為稱為符號(hào)符號(hào)常量。常量。參數(shù)型數(shù)據(jù)參數(shù)型數(shù)據(jù)的確認(rèn)符的確認(rèn)符parameterparameter 標(biāo)示
28、符標(biāo)示符1 = 1 = 表達(dá)式表達(dá)式, ,標(biāo)示符標(biāo)示符2 = 2 = 表達(dá)式表達(dá)式, , ;每個(gè)賦值語句的右邊必須為每個(gè)賦值語句的右邊必須為常數(shù)常數(shù)表達(dá)式,即只能包含數(shù)字或先表達(dá)式,即只能包含數(shù)字或先前定義過的符號(hào)常量!前定義過的符號(hào)常量! parameter addrwidth = 16parameter addrwidth = 16; / /合法格式合法格式 parameter addrwidth = datawidthparameter addrwidth = datawidth* *2 2; / /非法格式非法格式常用參數(shù)來定義常用參數(shù)來定義延遲時(shí)間延遲時(shí)間和和變量寬度變量寬度??捎米?/p>
29、符串表示的任何地方可用字符串表示的任何地方, ,都可以用定義的參數(shù)來代替。都可以用定義的參數(shù)來代替。參數(shù)是參數(shù)是本地本地的,其定義只在本模塊內(nèi)有效。的,其定義只在本模塊內(nèi)有效。賦值語句表賦值語句表5.4.2 整數(shù)型寄存器類型定義整數(shù)型寄存器類型定義整數(shù)型寄存器類型即整數(shù)型寄存器類型即integer類型:同屬于寄存器類型或變量類型類型:同屬于寄存器類型或變量類型常用來表示循環(huán)變量,用于指示循環(huán)的次數(shù)。常用來表示循環(huán)變量,用于指示循環(huán)的次數(shù)。格式:格式:不必指定位數(shù),默認(rèn)不必指定位數(shù),默認(rèn)32位寬位寬5.4 乘法器設(shè)計(jì)及相關(guān)語句應(yīng)用乘法器設(shè)計(jì)及相關(guān)語句應(yīng)用 循環(huán)語句分為循環(huán)語句分為4 4種:種:n
30、for語句語句通過通過3 3個(gè)步驟來決定語句的循環(huán)執(zhí)行:個(gè)步驟來決定語句的循環(huán)執(zhí)行:n(1 1)給控制循環(huán)次數(shù)的變量賦初值。)給控制循環(huán)次數(shù)的變量賦初值。n(2 2)判定循環(huán)執(zhí)行條件,若為假則跳出循環(huán);若為真,)判定循環(huán)執(zhí)行條件,若為假則跳出循環(huán);若為真, 則執(zhí)行指定的語句后,轉(zhuǎn)到第(則執(zhí)行指定的語句后,轉(zhuǎn)到第(3 3)步。)步。n(3 3)修改循環(huán)變量的值,返回第()修改循環(huán)變量的值,返回第(2 2)步。)步。nrepeat語句語句連續(xù)執(zhí)行一條語句連續(xù)執(zhí)行一條語句n n次次nwhile語句語句執(zhí)行一條語句,直到循環(huán)執(zhí)行條件不滿足;執(zhí)行一條語句,直到循環(huán)執(zhí)行條件不滿足;若一開始若一開始條件即不
31、滿足,則該語句一次也不能被執(zhí)行!條件即不滿足,則該語句一次也不能被執(zhí)行!nforever語句語句無限連續(xù)地執(zhí)行語句,可用無限連續(xù)地執(zhí)行語句,可用disable語句語句中斷?。ㄖ袛啵。ú豢刹豢删C合的語句)綜合的語句)一、一、forfor語句語句forfor (表達(dá)式(表達(dá)式1 1;表達(dá)式;表達(dá)式2 2;表達(dá)式;表達(dá)式3 3)語句)語句forfor(循環(huán)變量賦初值;循環(huán)執(zhí)行條件;循環(huán)變量增值)(循環(huán)變量賦初值;循環(huán)執(zhí)行條件;循環(huán)變量增值) 執(zhí)行語句執(zhí)行語句兩兩條語句條語句8 8條語句條語句一般形式一般形式簡單應(yīng)用形式簡單應(yīng)用形式 相當(dāng)于采用相當(dāng)于采用whilewhile語句建立的循環(huán)結(jié)構(gòu):語句建立
32、的循環(huán)結(jié)構(gòu):beginbegin 循環(huán)變量賦初值;循環(huán)變量賦初值; while(while(循環(huán)執(zhí)行條件循環(huán)執(zhí)行條件) ) begin begin 循環(huán)變量增值;循環(huán)變量增值; endendendendforfor語句比語句比whilewhile語句簡潔!語句簡潔! 例例 用用forfor語句描述的語句描述的7 7人投票表決器:若超過人投票表決器:若超過4 4人(含人(含4 4人)投贊成票,人)投贊成票,則表決通過。則表決通過。module vote7 ( pass,vote ); output pass; input 6:0 vote; reg2:0 sum; /sum/sum為為regre
33、g型變量,用于統(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) 一、一、for語句語句voter7.vwf超過超過4人贊成人贊成,則則pass=1 一、一、for語句語句 例例 用用forfor語句初始化語句初始化memorymemory。注:當(dāng)執(zhí)行語句有多條時(shí),可用注:當(dāng)執(zhí)行語句有多條時(shí),可用begin_endbegin_end語句將其括起來!語句將其括起來!begin:init_mem reg7:0 tempi; / /存儲(chǔ)器的地
34、址變量存儲(chǔ)器的地址變量 for(tempi = 0;tempi1; / /右移右移1 1位位 end endendmodule 例例 用用whilewhile語句對一個(gè)語句對一個(gè)8 8位二進(jìn)制數(shù)中值為位二進(jìn)制數(shù)中值為1 1的位進(jìn)行計(jì)數(shù)。的位進(jìn)行計(jì)數(shù)。改變循環(huán)執(zhí)行條件表達(dá)式的值改變循環(huán)執(zhí)行條件表達(dá)式的值如何用如何用for語句語句改寫此程序呢?改寫此程序呢?三、三、 while 例例 用用forfor語句對一個(gè)語句對一個(gè)8 8位二進(jìn)制數(shù)中值為位二進(jìn)制數(shù)中值為1 1的位進(jìn)行計(jì)數(shù)。的位進(jìn)行計(jì)數(shù)。簡單!簡單!三、三、 whilecount1s_for_good.vwf三、三、 while5.4 乘法器設(shè)
35、計(jì)及相關(guān)語句應(yīng)用乘法器設(shè)計(jì)及相關(guān)語句應(yīng)用 Repeat語句實(shí)現(xiàn)語句實(shí)現(xiàn)4位乘法器設(shè)計(jì)位乘法器設(shè)計(jì) while語句實(shí)現(xiàn)語句實(shí)現(xiàn)4位乘法器設(shè)計(jì)位乘法器設(shè)計(jì) 一、一、if-else語句語句 判定所給條件是否滿足,根據(jù)判定的結(jié)果(真或假)決判定所給條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的兩種操作之一。定執(zhí)行給出的兩種操作之一。 if-elseif-else語句有語句有3 3種形式種形式其中其中“表達(dá)式表達(dá)式”為為邏輯邏輯表達(dá)式或表達(dá)式或關(guān)系關(guān)系表達(dá)式,或表達(dá)式,或一一位位的的變量變量。若表達(dá)式的值為若表達(dá)式的值為0 0、或、或z z,則判定的結(jié)果為,則判定的結(jié)果為“假假”;若;若為為1 1
36、,則結(jié)果為,則結(jié)果為“真真”。語句可為單句,也可為多句;多句時(shí)一定要用語句可為單句,也可為多句;多句時(shí)一定要用“begin_endbegin_end”語句括起來,形成一個(gè)復(fù)合塊語句。語句括起來,形成一個(gè)復(fù)合塊語句。對于每個(gè)判定只對于每個(gè)判定只有有兩兩個(gè)分支個(gè)分支 條件語句分為兩種:條件語句分為兩種:if-elseif-else語句和語句和casecase語句;語句; 它們都是順序語句,應(yīng)放在它們都是順序語句,應(yīng)放在“alwaysalways”塊內(nèi)!塊內(nèi)!5.5 if語句一般用法語句一般用法 允許一定形式的表達(dá)式簡寫方式,如:允許一定形式的表達(dá)式簡寫方式,如:if(expression) if(
37、expression) 等同于等同于if(expression = = 1) if(expression = = 1) if(if(!expression) expression) 等同于等同于if(expressionif(expression!= 1)= 1) ifif(表達(dá)式)(表達(dá)式) 語句語句1 1;ifif(表達(dá)式(表達(dá)式1 1) 語句語句1 1;elseelse 語句語句2 2;ifif(表達(dá)式(表達(dá)式1 1) 語句語句1 1;else ifelse if(表達(dá)式(表達(dá)式2 2)語句)語句2 2; else ifelse if(表達(dá)式(表達(dá)式n n)語句)語句n n;方式方式1
38、1:方式方式2 2:方式方式3 3:適于對適于對不同的不同的條件條件,執(zhí)行不,執(zhí)行不同的語句同的語句5.5 if語句一般用法語句一般用法 if if語句可以語句可以嵌套嵌套; 若若 i fi f 與與 e l s ee l s e 的 數(shù) 目 不 一 樣 , 注 意 用的 數(shù) 目 不 一 樣 , 注 意 用“begin_endbegin_end”語句來確定語句來確定if if與與elseelse的配對關(guān)的配對關(guān)系!系!ifif(表達(dá)式(表達(dá)式1 1) ifif(表達(dá)式(表達(dá)式2 2)語句)語句1 1; elseelse 語句語句2 2;elseelse ifif(表達(dá)式(表達(dá)式3 3)語句)語
39、句3 3; elseelse 語句語句4 4;ifif(表達(dá)式(表達(dá)式1 1) beginbegin ifif(表達(dá)式(表達(dá)式2 2)語句)語句1 1; endendelseelse 語句語句2 2;當(dāng)當(dāng)if if與與elseelse的數(shù)目不一樣時(shí),最好用的數(shù)目不一樣時(shí),最好用“begin_endbegin_end”語句將單獨(dú)的語句將單獨(dú)的ifif語句括起語句括起來:來:if if語句的嵌套:語句的嵌套:5.5 if語句一般用法語句一般用法 例例 模為模為6060的的BCDBCD碼加法計(jì)數(shù)器碼加法計(jì)數(shù)器counter60.vcounter60.valwaysalways塊語句和塊語句和assi
40、gnassign語句是并行語句是并行執(zhí)行的執(zhí)行的!在在alwaysalways塊內(nèi)塊內(nèi)的語句是順序的語句是順序執(zhí)行的執(zhí)行的!5.5 if語句一般用法語句一般用法 v 注意:注意:if (reset)if (reset) else if (load) else if (load) else if (cin) else if (cin) 不要寫成不要寫成3 3個(gè)并列的個(gè)并列的if if語句:語句: if (reset)if (reset) if (load) if (load) if (cin) if (cin)v 因?yàn)檫@樣寫則是同時(shí)對因?yàn)檫@樣寫則是同時(shí)對3 3個(gè)信號(hào)個(gè)信號(hào)resetreset、l
41、oadload和和cincin進(jìn)行判斷進(jìn)行判斷,現(xiàn)實(shí)中很可能出現(xiàn)三者同時(shí)為,現(xiàn)實(shí)中很可能出現(xiàn)三者同時(shí)為“1 1”的情況,即的情況,即3 3個(gè)條件個(gè)條件同時(shí)滿足,則應(yīng)該同時(shí)執(zhí)行它們對應(yīng)的執(zhí)行語句,但同時(shí)滿足,則應(yīng)該同時(shí)執(zhí)行它們對應(yīng)的執(zhí)行語句,但3 3條條執(zhí)行語句是對同一個(gè)信號(hào)執(zhí)行語句是對同一個(gè)信號(hào)qoutqout賦不同的值,顯然相互矛賦不同的值,顯然相互矛盾。故編譯時(shí)會(huì)報(bào)錯(cuò)!盾。故編譯時(shí)會(huì)報(bào)錯(cuò)!5.5 if語句一般用法語句一般用法 二、使用條件語句注意事項(xiàng)二、使用條件語句注意事項(xiàng) 應(yīng)注意列出應(yīng)注意列出所有所有條件分支,否則當(dāng)條件不滿足時(shí),條件分支,否則當(dāng)條件不滿足時(shí),編譯器會(huì)生成一個(gè)鎖存器保持原
42、值!編譯器會(huì)生成一個(gè)鎖存器保持原值! 這一點(diǎn)可用于設(shè)計(jì)時(shí)序電路,如計(jì)數(shù)器:條件滿足這一點(diǎn)可用于設(shè)計(jì)時(shí)序電路,如計(jì)數(shù)器:條件滿足時(shí)加時(shí)加1 1,否則保持原值不變。,否則保持原值不變。 而在而在組合組合電路設(shè)計(jì)中,應(yīng)避免生成隱含電路設(shè)計(jì)中,應(yīng)避免生成隱含鎖存器鎖存器!有!有效效的方法是在的方法是在if語句最后寫上語句最后寫上else項(xiàng);在項(xiàng);在case語句最語句最后寫上后寫上default項(xiàng)。項(xiàng)。5.5 if語句一般用法語句一般用法 如何正確使用如何正確使用ifif語句?語句?生成了不想要的鎖存器:生成了不想要的鎖存器:不會(huì)生成鎖存器:不會(huì)生成鎖存器:always (al or d) begin
43、if(al) q=d; enddDFFD Qalq例例 設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器always (al or d) begin if(al) q=d; else q=0; end0dalqmultiplexer當(dāng)當(dāng)al為為0時(shí),時(shí),q保持原值!保持原值!當(dāng)當(dāng)al為為0時(shí),時(shí),q等于等于0!5.5 if語句一般用法語句一般用法 always (sel1:0 or a or b) case(sel1:0) 2b00: q=a; 2b11: q=b; endcase生成了不想要的鎖存器:生成了不想要的鎖存器:例例 設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器設(shè)計(jì)一個(gè)數(shù)據(jù)選擇器always (sel1:0 or a
44、or b) case(sel1:0) 2b00: q=a; 2b11: q=b; default: q=b0; endcase不會(huì)生成鎖存器:不會(huì)生成鎖存器:如何正確使用如何正確使用casecase語句?語句?當(dāng)當(dāng)sel為為00或或11以外的值以外的值時(shí),時(shí),q保持原值!保持原值!v避免生成鎖存器的避免生成鎖存器的原則原則:如果用到如果用到if if語句,最好寫上語句,最好寫上elseelse項(xiàng);項(xiàng);如果用到如果用到casecase語句,最好寫上語句,最好寫上defaultdefault項(xiàng)。項(xiàng)。5.5 if語句一般用法語句一般用法 module single_if(a, b, c, d, se
45、l, z); input a, b, c, d; input 3:0 sel; output z; reg z; always (a or b or c or d or sel) begin if (sel3) z = d; else if (sel2) z = c; else if (sel1) z = b; else if (sel0) z = a; else z = 0; endendmodulemodule mult_if(a, b, c, d, sel, z); input a, b, c, d; input 3:0 sel; output z; reg z; always (a o
46、r b or c or d or sel) begin z = 0; if (sel0) z = a; if (sel1) z = b; if (sel2) z = c; if (sel3) z = d; endendmodule例例1.1a 單個(gè)單個(gè) if 語句語句例例1.1b 多重多重 if 語句語句注意代碼注意代碼的優(yōu)先級(jí)的優(yōu)先級(jí)推薦方式推薦方式5.5 if語句一般用法語句一般用法 5.5 if語句一般用法語句一般用法 5.5 if語句一般用法 ?可以用可以用Z代替。代替。具有向上相與的功能具有向上相與的功能 。5.5 if語句一般用法語句一般用法 默認(rèn):默認(rèn):else與最近的沒有與最近
47、的沒有else的的if相關(guān)聯(lián)相關(guān)聯(lián)if(A=0)if(B=0) Q=0;else Q=1;5.6 三態(tài)與雙向端口設(shè)計(jì)三態(tài)與雙向端口設(shè)計(jì) 5.6.1 三態(tài)控制電路設(shè)計(jì)三態(tài)控制電路設(shè)計(jì) 三態(tài)門:都有一個(gè)三態(tài)門:都有一個(gè)EN控制使能端,來控制門電路的通斷??刂剖鼓芏耍瑏砜刂崎T電路的通斷。 可以具備可以具備0、 1、z三種狀態(tài)的器件三種狀態(tài)的器件 。是重要的總線接口電路。是重要的總線接口電路。用用“Z”對一個(gè)變量賦對一個(gè)變量賦值,就引入了三態(tài)門值,就引入了三態(tài)門注意:注意:“z”只能只能在端口賦值,不在端口賦值,不能被信號(hào)所傳遞能被信號(hào)所傳遞庫元件的名字為:庫元件的名字為:tri用關(guān)鍵詞用關(guān)鍵詞ino
48、ut聲明一個(gè)雙向端口聲明一個(gè)雙向端口 inout 7:0 databus;雙向端口聲明遵循下列規(guī)則:雙向端口聲明遵循下列規(guī)則:在同一時(shí)間應(yīng)只從一個(gè)方向驅(qū)動(dòng)在同一時(shí)間應(yīng)只從一個(gè)方向驅(qū)動(dòng)inout端口。端口。 例如:在例如:在RAM模型中,如果使用雙向數(shù)據(jù)總線讀取模型中,如果使用雙向數(shù)據(jù)總線讀取RAM數(shù)據(jù),同時(shí)在數(shù)據(jù),同時(shí)在數(shù)據(jù)總線上驅(qū)動(dòng)寫數(shù)據(jù),則會(huì)產(chǎn)生邏輯沖突,使數(shù)據(jù)總線變?yōu)槲粗?。?shù)據(jù)總線上驅(qū)動(dòng)寫數(shù)據(jù),則會(huì)產(chǎn)生邏輯沖突,使數(shù)據(jù)總線變?yōu)槲粗?必須設(shè)計(jì)與必須設(shè)計(jì)與inout端口相關(guān)的邏輯以確保正確操作。當(dāng)把該端口作為輸端口相關(guān)的邏輯以確保正確操作。當(dāng)把該端口作為輸入使用時(shí),必須禁止輸出邏輯(高阻態(tài)
49、)。入使用時(shí),必須禁止輸出邏輯(高阻態(tài))。5.6.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 5.6.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì)一位雙向口,使一位雙向口,使用了用了assign語句語句和條件操作符和條件操作符5.6 三態(tài)與雙向端口設(shè)計(jì)三態(tài)與雙向端口設(shè)計(jì) (雙向端口的(雙向端口的Verilog描述)描述)5.6.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 1.if語句的完整表述,克服時(shí)序元件的引入。語句的完整表述,克服時(shí)序元件的引入。2.Q輸入時(shí),設(shè)定為高阻態(tài),使輸入時(shí),設(shè)定為高阻態(tài),使Q成為真正的雙向口成為真正的雙向口5.6 三態(tài)與雙向端口設(shè)計(jì)三態(tài)與雙向端口設(shè)計(jì) 5.6.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 5.6.3 三態(tài)總
50、線控制電路設(shè)計(jì)(四位四通道三態(tài)總線驅(qū)動(dòng)器)三態(tài)總線控制電路設(shè)計(jì)(四位四通道三態(tài)總線驅(qū)動(dòng)器) 只對過程結(jié)束前的語句進(jìn)行賦值只對過程結(jié)束前的語句進(jìn)行賦值always語句并行性,但始終一條被執(zhí)行語句并行性,但始終一條被執(zhí)行always語句中順序語句語句中順序語句具有并行執(zhí)行的特征。具有并行執(zhí)行的特征。5.6 三態(tài)與雙向端口設(shè)計(jì)三態(tài)與雙向端口設(shè)計(jì) 5.6.3 三態(tài)總線控制電路設(shè)計(jì)三態(tài)總線控制電路設(shè)計(jì) 使用連續(xù)賦值語句和條件操作符,與例使用連續(xù)賦值語句和條件操作符,與例31結(jié)果相同。結(jié)果相同。5.7 ??煽赜?jì)數(shù)器設(shè)計(jì)模可控計(jì)數(shù)器設(shè)計(jì) 5.7.1 同步加載模型設(shè)計(jì)同步加載模型設(shè)計(jì) 分類:同步清零計(jì)數(shù)器、異
51、步清零計(jì)數(shù)器分類:同步清零計(jì)數(shù)器、異步清零計(jì)數(shù)器 給定計(jì)數(shù)模給定計(jì)數(shù)模N,當(dāng)計(jì)數(shù)到,當(dāng)計(jì)數(shù)到N時(shí),清零,從頭開始計(jì)數(shù))時(shí),清零,從頭開始計(jì)數(shù)) 同步加載計(jì)數(shù)器、異步加載計(jì)數(shù)器同步加載計(jì)數(shù)器、異步加載計(jì)數(shù)器 給定模式給定模式M,計(jì)數(shù)滿溢出時(shí),加載預(yù)置數(shù),從新計(jì)數(shù)。,計(jì)數(shù)滿溢出時(shí),加載預(yù)置數(shù),從新計(jì)數(shù)。5.7 ??煽赜?jì)數(shù)器設(shè)計(jì)??煽赜?jì)數(shù)器設(shè)計(jì) 5.7.1 同步加載模型設(shè)計(jì)同步加載模型設(shè)計(jì) 一個(gè)復(fù)雜電路的完整一個(gè)復(fù)雜電路的完整Verilog HDLVerilog HDL模型由若干個(gè)模型由若干個(gè)Verilog Verilog HDLHDL模塊構(gòu)成,每個(gè)模塊由若干的子模塊構(gòu)成模塊構(gòu)成,每個(gè)模塊由若干的子
52、模塊構(gòu)成可分別可分別用不同抽象級(jí)別的用不同抽象級(jí)別的Verilog HDLVerilog HDL描述。描述。 在同一個(gè)在同一個(gè)Verilog HDLVerilog HDL模塊中可有多種級(jí)別的描述。模塊中可有多種級(jí)別的描述。系統(tǒng)級(jí)系統(tǒng)級(jí)(system level): (system level): 用高級(jí)語言結(jié)構(gòu)(如用高級(jí)語言結(jié)構(gòu)(如casecase語句)實(shí)現(xiàn)的設(shè)語句)實(shí)現(xiàn)的設(shè)計(jì)模塊外部性能的模型;計(jì)模塊外部性能的模型;算法級(jí)算法級(jí)(algorithmic level): (algorithmic level): 用高級(jí)語言結(jié)構(gòu)實(shí)現(xiàn)的設(shè)計(jì)算法模用高級(jí)語言結(jié)構(gòu)實(shí)現(xiàn)的設(shè)計(jì)算法模型(寫出邏輯表達(dá)式);
53、型(寫出邏輯表達(dá)式);RTLRTL級(jí)級(jí)(register transfer level): (register transfer level): 描述數(shù)據(jù)在寄存器之間流動(dòng)描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型;和如何處理這些數(shù)據(jù)的模型;門級(jí)門級(jí)(gate level): (gate level): 描述邏輯門(如與門、非門、或門、與非門、描述邏輯門(如與門、非門、或門、與非門、三態(tài)門等)以及邏輯門之間連接的模型;三態(tài)門等)以及邏輯門之間連接的模型;開關(guān)級(jí)開關(guān)級(jí)(switch level): (switch level): 描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)及其之間描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)及
54、其之間連接的模型。連接的模型。5.9 Verilog的描述風(fēng)格的描述風(fēng)格 一、一、Verilog HDLVerilog HDL的的行為級(jí)行為級(jí)描述描述包括系統(tǒng)級(jí)包括系統(tǒng)級(jí), ,算法級(jí)算法級(jí),RTL,RTL級(jí)級(jí)1. 1. 邏輯功能描述邏輯功能描述算法級(jí)算法級(jí)注注:首先必須根據(jù)邏輯功能寫出:首先必須根據(jù)邏輯功能寫出邏輯表達(dá)式邏輯表達(dá)式! 例例3.12.2 用邏輯表達(dá)式實(shí)現(xiàn)用邏輯表達(dá)式實(shí)現(xiàn)4 4選選1 1數(shù)據(jù)選擇器數(shù)據(jù)選擇器module mux4_1(out,in1,in2,in3,in4,cntrl1,cntrl2); output out; input in1,in2,in3,in4,cntrl
55、1,cntrl2; assign out=(in1 & cntrl1 & cntrl2) | (in2 & cntrl1 & cntrl2) | (in3 & cntrl1 & cntrl2) | (in4 & cntrl1 & cntrl2) ;endmodule5.9 Verilog的描述風(fēng)格的描述風(fēng)格 2. case2. case語句描述語句描述系統(tǒng)級(jí)系統(tǒng)級(jí) 只需知道輸入與輸出間的只需知道輸入與輸出間的真值表真值表!比調(diào)用門原語和采用邏!比調(diào)用門原語和采用邏輯功能描述都簡潔!輯功能描述都簡潔! 例例3.12.3 用用casecase語句描述語句描述4 4選選1 1數(shù)據(jù)選擇器數(shù)據(jù)選擇器mo
56、dule mux4_1(out,in1,in2,in3,in4,cntrl1,cntrl2); output out; input in1,in2,in3,in4,cntrl1,cntrl2; reg out; always (in1 or in2 or in3 or in4 or cntrl1 or cntrl2) case (cntrl1,cntrl2) 2b00:out=in1; 2b01:out=in2; 2b10:out=in3; 2b11:out=in4; default :out=1bx; endcaseendmodulecasecase語句應(yīng)語句應(yīng)放在放在alwaysalways塊內(nèi)!塊內(nèi)!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024設(shè)備技術(shù)合同范文
- 2024中國農(nóng)業(yè)發(fā)展銀行抵押擔(dān)保借款合同
- 2024施工圖設(shè)計(jì)委托合同參考范文
- 2024工程機(jī)械租賃的合同書
- 沈陽理工大學(xué)《MATAB技術(shù)應(yīng)用》2022-2023學(xué)年第一學(xué)期期末試卷
- 2024建筑鋼材供應(yīng)合同樣本
- 2024學(xué)校與教師之間的勞動(dòng)合同
- 深圳大學(xué)《中國社會(huì)史》2022-2023學(xué)年第一學(xué)期期末試卷
- 深圳大學(xué)《藥學(xué)文獻(xiàn)檢索與利用》2021-2022學(xué)年第一學(xué)期期末試卷
- 集體土地房屋征收協(xié)議書(2篇)
- 五年級(jí)英語上冊Unit1Getupontime!教案陜旅版
- 風(fēng)機(jī)安裝工程質(zhì)量通病及預(yù)防措施
- 三角形鋼管懸挑斜撐腳手架計(jì)算書
- 文件和文件夾的基本操作教案
- 剪紙教學(xué)課件53489.ppt
- 旅游業(yè)與公共關(guān)系PPT課件
- 勞動(dòng)法講解PPT-定稿..完整版
- 彩色的翅膀_《彩色的翅膀》課堂實(shí)錄
- 假如你愛我的正譜
- 銅芯聚氯乙烯絕緣聚氯乙烯護(hù)套控制電纜檢測報(bào)告可修改
- 中醫(yī)住院醫(yī)師規(guī)范化培訓(xùn)基地工作指南
評(píng)論
0/150
提交評(píng)論