使用軟約束提高uvm驗(yàn)證平臺(tái)可復(fù)用性的方法
【專利摘要】本發(fā)明公開了一種使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法,該方法步驟如下:首先對(duì)測(cè)試空間進(jìn)行劃分,劃分成可執(zhí)行空間、合法空間和典型空間三部分,可執(zhí)行空間是整個(gè)測(cè)試空間的一部分,只有在可執(zhí)行空間中的測(cè)試用例,才能有效的被施加給被測(cè)對(duì)象,并得到響應(yīng),但響應(yīng)可能是錯(cuò)誤響應(yīng);合法空間內(nèi)的被測(cè)對(duì)象能得到正確響應(yīng);典型空間為被測(cè)對(duì)象的工作區(qū)域;定義可執(zhí)行空間的約束為硬約束;定義合法空間和典型空間的約束時(shí),可能在被調(diào)用時(shí)被違反的約束改變?yōu)檐浖s束,不可能被違反的約束保持硬約束。本發(fā)明對(duì)于復(fù)雜的驗(yàn)證環(huán)境,能直接成功發(fā)出想要激勵(lì),會(huì)大大縮短閱讀驗(yàn)證部件文檔代碼的時(shí)間以及編寫激勵(lì)的時(shí)間,極大的提高驗(yàn)證效率。
【專利說明】使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及芯片邏輯驗(yàn)證領(lǐng)域,具體地說是一種使用軟約束提高UVM驗(yàn)證平臺(tái)可 復(fù)用性的方法。
【背景技術(shù)】
[0002] UVM是芯片驗(yàn)證業(yè)界最新研發(fā)的一種驗(yàn)證方法學(xué)。工程師用它可創(chuàng)建堅(jiān)實(shí)、可重 用、具互操作性的驗(yàn)證組件和驗(yàn)證平臺(tái)。UVM提供基于SystemVerilog語言開發(fā)的一套庫函 數(shù),工程師通過調(diào)用庫可以省去自己從零開始開發(fā)驗(yàn)證環(huán)境的麻煩。
[0003] UVM庫使用的SystemVerilog語言在原有Verilog語言的基礎(chǔ)上發(fā)展起來的,它在 兼容原有語法的同時(shí),增加了約束隨機(jī)激勵(lì),功能覆蓋率檢查,面向?qū)ο缶幊?,斷言等屬性?能夠更好的滿足復(fù)雜電路驗(yàn)證的需求。其中對(duì)于產(chǎn)生測(cè)試激勵(lì)最重要的機(jī)制就是對(duì)隨機(jī)激 勵(lì)的約束。受約束的隨機(jī)激勵(lì)不同于以往驗(yàn)證測(cè)試所用的特定激勵(lì)。特定激勵(lì)是由人工指 定的一串特定的序列,而受約束的隨機(jī)激勵(lì)是一串滿足某種要求的序列的集合中任意挑選 出的序列。比如我們要發(fā)送一個(gè)長(zhǎng)度為2字節(jié)的數(shù)據(jù)包,其中數(shù)據(jù)是Oxl、0x2,這就是一個(gè) 特定激勵(lì)。如果要發(fā)送長(zhǎng)度在2到5中間,每個(gè)數(shù)據(jù)都不為0的數(shù)據(jù)包,那么這個(gè)包就有很 多中可能,這就是一個(gè)受控隨機(jī)激勵(lì)。通過發(fā)送受控隨機(jī)激勵(lì)給被測(cè)對(duì)象,能夠測(cè)到很多通 過特定激勵(lì)無法覆蓋到的情況,增加錯(cuò)誤被檢測(cè)出的概率。
[0004] 對(duì)激勵(lì)的約束,可以在驗(yàn)證組件的各個(gè)層次進(jìn)行添加,比如在uvm_sequece_item, 各級(jí)sequence,virtual sequence,以及各個(gè)配置體config中。在不同層次添加對(duì)激勵(lì)的 約束,方便了驗(yàn)證單元在不同項(xiàng)目中,以及在同一項(xiàng)目的不同驗(yàn)證階段中進(jìn)行復(fù)用,但是這 也產(chǎn)生了一些問題。最明顯的問題就是這些激勵(lì)可能是由不同人員添加,相互直接可能是 矛盾的,導(dǎo)致激勵(lì)無法正確產(chǎn)生。
[0005] 為了解決這個(gè)問題,通常有兩種做法。第一種做法是通過重載機(jī)制重新定義同名 的約束模塊,另一種方法是用constraint mode開關(guān)對(duì)已有的約束進(jìn)行關(guān)閉。
[0006] 以上方法固然是可行的,但是需要為此完全理解與一個(gè)激勵(lì)產(chǎn)生相關(guān)的所有約 束,并分析如何操作,這對(duì)于復(fù)雜的驗(yàn)證平臺(tái)可能是耗費(fèi)很多時(shí)間的,而且我們這樣做出的 激勵(lì),基本沒有復(fù)用性可言。因此我們需要開發(fā)另外一種機(jī)制,能完成同樣的任務(wù),但是復(fù) 用性與便捷性能夠得到一些提高。
[0007]
【發(fā)明內(nèi)容】
本發(fā)明的技術(shù)任務(wù)是提供一種使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法。
[0008] 本發(fā)明的技術(shù)任務(wù)是按以下方式實(shí)現(xiàn)的,該方法步驟如下: 首先對(duì)測(cè)試空間進(jìn)行劃分,劃分成可執(zhí)行空間、合法空間和典型空間三部分,可執(zhí)行空 間是整個(gè)測(cè)試空間的一部分,只有在可執(zhí)行空間中的測(cè)試用例,才能有效的被施加給被測(cè) 對(duì)象,并得到響應(yīng),但響應(yīng)可能是錯(cuò)誤響應(yīng);合法空間內(nèi)的被測(cè)對(duì)象能得到正確響應(yīng);典型 空間為被測(cè)對(duì)象的工作區(qū)域; 定義可執(zhí)行空間的約束為硬約束;定義合法空間和典型空間的約束時(shí),可能在被調(diào)用 時(shí)被違反的約束改變?yōu)檐浖s束,不可能被違反的約束保持硬約束。
[0009] 所述的軟約束有多個(gè)共同存在時(shí),若他們能同時(shí)被滿足,則同時(shí)使用他們;若每一 條都不能被滿足,則全部丟棄不用。
[0010] 所述的軟約束設(shè)置有優(yōu)先級(jí)原則,若一條優(yōu)先級(jí)低的軟約束導(dǎo)致另一條優(yōu)先級(jí) 高的軟約束無法滿足,則丟棄那條優(yōu)先級(jí)低的軟約束。
[0011] 所述的軟約束的優(yōu)先級(jí)原則如下: 1) 寫在類中后邊的約束優(yōu)先級(jí)高于前面; 2) 定義在結(jié)構(gòu)外的約束優(yōu)先級(jí)高于里面; 3) 派生類中約束優(yōu)先級(jí)高于父類; 4) 后例化的實(shí)體中約束優(yōu)先級(jí)高于前面。
[0012] 本發(fā)明的使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法,對(duì)于復(fù)雜的驗(yàn)證環(huán)境, 在編寫最后的corner測(cè)試中無需知道底層驗(yàn)證部件中的具體約束,就能直接成功發(fā)出想 要激勵(lì),會(huì)大大縮短閱讀驗(yàn)證部件文檔代碼的時(shí)間以及編寫激勵(lì)的時(shí)間,極大的提高驗(yàn)證 效率,也方便其他人員使用構(gòu)造的驗(yàn)證用例。
【具體實(shí)施方式】
[0013] 實(shí)施例1 : 首先對(duì)測(cè)試空間進(jìn)行劃分,劃分成可執(zhí)行空間、合法空間和典型空間三部分,可執(zhí)行空 間是整個(gè)測(cè)試空間的一部分,只有在可執(zhí)行空間中的測(cè)試用例,才能有效的被施加給被測(cè) 對(duì)象,并得到響應(yīng),但響應(yīng)可能是錯(cuò)誤響應(yīng);合法空間內(nèi)的被測(cè)對(duì)象能得到正確響應(yīng);典型 空間為被測(cè)對(duì)象的工作區(qū)域。
[0014] 定義可執(zhí)行空間的約束為硬約束;定義合法空間和典型空間的約束時(shí),可能在被 調(diào)用時(shí)被違反的約束改變?yōu)檐浖s束,不可能被違反的約束保持硬約束。軟約束有多個(gè)共同 存在時(shí),若他們能同時(shí)被滿足,則同時(shí)使用他們;若每一條都不能被滿足,則全部丟棄不用。
[0015] 實(shí)施例2: 首先對(duì)測(cè)試空間進(jìn)行劃分,劃分成可執(zhí)行空間、合法空間和典型空間三部分,可執(zhí)行空 間是整個(gè)測(cè)試空間的一部分,只有在可執(zhí)行空間中的測(cè)試用例,才能有效的被施加給被測(cè) 對(duì)象,并得到響應(yīng),但響應(yīng)可能是錯(cuò)誤響應(yīng);合法空間內(nèi)的被測(cè)對(duì)象能得到正確響應(yīng);典型 空間為被測(cè)對(duì)象的工作區(qū)域。
[0016] 定義可執(zhí)行空間的約束為硬約束;定義合法空間和典型空間的約束時(shí),可能在被 調(diào)用時(shí)被違反的約束改變?yōu)檐浖s束,不可能被違反的約束保持硬約束。軟約束有多個(gè)共同 存在時(shí),若他們能同時(shí)被滿足,則同時(shí)使用他們;若每一條都不能被滿足,則全部丟棄不用。 軟約束設(shè)置有優(yōu)先級(jí)原則,軟約束的優(yōu)先級(jí)原則如下: 1) 寫在類中后邊的約束優(yōu)先級(jí)高于前面; 2) 定義在結(jié)構(gòu)外的約束優(yōu)先級(jí)高于里面; 3) 派生類中約束優(yōu)先級(jí)高于父類; 4) 后例化的實(shí)體中約束優(yōu)先級(jí)高于前面。
[0017] 若一條優(yōu)先級(jí)低的軟約束導(dǎo)致另一條優(yōu)先級(jí)高的軟約束無法滿足,則丟棄那條優(yōu) 先級(jí)低的軟約束。
[0018] 代碼示例: 1) 使用重載機(jī)制修改沖突約束的代碼示例:
【權(quán)利要求】
1. 使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法,其特征在于,該方法步驟如下: 首先對(duì)測(cè)試空間進(jìn)行劃分,劃分成可執(zhí)行空間、合法空間和典型空間H部分,可執(zhí)行空 間是整個(gè)測(cè)試空間的一部分,只有在可執(zhí)行空間中的測(cè)試用例,才能有效的被施加給被測(cè) 對(duì)象,并得到響應(yīng),但響應(yīng)可能是錯(cuò)誤響應(yīng);合法空間內(nèi)的被測(cè)對(duì)象能得到正確響應(yīng);典型 空間為被測(cè)對(duì)象的工作區(qū)域; 定義可執(zhí)行空間的約束為硬約束;定義合法空間和典型空間的約束時(shí),可能在被調(diào)用 時(shí)被違反的約束改變?yōu)檐浖s束,不可能被違反的約束保持硬約束。
2. 根據(jù)權(quán)利要求1所述的使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法,其特征在于, 所述的軟約束有多個(gè)共同存在時(shí),若他們能同時(shí)被滿足,則同時(shí)使用他們;若每一條都不能 被滿足,則全部丟棄不用。
3. 根據(jù)權(quán)利要求2所述的使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法,其特征在于, 所述的軟約束設(shè)置有優(yōu)先級(jí)原則,若一條優(yōu)先級(jí)低的軟約束導(dǎo)致另一條優(yōu)先級(jí)高的軟約束 無法滿足,則丟棄那條優(yōu)先級(jí)低的軟約束。
4. 根據(jù)權(quán)利要求3所述的使用軟約束提高UVM驗(yàn)證平臺(tái)可復(fù)用性的方法,其特征在于, 所述的軟約束的優(yōu)先級(jí)原則如下: 1) 寫在類中后邊的約束優(yōu)先級(jí)高于前面; 2) 定義在結(jié)構(gòu)外的約束優(yōu)先級(jí)高于里面; 3) 派生類中約束優(yōu)先級(jí)高于父類; 4) 后例化的實(shí)體中約束優(yōu)先級(jí)高于前面。
【文檔編號(hào)】G06F17/50GK104462707SQ201410795037
【公開日】2015年3月25日 申請(qǐng)日期:2014年12月19日 優(yōu)先權(quán)日:2014年12月19日
【發(fā)明者】耿介, 于治樓, 畢研山 申請(qǐng)人:浪潮集團(tuán)有限公司