摘 要: 提出了一種基于總線的可重用驗(yàn)證平臺(tái)" title="驗(yàn)證平臺(tái)">驗(yàn)證平臺(tái)結(jié)構(gòu)。該結(jié)構(gòu)在傳統(tǒng)的模塊化和抽象技術(shù)的基礎(chǔ)上,采用了層次化的片上總線結(jié)構(gòu),同時(shí)引入了參數(shù)化" title="參數(shù)化">參數(shù)化的設(shè)計(jì)方法,使可重用性" title="可重用性">可重用性進(jìn)一步提高。實(shí)驗(yàn)結(jié)果表明,使用此方法構(gòu)建的驗(yàn)證平臺(tái),可重用率至少可達(dá)60%,驗(yàn)證效率提高約35%。
關(guān)鍵詞: 驗(yàn)證平臺(tái) 可重用性 待驗(yàn)證模塊 功能驗(yàn)證
隨著集成電路設(shè)計(jì)規(guī)模和設(shè)計(jì)復(fù)雜度的不斷增加,傳統(tǒng)的功能驗(yàn)證(Functional Verification)方法由于存在測試集(Test Suite)過于龐大、執(zhí)行時(shí)間過長等缺點(diǎn),已經(jīng)無法提供足夠的性能來檢查系統(tǒng)所有功能的正確性。同時(shí),基于IP重用的系統(tǒng)芯片SoC(System on a Chip)設(shè)計(jì)方法學(xué)的出現(xiàn),也對傳統(tǒng)驗(yàn)證方法提出了新的挑戰(zhàn)。在缺乏足夠相關(guān)專業(yè)知識(shí)的情況下如何有效驗(yàn)證第三方提供的IP;如何對單個(gè)IP以及系統(tǒng)集成后的SoC進(jìn)行驗(yàn)證并提高驗(yàn)證效率等,都是SoC驗(yàn)證工程師所面臨的難題[1~2]。
傳統(tǒng)的方法是設(shè)計(jì)者提供待驗(yàn)證元件DUV(Design Under Verification)的驗(yàn)證平臺(tái),輸入測試向量,驗(yàn)證測試結(jié)果是否正確。這種方法的缺陷在于,對于不同的DUV需要開發(fā)不同的驗(yàn)證平臺(tái)。SoC設(shè)計(jì)是一種面向集成的設(shè)計(jì),包含模塊(即IP)設(shè)計(jì)和系統(tǒng)集成兩個(gè)部分。因此,傳統(tǒng)的SoC驗(yàn)證需要開發(fā)兩個(gè)驗(yàn)證平臺(tái):IP單獨(dú)驗(yàn)證平臺(tái)和SoC系統(tǒng)集成驗(yàn)證平臺(tái)。驗(yàn)證平臺(tái)的開發(fā)本身需要時(shí)間,不利于產(chǎn)品的快速面市,而且也很難保證設(shè)計(jì)的驗(yàn)證平臺(tái)本身100%的正確。如何提高這兩個(gè)驗(yàn)證平臺(tái)的開發(fā)效率也就成了驗(yàn)證的難點(diǎn)。
關(guān)于驗(yàn)證平臺(tái)的研究,目前主要集中在三個(gè)方面:提高驗(yàn)證元件的抽象層次[2][3][5];提高驗(yàn)證元件的可重用性[3~6]和提高驗(yàn)證過程的自動(dòng)化實(shí)現(xiàn)[5~7]。提高驗(yàn)證元件的抽象層次,可以更早地發(fā)現(xiàn)設(shè)計(jì)錯(cuò)誤,減少系統(tǒng)的開發(fā)時(shí)間;提高驗(yàn)證元件的可重用性,可以減少驗(yàn)證平臺(tái)的開發(fā)時(shí)間;提高驗(yàn)證過程的自動(dòng)化實(shí)現(xiàn),可以加大驗(yàn)證過程的運(yùn)行效率。以上三種方法都可以有不同程度的提高驗(yàn)證效率,然而其開發(fā)過程都是針對特定的DUV的。同一種DUV或其衍生系統(tǒng),可以用上述方法開發(fā)。但對于不同的DUV,就需要重新設(shè)計(jì)驗(yàn)證平臺(tái)。例如對ROM和CPU的驗(yàn)證,就需要設(shè)計(jì)兩種不同的驗(yàn)證平臺(tái),對不同的系統(tǒng)芯片更是如此。
本文正是在傳統(tǒng)方法的基礎(chǔ)上,提出了一種基于總線的可重用驗(yàn)證平臺(tái)結(jié)構(gòu),在傳統(tǒng)的抽象和模塊化方法的基礎(chǔ)上,采用層次化的片上總線結(jié)構(gòu),使驗(yàn)證元件的開發(fā)基于特定的總線,只要總線不同,驗(yàn)證元件就不需要修改。同時(shí),為了進(jìn)一步提高可重用性,采用了參數(shù)化的思想。使用該方法構(gòu)建的驗(yàn)證平臺(tái),可以同時(shí)適用于IP單獨(dú)驗(yàn)證和SoC系統(tǒng)集成驗(yàn)證,即不僅可以在不同的IP之間實(shí)現(xiàn)可重用,而且在IP到SoC的集成也可以實(shí)現(xiàn)可重用。該驗(yàn)證平臺(tái)極大地提高了驗(yàn)證平臺(tái)的開發(fā)效率。對于IP單獨(dú)驗(yàn)證,如果IP基于同一總線,驗(yàn)證平臺(tái)開發(fā)時(shí)元件的重用率可以達(dá)到100%,如果IP不是基于同一總線,僅僅需要修改部分驗(yàn)證元件。該驗(yàn)證平臺(tái)同時(shí)還具有可擴(kuò)展性、自動(dòng)化、可升級性和可維護(hù)性等特點(diǎn)。
1 基于總線的可重用驗(yàn)證平臺(tái)結(jié)構(gòu)
隨著IP標(biāo)準(zhǔn)化工作的進(jìn)行,SoC的結(jié)構(gòu)趨于統(tǒng)一,采用層次化的片上總線結(jié)構(gòu),SoC包括處理器總線、系統(tǒng)總線和外設(shè)" title="外設(shè)">外設(shè)總線,所有的IP組成SoC時(shí),都是掛接在這三條總線上[8]的。其結(jié)構(gòu)如圖1所示。由圖可見,存儲(chǔ)器管理單元(CPU、MMU)、高速緩存、主存儲(chǔ)器、仲裁器和IP分別接在處理器總線、系統(tǒng)總線和外設(shè)總線上,集成為SoC。
基于特定的總線不同的IP可以實(shí)現(xiàn)重用,IP可以集成為SoC,是因?yàn)椴捎昧藢哟位钠峡偩€結(jié)構(gòu),可以根據(jù)IP的種類將其分別掛接在處理器總線、系統(tǒng)總線和外設(shè)總線上?;谶@種思想,驗(yàn)證平臺(tái)也可以采用層次化的片上總線結(jié)構(gòu),如圖2所示。將驗(yàn)證平臺(tái)分解成監(jiān)視器、總線報(bào)告器(Bus Reporter)、驅(qū)動(dòng)、系統(tǒng)服務(wù)等,并分別掛接在處理器總線、系統(tǒng)總線和外設(shè)總線上。本文介紹的驗(yàn)證平臺(tái)是建立在VSIA IPBUS 2.0規(guī)范[8]的基礎(chǔ)上的。只要參與驗(yàn)證的模塊符合VSIA 的IP設(shè)計(jì)規(guī)范,就可以直接使用該驗(yàn)證平臺(tái)來驗(yàn)證。對于不符合VSIA規(guī)范的IP,在驗(yàn)證前需要增加一層接口來封裝這個(gè)IP,這層接口實(shí)現(xiàn)IP與VSIA協(xié)議的轉(zhuǎn)換。該驗(yàn)證平臺(tái)在SOLARIS 8操作系統(tǒng)下開發(fā),用BOURN shell腳本、RERL腳本和Verilog編寫,仿真器采用Cadence公司的Verilog-XL。
?
驗(yàn)證模塊可以根據(jù)需要加入驗(yàn)證平臺(tái)。每次的驗(yàn)證過程就是相應(yīng)的激勵(lì)作用于驗(yàn)證平臺(tái)的過程。驗(yàn)證結(jié)果由驗(yàn)證平臺(tái)產(chǎn)生、檢驗(yàn)和輸出。其中,監(jiān)視器、總線報(bào)告器、驅(qū)動(dòng)、系統(tǒng)服務(wù)和激勵(lì)文件的開發(fā)采用抽象和模塊化原則,具體可見參考文獻(xiàn)[2]、[4]中介紹的方法。
監(jiān)視器用于檢查總線上的數(shù)據(jù)傳輸,報(bào)告接口上關(guān)鍵信號(hào)的變化。驗(yàn)證平臺(tái)提供的標(biāo)準(zhǔn)監(jiān)視器模板有:處理器總線監(jiān)視器模板、系統(tǒng)總線監(jiān)視器模板和外設(shè)總線監(jiān)視器模板??偩€報(bào)告器用于報(bào)告總線上協(xié)議的錯(cuò)誤和特定信號(hào);同時(shí)也提供了相應(yīng)的標(biāo)準(zhǔn)模板。監(jiān)視器和總線報(bào)告器可以根據(jù)需要打開或關(guān)閉,可以通過控制參數(shù)值來實(shí)現(xiàn)。為了方便,驗(yàn)證平臺(tái)在設(shè)計(jì)時(shí)將該參數(shù)放到了驗(yàn)證時(shí)的系統(tǒng)配置文件中。
激勵(lì)系列是由Verilog和C語言編寫的測試向量。嚴(yán)格來說,激勵(lì)并不是驗(yàn)證平臺(tái)的一部分,因?yàn)榧?lì)與要驗(yàn)證的元件密切相關(guān),隨驗(yàn)證元件的不同而不同,但激勵(lì)是調(diào)用驅(qū)動(dòng)來實(shí)現(xiàn)的。驅(qū)動(dòng)就如同軟件設(shè)計(jì)中調(diào)用系統(tǒng)API的應(yīng)用程序,所以激勵(lì)是進(jìn)行驗(yàn)證不可缺少的部分。
為了方便操作,驗(yàn)證平臺(tái)在設(shè)計(jì)時(shí),將一些經(jīng)常需要配置的部分設(shè)為參數(shù),然后將這些參數(shù)放在配置文件中來設(shè)置。通過配置文件可以配置驅(qū)動(dòng)、監(jiān)視器和驗(yàn)證選項(xiàng)。配置文件和激勵(lì)文件都由驗(yàn)證平臺(tái)的使用者編輯。
驗(yàn)證平臺(tái)的另一個(gè)特點(diǎn)是靈活性。利用Cadence公司的Verilog-XL仿真器,各待驗(yàn)證元件的模型可以是多種形式的描述。該驗(yàn)證平臺(tái)可以進(jìn)行C/C++、Verilog和VHDL協(xié)同驗(yàn)證,支持的模型包括C/C++的PLI、VPI或OMI模型、Verilog/VHDL行為級模型、Verilog/VHDL RTL級模型或Verilog/VHDL門級模型以及管腳模型。該驗(yàn)證平臺(tái)還可以根據(jù)配置文件來調(diào)取同一IP的不同版本,實(shí)現(xiàn)版本控制。對于不同的描述,激勵(lì)大都需要重寫。使用該驗(yàn)證平臺(tái),使得同一激勵(lì)文件可以應(yīng)用設(shè)計(jì)的各個(gè)階段,避免了重復(fù)編輯激勵(lì)文件,從而在驗(yàn)證環(huán)節(jié)上節(jié)省了大量時(shí)間。
上述基于總線的可重用驗(yàn)證平臺(tái)可以同時(shí)作為IP單獨(dú)驗(yàn)證平臺(tái)和SoC系統(tǒng)驗(yàn)證平臺(tái)使用。驗(yàn)證單個(gè)IP時(shí),為了提高驗(yàn)證速度,只需將該IP所對應(yīng)的總線上的監(jiān)視器和總線報(bào)告器保留,而將其他總線上的監(jiān)視器和總線報(bào)告器關(guān)閉,以免消耗系統(tǒng)資源,影響驗(yàn)證速度。例如,驗(yàn)證主存儲(chǔ)器時(shí),只需要保留系統(tǒng)總線上的監(jiān)視器和總線報(bào)告器,將處理器總線和外設(shè)總線上的監(jiān)視器和總線報(bào)告器都關(guān)閉。驗(yàn)證SoC時(shí),其系統(tǒng)驗(yàn)證平臺(tái)的連接見圖2。
監(jiān)視器和總線報(bào)告器不驅(qū)動(dòng)信號(hào),僅完成對信號(hào)的監(jiān)視,包括檢查協(xié)議的連續(xù)性、時(shí)序和期望的響應(yīng)等。從圖2中可以看出,監(jiān)視器和總線報(bào)告器的設(shè)計(jì)是基于特定總線的,在構(gòu)成另一個(gè)SoC驗(yàn)證平臺(tái)時(shí),只要特定的總線不變(如其處理器總線),若兩個(gè)SoC都使用M*Core CPU時(shí),處理器總線上對應(yīng)的監(jiān)視器和總線報(bào)告器就可以直接使用,因此有很高的可重用性??紤]到監(jiān)視器可能會(huì)監(jiān)視內(nèi)部信號(hào),因此在邏輯綜合時(shí),需要將這些要監(jiān)視的內(nèi)部信號(hào)保留。驅(qū)動(dòng)和系統(tǒng)服務(wù)都是基于外設(shè)總線的,為了進(jìn)一步提高可重用性,將驅(qū)動(dòng)和系統(tǒng)服務(wù)分解成一個(gè)個(gè)子任務(wù)來實(shí)現(xiàn),任務(wù)之間互相獨(dú)立,當(dāng)修改一個(gè)任務(wù)時(shí)不會(huì)影響其他任務(wù),所有的任務(wù)合在一起就構(gòu)成了任務(wù)庫。驅(qū)動(dòng)所對應(yīng)的任務(wù)庫是基于外設(shè)總線的。系統(tǒng)服務(wù)所對應(yīng)的任務(wù)包括驗(yàn)證平臺(tái)的配置、驗(yàn)證的自動(dòng)化實(shí)現(xiàn)及驗(yàn)證工具的調(diào)用等。此時(shí)激勵(lì)文件的編寫就變成了調(diào)用任務(wù)庫中的任務(wù),使激勵(lì)文件的編寫更簡單易行。
2 驗(yàn)證平臺(tái)的數(shù)據(jù)結(jié)構(gòu)
驗(yàn)證平臺(tái)所涉及的文件和工具非常多,采取合理高效的目錄管理有利于項(xiàng)目管理和設(shè)計(jì)數(shù)據(jù)的更新,方便腳本的調(diào)用和配置,從而實(shí)現(xiàn)驗(yàn)證過程的自動(dòng)化。為此將驗(yàn)證平臺(tái)分為:工具目錄、整體目錄(也稱系列目錄,F(xiàn)amily Directory)、模塊目錄和工作目錄四個(gè)子目錄。
2.1 工具目錄
該目錄下存儲(chǔ)驗(yàn)證平臺(tái)運(yùn)行時(shí)所需要使用的驗(yàn)證工具以及與整體目錄的鏈接。該目錄下主要有兩個(gè)腳本文件:family_mapping和sim_env。family_mapping文件指定芯片系統(tǒng)數(shù)據(jù)映射路徑,sim_env文件提供驗(yàn)證平臺(tái)的入口,文件包含對Verilog-XL仿真器工具、代碼覆蓋率工具等調(diào)用接口,并通過shell語言的文本過濾命令sed和awk,提取目錄和文件,以便構(gòu)建完整的驗(yàn)證平臺(tái)。其工作原理是:從模塊目錄中提取驗(yàn)證所需的模塊文件(.v)和從模板產(chǎn)生測試文件(test.v),并將這些文件名和驗(yàn)證時(shí)所需要的工具和相應(yīng)參數(shù)全部輸出到一個(gè)文件中,即驗(yàn)證所需要的所有元件全部在該文件中,用腳本調(diào)用該文件就可以完成驗(yàn)證過程。驗(yàn)證平臺(tái)的可重用性主要體現(xiàn)在本目錄。在該目錄中,使用了參數(shù)化的思想來達(dá)到重用的目的。使用者可以通過配置參數(shù)來建立所需要的驗(yàn)證平臺(tái)。這是該驗(yàn)證平臺(tái)的特點(diǎn)之一,也是其與傳統(tǒng)驗(yàn)證平臺(tái)的不同之處。
2.2 整體目錄
建立當(dāng)前驗(yàn)證平臺(tái)所需的信息存儲(chǔ)在整體目錄中,包括可重用的代碼信息(如監(jiān)視器和總線報(bào)告器等)、系統(tǒng)服務(wù)、輔助文件、內(nèi)部鏈接等。驗(yàn)證平臺(tái)的可升級性主要體現(xiàn)在這個(gè)目錄中,當(dāng)SoC升級或做部分修改時(shí),其相應(yīng)的驗(yàn)證平臺(tái)就需要調(diào)整,如在SoC升級為后續(xù)衍生產(chǎn)品的驗(yàn)證中,系統(tǒng)服務(wù)就需要修改,而此時(shí)系統(tǒng)服務(wù)可以與原來有不同的實(shí)現(xiàn),但必須有相同或相似的接口和參數(shù)。這樣,激勵(lì)文件和腳本文件就可以不用修改,從而實(shí)現(xiàn)修改程度最小化。
2.3 模塊目錄
該目錄包括當(dāng)前需要驗(yàn)證的設(shè)計(jì)的源代碼" title="源代碼">源代碼及相關(guān)信息。對于集成電路來說,按照設(shè)計(jì)流程可以劃分為系統(tǒng)級設(shè)計(jì)、RTL級設(shè)計(jì)、門級設(shè)計(jì)、布局布線設(shè)計(jì),因此模塊目錄可以相應(yīng)地劃分為以下子目錄:系統(tǒng)級源代碼、RTL級源代碼、門級源代碼和布局布線級源代碼等,每一個(gè)子目錄中存儲(chǔ)相應(yīng)設(shè)計(jì)階段的代碼,如RTL級源代碼存儲(chǔ)在RTL級源代碼目錄下。需要做某個(gè)階段的驗(yàn)證時(shí),只需要將驗(yàn)證參數(shù)設(shè)置成該階段,就可以調(diào)用該階段的代碼。
2.4 工作目錄
該目錄是驗(yàn)證工程師的操作目錄,是驗(yàn)證平臺(tái)和驗(yàn)證工程師的接口。在驗(yàn)證過程中,驗(yàn)證工程師編寫的激勵(lì)文件、運(yùn)行仿真以及最后的錯(cuò)誤分析等都在該目錄下進(jìn)行。對驗(yàn)證工程師來說,該目錄是惟一可寫的目錄。工作目錄又可以進(jìn)一步分為驗(yàn)證配置文件、文本信息及波形文件、驗(yàn)證代碼和驗(yàn)證腳本等四個(gè)子目錄。驗(yàn)證配置文件目錄存儲(chǔ)配置文件,驗(yàn)證工程師配置驗(yàn)證平臺(tái)只需在該文件中配置相應(yīng)參數(shù)即可。驗(yàn)證代碼的編寫存儲(chǔ)在驗(yàn)證代碼目錄中,對應(yīng)于不同階段的設(shè)計(jì),驗(yàn)證也可以分為相應(yīng)階段的驗(yàn)證:系統(tǒng)級驗(yàn)證、RTL級驗(yàn)證、門級驗(yàn)證和布局布線后驗(yàn)證。類似地,不同階段的驗(yàn)證也可以通過設(shè)置參數(shù)來實(shí)現(xiàn)。文本信息及波形文件目錄存儲(chǔ)驗(yàn)證時(shí)產(chǎn)生的文本文件和波形文件,用于分析驗(yàn)證情況和追查錯(cuò)誤信息等。驗(yàn)證腳本目錄用于存儲(chǔ)驗(yàn)證平臺(tái)的腳本,該腳本用于自動(dòng)化地完成驗(yàn)證過程。
從平面結(jié)構(gòu)上看,驗(yàn)證平臺(tái)的目錄是由如上所述四種類型的目錄組成的。而從立體結(jié)構(gòu)上看,它們之間又是有層次的,這種層次結(jié)構(gòu)能比較直觀地反映設(shè)計(jì)版本信息和驗(yàn)證階段信息,從而有利于項(xiàng)目管理者推進(jìn)驗(yàn)證進(jìn)度。驗(yàn)證平臺(tái)建立好后,模塊目錄和驗(yàn)證目錄都通過鏈接集成在系統(tǒng)中。整個(gè)驗(yàn)證平臺(tái)的系統(tǒng)結(jié)構(gòu)如圖3所示,其中,庫文件目錄中存放基本可重用模塊,頂層目錄是一個(gè)項(xiàng)目的根目錄,基本配置文件中存儲(chǔ)可參數(shù)化測試平臺(tái)的配置信息。雖然在文件的存儲(chǔ)結(jié)構(gòu)上,模塊目錄和工作目錄等都在同一層次上,但各目錄以圖3的方式鏈接,形成樹狀結(jié)構(gòu)。
3 可重用性的實(shí)現(xiàn)與可重用性分析
3.1 可重用性的實(shí)現(xiàn)
可重用性的實(shí)現(xiàn)主要體現(xiàn)在以下幾個(gè)方面:采用驗(yàn)證平臺(tái)配置文件、采用參數(shù)化的設(shè)計(jì)思想和基于總線的驗(yàn)證平臺(tái)結(jié)構(gòu)。分述如下:
(1)所謂驗(yàn)證平臺(tái)配置文件,是指用來對驗(yàn)證平臺(tái)進(jìn)行配置的文件。在驗(yàn)證平臺(tái)中需要使用哪些模塊(包括源碼和驗(yàn)證文件等)和驗(yàn)證工具等,可以直接由驗(yàn)證平臺(tái)配置文件來指定。這樣做的好處是驗(yàn)證工程師在構(gòu)建另一個(gè)新的驗(yàn)證環(huán)境時(shí),只需要修改驗(yàn)證平臺(tái)的配置文件,而不需修改其他部分,提高了驗(yàn)證平臺(tái)的建立時(shí)間,縮短了驗(yàn)證周期。
類似于DOS操作系統(tǒng)中的配置文件,當(dāng)驗(yàn)證工程師不對配置文件進(jìn)行配置時(shí),自動(dòng)使用默認(rèn)配置,使修改的程度最小化。因?yàn)轵?yàn)證平臺(tái)之間許多配置是一樣的,只要將這些相同的部分作為默認(rèn)值,需要修改的部分就很少了。配置文件中的配置信息至少包含所使用的驗(yàn)證工具、驗(yàn)證工具的配置、需要驗(yàn)證的設(shè)計(jì)源碼、用來驗(yàn)證的測試代碼、驗(yàn)證結(jié)果的輸出配置、驗(yàn)證時(shí)的出錯(cuò)處理和環(huán)境變量的配置等。由于需要配置的參數(shù)比較多,可以將上述配置文件分為幾個(gè),需要經(jīng)常改動(dòng)的放在一個(gè)文件,不需要經(jīng)常改動(dòng)的放在另一個(gè)文件。例如,可以將配置文件分成configuration和directory兩個(gè)文件。configuration文件用于說明當(dāng)前驗(yàn)證平臺(tái)的構(gòu)成情況;directory文件主要用于說明構(gòu)成平臺(tái)的模塊信息。
同時(shí),為了實(shí)現(xiàn)驗(yàn)證過程的快速配置,可以對上述兩個(gè)配置文件提供一個(gè)模板。一方面,當(dāng)驗(yàn)證一個(gè)設(shè)計(jì)時(shí),只需要修改該模板中的部分變量,就可以進(jìn)一步加速驗(yàn)證平臺(tái)的建立;另一方面就使用模板為腳本提供了一個(gè)標(biāo)準(zhǔn)的接口,使驗(yàn)證過程的自動(dòng)化實(shí)現(xiàn)成為可能。
(2)該驗(yàn)證平臺(tái)的另一個(gè)特點(diǎn)是使用了參數(shù)化的設(shè)計(jì)思想,具體實(shí)現(xiàn)包括驗(yàn)證平臺(tái)建立的參數(shù)化和驗(yàn)證過程的參數(shù)化。驗(yàn)證平臺(tái)建立的參數(shù)化為建立驗(yàn)證平臺(tái)提供了方便,如驗(yàn)證工程師可以通過配置參數(shù)很容易實(shí)現(xiàn)驗(yàn)證平臺(tái)中各元件的增加和刪除,也可以通過配置參數(shù)實(shí)現(xiàn)不同驗(yàn)證工具之間的切換等。驗(yàn)證過程的參數(shù)化是指驗(yàn)證工程師可以通過配置參數(shù)很容易地控制驗(yàn)證流程,進(jìn)行各階段的驗(yàn)證,從而提高驗(yàn)證速度。如通過配置參數(shù)實(shí)現(xiàn)RTL級源代碼和RTL級驗(yàn)證代碼的調(diào)用。對于驗(yàn)證平臺(tái)中的環(huán)境變量、接口參數(shù)等需要經(jīng)常使用而且又經(jīng)常需要修改的變量,采用參數(shù)化的設(shè)計(jì)思想,其具體取值由驗(yàn)證工程師在配置文件中指定。
(3)基于總線的驗(yàn)證平臺(tái)結(jié)構(gòu)能夠進(jìn)一步提高該驗(yàn)證平臺(tái)的可重用性。首先,在不同的IP單獨(dú)驗(yàn)證時(shí)有很好的可重用性。如果兩個(gè)不同的IP是基于同一總線的,第二個(gè)IP可以直接放在該驗(yàn)證平臺(tái)中驗(yàn)證,而不需要修改驅(qū)動(dòng)、系統(tǒng)服務(wù)、激勵(lì)文件和腳本等。其次,這種基于總線的驗(yàn)證平臺(tái)在驗(yàn)證SoC衍生產(chǎn)品時(shí)有很好的可重用性。因?yàn)檫@種系列產(chǎn)品所對應(yīng)的總線是不變的,因此,監(jiān)視器和總線報(bào)告器可以直接重用,如果設(shè)計(jì)得當(dāng),即使衍生產(chǎn)品的系統(tǒng)服務(wù)和驅(qū)動(dòng)實(shí)現(xiàn)過程不一樣,有同樣或相似的接口和參數(shù),激勵(lì)和腳本也可以重用。
3.2 驗(yàn)證平臺(tái)的可重用性分析
(1)在不同IP模塊單獨(dú)驗(yàn)證平臺(tái)間可以有很高的可重用性。兩個(gè)不同的IP塊驗(yàn)證時(shí),如果它們是基于同一總線的,驗(yàn)證第二塊IP時(shí),可以放在第一塊IP的驗(yàn)證平臺(tái)中直接驗(yàn)證。此時(shí),是完全可重用的,而且可重用率達(dá)到100%;如果兩塊IP是基于不同的總線的,驗(yàn)證第二塊IP時(shí),只需修改總線功能模型,而對其中的激勵(lì)、系統(tǒng)服務(wù)、驅(qū)動(dòng)和監(jiān)視器都不需做任何修改,五種基本元件只需修改一種,而可重用率仍可達(dá)到80%。如果將SoC中的處理器總線、系統(tǒng)總線和外設(shè)總線的總線功能模型全部設(shè)計(jì)好,以后的IP單獨(dú)驗(yàn)證平臺(tái)的設(shè)計(jì)就變成了僅僅是選擇不同總線功能模型的過程。
(2)從IP模塊單獨(dú)驗(yàn)證平臺(tái)到SoC系統(tǒng)驗(yàn)證平臺(tái)的設(shè)計(jì)過程中具有很高的可重用性,監(jiān)視器可以完全重用,但這需要在芯片邏輯綜合時(shí),將監(jiān)視器所監(jiān)視的內(nèi)部信號(hào)保留。如果驅(qū)動(dòng)的功能是產(chǎn)生芯片級管腳信號(hào),驅(qū)動(dòng)也可以重用。系統(tǒng)服務(wù)也可以被重用,兩個(gè)驗(yàn)證自動(dòng)化的過程不一定要同樣地實(shí)現(xiàn),但必須要有統(tǒng)一的接口。IP單獨(dú)驗(yàn)證平臺(tái)的激勵(lì)可以完全重用于SoC系統(tǒng)驗(yàn)證平臺(tái)的激勵(lì)文件中。即只要設(shè)計(jì)合適,IP模塊單獨(dú)驗(yàn)證平臺(tái)中的監(jiān)視器、系統(tǒng)服務(wù)、激勵(lì)可以被完全重用,驅(qū)動(dòng)的可重用性則需要根據(jù)IP模塊在SoC中所處的位置和所起的作用來決定,總線功能模型會(huì)被實(shí)際的總線所代替,五種基本元件中,至少有三種可被完全重用,可重用率至少可達(dá)60%。
(3)在不同的SoC系統(tǒng)驗(yàn)證平臺(tái)中有很高的可重用性。本文所提出的驗(yàn)證平臺(tái)結(jié)構(gòu)是基于總線的。因此不同的SoC系統(tǒng)驗(yàn)證平臺(tái)中的可重用性也取決于SoC本身所采用的總線。如果兩個(gè)不同的SoC采用完全相同的總線,即它們具有完全相同的處理器總線、系統(tǒng)總線和外設(shè)總線,若設(shè)計(jì)和該設(shè)計(jì)的派生設(shè)計(jì)的驗(yàn)證平臺(tái),此時(shí)可達(dá)到驗(yàn)證平臺(tái)的完全可重用,即可重用率為100%;如果兩個(gè)不同的SoC采用完全不同的總線、在第二個(gè)SoC系統(tǒng)驗(yàn)證平臺(tái)中則可以重用第一個(gè)SoC系統(tǒng)驗(yàn)證平臺(tái)中的監(jiān)視器、系統(tǒng)服務(wù)和激勵(lì),可重用率仍可達(dá)到60%。
4 實(shí) 驗(yàn)
實(shí)驗(yàn)元件選自合肥工業(yè)大學(xué)微電子設(shè)計(jì)研究所自主開發(fā)的系統(tǒng)芯片HGD2112和HGD3118,實(shí)驗(yàn)環(huán)境:Sun Solaris 8 操作系統(tǒng),Pentium IV 1.7處理器,256MB內(nèi)存,gcc編輯器,B shell腳本語言。該驗(yàn)證平臺(tái)成功地驗(yàn)證了上述兩個(gè)系統(tǒng)芯片。兩個(gè)項(xiàng)目驗(yàn)證的實(shí)際開銷和節(jié)約開銷如表1所示。 由于HGD3118和HGD2112是兩種不同的系統(tǒng)芯片,其驗(yàn)證平臺(tái)相似性較少,但如果使用該驗(yàn)證平臺(tái)來驗(yàn)證這兩種系統(tǒng)芯片的衍生產(chǎn)品,其驗(yàn)證效率可以進(jìn)一步提高。如果設(shè)計(jì)合理,驗(yàn)證平臺(tái)的構(gòu)建所占時(shí)間基本可以忽略,驗(yàn)證時(shí)間也僅為運(yùn)行驗(yàn)證過程的時(shí)間。
本文討論的基于總線的可重用性驗(yàn)證平臺(tái)已經(jīng)實(shí)現(xiàn)。由于該結(jié)構(gòu)在很大程度上實(shí)現(xiàn)了高可重用、可升級、可維護(hù)和自動(dòng)化的設(shè)計(jì)思想,為設(shè)計(jì)的規(guī)范化和標(biāo)準(zhǔn)化提供了一種可資借鑒的方法,已經(jīng)被設(shè)計(jì)公司借鑒。使用該驗(yàn)證平臺(tái),可以極大地提高驗(yàn)證平臺(tái)的開發(fā)效率,從而最終提高集成電路的驗(yàn)證效率。
參考文獻(xiàn)
1 Anderson T. Your core-my problem? integration and verifi-cation of IP[J]. IEEE Design & Test, 2001;18(5):170~171
2 Rashinkar P, Paterson P, Singh L. System-on-a-chip veri-fication methodology and techniques[M]. New York: Kluwer Academic Publishers,2002:45~87
3 Hawana M,Schutten R. Testbench design. A systematic app-roach, http://www.synopsys.com/sps/pdf/paper2.pdf,2003-12
4 Chang H, Cooke L. Surviving the SOC revolution-a guide to platform-based design[M]. Boston: Kluwer Academic Publishers, 2002:51~60
5 Bergeron J. Writing testbench-function verification of HDL models[M]. New York: Kluwer Academic Publishers, 2000:155~268
6 陸思安.面向系統(tǒng)芯片的驗(yàn)證策略[J]. 微電子學(xué), 2002;3(4):265~268
7 韓俊剛. 系統(tǒng)芯片的混合驗(yàn)證方法[J]. 西安郵電學(xué)院學(xué)報(bào), 2002;7(1):12~17
8 On-chip bus development working group specification 1 ver-sion 1.0 (OCE 1 1.0) [S].VSI Alliance,1998