版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、前言是一款專業(yè)的仿真,特別是在 Quartus II 11.0 之后的版本,都沒有配套自身的仿真一。,所以成了在 FPGA 設計流程中的進行功能仿真的首選仿真之為 HDL 仿真工具可以利用該來實現(xiàn)對所設計的 VHDL 或Verilog 程序進行仿真,其支持 IEEE 常見的各種硬件描述語言標準??梢赃M行兩種語言的混合仿真,但大家只對一種語言仿真。的版本很多,基本的有 PE、LE、SE 版本,PE 為個人版本,功能最少,支持的操作系統(tǒng)為 32 位WINDOWS 98/NT/ME/2000/XP;LE 版本支持的操作系統(tǒng)為 32 位 LINUX; SE 版本為全功能版本,支持 32 位操作系統(tǒng) A
2、IX,HP-UX, LINUX + SOLARIS,WINDOWS 98/NT/ME/2000/XP,64 位操作系統(tǒng) WINDOWS ,AIX,LINUX (ITANIUM-2),HP-UX, SOLARIS,以及HP-UX,LINUX 等。常見的版本分為XE 為配套 xilinx 的 ISEXE、-altera、SE 三種,其中,-altera 是配套 altera 的 quartus II的,而SE 是屬于專業(yè)版本,可以獨立使用(在仿真中涉及到 FPGA 廠商的 IP 核時,需要調用 FPGA 廠商的 IP 庫文件)和 SystemC 的混合仿真。本章將對版本更新很快,目前的版本都支持
3、VHDL 、Verilog6.2(在高版本上也是行得通的)版本進行介紹,目的是希望讀者在看完本文后,可以簡單地使用進行仿真,有關更深入地,還是參考附帶的文檔。在/support/ 上也可以找到深入ht的。所涉及到的是功能仿真,功能仿真也是 FPGA 設計的流程之一,也是最耗費時間的之一,由于要驗證設計的 RTL 代碼的功能正確性,功能的正確性,包括 RTL 里面的每一行代碼,RTL 里面所涉及到的每一種狀態(tài)機的每一種狀態(tài),RTL 里面所涉及到的每一種條件下每一種情況等等,由此可以想像得到這將多么地耗費時間,所以高效地使用是得有多么地重要,假設設計一個 RTL 代碼,涉及到 10 個狀態(tài)機和 2
4、0 個條件判斷,每個狀態(tài)機有 10 狀態(tài),每個條件有 10 種情況。假設每個狀態(tài)機每個狀態(tài)和每個條件判斷的每種情況都要修改一次 RTL 代碼,這就需要操作 10*10+20*10=100+200=300 次,假設每次要按 10 次鼠標,那總次數(shù)就是 300*10=3000 次。如果采用鼠標窗口操作這得有多繁瑣(多設計幾個大型工程的話,鼠標也要換了),這得多耗費時間,所以這時就需要采用 (每次修改只需調用一條指令就搞定)進行操作,節(jié)省時間、節(jié)省人力物力。本文將通過簡單的三個例程,詳細、細致、圖文并茂地介紹的使用流程,這其中涉及到采用鼠標窗口操作一步一步的地進行編譯、調用仿真文件、添加仿真信號、開
5、始仿真的簡單流程,也包括調用 altera 的 IP 核進行仿真的流程,最后詳細介紹采用法進行仿真,有效并大大地提高每次修改編譯、仿真的效率,只要通過的方輸入,同時也可以設置仿真信號的參數(shù),避免了在每次修改 RTL 代碼后進行鼠標窗口操作的繁瑣流程。其中,最實用專業(yè)的是最后的方法操作,這也是讀者所必須掌握的方法!2版本本資料屬大西瓜 FPGA 開發(fā)團隊所有,切勿用于商業(yè)!的話,請注明出處,如需合作請聯(lián)系!該不斷升級更新,敬請關注!大西瓜FPGA淘寶店:Jaran3版本版本說明時間版本 V1.0第一版編寫整理2016.7.1目錄前言2版本3目錄4基于-SE 的簡單仿真流程5編寫 RTL 功能代碼
6、5編寫 testbench 代碼6仿真時間.8待測試模塊信號.8激勵信號產(chǎn)生8創(chuàng)建工程10編譯13添加仿真信號15仿真開始18仿真信號查看19調用 altera IP 核的仿真流程22編寫 RTL 功能代碼22編寫 testbench 代碼25創(chuàng)建工程26編譯29添加仿真信號30仿真開始32仿真信號查看32基于-SE 的專業(yè)進階仿真流程36編寫測試操作.36仿真信號查看374基于-SE 的簡單仿真流程編寫 RTL 功能代碼要進行功能仿真,首先得用需要仿真的模塊,也就是 RTL 功能代碼,簡稱待測試的模塊,該模塊也就是在設計到 FPGA 的電路。一個電路模塊想要有輸出,就得有輸出,數(shù)字電路也是一
7、樣的,時鐘和復位信號是必不可少的測試激勵信號之一,同時可能還包括控制信號、數(shù)據(jù)信號。這里總結一下,一般系統(tǒng)中包括的測試激勵信號主要為四大類1.2.3.4.系統(tǒng)信號(時鐘、時鐘使能信號、復位信號等);控制信號(使能信號、片選信號、握手信號,狀態(tài)機控制信號等);數(shù)據(jù)信號(并行接口數(shù)據(jù)信號、串行接口數(shù)據(jù)信號等);地址信號(模塊的地址信號、內(nèi)部寄存/器地址信號等)。而對于,在放在不同的測試激勵信號的條件下分析,不同的測試激勵產(chǎn)生相應的,通過分析就可以知道相應的與目標結果是否一致,如果不一致便進行RTL 的修改,如果一致則修改測試激勵信號,遍歷完不同情況下的測試激勵,完成整體 100%的功能測試,才能確
8、保 RTL 功能模塊的設計功能完整性。這里需要注意一點,功能仿真正確不一定能確保最后綜合、布局布線后到 FPGA 產(chǎn)生的功能結果正確,但是功能仿真不正確,F(xiàn)PGA 產(chǎn)生的功能結果一定不正確!所以功能仿真是很必要的!RTL功能代碼模塊測試激勵本實驗需要設計一個 8bit 的計數(shù)器,功能很簡單,該計數(shù)器在每個時鐘的上升沿進行加一并將結果輸出,當計數(shù)到 255 的時候返回到 0 重新計數(shù),以此循環(huán),模塊接口如下所示。測試激勵信號是時鐘和復位信號,時鐘信號為 50M,復位信號為低電平有效。8bit 的計數(shù)值,范圍為 0255,如果從波形上看是一個鋸齒波。為時鐘Counter8bit計數(shù)值復位5編寫 t
9、estbench 代碼TestBench 基本概念 測試激勵-待測 RTL 功能模塊-觀察比對波形/在終端打印或生產(chǎn)文本/自動對比輸出結果。TestBench 編寫三步曲1.2.3.對被測試設計的頂層接口進行例化;給被測試設計的輸入接口添加激勵信號;判斷被測試設計的輸出想要是否滿足設計要求;TestBench 內(nèi)容主要分為1.2.3.4.時鐘的產(chǎn)生;復位的產(chǎn)生;控制信號的產(chǎn)生;其他激勵信號的產(chǎn)生(用戶自定義 )。相應于被測試模塊的輸入激勵設置為 reg 型,輸出相應設置為 wire 類型,雙向端口 inout在測試中需要進行處理。雙向端口 inout 的設置方法:為雙向端口inout 設置中間
10、變量 inout_reg 作為該 inout 的輸出寄存,inout 口在 testbench6module counter( clk, reset_n,counter_out);inputclk;inputreset_n; output 7:0counter_out;reg 7:0counter_reg;assign counter_out = counter_reg;always (edge clk or negedge reset_n) beginif(reset_n = 1b0) begincounter_reg = 8d0;end else begincounter_reg begi
11、ninitialbegin/ codet executes only once/ insert code here - begin對激勵信號進行初賦值操作/ - end$display(Running testbench); end測試功能模塊 例化測試功能模塊名(.輸入信號(測試激勵信號),.輸出信號(定義為 wire 型信號進行觀察));testbench 代碼9timescale 1 ns/ 10 ps module counter_tst();/ constants/ general pure registers/ test vector input registers reg clk
12、;reg reset_n;/ wireswire 7:0counter_out;counter counter_1(.clk(clk),.reset_n(reset_n),.counter_oounter_out);initial begin/ codet executes only once/ insert code here - begin clk=1b0; reset_n end$display(Running testbench); endalways/ optional sensitivity list/ (event1 or event2 oreventn)begin/ code
13、executes for every event on sensitivity list/ insert code here - begin #10clk=clk;reset_n end endendmodule激勵信號賦值操作,持續(xù)執(zhí)行/ - end end創(chuàng)建工程運行,方法是點擊開始-程序-或雙擊桌面上的建立過工程,這時候SE-快捷方式,會出現(xiàn)如下圖所示的界面,如果上一次使用會自動打開上一次所建立的工程,可以 close擊,在出現(xiàn)的欄目中選擇 close project。project,具體操作:選中工程的文件,右點擊 File-New-Project,會出現(xiàn)如下圖所示的界面。10選擇 p
14、roject 后,會出現(xiàn)如下界面在 Project Name 中輸入建立的工程名字為counter,在 Project Location 中點擊 browse 按鍵,選擇工程保存的路徑,注意不能為一個工程自動建立一個目錄,這里最好是選擇已經(jīng)創(chuàng)建好的一個工程文件夾作為目錄,在 Default Library Name 中為的設計編譯到哪一個庫中,這里使用默認值,這樣,在編譯設計文件后,在 Workspace 窗口的 Library 中就會出現(xiàn) work 庫。這里我們輸入完以后,點擊 OK。在點擊 OK 按鍵后會出現(xiàn)選擇仿真文件的界面,如下圖所示,可以點擊不同的圖標來為工程添加不同的項目,點擊 C
15、reate New File 可以為工程添加新建的文件, 點擊 Add Existing File 為工程添加已經(jīng)存在的文件,點擊 Create Simulation 為工程添加仿真,點擊 Create NewFolder 可以為工程添加新的目錄。這里點擊 Add Existing File;11這里將前面設計的 counter.v 文件和 counter_tst.v 文件包含進工程里面,點擊 browse 按鍵,將文件包含進來,如下圖所示,然后點擊 ok 按鍵。接著會在的工程工作窗口出現(xiàn)如下圖所示,即已經(jīng)將兩個文件包含進來,其中在狀態(tài)那一欄出現(xiàn)兩個問號,表明文件包含進來了,還沒有進行編譯。1
16、2編譯在 WorkSpace 窗口的 counter_tst.v 上點擊右鍵,如果選擇 Compile selected則編譯選中的文件,Compile All 是編譯所有文件,這里選擇 Compile-Compile All,如下圖所示;13在窗口中將出現(xiàn)綠色字體# Compile of counter.v wacsful.c# Compile of counter_tst.v wasful.,說明文件編譯成功,在該文件的狀態(tài)欄后有一綠色的對號,表示編譯成功;如果出現(xiàn)紅色的字體,說明 RTL 文件里面有語法錯誤,這時可以雙擊紅色字體就會彈出窗口,顯示具體的語法錯誤信息,錯誤信息將會表明語法的
17、具體錯誤原因和錯誤的位置,這里可以雙擊錯誤的說明,將會自動跳到對應的 RTL 文件所在的錯誤位置,接著就可以在錯誤的位置上找出語法錯誤,修改之后重新編譯。同時,狀態(tài)那一欄出現(xiàn)兩個問號變成了,表明編譯成功,沒有語法錯誤。14添加仿真信號下面開始仿真,點擊菜單 Simulate-start Simulation。出現(xiàn)如下圖所示的界面,展開 Design 選項卡下的 work 庫,并選中其中的 counter_tst,這是在 Simulate 中出現(xiàn)了 work. counter_tst 表示要仿真的對象,在優(yōu)化那一欄不選擇優(yōu)化,如果選擇優(yōu)化的話,有些信號在仿真的時候會被優(yōu)化掉,觀察不了。點擊 OK
18、;15點擊 OK 后,選中的仿真模塊將會被加載到工程里面進行仿真,這里可能會出現(xiàn)錯誤,一般的問題是在 testbench 例化的模塊名,模塊信號有錯誤或者是信號參數(shù)有錯誤,如果出現(xiàn)錯誤則需要修改然后重新編譯將待測試的模塊加載到工程。加載成功后,工程工作窗口會跳到 sim 窗口,會出現(xiàn)如下界面16在 sim 窗口可以看到 testbench 設計的 3 個部分,初始化、always、例化的模塊。這里需要觀察的信號就是例化模塊輸出的信號,由此右擊 counter_1,選擇 add-add to wave,將待測試模塊的信號添加到波形觀察窗口中進行仿真觀察。添加后的wave 窗口如下圖所示17仿真開
19、始仿真可以采用窗口上的進行設置,如下圖所示同時也可以通過再1ms。窗口輸入運行時間后按下回車鍵進行運行run 1ms,這里運行18仿真信號查看仿真運行后,波形窗口會出現(xiàn)如下所示的信號。這里選中信號整形進行顯示。counter_out,右擊如下圖所示,設置信號顯示的數(shù)制,這里選擇無符號可以看到信號由 0 在每個時鐘上升沿進行加一操作,在計數(shù)到 255 后重新再從 0 計數(shù)。在信號顯示中,有時為了觀察信號更直接,需要將信號采用模擬的方式進行顯示,可以滿足這一要求,這里選中 counter_out 信號,右擊如下圖所示19將信號設置為模擬顯示,接著彈出如下窗口,可以設置調整信號顯示的幅值,這里默認原
20、始值,點擊 ok。最后還要設置下波形窗口中模擬信號顯示所占有的寬度,以滿足信號采用模擬顯示后不會和其他信號顯示在一起。選擇 counter_out 信號,右擊如下圖所示。進行設置信號顯示的格式,如下圖所示,這里設置顯示的高度為 300,可以滿足信號最大值 255。20最后可以看到將 counter_out 顯示為模擬信號會得到如下的結果。21調用 altera IP 核的仿真流程在學習本節(jié)內(nèi)容之后,請詳細閱讀基于-SE 的簡單仿真流程,因為本節(jié)是基于基于-SE 的簡單仿真流程的基礎上進行設計的,關于設計仿真流程的過程所涉及到的重復內(nèi)容將不再詳述,將會一筆帶過,如果深入學習了基于單仿真流程這一小
21、節(jié),則下面的內(nèi)容將會非常的簡單。-SE 的簡編寫 RTL 功能代碼本小節(jié)通過調用 altera 的 ROM 宏功能模塊,F(xiàn)PGA 的 ROM 模塊主要用于數(shù)據(jù),可以在上電的時候進行寫入(),ROM 模塊主要包含三個信號 時鐘、地址、數(shù)據(jù),在時鐘的驅動下,往 ROM 寫入地址,則 ROM 的數(shù)據(jù)端就會輸出對應地址所的數(shù)據(jù)。采用基于-SE 的簡單仿真流程所設計的 8bit 計數(shù)器產(chǎn)生的 8bit 計數(shù)值作為 ROM 模塊的地址信號,對 ROM 進行尋址,輸出 ROM 中的數(shù)據(jù)。在 8bit 計數(shù)器模塊和 ROM 模塊的基礎上,新建一個 RTL 文件,對這兩個模塊進行信號并將 ROM 輸出的數(shù)據(jù)信號
22、進行輸出。設計的結構如下所示時鐘CounterROM8bit計數(shù)值8bit數(shù)值復位這里如何調用 altera 的ROM 宏功能的過程就不詳細說明了,這里簡單說明 ROM 模塊的參數(shù)設置,數(shù)據(jù)位寬為 8bit,深度為 256,如下圖所示。22數(shù)據(jù)輸出不經(jīng)過寄存器對 ROM 的原始文件進行設置,將 sif 文件作為原始數(shù)據(jù),sif 文件256 個正弦波的數(shù)據(jù),數(shù)據(jù)位寬和 ROM 的數(shù)據(jù)位寬一致。23編寫頂層 RTL 文件,將兩個模塊連接起來,代碼如下所示24module rom_top( clk,reset_n, rom_data);inputclk;inputreset_n; output 7:
23、0rom_data;wire7:0counter_out; counter counter_1(.clk(clk),.reset_n(reset_n),.counter_oounter_out);rom rom_1(.address(counter_out),.clock(clk),.q(rom_data);endmodule編寫 testbench 代碼Testbench 文件采用 1 ns/ 10 ps 的時間和時間精度,該文件的激勵輸入信號只需要對時鐘信號和復位信號進行賦值,同時輸出信號是 rom 中的正弦信號。如下所示。ClkCounterROM8bit計數(shù)值rom_datareset
24、_nTestbench 代碼25timescale 1 ns/ 10 ps module rom_tst();/ constants/ general pure registers/ test vector input registers reg clk;reg reset_n;/ wireswire 7:0rom_data;rom_top rom_top_1(.clk(clk),.reset_n(reset_n),.rom_data(rom_data);initial begin/ codet executes only once/ insert code here - begin clk=
25、1b0; reset_n end$display(Running testbench); endalways/ optional sensitivity list創(chuàng)建工程運行,方法是點擊開始-程序-或雙擊桌面上的建立過工程,這時候SE-快捷方式,會出現(xiàn)如下圖所示的界面,如果上一次使用會自動打開上一次所建立的工程;點擊 File-New-Project,會出現(xiàn)如下圖所示的界面。26/ (event1 or event2 oreventn)begin/ code executes for every event on sensitivity list/ insert code here - beg
26、in #10clk=clk;reset_n end endendmodule選擇 project 后,會出現(xiàn)如下界面在 Project Name 中輸入建立的工程名字為rom,在 Project Location 中點擊 browse 按鍵,選擇工程保存的路徑,注意不能為一個工程自動建立一個目錄,這里最好是選擇已經(jīng)創(chuàng)建好的一個工程文件夾作為目錄,在 Default Library Name 中為的設計編譯到哪一個庫中,這里使用默認值,這樣,在編譯設計文件后,在 Workspace 窗口的 Library 中就會出現(xiàn) work 庫。這里輸入完以后,點擊 OK。在點擊 OK 按鍵后會出現(xiàn)選擇仿真文
27、件的界面,如下圖所示,可以點擊不同的圖標來為工程添加不同的項目,點擊 Create New File 可以為工程添加新建的文件, 點擊 Add Existing File 為工程添加已經(jīng)存在的文件,點擊 Create Simulation 為工程添加仿真,點擊 Create NewFolder 可以為工程添加新的目錄。這里點擊 Add Existing File;27這里將前面設計的 counter.v 文件、rom.v、rom_top.v、rom_tst.v 文件包含進工程里面,同時由于調用了 Altera 的 IP 核所以需要將 IP 核庫文件包含進行來,該文件為 altera_mf.v
28、也包含到工程中(可以在 quartus 的安裝目錄下的 eda/sim_lib 文件夾下面找到這個文件)。點擊 browse 按鍵,將文件包含進來,如下圖所示,然后點擊 ok 按鍵。接著會在的工程工作窗口出現(xiàn)如下圖所示,即已經(jīng)將兩個文件包含進來,其中在狀態(tài)那一欄出現(xiàn)問號,表明文件包含進來了,還沒有進行編譯。28編譯在 WorkSpace 窗口的 counter_tst.v 上點擊右鍵,如果選擇 Compile selected則編譯選中的文件,Compile All 是編譯所有文件,這里選擇示;Compile-Compile All,如下圖所在窗口中將出現(xiàn)一行綠色字體# Compile of
29、altera_mf.v wa# Compile of counter.v wacsful.sful.c# Compile of rom.v wacsful.csful.# Compile of rom_top.v wa# Compile of rom_tst.v wa對號,表示編譯成功;csful.,說明文件編譯成功,在該文件的狀態(tài)欄后有一綠色的同時,狀態(tài)那一欄出現(xiàn)兩個問號變成了,表明編譯成功,沒有語法錯誤。29添加仿真信號下面開始仿真,點擊菜單 Simulate-start Simulate。出現(xiàn)如下圖所示的界面,展開 Design 選項卡下的 work 庫,并選中其中的 rom_tst,這
30、是在 Simulate 中出現(xiàn)了 work. rom_tst 表示要仿真的對象,在優(yōu)化那一欄不選擇優(yōu)化,如果選擇優(yōu)化的話,有些信號在仿真的時候會被優(yōu)化掉,觀察不了。點擊OK;點擊 OK 后,選中的仿真模塊將會被加載到工程里面進行仿真,這里可能會出現(xiàn)錯誤,30一般的問題是在 testbench 例化的模塊名,模塊信號有錯誤或者是信號參數(shù)有錯誤,如果出現(xiàn)錯誤則需要修改然后重新編譯將待測試的模塊加載到工程。加載成功后,工程工作窗口會跳到 sim 窗口,會出現(xiàn)如下界面在 sim 窗口可以看到 testbench 設計的 3 個部分,初始化、always、例化的模塊。這里需要觀察的信號就是例化模塊輸出的
31、信號,由此右擊rom_top_1,選擇 add-add to wave,將待測試模塊的信號添加到波形觀察窗口中進行仿真觀察。添加后的wave 窗口如下圖所示31仿真開始仿真可以采用窗口上的進行設置,如下圖所示同時也可以通過再1ms。窗口輸入運行時間后按下回車鍵進行運行run 1ms,這里運行仿真信號查看仿真運行后,波形窗口會出現(xiàn)如下所示的信號。32這里選中信號 counter_out、rom_data,右擊如下圖所示,設置信號顯示的數(shù)制,這里選擇無符號整形進行顯示??梢钥吹?counter_out 信號由 0 在每個時鐘上升沿進行加一操作,在計數(shù)到 255 后重新再從 0 計數(shù)。rom_dat
32、a 則在每個時鐘信號上升沿下將 sin 信號輸出。在信號顯示中,有時為了觀察信號更直接,需要將信號采用模擬的方式進行顯示,可以滿足這一要求,這里選中 rom_data 信號,右擊如下圖所示33將信號設置為模擬顯示,接著彈出如下窗口,可以設置調整信號顯示的幅值,這里默認原始值,點擊 ok。最后還要設置下波形窗口中模擬信號顯示所占有的寬度,以滿足信號采用模擬顯示后不會和其他信號顯示在一起。選擇 rom_data 信號,右擊如下圖所示。34進行設置信號顯示的格式,如下圖所示,這里設置顯示的高度為 300,可以滿足信號最大值 255。最后可以看到將 rom_data 顯示為模擬信號會得到如下的結果。3
33、5基于-SE 的專業(yè)進階仿真流程通過基于-SE 的簡單仿真流程和調用 altera IP 核的仿真流程是否感受到仿真流程中的繁瑣步驟,特別是在創(chuàng)建工程之后的步驟 編譯、添加仿真信號、開始仿真。這三個步驟涉及到一大堆的鼠標操作,涉及到一大堆的窗口操作,由于 RTL 仿真過程是一個反復迭代的過程,同時要求覆蓋到 100%的功能測試,由此也要覆蓋到所有狀態(tài)機和條件判斷的所有情況,由此,RTL 的功能仿真功能需要不斷的修改 RTL 代碼,每次修改 RTL 代碼都需要進行編譯、添加仿真信號、開始仿真,這要是用鼠標操作這得多累人。由此,需要采用的方式編寫*do 文件,將編譯、添加仿真信號、開始仿真這三個步驟采用題。的方式進行,只需在執(zhí)行窗口輸入*.do 文件,并執(zhí)行就可以解決以上的問編寫測試操作編寫測試操作,需要對的有所了解本實驗在調用 altera IP 核的仿真流程的實驗上進行修改,使用的 RTL 代碼、創(chuàng)建工程的過程和調用 altera IP 核的仿真流程一致。將步驟編譯、添加仿真信號、開始仿真采用的方式進行操作,編寫
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 垃圾清理承包協(xié)議書
- 二零二五版?zhèn)€人電商退貨退款還款協(xié)議范本3篇
- 反擔保合同協(xié)議
- 書畫交易有了合同范本
- 二零二五年度電子產(chǎn)品銷售合同范本匯編2篇
- 二零二五版濕地公園生態(tài)修復與生態(tài)旅游經(jīng)營合同3篇
- 糧油供銷合同書糧油買賣合同
- 三方買賣合同
- 二零二五年度高校企業(yè)實訓基地共建與人才培養(yǎng)計劃合同3篇
- 居間類型合同年
- 2024年黑河嫩江市招聘社區(qū)工作者考試真題
- 第22單元(二次函數(shù))-單元測試卷(2)-2024-2025學年數(shù)學人教版九年級上冊(含答案解析)
- 兒科學川崎病說課
- 2025年云南農(nóng)墾集團總部春季社會招聘(9人)管理單位筆試遴選500模擬題附帶答案詳解
- 安全常識課件
- 河北省石家莊市2023-2024學年高一上學期期末聯(lián)考化學試題(含答案)
- 小王子-英文原版
- 中學生手機使用管理協(xié)議書
- 給排水科學與工程基礎知識單選題100道及答案解析
- 2024年土地變更調查培訓
- 2024年全國外貿(mào)單證員鑒定理論試題庫(含答案)
評論
0/150
提交評論