




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第6章章 行為級仿真模型建模行為級仿真模型建模Verilog HDL 數(shù)字系統(tǒng)設(shè)計(jì)及實(shí)踐數(shù)字系統(tǒng)設(shè)計(jì)及實(shí)踐學(xué)習(xí)指南學(xué)習(xí)指南【知識目標(biāo)知識目標(biāo)】(1)了解)了解Verilog HDL語言不可綜合行為描述的特點(diǎn);語言不可綜合行為描述的特點(diǎn);(2)了解仿真模型和)了解仿真模型和Testbench的概念和作用;的概念和作用;(3)掌握各種常用)掌握各種常用Verilog HDL行為描述方法。行為描述方法。【技能目標(biāo)技能目標(biāo)】(1) 熟練應(yīng)用熟練應(yīng)用Verilog行為描述構(gòu)建仿真模型和行為描述構(gòu)建仿真模型和Testbench;(2) 熟練構(gòu)建可進(jìn)行自動測試的芯片仿真環(huán)境。熟練構(gòu)建可進(jìn)行自動測試的芯片仿
2、真環(huán)境?!局攸c(diǎn)難點(diǎn)重點(diǎn)難點(diǎn)】(1) 行為級建模與可綜合建模的區(qū)別與聯(lián)系;行為級建模與可綜合建模的區(qū)別與聯(lián)系;(2) 如何構(gòu)建可進(jìn)行自動測試的仿真環(huán)境。如何構(gòu)建可進(jìn)行自動測試的仿真環(huán)境。6.1 行為級建模概述行為級建模概述圖圖6.1 一個(gè)完整的芯片設(shè)計(jì)工程一個(gè)完整的芯片設(shè)計(jì)工程一個(gè)完整的芯片設(shè)計(jì)工程應(yīng)該包含一個(gè)完整的芯片設(shè)計(jì)工程應(yīng)該包含Testbench測試測試環(huán)境的設(shè)計(jì)和被測對象的設(shè)計(jì)。環(huán)境的設(shè)計(jì)和被測對象的設(shè)計(jì)。 被測對象我被測對象我們又可以叫們又可以叫做做“芯片芯片”,因?yàn)樗枋鲆驗(yàn)樗枋龅氖俏覀兿5氖俏覀兿MO(shè)計(jì)的芯望設(shè)計(jì)的芯片本身的功片本身的功能。能。 Testbench通常是用通常是
3、用Verilog HDL語言描述的語言描述的不可綜合的模塊,用來產(chǎn)不可綜合的模塊,用來產(chǎn)生與芯片真實(shí)的工作環(huán)境生與芯片真實(shí)的工作環(huán)境相同的輸入激勵(lì),來對芯相同的輸入激勵(lì),來對芯片的功能進(jìn)行測試。片的功能進(jìn)行測試。6.2 仿真時(shí)間和時(shí)序控制仿真時(shí)間和時(shí)序控制 在運(yùn)行真實(shí)芯片時(shí),芯片的各個(gè)時(shí)間參數(shù)和我們真實(shí)生活中使用的時(shí)間是相同的。在在運(yùn)行真實(shí)芯片時(shí),芯片的各個(gè)時(shí)間參數(shù)和我們真實(shí)生活中使用的時(shí)間是相同的。在仿真的時(shí)候,我們也有自己的時(shí)間,這個(gè)時(shí)間是仿真器虛擬出來的,與真實(shí)的時(shí)間不一定仿真的時(shí)候,我們也有自己的時(shí)間,這個(gè)時(shí)間是仿真器虛擬出來的,與真實(shí)的時(shí)間不一定相同。相同。 復(fù)雜的電路行為往往在時(shí)間
4、上有很強(qiáng)的前后依賴關(guān)系。在可綜合的電路描述中,這種復(fù)雜的電路行為往往在時(shí)間上有很強(qiáng)的前后依賴關(guān)系。在可綜合的電路描述中,這種時(shí)序上的控制只能通過同步時(shí)鐘和有限狀態(tài)機(jī)來實(shí)現(xiàn)。當(dāng)電路的功能變得復(fù)雜以后,對時(shí)時(shí)序上的控制只能通過同步時(shí)鐘和有限狀態(tài)機(jī)來實(shí)現(xiàn)。當(dāng)電路的功能變得復(fù)雜以后,對時(shí)序控制邏輯的設(shè)計(jì)也變得越來越困難。序控制邏輯的設(shè)計(jì)也變得越來越困難。 Verilog HDL提供的時(shí)序控制語句主要有提供的時(shí)序控制語句主要有3種:延遲控制語句,事件控制語句和條件等種:延遲控制語句,事件控制語句和條件等待語句。待語句。延遲控制語句用延遲控制語句用#加數(shù)字的形式來表示程序繼續(xù)運(yùn)行需要等待的仿真時(shí)間。加數(shù)字
5、的形式來表示程序繼續(xù)運(yùn)行需要等待的仿真時(shí)間。.initial begin #10 a = b; #20 a = c;end 6.2 仿真時(shí)間和時(shí)序控制仿真時(shí)間和時(shí)序控制 事件控制語句指利用語法事件控制語句指利用語法()進(jìn)行描述。進(jìn)行描述。后面的括號里包含需要等待的事件。當(dāng)后面的括號里包含需要等待的事件。當(dāng)事件滿足后,程序繼續(xù)運(yùn)行,事件不滿足時(shí),程序等待在此處,直到條件滿足。事件滿足后,程序繼續(xù)運(yùn)行,事件不滿足時(shí),程序等待在此處,直到條件滿足。.initial begin (posedge clk) a = b; (posedge clk) #10 a = b;end 條件等待語句是指用關(guān)鍵詞條
6、件等待語句是指用關(guān)鍵詞wait描述的過程語句。描述的過程語句。.initial begin wait (rst_n) a = b; (rst_n) a = c;end 6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例6.3.1 時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器時(shí)鐘發(fā)生器是時(shí)鐘發(fā)生器是Verilog HDL仿真模型中最重要的模塊。所有硬件電路的工作都離不開時(shí)鐘仿真模型中最重要的模塊。所有硬件電路的工作都離不開時(shí)鐘輸入。同步時(shí)序電路中的存儲單元在時(shí)鐘沿觸發(fā),對電路的數(shù)據(jù)流和狀態(tài)進(jìn)行控制。輸入。同步時(shí)序電路中的存儲單元在時(shí)鐘沿觸發(fā),對電路的數(shù)據(jù)流和狀態(tài)進(jìn)行控制。 【例例6.1】用用Verilog HDL設(shè)計(jì)一個(gè)時(shí)鐘發(fā)生
7、模塊。時(shí)鐘周期可通過參數(shù)設(shè)計(jì)一個(gè)時(shí)鐘發(fā)生模塊。時(shí)鐘周期可通過參數(shù)period調(diào)節(jié),占空調(diào)節(jié),占空比為比為50%/ example_6_1: A simple clock generator for simulationmodule clock_gen #( parameter period = 10 ) ( output reg o_clk ); initial / 設(shè)置時(shí)鐘的初始值設(shè)置時(shí)鐘的初始值 o_clk = 1b0; / 每隔半周期每隔半周期,時(shí)鐘信號反轉(zhuǎn)一次。,時(shí)鐘信號反轉(zhuǎn)一次。 always #(period/2) o_clk = o_clk;endmodule6.3 仿真模型建模
8、實(shí)例仿真模型建模實(shí)例6.3.2簡單的仿真環(huán)境簡單的仿真環(huán)境【例例6.4】用用Verilog HDL設(shè)計(jì)一個(gè)簡單的仿真環(huán)境,對本書例設(shè)計(jì)一個(gè)簡單的仿真環(huán)境,對本書例5.2所示的帶異步復(fù)位端口的所示的帶異步復(fù)位端口的 寄存器模塊進(jìn)行自動測試。寄存器模塊進(jìn)行自動測試。/ example_6_4: Testbench for the DFF appears as example_5_2module dff_asyn_reset_tb (); wire clk; wire dout; reg rst_n; reg din; reg flag_data_check; / 該標(biāo)志位用來表示是否進(jìn)行輸出數(shù)據(jù)檢
9、查該標(biāo)志位用來表示是否進(jìn)行輸出數(shù)據(jù)檢查 clock_gen #(15) cgen ( .o_clk(clk) ); dff_asyn_reset dff1 ( .i_clk(clk), .i_rst_n(rst_n), .i_din(din),6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 .o_dout(dout) ); / 加載輸入激勵(lì)加載輸入激勵(lì) initial begin / 初始化仿真模型的寄存器變量初始化仿真模型的寄存器變量 #0 rst_n = 1b1; din = 1b0; flag_data_check = 1b0; / 開始進(jìn)行復(fù)位,復(fù)位時(shí)間視系統(tǒng)要求而定開始進(jìn)行復(fù)位,復(fù)位時(shí)間視
10、系統(tǒng)要求而定 #50 rst_n = 1b0; #50 rst_n = 1b1; / 復(fù)位完成,向數(shù)據(jù)輸入端口加載激勵(lì)復(fù)位完成,向數(shù)據(jù)輸入端口加載激勵(lì) #10 din = 1b1; flag_data_check = 1b1; / 再次加載新的激勵(lì)再次加載新的激勵(lì) #50 din = 1b0; flag_data_check = 1b1; #50 $finish; end / 自動檢測輸出數(shù)據(jù)自動檢測輸出數(shù)據(jù)6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 always (posedge clk) begin if (flag_data_check) begin #1 if (din != dout)
11、 $display(error: output wrong data: dout = %b, din = %b, dout, din); else $display(ok: output correct data: dout = din = %b, dout); flag_data_check = 1b0; end endendmodule6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例6.3.3從文件讀取激勵(lì)從文件讀取激勵(lì)【例例6.5】用用Verilog HDL語言設(shè)計(jì)一個(gè)測試環(huán)境,對本書第語言設(shè)計(jì)一個(gè)測試環(huán)境,對本書第5章例章例5.9所示的有限狀態(tài)機(jī)進(jìn)所示的有限狀態(tài)機(jī)進(jìn)行測試。狀態(tài)機(jī)的激勵(lì)從文件中
12、讀取,該激勵(lì)將模擬多次總線的傳輸過程,以檢測狀態(tài)機(jī)行測試。狀態(tài)機(jī)的激勵(lì)從文件中讀取,該激勵(lì)將模擬多次總線的傳輸過程,以檢測狀態(tài)機(jī)是否能夠按照預(yù)先設(shè)想的轉(zhuǎn)換圖進(jìn)行狀態(tài)轉(zhuǎn)換。是否能夠按照預(yù)先設(shè)想的轉(zhuǎn)換圖進(jìn)行狀態(tài)轉(zhuǎn)換。/ exmaple_6_5: Testbench for the sample bus controller FSM from example_5_9module fsm_bus_control_tb (); reg rst_n, write, select, resp_ok; wire clk; wire 2:0 stat_cur, stat_nxt; / 激勵(lì)從文件中讀取后存儲在該
13、寄存器變量激勵(lì)從文件中讀取后存儲在該寄存器變量 reg 35:0 stimulus 0:31; parameter Reset = 3b000; parameter Idle = 3b001; parameter Read = 3b010; parameter Write = 3b011; parameter Delay = 3b100;6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 clock_gen #(15) cgen ( .o_clk(clk) ); fsm_bus_control fsm ( .i_clk(clk), .i_rst_n(rst_n), .i_write(write), .i
14、_sel(select), .i_ok(resp_ok), .o_stat_next(stat_nxt), .o_stat_current(stat_cur) ); / 利用利用$readmemh系統(tǒng)函數(shù)從文件中讀取激勵(lì)系統(tǒng)函數(shù)從文件中讀取激勵(lì) initial $readmemh(fsm_sim.dat, stimulus); / 循環(huán)從循環(huán)從stimulus變量中讀取指令變量中讀取指令6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 integer i; reg 35:0 line; wire 3:0 cmd = line35:32; / 指令指令 wire 15:0 addr = line31:1
15、6; / 地址地址 wire 15:0 data = line15:0; / 寫數(shù)據(jù)或讀操作期望的數(shù)據(jù)寫數(shù)據(jù)或讀操作期望的數(shù)據(jù) initial begin #0 rst_n = 1b1; write = 1b0; select = 1b0; resp_ok = 1b0; #50 rst_n = 1b0; #50 if (stat_cur != Reset) $display(error: expect Reset, stat_cur = %b, stat_cur); #50 rst_n = 1b1; #50 i = 0; line = stimulusi; if (stat_cur != Id
16、le) $display(error: expect Idle, stat_cur = %b, stat_cur); / 寄存器變量值的要在下一個(gè)仿真時(shí)刻才穩(wěn)定,因此我們在進(jìn)行寄存器變量值的要在下一個(gè)仿真時(shí)刻才穩(wěn)定,因此我們在進(jìn)行while判斷之判斷之 / 前先延遲前先延遲1。 / 后面代碼中也有很多后面代碼中也有很多#1的延遲,其作用和這里相似。的延遲,其作用和這里相似。6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 #1; / 每個(gè)每個(gè)while循環(huán)進(jìn)行一次讀循環(huán)進(jìn)行一次讀/寫操作,即寫操作,即FSM狀態(tài)轉(zhuǎn)換一圈。狀態(tài)轉(zhuǎn)換一圈。 while (cmd != 4h2) begin $display
17、(info: cmd = %h, addr = %h, data = %h, cmd, addr, data); if (cmd = 4h0) begin / 寫操作寫操作 write = 1b1; select = 1b1; (posedge clk) #1 if (stat_cur != Write) $display(error: expect Write, stat_cur = %b, stat_cur); end else if (cmd = 4h1) begin / 讀操作讀操作 write = 1b0; select = 1b1; (posedge clk) #1 if (sta
18、t_cur != Read) $display(error: expect Read, stat_cur = %b, stat_cur); end / 等待設(shè)備回復(fù)等待設(shè)備回復(fù) (posedge clk)6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 #1 if (stat_cur != Delay) $display(error: expect Delay, stat_cur = %b, stat_cur); / 沒有給沒有給ok信號,信號,Delay狀態(tài)應(yīng)該保持狀態(tài)應(yīng)該保持 (posedge clk) #1 if (stat_cur != Delay) $display(error: expec
19、t Delay, stat_cur = %b, stat_cur); resp_ok = 1b1; (posedge clk) #1 if (stat_cur != Idle) $display(error: expect Idle, stat_cur = %b, stat_cur); i = i + 1; line = stimulusi; resp_ok = 1b0; #1; end #50 $finish; endendmodule6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例6.3.4輸出結(jié)果監(jiān)控輸出結(jié)果監(jiān)控【例例6.6】利用利用$monitor系統(tǒng)函數(shù)構(gòu)建一個(gè)簡單的持續(xù)監(jiān)控變量值變化情況的
20、模塊。系統(tǒng)函數(shù)構(gòu)建一個(gè)簡單的持續(xù)監(jiān)控變量值變化情況的模塊。/ example_6_6: A simple signal monitor programmodule monitor_tb (); wire out; reg opa, opb; assign #2 out = opa & opb; initial begin #0 opa = 1b0; opb = 1b0; #10 opa = opa; #10 opb = opb; #10 $finish; end initial begin $monitor(out = %b; opa = %b; opb = %b, out, opa,
21、 opb); endendmodule6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例 一個(gè)最簡單的監(jiān)控信號邏輯值的方法是利用一個(gè)最簡單的監(jiān)控信號邏輯值的方法是利用$monitor任務(wù)。任務(wù)。$monitor任務(wù)接受的任務(wù)接受的參數(shù)格式與參數(shù)格式與$display相同,其作用也和相同,其作用也和$display相似,都是用來打印信息的。不同的是,相似,都是用來打印信息的。不同的是,當(dāng)調(diào)用當(dāng)調(diào)用$monitor任務(wù)時(shí),參數(shù)列表中指定的變量都將被仿真器監(jiān)控。在之后的任何仿任務(wù)時(shí),參數(shù)列表中指定的變量都將被仿真器監(jiān)控。在之后的任何仿真時(shí)間里,如果這些變量的任何一個(gè)的值發(fā)生變化,真時(shí)間里,如果這些變量的任何一
22、個(gè)的值發(fā)生變化,$monitor所指定的信息都會按其所指定的信息都會按其預(yù)定義的格式打印出來。如果在同一仿真時(shí)刻有多個(gè)變量的值發(fā)生變量,指定的信息預(yù)定義的格式打印出來。如果在同一仿真時(shí)刻有多個(gè)變量的值發(fā)生變量,指定的信息只打印一次。只打印一次。6.3.5總線功能模型(總線功能模型(BFM Bus Function Model) 總線功能模型(總線功能模型(BFM)通常是某個(gè)總線主設(shè)備的接口電路模型。這個(gè)總線主設(shè)備通常)通常是某個(gè)總線主設(shè)備的接口電路模型。這個(gè)總線主設(shè)備通常是一個(gè)是一個(gè)SOC芯片中的微處理器。芯片中的微處理器。 圖圖6.2 使用微處理器硬模型進(jìn)行總線系統(tǒng)測試使用微處理器硬模型進(jìn)行
23、總線系統(tǒng)測試6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例圖圖6.3 使用使用BFM進(jìn)行總線系統(tǒng)測試進(jìn)行總線系統(tǒng)測試 使用使用BFM進(jìn)行總線系統(tǒng)測試,由于激勵(lì)的添加和總線的驅(qū)動可以同時(shí)進(jìn)行,進(jìn)行總線系統(tǒng)測試,由于激勵(lì)的添加和總線的驅(qū)動可以同時(shí)進(jìn)行,因此大大加快了測試速度,提高了測試效率。因此大大加快了測試速度,提高了測試效率?!纠?.9】設(shè)計(jì)一個(gè)可綜合的設(shè)計(jì)一個(gè)可綜合的BFM功能模型。該功能模型。該BFM模型通過從特定的測試端口讀取總線模型通過從特定的測試端口讀取總線操作指令,直接進(jìn)行總線讀操作指令,直接進(jìn)行總線讀/寫操作。該寫操作。該BFM直接使用了本書例直接使用了本書例5.9設(shè)計(jì)的總線控制狀態(tài)
24、機(jī)設(shè)計(jì)的總線控制狀態(tài)機(jī),用于控制總線操作的時(shí)序。為了簡化設(shè)計(jì),該,用于控制總線操作的時(shí)序。為了簡化設(shè)計(jì),該BFM在當(dāng)前總線操作完成后才從測試端口在當(dāng)前總線操作完成后才從測試端口加載下一條指令,即不使用流水線技術(shù)。加載下一條指令,即不使用流水線技術(shù)。6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例/ example_6_9: A simple BFM to perform bus write/read operation.module bfm ( input i_clk, input i_rst_n, / 芯片測試端口芯片測試端口 input 35:0 i_line, / 一條總線指令一條總線指令,格式
25、與例,格式與例6.5相同相同 input i_ready, / 新指令準(zhǔn)備好新指令準(zhǔn)備好 output o_load, / 當(dāng)前指令已完成當(dāng)前指令已完成,可以加載新指令,可以加載新指令 output o_error, / 當(dāng)前讀指令執(zhí)行錯(cuò)誤當(dāng)前讀指令執(zhí)行錯(cuò)誤,讀回的值與期望的值不相同,讀回的值與期望的值不相同 output 15:0 o_rdata, / 將讀指令讀回的數(shù)據(jù)送到測試端口將讀指令讀回的數(shù)據(jù)送到測試端口 / 總線接口信號總線接口信號 input 15:0 i_rdata, / 總線讀數(shù)據(jù)總線讀數(shù)據(jù) input i_ack, / 從設(shè)備回復(fù)信號從設(shè)備回復(fù)信號 output 15:0
26、o_addr, / 總線地址總線地址 output 15:0 o_wdata, / 總線寫數(shù)據(jù)總線寫數(shù)據(jù) output o_wr, / o_wr為為1時(shí)進(jìn)行寫操作,為時(shí)進(jìn)行寫操作,為0是為讀操作是為讀操作 output o_trans / o_trans為為1時(shí),總線進(jìn)行有效操作;為時(shí),總線進(jìn)行有效操作;為0時(shí)總線空閑時(shí)總線空閑 );6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例parameter Reset = 3b000; parameter Idle = 3b001; parameter Read = 3b010; parameter Write = 3b011; parameter Dela
27、y = 3b100; / 通過總線控制狀態(tài)機(jī)控制總線的輸入通過總線控制狀態(tài)機(jī)控制總線的輸入/輸出信號輸出信號 wire 3:0 cmd = i_line35:32; wire 15:0 addr = i_line31:16; wire 15:0 data = i_line15:0; wire 2:0 cur_stat, nxt_stat; / 直接使用了本書例直接使用了本書例5.9設(shè)計(jì)的總線控制狀態(tài)機(jī)設(shè)計(jì)的總線控制狀態(tài)機(jī) fsm_bus_control bus_ctrl ( .i_clk(i_clk), .i_rst_n(i_rst_n), .i_write(o_wr), .i_sel(i_r
28、eady), .i_ok(i_ack), 6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例.o_stat_current(cur_stat), .o_stat_next(nxt_stat) ); assign o_addr = addr; assign o_wdata = data; assign o_wr = (cmd = 4b0); assign o_trans = (cur_stat = Write) | (cur_stat = Read); / 指令加載控制指令加載控制 assign o_load = (cur_stat = Idle); assign o_error = !o_wr & (cur_stat = Delay) & i_ack ? (i_rdata != data) : 1b0; assign o_rdata = i_rdata;endmodule6.3 仿真模型建模實(shí)例仿真模型建模實(shí)例圖圖6.4 BFM測試端口指令加載時(shí)序圖測試端口指令加載時(shí)序圖思考與練習(xí)思考與練習(xí)1簡述為什么要進(jìn)行簡述為什么要進(jìn)行Verilog HDL的行為級建模的行為級建模2分別簡述在分別簡述在RTL代碼仿真后后仿真中,仿真時(shí)間與真實(shí)時(shí)間的關(guān)系。代碼仿真后后仿真中,仿真時(shí)間與真實(shí)時(shí)間的關(guān)系。3簡述時(shí)鐘發(fā)生器仿真模型與真實(shí)的石英晶振時(shí)鐘產(chǎn)生電路的關(guān)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供熱設(shè)施合同范本
- 公眾號合同范本格式
- 包田合同范本
- 醫(yī)療設(shè)備信息咨詢合同范本
- 協(xié)議轉(zhuǎn)讓車輛合同范本
- 出售靜電地板合同范本
- 廠房搭建回收合同范本
- 原料購置合同范本
- 債務(wù)房產(chǎn)抵押合同范本
- 勞務(wù)合同范本退休
- 《研學(xué)旅行課程設(shè)計(jì)》課件-1研學(xué)課程資源選擇
- 《醫(yī)學(xué)心理學(xué)》教案
- 海綿城市建設(shè)技術(shù)標(biāo)準(zhǔn) DG-TJ08-2298-2019
- 2024年2天津理工大學(xué)馬克思主義基本原理概論(期末考試題+答案)
- 跟著名著《小王子》學(xué)高考英語讀后續(xù)寫絕佳的續(xù)寫清單-高中英語作文復(fù)習(xí)專項(xiàng)
- 產(chǎn)教融合大學(xué)科技園建設(shè)項(xiàng)目實(shí)施方案
- 交通法律與交通事故處理培訓(xùn)課程與法律解析
- 廣西版四年級下冊美術(shù)教案
- 《換熱器及換熱原理》課件
- 兒童權(quán)利公約演示文稿課件
- UPVC排水管技術(shù)標(biāo)準(zhǔn)
評論
0/150
提交評論