版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
大連東軟信息學院本科畢業(yè)設計(論文)論文題目論文題目:基于systemverilog的21階FIR濾波器驗證系所:電子工程系專業(yè):電子信息工程(集成電路設計與系統(tǒng)方向)學生姓名:學生學號:指導教師:導師職稱:講師完成日期:2014年3月08日大連東軟信息學院Dalian大連東軟信息學院畢業(yè)設計(論文)摘要V基于systemverilog的21階FIR濾波器驗證摘要芯片的規(guī)模和復雜度隨著SOC技術、IP復用技術的發(fā)展在急劇膨脹,對驗證提出了巨大挑戰(zhàn),驗證已達到芯片設計的瓶頸。在芯片的設計工作中,驗證占據(jù)將近70%,的工作量,隨著IP標準化工作的進行,驗證占的比例呈逐日上升的趨勢。在SV語言成為IEEE的規(guī)范后,基于SystemVerilog的VMM驗證方法學廣泛的應用到各個項目中去,因為它有很強的重用擴展性,更全面的覆蓋率,更合理的驗證結構。本次驗證所采用的是VMM驗證方法學,使用SystemVerilog語言搭建驗證平臺。驗證數(shù)據(jù)濾波器模塊—fir_filter。通過驗證平臺向驗證目標輸入數(shù)據(jù),同時向參考模型輸入相同數(shù)據(jù)。經(jīng)過驗證目標和參考模型的處理,驗證平臺得到處理后的兩種輸出數(shù)據(jù),并對兩種輸出數(shù)據(jù)進行比對,如果不一致,上報錯誤信息,并打印到指定文件中。然后根據(jù)仿真波形進行Debug,查找錯誤原因,如果是驗證目標導致的錯誤,將錯誤相應信息向設計人員報告。如果是驗證平臺或者參考模型引起的錯誤,定位問題位置,解決問題。經(jīng)驗證了fir_filter數(shù)據(jù)濾波器模塊的功能、時序的準確性,符合預期設計目標。本文共有7章:第1章介紹課題的背景以及方法等;第2章介紹VMM驗證方法學中的一些基本概念和專有名詞介紹;第3章對fir_filter模塊的功能和接口時序等進行分析;第4章對fir_filter模塊的驗證環(huán)境和參考模型的結構進行分析;第5章介紹驗證環(huán)境中各模塊的具體實現(xiàn);第6章介紹覆蓋率分析結果;第七章為結論。關鍵詞:VMM,驗證平臺,SystemVerilog,參考模型大連東軟信息學院畢業(yè)設計(論文)AbstractThe23-orderFIRFilterVerificationBasedOnSystemVerilogAbstractWiththedevelopmentofSoctechnologyandIPmultiplexing,thescaleandcomplexityofthechipintherapidexpansion,presentedahugechallengefortheverification,andtheverifyhasbeenreferredtoasachipdesignbottleneck.Theverifyworkcanaccountfor70%oftheentirechipdesignwork,andalongwiththeIPstandardizationworkcarriedout,theproportionisstillinanupwardtrend.InSystemVerilogIEEEP1800specification,moreandmoreprojectsbegantousedbasedonSystemVerilogVMMverificationmethodologytoreusescalability,betterfunctionalcoverage,morereasonableverificationstructure.ThearticleisbasedontheVMMverificationmethodology,theverificationplatformfromSystemVeriloglanguage.Toverifythedifferentialdemodulationfunctiondigitallogicmodule-dmod.Inputdatatotargetoftheverifiedthroughverificationplatform,enterthesamedataatthesametimetothereferencemodel.Afterprocessingofthetargetandthereferencemodeltobeverified,theoutputdataverificationplatformtogettreatment,comparisonontwooutputdata,ifthereisanerror,reporttheerrormessage,andprinttothecorrespondingfile.Thenthedebugthataccordingtothesimulationwaveformtofindthecauseoftheerror,iftheerrorcausedbyverifiedgoals,thereportetheerrormessagetothedesigners.Iftheerrorcausedbytheplatformorreferencemodelerrorpositioning,first,locatetheproblemlocation.then,tosolvetheproblem.Thefinalresultsverifiedfir_filterdifferentialdemodulationmodulefunctionality,timingaccuracytomeettheexpecteddesigngoals.Thisarticlehassevenchapters:Chapter1describesthedevelopmentofVMMverificationmethodology.Chapter2introducessomebasicconceptsintheVMMandterminologyintroduced.Chapter3analyzesthefir_filtermodule’sfunctionalityandinterfacetiming.Chapter4explainsthestructureoffir_filtermodule’sverificationenvironmentandreferencemodel.Chapter5describestheconcreteimplementationofeachmoduleintheverificationenvironmentandthereferencemodel.Chapter6describesthecoverageanalysis.Chapter7istheconclusion.Keywords:VMM,VerificationPlatform,SystemVerilog,ReferenceModel大連東軟信息學院畢業(yè)設計(論文)目錄目錄TOC\o"1-3"\u摘要 IAbstract II第1章緒論 11.1課題研究背景與意義 11.2課題研究內(nèi)容與方法 11.3課題研究現(xiàn)狀 1第2章關鍵技術介紹 22.1SystemVerilog介紹 22.2VMM介紹 22.3驗證平臺 22.4參考模型與MATLAB 3第3章系統(tǒng)分析 43.1驗證目標分析 43.1.1驗證目標說明 43.1.2驗證目標接口說明 43.1.3驗證目標接口時序 53.2系統(tǒng)開發(fā)環(huán)境 53.3系統(tǒng)可行性分析 5第4章系統(tǒng)設計 84.1驗證目標功能點分解 84.2驗證平臺 94.3驗證環(huán)境 94.4驗證環(huán)境文件調用關系 114.5驗證環(huán)境的復用性 114.6驗證環(huán)境輸入輸出文件 124.5.1輸入文件 124.5.2輸出文件 12第5章系統(tǒng)實現(xiàn) 145.1fir_filter_env模塊的實現(xiàn) 145.1.1功能說明 145.1.2工作流程圖 145.2dpu_rcfg模塊的實現(xiàn) 155.2.1功能說明 155.2.2整體工作流程圖 155.2.3read_cfg工作流程圖 165.2.4read_data工作流程圖 175.3dpu_fir_bfm模塊的實現(xiàn) 175.3.1功能說明 175.3.2工作流程圖 185.4dpu_scb模塊的實現(xiàn) 185.4.1功能說明 185.4.2工作流程圖 195.5dpu_db模塊的實現(xiàn) 195.5.1功能說明 195.5.2工作流程圖 205.6參考模型的實現(xiàn) 205.7驗證環(huán)境整體說明 21第6章系統(tǒng)測試 236.1各驗證向量仿真結果 236.2覆蓋率統(tǒng)計工具 236.3行覆蓋率 246.4翻轉覆蓋率 246.5條件覆蓋率 256.6分支覆蓋率 256.7覆蓋率總結 26第7章結論 27參考文獻 29致謝 30大連東軟信息學院畢業(yè)設計(論文)-第1章緒論1.1課題研究背景與意義隨著SoC(系統(tǒng)級芯片)時代的到來,超大規(guī)模集成電路的功能強大,但是其結構也越來越復雜,芯片的規(guī)模也越來越大,設計工程師與驗證工程師都面臨著前所未有的挑戰(zhàn)。隨著技術發(fā)展和市場需求,SystemVerilog應運而生,它將硬件描述語言與現(xiàn)代的高層級驗證語言結合了起來,并為Verilog-2001標準提供了擴展,為新一代驗證語言。SV語言的的出現(xiàn)大大的提升了設計與驗證的效率,縮短了設計與驗證的周期,降低了芯片設計的風險。 本次研究的意義為基于VMM的驗證理論并熟練的使用SystemVerilog語言搭建驗證平臺,結合用matlab構造的參考模型對fir_filter進行驗證。1.2課題研究內(nèi)容與方法本次研究內(nèi)容為fir_filter模塊的驗證,使用SystemVerilog搭建驗證環(huán)境,模仿實際使用動作給予fir_filter激勵,同時給予matlab參考模型相同的激勵,收到兩個結果文件后進行對比來確定設計的正確性。1.3課題研究現(xiàn)狀除了Verilog和SystemVerilog外,IC驗證目前使用最多的是C和C++,SystemVerilog是驗證的核心,它融合了C++與Verilog語言,基本都使用它來搭建驗證環(huán)境。由于算法越來越復雜,使用C語言實現(xiàn)起來相對簡單,所以C語言在驗證中用到的越來越多。很長一段時間,IC領域的工程師們在不斷的嘗試和實驗各種方法來提高驗證的效率以及EDA工具的自動化的程度,在研究的過程中總結出一些方法,仿真驗證就出于他們之手,仿真驗證是用軟件去模擬實際使用的環(huán)境去確定硬件設計的正確性,在設計電路流片之前,對電路進行大范圍測試,從而提高流片的成功率。大連東軟信息學院畢業(yè)設計(論文)第2章關鍵技術介紹2.1SystemVerilog介紹SV即SystemVerilog的簡稱,是一種硬件描述語言。它是由Verilog語言發(fā)展而來的。并且兼容Verilog語言,逐漸成為新一代硬件設計和驗證語言,獲得主流電子設計自動化工具的支持。SV語言的另一個特點就是和芯片的驗證方法學能夠很好的結合在一起,使得驗證方法學具有了重復利用性,減少了芯片的研發(fā)周期,提高了效率。SystemVerilog綜合了很多設計語言的概念,包括Verilog、C、C++等語言概念,還包括了斷言語言以及驗證平臺語言??梢哉f,它將現(xiàn)代的驗證語言和硬件設計描述語言相結合。使得現(xiàn)在進行難度較大的驗證的工程師對SV有很大的吸引力。SV是一種標準的工業(yè)語言,它把RTL設計、覆蓋率、驗證平臺和斷言極好的結合在了一起,為驗證工程師提供巨大的方便,為系統(tǒng)級驗證提高很好的技術支持。2.2VMM介紹VerificationMethodologyManual即VMM驗證方法學的全稱,它主要的運用SV語言編寫。還包括了一些C語言的思想。VMM驗證方法學主要功能就是用SystemVerilog語言創(chuàng)建包括隨機化條件約束、斷言驗證技術和覆蓋率采集等的驗證平臺。目前,主要是由synopsys公司來對VMM驗證方法學提高和支持。synopsys公司隨著它提供的仿真器附帶著VMM所需的標準庫。運用VMM驗證方法學進行IC驗證工作,其具備格式標準化,統(tǒng)一化優(yōu)點,對于不同驗證工程師編寫的驗證環(huán)境,有助于查看和工作交流。2.3驗證平臺在測試過程中,被測目標稱為DUT(DesignUnderTest),驗證平臺把DUT包含在其中,驗證平臺可以驅動DUT的所有輸入端口,監(jiān)視DUT的輸出端口。驗證人員可以根據(jù)需要以不同的方式給予DUT激勵,并從輸出端口接收到相應的反應動作以確定設計的正確性。驗證平臺通過接口(interface)與DUT相連,如圖2.2所示:圖2.1驗證平臺結構圖2.4參考模型與MATLAB本模塊功能為對輸入數(shù)據(jù)進行濾波,測試此模塊需要對其輸出進行確認,但是由于數(shù)據(jù)長度比較大,人工去比對數(shù)據(jù)工作量巨大,且不能保證準確性,所以引入了參考模型。參考模型RM(ReferenceModel),它可以模仿DUT的動作,驗證平臺給予DUT激勵的同時給予RM相同的激勵,DUT與RM均會生成結果文件,對兩個結果文件進行比對即可確定設計的正確性。如圖2.2所示:圖2.2參考模型方框圖MATLAB是一款數(shù)學軟件,常用于算法開發(fā)和數(shù)值計算等,它具有單步運行,斷點運行等功能,在調試時非常方便,并且在DUT與RM比對不一致時可以快速定位到出現(xiàn)問題的位置,驗證平臺可通過命令的方式調用MATLAB。第3章系統(tǒng)分析3.1驗證目標分析3.1.1驗證目標說明 fir_filter模塊是對輸入信號進行濾波并去除毛刺的模塊。其結構如下圖所示:圖3.1驗證目標結構圖3.1.2驗證目標接口說明表3.1fir_filter模塊接口信號列表SIGNALBITSI/OSIGNALDESCRIPTION時鐘復位接口clk_fir1I4.608MHz時鐘,在檢測到模擬電路的刷卡喚醒信號后一直打開,直至刷卡滿足退出條件rstn_t11I磁道1datapath復位信號,異步低電平有效rstn_t21I磁道2datapath復位信號,異步低電平有效rstn_t31I磁道3datapath復位信號,異步低電平有效數(shù)據(jù)通路接口t1_din[DW-1:0]DWI磁道1輸入數(shù)據(jù),有符號數(shù)t2_din[DW-1:0]DWI磁道2輸入數(shù)據(jù),有符號數(shù)t3_din[DW-1:0]DWI磁道3輸入數(shù)據(jù),有符號數(shù)t1_di_vld1I磁道1輸入數(shù)據(jù)有效標識t2_di_vld1I磁道2輸入數(shù)據(jù)有效標識t3_di_vld1I磁道3輸入數(shù)據(jù)有效標識t1_dout[DW-1:0]DWO磁道1經(jīng)動態(tài)DC消除后輸出數(shù)據(jù),有符號數(shù)t2_dout[DW-1:0]DWO磁道2經(jīng)動態(tài)DC消除后輸出數(shù)據(jù),有符號數(shù)t3_dout[DW-1:0]DWO磁道3經(jīng)動態(tài)DC消除后輸出數(shù)據(jù),有符號數(shù)t1_do_vld1O磁道1經(jīng)動態(tài)DC消除后輸出數(shù)據(jù)有效標識t2_do_vld1O磁道2經(jīng)動態(tài)DC消除后輸出數(shù)據(jù)有效標識t3_do_vld1O磁道3經(jīng)動態(tài)DC消除后輸出數(shù)據(jù)有效標識3.1.3驗證目標接口時序三個磁道的接口時序一致,此處僅描述其中一個磁道的接口時序:圖3.2fir_filter模塊單磁道接口時序時序說明:復位信號rstn_t1無效時,當t1_di_vld有效時,輸入數(shù)據(jù)t1_din有效(DW=10),t1_di_vld拉高一個時鐘周期,下一個時鐘上升沿t1_do_vld信號拉高一個時鐘周期,在這個時鐘周期給出處理之后的結果,三個磁道的時序是一樣的,但是三個磁道的使能信號不能同時有效,否則處理數(shù)據(jù)出錯(單磁道的復用)。3.2系統(tǒng)開發(fā)環(huán)境硬件環(huán)境:Linux工作站軟件環(huán)境:Synopsys公司的VCS、Springsoft公司的Verdi、Vimeditor3.3系統(tǒng)可行性分析本驗證環(huán)境以VMM驗證方法驗證環(huán)境的分層理論為基礎,使用systemverilog語言搭建,本環(huán)境層次結構如下圖所示:圖3.3分層的測試平臺測試層:它為驗證環(huán)境的配置文件,包括環(huán)境配置參數(shù)、寄存器讀寫參數(shù)以及信號隨機或遍歷的約束,環(huán)境通過讀取該文件來生成數(shù)據(jù)包進而控制相應的動作。可使用不同的配置即可測試不同的功能或者檢查點,即修改測試層文件即可實現(xiàn),簡單而又方便。場景層:由于測試層文件會針對不同的測試需求而改變其參數(shù)等信息,所以需要一個模塊來讀取它使其他模塊的動作符合測試層的需求,那么引入場景層:它讀取測試層的配置文件,從而使產(chǎn)生器根據(jù)配置產(chǎn)生受約束的數(shù)據(jù)或者激勵信號,有些固定不變的參數(shù)或激勵則直接通過本層讀取即可,場景層為驗證環(huán)境動作與測試層需求的一致提供保障。功能層:它包括事務處理器、計分板和檢驗器:事務處理器主要負責驗證環(huán)境所有的事務處理,由它來發(fā)起一個事務并分發(fā)給各個模塊。計分板主要是收集輸入的數(shù)據(jù)并計算指標即預期結果,以及記錄一些行為并交給檢驗器來進行檢查,確定結果,從而完成對驗證目標工作正確性的判斷。命令層:它根據(jù)場景層讀取配置后由產(chǎn)生器所生成的激勵驅動驗證目標使其做相應的動作,驗證目標動作的結果通過功能層來判斷,驗證環(huán)境所有的動作以及與驗證目標的交互都由命令層來完成。信號層:它主要是把驗證環(huán)境與驗證目標連接起來,包括接口以及時鐘等,本層可發(fā)送或者接收驗證目標的信號。驗證環(huán)境通過接口來給予驗證目標激勵,并再次通過接口來得到驗證目標處理之后的結果。測試平臺的總體處理流程為:驗證工程師通過配置修改測試層的配置文件來實現(xiàn)不同測試點的測試,場景層讀取測試層的配置文件生成受約束的激勵或數(shù)據(jù)等,事務處理器調用場景層后生成包含所有配置信息以及數(shù)據(jù)的數(shù)據(jù)包,并發(fā)送給各個模塊,即把測試層的命令都傳達給各個模塊,命令層接到數(shù)據(jù)包后取出其中的配置信息和數(shù)據(jù),根據(jù)配置信息來選擇不同的測試分支(通常在模塊中使用case語句或if_else語句來實現(xiàn)對不同測試分支的管理),取出的數(shù)據(jù)隨時可用于驅動驗證目標,命令層通過信號層的接口給予驗證目標相應的激勵,經(jīng)過驗證目標處理之后,功能層的計分板通過信號層的接口采集驗證目標的輸出,記錄并發(fā)送給功能層的檢驗器進行檢驗,得出本條測試向量的結果,確認驗證目標在此功能下的工作狀態(tài)。分層的測試平臺通過功能的劃分,將驗證平臺劃分出多個層次,使代碼的復用性高,代碼結構也更加清晰,縮短了驗證前期的調試時間,同時也易于后期的維護,大大增加驗證的效率。第4章系統(tǒng)設計4.1驗證目標功能點分解如下表所示,是對fir_filter模塊分解出來的測試向量,具體描述如下。表4.1fir_filter模塊測試向量特性1特性2特性點名稱邊角向量僅磁道1有效,處理數(shù)據(jù)長度為100000f_01_01_01僅磁道2有效,處理數(shù)據(jù)長度為100000f_01_02_01僅磁道3有效,處理數(shù)據(jù)長度為100000f_01_03_013個磁道同時有效,處理數(shù)據(jù)長度為1000000f_01_04_013個磁道同時有效,處理數(shù)據(jù)長度為0~1000000隨機f_01_05_01異常向量3個磁道同時有效時,在處理過程中磁道1異常復位,磁道2和3保持f_02_01_013個磁道同時有效時,在處理過程中磁道2異常復位,磁道1和3保持f_02_02_013個磁道同時有效時,在處理過程中磁道3異常復位,磁道1和2保持f_02_03_013個磁道同時有效時,在處理過程中磁道1和2異常復位,磁道3保持f_02_04_013個磁道同時有效時,在處理過程中磁道1和3異常復位,磁道2保持f_02_05_013個磁道同時有效時,在處理過程中磁道2和3異常復位,磁道1保持f_02_06_01針對fir_filter模塊,測試向量包括:邊角向量:驗證邊角數(shù)值的計算結果是否與參考模型一致異常向量:驗證復位和時序的異常接口時序:通過查看波形確定時序是否正確所謂的特性就是測試點,即驗證目標可能出錯的點,在驗證之前要對驗證目標做透徹的分析并分解出驗證目標的所有特性,每條特性都是一個測試點,分解的越細致,測試的質量就越高,當所有特性全部測試完成并正確,那么可以確定驗證目標通過了測試,可以正常使用。那么前提是分解特性要全面,分解時不要存在僥幸心理,如:這里實現(xiàn)這么簡單的功能,肯定不會出錯等,這種想法對于驗證工程師來說是致命的,對于芯片來說也是致命的,由于一個復位的小問題影響芯片的正常使用,導致公司虧損的例子數(shù)不勝數(shù),保證芯片硬件部分正常工作,對于驗證工程師來說,完成的分解驗證目標的所有特性是至關重要的。本次的驗證目標為三個磁道的濾波器,為單磁道的復用,測試需要大量的數(shù)據(jù),所以向量中選用10w個長度為10bit的數(shù)據(jù)流,分別1磁道有效,2磁道有效,3磁道有效,即確定磁道獨立工作的正確性。之后三個磁道同時有效,確定其復用模塊同時工作的正確性,這些都為正常的向量,但是有的時候用戶在使用的時候會出現(xiàn)錯誤的操作導致功能不正確,所以在驗證時也要模擬出異常使用的情況,本次驗證的異常向量主要是針對三個磁道復位的測試,即在三個磁道工作中隨機去復位其中一個或者兩個磁道,查看未被復位的磁道會不會被影響,設計中三個磁道是互相獨立的,異常向量的測試保證了這一點。4.2驗證平臺驗證平臺結構圖如下圖所示:圖4.1系統(tǒng)體系結構fir_filter驗證環(huán)境主要包括5部分:參考模型、DUT、驗證環(huán)境env、輸入文件和輸出文件。參考模型讀取cfg配置文件并生成隨機數(shù)據(jù)流,根據(jù)自己生成的數(shù)據(jù)流進行計算和處理得出期望的結果,將生成的數(shù)據(jù)流和結果分別打印到兩個文件中。驗證環(huán)境讀取參考模型生成的數(shù)據(jù)流文件,通過env驅動DUT對其數(shù)據(jù)流進行處理,生成結果文件,最后將參考模型生成的結果文件與env生成的結果文件進行對比,確定DUT的正確性,因為參考模型與驗證目標都是參考同一份資料或者同一個算法來實現(xiàn)的,所以當結果不一致時,通過matlab的單步運行功能,與驗證目標的中間變量進行比對。確定問題的所在。4.3驗證環(huán)境本次驗證是基于事務級的驗證,由激勵生成器、參考模型和驗證環(huán)境組成,驗證環(huán)境包括:rcfg讀取信號激勵文件和數(shù)據(jù)文件、db(distributeboard)分發(fā)板、bfm(busfunctionmodule)總線功能模型、sb(scoreboard)計分板、cheker比對等5個模塊組成。如下圖4.2所示:圖4.2驗證環(huán)境結構圖如上圖所示,各模塊功能如下:dpu_rcfg:它的功能是讀取配置文件,它根據(jù)cfg.in文件以及data.in文件的格式,用針對這種格式的讀取方式去解析兩個文件,并放入buf中以形成數(shù)據(jù)包。dpu_db:它調用dpu_rcfg模塊生成數(shù)據(jù)包,并將生成的數(shù)據(jù)包通過信箱(mailbox)發(fā)送給dpu_fir_bfm模塊和dpu_scb模塊,發(fā)送數(shù)據(jù)包的間隔由dpu_scb模塊控制。dpu_fir_bfm:它接收dpu_db模塊的數(shù)據(jù)包,根據(jù)數(shù)據(jù)包中信息對dut進行驅動,等待其處理完成后取出結果放入數(shù)據(jù)包中,并通過mailbox發(fā)送給dpu_scb模塊。dpu_scb:它接到bfm模塊發(fā)送的數(shù)據(jù)包,把結果數(shù)據(jù)取出來,通過打印函數(shù)把數(shù)據(jù)打印到dpu_rtl.out中供比對使用。4.4驗證環(huán)境文件調用關系文件關系調用是說明文件在環(huán)境中的作用。如圖4.3所示:圖4.3文件調用關系環(huán)境中各文件的功能:dpu_cfg.in:驗證環(huán)境的配置文件,其中含有配置的相關參數(shù),如測試分支的選擇以及寄存器的數(shù)值等。dpu_datax.in:參考模型的輸出文件,驗證環(huán)境的輸入文件,其中包含參考模型隨機生成的數(shù)據(jù),以每行10bit的16進制數(shù)的形式保存。fir_rm.out:參考模型的輸出文件,其中包含參考模型的計算結果,以一次計算結果為一行的形式保存。dpu_rtl.out:驗證目標的輸出文件,其中包含驗證目標計算的結果,以一次計算結果為一行的形式保存。dpu_result.log:將fir_rm.out與dpu_rtl.out進行對比,將結果打印到dpu_result.log中,如果結果一致則打印ok,不一致則打印error,并且把不一致的哪一行數(shù)據(jù)打印出來以供進一步確認,本文件由腳本自動生成。4.5驗證環(huán)境的復用性在搭建驗證環(huán)境時,要考慮其簡潔性以及測試的完整性之外,還要考慮驗證環(huán)境的復用性,因為在完成單元級驗證之后,在整個系統(tǒng)集成完畢之后,要進行系統(tǒng)級的驗證,因為系統(tǒng)級和單元級不一樣,它主要是對其連接關系以及內(nèi)存空間、寄存器操作等進行檢查,而單元級注重的是功能檢查,為了節(jié)省系統(tǒng)級的驗證時間,在做單元級的驗證時需考慮驗證環(huán)境模塊的復用,所謂的復用就是可以把一部分代碼移植到另外一個環(huán)境中,只需修改參數(shù)或輸入即可正常使用而不影響它的功能,在驗證環(huán)境的模塊中大多是先啟動start函數(shù),在此函數(shù)中執(zhí)行對應的功能,那么再執(zhí)行這些功能時,把每一個小的功能都封裝成一個函數(shù),如:復位驗證目標獨立成一個函數(shù),讀寄存器和寫寄存器獨立成一個函數(shù),采集數(shù)據(jù)獨立成一個函數(shù),驅動驗證目標獨立成一個函數(shù),那么代碼結構一目了然,在系統(tǒng)級驗證時,驅動函數(shù)以及寄存器讀寫函數(shù)可直接拿過來使用,減少了代碼的編寫時間和調試時間。本次驗證的環(huán)境采取上述方式搭建,所有細小的功能都封裝成一個獨立的函數(shù),以供復用。4.6驗證環(huán)境輸入輸出文件4.6.1輸入文件本次驗證環(huán)境的輸入文件有兩個,一個是配置文件cfg.in,一個是數(shù)據(jù)文件datax.in:cfg.in文件格式如下:圖4.4輸入文件cfg.in格式datax.in文件格式如下:圖4.5輸入文件datax.in格式此文件為rtl與參考模型的輸入文件,每行10bit數(shù)據(jù),供read_data函數(shù)讀取。4.6.2輸出文件輸出文件如下圖所示:圖4.6輸出文件格式經(jīng)scb模塊比對后生成上述輸出文件,datalen為本包測試向量的數(shù)據(jù)長度,即輸入多少個10bit數(shù)據(jù),PkgNo為當前的包數(shù),后面的為比對的結果,正確打印OK,錯誤打印ERROR,ERROR后可根據(jù)包數(shù)找到相應的rtl與參考模型的結果文件并進一步確認問題的來源,從而確定設計的正確性。大連東軟信息學院畢業(yè)設計(論文)第5章系統(tǒng)實現(xiàn)5.1fir_filter_env模塊的實現(xiàn)5.1.1功能說明它為驗證環(huán)境的頂層模塊,它有兩個功能:一是啟動各個模塊的start任務,控制各個模塊的工作;二是結束仿真,當仿真完成時,env模塊會接受到別的模塊所發(fā)送的事件,并終止仿真。它使用fork_join_none語句同時啟動所有模塊,并進入等待全部結束的事件,環(huán)境開始運行后,首先由db模塊去分發(fā)數(shù)據(jù)包,然后進入等待完成事件狀態(tài),直到scb接到結果的數(shù)據(jù)包,并且比對完畢后,即此一次仿真運行從頭到尾完成后,scb模塊觸發(fā)once_done信號,db接到once_done信號后,開始分發(fā)下一次仿真的數(shù)據(jù)包,一次循環(huán)直到scb接到的包數(shù)加1與設置的總包數(shù)一致時,觸發(fā)all_done事件,env模塊接到all_done事件后,停止仿真。5.1.2工作流程圖圖5.1env流程圖首先設置打印函數(shù)以供打印信息使用,之后進行初始化操作,對DUT進行復位操作等,使用fork_join_none同時啟動db、dpu_fir_bfm、dpu_sb三個模塊,等待觸發(fā)事件,仿真結束。fork_join_none即父進程與子進程同時運行,即三個模塊與等待事件觸發(fā)同時啟動,這樣做的目的是隨時可以結束仿真,實現(xiàn)更好的控制環(huán)境的運作。5.2dpu_rcfg模塊的實現(xiàn)5.2.1功能說明根據(jù)配置文件以及數(shù)據(jù)文件的格式,讀取配置文件和數(shù)據(jù)文件,把配置信息和數(shù)據(jù)信息存放在數(shù)據(jù)包中,發(fā)送給db模塊使用。rcfg模塊讀取的正確性保證了驗證環(huán)境的配置正確。5.2.2整體工作流程圖圖5.2rcfg整體流程圖它主要由4個函數(shù)組成,其中read_cfg函數(shù)讀取配置文件,init_data函數(shù)初始化數(shù)據(jù)包中的所有變量或隊列,data_gen函數(shù)把讀取的配置信息賦值給數(shù)據(jù)包中對應的變量,實現(xiàn)配置信息的儲存,read_data讀取數(shù)據(jù)文件并把讀取的數(shù)據(jù)信息存儲在數(shù)據(jù)包中以供使用,從而實現(xiàn)了環(huán)境所有信息的讀取。5.2.3read_cfg工作流程圖圖5.3read_rcfg函數(shù)流程圖read_rcfg函數(shù)主要是讀取配置信息cfg.in文件,實現(xiàn)的方式為:使用$fgets函數(shù)逐行讀取,并使用$sscanf函數(shù)對其讀取的一行數(shù)據(jù)進行分解得到具體的各個信息,放入數(shù)據(jù)包中。其中讀取行數(shù)據(jù)的時候使用行指針實現(xiàn)的逐行讀取,使用$ftell函數(shù)記錄指針位置,使用$frof函數(shù)進行指針回跳,保證了讀取配置信息時不會進入死循環(huán),由指針來判斷讀的當前行是否有數(shù)據(jù),是否整個文件都讀取完成等。5.2.4read_data工作流程圖圖5.4read_data函數(shù)流程圖它的功能為讀取數(shù)據(jù)文件data.in,實現(xiàn)方式為:使用$fscanf函數(shù)逐行讀取數(shù)據(jù),通過readflg標志位來判斷讀取的內(nèi)容和次數(shù),并把讀到的數(shù)據(jù)依次放入數(shù)據(jù)包的隊列中,以供別的模塊使用。5.3dpu_fir_bfm模塊的實現(xiàn)5.3.1功能說明本模塊的功能為對rtl進行操作和初始化等,接收從db模塊發(fā)送來的數(shù)據(jù)包,取出數(shù)據(jù)包中的數(shù)據(jù)和配置信息,復位驗證目標,然后按照配置信息配置rtl,包括配置寄存器,ram初始化等操作,準備工作完成之后將數(shù)據(jù)按照設計時序輸入到rtl中,等待rtl處理之后將結果取出并放入數(shù)據(jù)包中,最后發(fā)送給scb模塊供其對比使用。5.3.2工作流程圖圖5.5dpu_fir_bfm流程圖接收數(shù)據(jù)包取出數(shù)據(jù),并按照rtl設計文檔中的時序描述把數(shù)據(jù)輸入給rtl并激勵其工作,根據(jù)信號采樣rtl的輸出數(shù)據(jù),放入到數(shù)據(jù)包中發(fā)送給scb模塊以供比對結果比對使用。5.4dpu_scb模塊的實現(xiàn)5.4.1功能說明接收db和bfm發(fā)送過來的兩個數(shù)據(jù)包,其中有兩組數(shù)據(jù),分別為期望數(shù)據(jù)和實際數(shù)據(jù),scb通過調用checker函數(shù)對兩組數(shù)據(jù)進行比較并將結果打印到輸出文件dpu_result.log中。5.4.2工作流程圖圖5.6dpu_scb流程圖接收db和bfm的數(shù)據(jù)包,把數(shù)據(jù)拿出來并調用checker函數(shù)對數(shù)據(jù)進行比較:checker函數(shù)主要實現(xiàn)數(shù)據(jù)的比對,比對的形式為逐行比對,在大量數(shù)據(jù)的面前,采用for循環(huán)語句來實現(xiàn)所有數(shù)據(jù)的比對,因為需要比對的數(shù)據(jù)都存放在數(shù)據(jù)包的隊列中,使用.size函數(shù)可得知隊列的長度,即由多少個數(shù)據(jù),那么循環(huán)數(shù)據(jù)長度次,那么正好可以完成所有數(shù)據(jù)的比對,之后等待once_done事件觸發(fā),判斷當前包數(shù)加1與總包數(shù)是否一致,如果一致則觸發(fā)all_done事件并跳出循環(huán),如果不一致則繼續(xù)循環(huán)比較直到所有包都比對完成為止。5.5dpu_db模塊的實現(xiàn)5.5.1功能說明db模塊為分發(fā)板模塊,該模塊為功能層模塊,它調用rcfg模塊生成數(shù)據(jù)包發(fā)送給各個模塊,之后進入等待once_done事件狀態(tài),在一包測試完成后,scb模塊觸發(fā)once_done事件,db模塊接到事件觸發(fā),開始生成第二包數(shù)據(jù),然后分發(fā)給各個模塊,之后再進入等待事件狀態(tài),如此往復,直到env模塊結束仿真。5.5.2工作流程圖圖5.7dpu_db流程圖如上圖所示,調用rcfg模塊生成數(shù)據(jù)包,其中包含配置信息以及數(shù)據(jù)信息,通過mailbox發(fā)送給各個模塊,之后等待事件觸發(fā),事件觸發(fā)后繼續(xù)發(fā)送數(shù)據(jù)包,如此循環(huán)直到env模塊接收到all_done信號并停止仿真,db模塊被動跳出循環(huán)結束。5.6參考模型的實現(xiàn)本次驗證的模塊為fir_filter數(shù)據(jù)濾波模塊,具體參考模型由數(shù)字設計組提供。本次驗證中采用matlab為參考模型,生成數(shù)據(jù)或讀取數(shù)據(jù)并計算打印。封裝參考模型后驗證發(fā)現(xiàn),rtl和參考模型的處理結果個別不一致,而且都相差1,經(jīng)調研發(fā)現(xiàn),結果相差1是因為matlab自帶函數(shù)quantizer去做數(shù)據(jù)的定點化,小數(shù)部分采用round處理,即四舍五入,而驗證目標采用round的方式與其不同,即直接去除小數(shù)部分,在小數(shù)部分大于或者等于0.5的時候,matlab進位處理,而驗證目標去位處理,這導致了結果相差1的情況。針對此問題,我編寫qtz函數(shù),即自編的定點化函數(shù),可配置round或floor,round為直接進位,floor為直接去位,不管小數(shù)部分為多少,再用qtz函數(shù)替代參考模型中quantizer函數(shù)后,參考模型輸出與驗證目標輸出一致,實現(xiàn)比對。本次參考模型為自動生成一定長度的數(shù)據(jù)流,并以此為輸入計算結果,但是考慮到驗證目標實際工作的環(huán)境下,我添加了參考模型的另一種工作模式,因為實際情況下,驗證目標是讀取三個波形文件,即三個數(shù)據(jù)文件,格式為每行10bit,三個磁道分開且輸入數(shù)據(jù)不同,因此本次參考模型有兩個工作模式:一種為讀取cfg.in文件并生成相應的磁道數(shù)據(jù)供環(huán)境讀取。一種為讀取3個track.in文件即3個磁道數(shù)據(jù)文件計算結果輸出到3個.out文件中供環(huán)境去比對。這樣使參考模型更加靈活,既可以自己模擬生成數(shù)據(jù),也可以讀取實際的波形文件,更全面的測試驗證目標。在參考模型頂層文件中,調用fir_deal模塊的時候,其中第一個參數(shù)為選擇模式,0為讀取磁道數(shù)據(jù)模式,1為自己生成數(shù)據(jù)模式,第二個參數(shù)為數(shù)據(jù)長度最大值輸入,即自己生成數(shù)據(jù)模式下,生成的數(shù)據(jù)的最大長度設置,如:fir_deal(1,1000)代表matlab自己生成數(shù)據(jù),數(shù)據(jù)長度為0~1000個隨機。5.7驗證環(huán)境整體說明驗證環(huán)境功能層的所有模塊都是用一個while的死循環(huán)實現(xiàn),上述的環(huán)境工作模式也有具體說明,功能層模塊是同時啟動的,那么怎么保證他們之間是有序進行的呢?比如計分板還沒采樣到輸出數(shù)據(jù),檢驗器就開始檢驗了,那么結果一定是錯誤的,那么這次記錄就是不必要的,驗證環(huán)境中的協(xié)調器是mailbox:mailbox即為信箱,用來傳送數(shù)據(jù)包使用的,它除了具有傳送功能之外,還有以下有用的特性,在模塊中使用mailbox之前需要為其分配空間,也就是使用new函數(shù),一般都是為其開辟一個空間,即new(1),因為在mailbox的機制是先往其中放入數(shù)據(jù)包,之后任意模塊可以取走這個數(shù)據(jù)包,但是如果mailbox中已經(jīng)存在一個數(shù)據(jù)包,那么再往其中放的時候,會產(chǎn)生堵塞,也就是放不進去,環(huán)境執(zhí)行到此會自動卡住,當mailbox中的數(shù)據(jù)包被取走后,才能放再次放入。同理,如果mailbox為空的話,執(zhí)行get操作時,也會在此卡住,等待其他模塊put后才能取出。利用mailbox的這些特性,在每個模塊的start函數(shù)中,最先執(zhí)行的是mailbox的get操作,最后執(zhí)行的是mailbox的put操作,因為功能層每個模塊都是無限循環(huán),那么開始執(zhí)行時如果mailbox為空的話,那么驗證環(huán)境就會卡在這里,不執(zhí)行以后的操作,就是這樣一個put,一個get,實現(xiàn)了對驗證環(huán)境功能層的有序執(zhí)行的控制。在調試過程中,如果環(huán)境在運行致某一刻時突然卡死不動,那么根據(jù)mailbox的特性并添加打印信息便可以更快的找到問題的所在并修改環(huán)境,mailbox的存在為環(huán)境的調試添加了很多的方便和方法。因為功能層的模塊都是以死循環(huán)的方式實現(xiàn)的,模塊本身是不能停止運行的,驗證環(huán)境整體通過env模塊來控制,無論他們執(zhí)行到哪里,只要env模塊接收到all_done的事件觸發(fā),整個驗證環(huán)境就會停止,本次運行結束。大連東軟信息學院畢業(yè)設計(論文)第6章系統(tǒng)測試6.1各驗證向量仿真結果仿真結果,所有向量結果正確。表4.1fir_filter模塊測試向量向量名稱向量描述FAIL/PASStc_01_01_01磁道1數(shù)據(jù)個數(shù)100000PASStc_01_02_01磁道2數(shù)據(jù)個數(shù)100000PASStc_01_03_01磁道3數(shù)據(jù)個數(shù)100000PASStc_01_04_01磁道1、2和3數(shù)據(jù)個數(shù)1000000PASStc_01_05_01磁道1、2和3數(shù)據(jù)個數(shù)隨機PASStc_02_01_01磁道1復位,磁道2、3保持PASStc_02_02_01磁道2復位,磁道1、3保持PASStc_02_03_01磁道3復位,磁道1、2保持PASStc_02_04_01磁道1、2復位,磁道3保持PASStc_02_05_01磁道1、3復位,磁道2保持PASStc_02_06_01磁道2、3復位,磁道1保持PASS6.2覆蓋率統(tǒng)計工具本次統(tǒng)計覆蓋率使用Synopsys的cmView軟件,如下圖所示其工具的圖形化界面:圖6.1cmview圖形化界面它可統(tǒng)計行覆蓋率、翻轉覆蓋率、條件覆蓋率、分支覆蓋率以及狀態(tài)機覆蓋率,使用此EDA工具不能統(tǒng)計功能覆蓋率,這也是它的最大缺點,在需要統(tǒng)計功能覆蓋率的話,應該選擇dve工具。使用它可查看每一種覆蓋率,也會顯示未覆蓋的部分,直接定位到實際設計代碼中,方便查看和分析。6.3行覆蓋率行覆蓋率代表設計代碼和驗證環(huán)境代碼執(zhí)行的情況,它查看設計代碼與驗證環(huán)境代碼中是否每一行代碼都被執(zhí)行過,在測試向量充足的情況下,未被執(zhí)行的代碼是冗余的,由此可反映出代碼的執(zhí)行效率,本次驗證目標行覆蓋率如下圖所示:圖6.2行覆蓋率說明:行覆蓋率為100%,故不作說明。6.4翻轉覆蓋率翻轉覆蓋率為設計代碼中寄存器類型變量每一位1翻轉為0、0翻轉為1的統(tǒng)計,根據(jù)驗證需求,翻轉覆蓋率必須為100%或者找出未翻轉原因并且此原因合理通過,本次驗證目標翻轉覆蓋率以及未覆蓋部分說明如下圖所示:圖6.3翻轉覆蓋率說明:圖6.4翻轉覆蓋率未覆蓋語句原因:圖6.5rtl中具體部分代碼如上圖所示,mul_o00為兩個有符號數(shù)的乘積,COEF00~COEF11這12個數(shù)為固定參數(shù)(parameter),如下圖所示:圖6.6rtl中具體部分代碼一個偶數(shù)乘上任何數(shù)都為偶數(shù),當固定參數(shù)為偶數(shù)時,它們和其他變量相乘之后也一定為偶數(shù),偶數(shù)的末位為0,所以參數(shù)為偶數(shù)時,其乘積末位未翻轉。說明:圖6.7翻轉覆蓋率未覆蓋語句原因:COEF09=960,即14’h3C0,即00001111000000二進制乘法即二進制數(shù)向左移位,乘二即向左移一位,所以mul_o09的低6位未翻轉。6.5條件覆蓋率條件覆蓋率為設計代碼中所有條件真假情況的統(tǒng)計,即所有條件為0和1的情況是否都滿足,條件覆蓋率如下圖所示:圖6.8條件覆蓋率說明:覆蓋率為100%,故不作說明。6.6分支覆蓋率分支覆蓋率為所有帶有分支語句的分支執(zhí)行情況的統(tǒng)計,分支一般存在于case語句以及if_else語句,檢查if_else中的語句是否都執(zhí)行到,case語句的每一個分支是否執(zhí)行到,包括default,本次驗證目標分支覆蓋率如下圖所示:圖6.9分支覆蓋率說明:分支覆蓋率為100%,故不作說明。6.7覆蓋率總結對于驗證來說,覆蓋率很重要,它衡量著驗證的全面性和完整性,但是并不是所有覆蓋率都為100%才是合格的,因為數(shù)字設計者不同,其代碼風格也不同,如:同一個功能,都要用到if_else語句,判斷條件有3個,有的設計者會使用if-else_if-else來實現(xiàn)本功能,也有的設計者會使用if-else_if-else_if-else,如果設計者使用第二種方式去實現(xiàn)本功能,那么條件覆蓋率和分支覆蓋率都不會為100%,但是第二種實現(xiàn)方式是正確的,else就是不能被執(zhí)行到,但是也不會影響設計的功能,所以找出原因才是最重要的。功能分解后測試向量都仿真通過,從而保證了驗證模塊功能的正確性。代碼覆蓋率保證了設計代碼每一行的執(zhí)行程度,既可以檢查被測模塊中是否有冗余的代碼,同時也可以保證所有代碼的功能,經(jīng)統(tǒng)計去除翻轉覆蓋率,其他覆蓋率都到100%,并且翻轉覆蓋率未覆蓋的部分均為正?,F(xiàn)象,不會影響RTL的動作,因此fir_filter功能模塊RTL功能仿真結束,通過了EDA工具的軟件仿真,可進行下一步測試。第7章結論本文基于VMM驗證方法學,使用SystemVerilog編寫了具有擴展性好、可復用、并且層次化的驗證平臺,對fir_filter數(shù)字邏輯模塊進行了驗證。通過對fir_filter數(shù)字邏輯模塊的時序和功能的分析,修改并使用matlab參考模型,來保證RTL設計代碼的功能。最后通過cmview工具對行覆蓋率,條件覆蓋率,翻轉覆蓋率,分支覆蓋率進行收集和分析,從而保證被測模塊的的可靠性和完整性。本文通過使用VMM驗證方法學,運用SV語言,搭建驗證平臺。建立了一個可產(chǎn)生受約束的隨機激勵,覆蓋率標準保證了驗證的完備性,突出VMM驗證方法學的靈活性。本文針對fir_filter數(shù)字邏輯模塊的特點進行分析,分解出包含正常測試向量和異常測試向量,通過這些測試向量覆蓋需要驗證模塊的特性。本驗證環(huán)境中使用forkjoin,forkjoin_none等進程管理語句進行仿真的流程控制,還使用了while,repeat,for等循環(huán)語句用來簡化代碼。模塊劃分也是依據(jù)功能單一化,簡單化來劃分的。主要有4大模塊:分發(fā)板模塊、數(shù)據(jù)發(fā)送模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)比對模塊。4大模塊之間的通信是通過數(shù)據(jù)包(data_buf)來實現(xiàn)的。將數(shù)據(jù)包通過mbox傳輸,實現(xiàn)配置信息和數(shù)據(jù)的傳輸。在接口方面使用了SystemVerilog的interface技術將一系列的端口封裝成一個模塊簡化了驗證環(huán)境與DUT的連接。本次的驗證環(huán)境有很多優(yōu)點,但同時也存在很多缺點,例如在數(shù)據(jù)比對模塊中,部分比對代碼寫的過于復雜,在以后工作中,應該想方法優(yōu)化這一部分,使得環(huán)境更加健壯,易讀性更強。本次驗證環(huán)境的復用性不是很強,將來在做同一模塊的系統(tǒng)級驗證時,還需大量的編寫驗證環(huán)境以及調試,不能直接復用單元級驗證的環(huán)境,以后在搭建驗證環(huán)境時要考慮全面,實現(xiàn)單一功能獨立存在,未以后的環(huán)境復用埋下伏筆,減少調試時間,提高驗證效率。還有在對異常向量的測試中,由于把異常的測試案例寫在正常的程序里,導致正常的程序不易于理解,應該把異常的操作封裝成任務,使用回調的方法進行異常的控制。fir_filter模塊為數(shù)據(jù)濾波模塊,需采用大量的數(shù)據(jù)對其進行測試,本次驗證的難點在于matlab的定點化以及生成符合要求的數(shù)據(jù)流,matlab也需要兩種模式以滿足驗證的需求,matlab沒有時序的概念,如同c語言一樣,用其對數(shù)據(jù)進行bit操作時很麻煩,數(shù)據(jù)量太大的話,其運行速度很慢,而且它不能與驗證環(huán)境同時工作,要實現(xiàn)他們的輸入一致,需要打印和讀取較多文件,這降低了驗證的效率。參考模型也可使用sv語言來實現(xiàn),它的優(yōu)點是運行速度快,assert實現(xiàn)可約束的隨機化簡單,但是針對復雜算法的話,其實現(xiàn)起來頗為麻煩且復雜,但是matlab內(nèi)部附帶龐大的函數(shù)庫以及公式供使用,實現(xiàn)復雜算法相對較簡單,本次使用matlab為參考模型是因為算法組提供模型,我只需簡單修改就可正常使用,且本參考模型與驗證目標的實現(xiàn)思想是一樣的,這樣可以更好的去檢驗驗證目標的正確性。參考文獻[1]段承超,徐金甫.基于VMM構建可重用驗證平臺[J],現(xiàn)代電子技術,2011,08:45-50[2]JanickBergeron,EduardCerny,AlanHunter,AndrewNightingale.MethodologyManualforSystemVerilog[M],America:Springer,2005[3]夏宇聞.verilog數(shù)字系統(tǒng)設計教程[M],北京:北京航空航天大學,2008[4]MikeMintz,RobertEkendahl,Hardware.VerificationwithSystemVerilogAnObject-OrientedFramework[M],Springer:America,2007[5]張春,麥宋平,趙益新.SystemVerilog驗證[M],北京:科學出版社,2009[6]JunYuan,CarlPixley,AdnanAziz,CSTRAINT-BASEDVERIFICATION[M],America:Springer,2006[7]閆沫媛.基于SystemVerilog語言的設計驗證技術[J],現(xiàn)代電子技術
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 門店食品管理制度
- 自考環(huán)境與資源保護法學真題模擬及答案
- 養(yǎng)老院情感交流制度
- 企業(yè)員工培訓與素質提升制度
- 重質純堿工復試評優(yōu)考核試卷含答案
- 我國上市公司流動性與資本結構的模型構建與實證分析
- 我國上市公司引入雙層股權結構的法律路徑探析:基于國際經(jīng)驗與本土實踐
- 印染燒毛工復試強化考核試卷含答案
- 裁剪工安全意識評優(yōu)考核試卷含答案
- 木作文物修復師安全實踐測試考核試卷含答案
- 公司安全大講堂活動方案
- 2025年江蘇省無錫市梁溪區(qū)八下英語期末統(tǒng)考模擬試題含答案
- GB/T 42186-2022醫(yī)學檢驗生物樣本冷鏈物流運作規(guī)范
- 江蘇省南通市2024-2025學年高一上學期1月期末考試數(shù)學試題
- T/CA 105-2019手機殼套通用規(guī)范
- 以真育責:小學生責任教育在求真理念下的探索與實踐
- 2019營口天成消防JB-TB-TC5120 火災報警控制器(聯(lián)動型)安裝使用說明書
- 部編版語文六年級上冊第一單元綜合素質測評B卷含答案
- 買賣肉合同樣本
- 2025屆高考語文復習:以《百合花》為例掌握小說考點
- 面向對象系統(tǒng)分析與設計(MOOC版)全套教學課件
評論
0/150
提交評論