楊小麗
(西安航空學(xué)院 電子工程學(xué)院, 陜西 西安 710077)
?
基于OVM的可重用自動(dòng)化驗(yàn)證平臺(tái)
楊小麗
(西安航空學(xué)院 電子工程學(xué)院, 陜西 西安 710077)
介紹了OVM(Open Verification Methodology)驗(yàn)證方法學(xué)的基本概念和技術(shù),從驗(yàn)證環(huán)境的體系架構(gòu)、驗(yàn)證組件的可重用性和驗(yàn)證過程等方面進(jìn)行詳細(xì)說(shuō)明,給出一個(gè)使用e語(yǔ)言實(shí)現(xiàn)的基于OVM的可重用自動(dòng)化驗(yàn)證平臺(tái)的實(shí)例?;贠VM的可重用自動(dòng)化驗(yàn)證平臺(tái)可提高SoC(System on a chip)功能驗(yàn)證的可重用性、可擴(kuò)展性和驗(yàn)證效率。
OVM;可重用;驗(yàn)證平臺(tái);SoC
隨著集成電路工藝幾何尺寸和電路特性的持續(xù)改進(jìn),半導(dǎo)體制造商成功的實(shí)現(xiàn)了摩爾定律的預(yù)期和發(fā)展速度,SoC(System on a Chip)設(shè)計(jì)的規(guī)模和復(fù)雜度日益增加,導(dǎo)致驗(yàn)證工作的困難呈指數(shù)級(jí)增長(zhǎng)。統(tǒng)計(jì)顯示,驗(yàn)證占據(jù)了超過70%的設(shè)計(jì)開發(fā)周期,是SoC設(shè)計(jì)開發(fā)的主要瓶頸,這就使得驗(yàn)證的方法受到高度重視,驗(yàn)證方法學(xué)成為研究的熱點(diǎn)。使用先進(jìn)的驗(yàn)證方法學(xué)建立高效的、可重用的自動(dòng)化驗(yàn)證平臺(tái)對(duì)片上系統(tǒng)設(shè)計(jì)的成功起著關(guān)鍵作用[1]。
OVM(Open Verification Methodology)驗(yàn)證方法學(xué)是Mentor Graphics公司和Cadence公司共同推出的通用、開放源代碼的驗(yàn)證方法學(xué),提供了豐富的驗(yàn)證資源和高級(jí)的驗(yàn)證技術(shù)[2]。應(yīng)用OVM搭建驗(yàn)證平臺(tái)可以提高SoC的驗(yàn)證效率。
功能驗(yàn)證平臺(tái)的搭建一般有以下幾種方法:基于硬件描述語(yǔ)言HDL的傳統(tǒng)方法;基于斷言的驗(yàn)證方法;基于高級(jí)驗(yàn)證語(yǔ)言和驗(yàn)證方法學(xué)的方法。
1.1基于硬件描述語(yǔ)言HDL的傳統(tǒng)方法
傳統(tǒng)方法使用Verilog或VHDL硬件描述語(yǔ)言來(lái)構(gòu)建驗(yàn)證環(huán)境,開發(fā)測(cè)試向量進(jìn)行仿真。一般來(lái)說(shuō)具有以下特點(diǎn):針對(duì)DUT(Device Under Test)的特定屬性,編寫大量定向測(cè)試用例;由人工來(lái)決定驗(yàn)證路徑和驗(yàn)證目標(biāo),人工檢查和判斷驗(yàn)證結(jié)果。
隨著設(shè)計(jì)復(fù)雜度的增加,傳統(tǒng)驗(yàn)證方法顯現(xiàn)出諸多缺點(diǎn):
(1)驗(yàn)證平臺(tái)缺乏層次化,難以重用和擴(kuò)展,可讀性和可維護(hù)性差;
(2)需要手動(dòng)開發(fā)大量邊緣測(cè)試案例;
(3)覆蓋率低;
(4)面對(duì)復(fù)雜設(shè)計(jì)難以開發(fā)強(qiáng)大的驗(yàn)證環(huán)境;
(5)排查錯(cuò)誤困難,驗(yàn)證效率低等。
1.2基于斷言的驗(yàn)證方法
基于斷言的驗(yàn)證方法是在設(shè)計(jì)源碼中的關(guān)鍵點(diǎn)插入斷言語(yǔ)句,在仿真過程中,由斷言語(yǔ)句發(fā)現(xiàn)設(shè)計(jì)優(yōu)缺點(diǎn),具有如下優(yōu)勢(shì):
(1)可以提高設(shè)計(jì)的可觀測(cè)性,找出傳統(tǒng)方法的輸出結(jié)果難以表現(xiàn)的錯(cuò)誤;
(2)快速跟蹤錯(cuò)誤根源,縮短調(diào)試時(shí)間;
(3)易于發(fā)現(xiàn)設(shè)計(jì)IP集成過程中出現(xiàn)的問題,提高設(shè)計(jì)效率;
(4)不需要用戶設(shè)計(jì)復(fù)雜的驗(yàn)證環(huán)境。
基于上述優(yōu)點(diǎn),在今后的設(shè)計(jì)中插入斷言語(yǔ)句將成為一種趨勢(shì)。但是,也存在一定問題,一般斷言是設(shè)計(jì)者描述的,有可能設(shè)計(jì)代碼和驗(yàn)證代碼都是錯(cuò)誤的,導(dǎo)致無(wú)法發(fā)現(xiàn)問題,而且目前的斷言不可綜合,以后仿真中無(wú)法使用。
1.3基于高級(jí)驗(yàn)證語(yǔ)言和驗(yàn)證方法學(xué)的驗(yàn)證平臺(tái)
基于驗(yàn)證語(yǔ)言和驗(yàn)證方法學(xué)的方法即基于專用驗(yàn)證語(yǔ)言,并在相應(yīng)的驗(yàn)證方法學(xué)的指導(dǎo)下構(gòu)建驗(yàn)證平臺(tái),具有相應(yīng)工具的支持,可為功能驗(yàn)證的實(shí)現(xiàn)提供完整的解決方案。該方法能有效克服傳統(tǒng)驗(yàn)證環(huán)境的缺點(diǎn),具有高度的可重用性,并能利用先進(jìn)的自動(dòng)化驗(yàn)證技術(shù),大大提高驗(yàn)證效率。
由于硬件描述語(yǔ)言和C語(yǔ)言等傳統(tǒng)語(yǔ)言在驗(yàn)證方面的能力不足,難以開發(fā)有效的驗(yàn)證環(huán)境,于是出現(xiàn)了專門用于驗(yàn)證的高級(jí)驗(yàn)證語(yǔ)言,例如,SystemC、SystemVerilog、e語(yǔ)言等。這些高級(jí)驗(yàn)證語(yǔ)言都有相應(yīng)的驗(yàn)證方法學(xué)的支持,如SystemVerilog可以基于VMM方法搭建驗(yàn)證平臺(tái)[3]。目前主流的驗(yàn)證方法學(xué)主要有Synopsys公司的RVM、VMM,Mentor公司的AVM,Cadence公司的UVM以及Cadence和Mentor聯(lián)合推出的OVM等[4]。其中VMM和OVM作為新興的驗(yàn)證方法學(xué),逐漸取代其他方法學(xué),得到廣泛應(yīng)用。
2.1OVM簡(jiǎn)介
OVM(Open Verification Methodology)是一個(gè)支持多種驗(yàn)證語(yǔ)言的、開源的方法學(xué)和技術(shù)[5]。OVM是基于SystemVerilog提出的,在e語(yǔ)言基礎(chǔ)上發(fā)展起來(lái)的一種驗(yàn)證方法學(xué)。為了整合資源,適應(yīng)更復(fù)雜的驗(yàn)證需求,Cadence和Mentor聯(lián)合推出了為多語(yǔ)言而構(gòu)建的開源方法學(xué)OVM,可以將SystemVerilog、e以及SystemC等不同語(yǔ)言所構(gòu)建的驗(yàn)證環(huán)境以及VIP(Verification IP)整合在一起使用。OVM是獨(dú)立于驗(yàn)證語(yǔ)言的驗(yàn)證方法學(xué)。OVM方法學(xué)提供了構(gòu)建可重用驗(yàn)證環(huán)境的方法和規(guī)范,包含針對(duì)每種語(yǔ)言的方法指導(dǎo)、庫(kù)、例子和培訓(xùn),指導(dǎo)驗(yàn)證人員進(jìn)行驗(yàn)證代碼的設(shè)計(jì)、編碼和封裝,構(gòu)建可重用的驗(yàn)證組件。下面對(duì)OVM的驗(yàn)證環(huán)境、驗(yàn)證組件UVCs(universal verification components)、OVM如何實(shí)現(xiàn)可重用性和驗(yàn)證自動(dòng)化作簡(jiǎn)要介紹。
2.2OVM驗(yàn)證環(huán)境
OVM驗(yàn)證環(huán)境由可重用驗(yàn)證組件UVCs(universal verification components)組成。對(duì)于這些驗(yàn)證組件的組織安排決定了驗(yàn)證環(huán)境搭建的質(zhì)量。OVM對(duì)UVCs的結(jié)構(gòu)、封裝、配置和術(shù)語(yǔ)等制定了一套標(biāo)準(zhǔn)。典型的OVM環(huán)境結(jié)構(gòu)如圖1所示。
圖1典型的OVM環(huán)境
由圖 1可見,一個(gè)典型的OVM環(huán)境包括Interface UVCs、 Module UVCs、 System UVCs和Software UVC等。Interface UVC是OVM驗(yàn)證環(huán)境最基礎(chǔ)的組成模塊,Module UVCs可由Interface UVCs和其他需要的組件組成,System UVCs可由Module UVCs和Interface UVCs組成。每個(gè)UVC里都包括檢查(checking),覆蓋率(coverage)的統(tǒng)計(jì)和激勵(lì)序列(sequences)等。
2.3可重用UVCs
UVCs(universal verification components)是OVM驗(yàn)證環(huán)境的基本組成模塊。每一個(gè)UVC都是封裝好的可配置的組件。通常有三種類型的UVCs:Interface UVCs、Module UVCs和System UVCs。
Interface UVCs是與DUT的直接接口,通常涉及某個(gè)特定的協(xié)議,像PCI,TCP/IP,Ethernet等。Interface UVCs通常包括如下元素:
Agents:模擬DUT的頂層文件,與VHDL實(shí)現(xiàn)中的實(shí)體類似[6]。通過端口(ports)連接到DUT,由Driver,Sequencer和Bus monitor組成。一個(gè)UVC可以包含多個(gè)agent。Agents可通過配置參數(shù)來(lái)實(shí)現(xiàn)不同的操作模式,可以配置為驅(qū)動(dòng)并監(jiān)視接口的主動(dòng)(Active)模式或僅僅監(jiān)視接口的被動(dòng)(Passive)模式。
典型的UVC Agent,如圖2所示。
圖2 UVC Agent
Driver也叫BFM(Bus Function Model):通過驅(qū)動(dòng)和采樣DUT信號(hào)來(lái)與DUT交互,將傳遞的數(shù)據(jù)流轉(zhuǎn)換為DUT需要的格式,與總線的功能相似。
Sequencer:產(chǎn)生驗(yàn)證人員希望加載給DUT的激勵(lì)數(shù)據(jù)并傳給Driver來(lái)執(zhí)行。
Bus monitor:從總線上提取需要監(jiān)測(cè)的信號(hào)信息,并轉(zhuǎn)換成其他組件可用的數(shù)據(jù)結(jié)構(gòu),同時(shí)還控制著檢查(checking)和覆蓋率的統(tǒng)計(jì)。通過監(jiān)視總線上的信息來(lái)進(jìn)行協(xié)議和數(shù)據(jù)兩方面的檢查。通過偵測(cè)總線傳輸,數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)化,事件的發(fā)生等,來(lái)通報(bào)coverage進(jìn)行覆蓋率收集。
System UVCs用來(lái)對(duì)系統(tǒng)進(jìn)行驗(yàn)證,如CPU、bridge或手機(jī)。相關(guān)的小系統(tǒng)UVCs稱作Module UVCs。System UVCs由Interface UVCs和Module UVCs構(gòu)成。它可以沒有自己的agents,而僅僅實(shí)例化其他UVCs,把它們連起來(lái)形成一個(gè)更大的驗(yàn)證環(huán)境,其中Interface UVCs用于連接到系統(tǒng)接口,而Module UVCs是當(dāng)前驗(yàn)證系統(tǒng)的子模塊或子系統(tǒng)。
System UVCs和Interface UVCs的結(jié)構(gòu)相似。它的Monitor從Interface UVCs的monitor處收集信息。Scoreboard收集Monitor采集到的數(shù)據(jù)送給參考模型進(jìn)行對(duì)比分析。在System UVCs里還定義了Virtual (multiple channel) sequence,它連接到Interface UVCs和Module UVCs的sequence上,可同時(shí)控制所有的系統(tǒng)接口。另外多數(shù)系統(tǒng)都有寄存器,System UVCs引入vr_ad模型庫(kù)實(shí)現(xiàn)對(duì)寄存器的驗(yàn)證。
2.4可重用性
驗(yàn)證占據(jù)了芯片開發(fā)周期的絕大多數(shù)時(shí)間,因此,驗(yàn)證的可重用性對(duì)于開發(fā)效率的提高是至關(guān)重要的。OVM驗(yàn)證平臺(tái)的可重用性主要有下面兩方面內(nèi)容。
(1)UVCs的重用。雖然每個(gè)UVC都針對(duì)不同的協(xié)議、設(shè)計(jì),但是UVCs還是有很多共性的,如都包含激勵(lì)、檢查和覆蓋率信息等,這些相對(duì)固定的結(jié)構(gòu),便于開發(fā)標(biāo)準(zhǔn)UVCs,針對(duì)不同設(shè)計(jì),只需擴(kuò)展相應(yīng)文件即可。
(2)驗(yàn)證環(huán)境的重用。高一級(jí)的驗(yàn)證環(huán)境或組件可通過重用低一級(jí)的來(lái)實(shí)現(xiàn),例如,模塊級(jí)的驗(yàn)證環(huán)境在系統(tǒng)級(jí)的重用,系統(tǒng)級(jí)也可以在更大的系統(tǒng)驗(yàn)證環(huán)境中重用。
OVM方法學(xué)的拓?fù)浣Y(jié)構(gòu)和配置以及層次性等確保了UVCs以及驗(yàn)證環(huán)境的可重用性,使得驗(yàn)證環(huán)境搭建的效率極大提高,驗(yàn)證人員可以將更多的時(shí)間用于驗(yàn)證過程本身而不是環(huán)境的搭建。
2.5驗(yàn)證自動(dòng)化
覆蓋率驅(qū)動(dòng)驗(yàn)證CDV(coverage-Driven Verification)方法已是驗(yàn)證人員所熟悉的一種高效率的驗(yàn)證方法,通過自動(dòng)化測(cè)試向量生成和對(duì)覆蓋率的測(cè)量,CDV可確保驗(yàn)證目標(biāo)的實(shí)現(xiàn)和驗(yàn)證過程自動(dòng)化。而OVM提供了較好的框架來(lái)實(shí)現(xiàn)CDV。基于OVM搭建的驗(yàn)證平臺(tái)可實(shí)現(xiàn)CDV方法中的帶約束的隨機(jī)向量的生成,通過Monitor、Coverage和Check,實(shí)現(xiàn)由覆蓋率驅(qū)動(dòng)的自動(dòng)化驗(yàn)證過程。
下面給出一個(gè)使用e語(yǔ)言實(shí)現(xiàn)的基于OVM的可重用自動(dòng)化驗(yàn)證平臺(tái)的實(shí)例。這里以異步串行通信接口UART為DUT。UART是發(fā)送和接收UART幀的SoC外圍設(shè)備,可以實(shí)現(xiàn)全雙工通信,將需要發(fā)送的總線并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),同時(shí),將接收到的串行數(shù)據(jù)轉(zhuǎn)換為總線并行數(shù)據(jù),其主要接口為APB總線和UART通信接口。
3.1UART驗(yàn)證環(huán)境
UART驗(yàn)證環(huán)境如圖3所示,主要由四部分組成,其中APB UVC、UART UVC和Module UVC三部分文件結(jié)構(gòu)相同,分別負(fù)責(zé)主機(jī)接口,通信接口和模擬DUT本身的工作。而頂層驗(yàn)證環(huán)境uart_sve主要是將各個(gè)驗(yàn)證組件有效的組織在一起,并實(shí)現(xiàn)虛擬sequence進(jìn)行激勵(lì)的有效控制。
圖3 UART驗(yàn)證環(huán)境
3.1.1Interface UVC
UART驗(yàn)證環(huán)境中包括兩個(gè)Interface UVC,分別為APB UVC和UART UVC。APB UVC主要模擬主機(jī)對(duì)DUT的配置行為,按照APB總線協(xié)議訪問時(shí)序完成對(duì)DUT的讀寫訪問。UART UVC為通信端的接口,主要模擬DUT與DUT的通信行為,按照規(guī)范和DUT進(jìn)行通信,相當(dāng)于在更高層次對(duì)DUT的行為模擬。
Interface UVC各個(gè)部件都是用e語(yǔ)言中的struct或unit等來(lái)實(shí)現(xiàn)的。主要部件的實(shí)現(xiàn)如下:
(1)Item struct:代表輸入到DUT的交互數(shù)據(jù),包括數(shù)據(jù)包,指令等。對(duì)于APB UVC主要定義地址、數(shù)據(jù)和讀寫等,而對(duì)于UART UVC主要定義了按照協(xié)議規(guī)定的各種傳輸類型的數(shù)據(jù)包。
(2)Agent unit:分為active和passive兩種子類型,在passive下,只例化了monitor,而在active下,例化了monitor、bfm和sequence driver,除此之外,在agent下可以定義與DUT交互的端口信號(hào)。
(3)sequence driver unit:主要是生成數(shù)據(jù)架構(gòu),并且連接bfm,將生成的數(shù)據(jù)包發(fā)送給bfm。
(4)bfm unit:將sequence driver產(chǎn)生的數(shù)據(jù)包,按照規(guī)范要求的訪問規(guī)則驅(qū)動(dòng)到DUT,同時(shí)也檢測(cè)DUT的響應(yīng)。
(5)monitor unit:主要負(fù)責(zé)監(jiān)測(cè)傳輸。檢測(cè)總線上的一切活動(dòng),接收有效的數(shù)據(jù)流,并將其轉(zhuǎn)換為抽象級(jí)別高的字符。根據(jù)規(guī)范所定義的字符含義,發(fā)出相應(yīng)的有效事件,這些事件可供bfm引用,同時(shí)在接收過程中自動(dòng)檢測(cè)數(shù)據(jù)正確性。
3.1.2Module UVC
Module UVC主要是DUT的代理,負(fù)責(zé)監(jiān)測(cè)DUT與主機(jī)接口和通信接口的交易事務(wù),并且做相應(yīng)的check和coverage收集。由于使用了寄存器存儲(chǔ)器模型(vr_ad),所以該UVC還實(shí)現(xiàn)了寄存器文件的定義、例化和寄存器訪問的sequence。
3.1.3頂層驗(yàn)證環(huán)境
Uart_sve為UART驗(yàn)證的頂層環(huán)境,其作用主要是組織三種UVC,并且定義虛擬sequence來(lái)調(diào)度各種sequence。驗(yàn)證環(huán)境的層次如圖 4所示。
圖4 UART頂層驗(yàn)證環(huán)境
3.2UART的驗(yàn)證流程
通過OVM方法學(xué)所搭建的UART驗(yàn)證平臺(tái),其驗(yàn)證流程如下:
(1)通過APB UVC寫寄存器來(lái)配置DUT的工作模式;
(2)使用Testcase對(duì)DUT產(chǎn)生所需要的測(cè)試激勵(lì),在APB和UART接口間交互數(shù)據(jù);
(3)通過Module UVC檢查DUT的功能正確性;
(4)通過Module UVC收集和分析DUT的功能覆蓋率;
(5)通過對(duì)覆蓋率的分析對(duì)Testcase進(jìn)一步完善,補(bǔ)充沒有驗(yàn)證到的情況;
(6)重復(fù)2~5步,直到功能覆蓋率達(dá)到100%。
由驗(yàn)證流程可見,OVM方法學(xué)所搭建的驗(yàn)證平臺(tái)可以很方便的實(shí)現(xiàn)覆蓋率驅(qū)動(dòng)驗(yàn)證,提高驗(yàn)證的自動(dòng)化程度。
本文介紹了基于OVM驗(yàn)證方法學(xué)來(lái)搭建可重用自動(dòng)化驗(yàn)證平臺(tái)的方法,并以UART為例,詳細(xì)介紹了驗(yàn)證環(huán)境各組件的實(shí)現(xiàn)方法,該驗(yàn)證環(huán)境已成功在多個(gè)項(xiàng)目中得到重用,提高了驗(yàn)證效率,保證了驗(yàn)證的可靠性。
[1] Rashinkar P,Paterson P,Sinagh L.系統(tǒng)芯片(SOC)驗(yàn)證方法學(xué)與技術(shù)[M].北京:電子工業(yè)出版社:2005.
[2] 蔡金池.基于OVM架構(gòu)的網(wǎng)絡(luò)數(shù)據(jù)包隨機(jī)序列構(gòu)建與產(chǎn)生[J].電腦知識(shí)與技術(shù),2010,6(34):9678-9680.
[3] 肖庚亮.基于VMM的SoC可重用驗(yàn)證平臺(tái)設(shè)計(jì)[J].科學(xué)技術(shù)與工程,2010,10(5):1149-1152.
[4] 高紅霞.基于高級(jí)驗(yàn)證語(yǔ)言的IP驗(yàn)證方法[D].西安:西安電子科技大學(xué),2012.
[5] 何萌.高抽象層次化的OVM驗(yàn)證平臺(tái)設(shè)計(jì)[D].西安:西安電子科技大學(xué),2014.
[6] 文良,靳榮利,吳龍勝,等.基于AHB總線接口的可重用性驗(yàn)證環(huán)境的實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2011,28(7):202-204.
[責(zé)任編輯、校對(duì):東艷]
Reusable and Automatic Verification Platform Based on OVM
YANGXiao-li
(School of Electronic Engineering,Xi'an Aeronautical University,Xi'an 710077,China)
The basic concept and technology of OVM (Open Verification Methodology)are introduced in this paper.It elaborates the verification environment architecture,the reusability of verification components and the process of verification.An application example of reusable and automatic verification platform based on OVM and e language is offered.This kind of methodology is proved to be very useful to improve reusability,extendibility and efficiency of SoC functional verification.
OVM;reusable;verification platform;SoC
2016-09-01
楊小麗(1981-),女,陜西渭南人,工程師,主要從事信息技術(shù)方面的研究。
TN407
A
1008-9233(2016)05-0060-05