版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)字IC驗證流程數(shù)字IC設(shè)計驗證平臺的搭建一、數(shù)字IC驗證流程驗證的流程并行于設(shè)計流程驗證工程師閱讀硬件規(guī)范并擬定驗證計劃,然后依照計劃創(chuàng)建測試來檢查RTL代碼是否準(zhǔn)確實現(xiàn)了所有特性。1.1制定驗證計劃:驗證計劃是和硬件規(guī)范緊密聯(lián)系在一起的,它描述了需要驗證什么樣的特性,以及采用哪些技術(shù)。驗證技術(shù)可能包含有定向或隨機(jī)的測試、斷言、軟硬件協(xié)同驗證、硬件仿真、形式驗證(formality工具比較RTL與網(wǎng)表是否一致),以及對驗證IP的使用。數(shù)字IC設(shè)計驗證平臺的搭建1.1驗證計劃的制定制定驗證計劃分為三部分:制定功能驗證需求書、指定驗證平臺的抽象層次、激勵的產(chǎn)生和結(jié)果檢查方案。1.1.1功能驗證需求書的內(nèi)容是確認(rèn)設(shè)計的哪些功能是需要被驗證的,它主要是測試用例(testcase)和功能點(testpoint)的一個列表,構(gòu)成了整個驗證計劃的基礎(chǔ)?;诟采w率驅(qū)動的驗證環(huán)境中功能覆蓋率是功能測試完備程度的指標(biāo)。功能覆蓋率就是對功能點的覆蓋。數(shù)字IC設(shè)計驗證平臺的搭建1.1驗證計劃的制定1.1.2制定驗證平臺的抽象層次:驗證平臺搭建優(yōu)先考慮制定驗證平臺的抽象層次,高層次的抽象建??梢宰屍脚_中低層次的功能自動化,提高驗證平臺的效率。1.1.3激勵的產(chǎn)生和檢查方案:有四種激勵產(chǎn)生器:基元產(chǎn)生器、場景產(chǎn)生器、多流產(chǎn)生器和基于狀態(tài)的產(chǎn)生器。這四種激勵產(chǎn)生器均是自動化生成激勵,擴(kuò)展基類即可實現(xiàn)?;a(chǎn)生器用于生成相互獨(dú)立的事務(wù),事務(wù)之中的數(shù)據(jù)變量是相互無關(guān)的。場景發(fā)生器生成的是一個數(shù)據(jù)或事務(wù)描述符的序列。多流發(fā)生器即多個數(shù)據(jù)流的發(fā)生器。基于狀態(tài)的發(fā)生器是使隨機(jī)化生成過程依賴于外部狀態(tài)信息。數(shù)字IC設(shè)計驗證平臺的搭建1.1驗證計劃的制定檢查方案:一般公司均采用計分板(scoreboard)檢查機(jī)制。Scoreboard的工作原理:DUT產(chǎn)生的響應(yīng)input_stream壓棧到queue1中,expect_stream為DUT的期望響應(yīng),expect_stream壓棧到queue2中,然后將兩個隊列彈棧進(jìn)行數(shù)據(jù)比對,同時scoreboard在仿真過程中report自檢查的統(tǒng)計結(jié)果。數(shù)字IC設(shè)計驗證平臺的搭建1.2搭建驗證平臺1.2.1搭建驗證平臺的方法:搭建模塊級驗證平臺時,信號層、被測設(shè)計(DUT)和驗證環(huán)境(programtest)必須在頂層模塊實例化。數(shù)字IC設(shè)計驗證平臺的搭建1.2搭建驗證平臺1.2.2搭建驗證平臺的注意點:1.VIP的驗證組件的使用可以大大縮短平臺搭建的開發(fā)周期。2.sub_env組件的使用,實現(xiàn)模塊級到子系統(tǒng)級的復(fù)用,提高平臺的可重用性。3.個性化代碼。由callback實現(xiàn),使用回調(diào)方法來檢測流過事務(wù)處理器的數(shù)據(jù)流,利用回調(diào)(callback)插入異常(erroinjection)和收集功能覆蓋率。4.在搭建模塊級驗證平臺時,使用好的代碼風(fēng)格易實現(xiàn)模塊級代碼的復(fù)用。5.驗證平臺搭建好后,跟RTL代碼一樣,是一個不斷完善的過程。在驗證的過程中不斷完善自己的平臺,使其方便、準(zhǔn)確的驗證我們的項目。數(shù)字IC設(shè)計驗證平臺的搭建1.3回歸測試與覆蓋率收斂全部測試用例被成功運(yùn)行后,驗證就進(jìn)入回歸測試和覆蓋率收斂階段。回歸測試要求能夠周期的批處理運(yùn)行、測試用例必須能夠容易得到重現(xiàn)、成功與失敗能夠自動檢測。覆蓋率顯示出設(shè)計被測試的程度,是驗證收斂的重要標(biāo)準(zhǔn)。所有的測試應(yīng)該在每天或者每周做回歸而且周期性的運(yùn)行。設(shè)計人員或者驗證工程師應(yīng)該查看覆蓋率,從而修改或者添加更多的測試用例,從而盡可能達(dá)到100%。數(shù)字IC設(shè)計驗證平臺的搭建二、VMM分層次驗證平臺VMM是IC設(shè)計領(lǐng)域的一種高級驗證方法學(xué),主要由ARM和synopsys公司的設(shè)計驗證領(lǐng)域的專家共同設(shè)計,用于開發(fā)先進(jìn)的驗證環(huán)境,已成為當(dāng)前業(yè)內(nèi)公認(rèn)的驗證方法標(biāo)準(zhǔn)。VMM驗證方法學(xué)的基礎(chǔ)是systemverilog語言。Systemverilog是一種由verilog發(fā)展過來的硬件描述、硬件驗證統(tǒng)一語言,前者是2005年版verilog的擴(kuò)展,而后者的功能驗證特性以面向?qū)ο蟪绦蛟O(shè)計技術(shù)為基礎(chǔ)。VMM所有的方法學(xué)基礎(chǔ)來自于systemverilog,并吸收了C語言的一些先進(jìn)思想。數(shù)字IC設(shè)計驗證平臺的搭建2.1VMM驗證方法學(xué)的特點1.受約束的隨機(jī)激勵2.覆蓋率驅(qū)動3.使用事務(wù)處理器的分層測試平臺4.對所用測試用例通用的測試平臺5.獨(dú)立于測試平臺之外的個性化代碼建立VMM風(fēng)格的測試平臺所需要的時間要比傳統(tǒng)的定向測試平臺多得多,但對于驗證大規(guī)模的電路來說,VMM驗證平臺要比傳統(tǒng)的定向測試平臺功能驗證的齊備性要高得多,大大提高流片的成功率,并且平臺的可重用性在后期的驗證工作中將發(fā)揮節(jié)約測試時間和人力資源的功效。數(shù)字IC設(shè)計驗證平臺的搭建2.2基于事務(wù)的驗證環(huán)境事務(wù)(Transaction)是指驗證平臺與DUT之間通過設(shè)計的特定接口(interface)進(jìn)行的高層次的數(shù)據(jù)或者控制信號的傳輸。接口包含了連接、同步、甚至兩個或者更多塊之間的通信功能,它們連接了設(shè)計塊和測試平臺。基于事務(wù)的驗證技術(shù)是對底層信號的封裝,這樣驗證人員可以關(guān)注工程中的事務(wù)級驗證,而不是過分關(guān)注底層的邏輯和時序的實現(xiàn)。因此是在對更高抽象級別上對系統(tǒng)硬件的建模,在接口組件上交換數(shù)據(jù)或執(zhí)行事件。數(shù)字IC設(shè)計驗證平臺的搭建2.2.1VMM分層次驗證平臺VMM驗證方法學(xué)是一種基于事務(wù)的層次化驗證方法學(xué)。層次化是把驗證的步驟分層進(jìn)行,把驗證工作提高到更高的抽象層次,即事務(wù)層。VMM驗證平臺分為五層,每一層完成獨(dú)立的功能,層與層之間通過接口相互連接。數(shù)字IC設(shè)計驗證平臺的搭建2.2.1VMM分層次驗證平臺數(shù)字IC設(shè)計驗證平臺的搭建2.2.1VMM分層次驗證平臺測試層即測試用例,是頂層模塊,控制著整個環(huán)境的運(yùn)行;設(shè)定約束使激勵產(chǎn)生器生成相應(yīng)的命令操作和數(shù)據(jù);定義新的隨機(jī)場景,同步不同的事務(wù)并創(chuàng)建直接測試用例。場景層即產(chǎn)生器(generator),產(chǎn)生應(yīng)用于功能層數(shù)據(jù)和事務(wù)描述符。產(chǎn)生器根據(jù)指定的約束和隨機(jī)場景來生成相應(yīng)的命令操作和數(shù)據(jù)。帶約束的隨機(jī)測試在此層引入。測試場景是一系列隨機(jī)的有著某種關(guān)聯(lián)的事務(wù),每種測試場景代表著一種獨(dú)立的事務(wù)來針對一個特殊的邊界功能。功能層是對DUT功能驗證的核心部件。功能層從場景層接收到數(shù)據(jù)和事務(wù)描述符,事務(wù)描述符主要是選擇事務(wù)處理的類型,例如是讀操作還是寫操作。接收的數(shù)據(jù)一般是對DUT施加的激勵,分為DUT的配置信息和DUT的交換數(shù)據(jù)。此外,功能層還包含比較器和功能覆蓋模塊,比較器負(fù)責(zé)檢查DUT的功能是否滿足設(shè)計規(guī)范,功能覆蓋模塊用于統(tǒng)計和記錄DUT的功能覆蓋情況。數(shù)字IC設(shè)計驗證平臺的搭建2.2.1VMM分層次驗證平臺命令層主要包含驅(qū)動器和監(jiān)視器這兩種事務(wù)處理器。驅(qū)動器從通道接收到功能層傳遞下來的事務(wù),將事務(wù)激勵轉(zhuǎn)化為信號級激勵信號,通過接口對DUT進(jìn)行驅(qū)動。驅(qū)動器中的事務(wù)被定義為基于接口的最小數(shù)據(jù)傳輸或命令操作,比如寄存器的讀寫、發(fā)送包數(shù)據(jù)等。監(jiān)視器檢測DUT的各個引腳信號的變化,將引腳信號所表征的信息轉(zhuǎn)換為事務(wù),通過事務(wù)通道反饋給驗證平臺的高層模塊。最底層為信號層,完成驗證平臺與DUT的引腳連接。該層提供的信號可以被上層直接訪問,給平臺帶來了極大的靈活性。信號層是用systemverilog編寫的接口,在接口中定義了信號的同步或異步時序關(guān)系,對應(yīng)于DUT的引腳信號的時序。一旦DUT的引腳發(fā)生了變化只需要修改systemverilog定義的信號,使得驗證工程師的精力可以集中在更高的抽象層次上。以事務(wù)級的角度看VMM驗證環(huán)境的基礎(chǔ)架構(gòu),可以看到從測試用例到最后BFM(總線功能模型)的處理,都是對事務(wù)的處理。數(shù)字IC設(shè)計驗證平臺的搭建2.2.1VMM分層次驗證平臺BFM(busfunctionmodel)的作用是把底層總線的時序封裝起來,向上層提供一個統(tǒng)一的任務(wù)接口,使上層不用關(guān)心底層的實現(xiàn)細(xì)節(jié),而專注于testcase的設(shè)計。這一點同c++的面向?qū)ο蟮母拍詈茴愃?,在c++里,對象相當(dāng)于命令或調(diào)用,而對象的成員函數(shù)實現(xiàn)具體細(xì)節(jié),外部無需關(guān)心它的內(nèi)部細(xì)節(jié)。數(shù)字IC設(shè)計驗證平臺的搭建2.2.2VMM數(shù)據(jù)與事務(wù)數(shù)據(jù)與事務(wù)就像整個VMM驗證平臺的細(xì)胞,它存在于驗證環(huán)境中的每個組件。VMM的場景層(generator)用于生成驗證環(huán)境的數(shù)據(jù)和事務(wù)描述符,而VMM的其他驗證組件均是對事務(wù)進(jìn)行處理的處理器(除測試層和信號層外)。Synopsys公司應(yīng)用systemverilog的繼承(extends)語言特點提出基類概念,基類是Synopsys編寫的一個模型,用戶只需根據(jù)自己項目要求擴(kuò)展基類就能生成自己的驗證模型。Vmm_data和Vmm_xactor分別是數(shù)據(jù)與事務(wù)的生成和處理的基類。Vmm_data基類是驗證平臺中所有事務(wù)描述以及數(shù)據(jù)建模的基礎(chǔ)。這個類提供的一些屬性和方法專門用于生成數(shù)據(jù)包和事務(wù)描述符。Vmm_xactor基類被用作處理所有事務(wù)的基礎(chǔ),包括總線功能模型,監(jiān)視器和發(fā)生器。它提供一套標(biāo)準(zhǔn)的控制機(jī)制,作為所有事務(wù)控制的基礎(chǔ)。數(shù)字IC設(shè)計驗證平臺的搭建2.2.2VMM數(shù)據(jù)與事務(wù)Vmm_data和vmm_xactor兩個基類基本構(gòu)成了VMM的場景層、功能層和命令層的驗證組件,而繼承的方法,又可以方便的定制用戶需要的數(shù)據(jù)和事務(wù)處理器模型,因此,VMM驗證平臺非常容易搭建。數(shù)字IC設(shè)計驗證平臺的搭建2.2.3VMM事務(wù)層接口數(shù)據(jù)與事務(wù)生成于激勵生成器并被不同的事務(wù)處理器處理。VMM規(guī)定兩個事務(wù)處理器之間,必須使用通道來進(jìn)行事務(wù)交易。Vmm_channel是Synopsys推出的通道模板類。Channel傳輸?shù)氖菙?shù)據(jù)與事務(wù),而Vmm_data是對數(shù)據(jù)與事務(wù)的生成模板類,所以vmm_channel應(yīng)該是vmm_data擴(kuò)展類的通道。Vmm_channel::put將新生成的數(shù)據(jù)與事務(wù)描述符添加到通道。Vmm_channel::get從通道中獲得新生成的數(shù)據(jù)與事務(wù)描述符。Vmm_channel的函數(shù)還有很多,其他的可參考VMM驗證方法學(xué)手冊。數(shù)字IC設(shè)計驗證平臺的搭建2.2.4事務(wù)處理器的協(xié)調(diào)工作事務(wù)層的接口使VMM驗證平臺的各組件在縱向上實現(xiàn)了連接,但是并沒有實現(xiàn)各組件橫向上的同步執(zhí)行。VMM提供了通知(notify)接口實現(xiàn)同步執(zhí)行。Vmm_notify是VMM提供的一個基類。Vmm_notify類實現(xiàn)進(jìn)行通知服務(wù)的接口。該通知服務(wù)可為并發(fā)線程或者事務(wù)提供同步機(jī)制。Vmm_notify有三種通知同步模式,ONE_SHOT、BLAST、ON_OFF。vmm_notify::ONE_SHOT事件一旦觸發(fā),解除以前等待的線程。vmm_notify::BLAST在通知發(fā)出的同一個時階,所有等待通知發(fā)出的線程同時得到通知。本模式可以消除某種形式的競爭條件。Vmm_notify::ON_OFF通知是電平敏感的。顯式的復(fù)位后,才能解除通知的有效。將不再繼續(xù)等待仍然有效的通知線程。本模式可消除某種形式的競爭條件。數(shù)字IC設(shè)計驗證平臺的搭建2.3基于覆蓋率驅(qū)動的驗證環(huán)境覆蓋率驅(qū)動驗證是一個基于仿真的驗證方法,專門被開發(fā)用來解決當(dāng)前功能驗證項目面臨的效率和完備性挑戰(zhàn)。Synopsys公司提供的VCS工具能夠生成覆蓋率列表,分析覆蓋率列表,驗證工程師可在最短的時間內(nèi)找到哪些功能已經(jīng)通過測試,哪些功能還沒有被測試到,從而保證驗證的完備性。覆蓋率可分為:代碼覆蓋率、功能覆蓋率、漏洞率和斷言覆蓋率。代碼覆蓋告訴驗證者在一個特定仿真運(yùn)行中,所有RTL設(shè)計描述代碼是否被執(zhí)行。代碼覆蓋率只說明了RTL代碼被運(yùn)行過,并不能說明RTL功能被執(zhí)行了。功能覆蓋率則能很清楚的告訴我們哪些功能點被執(zhí)行過了。漏洞率是衡量覆蓋率的一個間接的方式,漏洞率與項目所處的階段、近期設(shè)計上的變化、正在集成的模塊、人事上的變動等等有關(guān),每次比率下跌時,就應(yīng)該尋找各種不同的方法去測試各種邊界情況。數(shù)字IC設(shè)計驗證平臺的搭建2.3基于覆蓋率驅(qū)動的驗證環(huán)境斷言是用于一次性地或在一段時間內(nèi)核對兩個設(shè)計信號間的關(guān)系的聲明性代碼。斷言最常用于查找錯誤,例如兩個信號是否應(yīng)該互斥或者請求是否被許可等。一旦檢測到問題,仿真立即停止。斷言也可用于檢查仲裁算法、各種FIFO以及其他硬件。以上這些情況會使用到assertproperty語句。有些斷言會被用于查找感興趣的信號值或設(shè)計狀態(tài),例如一次成功的總線數(shù)據(jù)交換。這要用到coverproperty語句。數(shù)字IC設(shè)計驗證平臺的搭建2.3基于覆蓋率驅(qū)動的驗證環(huán)境數(shù)字IC設(shè)計驗證平臺的搭建2.3基于覆蓋率驅(qū)動的驗證環(huán)境當(dāng)所有測試案例都仿真結(jié)束后,就要收集覆蓋率,分析驗證結(jié)果。覆蓋率通常會有四種情況:1、代碼覆蓋率功能覆蓋率都很低,說明產(chǎn)生的測試激勵較少,沒有觸發(fā)DUT全部功能。此時需檢查驗證平臺的generator,是否封裝了所有DUT的所有輸入數(shù)據(jù)以及配置數(shù)據(jù),另外也要檢查平臺的各個處理器是否存在缺陷。2、功能覆蓋率明顯高于代碼覆蓋率,可能是設(shè)計中的冗余代碼太多也可能是驗證人員對DUT的功能點提取不夠全面和完整。3、代碼覆蓋率明顯高于功能覆蓋率,有兩種可能,一是測試激勵沒有觸發(fā)DUT的某些功能,測試應(yīng)增加一些針對某些功能的受約束的測試?yán)?;二是功能覆蓋點定義的有問題,驗證人員對DUT功能的錯誤理解,定義了一些不可能達(dá)到的錯誤功能點。數(shù)字IC設(shè)計驗證平臺的搭建2.3基于覆蓋率驅(qū)動的驗證環(huán)境4、代碼覆蓋率和代碼覆蓋率都很高,但是并沒有達(dá)到我們的預(yù)期,此時如果再采用隨機(jī)驗證方法將浪費(fèi)很多時間,可以手動的加入一些定向測試案例來對DUT進(jìn)行驗證,提高覆蓋率。數(shù)字IC設(shè)計驗證平臺的搭建2.4可重用的驗證環(huán)境Synopsys推出很多基于VMM關(guān)于驗證的VIP(verificationIP),這些VIP可以在VMM的驗證環(huán)境中方便的集成和重用,極大的提高了整個驗證的效率。AMBA總線在SOC設(shè)計中應(yīng)用極為普遍,Synopsys針對AMBA總線也有自己的VIP,對其功能和時序方面做了嚴(yán)謹(jǐn)?shù)难芯俊r炞C分為:模塊級驗證、子系統(tǒng)級驗證、系統(tǒng)級驗證。模塊級驗證主要驗證單一模塊的功能,子系統(tǒng)級驗證則側(cè)重于多個模塊間的交互,系統(tǒng)級驗證更關(guān)注整個系統(tǒng)的性能。使用sub_env可以使得模塊驗證能夠應(yīng)用到子系統(tǒng)級和系統(tǒng)級的驗證平臺的開發(fā)中去,那么子系統(tǒng)和系統(tǒng)級驗證平臺就不需要再構(gòu)建該模塊的部件,節(jié)省了整個驗證項目的時間。數(shù)字IC設(shè)計驗證平臺的搭建2.4可重用的驗證環(huán)境VMM提供的基類vmm_subenv,用來對重用模塊進(jìn)行封裝。Vmm_subenv中提供的方法configure()、start()、stop()、report(),決定了重用模塊的封裝和使用的基本模式。實現(xiàn)subenv時,方法new()中,根據(jù)配置文件來決定Subenv內(nèi)部組件的連接方式,進(jìn)行連接,并構(gòu)建重用模塊。方法configure()中,實現(xiàn)對DUT的配置。方法start()中,將subenv中的模塊啟動起來,這個start()在環(huán)境env中的start()調(diào)用的。方法stop()和start()類似,由環(huán)境env調(diào)用執(zhí)行。方法report()可以報告這個重用模塊在仿真中的執(zhí)行情況。數(shù)字IC設(shè)計驗證平臺的搭建2.5VMM提供的標(biāo)準(zhǔn)庫為了方便工程師更加快速的搭建標(biāo)準(zhǔn)化驗證平臺,VMM為用戶提供了標(biāo)準(zhǔn)庫。VMM標(biāo)準(zhǔn)庫中主要的基類:1.Vmm_env基類,用于控制每個測試用例運(yùn)行,包括產(chǎn)生測試用例配置、建立驗證平臺、復(fù)位DUT、配置DUT、測試執(zhí)行以及最后執(zhí)行停止并輸出報告。2.Vmm_data
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圣戈班戰(zhàn)略合作協(xié)議
- 試驗示范田合作協(xié)議
- 二零二五年度汽車租賃與廣告合作合同樣本3篇
- 2024版對承租人有利的房屋租賃合同
- 2025年石家莊貨運(yùn)從業(yè)資格證題目答案大全
- 二零二五年度消防安全評估與整改合同6篇
- 2024版獨(dú)家銷售外貿(mào)商品代理合同
- 二零二五年度智能電網(wǎng)10kv線路建設(shè)安裝工程合同2篇
- 二零二五年度特色旅游土地流轉(zhuǎn)合同3篇
- 二零二五年度建筑防水工程合同5篇
- 免疫相關(guān)不良反應(yīng)的預(yù)防和處理
- 【區(qū)域開發(fā)戰(zhàn)略中環(huán)境保護(hù)政策的現(xiàn)存問題及優(yōu)化建議分析6800字(論文)】
- 高一學(xué)生心理素質(zhì)描述【6篇】
- 2020年高級統(tǒng)計實務(wù)與案例分析真題及答案
- 新型農(nóng)村集體經(jīng)濟(jì)研究綜述
- 人教版數(shù)學(xué)八年級上冊第十一章 三角形 作業(yè)設(shè)計 教案(含答案)
- 管理人履職工作報告
- 學(xué)校財務(wù)整改報告范文(合集5篇)
- 宇電溫控器ai 500 501用戶手冊s 6中文說明書
- 部編版五年級語文下冊第四單元整體教學(xué)設(shè)計
- 股權(quán)激勵外文文獻(xiàn)
評論
0/150
提交評論