基于OVM驗(yàn)證平臺(tái)的IP芯片驗(yàn)證
芯片驗(yàn)證的工作量約占整個(gè)芯片研發(fā)的70%,已然成為縮短芯片上市時(shí)間的瓶頸。應(yīng)用OVM方法學(xué)搭建SoC設(shè)計(jì)中的DMA IP驗(yàn)證平臺(tái),可有效提高驗(yàn)證效率。
隨著集成電路設(shè)計(jì)向超大規(guī)模發(fā)展,芯片驗(yàn)證工作的難度在不斷增大,驗(yàn)證的工作量已經(jīng)占到整個(gè)SoC研發(fā)的70%左右,芯片驗(yàn)證直接影響到芯片上市的時(shí)間,因此提高芯片驗(yàn)證的效率已變得至關(guān)重要。利用OVM的層次化、隨機(jī)約束等特點(diǎn),能有效提升現(xiàn)有的驗(yàn)證方法,提高環(huán)境激勵(lì)和監(jiān)測(cè)的層次、加快覆蓋率達(dá)成進(jìn)程,從而加快驗(yàn)證速度。
OVM驗(yàn)證平臺(tái)
OVM是Mentor Graphics和Cadence Design System共同提出完全開放的驗(yàn)證方法學(xué),致力于提供給設(shè)計(jì)和驗(yàn)證工程師一個(gè)抽象層次更高的驗(yàn)證環(huán)境。OVM提供了豐富的庫(kù)類和高級(jí)驗(yàn)證技術(shù),實(shí)現(xiàn)驗(yàn)證平臺(tái)從模塊級(jí)到系統(tǒng)級(jí)的復(fù)用,并可在多個(gè)廠家的方針驗(yàn)證平臺(tái)上運(yùn)行。
OVM驗(yàn)證平臺(tái)采用層次化的結(jié)構(gòu),共分為五層,分別為DUT、傳輸層、Operational、分析層以及控制層。其中最底層為DUT,即需要驗(yàn)證的帶Pin級(jí)接口的IP或SoC設(shè)計(jì)。在DUT層次之上為傳輸層,該層用于連接Pin級(jí)DUT與傳輸層。在傳輸層之上的所有組件均為基于事務(wù)傳輸層的組件。事務(wù)傳輸層的引入可以讓驗(yàn)證環(huán)境的設(shè)計(jì)擺脫實(shí)際DUT信號(hào)接口的約束,使上層信息的傳遞更加高效快捷。從傳輸層起,每一層均由不同的事務(wù)組件組成,例如分析層由覆蓋率搜集、性能分析、記分板、參考模型等組件組成,不同層次的所有組件相互作用,形成了一個(gè)層次化的、可以重用的驗(yàn)證環(huán)境。
在基帶SoC芯片中,DMA模塊負(fù)責(zé)SoC系統(tǒng)中數(shù)據(jù)的搬移,該模塊有AHB Master接口及AHB Slave接口,其中AHB Slave接口用于CPU對(duì)DMA的功能進(jìn)行配置,而AHB Master接口則負(fù)責(zé)數(shù)據(jù)讀取與寫入,模塊中設(shè)置FIFO用于緩存DMA交互數(shù)據(jù)。
OVM驗(yàn)證平臺(tái)中的基礎(chǔ)組件一般包括driver、sequencer、sequence、monitor,將這些組件在ovm_agent中實(shí)例化,多個(gè)ovm_agent在ovm_env中實(shí)例化,同時(shí)為了實(shí)現(xiàn)自對(duì)比機(jī)制,在ovm_env中需要實(shí)例化scoreboard,最后在ovm_test這種類型的組件中實(shí)例化ovm_env并指定環(huán)境中各agent的sequencer所對(duì)應(yīng)的sequence。
OVM環(huán)境中各組件通過傳輸層接口進(jìn)行相互連接,在這種傳輸層接口中傳遞的就是傳輸數(shù)據(jù)。OVM已經(jīng)定義好了傳輸層接口,我們只需要進(jìn)行實(shí)例化就可以了。傳輸數(shù)據(jù)是對(duì)物理接口(即IP接口)的抽象,將IP接口進(jìn)行抽象后使用OVM中的組件進(jìn)行高層次處理。
該IP有兩種接口,一是標(biāo)準(zhǔn)的AHB Master接口,二是標(biāo)準(zhǔn)的AHB Slave接口。針對(duì)這兩種接口需要定義兩種類型的傳輸數(shù)據(jù),OVM中通過擴(kuò)展ovm_transaction類來定義我們自己需要的傳輸數(shù)據(jù)。支持使用systemverilog的約束機(jī)制在上述兩種傳輸數(shù)據(jù)中進(jìn)行隨機(jī)化約束。比如根據(jù)該IP的規(guī)格,可以在ahbm_pkt中約束hsize為2’b00~2’b10隨機(jī),addr為32’h0000_0000~32’hFFFF_FFFF隨機(jī)。
為了對(duì)驗(yàn)證效果進(jìn)行評(píng)估,需要做功能覆蓋率的搜集,該部分代碼做到scoreboard中,使用systemverilog的covergroup來搜集驗(yàn)證到的功能點(diǎn)。
在借用事務(wù)交易及接口構(gòu)建模塊化、可重用的驗(yàn)證組件后,利用各組件的類庫(kù)創(chuàng)建隨機(jī)激勵(lì)和序列,并將激勵(lì)與序列轉(zhuǎn)換為DUT的接口行為;使用斷言、scoreboard等判斷DUT行為的正確性;與此同時(shí)搜集和分析功能覆蓋率、代碼覆蓋率等信息。在驗(yàn)證的過程中我們通過控制輸入激勵(lì)的變量、增加錯(cuò)誤注入信息,以保證系統(tǒng)在錯(cuò)誤狀態(tài)下做出正確反映。
在越來越高的抽象層次上進(jìn)行驗(yàn)證是當(dāng)前驗(yàn)證方法學(xué)的主要趨勢(shì)。通過構(gòu)建基于OVM層次化IP驗(yàn)證平臺(tái),驗(yàn)證了基帶SoC芯片DMA IP的所有功能,并達(dá)到100%的功能驗(yàn)證覆蓋率。采用OVM的驗(yàn)證方法僅需對(duì)層次化架構(gòu)中的組件進(jìn)行擴(kuò)展或重用,大大提高了SoC芯片的驗(yàn)證效率,從而縮短了整個(gè)項(xiàng)目的研發(fā)周期。目前該項(xiàng)目已流片成功。