一種衛(wèi)星通信頻偏驗(yàn)證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于專用集成電路驗(yàn)證技術(shù)領(lǐng)域,涉及一種衛(wèi)星通信頻偏驗(yàn)證方法。
【背景技術(shù)】
[0002]ASIC芯片開發(fā)過程中,功能驗(yàn)證所需要的時(shí)間往往占到整個(gè)芯片開發(fā)時(shí)間的70%以上,往往設(shè)計(jì)的抽象級越高,設(shè)計(jì)就越簡單,但是同時(shí)產(chǎn)生的設(shè)計(jì)漏洞卻可能會更多,如果是架構(gòu)上的缺陷,那么對芯片的損害更是不可估計(jì)的,因此在流片之前的功能仿真驗(yàn)證對于整個(gè)驗(yàn)證過程就是重中之中重了。
[0003]當(dāng)前基于仿真的功能驗(yàn)證技術(shù)主要有以下三種:基于事務(wù)的驗(yàn)證技術(shù)、基于覆蓋率驅(qū)動的驗(yàn)證技術(shù)、基于斷言的驗(yàn)證技術(shù)?;谑聞?wù)的技術(shù)主要是通過事務(wù)驗(yàn)證模型TVM將事務(wù)級別的信息轉(zhuǎn)換成驗(yàn)證模塊所需要的信號級數(shù)字信息,并將其驅(qū)動到測試模塊中以完成對被測模塊的功能驗(yàn)證,它是以事務(wù)驗(yàn)證模型TVM(Transact1n Verificat1nModel)為核心的,事務(wù)驗(yàn)證模型通過將現(xiàn)有的事務(wù)級測試用例轉(zhuǎn)換成帶測試設(shè)計(jì)所需要的信號級信息,這種驗(yàn)證方法不需要制定具體的協(xié)議,只需要定義好信號的傳輸方向即可,具有很好的復(fù)用性,但是當(dāng)待測設(shè)計(jì)的功能不相同時(shí),需要的接口類型和數(shù)量就可能不相同,這時(shí)就需要多個(gè)不同的驗(yàn)證模型以滿足驗(yàn)證需求。在功能驗(yàn)證過程中,覆蓋率是衡量驗(yàn)證是否完備的一個(gè)重要標(biāo)準(zhǔn),并貫穿于整個(gè)驗(yàn)證過程?;诟采w率驅(qū)動的驗(yàn)證技術(shù)就是通過在驗(yàn)證過程中對待測模塊的功能覆蓋率和代碼覆蓋率信息進(jìn)行統(tǒng)計(jì)進(jìn)而來判斷待測模塊是否正確可行,并作為指導(dǎo)下一步的驗(yàn)證計(jì)劃制定中的一個(gè)重要指標(biāo)。但是這種驗(yàn)證技術(shù)需要定義功能覆蓋點(diǎn),而定義的覆蓋點(diǎn)是否完備就需要對待測模塊有一定的了解,隨著設(shè)計(jì)規(guī)模和復(fù)雜度的不斷提高,功能覆蓋點(diǎn)也越來越多,這就需要在驗(yàn)證中不斷的對覆蓋點(diǎn)進(jìn)行完善以滿足設(shè)計(jì)和驗(yàn)證的需求?;跀嘌缘尿?yàn)證主要是通過在待測設(shè)計(jì)中插入斷言來快速定位設(shè)計(jì)中的錯(cuò)誤的方法來提高驗(yàn)證的效率。但是這種驗(yàn)證技術(shù)對測試模塊的外部功能屬性的驗(yàn)證效率提高不大,只適用于驗(yàn)證測試模塊內(nèi)部的功能,并且該驗(yàn)證技術(shù)是基于時(shí)鐘驅(qū)動的,因此也不適合與時(shí)鐘無關(guān)的設(shè)計(jì)模塊的功能驗(yàn)證。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明的目的在于提供一種衛(wèi)星通信頻偏驗(yàn)證方法,該方法針對衛(wèi)星通信基帶芯片中的頻偏模塊,以目前集成電路驗(yàn)證中比較流行的OVM驗(yàn)證方法學(xué)為驗(yàn)證系統(tǒng)的基礎(chǔ)架構(gòu),將基于事務(wù)驗(yàn)證技術(shù)、覆蓋率驅(qū)動驗(yàn)證技術(shù)以及基于斷言的驗(yàn)證技術(shù)融入其中,并與C算法模型進(jìn)行聯(lián)合仿真,實(shí)現(xiàn)自動化對比和連續(xù)仿真,提高驗(yàn)證效率,縮短驗(yàn)證周期。
[0005]為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
[0006]一種衛(wèi)星通信頻偏驗(yàn)證方法,包括以下步驟:
[0007]步驟一:以O(shè)VM驗(yàn)證方法學(xué)中樹形結(jié)構(gòu)作為整個(gè)驗(yàn)證系統(tǒng)的基礎(chǔ)架構(gòu),搭建基本的驗(yàn)證系統(tǒng)框架;在OVM樹形結(jié)構(gòu)中,各OVC(Open Verificat1n Component)組件為樹中的節(jié)點(diǎn),這些 OVC 組件包括 Environment,Agent,Monitor,Driver,Sequencer,Reference,Scoreboard等,其中樹的節(jié)點(diǎn)又分為父節(jié)點(diǎn)和子節(jié)點(diǎn),在父節(jié)點(diǎn)所代表的OVC組件中可以聲明新建子節(jié)點(diǎn)所代表的OVC組件作為其內(nèi)部變量,通過這種層層控制的方法,實(shí)現(xiàn)驗(yàn)證組件中的協(xié)調(diào)工作。
[0008]步驟二:根據(jù)衛(wèi)星通信芯片中頻偏模塊的功能特征定義事務(wù)級數(shù)據(jù)項(xiàng)(item),這些事務(wù)級數(shù)據(jù)項(xiàng)通過System Verilog驗(yàn)證語言中的類來實(shí)現(xiàn),如果有特殊需求可以定義多個(gè)事務(wù)數(shù)據(jù)項(xiàng),以方便后續(xù)的驗(yàn)證工作,這里需要定義兩個(gè)事務(wù)數(shù)據(jù)項(xiàng),一個(gè)用于傳遞頻偏模塊的參數(shù)配置信息,一個(gè)用于后面自動化對比,即自檢所需要的輸出數(shù)據(jù)。
[0009]步驟三:根據(jù)頻偏模塊的端口信號,定義接口 interface,便于驗(yàn)證系統(tǒng)和待測設(shè)計(jì)之間的通信,減少信號連接錯(cuò)誤的可能性。
[0010]步驟四:由于DPI傳遞的變量需要兩個(gè)相匹配的定義,一個(gè)是System Verilog的,一個(gè)是C語言的,因此根據(jù)頻偏模塊端口信號,在不改變C算法的前提下,將C算法中的配置參數(shù)轉(zhuǎn)換成與System Verilog驗(yàn)證語言中對應(yīng)映射關(guān)系的數(shù)據(jù)類型,為后面的DPI調(diào)用做準(zhǔn)備。
[0011]步驟五:根據(jù)頻偏模塊功能特征,按照需求在Driver或者M(jìn)onitor中創(chuàng)建倉,定義覆蓋組和覆蓋點(diǎn),并實(shí)例化。
[0012]步驟六:設(shè)計(jì)整個(gè)驗(yàn)證系統(tǒng)的top層,在top層需要實(shí)現(xiàn)全局變量的定義,時(shí)鐘elk的產(chǎn)生,C算法的DPI聲明、驗(yàn)證系統(tǒng)和待測設(shè)計(jì)之間的接口例化、驗(yàn)證系統(tǒng)和待測設(shè)計(jì)之間的互連、待測設(shè)計(jì)的初始化工作以及驗(yàn)證系統(tǒng)的啟動。
[0013]步驟七:根據(jù)驗(yàn)證目標(biāo)添加測試用例,進(jìn)行定向和隨機(jī)測試。
[0014]進(jìn)一步,在步驟五中,如果有特定的時(shí)序需要監(jiān)督檢查,可增加斷言進(jìn)行檢測。
[0015]本發(fā)明的有益效果在于:與傳統(tǒng)的驗(yàn)證系統(tǒng)或者方法相比,本方法以O(shè)VM驗(yàn)證方法學(xué)中的樹形結(jié)構(gòu)為驗(yàn)證系統(tǒng)的基本架構(gòu),并融入當(dāng)前的一些主流的驗(yàn)證方法,包括基于事務(wù)的驗(yàn)證方法、基于覆蓋率驅(qū)動的驗(yàn)證方法以及基于斷言的驗(yàn)證方法等,實(shí)現(xiàn)了衛(wèi)星通信基帶芯片頻偏模塊的功能驗(yàn)證,提高了頻偏模塊的驗(yàn)證效率,并可以在衛(wèi)星通信基帶芯片的一次性流片的成功中發(fā)揮不可忽視的作用。
【附圖說明】
[0016]為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,本發(fā)明提供如下附圖進(jìn)行說明:
[0017]圖1為本發(fā)明中驗(yàn)證系統(tǒng)中的OVM樹形結(jié)構(gòu)圖;
[0018]圖2為本發(fā)明中驗(yàn)證系統(tǒng)架構(gòu)圖;
[0019]圖3為本發(fā)明中驗(yàn)證系統(tǒng)執(zhí)行流程圖。
【具體實(shí)施方式】
[0020]下面將結(jié)合附圖,對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)的描述。
[0021]圖1為本發(fā)明中驗(yàn)證系統(tǒng)中的OVM樹形結(jié)構(gòu)圖,如圖所示:
[0022]以O(shè)VM的樹形結(jié)構(gòu)的頻偏模塊驗(yàn)證系統(tǒng)的具有明晰的從屬關(guān)系,這對驗(yàn)證系統(tǒng)中的事務(wù)數(shù)據(jù)的傳遞的管理很重要,能夠合理的安排樹形結(jié)構(gòu)中作為節(jié)點(diǎn)的OVC組件之間的數(shù)據(jù)傳遞。這里的節(jié)點(diǎn)分為兩種,父節(jié)點(diǎn)和子節(jié)點(diǎn),在父節(jié)點(diǎn)中可以聲明一個(gè)或多個(gè)子節(jié)點(diǎn)的所代表的OVC組件并將其作為內(nèi)部變量,這樣通過層層遞進(jìn)的方法實(shí)現(xiàn)各OVC組件之間的協(xié)調(diào)工作,使整個(gè)驗(yàn)證系統(tǒng)能夠合理有效的運(yùn)行。OVM樹形結(jié)構(gòu)中的OVC組件的具體構(gòu)建過程如下:
[0023]1.由圖1可知在整個(gè)OVM樹形結(jié)構(gòu)圖中,Env是最頂層并將所有的OVC組件整合到一起,在Env中,首先需要對子節(jié)點(diǎn)進(jìn)行聲明,這些子字節(jié)點(diǎn)所代表的OVC組件包括Agent、Reference、Scoreboard,由于驗(yàn)證系統(tǒng)中需要對待測的頻偏模塊進(jìn)行一些參數(shù)的配置,并且頻偏驗(yàn)證系統(tǒng)運(yùn)行時(shí)需要對頻偏模塊運(yùn)行結(jié)果進(jìn)行監(jiān)督檢測,所以需要兩個(gè)不同agent。其次在Env中需要聲明OVM庫所自帶的FIFO,并通過FIFO將這些OVC組件連接起來,連接方式通過OVM的所特有的port進(jìn)行的,使它們能夠進(jìn)行正常的事務(wù)級通信。
[0024]2.當(dāng)Env構(gòu)建完成后,需要對Agent進(jìn)行模式配置,在Agent中需要對Driver、Sequencer、Monitor以及事務(wù)級數(shù)據(jù)傳遞所要的port進(jìn)行定義聲明,當(dāng)驗(yàn)證系統(tǒng)需要產(chǎn)生或發(fā)送頻偏模塊啟動運(yùn)行所需的數(shù)據(jù)時(shí),將Agent配置為ACTIVE模式,在該模式下完成對Sequencer和Driver的例化,此時(shí)Monitor處于非工作狀態(tài),當(dāng)需要捕獲頻偏模塊的輸出結(jié)果時(shí),將Agent配置為PASSIVE模式,在該模式下會實(shí)例化Monitor模塊,為驗(yàn)證系統(tǒng)運(yùn)時(shí)行監(jiān)測待測的頻偏模塊的輸出結(jié)果做鋪墊。在這完成這些子節(jié)點(diǎn)的實(shí)例化工作后,就需要根據(jù)所配置的Agent的模式,將其連接到Interface接口上,使驗(yàn)證系統(tǒng)能夠與頻偏模塊進(jìn)行正常數(shù)據(jù)的交互。
[0025]3.在Agent為ACTIVE的模式時(shí),需要對待測的頻偏模塊進(jìn)行一些參數(shù)的配置以及數(shù)據(jù)的初始化工作,這些都是通過Driver進(jìn)行的。因此,在Driver中需要將OVC組件中傳遞的事務(wù)級信息轉(zhuǎn)換成頻偏模塊的所需要的電平或者脈沖信號,這些電平或者脈沖信號需要滿足待測的頻偏模塊的時(shí)序要求,才能夠正常的驅(qū)動待測的頻偏模塊,這部分可以通過一些task去實(shí)現(xiàn)。同時(shí),在該組件中可以加入一些功能覆蓋組對輸入到頻偏模塊的參數(shù)和數(shù)據(jù)進(jìn)行覆蓋點(diǎn)統(tǒng)計(jì)。
[0026]4.整個(gè)驗(yàn)證系統(tǒng)所需要的參數(shù)配置數(shù)據(jù)和計(jì)算數(shù)據(jù)都是通過Sequence產(chǎn)生的,當(dāng)Driver需要數(shù)據(jù)時(shí),會向Sequencer發(fā)送事務(wù)級數(shù)據(jù)請求,Sequencer收到后就會通過驅(qū)動Sequence產(chǎn)生數(shù)據(jù),產(chǎn)生這