![數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/0fc8abb5-4b90-4844-8694-63ee45be8f4c/0fc8abb5-4b90-4844-8694-63ee45be8f4c1.gif)
![數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/0fc8abb5-4b90-4844-8694-63ee45be8f4c/0fc8abb5-4b90-4844-8694-63ee45be8f4c2.gif)
![數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/0fc8abb5-4b90-4844-8694-63ee45be8f4c/0fc8abb5-4b90-4844-8694-63ee45be8f4c3.gif)
![數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/0fc8abb5-4b90-4844-8694-63ee45be8f4c/0fc8abb5-4b90-4844-8694-63ee45be8f4c4.gif)
![數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/0fc8abb5-4b90-4844-8694-63ee45be8f4c/0fc8abb5-4b90-4844-8694-63ee45be8f4c5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 XXXXXXXX大學(xué)大學(xué)XXXXXX學(xué)院學(xué)院第第9章章 Verilog數(shù)字電路設(shè)計(jì)實(shí)踐數(shù)字電路設(shè)計(jì)實(shí)踐 主要內(nèi)容主要內(nèi)容基本組合電路的設(shè)計(jì)基本組合電路的設(shè)計(jì)1 1ABFCD門級結(jié)構(gòu)描述門級結(jié)構(gòu)描述 module gate1(F,A,B,C,D);input A,B,C,D;output F;nand(F1,A,B); /調(diào)用門元件調(diào)用門元件and(F2,B,C,D);or(F,F1,F2);endmodule數(shù)據(jù)流描述數(shù)據(jù)流描述module gate2(F,A,B,C,D);input A,B,C,D;output F;assign F=(A&B)|(B&C&D);/
2、assign持續(xù)賦值持續(xù)賦值endmodule行為描述行為描述module gate3(F,A,B,C,D);input A,B,C,D;output F;reg F;always (A or B or C or D)/過程賦值過程賦值beginF=(A&B)|(B&C&D);endendmodule基本組合電路的設(shè)計(jì)基本組合電路的設(shè)計(jì)2 2用用bufif1關(guān)鍵字描述的三態(tài)門關(guān)鍵字描述的三態(tài)門 module tri_1 (in, en, out);input in, en;output out;tri out;bufif1 b1(out, in, en);/注意三態(tài)門端
3、口的排列順序注意三態(tài)門端口的排列順序endmodule用用assign語句描述三態(tài)門語句描述三態(tài)門 用用MAX+PLUS II進(jìn)行編譯,生成上圖所示的模塊符號。進(jìn)行編譯,生成上圖所示的模塊符號?;窘M合電路的設(shè)計(jì)基本組合電路的設(shè)計(jì) 33-to-8 decodermodule decoder_38(out, in);output7:0 out;input2:0 in;reg7:0 out;always (in) begin case(in) 3d0: out=8b11111110; 3d1: out=8b11111101; 3d2: out=8b11111011; 3d3: out=8b1111
4、0111; 3d4: out=8b11101111; 3d5: out=8b11011111; 3d6: out=8b10111111; 3d7: out=8b01111111; endcase endendmodule28-3的優(yōu)先編碼器的優(yōu)先編碼器 作為條件語句,作為條件語句,if-else語句的分支是有優(yōu)先順序的。利用語句的分支是有優(yōu)先順序的。利用if-else語語句的特點(diǎn),可以很方便地實(shí)現(xiàn)優(yōu)先編碼器。句的特點(diǎn),可以很方便地實(shí)現(xiàn)優(yōu)先編碼器。 下面的例子是一個下面的例子是一個8-3優(yōu)先編碼器,該編碼器輸人為優(yōu)先編碼器,該編碼器輸人為a、b、c、d、e、f、g和和h,輸人信號高電平有效,輸人
5、信號高電平有效,h的優(yōu)先級最高。的優(yōu)先級最高。續(xù)續(xù)符號符號 用用QuartusII軟件對上面的代碼綜合后,生成一個模塊符號,再加上輸入輸出軟件對上面的代碼綜合后,生成一個模塊符號,再加上輸入輸出端口,即構(gòu)成了如下圖所示的優(yōu)先編碼器電路。端口,即構(gòu)成了如下圖所示的優(yōu)先編碼器電路。對該編碼器進(jìn)行仿真,得到如下圖所示的波形對該編碼器進(jìn)行仿真,得到如下圖所示的波形基本組合電路的設(shè)計(jì)基本組合電路的設(shè)計(jì) 4奇偶校驗(yàn)位產(chǎn)生器奇偶校驗(yàn)位產(chǎn)生器 module parity(even_bit, odd_bit, input_bus);output even_bit, odd_bit;input7:0 input_
6、bus;assign odd_bit = input_bus;/產(chǎn)生奇校驗(yàn)位產(chǎn)生奇校驗(yàn)位assign even_bit = odd_bit;/產(chǎn)生偶校驗(yàn)位產(chǎn)生偶校驗(yàn)位endmodule基本組合電路的設(shè)計(jì)基本組合電路的設(shè)計(jì) 5用用if-else語句描述的語句描述的4選選1 MUXmodule mux4_1(out,in0,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) beginif(sel=2b00) out=in0;e
7、lse if(sel=2b01) out=in1;else if(sel=2b10) out=in2;else out=in3; endendmodule7段段LED數(shù)碼管譯碼電路數(shù)碼管譯碼電路輸出信號的輸出信號的7位分別接如下圖數(shù)碼管的位分別接如下圖數(shù)碼管的7個段,高位在左,低個段,高位在左,低位在右。位在右。例如當(dāng)輸出為例如當(dāng)輸出為“1101101”時,數(shù)碼管的時,數(shù)碼管的7個段:個段:g、f、e、d、c、b、a分別接分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于;接有高電平的段發(fā)亮,于是數(shù)碼管顯示是數(shù)碼管顯示“5”。共陰數(shù)碼管及其電路共陰數(shù)碼管及其電路源程序源程序組合邏輯設(shè)計(jì)要
8、點(diǎn)組合邏輯設(shè)計(jì)要點(diǎn) 組合邏輯設(shè)計(jì)要點(diǎn)組合邏輯設(shè)計(jì)要點(diǎn) 結(jié)論結(jié)論組合電路的輸入一旦有變化,輸出馬上跟著變化組合電路的輸入一旦有變化,輸出馬上跟著變化組合電路一般都用組合電路一般都用assign語句語句當(dāng)用當(dāng)用always描述純組合電路時,括號內(nèi)的敏感列描述純組合電路時,括號內(nèi)的敏感列表要把表要把所有的輸入所有的輸入列出來列出來基本時序電路的設(shè)計(jì)基本時序電路的設(shè)計(jì) 1 D-FF designs(基本基本D觸發(fā)器觸發(fā)器)module DFF(Q, D, CLK);output Q;input D, CLK;reg Q;always (posedge CLK)beginQ = D;endendmodu
9、le基本時序電路的設(shè)計(jì)基本時序電路的設(shè)計(jì) 2 帶異步清帶異步清0、異步置、異步置1的的D觸發(fā)器觸發(fā)器module DFF1(q, qn, d, clk, set, reset);input d, clk, set, reset;output q, qn;reg q, qn;always (posedge clk or negedge set or negedge reset) beginif (!reset) beginq = 0;/異步清異步清0,低電平有效,低電平有效qn = 1;end else if (!set) beginq = 1;/異步置異步置1,低電平有效,低電平有效qn =
10、0;end else beginq = d;qn = d;end endendmodule基本時序電路的設(shè)計(jì)基本時序電路的設(shè)計(jì) 3 帶同步清帶同步清0、同步置、同步置1的的D觸發(fā)器觸發(fā)器module DFF2(q, qn, d, clk, set, reset);input d, clk, set, reset;output q, qn;reg q, qn;always (posedge clk) beginif (reset) begin q=0;qn=1; end /同步清同步清0,高電平有效,高電平有效else if (set) begin q =1;qn =0; end /同步置同步置
11、1,高電平有效,高電平有效else begin q=d; qn=d;end endendmodule數(shù)據(jù)鎖存器數(shù)據(jù)鎖存器1.數(shù)據(jù)鎖存器數(shù)據(jù)鎖存器a 下面用下面用assign語句描述了一個電平敏感(觸發(fā))的數(shù)據(jù)鎖存器,該鎖存語句描述了一個電平敏感(觸發(fā))的數(shù)據(jù)鎖存器,該鎖存器只能鎖存一位數(shù)據(jù)器只能鎖存一位數(shù)據(jù)always (clk or d) begin if(clk) q=d; endassign用always置換:2. 數(shù)據(jù)鎖存器數(shù)據(jù)鎖存器b下面代碼描述的是一個帶置位和復(fù)位端的電平敏感型的下面代碼描述的是一個帶置位和復(fù)位端的電平敏感型的1位數(shù)據(jù)鎖存器。位數(shù)據(jù)鎖存器。always (clk o
12、r reset or set or d) begin if(reset) q=0; else if(set) q=1; else if(clk) q=d; end assign用always置換:基本時序電路的設(shè)計(jì)基本時序電路的設(shè)計(jì) 4 8位數(shù)據(jù)鎖存器位數(shù)據(jù)鎖存器module latch_8(qout,data,clk);output7:0 qout;input7:0 data;input clk;reg7:0 qout;always (clk or data) beginif(clk) qout=data; endendmodule數(shù)據(jù)寄存器數(shù)據(jù)寄存器數(shù)據(jù)鎖存器和數(shù)據(jù)寄存器的區(qū)別:數(shù)據(jù)鎖存器
13、和數(shù)據(jù)寄存器的區(qū)別:從寄存數(shù)據(jù)的角度看,鎖存器和寄存器的功能是相從寄存數(shù)據(jù)的角度看,鎖存器和寄存器的功能是相同的同的鎖存器一般是由電平信號來控制(電平觸發(fā)),屬鎖存器一般是由電平信號來控制(電平觸發(fā)),屬于電平敏感型于電平敏感型寄存器一般由同步時鐘信號控制(邊沿觸發(fā))寄存器一般由同步時鐘信號控制(邊沿觸發(fā))基本時序電路的設(shè)計(jì)基本時序電路的設(shè)計(jì)5 58位數(shù)據(jù)寄存器位數(shù)據(jù)寄存器module reg8(out_data,in_data,clk,clr);output7:0 out_data;input7:0 in_data;input clk,clr;reg7:0 out_data;always (
14、posedge clk or posedge clr) beginif(clr) out_data =0;else out_data = in_data; endendmodule移位寄存器移位寄存器設(shè)計(jì)了一個設(shè)計(jì)了一個8位移位寄存器。該寄存器有位移位寄存器。該寄存器有1個時鐘輸個時鐘輸入端、入端、1個同步清個同步清0端。信號串行輸入,端。信號串行輸入,8位并行輸位并行輸出,每個時鐘周期內(nèi)輸出信號左移出,每個時鐘周期內(nèi)輸出信號左移1位,同時將串位,同時將串行輸入的行輸入的1位補(bǔ)充到輸出信號的最低位。位補(bǔ)充到輸出信號的最低位。續(xù)續(xù)基本時序電路的設(shè)計(jì)基本時序電路的設(shè)計(jì)6 6 可變模加法可變模加法/
15、減法計(jì)數(shù)器減法計(jì)數(shù)器module updown_count(d, clk, clear, load, up_down, qd);input7:0 d;input clk,clear,load,up_down;output7:0 qd;reg7:0 cnt;assign qd=cnt;always (posedge clk) beginif(!clear) cnt=8h00;/同步清同步清0,低電平有效,低電平有效else if(load) cnt=d;/同步預(yù)置同步預(yù)置else if(up_down) cnt=cnt+1;/加法計(jì)數(shù)加法計(jì)數(shù)else cnt=cnt-1;/減法計(jì)數(shù)減法計(jì)數(shù) en
16、dendmodule結(jié)論結(jié)論時序電路的輸出是由時鐘控制的(電平控制時序電路的輸出是由時鐘控制的(電平控制、邊沿控制)、邊沿控制)邊沿控制的時序電路一定要用邊沿控制的時序電路一定要用always語句描語句描述述結(jié)論結(jié)論1組合電路的輸入一旦有變化,輸出馬上跟著變化組合電路的輸入一旦有變化,輸出馬上跟著變化組合電路一般都用組合電路一般都用assign語句語句當(dāng)用當(dāng)用always描述純組合電路時,括號內(nèi)的敏感列表里要把描述純組合電路時,括號內(nèi)的敏感列表里要把所有的輸入列出來所有的輸入列出來結(jié)論結(jié)論2時序電路的輸出是由時鐘控制的(電平控制、邊沿控時序電路的輸出是由時鐘控制的(電平控制、邊沿控制)制)邊沿
17、控制方式一定要用邊沿控制方式一定要用always語句描述語句描述電平控制可以使用電平控制可以使用assign語句,也可以使用語句,也可以使用always語語句。但使用句。但使用always語句是要注意在敏感列表里要把語句是要注意在敏感列表里要把時時鐘信號鐘信號和所有的輸入信號都列出來。和所有的輸入信號都列出來。6.3 多層次結(jié)構(gòu)電路的設(shè)計(jì)多層次結(jié)構(gòu)電路的設(shè)計(jì)本節(jié)將介紹怎樣進(jìn)行這種多層次結(jié)構(gòu)電路的設(shè)計(jì)。本節(jié)將介紹怎樣進(jìn)行這種多層次結(jié)構(gòu)電路的設(shè)計(jì)。多層次結(jié)構(gòu)電路的描述既可以采用純文本方式,也多層次結(jié)構(gòu)電路的描述既可以采用純文本方式,也可以用圖形和文本輸入相結(jié)合的方式??梢杂脠D形和文本輸入相結(jié)合的方
18、式。這里用這里用2個例子來說明這兩種設(shè)計(jì)方式。個例子來說明這兩種設(shè)計(jì)方式。簡單的 Verilog HDL 模塊例: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? In : bz; endmodule簡單的 Verilog HDL 模塊上述程序例子通過另一種方法描述了一個三態(tài)門。上述程序
19、例子通過另一種方法描述了一個三態(tài)門。在這個例子中存在著兩個模塊:模塊在這個例子中存在著兩個模塊:模塊trist1 trist1 調(diào)用模塊調(diào)用模塊 mytrimytri 的實(shí)例元的實(shí)例元件件 tri_insttri_inst。模塊模塊 trist1 trist1 是上層模塊。模塊是上層模塊。模塊 mytrimytri 則被稱為子模塊。則被稱為子模塊。通過這種結(jié)構(gòu)性模塊構(gòu)造可構(gòu)成特大型模塊。通過這種結(jié)構(gòu)性模塊構(gòu)造可構(gòu)成特大型模塊。6.3.1 圖形與文本混合設(shè)計(jì)圖形與文本混合設(shè)計(jì) 設(shè)計(jì)一個設(shè)計(jì)一個8位累加器位累加器ACC,用于對輸入的用于對輸入的8位數(shù)據(jù)位數(shù)據(jù)進(jìn)行累加。進(jìn)行累加。首先進(jìn)行層次設(shè)計(jì)???/p>
20、以把累加器分為兩個模塊,首先進(jìn)行層次設(shè)計(jì)。可以把累加器分為兩個模塊,一個是一個是8位全加器,一個是位全加器,一個是8位寄存器。位寄存器。全加器負(fù)責(zé)對不斷輸入的數(shù)據(jù)和進(jìn)位進(jìn)行累加,寄全加器負(fù)責(zé)對不斷輸入的數(shù)據(jù)和進(jìn)位進(jìn)行累加,寄存器負(fù)責(zé)暫存累加和,并把累加和輸出并反饋到累存器負(fù)責(zé)暫存累加和,并把累加和輸出并反饋到累加器輸入端,以進(jìn)行下一次的累加。加器輸入端,以進(jìn)行下一次的累加。在劃分好模塊后,再把每個模塊的端口和連接關(guān)系在劃分好模塊后,再把每個模塊的端口和連接關(guān)系設(shè)計(jì)好,就可以分別設(shè)計(jì)各個功能模塊。設(shè)計(jì)好,就可以分別設(shè)計(jì)各個功能模塊。1、 8位全加器位全加器2、8位寄存器位寄存器3頂層連接頂層連接
21、對對8 8位全加器和位全加器和8 8位寄存器分別進(jìn)行編譯,生成兩個位寄存器分別進(jìn)行編譯,生成兩個模塊符號,再把這兩個模塊進(jìn)行連接,加上編人端模塊符號,再把這兩個模塊進(jìn)行連接,加上編人端和輸出端,就構(gòu)成了完整的累加器電路。如下圖所和輸出端,就構(gòu)成了完整的累加器電路。如下圖所示。示。累加器頂層電路累加器頂層電路accout6.3.2 純文本描述純文本描述 該文本描述與上圖電路連接的效果是完全相同的。該文本描述與上圖電路連接的效果是完全相同的。需注意是在調(diào)用需注意是在調(diào)用add8和和reg8這兩個模塊時,要注意模這兩個模塊時,要注意模塊端口信號的一一對應(yīng)。塊端口信號的一一對應(yīng)。6.5 數(shù)字跑表(以下
22、內(nèi)容自學(xué))數(shù)字跑表(以下內(nèi)容自學(xué))以數(shù)字跑表的設(shè)計(jì)為例,介紹利用以數(shù)字跑表的設(shè)計(jì)為例,介紹利用Verilog HDL設(shè)計(jì)數(shù)字電路的完整設(shè)計(jì)數(shù)字電路的完整過程。過程。結(jié)構(gòu)與功能結(jié)構(gòu)與功能設(shè)計(jì)一個數(shù)字跑表,該跑表具有復(fù)位、暫停、秒表計(jì)設(shè)計(jì)一個數(shù)字跑表,該跑表具有復(fù)位、暫停、秒表計(jì)時等功能。時等功能。按照自上而下的設(shè)計(jì)思路,首先對數(shù)字跑表進(jìn)行結(jié)構(gòu)按照自上而下的設(shè)計(jì)思路,首先對數(shù)字跑表進(jìn)行結(jié)構(gòu)和功能的劃分。和功能的劃分。下圖是數(shù)字跑表的結(jié)構(gòu)示意圖。下圖是數(shù)字跑表的結(jié)構(gòu)示意圖。 該跑表有該跑表有3 3個輸入端,分別為時鐘輸入個輸入端,分別為時鐘輸入(CLK)(CLK)、復(fù)位復(fù)位(CLR)(CLR)和和啟
23、動暫停啟動暫停(PAUSE)(PAUSE)。 復(fù)位信號高電平有效,可對整個系統(tǒng)異步清復(fù)位信號高電平有效,可對整個系統(tǒng)異步清0 0;當(dāng)啟動暫當(dāng)啟動暫停鍵為低電平時跑表開始計(jì)時,為高電平時暫停,變低后在停鍵為低電平時跑表開始計(jì)時,為高電平時暫停,變低后在原來的數(shù)值基礎(chǔ)上再計(jì)數(shù)。這兩個控制信號的作用如表原來的數(shù)值基礎(chǔ)上再計(jì)數(shù)。這兩個控制信號的作用如表7.17.1所示。所示。為了便于顯示,百分秒、秒和分鐘信號皆采用為了便于顯示,百分秒、秒和分鐘信號皆采用BCDBCD碼計(jì)數(shù)方碼計(jì)數(shù)方式,并直接輸出到式,并直接輸出到6 6個數(shù)碼管顯示出來。個數(shù)碼管顯示出來。源程序源程序仿真及波形圖仿真及波形圖下載及驗(yàn)證下
24、載及驗(yàn)證6.6 八位數(shù)字頻率計(jì)八位數(shù)字頻率計(jì)6.6.1 功能要求功能要求 設(shè)計(jì)一個設(shè)計(jì)一個8位頻率計(jì),可以測量從位頻率計(jì),可以測量從1Hz到到 99 999 999Hz的信號頻率,并將被測信號的頻率的信號頻率,并將被測信號的頻率在在8個數(shù)碼管上顯示出來。個數(shù)碼管上顯示出來。6.6.2 工作原理工作原理 采用一個標(biāo)準(zhǔn)的基準(zhǔn)時鐘,在單位時間采用一個標(biāo)準(zhǔn)的基準(zhǔn)時鐘,在單位時間(如如1s)里對里對被測信號的脈沖數(shù)進(jìn)行計(jì)數(shù),即為信號的頻率。被測信號的脈沖數(shù)進(jìn)行計(jì)數(shù),即為信號的頻率。 測頻原理測頻原理 f = N/t f = N/t 其中:其中:NN脈沖計(jì)數(shù)值脈沖計(jì)數(shù)值 t t 計(jì)數(shù)時間計(jì)數(shù)時間 由上式得
25、知:由上式得知:頻率是在單位時間(頻率是在單位時間(1 1秒)內(nèi)所產(chǎn)生的脈沖個數(shù)。秒)內(nèi)所產(chǎn)生的脈沖個數(shù)。頻率在數(shù)學(xué)表達(dá)式中用頻率在數(shù)學(xué)表達(dá)式中用“f”f”表示,其相應(yīng)的單位有:表示,其相應(yīng)的單位有: HzHz(赫)、赫)、kHzkHz(千赫)、千赫)、MHzMHz(兆赫)、兆赫)、 GHzGHz(吉赫)吉赫)其中其中 1GHz=1000MHz1GHz=1000MHz,1MHz=1000kHz1MHz=1000kHz,1kHz=1000Hz1kHz=1000Hz頻率計(jì)至少包括:頻率計(jì)至少包括:計(jì)數(shù)模塊(計(jì)數(shù)電路)計(jì)數(shù)模塊(計(jì)數(shù)電路)計(jì)數(shù)時間限定模塊(控制電路)計(jì)數(shù)時間限定模塊(控制電路)顯示模
26、塊(電路)顯示模塊(電路)8位數(shù)字頻率計(jì)的頂層框圖如圖721所示,整個系統(tǒng)可分為三個模塊:控制模塊、計(jì)數(shù)測量模塊和鎖存器模塊。頻率計(jì)原理框圖頻率計(jì)原理框圖1Hz B C D碼七段數(shù)碼管譯碼器 控制模塊的幾個控制信號的時序關(guān)系如圖控制模塊的幾個控制信號的時序關(guān)系如圖7.22所示。從所示。從圖中可看出,計(jì)數(shù)使能信號圖中可看出,計(jì)數(shù)使能信號COUNT_EN在在1s的高電平的高電平后,利用其反相值的上跳沿產(chǎn)生一個鎖存信號后,利用其反相值的上跳沿產(chǎn)生一個鎖存信號LOAD,隨后產(chǎn)生清隨后產(chǎn)生清0信號上跳沿信號上跳沿COUNT_CLR 。6.6.3 設(shè)計(jì)實(shí)現(xiàn)設(shè)計(jì)實(shí)現(xiàn)控制模塊計(jì)數(shù)模塊32位鎖存器被測輸入信號基
27、準(zhǔn)時鐘頻率值(輸出到數(shù)碼管顯示)1. Fre_ctrl控制模塊控制模塊 module fre_ctrl(clk,rst,count_en,count_clr,load); output count_en,count_clr,load; input clk,rst; reg count_en,load; always (posedge clk) begin if(rst) begin count_en = 0; load = 1; end else begin count_en = count_en; load = count_en; /load信號的產(chǎn)生信號的產(chǎn)生 end end assign
28、 count_clr = clk&load; / count_clr信號的產(chǎn)生信號的產(chǎn)生 endmodule fre_ctrl控制模塊的作用前面已經(jīng)講過,它用于產(chǎn)生3個控制信號。此模塊用Verilog描述見下例。注意:注意:使用阻塞賦值使用阻塞賦值仿真圖仿真圖阻塞賦值結(jié)果阻塞賦值結(jié)果非阻塞賦值結(jié)果非阻塞賦值結(jié)果2. Count10計(jì)數(shù)模塊計(jì)數(shù)模塊encount_en clrcount_clrclk signal(低四位)clkcout(其余) module count10(out,cout,en,clr,clk); output3:0 out; output cout; input e
29、n,clr,clk; reg3:0 out; always (posedge clk or posedge clr)begin if(clr) out = 0; else if(en) begin if(out = =9) out = 0; else out = out+1; end end assign cout= (out=9)&en)?1:0;/進(jìn)位信號進(jìn)位信號 endmodule count10是一個帶有計(jì)數(shù)使能輸入端(EN)和異步清0端(CLR)的模為10的計(jì)數(shù)模塊。當(dāng)EN為高電平時開始計(jì)數(shù),為低電平時停止計(jì)數(shù)。CLR為異步消0端,當(dāng)它為高電平時,計(jì)數(shù)器輸出為0。3. 32位
30、鎖存器模塊位鎖存器模塊latch_32din32位out module latch_32(qo,din,load); output31:0 qo; input31:0 din; input load; reg load; reg31:0 qo; always (posedge load) begin qo = din; end endmodule6.6.4 仿真與下載仿真與下載 將上面將上面8位數(shù)字頻率計(jì)的頂層原理圖用位數(shù)字頻率計(jì)的頂層原理圖用QuartusII進(jìn)行編譯,并進(jìn)行功能仿真,如圖進(jìn)行編譯,并進(jìn)行功能仿真,如圖7.24所所示是其仿真波形的一部分。從仿真波形圖可以看出,改變輸入信號的頻
31、率,頻率計(jì)都能準(zhǔn)示是其仿真波形的一部分。從仿真波形圖可以看出,改變輸入信號的頻率,頻率計(jì)都能準(zhǔn)確地測出其頻率,如圖中所示,分別為確地測出其頻率,如圖中所示,分別為20Hz、17Hz和和8Hz。下載下載 也可將該設(shè)計(jì)下載到實(shí)驗(yàn)板中進(jìn)行實(shí)際驗(yàn)證。器件選擇也可將該設(shè)計(jì)下載到實(shí)驗(yàn)板中進(jìn)行實(shí)際驗(yàn)證。器件選擇EPF10K10器件,管腳鎖定如下:器件,管腳鎖定如下: CLK接接clock1,待測的信號待測的信號SIGNAL接接clock0,QOL31.0接接PI047PIO16(即數(shù)碼管即數(shù)碼管8、7、6、5、4、3、2、1)。 然后進(jìn)行編譯,生成可下裁的然后進(jìn)行編譯,生成可下裁的.sof文件,將該文件下載
32、到芯片中,文件,將該文件下載到芯片中,實(shí)驗(yàn)板模式選擇實(shí)驗(yàn)板模式選擇NO.0,可實(shí)際驗(yàn)證該設(shè)計(jì)。不斷變換輸入信號可實(shí)際驗(yàn)證該設(shè)計(jì)。不斷變換輸入信號SIGNAL的頻率觀察數(shù)碼管顯示的數(shù)值與實(shí)驗(yàn)板上的頻率標(biāo)稱值的頻率觀察數(shù)碼管顯示的數(shù)值與實(shí)驗(yàn)板上的頻率標(biāo)稱值是否相符。是否相符。 選擇數(shù)據(jù)類型時常犯的錯誤 在過程塊中對變量賦值時,忘了把它定義為寄存器 類型(reg)或已把它定義為連接類型了(wire) 把實(shí)例的輸出連接出去時,把它定義為寄存器reg類型了 把模塊的輸入信號定義為寄存器reg類型了。這是經(jīng)常犯的三個錯誤!小結(jié)小結(jié)只有兩種主要的信號類型: - 寄存器類型: reg 在always 塊中被賦
33、值的信號,往往代表 觸發(fā)器,但不一定是觸發(fā)器。 - 連線類型: wire 用 assign 關(guān)鍵詞指定的組合邏輯的信號 或連線(也可以是組(也可以是組合邏輯信號)合邏輯信號)aout2BUFFbINVout1dout2AND2i1clkout1D QDFFvariable型變量與nets型變量的根本區(qū)別是: variable型變量需要被明確地賦值,并且在被重新賦值前一直保持原值。variable型變量必須通過過程賦值語句賦值!不能通過assign語句賦值!在過程塊內(nèi)被賦值的每個信號必須定義成variable型!注意區(qū)分注意區(qū)分reg n-1:0 a; /a為為n位寄存器位寄存器reg a n-
34、1:0 ; /a為為n個一位寄存器的存儲器個一位寄存器的存儲器0n-10n-1n-2地址標(biāo)量、矢量標(biāo)量、矢量 標(biāo)量標(biāo)量線寬為線寬為1的連線類,或位寬為的連線類,或位寬為1的寄存器類。的寄存器類。如:如:wire a,b; reg c,d,f; 矢量矢量線寬大于線寬大于1的連線類,或位寬大于的連線類,或位寬大于1的寄存器類。的寄存器類。如:如: wire 4:0 a,b; wire 0:3 a; reg 6:0 c,d,f;規(guī)定左邊為最高位,右邊為最低位。規(guī)定左邊為最高位,右邊為最低位。Verilog 與 C 的主要不同點(diǎn) Verilog 有許多語法規(guī)則與 C 語言一致。 但與 C 語言有根本的
35、區(qū)別:- 并行性- 塊的含義: initial 塊 和 always塊- 兩種賦值語句: 阻塞 賦值 “ = ” 非阻塞賦值 “= ” 注1:“always” 塊語句常用于描述時序邏輯,也可描述組合邏輯。 注2:“always” 塊可用多種手段來表達(dá)邏輯關(guān)系,如用if-else語句或case語句。 注3: “always” 塊語句與assign語句是并發(fā)執(zhí)行的, assign語句一定要放在“always” 塊語句之外!不同抽象級別不同抽象級別的的VerilogVerilog HDL HDL模型模型采用的描述采用的描述級別級別越越高高,設(shè)計(jì)設(shè)計(jì)越越容易容易,程序,程序代碼代碼越越簡單簡單;但耗用
36、器件資源更多。對特定綜合器,可能無法將某但耗用器件資源更多。對特定綜合器,可能無法將某些抽象級別高的描述轉(zhuǎn)化為電路!些抽象級別高的描述轉(zhuǎn)化為電路!基于門級描述的硬件模型不僅可以仿真,而且可綜合,基于門級描述的硬件模型不僅可以仿真,而且可綜合,且系統(tǒng)且系統(tǒng)速度快速度快。所有所有VerilogVerilog HDL HDL編譯軟件只是支持該語言的一個編譯軟件只是支持該語言的一個子集子集。盡量采用編譯軟件支持的語句來描述設(shè)計(jì);或多個軟盡量采用編譯軟件支持的語句來描述設(shè)計(jì);或多個軟件配合使用。件配合使用。一般用一般用算法級算法級(寫出邏輯表達(dá)式)或(寫出邏輯表達(dá)式)或RTLRTL級級來描述邏來描述邏輯
37、功能,盡量避免用門級描述,除非對系統(tǒng)速度要求輯功能,盡量避免用門級描述,除非對系統(tǒng)速度要求比較高的場合才采用門級描述。比較高的場合才采用門級描述。 不同抽象級別不同抽象級別的的VerilogVerilog HDL HDL模型模型(1 1)采用什么描述級別更合適?)采用什么描述級別更合適?系統(tǒng)級描述太抽象,有時無法綜合成具體的物理系統(tǒng)級描述太抽象,有時無法綜合成具體的物理電路;門級描述要求根據(jù)邏輯功能畫出邏輯電路電路;門級描述要求根據(jù)邏輯功能畫出邏輯電路圖,對于復(fù)雜的數(shù)字系統(tǒng)很難做到;圖,對于復(fù)雜的數(shù)字系統(tǒng)很難做到;而算法級和而算法級和RTLRTL級描述級別適中,代碼不是很復(fù)級描述級別適中,代碼
38、不是很復(fù)雜,且一般容易綜合成具體的物理電路,故建議雜,且一般容易綜合成具體的物理電路,故建議盡量采用算法級和盡量采用算法級和RTLRTL級級來描述。來描述。(2 2)怎樣減少器件邏輯資源的耗用?)怎樣減少器件邏輯資源的耗用?當(dāng)器件容量有限時,為減少器件邏輯資源的耗用,當(dāng)器件容量有限時,為減少器件邏輯資源的耗用,建議少用建議少用if-elseif-else語句和語句和casecase語句,盡量直接使用邏語句,盡量直接使用邏輯表達(dá)式來描述系統(tǒng)的邏輯功能;輯表達(dá)式來描述系統(tǒng)的邏輯功能;或者用或者用casecase語句取代語句取代if-elseif-else語句。語句。設(shè)計(jì)技巧設(shè)計(jì)技巧建議:建議:(1
39、 1)在進(jìn)行設(shè)計(jì)前,一定要仔細(xì)分析并熟悉所)在進(jìn)行設(shè)計(jì)前,一定要仔細(xì)分析并熟悉所需設(shè)計(jì)電路或系統(tǒng)的整個工作過程;合理劃分需設(shè)計(jì)電路或系統(tǒng)的整個工作過程;合理劃分功能模塊;并弄清每個模塊輸入和輸出間的邏功能模塊;并弄清每個模塊輸入和輸出間的邏輯關(guān)系!輯關(guān)系?。? 2)在調(diào)試過程中,仔細(xì)閱讀并理解錯誤信息)在調(diào)試過程中,仔細(xì)閱讀并理解錯誤信息,隨時查閱教材和課件上有關(guān)語法,糾正語法,隨時查閱教材和課件上有關(guān)語法,糾正語法錯誤。錯誤。設(shè)計(jì)技巧設(shè)計(jì)技巧1 1一個變量不能在多個一個變量不能在多個alwaysalways塊中被賦值!塊中被賦值! 這個問題一定要注意!否則編譯不能通過。這個問題一定要注意!否
40、則編譯不能通過。例例 帶異步清零、異步置位的D觸發(fā)器注注:當(dāng)某個變量有多個觸發(fā):當(dāng)某個變量有多個觸發(fā)條件時,最好將它們放在一條件時,最好將它們放在一個個alwaysalways塊中,并用塊中,并用if-elseif-else語句描述在不同觸發(fā)條件下語句描述在不同觸發(fā)條件下應(yīng)執(zhí)行的操作!應(yīng)執(zhí)行的操作!正確正確的寫法的寫法設(shè)計(jì)技巧設(shè)計(jì)技巧錯誤錯誤的寫法的寫法注注:這里:這里q q和和qnqn在兩個在兩個alwaysalways塊中都被賦值!塊中都被賦值!因?yàn)橐驗(yàn)閍lwaysalways塊之間是并塊之間是并行操作,造成某些語句行操作,造成某些語句可能是互相矛盾的,所可能是互相矛盾的,所以編譯器無所適
41、從,只以編譯器無所適從,只能報錯!能報錯!設(shè)計(jì)技巧設(shè)計(jì)技巧2 2在在alwaysalways塊語句中,當(dāng)敏感信號為兩個以上的時鐘邊沿觸發(fā)塊語句中,當(dāng)敏感信號為兩個以上的時鐘邊沿觸發(fā)信號時,應(yīng)注意不要使用多個信號時,應(yīng)注意不要使用多個if if語句!以免因邏輯關(guān)系描述不語句!以免因邏輯關(guān)系描述不清晰而導(dǎo)致編譯錯誤。清晰而導(dǎo)致編譯錯誤。 例例 在數(shù)碼管掃描顯示電路中,設(shè)計(jì)一個中間變量,將脈沖信號start轉(zhuǎn)變?yōu)殡娖叫盘杄nable 。always(posedge start or posedge reset) if (reset) enable =0; if (start) enable=1; 編
42、譯后出現(xiàn)了多條警告信息,指明在語句編譯后出現(xiàn)了多條警告信息,指明在語句always (posedge start or posedge reset)中,變量中,變量enable不能不能被分配新的值!被分配新的值!錯誤錯誤的寫法的寫法設(shè)計(jì)技巧設(shè)計(jì)技巧其仿真波形如下:其仿真波形如下: 注注:由于在最初一段,:由于在最初一段,startstart和和resetreset均為均為0 0,導(dǎo),導(dǎo)致致enableenable為不定態(tài),則為不定態(tài),則scan_datascan_data開始加開始加1 1計(jì)數(shù)計(jì)數(shù)(正確情況應(yīng)是在按下(正確情況應(yīng)是在按下startstart時時scan_datascan_dat
43、a才開才開始 加始 加 1 1計(jì) 數(shù),因?yàn)榇藭r計(jì) 數(shù),因?yàn)榇藭r re s e t = 0re s e t = 0 , 導(dǎo) 致, 導(dǎo) 致enable=1enable=1。當(dāng)。當(dāng)startstart和和resetreset同時為同時為1 1時,時, enable為為0。)設(shè)計(jì)技巧設(shè)計(jì)技巧 語句語句“else enable=1;”隱含了隱含了reset無效、且無效、且start有效的意思,有效的意思,因此與因此與else if(start) enable=1;效果一樣!效果一樣! 正確的仿真波形如下:正確的仿真波形如下: always(posedge start or posedge reset)
44、if (reset) enable =0; else enable=1;注注:可見在最初一段,當(dāng)可見在最初一段,當(dāng)start和和reset均為均為0時,時,enable被認(rèn)為初值為被認(rèn)為初值為0,則,則scan_data不計(jì)數(shù),保持初值為不計(jì)數(shù),保持初值為0;一旦;一旦start有效時,則有效時,則scan_data才開始加才開始加1計(jì)數(shù)。當(dāng)計(jì)數(shù)。當(dāng)start和和reset同時為同時為1時,先執(zhí)行的是時,先執(zhí)行的是“if (reset) enable =0; ” ”,故,故enable仍為仍為0,則,則scan_data保持原值保持原值0。 正確正確的寫法的寫法設(shè)計(jì)技巧設(shè)計(jì)技巧3 3當(dāng)輸出信號
45、為總線信號時,一定要在當(dāng)輸出信號為總線信號時,一定要在I/OI/O說明中指明其位寬!否則說明中指明其位寬!否則在生成邏輯符號時,輸出信號被誤認(rèn)為是單個信號,而沒有標(biāo)明位在生成邏輯符號時,輸出信號被誤認(rèn)為是單個信號,而沒有標(biāo)明位寬,就不會當(dāng)成總線信號。寬,就不會當(dāng)成總線信號。 例例 聲明一個位寬為5的輸出信號run_cnt,其類型為reg型變量。錯誤錯誤的寫法的寫法output run_cnt;reg4:0run_cnt;正確正確的寫法的寫法output4:0 run_cnt; /這里一定要指明位寬!這里一定要指明位寬! reg4:0run_cnt;3.13 3.13 設(shè)計(jì)技巧設(shè)計(jì)技巧4 4當(dāng)要
46、用到計(jì)數(shù)器時,一定要根據(jù)計(jì)數(shù)最大值事先當(dāng)要用到計(jì)數(shù)器時,一定要根據(jù)計(jì)數(shù)最大值事先計(jì)算好所需的位寬!若位寬不夠,則計(jì)數(shù)器不能計(jì)計(jì)算好所需的位寬!若位寬不夠,則計(jì)數(shù)器不能計(jì)到你設(shè)定的最大值,當(dāng)該計(jì)數(shù)器用作分頻時,則輸?shù)侥阍O(shè)定的最大值,當(dāng)該計(jì)數(shù)器用作分頻時,則輸出時鐘始終為出時鐘始終為0 0,所設(shè)計(jì)電路將不能按預(yù)定功能正,所設(shè)計(jì)電路將不能按預(yù)定功能正常工作!常工作! 例例如某同學(xué)在做樂曲演奏電路實(shí)驗(yàn)時,對樂曲演奏子模塊的仿真完全正確,high3:0、mid3:0、low3:0都有輸出,但下載時音名顯示數(shù)碼管始終為000。這主要是因?yàn)樗诜诸l子模塊中clk_4Hz的分頻用計(jì)數(shù)器count_4位寬設(shè)置不
47、夠,則clk_4Hz輸出為0,故音名顯示計(jì)數(shù)器high3:0、mid3:0、low3:0輸出始終為0,電路不能正常工作。 設(shè)計(jì)技巧設(shè)計(jì)技巧module f20MHz_to_6MHz_4Hz(clkin,clr,clk_6M,clk_4); input clkin,clr; outputclk_6M,clk_4; regclk_6M,clk_4; reg2:0count_6M; reg15:0count_4; parametercount_6M_width=3; parametercount_4_width=5000000; always(posedge clkin or posedge clr
48、) beginif(clr) begin count_4=0;clk_4=0; endelse begin if(count_4=count_4_width-1) /此條件不可能滿足!此條件不可能滿足! begin count_4=0; clk_4=1; end else begin count_4=count_4+1; clk_4=0; end end endendmodule223=8388608,故計(jì)數(shù)器位寬故計(jì)數(shù)器位寬應(yīng)為應(yīng)為23,應(yīng)寫為,應(yīng)寫為22:0 。若寫。若寫成成15:0,216=65536,則則clk_4一直為一直為0,則下載后數(shù)碼管顯,則下載后數(shù)碼管顯示一直為示一直為0,揚(yáng)
49、聲器一直是一,揚(yáng)聲器一直是一個音調(diào)個音調(diào)錯誤錯誤的寫法的寫法設(shè)計(jì)技巧設(shè)計(jì)技巧5 5注意程序書寫規(guī)范:語句應(yīng)注意縮進(jìn)注意程序書寫規(guī)范:語句應(yīng)注意縮進(jìn),if-elseif-else語句注意對齊,應(yīng)添加必要的語句注意對齊,應(yīng)添加必要的注釋!注釋!6 6注意區(qū)分阻塞賦值和非阻塞賦值的區(qū)注意區(qū)分阻塞賦值和非阻塞賦值的區(qū)別。別。在一個源程序中,要么都采用阻塞賦值在一個源程序中,要么都采用阻塞賦值語句,要么都采用非阻塞賦值語句,最語句,要么都采用非阻塞賦值語句,最好不要混合使用,否則可能邏輯關(guān)系出好不要混合使用,否則可能邏輯關(guān)系出錯!錯!為易于綜合,建議均采用非阻塞賦值語為易于綜合,建議均采用非阻塞賦值語句
50、!句!作業(yè)作業(yè)實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)五(一)實(shí)驗(yàn)五(一) 7段段BCD碼譯碼器設(shè)計(jì)碼譯碼器設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康模海?shí)驗(yàn)?zāi)康模和ㄟ^設(shè)計(jì)通過設(shè)計(jì)7 7段段BCDBCD碼譯碼器學(xué)習(xí)碼譯碼器學(xué)習(xí)組合組合電路的設(shè)電路的設(shè)計(jì)方法。計(jì)方法。(2)實(shí)驗(yàn)原理:)實(shí)驗(yàn)原理:7段數(shù)碼是純組合電路,通常的小規(guī)模專用段數(shù)碼是純組合電路,通常的小規(guī)模專用IC,如,如74或或4000系列的器件只能作十進(jìn)制系列的器件只能作十進(jìn)制BCD碼譯碼,然而數(shù)碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是字系統(tǒng)中的數(shù)據(jù)處理和運(yùn)算都是2進(jìn)制的,所以輸出表達(dá)都是進(jìn)制的,所以輸出表達(dá)都是16進(jìn)制的,為了滿足進(jìn)制的,為了滿足16進(jìn)制數(shù)的譯碼顯示,最方便的方
51、法就是利進(jìn)制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在用譯碼程序在FPGA/CPLD中來實(shí)現(xiàn)。下面作為中來實(shí)現(xiàn)。下面作為7段段BCD碼譯碼碼譯碼器,輸出信號器,輸出信號LED7S的的7位分別接如圖位分別接如圖6-21數(shù)碼管的數(shù)碼管的7個段,高個段,高位在左,低位在右。例如當(dāng)位在左,低位在右。例如當(dāng)LED7S輸出為輸出為“1101101”時,數(shù)碼時,數(shù)碼管的管的7個段:個段:g、f、e、d、c、b、a分別接分別接1、1、0、1、1、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)五(一)實(shí)驗(yàn)五(一) 7段數(shù)碼顯示譯碼器設(shè)計(jì)段數(shù)碼顯示譯碼器設(shè)
52、計(jì)圖圖6-21 共陰數(shù)碼管及其電路共陰數(shù)碼管及其電路(3)實(shí)驗(yàn)內(nèi)容)實(shí)驗(yàn)內(nèi)容1:說明下面的代碼中各語句的含義,以及該例的整體功能。說明下面的代碼中各語句的含義,以及該例的整體功能。在在QuartusII上對下例進(jìn)行編輯、編譯、綜合、適配、仿真,給出其所有信號上對下例進(jìn)行編輯、編譯、綜合、適配、仿真,給出其所有信號的時序仿真波形(提示:用輸入總線的方式給出輸入信號仿真數(shù)據(jù))。的時序仿真波形(提示:用輸入總線的方式給出輸入信號仿真數(shù)據(jù))。 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容2:把程序改成顯示十六進(jìn)制后重復(fù)上述過程。把程序改成顯示十六進(jìn)制后重復(fù)上述過程。代碼代碼(十進(jìn)制顯示十進(jìn)制顯示) module decode(a
53、,b,c,d,e,f,g,D3,D2,D1,D0);module decode(a,b,c,d,e,f,g,D3,D2,D1,D0); output a,b,c,d,e,f,g;output a,b,c,d,e,f,g; input D3,D2,D1,D0;input D3,D2,D1,D0; regreg a,b,c,d,e,f,g; a,b,c,d,e,f,g; always (D3,D2,D1,D0) always (D3,D2,D1,D0) begin begin case(D3,D2,D1,D0) case(D3,D2,D1,D0) 4d0:g,f,e,d,c,b,a=7b0111111; 4d0:g,f,e,d,c,b,a=7b0111111; 4d1:g,f,e,d,c,b,a=7b0000110; 4d1:g,f,e,d,c,b,a=7b0000110; 4d2:g,f,e,d,c,b,a=7b1011011; 4d2:g,f,e,d,c,b,a=7b1011011; 4d3:g,f,e,d,c,b,a=7b1001111; 4d3:g,f,e,d,c,b,a=7b1001111; 4d4:g,f,e,d,c,b,a=7b1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 保安公司維修服務(wù)協(xié)議
- 宣城小區(qū)化糞池施工方案
- 龍門吊卸船裝車施工方案
- 浙江金屬波紋涵管施工方案
- 汕尾專業(yè)油罐清洗施工方案
- 無廢學(xué)校建設(shè)的策略與實(shí)施路徑
- 開封防滑固化地坪施工方案
- 主債券合同范例
- 土方車轉(zhuǎn)讓合同范例
- 青年學(xué)生網(wǎng)絡(luò)媒介素養(yǎng)發(fā)展的策略與實(shí)施途徑
- 現(xiàn)代通信原理與技術(shù)(第五版)PPT全套完整教學(xué)課件
- 社區(qū)獲得性肺炎教學(xué)查房
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護(hù)技術(shù)要求
- DB31T 685-2019 養(yǎng)老機(jī)構(gòu)設(shè)施與服務(wù)要求
- 燕子山風(fēng)電場項(xiàng)目安全預(yù)評價報告
- 高一英語課本必修1各單元重點(diǎn)短語
- 糖尿病運(yùn)動指導(dǎo)課件
- 完整版金屬學(xué)與熱處理課件
- T∕CSTM 00640-2022 烤爐用耐高溫粉末涂料
- 心腦血管病的危害教學(xué)課件
評論
0/150
提交評論