




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