版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2021-5-131 數(shù)字系統(tǒng)設(shè)計(jì)與數(shù)字系統(tǒng)設(shè)計(jì)與 verilogverilog hdlhdl 西安電子科技大學(xué)西安電子科技大學(xué) 雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室 宋萬(wàn)杰 2021-5-132 課程安排課程安排 課程時(shí)數(shù):46 學(xué)分?jǐn)?shù): 3 教材:verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程 出版社:出版社:北京航空航天大學(xué)出版社, 作作 者:者:夏宇聞編著 參考書: 1.verilog數(shù)字系統(tǒng)設(shè)計(jì)及應(yīng)用,西電出版社,袁俊泉等 編著; 2.硬件描述語(yǔ)言verilog 清華大學(xué)出版社,thomas ); u提供了雙向通路(總線)和電阻器件的原語(yǔ)提供了雙向通路(總線)和電阻器件的原語(yǔ); ;
2、 u可建立可建立mosmos器件的電荷分享和電荷衰減動(dòng)態(tài)模型。器件的電荷分享和電荷衰減動(dòng)態(tài)模型。 2021-5-1344 【例【例 2.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 out = b; endmodule a b sl out 2021-5-1345 mux(多路選擇器)的行為可以描述為:只 要信號(hào)a或b或sl發(fā)生變化,如果sl為0則選 擇a輸出;否則選擇b輸出。 這個(gè)行為的描述并沒(méi)有說(shuō)明如果輸入
3、a 或 b是三 態(tài)的(高阻時(shí))輸出應(yīng)該是什么,但有具體結(jié)構(gòu) 的真實(shí)電路是有一定的輸出的。 沒(méi)有考慮延時(shí)問(wèn)題 2021-5-1346 【例【例2.2】 module twomux (out, a, b, slmodule twomux (out, a, b, sl);); input a, b, sl input a, b, sl; ; output out; output out; not u1 (nsl, sl not u1 (nsl, sl ); ); and #1 u2 (sela, a, and #1 u2 (sela, a, nselnsel);); and #1 u3 (selb,
4、 b, sl and #1 u3 (selb, b, sl);); or #2 u4 (out, sela, or #2 u4 (out, sela, selbselb);); endmoduleendmodule a b sl selb sela nsel muxmux的結(jié)構(gòu)級(jí)描述,采用的結(jié)構(gòu)級(jí)描述,采用 verilogverilog基本單元基本單元( (門門) )描述。描描述。描 述中含有傳輸延時(shí)。述中含有傳輸延時(shí)。 2021-5-1347 【例【例 2.3】 module adder ( count,sum,a,b,cinmodule adder ( count,sum,a,b,cin
5、); ); input 2:0 a,b input 2:0 a,b; ; input cin input cin; ; output count; output count; output 2:0 sum; output 2:0 sum; assign count,sum=a+b+cin assign count,sum=a+b+cin; ; endmodule endmodule 2021-5-1348 【例【例 2.4】 module compare ( equal,a,b ); output equal; /聲明輸出信號(hào)聲明輸出信號(hào)equal input 1:0 a,b; /聲明輸入信號(hào)
6、聲明輸入信號(hào)a,b assign equal=(a=b)?)?1:0; /*如果兩個(gè)輸入信號(hào)相等則輸出為如果兩個(gè)輸入信號(hào)相等則輸出為1。否則輸。否則輸 出為出為0*/ endmodule 這個(gè)程序描述了一個(gè)比較器這個(gè)程序描述了一個(gè)比較器. .在這個(gè)程在這個(gè)程 中中,/,/* *.* */ /和和/./.表示注釋部分表示注釋部分, ,注釋只是注釋只是 為了方便程序員理解程序?yàn)榱朔奖愠绦騿T理解程序, ,對(duì)編譯是不起作用的。對(duì)編譯是不起作用的。 2021-5-1349 【例【例2.52.5】 module trist2(out,in,enable);module trist2(out,in,enab
7、le); output out; output out; input in ,enable; input in ,enable; bufil1 mybuf(out,in,enable bufil1 mybuf(out,in,enable);); endmoduleendmodule 2021-5-1350 【例【例2.62.6】 module trist1(sout,sin,ena);module trist1(sout,sin,ena); output sout output sout; ; input sin,ena input sin,ena; ; mytri tri_inst(.out
8、(sout),.in(sin),.enable(ena mytri tri_inst(.out(sout),.in(sin),.enable(ena);); /調(diào)用由調(diào)用由mytrimytri模塊定義的實(shí)例元件模塊定義的實(shí)例元件tri_insttri_inst,即把已定義的模塊,即把已定義的模塊myfrimyfri在本模塊中具體化在本模塊中具體化 為為tri_insttri_inst endmoduleendmodule module mytri(out,in,enablemodule mytri(out,in,enable);); output out; output out; input
9、in,enable input in,enable; ; assign out=enable?in:bz assign out=enable?in:bz; ; endmoduleendmodule 2021-5-1351 如何檢查上述例子其功能是否正確?如何檢查上述例子其功能是否正確? 需要有測(cè)試激勵(lì)信號(hào)輸入到被測(cè)模塊需要有測(cè)試激勵(lì)信號(hào)輸入到被測(cè)模塊 需要記錄被測(cè)模塊的輸出信號(hào)需要記錄被測(cè)模塊的輸出信號(hào) 需要把用功能和行為描述的需要把用功能和行為描述的verilogverilog模塊轉(zhuǎn)換為模塊轉(zhuǎn)換為 門級(jí)電路互連的電路結(jié)構(gòu)(綜合)。門級(jí)電路互連的電路結(jié)構(gòu)(綜合)。 需要對(duì)已經(jīng)轉(zhuǎn)換為門級(jí)電路結(jié)構(gòu)
10、的邏輯進(jìn)行測(cè)需要對(duì)已經(jīng)轉(zhuǎn)換為門級(jí)電路結(jié)構(gòu)的邏輯進(jìn)行測(cè) 試(門級(jí)電路仿真)。試(門級(jí)電路仿真)。 需要對(duì)布局布線后的電路結(jié)構(gòu)進(jìn)行測(cè)試。需要對(duì)布局布線后的電路結(jié)構(gòu)進(jìn)行測(cè)試。 (布局布線后仿真)。(布局布線后仿真)。 2021-5-1352 被測(cè)模塊被測(cè)模塊 激勵(lì)和控激勵(lì)和控 制信號(hào)制信號(hào) 輸出響應(yīng)輸出響應(yīng) 和驗(yàn)證和驗(yàn)證 2021-5-1353 通過(guò)上面的例子可以看到通過(guò)上面的例子可以看到: : (1 1)verilogverilog hdl hdl程序是由模塊構(gòu)成的。每個(gè)模塊的內(nèi)容都是位于程序是由模塊構(gòu)成的。每個(gè)模塊的內(nèi)容都是位于 modulemodule和和endmoduleendmodule兩
11、個(gè)語(yǔ)句之間。每個(gè)模塊實(shí)現(xiàn)特定的功能。兩個(gè)語(yǔ)句之間。每個(gè)模塊實(shí)現(xiàn)特定的功能。 (2 2)模塊是可以進(jìn)行層次嵌套的。)模塊是可以進(jìn)行層次嵌套的。 (3 3)每個(gè)模塊要進(jìn)行端口定義)每個(gè)模塊要進(jìn)行端口定義, ,并說(shuō)明輸入輸出口并說(shuō)明輸入輸出口, ,然后對(duì)模塊的功能進(jìn)然后對(duì)模塊的功能進(jìn) 行描述。行描述。 (4 4)verilogverilog hdl hdl程序的書寫格式自由程序的書寫格式自由, ,一行可以寫幾個(gè)語(yǔ)句一行可以寫幾個(gè)語(yǔ)句, ,一個(gè)語(yǔ)句一個(gè)語(yǔ)句 也可以分寫多行。也可以分寫多行。 (5 5)除了)除了endmoduleendmodule語(yǔ)句外語(yǔ)句外, ,每個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有分號(hào)。每
12、個(gè)語(yǔ)句和數(shù)據(jù)定義的最后必須有分號(hào)。 (6 6)可以用)可以用/ /* *.* */ /和和/./.對(duì)對(duì)verilogverilog hdl hdl程序的任何部分作注釋。程序的任何部分作注釋。 一個(gè)好的一個(gè)好的, ,有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋有使用價(jià)值的源程序都應(yīng)當(dāng)加上必要的注釋, ,以增強(qiáng)程序以增強(qiáng)程序 的可讀性和可維護(hù)性。的可讀性和可維護(hù)性。 verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程數(shù)字系統(tǒng)設(shè)計(jì)教程 第三講第三講 常用常用verilog 語(yǔ)法之一語(yǔ)法之一 宋萬(wàn)杰宋萬(wàn)杰 西安電子科技大學(xué)西安電子科技大學(xué) 雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室 2021-5-1355 veri
13、logverilog的基本設(shè)計(jì)單元是的基本設(shè)計(jì)單元是“模塊模塊”(block(block) ) 。一個(gè)。一個(gè) 模塊是由兩部分模塊是由兩部分 組成的,一部分描述接口,另一部分描述邏輯功能,組成的,一部分描述接口,另一部分描述邏輯功能, 即定義輸入是即定義輸入是 如何影響輸出的。如何影響輸出的。 module block1(a, b, c, d); module block1(a, b, c, d); input a, b; input a, b; output c, d; output c, d; assign c = a | b; assign c = a | b; assign d = a
14、assign d = a endmodule endmodule a b c d 2021-5-1356 verilogverilog 模塊的結(jié)構(gòu)由在模塊的結(jié)構(gòu)由在modulemodule和和 endmoduleendmodule 關(guān)關(guān) 鍵詞之間的四個(gè)主要部分組成:鍵詞之間的四個(gè)主要部分組成: module block1(a, b, c, d ); input a, b, c ; output d ; wire x; assign d = a | x ; assign x = ( b endmodule 2021-5-1357 3.1.1 3.1.1 模塊的端口定義模塊的端口定義 模塊的端口聲
15、明了模塊的輸入輸出口。其格式如模塊的端口聲明了模塊的輸入輸出口。其格式如 下:下: module module 模塊名模塊名( (口口1 1,口,口2 2,口,口3 3,口,口4, 4, );); 3.1.2 3.1.2 模塊內(nèi)容模塊內(nèi)容 模塊的內(nèi)容包括模塊的內(nèi)容包括i/oi/o說(shuō)明、內(nèi)部信號(hào)聲明、功能說(shuō)明、內(nèi)部信號(hào)聲明、功能 定義。定義。 輸入口: input信號(hào)位寬1:0 端口名1; input信號(hào)位寬1:0 端口名 2; input信號(hào)位寬1:0 端口名 i; /(共有i個(gè)輸入口) 2021-5-1358 輸出口輸出口 outputoutput信號(hào)位寬信號(hào)位寬1 1:0 0 端口名端口名
16、1 1; outputoutput信號(hào)位寬信號(hào)位寬1 1:0 0 端口名端口名2 2; output output信號(hào)位寬信號(hào)位寬1 1:0 0 端口名端口名j j; /(/(共有共有j j個(gè)輸出口個(gè)輸出口) ) 輸入輸入/ /輸出口:輸出口: inoutinout 信號(hào)位寬信號(hào)位寬1 1:0 0 端口名端口名1 1; inoutinout 信號(hào)位寬信號(hào)位寬1 1:0 0 端口名端口名2 2; inout inout 信號(hào)位寬信號(hào)位寬1 1:0 0 端口名端口名k k; /(/(共有共有k k個(gè)雙向總線端口個(gè)雙向總線端口) ) i/o i/o說(shuō)明也可以寫在端口聲明語(yǔ)句里。其格式如下:說(shuō)明也可以
17、寫在端口聲明語(yǔ)句里。其格式如下: module module_name(inputmodule module_name(input port1,input port2, port1,input port2, output port1,output port2 output port1,output port2 ); ); 2021-5-1359 在模塊內(nèi)用到的和與端口有關(guān)的在模塊內(nèi)用到的和與端口有關(guān)的wire wire 和和 regreg 變量的聲明。變量的聲明。 如:如: regreg width-1 : 0 r width-1 : 0 r變量變量1 1,r r變量變量 2 2 ; wire
18、 width-1 : 0 wwire width-1 : 0 w變量變量1 1,w w變量變量2 2 ; 2021-5-1360 模塊中最重要的部分是邏輯功能定義部分。有三種方模塊中最重要的部分是邏輯功能定義部分。有三種方 法可在法可在 模塊中產(chǎn)生邏輯。模塊中產(chǎn)生邏輯。 assign a = b and2 and_inst ( q, a, b); always (posedge clk or posedge clr) begin if (clr) q= 0; else if (en) q= d; end 2021-5-1361 如在模塊中邏輯功能由下面三個(gè)語(yǔ)句塊組成 : assign cs =
19、 ( a0 / -1 and2 and_inst ( qout, a, b); / -2 always (posedge clk or posedge clr) /-3 begin if (clr) q= 0; else if (en) q= d; end 三條語(yǔ)句是并行的,它們產(chǎn)生獨(dú)立的邏輯電路;三條語(yǔ)句是并行的,它們產(chǎn)生獨(dú)立的邏輯電路; 而在而在 always 塊中塊中: begin 與與 end 之間是順序執(zhí)行的。之間是順序執(zhí)行的。 2021-5-1362 在在verilogverilog hdl hdl中中, ,整型常量即整常數(shù)有以下四種進(jìn)整型常量即整常數(shù)有以下四種進(jìn) 制表示形式制表示
20、形式: : 1) 1) 二進(jìn)制整數(shù)二進(jìn)制整數(shù)(b(b或或b)b) 2) 2) 十進(jìn)制整數(shù)十進(jìn)制整數(shù)(d(d或或d)d) 3) 3) 十六進(jìn)制整數(shù)十六進(jìn)制整數(shù)(h(h或或h)h) 4) 4) 八進(jìn)制整數(shù)八進(jìn)制整數(shù)(o(o或或o)o) 數(shù)字表達(dá)方式有以下三種數(shù)字表達(dá)方式有以下三種: : 1) 1) 這是一種全面的描述方式。這是一種全面的描述方式。 2) 2) 在這種描述方式中在這種描述方式中, ,數(shù)字的位寬采用缺省位數(shù)字的位寬采用缺省位 寬寬( (這由具體的機(jī)器系統(tǒng)決定這由具體的機(jī)器系統(tǒng)決定, ,但至少但至少3232位位) )。 3) 3) 在這種描述方式中在這種描述方式中, ,采用缺省進(jìn)制十進(jìn)制
21、。采用缺省進(jìn)制十進(jìn)制。 2021-5-1363 l在數(shù)字電路中在數(shù)字電路中,x,x代表不定值代表不定值,z,z代表高阻值。代表高阻值。 一個(gè)一個(gè)x x可以用來(lái)定義十六進(jìn)制數(shù)的可以用來(lái)定義十六進(jìn)制數(shù)的4 4位二進(jìn)位二進(jìn) 制數(shù)的狀態(tài)制數(shù)的狀態(tài), ,八進(jìn)制數(shù)的八進(jìn)制數(shù)的3 3位位, ,二進(jìn)制數(shù)的二進(jìn)制數(shù)的1 1 位。位。z z的表示方式同的表示方式同x x類似。類似。z z還有一種表達(dá)還有一種表達(dá) 方式是可以寫作方式是可以寫作“?”?”。 2021-5-1364 一個(gè)數(shù)字可以被定義為負(fù)數(shù)一個(gè)數(shù)字可以被定義為負(fù)數(shù), ,只需在位寬表達(dá)式前只需在位寬表達(dá)式前 加一個(gè)減號(hào)加一個(gè)減號(hào), ,減號(hào)減號(hào) 必須寫在數(shù)
22、字定義表達(dá)式的最前面。注意減號(hào)不可以放在位必須寫在數(shù)字定義表達(dá)式的最前面。注意減號(hào)不可以放在位 寬和進(jìn)制之間也不寬和進(jìn)制之間也不 可以放在進(jìn)制和具體的數(shù)之間??梢苑旁谶M(jìn)制和具體的數(shù)之間。 -8d5 /-8d5 /這個(gè)表達(dá)式代表這個(gè)表達(dá)式代表5 5的補(bǔ)數(shù)(用八位二進(jìn)制數(shù)表的補(bǔ)數(shù)(用八位二進(jìn)制數(shù)表 示示) ) 8d-5 / 8d-5 /非法格式非法格式 。下劃線可以用來(lái)分隔開(kāi)數(shù)的表。下劃線可以用來(lái)分隔開(kāi)數(shù)的表 達(dá)以提高程序可達(dá)以提高程序可 讀性。但不可以用在位寬和進(jìn)制處讀性。但不可以用在位寬和進(jìn)制處, ,只能用在具體的數(shù)字之間。只能用在具體的數(shù)字之間。 16b1010_1011_1111_1010
23、 /16b1010_1011_1111_1010 /合法格式合法格式 8b_0011_1010 /8b_0011_1010 /非法格式非法格式 當(dāng)常量不說(shuō)明位數(shù)時(shí),默認(rèn)值是當(dāng)常量不說(shuō)明位數(shù)時(shí),默認(rèn)值是3232位,每個(gè)字母用位,每個(gè)字母用8 8位位 的的asciiascii值表示。值表示。 2021-5-1365 用參數(shù)聲明一個(gè)可變常量,常用于定義延時(shí)及寬度變量。用參數(shù)聲明一個(gè)可變常量,常用于定義延時(shí)及寬度變量。 參數(shù)定義的語(yǔ)法:參數(shù)定義的語(yǔ)法:parameter ; 可一次定義多個(gè)參數(shù),用逗號(hào)隔開(kāi)。可一次定義多個(gè)參數(shù),用逗號(hào)隔開(kāi)。 在使用文字在使用文字(literal)的地方都可以使用參數(shù)。的
24、地方都可以使用參數(shù)。 參數(shù)的定義是局部的,只在當(dāng)前模塊中有效。參數(shù)的定義是局部的,只在當(dāng)前模塊中有效。 參數(shù)定義可使用以前定義的整數(shù)和實(shí)數(shù)參數(shù)。參數(shù)定義可使用以前定義的整數(shù)和實(shí)數(shù)參數(shù)。 module mod1( out, in1, in2); . . . parameter cycle = 20, prop_ del = 3, setup = cycle/2 - prop_del, p1 = 8, x_ word = 16bx, file = / usr1/ jdough/ design/ mem_ file. dat; . . . wire p1: 0 w1; / a wire declar
25、ation using parameter . . . endmodule 注意注意:參數(shù):參數(shù)file不是不是 string,而是一個(gè)整數(shù),而是一個(gè)整數(shù), 其值是所有字母的擴(kuò)展其值是所有字母的擴(kuò)展 ascii值。若值。若file=“ab”, 則則file值為值為8h4142。用。用 法:法: $fopen(file); $display(“%s”, file); 2021-5-1366 3.2.2 變量變量 變量即在程序運(yùn)行過(guò)程中其值可以改變的量。常用的網(wǎng)絡(luò) 數(shù)據(jù)類型包括wirewire 型和型和tritri型型。wire型變量通常是用來(lái)表示單個(gè)門驅(qū)動(dòng)或連續(xù)賦 值語(yǔ)句驅(qū)動(dòng)的網(wǎng)絡(luò) 型數(shù)據(jù),tr
26、i型變量則用來(lái)表示多驅(qū)動(dòng)器驅(qū)動(dòng)的網(wǎng)絡(luò)型數(shù)據(jù)。 表 1.3.1 wire/tri 變量的真值 2021-5-1367 wire型數(shù)據(jù)常用來(lái)表示用于以assign關(guān)鍵字指定的組 合邏輯信號(hào)。 verilog程序模塊中輸入輸出信號(hào)類型缺省時(shí)自動(dòng)定義為 wire型。其格式 如下: wire n-1:0 數(shù)據(jù)名1,數(shù)據(jù)名2,數(shù)據(jù)名i; /共有i 條總線,每條總 線內(nèi)有n條線路,或 wire n:1 數(shù)據(jù)名1,數(shù)據(jù)名2,數(shù)據(jù)名i; 2021-5-1368 寄存器是數(shù)據(jù)儲(chǔ)存單元的抽象。寄存器數(shù)據(jù)類寄存器是數(shù)據(jù)儲(chǔ)存單元的抽象。寄存器數(shù)據(jù)類 型的關(guān)鍵字是型的關(guān)鍵字是 regreg。 regreg類型數(shù)據(jù)的默認(rèn)初
27、始值為不定值類型數(shù)據(jù)的默認(rèn)初始值為不定值x x。 regreg型數(shù)據(jù)常用來(lái)表示用于型數(shù)據(jù)常用來(lái)表示用于“always”always”模塊內(nèi)的模塊內(nèi)的 指定信號(hào),常代指定信號(hào),常代 表觸發(fā)器。表觸發(fā)器。在在“always”always”塊內(nèi)被賦值的每一個(gè)信號(hào)塊內(nèi)被賦值的每一個(gè)信號(hào) 都必須定義成都必須定義成 regreg型。型。 regreg型數(shù)據(jù)的格式如下:型數(shù)據(jù)的格式如下: regreg n-1:0 n-1:0 數(shù)據(jù)名數(shù)據(jù)名1,1,數(shù)據(jù)名數(shù)據(jù)名2,2, 數(shù)據(jù)名數(shù)據(jù)名i;i; 或或 regreg n:1 n:1 數(shù)據(jù)名數(shù)據(jù)名1,1,數(shù)據(jù)名數(shù)據(jù)名2,2, 數(shù)據(jù)名數(shù)據(jù)名i;i; 2021-5-136
28、9 module top;module top; wire y;wire y; reg reg a, b; a, b; dut u1(y,a,b); dut u1(y,a,b); initial initial begin begin a = 0; b = 0; a = 0; b = 0; #10 a =1; #10 a =1; . . end end endmoduleendmodule module dut(y, a, b_); output y; input a,b: wire y, a, b; and (y, a, b); endmodule 模塊dut的邊界 輸入口輸出口 輸出/入口
29、 net net net/register net net/register net inout 舉例說(shuō)明數(shù)據(jù)類型的選擇舉例說(shuō)明數(shù)據(jù)類型的選擇 2021-5-1370 輸入口(輸入口(inputinput)可以由寄存器或網(wǎng)絡(luò)連)可以由寄存器或網(wǎng)絡(luò)連 接驅(qū)動(dòng),但它本身只能驅(qū)動(dòng)網(wǎng)絡(luò)連接。接驅(qū)動(dòng),但它本身只能驅(qū)動(dòng)網(wǎng)絡(luò)連接。 輸出口輸出口 (output)(output)可以由寄存器或網(wǎng)絡(luò)連可以由寄存器或網(wǎng)絡(luò)連 接驅(qū)動(dòng),但它本身只能驅(qū)動(dòng)網(wǎng)絡(luò)連接。接驅(qū)動(dòng),但它本身只能驅(qū)動(dòng)網(wǎng)絡(luò)連接。 輸入輸入/ /輸出口輸出口(inout(inout) )只可以由網(wǎng)絡(luò)連接只可以由網(wǎng)絡(luò)連接 驅(qū)動(dòng),它本身也只能驅(qū)動(dòng)網(wǎng)絡(luò)連接。
30、驅(qū)動(dòng),它本身也只能驅(qū)動(dòng)網(wǎng)絡(luò)連接。 如果信號(hào)變量是在過(guò)程塊如果信號(hào)變量是在過(guò)程塊 (initial(initial塊塊 或或 alwaysalways塊塊) )中被賦值的,必須把它聲中被賦值的,必須把它聲 明為寄存器類型變量明為寄存器類型變量 如何選擇正確的數(shù)據(jù)類型?如何選擇正確的數(shù)據(jù)類型? 2021-5-1371 如何選擇正確的數(shù)據(jù)類型如何選擇正確的數(shù)據(jù)類型 module top; wire y; reg a, b; dut u1 (y, a, b) ; initial begin a = 0; b = 0; #5 a = 1; end endmodule module dut (y, a,
31、b); output y; input a, b; wire y, a, b; and (y, a, b) ; endmodule 輸入端口可以由輸入端口可以由 net/register驅(qū)動(dòng),但驅(qū)動(dòng),但 輸入端口只能是輸入端口只能是net 輸出端口可以是輸出端口可以是 net/register類型,輸類型,輸 出端口只能驅(qū)動(dòng)出端口只能驅(qū)動(dòng)net 在過(guò)程塊中只能給在過(guò)程塊中只能給 register類型賦值類型賦值 若若y,a,b說(shuō)明為說(shuō)明為 reg則會(huì)產(chǎn)生錯(cuò)誤。則會(huì)產(chǎn)生錯(cuò)誤。 in1 in2 o a b y 雙向端口輸入雙向端口輸入/輸出輸出 只能是只能是net類型類型 2021-5-1372
32、選擇數(shù)據(jù)類型時(shí)常犯的錯(cuò)誤舉選擇數(shù)據(jù)類型時(shí)常犯的錯(cuò)誤舉 例例 修改前:修改前: module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2; reg c, d; reg o2 and u1(o2, c, d); always (a or b) if (a) o1 = b; else o1 = 0; endmodule 修改后:修改后: module example(o1, o2, a, b, c, d); input a, b, c, d; output o1, o2; / reg c, d; / reg o2 reg
33、o1; and u1(o2, c, d); always (a or b) if (a) o1 = b; else o1 = 0; endmodule example.v 2021-5-1373 選擇數(shù)據(jù)類型時(shí)常犯的錯(cuò)誤舉 例 compiling source file example.v error! illegal left-hand-side assignment verilog-ilhsa example.v, 11: o1 = b; error! illegal left-hand-side assignment verilog-ilhsa example.v, 12: o1 = 0
34、; 2 errors 第一次編譯信息第一次編譯信息 verilog c example.v 第二次編譯信息第二次編譯信息 compiling source file example.v error! incompatible declaration, (c) defined as input at line 2 verilog-iddil example.v, 5: error! incompatible declaration, (d) defined as input at line 2 verilog-iddil example.v, 5: error! gate (u1) has il
35、legal output specification verilog-ghios example.v, 8: 3 errors 2021-5-1374 verilogverilog hdl hdl通過(guò)對(duì)通過(guò)對(duì)regreg型變量建立數(shù)組來(lái)對(duì)存儲(chǔ)器型變量建立數(shù)組來(lái)對(duì)存儲(chǔ)器 建模,可以描述建模,可以描述 ramram型存儲(chǔ)器,型存儲(chǔ)器,romrom存儲(chǔ)器和存儲(chǔ)器和regreg文件。數(shù)組中的每一個(gè)文件。數(shù)組中的每一個(gè) 單元通過(guò)一個(gè)單元通過(guò)一個(gè) 數(shù)組索引進(jìn)行尋址。在數(shù)組索引進(jìn)行尋址。在verilogverilog語(yǔ)言中沒(méi)有多維數(shù)組存語(yǔ)言中沒(méi)有多維數(shù)組存 在。在。 memorymemory型數(shù)型數(shù) 據(jù)是通
36、過(guò)擴(kuò)展據(jù)是通過(guò)擴(kuò)展regreg型數(shù)據(jù)的地址范圍來(lái)生成的。其格式型數(shù)據(jù)的地址范圍來(lái)生成的。其格式 如下:如下: regreg n-1:0 n-1:0 存儲(chǔ)器名存儲(chǔ)器名m-1:0m-1:0; 或或 regreg n-1:0 n-1:0 存儲(chǔ)器名存儲(chǔ)器名m:1m:1; 2021-5-1375 verilogverilog hdl hdl語(yǔ)言的運(yùn)算符范圍很廣,語(yǔ)言的運(yùn)算符范圍很廣, 其運(yùn)算符按其功能可分為以下幾類其運(yùn)算符按其功能可分為以下幾類: : 1) 算術(shù)運(yùn)算符算術(shù)運(yùn)算符(+,,/,) 2) 賦值運(yùn)算符賦值運(yùn)算符(=,=,=) 4) 邏輯運(yùn)算符邏輯運(yùn)算符( / 是一個(gè)單目取反運(yùn)算符是一個(gè)單目取反運(yùn)
37、算符, clock是是 操作數(shù)。操作數(shù)。 c = a | b; / 是一個(gè)二目按位或運(yùn)算符是一個(gè)二目按位或運(yùn)算符, a 和和 b是操是操 作數(shù)。作數(shù)。 r = s ? t : u; / ?: 是一個(gè)三目條件運(yùn)算符是一個(gè)三目條件運(yùn)算符, s,t,u是操是操 作數(shù)。作數(shù)。 2021-5-1377 3.3.1.基本的算術(shù)運(yùn)算符基本的算術(shù)運(yùn)算符 + 加加 - 減減 * 乘乘 / 除除 % 模模 將負(fù)數(shù)賦值給將負(fù)數(shù)賦值給reg或其它無(wú)符號(hào)變或其它無(wú)符號(hào)變 量使用量使用2的補(bǔ)碼算術(shù)。的補(bǔ)碼算術(shù)。 如果操作數(shù)的某一位是如果操作數(shù)的某一位是x或或z,則,則 結(jié)果為結(jié)果為x 在整數(shù)除法中,余數(shù)舍棄在整數(shù)除法中,
38、余數(shù)舍棄 模運(yùn)算中使用第一個(gè)操作數(shù)的符模運(yùn)算中使用第一個(gè)操作數(shù)的符 號(hào)號(hào) module arithops (); parameter five = 5; integer ans, int; reg 3: 0 rega, regb; reg 3: 0 num; initial begin rega = 3; regb = 4b1010; int = -3; /int = 11111111_1101 end initial fork #10 ans = five * int; / ans = -15 #20 ans = (int + 5)/ 2; / ans = 1 #30 ans = five/
39、 int; / ans = -1 #40 num = rega + regb; / num = 1101 #50 num = rega + 1; / num = 0100 #60 num = int; / num = 1101 #70 num = regb % rega; / num = 1 #80 $finish; join endmodule 注意integer和 reg類型在算 術(shù)運(yùn)算時(shí)的 差別。integer 是有符號(hào)數(shù), 而reg是無(wú)符 號(hào)數(shù)。 2021-5-1378 3.3.2.位運(yùn)算符位運(yùn)算符 not = 1 0 1 0 ; 位值為位值為x x時(shí)不一定產(chǎn)生時(shí)不一定產(chǎn)生x x結(jié)果。
40、如結(jié)果。如 #50#50時(shí)的時(shí)的oror計(jì)算。計(jì)算。 module bitwise (); reg 3: 0 rega, regb, regc; reg 3: 0 num; initial begin rega = 4b1001; regb = 4b1010; regc = 4b11x0; end initial fork #10 num = rega / num = 0000 #20 num = rega / num = 1000 #30 num = rega | regb; / num = 1011 #40 num = regb / num = 10 x0 #50 num = regb |
41、 regc; / num = 1110 #60 $finish; join endmodule 2021-5-1379 3.3.2.位運(yùn)算符位運(yùn)算符 當(dāng)兩個(gè)操作數(shù)位數(shù)不同時(shí),當(dāng)兩個(gè)操作數(shù)位數(shù)不同時(shí), 位數(shù)位數(shù) 少的操作數(shù)零擴(kuò)展到相同少的操作數(shù)零擴(kuò)展到相同 位數(shù)位數(shù)。 a = 4b1011;a = 4b1011; b = 8b01010011;b = 8b01010011; c = a | b; / ac = a | b; / a零擴(kuò)展為零擴(kuò)展為 8b000010118b00001011 位運(yùn)算符中除了位運(yùn)算符中除了是單目運(yùn)算符以外是單目運(yùn)算符以外,均為二目運(yùn)算符均為二目運(yùn)算符, 即要求運(yùn)算符兩
42、側(cè)各有一個(gè)操作數(shù)即要求運(yùn)算符兩側(cè)各有一個(gè)操作數(shù). 位運(yùn)算符中的二目運(yùn)算符要求對(duì)兩個(gè)操作數(shù)的相應(yīng)位位運(yùn)算符中的二目運(yùn)算符要求對(duì)兩個(gè)操作數(shù)的相應(yīng)位 進(jìn)行運(yùn)算操作。進(jìn)行運(yùn)算操作。 verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程數(shù)字系統(tǒng)設(shè)計(jì)教程 第四講第四講 常用常用 verilog 語(yǔ)法之語(yǔ)法之 二二 宋萬(wàn)杰 西安電子科技大學(xué)西安電子科技大學(xué) 雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室 2021-5-1381 !not parameter five = 5; reg ans; reg 3: 0 rega, regb, regc; initial begin rega = 4b0011; /邏輯值邏輯值
43、為為“1” regb = 4b10 xz; /邏輯值為邏輯值為 “1” regc = 4b0z0 x; /邏輯值為邏輯值為 “x” end initial fork #10 ans = rega / ans = 0 #20 ans = rega | 0; / ans = 1 #30 ans = rega / ans = 1 #40 ans = regb / ans = 1 #50 ans = regc | 0; / ans = x #60 $finish; join endmodule 2021-5-1382 大于大于 =大于等于大于等于 rega ; / val = x #20 val =
44、regb = rega ; / val = 1 #40 val = regb regc ; / val = 1 #50 $finish; join endmodule rega和和regc 的關(guān)系取決的關(guān)系取決 于于x 無(wú)論無(wú)論x為何值,為何值, regbregc 其結(jié)果是其結(jié)果是1b1、1b0或或1bx。 2021-5-1383 = =01xz 010 xx 101xx xxxxx zxxxx 賦值操作符,將等式右邊表達(dá)式的值拷貝到左賦值操作符,將等式右邊表達(dá)式的值拷貝到左 邊。邊。 邏輯等邏輯等 case等等 = = 01xz 01000 10100 x0010 z0001 a = 2b1
45、x; b = 2b1x; if (a = b) $display( a is equal to b); else $display( a is not equal to b); a = 2b1x; b = 2b1x; if (a = b) $display( a is identical to b); else $display( a is not identical to b); 2b1x=2b0 x 值為值為0,因?yàn)椴幌啵驗(yàn)椴幌?等等 2b1x=2b1x 值為值為x,因?yàn)榭赡埽驗(yàn)榭赡?不相等,也可能相不相等,也可能相 等等 2b1x=2b0 x 值為值為0,因?yàn)椴幌啵驗(yàn)椴幌?同同 2
46、b1x=2b1x 值為值為1,因?yàn)橄嗤?,因?yàn)橄嗤?2021-5-1384 = 邏輯等邏輯等 ! = 邏輯不等邏輯不等 其結(jié)果是其結(jié)果是1b1、1b0或或1bx。 如果左邊及右邊為確定值并如果左邊及右邊為確定值并 且相等,則結(jié)果為且相等,則結(jié)果為1。 如果左邊及右邊為確定值并如果左邊及右邊為確定值并 且不相等,則結(jié)果為且不相等,則結(jié)果為0。 如果左邊及右邊有值不能確如果左邊及右邊有值不能確 定的位,但值確定的位相等,定的位,但值確定的位相等, 則結(jié)果為則結(jié)果為x。 !=的結(jié)果與的結(jié)果與= =相反相反 值確定是指所有的位為值確定是指所有的位為0 或或1。不確定值是有值為。不確定值是有值為x 或或z
47、的位。的位。 module equalities1(); reg 3: 0 rega, regb, regc; reg val; initial begin rega = 4b0011; regb = 4b1010; regc = 4b1x10; end initial fork #10 val = rega = regb ; / val = 0 #20 val = rega != regc; / val = 1 #30 val = regb != regc; / val = x #40 val = regc = regc; / val = x #50 $finish; join endmod
48、ule 2021-5-1385 = 相同相同(case等等) ! = 不相同不相同(case不等不等) 其結(jié)果是其結(jié)果是1b1、1b0 或或1bx。 如果左邊及右邊的值如果左邊及右邊的值 相同(包括相同(包括x、z),則,則 結(jié)果為結(jié)果為1。 如果左邊及右邊的值如果左邊及右邊的值 不相同,則結(jié)果為不相同,則結(jié)果為0。 !=的結(jié)果與的結(jié)果與 = 相反相反 綜合工具不支持綜合工具不支持 module equalities2(); reg 3: 0 rega, regb, regc; reg val; initial begin rega = 4b0011; regb = 4b1010; regc
49、= 4b1x10; end initial fork #10 val = rega = regb ; / val = 0 #20 val = rega != regc; / val = 1 #30 val = regb = regc; / val = 0 #40 val = regc = regc; / val = 1 #50 $finish; join endmodule 2021-5-1386 邏輯右移邏輯右移 邏輯左移邏輯左移 移位操作符對(duì)其左邊的操作數(shù)移位操作符對(duì)其左邊的操作數(shù) 進(jìn)行向左或向右的位移位操作。進(jìn)行向左或向右的位移位操作。 第二個(gè)操作數(shù)(移位位數(shù))是無(wú)第二個(gè)操作數(shù)(移位位數(shù)
50、)是無(wú) 符號(hào)數(shù)符號(hào)數(shù) 若第二個(gè)操作數(shù)是若第二個(gè)操作數(shù)是x或或z則結(jié)果為則結(jié)果為 x 將左邊的操作數(shù)右移右邊將左邊的操作數(shù)右移右邊 操作數(shù)指定的位數(shù)操作數(shù)指定的位數(shù) 在賦值語(yǔ)句中,如果右邊在賦值語(yǔ)句中,如果右邊(rhs)的結(jié)的結(jié) 果果: 位寬大于左邊,則把最高位截去位寬大于左邊,則把最高位截去 位寬小于左邊,則零擴(kuò)展位寬小于左邊,則零擴(kuò)展 module shift (); reg 9: 0 num, num1; reg 7: 0 rega, regb; initial rega = 8b00001100; initial fork #10 num = rega 5 ; / num = 01_10
51、00_0000 #10 regb = rega 5 ; / regb = 1000_0000 #20 num 3; / num = 00_0000_0001 #20 regb 3 ; / regb = 0000_0001 #30 num = 10b11_1111_0000; #40 rega = num 2; /rega = 1100_0000 #40 num1 = num 2;/num1=11_1100_0000 #50 rega 2; /rega = 1111_1100 #50 num1 2;/num1=00_1111_1100 #60 $finish; join endmodule 建議
52、:表達(dá)式左右位數(shù)一建議:表達(dá)式左右位數(shù)一 致致 2021-5-1387 位拼接運(yùn)算符位拼接運(yùn)算符 其使用方法如下:其使用方法如下: 信號(hào)信號(hào)1的某幾位,信號(hào)的某幾位,信號(hào)2的某幾位,的某幾位,.,.,信號(hào)信號(hào)n的某的某 幾位幾位 例:例: a,b3:0,w,3b101 位拼接還可以用重復(fù)法來(lái)簡(jiǎn)化表達(dá)式。位拼接還可以用重復(fù)法來(lái)簡(jiǎn)化表達(dá)式。 4w /這等同于這等同于w,w,w,w 2021-5-1388 縮減運(yùn)算的具體運(yùn)算過(guò)程是這樣的縮減運(yùn)算的具體運(yùn)算過(guò)程是這樣的:第一步先將操作數(shù)第一步先將操作數(shù) 的第一位與第二位進(jìn)行或與非運(yùn)算的第一位與第二位進(jìn)行或與非運(yùn)算,第二步將運(yùn)算結(jié)果與第第二步將運(yùn)算結(jié)果與
53、第 三位進(jìn)行或與非運(yùn)算三位進(jìn)行或與非運(yùn)算,依次類推依次類推,直至最后一位。直至最后一位。 reg 3:0 b; reg c; c = 相當(dāng)于:相當(dāng)于: c =( (b0 由于縮減運(yùn)算的與、或、非運(yùn)算規(guī)則類似于位運(yùn)算符與、或、由于縮減運(yùn)算的與、或、非運(yùn)算規(guī)則類似于位運(yùn)算符與、或、 非運(yùn)算規(guī)則非運(yùn)算規(guī)則,這里不再詳細(xì)講述這里不再詳細(xì)講述,請(qǐng)參照位運(yùn)算符的運(yùn)算規(guī)則介紹請(qǐng)參照位運(yùn)算符的運(yùn)算規(guī)則介紹 2021-5-1389 下面對(duì)各種運(yùn)算符的優(yōu)先級(jí)別關(guān)系作一總結(jié)。見(jiàn)下面對(duì)各種運(yùn)算符的優(yōu)先級(jí)別關(guān)系作一總結(jié)。見(jiàn) 下表下表: : 連接及復(fù)制操作符連接及復(fù)制操作符 一元操作符一元操作符 算術(shù)操作符算術(shù)操作符 邏
54、輯移位操作符邏輯移位操作符 關(guān)系操作符關(guān)系操作符 相等操作符相等操作符 按位操作符按位操作符 邏輯操作符邏輯操作符 條件操作符條件操作符 ! ) l 塊結(jié)束后才完成賦值操作。塊結(jié)束后才完成賦值操作。 l b的值并不是立刻就改變的。的值并不是立刻就改變的。 l 這是一種比較常用的賦值方法。(特別在編寫可這是一種比較常用的賦值方法。(特別在編寫可 綜合模塊時(shí))綜合模塊時(shí)) (2) 阻塞阻塞(blocking)賦值方式賦值方式( 如如 b = a; ) l 賦值語(yǔ)句執(zhí)行完后賦值語(yǔ)句執(zhí)行完后,塊才結(jié)束。塊才結(jié)束。 l b的值在賦值語(yǔ)句執(zhí)行完后立刻就改變的。的值在賦值語(yǔ)句執(zhí)行完后立刻就改變的。 l 可能
55、會(huì)產(chǎn)生意想不到的結(jié)果??赡軙?huì)產(chǎn)生意想不到的結(jié)果。 2021-5-1391 賦值語(yǔ)句賦值語(yǔ)句 module swap_vals; reg a, b, clk; initial begin a = 0; b = 1; clk = 0; end always #5 clk = clk; always ( posedge clk) begin a = b; / 非阻塞非阻塞 過(guò)程賦值過(guò)程賦值 b = a; / 交換交換a和和 b值值 end endmodule 過(guò)程賦值有兩過(guò)程賦值有兩 類類 阻塞過(guò)程賦值阻塞過(guò)程賦值 非阻塞過(guò)程賦非阻塞過(guò)程賦 值值 阻塞過(guò)程賦值執(zhí)行完成后再執(zhí)行在順序塊內(nèi)下一條語(yǔ)句。非
56、阻塞賦值不阻阻塞過(guò)程賦值執(zhí)行完成后再執(zhí)行在順序塊內(nèi)下一條語(yǔ)句。非阻塞賦值不阻 塞過(guò)塞過(guò) 程流,仿真器讀入一條賦值語(yǔ)句并對(duì)它進(jìn)行調(diào)度之后,就可以處理下一條賦值程流,仿真器讀入一條賦值語(yǔ)句并對(duì)它進(jìn)行調(diào)度之后,就可以處理下一條賦值 語(yǔ)語(yǔ) 句。若過(guò)程塊中的所有賦值都是非阻塞的,賦值按兩步進(jìn)行:句。若過(guò)程塊中的所有賦值都是非阻塞的,賦值按兩步進(jìn)行: 1.仿真器計(jì)算所有仿真器計(jì)算所有rhs表達(dá)式的值,保存結(jié)果,并進(jìn)行調(diào)度在時(shí)序控制指定表達(dá)式的值,保存結(jié)果,并進(jìn)行調(diào)度在時(shí)序控制指定 時(shí)間的賦值。時(shí)間的賦值。 2.在經(jīng)過(guò)相應(yīng)的延遲后,仿真器通過(guò)將保存的值賦給在經(jīng)過(guò)相應(yīng)的延遲后,仿真器通過(guò)將保存的值賦給lhs表
57、達(dá)式完成賦值。表達(dá)式完成賦值。 2021-5-1392 賦值語(yǔ)句賦值語(yǔ)句 module non_block1; reg a, b, c, d, e, f; initial begin / blocking assignments a = #10 1; / time 10 b = #2 0; / time 12 c = #4 1; / time 16 end initial begin / non- blocking assignments d = #10 1; / time 10 e = #2 0; / time 2 f end_wave; /觸發(fā)事 件end_wave. join 2021-
58、5-13100 在在verilghdl語(yǔ)言中,可以給每個(gè)塊取一個(gè)名字,語(yǔ)言中,可以給每個(gè)塊取一個(gè)名字, 只需將名只需將名 字加在關(guān)鍵詞字加在關(guān)鍵詞begin或或fork后面即可。這樣做的原因后面即可。這樣做的原因 有以下幾點(diǎn)。有以下幾點(diǎn)。 1) 這樣可以在塊內(nèi)定義局部變量,即只在塊內(nèi)使用這樣可以在塊內(nèi)定義局部變量,即只在塊內(nèi)使用 的變量。的變量。 2) 這樣可以允許塊被其它語(yǔ)句調(diào)用,如被這樣可以允許塊被其它語(yǔ)句調(diào)用,如被disable語(yǔ)語(yǔ) 句。句。 3) 在在verilog語(yǔ)言里,所有的變量都是靜態(tài)的,即所語(yǔ)言里,所有的變量都是靜態(tài)的,即所 有的變量都只有的變量都只 有一個(gè)唯一的存儲(chǔ)地址,因此
59、進(jìn)入或跳出塊并不有一個(gè)唯一的存儲(chǔ)地址,因此進(jìn)入或跳出塊并不 影響存儲(chǔ)在變量?jī)?nèi)的值。影響存儲(chǔ)在變量?jī)?nèi)的值。 2021-5-13101 當(dāng)一個(gè)塊嵌入另一個(gè)塊時(shí),塊的起始時(shí)間和當(dāng)一個(gè)塊嵌入另一個(gè)塊時(shí),塊的起始時(shí)間和 結(jié)束時(shí)間結(jié)束時(shí)間 是很重要的。至于跟在塊后面的語(yǔ)句只有在該是很重要的。至于跟在塊后面的語(yǔ)句只有在該 塊的結(jié)束時(shí)塊的結(jié)束時(shí) 間到了才能開(kāi)始執(zhí)行,也就是說(shuō),只有該塊完間到了才能開(kāi)始執(zhí)行,也就是說(shuō),只有該塊完 全執(zhí)行完全執(zhí)行完 后,后面的語(yǔ)句才可以執(zhí)行。后,后面的語(yǔ)句才可以執(zhí)行。 對(duì)于順序塊,起始時(shí)間就是第一條語(yǔ)句開(kāi)始被執(zhí)行對(duì)于順序塊,起始時(shí)間就是第一條語(yǔ)句開(kāi)始被執(zhí)行 的時(shí)間,結(jié)束時(shí)間就是最后
60、一條語(yǔ)句執(zhí)行完的時(shí)間。的時(shí)間,結(jié)束時(shí)間就是最后一條語(yǔ)句執(zhí)行完的時(shí)間。 對(duì)于并行塊,起始時(shí)間對(duì)于塊內(nèi)所有的語(yǔ)句是相同對(duì)于并行塊,起始時(shí)間對(duì)于塊內(nèi)所有的語(yǔ)句是相同 的,即程序流程控制進(jìn)入該塊的時(shí)間,其結(jié)束時(shí)間是按的,即程序流程控制進(jìn)入該塊的時(shí)間,其結(jié)束時(shí)間是按 時(shí)間排序在最后的語(yǔ)句執(zhí)行完的時(shí)間。時(shí)間排序在最后的語(yǔ)句執(zhí)行完的時(shí)間。 verilog 數(shù)字系統(tǒng)設(shè)計(jì)教程數(shù)字系統(tǒng)設(shè)計(jì)教程 第五講第五講 常用常用 verilog 語(yǔ)法之語(yǔ)法之 三三 宋萬(wàn)杰 西安電子科技大學(xué)西安電子科技大學(xué) 雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室雷達(dá)信號(hào)處理國(guó)家重點(diǎn)實(shí)驗(yàn)室 2021-5-13103 5.1.1 if_else語(yǔ)句語(yǔ)句 al
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湘教版三年級(jí)下冊(cè)科學(xué)全冊(cè)教案
- 孟晚舟課件教學(xué)
- 吃穿用哪里來(lái)課件
- 初三物理課件教學(xué)課件
- 人教版四年級(jí)下23課教育課件
- 水電改造簡(jiǎn)約合同模板
- 河南電大《會(huì)計(jì)管理模擬實(shí)驗(yàn)》教學(xué)考一體化網(wǎng)考形考作業(yè)試題及答案
- 宿舍單間出售合同模板
- 高校安保服務(wù)合同模板
- 整體拆除鋼廠合同模板
- “跨媒介敘事”理論研究
- 大型活動(dòng)安保服務(wù)投標(biāo)方案
- 非傳統(tǒng)安全研究與中國(guó)
- 河南省南陽(yáng)市宛城區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期中地理試題
- 酒店客房服務(wù)員考核表
- 第1課 社會(huì)主義在中國(guó)的確立與探索【中職專用】高一思想政治《中國(guó)特色社會(huì)主義》(高教版2023基礎(chǔ)模塊)
- 后勤物業(yè)集中采購(gòu)方案
- 精益改善周培訓(xùn)課件
- 針對(duì)小學(xué)二年級(jí)語(yǔ)文教學(xué)的策略與方法
- 科技創(chuàng)新主題班會(huì)課件
- 王陽(yáng)明《知行合一》-課件
評(píng)論
0/150
提交評(píng)論