版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)字集成電路設(shè)計入門-從HDL到版圖于敦山 北大微電子學(xué)系課程內(nèi)容(一) 介紹Verilog HDL, 內(nèi)容包括: Verilog應(yīng)用 Verilog語言的構(gòu)成元素 結(jié)構(gòu)級描述及仿真 行為級描述及仿真 延時的特點及說明 介紹Verilog testbench 激勵和控制和描述 結(jié)果的產(chǎn)生及驗證 任務(wù)task及函數(shù)function 用戶定義的基本單元(primitive) 可綜合的Verilog描述風(fēng)格課程內(nèi)容(二) 介紹Cadence Verilog仿真器, 內(nèi)容包括: 設(shè)計的編譯及仿真 源庫(source libraries)的使用 用Verilog-XL命令行界面進行調(diào)試 用NC Veri
2、log Tcl界面進行調(diào)試 圖形用戶界面(GUI)調(diào)試 延時的計算及反標(biāo)注(annotation) 性能仿真描述 如何使用NC Verilog仿真器進行編譯及仿真 如何將設(shè)計環(huán)境傳送給NC Verilog 周期(cycle)仿真課程內(nèi)容(三) 邏輯綜合的介紹邏輯綜合的介紹 簡介簡介 設(shè)計對象設(shè)計對象 靜態(tài)時序分析靜態(tài)時序分析 (STA) design analyzer環(huán)境環(huán)境 可綜合的可綜合的HDL編碼風(fēng)格編碼風(fēng)格 可綜合的可綜合的Verilog HDL Verilog HDL中的一些竅門中的一些竅門 Designware庫庫 綜合劃分綜合劃分 實驗實驗 (1)課程內(nèi)容(四) 設(shè)計約束( Co
3、nstraint) 設(shè)置設(shè)計環(huán)境 設(shè)置設(shè)計約束 設(shè)計優(yōu)化 設(shè)計編譯 FSM的優(yōu)化 產(chǎn)生并分析報告 實驗 (2)課程內(nèi)容(五) 自動布局布線工具(Silicon Ensemble)簡介課程安排 共54學(xué)時 (18) 講課,27學(xué)時 Verilog (5) Synthesis (3) Place &Route (1) 實驗,24學(xué)時 Verilog (5) Synthesis (2) Place &Route (1) 考試,3學(xué)時參考書目 Cadence Verilog Language and Simulation Verilog-XL Simulation with Synth
4、esis Envisia Ambit Synthesis 硬件描述語言Verilog 清華大學(xué)出版社,Thomas &Moorby,劉明業(yè)等譯,2001.8第二章 Verilog 應(yīng)用 學(xué)習(xí)內(nèi)容 使用HDL設(shè)計的先進性 Verilog的主要用途 Verilog的歷史 如何從抽象級(levels of abstraction)理解 電路設(shè)計 Verilog描述術(shù)語定義(terms and definitions)硬件描述語言硬件描述語言HDL:描述電路硬件及時序的一種編程語言仿真器仿真器:讀入HDL并進行解釋及執(zhí)行的一種軟件抽象級抽象級:描述風(fēng)格的詳細(xì)程度,如行為級和門級ASIC:專用集
5、成電路(Application Specific Integrated Circuit)ASIC Vender:芯片制造商,開發(fā)并提供單元庫自下而上的設(shè)計流程自下而上的設(shè)計流程:一種先構(gòu)建底層單元,然后由底層單元構(gòu)造更大的系統(tǒng)的設(shè)計方法 。自頂向下的設(shè)計流程自頂向下的設(shè)計流程:一種設(shè)計方法,先用高抽象級構(gòu)造系統(tǒng),然后再設(shè)計下層單元RTL級級:寄存器傳輸級(Register Transfer Level),用于設(shè)計的可綜合的一種抽象級Tcl:Tool command Language, 向交互程序輸入命令的描述語言什么是硬件描述語言什么是硬件描述語言HDL 具有特殊結(jié)構(gòu)能夠?qū)τ布壿嬰娐返墓δ苓M
6、行描述的具有特殊結(jié)構(gòu)能夠?qū)τ布壿嬰娐返墓δ苓M行描述的一種高級編程語言一種高級編程語言 這種特殊結(jié)構(gòu)能夠:這種特殊結(jié)構(gòu)能夠: 描述電路的連接描述電路的連接 描述電路的功能描述電路的功能 在不同抽象級上描述電路在不同抽象級上描述電路 描述電路的時序描述電路的時序 表達具有并行性表達具有并行性 HDL主要有兩種:主要有兩種:Verilog和和VHDL Verilog起源于起源于C語言,因此非常類似于語言,因此非常類似于C語言,容易掌握語言,容易掌握 VHDL起源于起源于ADA語言,格式嚴(yán)謹(jǐn),不易學(xué)習(xí)。語言,格式嚴(yán)謹(jǐn),不易學(xué)習(xí)。 VHDL出現(xiàn)較晚,但標(biāo)準(zhǔn)化早。出現(xiàn)較晚,但標(biāo)準(zhǔn)化早。IEEE 1706
7、-1985標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。為什么使用為什么使用HDL 使用使用HDL描述設(shè)計具有下列優(yōu)點:描述設(shè)計具有下列優(yōu)點: 設(shè)計在高層次進行,與具體實現(xiàn)無關(guān)設(shè)計在高層次進行,與具體實現(xiàn)無關(guān) 設(shè)計開發(fā)更加容易設(shè)計開發(fā)更加容易 早在設(shè)計期間就能發(fā)現(xiàn)問題早在設(shè)計期間就能發(fā)現(xiàn)問題 能夠自動的將高級描述映射到具體工藝實現(xiàn)能夠自動的將高級描述映射到具體工藝實現(xiàn) 在具體實現(xiàn)時才做出某些決定在具體實現(xiàn)時才做出某些決定 HDL具有更大的靈活性具有更大的靈活性 可重用可重用 可以選擇工具及生產(chǎn)廠可以選擇工具及生產(chǎn)廠 HDL能夠利用先進的軟件能夠利用先進的軟件 更快的輸入更快的輸入 易于管理易于管理Verilog的歷史的歷史Ve
8、rilog HDL是在是在1983年由年由GDA(GateWay Design Automation)公司的公司的Phil Moorby所創(chuàng)。所創(chuàng)。Phi MoorbyPhi Moorby后來成為后來成為VerilogVerilog-XL-XL的主要設(shè)計者和的主要設(shè)計者和CadenceCadence公司的第一個合伙人。公司的第一個合伙人。在在1984198519841985年間,年間,MoorbyMoorby設(shè)計出了第一個設(shè)計出了第一個VerilogVerilog-XL-XL的仿真器。的仿真器。19861986年,年,MoorbyMoorby提出了用于快速門級仿真的提出了用于快速門級仿真的XL
9、XL算法。算法。19901990年,年,CadenceCadence公司收購了公司收購了GDAGDA公司公司19911991年,年,CadenceCadence公司公開發(fā)表公司公開發(fā)表VerilogVerilog語言,成立了語言,成立了OVI(Open OVI(Open VerilogVerilog International) International)組織來負(fù)責(zé)組織來負(fù)責(zé)VerilogVerilog HDL HDL語言的發(fā)展。語言的發(fā)展。19951995年制定了年制定了VerilogVerilog HDL HDL的的IEEEIEEE標(biāo)準(zhǔn),即標(biāo)準(zhǔn),即IEEE1364IEEE1364。Ver
10、ilog的用途的用途 Verilog的主要應(yīng)用包括:的主要應(yīng)用包括: ASICASIC和和FPGAFPGA工程師編寫可綜合的工程師編寫可綜合的RTLRTL代碼代碼 高抽象級系統(tǒng)仿真進行系統(tǒng)結(jié)構(gòu)開發(fā)高抽象級系統(tǒng)仿真進行系統(tǒng)結(jié)構(gòu)開發(fā) 測試工程師用于編寫各種層次的測試程序測試工程師用于編寫各種層次的測試程序 用于用于ASICASIC和和FPGAFPGA單元或更高層次的模塊的模型開發(fā)單元或更高層次的模塊的模型開發(fā)抽象級抽象級(Levels of Abstraction) VerilogVerilog既是一種行為描述的語言也是一種結(jié)構(gòu)描述語既是一種行為描述的語言也是一種結(jié)構(gòu)描述語言。言。VerilogV
11、erilog模型可以是實際電路的不同級別的抽象。模型可以是實際電路的不同級別的抽象。這些抽象的級別包括:這些抽象的級別包括:系統(tǒng)說明系統(tǒng)說明-設(shè)計文檔設(shè)計文檔/算法描述算法描述RTL/功能級功能級-Verilog門級門級/結(jié)構(gòu)級結(jié)構(gòu)級-Verilog版圖版圖/物理級物理級-幾何圖形幾何圖形行為綜合行為綜合綜合前仿真綜合前仿真邏輯綜合邏輯綜合綜合后仿真綜合后仿真版圖版圖抽象級抽象級(Levels of Abstraction) 在抽象級上需要進行折衷在抽象級上需要進行折衷系統(tǒng)說明系統(tǒng)說明-設(shè)計文檔設(shè)計文檔/算術(shù)描述算術(shù)描述RTL/功能級功能級-Verilog門級門級/結(jié)構(gòu)級結(jié)構(gòu)級-Verilog
12、版圖版圖/物理級物理級-幾何圖形幾何圖形詳細(xì)程度詳細(xì)程度 低低 高高輸入輸入/仿真速度仿真速度 高高 低低抽象級抽象級(Levels of Abstraction)VerilogVerilog可以在三種抽象級上進行描述可以在三種抽象級上進行描述行為級行為級 用功能塊之間的數(shù)據(jù)流對系統(tǒng)進行描述用功能塊之間的數(shù)據(jù)流對系統(tǒng)進行描述 在需要時在函數(shù)塊之間進行調(diào)度賦值。在需要時在函數(shù)塊之間進行調(diào)度賦值。RTL級級/功能級功能級用功能塊內(nèi)部或功能塊之間的數(shù)據(jù)流和控制信號描述系統(tǒng)用功能塊內(nèi)部或功能塊之間的數(shù)據(jù)流和控制信號描述系統(tǒng)基于一個已定義的時鐘的周期來定義系統(tǒng)模型基于一個已定義的時鐘的周期來定義系統(tǒng)模型
13、結(jié)構(gòu)級結(jié)構(gòu)級/門級門級用基本單元用基本單元(primitive)或低層元件或低層元件(component)的連接來描述系的連接來描述系統(tǒng)以得到更高的精確性,特別是時序方面。統(tǒng)以得到更高的精確性,特別是時序方面。在綜合時用特定工藝和低層元件將在綜合時用特定工藝和低層元件將RTL描述映射到門級網(wǎng)表描述映射到門級網(wǎng)表抽象級抽象級(Levels of Abstraction) 設(shè)計工程師在不同的設(shè)計階段采用不同的抽象級設(shè)計工程師在不同的設(shè)計階段采用不同的抽象級 首先在行為級描述各功能塊,以降低描述難度,提高仿真速度。首先在行為級描述各功能塊,以降低描述難度,提高仿真速度。 在綜合前將各功能模塊進行在綜
14、合前將各功能模塊進行RTL級描述。級描述。 用于綜合的庫中的大多數(shù)單元采用結(jié)構(gòu)級描述。在本教程中的結(jié)用于綜合的庫中的大多數(shù)單元采用結(jié)構(gòu)級描述。在本教程中的結(jié)構(gòu)級描述部分將對結(jié)構(gòu)級構(gòu)級描述部分將對結(jié)構(gòu)級(門級門級)描述進行更詳細(xì)的說明。描述進行更詳細(xì)的說明。 Verilog還有一定的晶體管級描述能力及算法級描述能力還有一定的晶體管級描述能力及算法級描述能力行為級和行為級和RTL級級MUX的行為可以描述為:只要信號的行為可以描述為:只要信號a或或b或或sel發(fā)生變化,如果發(fā)生變化,如果sel為為0則選擇則選擇a輸出;否則選擇輸出;否則選擇b輸出。輸出。module muxtwo (out, a,
15、b, sel); input a, b, sel; output out; reg out;always ( sel or a or b) if (! sel) out = a; else out = b;endmodule這個行為級這個行為級RTL描述不處理描述不處理X和和Z狀態(tài)輸入,并且沒有延時。狀態(tài)輸入,并且沒有延時。在行為級模型中,邏輯功能描述采用高級語言結(jié)構(gòu),如在行為級模型中,邏輯功能描述采用高級語言結(jié)構(gòu),如, while,wait,if, case。Testbench(test fixture)通常采用行為級描述。所有行為級結(jié)構(gòu)在通常采用行為級描述。所有行為級結(jié)構(gòu)在testbenc
16、h描描述中都可以采用。述中都可以采用。RTL模型中數(shù)據(jù)流都是基于時鐘的。任何時鐘元件在時鐘沿處的行為都要精模型中數(shù)據(jù)流都是基于時鐘的。任何時鐘元件在時鐘沿處的行為都要精確描述。確描述。RTL級描述是行為級級描述是行為級Verilog的子集。的子集。結(jié)構(gòu)級描述結(jié)構(gòu)級描述結(jié)構(gòu)級結(jié)構(gòu)級Verilog適合開發(fā)小規(guī)模元件,如適合開發(fā)小規(guī)模元件,如ASIC和和FPGA的單元的單元 Verilog內(nèi)部帶有描述基本邏輯功能的基本單元內(nèi)部帶有描述基本邏輯功能的基本單元(primitive),如,如and門。門。 用戶可以定義自己的基本單元用戶可以定義自己的基本單元UDP(User Defined Priviti
17、ves) 綜合產(chǎn)生的結(jié)果網(wǎng)表通常是結(jié)構(gòu)級的。用戶可以用結(jié)構(gòu)級描述粘接綜合產(chǎn)生的結(jié)果網(wǎng)表通常是結(jié)構(gòu)級的。用戶可以用結(jié)構(gòu)級描述粘接(glue)邏輯。邏輯。下面是下面是MUX的結(jié)構(gòu)級描述,采用的結(jié)構(gòu)級描述,采用Verilog基本單元基本單元(門門)描述。描述描述。描述中含有傳輸延時。中含有傳輸延時。module twomux (out, a, b, sl); input a, b, sl; output out; not u1 (nsl, sl ); and #1 u2 (sela, a, nsl); and #1 u3 (selb, b, sl); or #2 u4 (out, sela, sel
18、b);endmodule綜合不綜合不支持支持!僅需一種語言僅需一種語言Verilog的一個主要特點是可應(yīng)用于各種抽象級。建模時可采用門的一個主要特點是可應(yīng)用于各種抽象級。建模時可采用門級和級和RTL級混合描述,在開發(fā)級混合描述,在開發(fā)testfixture時可以采用行為級描述。時可以采用行為級描述。復(fù)習(xí)復(fù)習(xí)什么是什么是Verilog ?Verilog是公開的嗎是公開的嗎?設(shè)計時什么時候采用設(shè)計時什么時候采用Verilog RTL級描述級描述?Verilog適合做什么樣的設(shè)計適合做什么樣的設(shè)計?解答:解答:Verilog是用于硬件描述的具有時間概念的并行編程語言是用于硬件描述的具有時間概念的并行
19、編程語言Verilog是一種公開語言,是一種公開語言, 由由OVI負(fù)責(zé)組織,有負(fù)責(zé)組織,有IEEE1394標(biāo)準(zhǔn)標(biāo)準(zhǔn)RTL描述用于綜合,或用于必須精確到每個時鐘周期的模型的建模。描述用于綜合,或用于必須精確到每個時鐘周期的模型的建模。Verilog適用于各種抽象級模型的開發(fā)及驗證適用于各種抽象級模型的開發(fā)及驗證第三章第三章 Cadence仿真器仿真器 學(xué)習(xí)內(nèi)容學(xué)習(xí)內(nèi)容 邏輯仿真算法邏輯仿真算法 如何啟動如何啟動Verilog-XL和和NC Verilog仿真器仿真器 如何顯示波形如何顯示波形仿真算法仿真算法 主要有三種仿真算法主要有三種仿真算法 基于時間的基于時間的(SPICE仿真器仿真器) 基
20、于事件的基于事件的(Verilog-XL和和NC Verilog仿真器仿真器) 基于周期的基于周期的(cycle)仿真算法仿真算法 基于時間的算法用于處理連續(xù)的時間及變量基于時間的算法用于處理連續(xù)的時間及變量 在每一個時間點對所有電路元件進行計算在每一個時間點對所有電路元件進行計算 效率低。在一個時間點只有約效率低。在一個時間點只有約210%的電路活動的電路活動 基于事件的算法處理離散的時間、狀態(tài)和變量基于事件的算法處理離散的時間、狀態(tài)和變量 只有電路狀態(tài)發(fā)生變化時才進行處理,只模擬哪些可能引起只有電路狀態(tài)發(fā)生變化時才進行處理,只模擬哪些可能引起電路狀態(tài)改變的元件。仿真器響應(yīng)輸入引腳上的事件,
21、并將電路狀態(tài)改變的元件。仿真器響應(yīng)輸入引腳上的事件,并將值在電路中向前傳播。值在電路中向前傳播。 是應(yīng)用最為廣泛的仿真算法是應(yīng)用最為廣泛的仿真算法 效率高。效率高?!癳valuate when necessary” 基于周期的仿真以時鐘周期為處理單位基于周期的仿真以時鐘周期為處理單位(與時間無關(guān)與時間無關(guān)) 只在時鐘邊沿進行計算,不管時鐘周期內(nèi)的時序只在時鐘邊沿進行計算,不管時鐘周期內(nèi)的時序 使用兩值邏輯使用兩值邏輯 (1, 0) 只關(guān)心電路功能而不關(guān)心時序,對于大型設(shè)計,效率高只關(guān)心電路功能而不關(guān)心時序,對于大型設(shè)計,效率高 僅適用于同步電路。僅適用于同步電路?;谑录抡娴臅r輪基于事件仿真
22、的時輪(time wheel)仿真器在編譯數(shù)據(jù)結(jié)構(gòu)時建立一個事件隊列。仿真器在編譯數(shù)據(jù)結(jié)構(gòu)時建立一個事件隊列。只有當(dāng)前時間片中所有事件都處理完成后,時間才能向前。只有當(dāng)前時間片中所有事件都處理完成后,時間才能向前。仿真從時間仿真從時間0開始,而且時輪只能向前推進。只有時間開始,而且時輪只能向前推進。只有時間0的事件處的事件處理完后才能進入下一時片。理完后才能進入下一時片。在同一個時間片內(nèi)發(fā)生的事件在硬件上是并行的在同一個時間片內(nèi)發(fā)生的事件在硬件上是并行的理論上時間片可以無限。但實際上受硬件及軟件的限制。理論上時間片可以無限。但實際上受硬件及軟件的限制。一個時間片的事件一個時間片的事件可引起新的
23、事件,可引起新的事件,在當(dāng)前時片或以后在當(dāng)前時片或以后時間片timesliceCadence Verilog仿真器仿真器 Verilog-XL和和NC Verilog仿真器都是基于事件算法的仿真器都是基于事件算法的仿真器。仿真器讀入仿真器。仿真器讀入Verilog HDL描述并進行仿真以反描述并進行仿真以反映實際硬件的行為。映實際硬件的行為。 Verilog-XL和和NC Verilog仿真器遵循仿真器遵循IEEE 1364 Verilog規(guī)范制定的基于事件的調(diào)度語義規(guī)范制定的基于事件的調(diào)度語義 仿真器可用于仿真器可用于 確定想法的可行性確定想法的可行性 用不同的方法解決設(shè)計問題用不同的方法解
24、決設(shè)計問題 功能驗證功能驗證 確定設(shè)計錯誤確定設(shè)計錯誤仿真過程仿真過程 Verilog仿真分下列步驟:仿真分下列步驟: 編譯編譯讀入設(shè)計描述,處理編譯指導(dǎo)讀入設(shè)計描述,處理編譯指導(dǎo)(compiler directive),建立,建立一個數(shù)據(jù)結(jié)構(gòu)定義設(shè)計的層次結(jié)構(gòu)一個數(shù)據(jù)結(jié)構(gòu)定義設(shè)計的層次結(jié)構(gòu)這一步有時分為兩步:這一步有時分為兩步:compilation,elaboration 初始化初始化參數(shù)初始化;沒有驅(qū)動的參數(shù)初始化;沒有驅(qū)動的Net缺省值為缺省值為Z;其它節(jié)點初始值;其它節(jié)點初始值為為X。這些值延著設(shè)計層次傳播。這些值延著設(shè)計層次傳播。 仿真仿真剛開始時間為剛開始時間為0時,仿真器將時,
25、仿真器將initial和和always中的語句執(zhí)中的語句執(zhí)行一次,遇到有時序控制時停止。這些賦值可產(chǎn)生在時間行一次,遇到有時序控制時停止。這些賦值可產(chǎn)生在時間0或其后時間的事件?;蚱浜髸r間的事件。隨著時間推進,被調(diào)度事件的執(zhí)行引起更多的調(diào)度事件,隨著時間推進,被調(diào)度事件的執(zhí)行引起更多的調(diào)度事件,直至仿真結(jié)束。直至仿真結(jié)束。Versus 交互式編譯仿真器交互式編譯仿真器Verilog-XL是一個交互式仿真器,過程如下:是一個交互式仿真器,過程如下:1.讀入讀入Verilog描述,進行語義語法檢查,處理編譯指導(dǎo)描述,進行語義語法檢查,處理編譯指導(dǎo)(compiler directive)2.在內(nèi)存中
26、將設(shè)計編譯為中間格式,將所有模塊和實例組裝成在內(nèi)存中將設(shè)計編譯為中間格式,將所有模塊和實例組裝成層次結(jié)構(gòu)層次結(jié)構(gòu)(設(shè)計數(shù)據(jù)結(jié)構(gòu)設(shè)計數(shù)據(jù)結(jié)構(gòu))。源代碼中的每個元件都被重新表。源代碼中的每個元件都被重新表示并能在產(chǎn)生的數(shù)據(jù)結(jié)構(gòu)示并能在產(chǎn)生的數(shù)據(jù)結(jié)構(gòu) 找到。找到。3.決定仿真的時間精度,在內(nèi)存中構(gòu)造一個事件隊列的時間數(shù)決定仿真的時間精度,在內(nèi)存中構(gòu)造一個事件隊列的時間數(shù)據(jù)結(jié)構(gòu)據(jù)結(jié)構(gòu)(時輪時輪) 。4.讀入、調(diào)度并根據(jù)事件執(zhí)行每一個語句讀入、調(diào)度并根據(jù)事件執(zhí)行每一個語句Verilog-XL采用多種加速算法提高各種抽象級的仿真速度。采用多種加速算法提高各種抽象級的仿真速度。每次重新啟動每次重新啟動Ver
27、ilog-XL,將重復(fù)上述步驟。,將重復(fù)上述步驟。當(dāng)進入交互模式時,可以輸入當(dāng)進入交互模式時,可以輸入Verilog HDL語句并加到設(shè)計的數(shù)據(jù)結(jié)構(gòu)中。語句并加到設(shè)計的數(shù)據(jù)結(jié)構(gòu)中。Versus 交互式編譯仿真交互式編譯仿真Verilog-XL仿真器是與仿真器是與Verilog HDL同時開發(fā)的,因同時開發(fā)的,因此它成為此它成為Verilog HDL仿真器的事實上的標(biāo)準(zhǔn)。仿真器的事實上的標(biāo)準(zhǔn)。Verilog-XL采用了多種加速算法,對每種抽象級描述采用了多種加速算法,對每種抽象級描述都能很好的仿真。這些加速算法包括都能很好的仿真。這些加速算法包括Turbo算法,算法,XL算法及算法及Switch
28、-XL算法。在后面的教程中將對這些算算法。在后面的教程中將對這些算法進行更為詳盡的介紹。法進行更為詳盡的介紹。NC Verilog-全編譯仿真全編譯仿真NC Verilog是全編譯仿真器,它直接將是全編譯仿真器,它直接將Verilog代碼編代碼編譯為機器碼執(zhí)行。其過程為:譯為機器碼執(zhí)行。其過程為:ncvlog編譯編譯Verilog源文件,按照編譯指導(dǎo)源文件,按照編譯指導(dǎo)(compile directive)檢查語義及語法,產(chǎn)生中間數(shù)據(jù)。檢查語義及語法,產(chǎn)生中間數(shù)據(jù)。ncelab按照設(shè)計指示構(gòu)造設(shè)計的數(shù)據(jù)結(jié)構(gòu),產(chǎn)生可執(zhí)行代碼。按照設(shè)計指示構(gòu)造設(shè)計的數(shù)據(jù)結(jié)構(gòu),產(chǎn)生可執(zhí)行代碼。除非對優(yōu)化進行限制,否
29、則源代碼中的元件除非對優(yōu)化進行限制,否則源代碼中的元件(element)可能被優(yōu)可能被優(yōu)化丟失。產(chǎn)生中間數(shù)據(jù)。化丟失。產(chǎn)生中間數(shù)據(jù)。ncsim啟動仿真核。核調(diào)入設(shè)計的數(shù)據(jù)結(jié)構(gòu),構(gòu)造事件序列啟動仿真核。核調(diào)入設(shè)計的數(shù)據(jù)結(jié)構(gòu),構(gòu)造事件序列(時輪),調(diào)度并執(zhí)行事件的機器碼。有些事件可能消失(時輪),調(diào)度并執(zhí)行事件的機器碼。有些事件可能消失(從不從不執(zhí)行執(zhí)行)除非限制優(yōu)化過程。除非限制優(yōu)化過程。編譯后的所有代碼的執(zhí)行使用同一個核。編譯后的所有代碼的執(zhí)行使用同一個核。當(dāng)重新啟動仿真時,要對修改過的模塊重新編譯。省略這個手工過程的方當(dāng)重新啟動仿真時,要對修改過的模塊重新編譯。省略這個手工過程的方法是直接對
30、設(shè)計進行仿真,這將自動地對修改過的模塊進行重新編譯。法是直接對設(shè)計進行仿真,這將自動地對修改過的模塊進行重新編譯。當(dāng)采用交互模式時,可以使用當(dāng)采用交互模式時,可以使用Tcl命令和針對命令和針對NC Verilog的的Tcl擴展命令。擴展命令。NC Verilog全編譯仿真全編譯仿真NC Verilog是最近才開發(fā)的,但其對描述的仿真與是最近才開發(fā)的,但其對描述的仿真與Verilog-XL完全完全相同相同NC Verilog仿真器用同一個核仿真器用同一個核(kernel)對所有抽象級進行混合仿真,對所有抽象級進行混合仿真,也就是說用戶可以采用各種不同抽象級混合設(shè)計。但在門級仿真的也就是說用戶可以
31、采用各種不同抽象級混合設(shè)計。但在門級仿真的效率差一些。效率差一些。NC Verilog仿真器對源代碼采用增量編譯方式,減少了編譯時間。仿真器對源代碼采用增量編譯方式,減少了編譯時間。在交互模式下,可以使用在交互模式下,可以使用Tcl命令及其針對命令及其針對NC Verilog的擴展命令的擴展命令來修改設(shè)計和控制仿真。這將在后面進行詳細(xì)描述。來修改設(shè)計和控制仿真。這將在后面進行詳細(xì)描述。對對Verilog語言的支持語言的支持Verilog-XL和和NC Verilog計劃支持計劃支持Verilog語言全集。用語言全集。用戶可依據(jù)下列標(biāo)準(zhǔn)進行設(shè)計:戶可依據(jù)下列標(biāo)準(zhǔn)進行設(shè)計:-IEEE1364-19
32、95 Verilog語言參考手冊語言參考手冊-OVI 2.0 Verilog語言參考手冊,但不支持:語言參考手冊,但不支持:Attributes: Verilog描述中對象的屬性。描述中對象的屬性。函數(shù)中函數(shù)中output或或inout變元變元(argument):OVI2.0允許函數(shù)中允許函數(shù)中output和和inout變元值能夠返回。變元值能夠返回。啟動啟動Verilog-XL在命令窗口啟動在命令窗口啟動Verilog-XL: verilog verilog-xl_options design_files沒有沒有option啟動的例子啟動的例子 verilog mux.v test.v使用
33、使用 c選項只對設(shè)計進行語法和連接檢查選項只對設(shè)計進行語法和連接檢查 verilog c mux.v test.v使用使用-f選項指定一個包含命令行參數(shù)的文件選項指定一個包含命令行參數(shù)的文件 verilog f run.f run.f文件的內(nèi)容文件的內(nèi)容Verilog-XL將所有終端輸出保存到名為將所有終端輸出保存到名為verilog.log的文件的文件mux.vtest.v-c啟動啟動NC Verilog雖然NC Verilog仿真過程包括三個分立的步驟(ncvlog, ncelab, ncsim),但仿真時不需要三個命令,可以用帶有命令行參數(shù)的ncverilog命令啟動NC Verilog
34、: ncverilog ncverilog_options verilog-xl_argumentsExamples:ncverilog mux.v test.vncverilog c mux.v test.vncverilog f run.f run.f文件的內(nèi)容NC Verilog將所有終端輸出保存到名為ncverilog.log的文件mux.vtest.v-cNC Verilog有什么不同?有什么不同?除除+gui、-q和和-s這些只影響運行時間的參數(shù)外,其它任何命令行這些只影響運行時間的參數(shù)外,其它任何命令行參數(shù)的改變將使設(shè)計重新編譯、參數(shù)的改變將使設(shè)計重新編譯、elaborate及仿
35、真。及仿真。如果更新了源文件及仿真時用到的如果更新了源文件及仿真時用到的SDF文件,則與它們相關(guān)的文文件,則與它們相關(guān)的文件將重新編譯,設(shè)計也將重新件將重新編譯,設(shè)計也將重新elaborate和仿真。和仿真。NC Verilog為編譯的元件及其它文件建立一個庫結(jié)構(gòu)。增量編譯依賴于源文件、SDF文件和命令行參數(shù)。ncverilog還有其它一些命令行參數(shù),如在調(diào)試時有完全的讀、寫及連接操作,用在調(diào)試時有完全的讀、寫及連接操作,用 +access + argument ncverilog f run.f + access+RWC要得到源文件行操作能力,用要得到源文件行操作能力,用+linedebug
36、 ncverilog -f run.f +linedebug強制重編譯所有設(shè)計單元,使用強制重編譯所有設(shè)計單元,使用+noupdateNC Verilog有什么不同?有什么不同? 使用+access選項可以設(shè)置對所有對象的缺省操作。對象的缺省設(shè)置是無操作。用+access+打開操作,+access-關(guān)掉操作。args可以是R、W、C的任何組合。使用+linedebug可以打開R、W、C,同時可對源文件行進行操作,如在行上設(shè)置一斷點。 使用+noupdate強制重編譯整個設(shè)計。缺省時只重新編譯修改過的文件。只有當(dāng)庫可能被破壞時才這樣做。 +gui選項啟動圖形界面;-q選項抑制標(biāo)識信息;-s選項使
37、仿真器在時間0時停止,進入交互模式。波形顯示工具波形顯示工具SignalScan signalscan & 或 signalscan 數(shù)據(jù)庫文件名 &波形顯示工具波形顯示工具SignalScanTitle Bar:顯示這是:顯示這是SignalScan窗口并以數(shù)字編號。若啟動幾窗口并以數(shù)字編號。若啟動幾個個SignalScan窗口它們將順序編號。窗口它們將順序編號。Menu Bar:通過菜單可以執(zhí)行所有基本命令。:通過菜單可以執(zhí)行所有基本命令。Tool Bar中的按鈕有:中的按鈕有:copy, cut, paste, undo, delete, zoom, create mar
38、ker, expand buses, launch the Design Brower等等等。用戶可以自定義。等。用戶可以自定義。在命令行輸入在命令行輸入signalscan啟動。啟動。SignalScan窗口包括:窗口包括:注:必須用Design Brower在波形窗口中添加信號。Groups Pane列出用戶建立的波形組列出用戶建立的波形組Waveforms Region顯示加入信號的波形顯示加入信號的波形Names Pane在波形的左邊顯示信號名。這些信號名可以拖拽,在波形的左邊顯示信號名。這些信號名可以拖拽,在在pane中雙擊右鍵可以移動插入的中雙擊右鍵可以移動插入的markerTim
39、e-Display Region顯示兩個指針的時間值及其時間差顯示兩個指針的時間值及其時間差SHM:波形數(shù)據(jù)庫:波形數(shù)據(jù)庫波形顯示工具從數(shù)據(jù)庫,如波形顯示工具從數(shù)據(jù)庫,如SHM數(shù)據(jù)庫中讀取數(shù)據(jù)。使數(shù)據(jù)庫中讀取數(shù)據(jù)。使用下面的系統(tǒng)任務(wù)可以對用下面的系統(tǒng)任務(wù)可以對SHM數(shù)據(jù)庫進行操作:數(shù)據(jù)庫進行操作:系統(tǒng)任務(wù)描述$shm_open(“waves.shm”); 打開一個仿真數(shù)據(jù)庫。同時只能打開一個庫寫入。$shm_probe();選擇信號,當(dāng)它們的值變化時寫入仿真庫$shm_close;$shm_save;關(guān)閉仿真庫將仿真數(shù)據(jù)庫寫到磁盤例子:initialbegin $shm_open(“l(fā)ab.s
40、hm”); $shm_probe();endSHM:波形數(shù)據(jù)庫:波形數(shù)據(jù)庫 仿真歷史管理器仿真歷史管理器(Simulation History Manager,SHM)數(shù)據(jù)庫記錄用戶的設(shè)計在仿真時數(shù)據(jù)信號的變化。只記錄數(shù)據(jù)庫記錄用戶的設(shè)計在仿真時數(shù)據(jù)信號的變化。只記錄用戶要觀察用戶要觀察(probe)的信號。的信號。 用戶可以用用戶可以用$shm_系統(tǒng)任務(wù)打開一個系統(tǒng)任務(wù)打開一個SHM數(shù)據(jù)庫,設(shè)數(shù)據(jù)庫,設(shè)置信號探針并將結(jié)果保存到數(shù)據(jù)庫中。這些系統(tǒng)任務(wù)的功置信號探針并將結(jié)果保存到數(shù)據(jù)庫中。這些系統(tǒng)任務(wù)的功能除能除$shm_probe外都非常直觀。對外都非常直觀。對$shm_probe將在下面將在
41、下面詳細(xì)討論。詳細(xì)討論。 用戶必須在仿真前用戶必須在仿真前(時間時間0前前)設(shè)置探針信號才能看到設(shè)置探針信號才能看到信號在仿真過程中全部變化。信號在仿真過程中全部變化。用用$shm_probe設(shè)置信號探針設(shè)置信號探針 在$shm_probe中使用scope/node對作為參數(shù)。參數(shù)可以使用缺省值或兩個參數(shù)都設(shè)置。例如: $shm_probe( ); 觀測當(dāng)前范圍(scope)所有端口 $shm_probe(“A”); 觀測當(dāng)前范圍所有節(jié)點 $shm_probe(alu, adder); 觀測實例alu和adder的所有端口 $shm_probe(“S”, top.alu, “AC”); 觀測:
42、 (1): 當(dāng)前范圍及其以下所有端口,除庫單元 (2):top.alu模塊及其以下所有節(jié)點,包括庫單元用用$shm_probe設(shè)置信號探針設(shè)置信號探針 $shm_probe的語法: $shm_probe(scope0, node0, scope1, node1, .); 每個node都是基于前面scope的說明(層次化的) scope參數(shù)缺省值為當(dāng)前范圍(scope)。node參數(shù)缺省值為指定范圍的所有輸入、輸出及輸入輸出。node說明保存到數(shù)據(jù)庫存的信號“A”“S”“C”“AS”“AC”指定范圍的所有節(jié)點(包括端口(port)指定范圍及其以下所有端口,不包括庫單元內(nèi)部指定范圍及其以下所有端口
43、,包括庫單元內(nèi)部指定范圍及其以下所有節(jié)點(包括端口),不包括庫單元內(nèi)部指定范圍及其以下所有節(jié)點(包括端口),包括庫單元內(nèi)部相關(guān)工具相關(guān)工具Affirma NC VHDL仿真器Envisia Ambit綜合工具Verilog-XL故障仿真器, 用于評價用戶測試向量的有效性SignalScan-TX圖形界面調(diào)試工具包Affirma equivalence checker完成門級設(shè)計之間或門級與RTL級之間的靜態(tài)功能驗證Affirma model checker形式驗證工具,將Verilog或VHDL描述與設(shè)計說明進行驗證Affirma model packager,用戶的Verilog, VHDL
44、或C語言可執(zhí)行模型分發(fā)時進行編譯及分發(fā)許可證Affirma Advanced Analysis Environment includes CoverScan, a code profiler, and HAL, a lint checker與Cadence Verilog仿真器相關(guān)的工具有:總結(jié)總結(jié)邏輯仿真運行Verilog-XL和NC Verilog仿真器探測及顯示波形本章學(xué)習(xí)內(nèi)容復(fù)習(xí)復(fù)習(xí)1.基于事件的仿真器是如何做到并行的?2.時間t的事件能否調(diào)度同一時間t的事件?3.NC Verilog仿真器不支持IEEE 1364 Verilog LRM的什么元件?1. 通過調(diào)度在一個給定的時間片內(nèi)發(fā)
45、生的所有事件來得到通過調(diào)度在一個給定的時間片內(nèi)發(fā)生的所有事件來得到并行性。實際上仿真器串行處理給定時間片內(nèi)的事件,并行性。實際上仿真器串行處理給定時間片內(nèi)的事件,但理論上它們都是在同一時間片內(nèi)發(fā)生的。但理論上它們都是在同一時間片內(nèi)發(fā)生的。2. 任何時間片的事件能夠調(diào)度在同一時間片或其以后產(chǎn)生任何時間片的事件能夠調(diào)度在同一時間片或其以后產(chǎn)生的事件。的事件。3.3. NC VerilogNC Verilog希望支持希望支持IEEE 1364 LRMIEEE 1364 LRM規(guī)范全集。目前主規(guī)范全集。目前主要還不支持實例陣列要還不支持實例陣列(array of instances)(array of
46、 instances)。請參見產(chǎn)。請參見產(chǎn)品發(fā)布手冊。品發(fā)布手冊。第四章第四章 設(shè)計舉例設(shè)計舉例1. 進一步學(xué)習(xí)Verilog的結(jié)構(gòu)描述和行為描述2. Verilog混合(抽象)級仿真學(xué)習(xí)目標(biāo):學(xué)習(xí)目標(biāo):語言的主要特點語言的主要特點module(模塊模塊)module能夠表示:能夠表示:物理塊,如物理塊,如IC或或ASIC單元單元邏輯塊,如一個邏輯塊,如一個CPU設(shè)計的設(shè)計的ALU部分部分整個系統(tǒng)整個系統(tǒng)每一個模塊的描述從關(guān)鍵詞每一個模塊的描述從關(guān)鍵詞module開始,有一個開始,有一個名稱名稱(如(如SN74LS74,DFF,ALU等等),由關(guān)鍵詞等等),由關(guān)鍵詞endmodule結(jié)束。結(jié)束
47、。module是層是層次化設(shè)計的基次化設(shè)計的基本構(gòu)件本構(gòu)件邏輯描述放在邏輯描述放在module內(nèi)部內(nèi)部語言的主要特點語言的主要特點模塊端口(module ports)端口在模塊名字端口在模塊名字后的括號中列出后的括號中列出端口可以說明為端口可以說明為input, output及及inout端口等價于硬件端口等價于硬件的引腳的引腳(pin)注意模塊的名稱DFF,端口列表及說明模塊通過端口與外部通信語言的主要特點語言的主要特點模塊實例化模塊實例化(module instances)module DFF (d, clk, clr, q, qb); .endmodulemodule REG4( d,
48、clk, clr, q, qb); output 3: 0 q, qb; input 3: 0 d; input clk, clr; DFF d0 (d 0, clk, clr, q 0, qb 0); DFF d1 (d 1, clk, clr, q 1, qb 1); DFF d2 (d 2, clk, clr, q 2, qb 2); DFF d3 (d 3, clk, clr, q 3, qb 3);endmodule語言的主要特點語言的主要特點可以將模塊的實例通過端口連接起來構(gòu)成一個大的系可以將模塊的實例通過端口連接起來構(gòu)成一個大的系統(tǒng)或元件。統(tǒng)或元件。在上面的例子中,在上面的例子中
49、,REG4有模塊有模塊DFF的四個實例。注的四個實例。注意,每個實例都有自己的名字意,每個實例都有自己的名字(d0, d1, d2, d3)。實例。實例名是每個對象唯一的標(biāo)記,通過這個標(biāo)記可以查看每名是每個對象唯一的標(biāo)記,通過這個標(biāo)記可以查看每個實例的內(nèi)部。個實例的內(nèi)部。實例中端口的次序與模塊定義的次序相同。實例中端口的次序與模塊定義的次序相同。模塊實例化與調(diào)用程序不同。每個實例都是模塊的一模塊實例化與調(diào)用程序不同。每個實例都是模塊的一個完全的拷貝,相互獨立、并行。個完全的拷貝,相互獨立、并行。模塊實例化模塊實例化(module instances)一個完整的簡單例子一個完整的簡單例子 tes
50、t fixture被測試器件被測試器件DUT是一個二選一多路器。測試裝置是一個二選一多路器。測試裝置(test fixture)提提供測試激勵及驗證機制。供測試激勵及驗證機制。Test fixture使用行為級描述,使用行為級描述,DUT采用門級描述。下面將給出采用門級描述。下面將給出Test fixture的描述、的描述、DUT的描述及如何進行混合仿真。的描述及如何進行混合仿真。DUT 被測器件 (device under test) module MUX2_1 (out, a, b, sel); / Port declarations output out; input a, b, sel
51、; wire out, a, b, sel; wire sel_, a1, b1; / The netlist not (sel_, sel); and (a1, a, sel_); and (b1, b, sel); or (out, a1, b1);endmodule注釋行注釋行已定義的已定義的 Verilog基基本單元的本單元的實例實例a, b, sel是輸入端口,是輸入端口,out是輸出是輸出端口。所有信號通過這些端口從模端口。所有信號通過這些端口從模塊輸入塊輸入/輸出。輸出。另一個模塊可以通過模塊名及端口另一個模塊可以通過模塊名及端口說明使用多路器。實例化多路器時說明使用多路器。實例
52、化多路器時不需要知道其實現(xiàn)細(xì)節(jié)。這正是自不需要知道其實現(xiàn)細(xì)節(jié)。這正是自上而下設(shè)計方法的一個重要特點。上而下設(shè)計方法的一個重要特點。模塊的實現(xiàn)可以是行為級也可以是模塊的實現(xiàn)可以是行為級也可以是門級,但并不影響高層次模塊對它門級,但并不影響高層次模塊對它的使用。的使用。多路器由關(guān)鍵多路器由關(guān)鍵詞詞module和和endmodule開始及結(jié)束。開始及結(jié)束。Test Fixture templatemodule testfixture; / Data type declaration / Instantiate modules / Apply stimulus / Display resultsend
53、module為什么沒為什么沒有端口?有端口?由于由于testfixture是最頂層模是最頂層模塊,不會被其它模塊實例化。塊,不會被其它模塊實例化。因此不需要有端口。因此不需要有端口。Test Fixture 如何說明實例module testfixture; / Data type declaration / Instantiate modules MUX2_1 mux (out, a, b, sel); / Apply stimulus / Display resultsendmodule多路器實例化語句多路器實例化語句MUXMUX的實例化語句包括:的實例化語句包括: 模塊名字:與引用模塊相
54、同模塊名字:與引用模塊相同 實例名字:任意,但要符合標(biāo)記命名規(guī)則實例名字:任意,但要符合標(biāo)記命名規(guī)則 端口列表:與引用模塊的次序相同端口列表:與引用模塊的次序相同Test Fixture 過程(procedural block)所有過程在時間所有過程在時間0執(zhí)行一次執(zhí)行一次過程之間是并行執(zhí)行的過程之間是并行執(zhí)行的 過程語句有兩種:過程語句有兩種: initial :只執(zhí)行一次:只執(zhí)行一次 always :循環(huán)執(zhí)行:循環(huán)執(zhí)行Test Fixture 過程(procedural block)通常采用過程語句進行行為級描述。通常采用過程語句進行行為級描述。test fixture的激的激勵信號在一個
55、過程語句中描述。勵信號在一個過程語句中描述。過程語句的活動與執(zhí)行是有差別的過程語句的活動與執(zhí)行是有差別的所有過程在時間所有過程在時間0處于活動狀態(tài),并根據(jù)用戶定義的條件等待處于活動狀態(tài),并根據(jù)用戶定義的條件等待執(zhí)行;執(zhí)行;所有過程并行執(zhí)行,以描述硬件內(nèi)在的并行性;所有過程并行執(zhí)行,以描述硬件內(nèi)在的并行性;Test fixture 激勵描述module testfixture; / Data type declaration reg a, b, sel; wire out; / MUX instance MUX2_1 mux (out, a, b, sel); / Apply stimulus
56、initial begin a = 0; b = 1; sel = 0; #5 b = 0; #5 b = 1; sel = 1; #5 a = 1; #5 $finish; end / Display resultsendmoduleTime Values a b sel0 0 1 05 0 0 010 0 1 115 1 1 1例子中,例子中,a, b, sela, b, sel說明為說明為regreg類數(shù)據(jù)。類數(shù)據(jù)。regreg類數(shù)據(jù)是寄存器類數(shù)據(jù)信號,在重新類數(shù)據(jù)是寄存器類數(shù)據(jù)信號,在重新賦值前一直保持當(dāng)前數(shù)據(jù)。賦值前一直保持當(dāng)前數(shù)據(jù)。#5 #5 用于指示等待用于指示等待5 5個時間單
57、位。個時間單位。$ $finishfinish是結(jié)束仿真的系統(tǒng)任務(wù)。是結(jié)束仿真的系統(tǒng)任務(wù)。Test Fixture 響應(yīng)產(chǎn)生響應(yīng)產(chǎn)生$time 系統(tǒng)函數(shù),給出當(dāng)前仿真時間$monitor 系統(tǒng)任務(wù),若參數(shù)列表中的參數(shù)值發(fā)生變化,則在時間單位末顯示參數(shù)值。 $monitor (“format_specifiers”, );例如: $monitor($time, o, in1, in2); $monitor($time, , out, , a, , b, , sel); $monitor($time, “%b %h %d %o”, sig1, sig2, sig3, sig4);Verilog提供
58、了一些系統(tǒng)任務(wù)和系統(tǒng)函數(shù),包括:提供了一些系統(tǒng)任務(wù)和系統(tǒng)函數(shù),包括:注意不能注意不能有空格有空格Test Fixture 響應(yīng)產(chǎn)生響應(yīng)產(chǎn)生$time$time是一個系統(tǒng)函數(shù),返回當(dāng)前返回仿真時間。時間是一個系統(tǒng)函數(shù),返回當(dāng)前返回仿真時間。時間用用6464位整數(shù)表示。位整數(shù)表示。$monitor $monitor 在在時間單位時間單位末,若參數(shù)列表中的參數(shù)值發(fā)生末,若參數(shù)列表中的參數(shù)值發(fā)生變化則顯示所列參數(shù)的值。由變化則顯示所列參數(shù)的值。由$time$time引起的變化不會顯引起的變化不會顯示。示。$monitor$monitor系統(tǒng)任務(wù)支持不同的數(shù)基。缺省數(shù)基是十進系統(tǒng)任務(wù)支持不同的數(shù)基。缺省
59、數(shù)基是十進制。支持的數(shù)基還有二進制、八進制、十進制。制。支持的數(shù)基還有二進制、八進制、十進制。完整的完整的Test Fixturemodule testfixture; / Data type declaration reg a, b, sel; wire out; / MUX instance MUX2_1 mux (out, a, b, sel); / Apply stimulus initial begin a = 0; b = 1; sel = 0; #5 b = 0; #5 b = 1; sel = 1; #5 a = 1; #5 $finish; end/ Display resu
60、lts initial $monitor($time, out=%b a=%b b=%b sel=%b, out, a, b, sel);endmodule0 out= 0 a= 0 b= 1 sel= 05 out= 0 a= 0 b= 0 sel= 010 out= 1 a= 0 b= 1 sel= 115 out= 1 a= 1 b= 1 sel= 1結(jié)果輸出結(jié)果輸出時間單位末的概念時間單位末的概念timescale 1ns/1ns module testfixture; / Data type declaration reg a, b, sel; wire out; / MUX instance MUX2_1 mux (
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 分銷管理模式
- 腳病調(diào)理培訓(xùn)課件
- 胸痹心痛病的健康指導(dǎo)
- 智慧營管理解決方案
- 商超巡回導(dǎo)購員招聘合同
- 咖啡杯圖案設(shè)計畫師合作合同
- 現(xiàn)代物流預(yù)算員招聘協(xié)議
- 美容師返聘協(xié)議模板
- 公共綠地綠化養(yǎng)護總承包合同
- 城市綠化景觀工程民建施工合同
- 大學(xué)生職業(yè)生涯規(guī)劃書護理
- 國際傳播與跨文化傳播研究綜述
- 大學(xué)生到教師的角色轉(zhuǎn)變課件
- 掛網(wǎng)噴射混凝土基坑開挖支護專項施工方案
- 高三化學(xué)試卷講評課件
- 半導(dǎo)體DIF是什么工藝
- 生涯發(fā)展報告 (第二版)
- 財務(wù)管理大學(xué)生的職業(yè)生涯規(guī)劃
- ?;愤\輸安全培訓(xùn)-危險品與非危險品的混裝與分裝標(biāo)準(zhǔn)
- 扎實推進安全體系建設(shè)范文
- 啟迪人才測評試卷
評論
0/150
提交評論