新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > VMM驗(yàn)證方法在AXI總線系統(tǒng)中的實(shí)現(xiàn)

VMM驗(yàn)證方法在AXI總線系統(tǒng)中的實(shí)現(xiàn)

作者: 時(shí)間:2012-06-29 來(lái)源:網(wǎng)絡(luò) 收藏

芯片驗(yàn)證越來(lái)越像是軟件而不是硬件工作,這點(diǎn)已逐漸成為業(yè)界的共識(shí)。本文以軟件工程的視角切入,分析中科院計(jì)算所某片上系統(tǒng)(SoC)項(xiàng)目的驗(yàn)證平臺(tái),同時(shí)也介紹當(dāng)前較為流行的,即以專(zhuān)門(mén)的驗(yàn)證語(yǔ)言結(jié)合商用的驗(yàn)證模型,快速建立測(cè)試平臺(tái)(Test-bench)并在今后的項(xiàng)目中重用。

本文引用地址:http://butianyuan.cn/article/193663.htm

本文提及的高級(jí)驗(yàn)證語(yǔ)言、方法學(xué)、驗(yàn)證基本庫(kù)和仿真模型,這一套方法在近幾年中正逐漸被業(yè)界廣為采用。計(jì)算所的工作就是以這些最新成果為起點(diǎn),對(duì)基于總線協(xié)議的SoC建立測(cè)試平臺(tái)。

這種新方法可大幅度提高芯片驗(yàn)證的效率,尤其是項(xiàng)目初期投入極大地降低,原因之一是面向?qū)ο缶幊痰溶浖こ谭椒ǖ拇罅恳?。?dāng)然,這也對(duì)驗(yàn)證工程師的技能提出了新的要求。

在驗(yàn)證領(lǐng)域,顯見(jiàn)的趨勢(shì)是語(yǔ)言劃一、仿真平臺(tái)統(tǒng)一、更加正規(guī)和高效。以本文介紹的項(xiàng)目為例,語(yǔ)言是SystemVerilog,平臺(tái)則基于構(gòu)建,更有驗(yàn)證模型(Verification IP)助力,大幅提升了效率。正是因?yàn)椴考芍赜?、平臺(tái)結(jié)構(gòu)化、以覆蓋率為導(dǎo)向和高度自動(dòng)化等特點(diǎn),驗(yàn)證工作也愈加正規(guī),有流程可循。

專(zhuān)門(mén)的驗(yàn)證語(yǔ)言,面世已有數(shù)年之久。它們出自于傳統(tǒng)的純粹Verilog(有時(shí)部分引入C/C++)描述的驗(yàn)證系統(tǒng),并有很大發(fā)展。Vera、e語(yǔ)言和目前已成IEEE標(biāo)準(zhǔn)的SystemVerilog就是這段時(shí)期技術(shù)創(chuàng)新的成果。

面向?qū)ο缶幊烫匦?,溯其源頭便是C++語(yǔ)言。早在純Verilog語(yǔ)言驗(yàn)證的時(shí)代,已有利用C++開(kāi)發(fā)可重用驗(yàn)證代碼的做法。工程師們看中的恰是OOP的封裝、繼承、多態(tài)及可重用等優(yōu)異特性。

驗(yàn)證語(yǔ)言沒(méi)有相應(yīng)函數(shù)庫(kù)的支持,語(yǔ)言本身也很難發(fā)揮效力。舉一個(gè)大家熟知的例子,視窗(Windows)編程中,使用C語(yǔ)言直接調(diào)用視窗系統(tǒng)的編程接口(API)實(shí)現(xiàn),是較為傳統(tǒng)的做法,可目前卻鮮有視窗程序員這樣應(yīng)用。為什么?工作量巨大,需維護(hù)的信息太多,從窗口尺寸、菜單列表到程序算法,都要加以考慮。因而作為解決方案之一的微軟基本庫(kù)(MFC)才得以大行其道。與之相得益彰的是,C++作為微軟基本庫(kù)的描述語(yǔ)言,也隨視窗系統(tǒng)的傳播,廣為流行開(kāi)來(lái)。

現(xiàn)代芯片驗(yàn)證領(lǐng)域,無(wú)例外地也出現(xiàn)了類(lèi)似狀況。大量新方法、新模型和新類(lèi)庫(kù)不斷涌現(xiàn),減輕了驗(yàn)證工程師們重復(fù)開(kāi)發(fā)底層代碼的負(fù)擔(dān),將更多精力投入到實(shí)際項(xiàng)目上。這一套新思路中,主要構(gòu)成部分便是驗(yàn)證語(yǔ)言(如Vera、SystemVerilog),驗(yàn)證基本庫(kù)(RVM、)和相應(yīng)的驗(yàn)證模型。

的應(yīng)用

VMM不僅是方法學(xué),更是該方法的具體實(shí)現(xiàn)。它包括一系列的類(lèi)庫(kù)(class library)、類(lèi)對(duì)象(object)聯(lián)接關(guān)系以及用戶定制的代碼。如圖1所示的測(cè)試平臺(tái)中,各部件或即對(duì)象,是VMM基本類(lèi)/擴(kuò)展類(lèi)的實(shí)例化(Instantiate)。所涉及到的VMM基本類(lèi)有vmm_xactor、vmm_scenario_gen和vmm_data等。

11.jpg

圖1:測(cè)試平臺(tái)框圖。

聯(lián)接各部件,構(gòu)成一個(gè)整體還需要其它一些基本類(lèi),包括vmm_env、vmm_channel以及vmm_xactor_callbacks等。除此之外,用戶要根據(jù)芯片的實(shí)際狀況,添加或修改約束條件、接口聯(lián)線、執(zhí)行步驟、覆蓋率定義和自動(dòng)比對(duì)機(jī)制(auto-check)。

1. 背景

該種類(lèi)型的驗(yàn)證平臺(tái)充分利用了軟件工程的成果,將整個(gè)測(cè)試平臺(tái)按照所實(shí)現(xiàn)的功能,分門(mén)別類(lèi)予以切割,實(shí)現(xiàn)各模塊獨(dú)自開(kāi)發(fā)、分別維護(hù)。目前,芯片規(guī)模趨于龐大,協(xié)議愈形復(fù)雜,通常要傳遞海量數(shù)據(jù),并擁有數(shù)目繁多的端口。如果還以先前純Verilog的方式建立驗(yàn)證系統(tǒng),將很難滿足芯片開(kāi)發(fā)和投片的進(jìn)度。

簡(jiǎn)而言之,簡(jiǎn)單地激勵(lì)DUT輸入端口、監(jiān)控相應(yīng)的輸出端口和編寫(xiě)臨時(shí)性的代碼來(lái)做數(shù)據(jù)比對(duì),這種已相當(dāng)落后了。當(dāng)然,我們也看到某些結(jié)構(gòu)簡(jiǎn)單的芯片還有一定市場(chǎng),純粹Verilog語(yǔ)言的驗(yàn)證平臺(tái)也可以做到非常復(fù)雜(但是很難維護(hù)),并且學(xué)習(xí)面向?qū)ο缶幊痰拇鷥r(jià)容易令人望而卻步。但這些都是主流之外的個(gè)例,故對(duì)此本文不深入展開(kāi)。

現(xiàn)代驗(yàn)證系統(tǒng),盡管包含數(shù)量眾多的模塊、多樣的數(shù)據(jù)類(lèi)型/協(xié)議及各模塊間復(fù)雜的信息傳遞(保持同步、共享數(shù)據(jù)等),它仍然是繼承傳統(tǒng)方法,歸納以往的驗(yàn)證經(jīng)驗(yàn),依照慣常的步驟建立測(cè)試平臺(tái)。

VMM方法也概莫能外。依照通常的流程,它為所有應(yīng)用VMM的測(cè)試平臺(tái)設(shè)定了九個(gè)步驟,定義在vmm_env中:gen_cfg、build、reset_dut、cfg_dut、start、wait_for_end、stop、cleanup和report。

另一方面,VMM平臺(tái)的架構(gòu)按抽象層次劃分,由以下部件組成:測(cè)試?yán)?test)、場(chǎng)景發(fā)生器(generator)、驅(qū)動(dòng)部件(driver)、監(jiān)控部件(monitor)、數(shù)據(jù)比對(duì)部件(scoreboard)、數(shù)據(jù)對(duì)象(data object)、數(shù)據(jù)傳輸管道(channel)、回調(diào)函數(shù)集(callback)、配置總集(dut_cfg與sys_cfg)、覆蓋率統(tǒng)計(jì)部件,以及聯(lián)接并集成以上所有部件的環(huán)境對(duì)象(environment object),如圖2中所示。

22.jpg

圖2:在測(cè)試平臺(tái)中使用驗(yàn)證IP可大為降低工作量。

VMM中各個(gè)部件的使用,可參看Synopsys與ARM共同出版的手冊(cè)。

2. 評(píng)估標(biāo)準(zhǔn)

該研究所之前的驗(yàn)證工作均采用高級(jí)驗(yàn)證語(yǔ)言Vera,使用SystemVerilog則是第一次。VMM方法的引入,究竟能在多大程度上提高驗(yàn)證效率?該項(xiàng)目既是實(shí)際工作又是一次評(píng)估。

我們?cè)O(shè)定預(yù)期值,是基于以下幾點(diǎn)考慮:

a. 建立一個(gè)范例平臺(tái)(包含簡(jiǎn)單的數(shù)據(jù)交易、自檢測(cè)、覆蓋率統(tǒng)計(jì))需要多長(zhǎng)時(shí)間?

b. 可擴(kuò)展性,即隨機(jī)測(cè)試向量的約束條件更改、自動(dòng)比對(duì)機(jī)制按需求定制、功能覆蓋點(diǎn)的添加及協(xié)議的監(jiān)控是否完備。

c. 驗(yàn)證流程可控性,如在已有的九步驟中插入額外動(dòng)作;通過(guò)系統(tǒng)配置的改變,來(lái)控制各步驟執(zhí)行的順序和次數(shù)(比如一次reset多次cfg_dut以實(shí)現(xiàn)在線重復(fù)測(cè)試)。

d. 易用性也應(yīng)當(dāng)考慮在內(nèi)。畢竟,VMM方法涵蓋的內(nèi)容很廣,工程師們要完全掌握仍有個(gè)過(guò)程。在無(wú)法知其所以然的時(shí)候,能不能很快地知其然,并開(kāi)展工作,顯得非常重要。


上一頁(yè) 1 2 3 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉