專利名稱:基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及片上系統(tǒng),尤其涉及基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證方法及系統(tǒng)。
背景技術(shù):
基于斷言的驗(yàn)證方法學(xué)是片上系統(tǒng)(SoC)功能驗(yàn)證的一個(gè)有效地方法,其主要優(yōu)點(diǎn)是提高了 SoC設(shè)計(jì)驗(yàn)證的可觀察性和可控制性。
斷言可以比較容易地發(fā)現(xiàn)潛在電路設(shè)計(jì)的內(nèi)部錯(cuò)誤,為SoC設(shè)計(jì)驗(yàn)證提供了良好的可觀察性。傳統(tǒng)的驗(yàn)證方法是輸入激勵(lì)到待驗(yàn)證設(shè)計(jì)(DUV),在輸出端口檢查信號的正確性。然而,激勵(lì)觸發(fā)的內(nèi)部錯(cuò)誤,有可能無法傳遞到輸出端口。這樣,就無法檢查出此錯(cuò)誤。 如果在驗(yàn)證代碼中嵌入斷言,就可以在更接近產(chǎn)生錯(cuò)誤的地方將其檢測出來。
斷言可以對一個(gè)給定輸入的設(shè)計(jì)期望行為進(jìn)行精確的描述,從而可以更方便地描述輸入/輸出行為、總線協(xié)議以及設(shè)計(jì)中一些復(fù)雜的關(guān)系,提高了驗(yàn)證的可控制性?;跀嘌缘尿?yàn)證可以使用簡潔的語言結(jié)構(gòu)來建立精確的時(shí)序表達(dá)式。通過檢查這些表達(dá)式是否發(fā)生,可以很簡單地進(jìn)行功能覆蓋的檢查,并且這種覆蓋率分析針對跨多個(gè)時(shí)序周期的一個(gè)時(shí)間序列或者整個(gè)傳輸。斷言的覆蓋分析可以直接使用在協(xié)議檢查或者事件描述中用到的時(shí)序表達(dá)式,無需額外編寫覆蓋分析代碼,因此編碼會更加靈活、簡潔。
AHB總線協(xié)議是高級微控制器總線體系(AMBA)的一部分。AMBA總線系統(tǒng)和ARM 嵌入式微處理器是當(dāng)前SoC設(shè)計(jì)最流行的體系架構(gòu)。AMBA標(biāo)準(zhǔn)定義了三種不同的總線高級高性能總線(AHB)、高級系統(tǒng)總線(ASB)和高級外設(shè)總線(APB)。其中,AHB是用于高性能、高時(shí)鐘頻率的系統(tǒng)模塊,其擔(dān)當(dāng)高性能系統(tǒng)的中樞總線。AHB支持處理器,片上存儲器, 片外存儲器以及低功耗外設(shè)宏功能單元之間的有效連接。
在SoC設(shè)計(jì)中,會用到大量的IP,如圖1中的直接內(nèi)存訪問(DMA)、通用異步接收 /發(fā)送裝置(UART)、定時(shí)器(Timer),鍵盤(Keypad),通用輸入輸出(GPIO)等。為節(jié)省研發(fā)成本和時(shí)間,可以采用免費(fèi)的開源IP核。OpenCores便提供了大量有用的基于WISHBONE總線系統(tǒng)的開源IP核。
WISHBONE是OpenCores建議的片上總線標(biāo)準(zhǔn),目前已有大量開源的IP核使用 WISHBONE總線作為互連標(biāo)準(zhǔn)。與其他片上總線相比,WisWxme總線結(jié)構(gòu)簡單,互連靈活,對用戶定制的支持良好,與其他片上總線的互連也較簡單,同樣有著廣泛的應(yīng)用前景。
如圖2所示,WISHBONE到AHB的轉(zhuǎn)換橋,即是兩種總線時(shí)序規(guī)范間的轉(zhuǎn)換。對 WISHBONE到AHB轉(zhuǎn)換橋的驗(yàn)證,實(shí)際上就是對其AHB端時(shí)序是否滿足總線協(xié)議規(guī)則的驗(yàn)證。 本發(fā)明充分利用SystemVerilog斷言和任務(wù),可以對總線協(xié)議規(guī)范進(jìn)行有效的驗(yàn)證。發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)中存在的上述問題,本發(fā)明提供了基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證方法及系統(tǒng)。
本發(fā)明提供了基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證方法,包括
步驟1,列舉AHB總線時(shí)序;
步驟2,根據(jù)AHB總線時(shí)序類型對AHB總線時(shí)序進(jìn)行屬性抽象;
步驟3,根據(jù)預(yù)設(shè)的條件對AHB總線時(shí)序?qū)傩杂肧ystemVerilog斷言描述,或者對 AHB總線時(shí)序?qū)傩杂肧ystemVerilog任務(wù)描述。
在一個(gè)示例中,步驟2中,AHB總線時(shí)序抽象為傳輸中插入等待周期,空閑傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng),從機(jī)分塊響應(yīng),流水操作,突發(fā)傳輸或復(fù)位。
在一個(gè)示例中,步驟3中,如果AHB總線時(shí)序?qū)傩詾閭鬏斨胁迦氲却芷冢臻e傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng)或從機(jī)分塊響應(yīng),則用SystemVerilog斷言描述; 如果AHB總線時(shí)序?qū)傩詾榱魉僮?,突發(fā)傳輸或復(fù)位,則用SystemVerilog任務(wù)描述。
在一個(gè)示例中,進(jìn)行覆蓋率統(tǒng)計(jì)
本發(fā)明提供了基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證系統(tǒng),包括
時(shí)序列舉模塊,用于列舉AHB總線時(shí)序;
屬性抽象模塊,用于根據(jù)AHB總線時(shí)序類型對AHB總線時(shí)序進(jìn)行屬性抽象;
驗(yàn)證模塊,用于根據(jù)預(yù)設(shè)的條件對AHB總線時(shí)序?qū)傩杂肧ystemVerilog斷言描述, 或者對AHB總線時(shí)序?qū)傩杂肧ystemVerilog任務(wù)描述。
在一個(gè)示例中,AHB總線時(shí)序抽象為傳輸中插入等待周期,空閑傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng),從機(jī)分塊響應(yīng),流水操作,突發(fā)傳輸或復(fù)位。
在一個(gè)示例中,如果AHB總線時(shí)序?qū)傩詾閭鬏斨胁迦氲却芷?,空閑傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng)或從機(jī)分塊響應(yīng),則用SystemVerilog斷言描述;如果AHB 總線時(shí)序?qū)傩詾榱魉僮?,突發(fā)傳輸或復(fù)位,則用SystemVerilog任務(wù)描述。
在一個(gè)示例中,還包括統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)覆蓋率。
本發(fā)明充分利用了斷言驗(yàn)證的優(yōu)點(diǎn),同時(shí)對SystemVerilog斷言(SVA)不易定義的部分屬性,利用SystemVerilog任務(wù)(SystemVerilog Task)作為補(bǔ)充,對其描述和驗(yàn)證, 兩者協(xié)同工作,各取所長,以最簡便方式,獲得較高的覆蓋率,達(dá)到良好的驗(yàn)證效果。
下面結(jié)合附圖來對本發(fā)明作進(jìn)一步詳細(xì)說明,其中
圖1是典型的SoC構(gòu)架;
圖2是WISHBONE到AHB轉(zhuǎn)換橋示意圖3是本發(fā)明的協(xié)同總線驗(yàn)證方法流程。
具體實(shí)施方式
如圖3所示,本發(fā)明的驗(yàn)證方法為根據(jù)AHB總線協(xié)議,列舉出其各種時(shí)序規(guī)范,并將其抽象為各種屬性,然后利用SVA和Task定義并描述出這些屬性,以實(shí)現(xiàn)對它們的監(jiān)測和驗(yàn)證,最后通過覆蓋率語句來實(shí)現(xiàn)覆蓋率檢查和分析。對于總線屬性的描述,因斷言在時(shí)序表達(dá)上的優(yōu)勢,優(yōu)先選用其描述。然而,對于跨時(shí)鐘周期信號值的定量分析,無法用簡潔的斷言語句表達(dá),則選用任務(wù)語句描述。即本方案充分發(fā)揮斷言和任務(wù)兩種工具協(xié)同作用之優(yōu)點(diǎn)。
AHB總線信號如下
權(quán)利要求
1.基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證方法,其特征在于,包括步驟1,列舉AHB總線時(shí)序;步驟2,根據(jù)AHB總線時(shí)序類型對AHB總線時(shí)序進(jìn)行屬性抽象;步驟3,根據(jù)預(yù)設(shè)的條件對AHB總線時(shí)序?qū)傩杂肧ystemVerilog斷言描述,或者對AHB 總線時(shí)序?qū)傩杂肧ystemVerilog任務(wù)描述。
2.如權(quán)利要求1所述的協(xié)同總線驗(yàn)證方法,其特征在于,步驟2中,AHB總線時(shí)序抽象為傳輸中插入等待周期,空閑傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng),從機(jī)分塊響應(yīng), 流水操作,突發(fā)傳輸或復(fù)位。
3.如權(quán)利要求1或2所述的協(xié)同總線驗(yàn)證方法,其特征在于,步驟3中,如果AHB總線時(shí)序?qū)傩詾閭鬏斨胁迦氲却芷冢臻e傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng)或從機(jī)分塊響應(yīng),則用SystemVerilog斷言描述;如果AHB總線時(shí)序?qū)傩詾榱魉僮?,突發(fā)傳輸或復(fù)位,則用SystemVerilog任務(wù)描述。
4.如權(quán)利要求1或2所述的協(xié)同總線驗(yàn)證方法,其特征在于,還包括步驟4,進(jìn)行覆蓋率統(tǒng)計(jì)。
5.基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證系統(tǒng),其特征在于,包括時(shí)序列舉模塊,用于列舉AHB總線時(shí)序;屬性抽象模塊,用于根據(jù)AHB總線時(shí)序類型對AHB總線時(shí)序進(jìn)行屬性抽象;驗(yàn)證模塊,用于根據(jù)預(yù)設(shè)的條件對AHB總線時(shí)序?qū)傩杂肧ystemVerilog斷言描述,或者對AHB總線時(shí)序?qū)傩杂肧ystemVerilog任務(wù)描述。
6.如權(quán)利要求5所述的協(xié)同總線驗(yàn)證系統(tǒng),其特征在于,AHB總線時(shí)序抽象為傳輸中插入等待周期,空閑傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng),從機(jī)分塊響應(yīng),流水操作,突發(fā)傳輸或復(fù)位。
7.如權(quán)利要求5或6所述的協(xié)同總線驗(yàn)證系統(tǒng),其特征在于,如果AHB總線時(shí)序?qū)傩詾閭鬏斨胁迦氲却芷?,空閑傳輸,忙傳輸,從機(jī)錯(cuò)誤響應(yīng),從機(jī)重試響應(yīng)或從機(jī)分塊響應(yīng), 則用SystemVerilog斷言描述;如果AHB總線時(shí)序?qū)傩詾榱魉僮?,突發(fā)傳輸或復(fù)位,則用 SystemVerilog 任務(wù)描述。
8.如權(quán)利要求5或6所述的協(xié)同總線驗(yàn)證系統(tǒng),其特征在于,還包括統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)覆蓋率。
全文摘要
本發(fā)明公開了基于SystemVerilog斷言和任務(wù)的協(xié)同總線驗(yàn)證方法及系統(tǒng)。該驗(yàn)證方法包括步驟1,列舉AHB總線時(shí)序;步驟2,根據(jù)AHB總線時(shí)序類型對AHB總線時(shí)序進(jìn)行屬性抽象;步驟3,根據(jù)預(yù)設(shè)的條件對AHB總線時(shí)序?qū)傩杂肧ystemVerilog斷言描述,或者對AHB總線時(shí)序?qū)傩杂萌蝿?wù)描述。本發(fā)明充分利用了斷言驗(yàn)證的優(yōu)點(diǎn),同時(shí)對SystemVerilog斷言不易定義的部分屬性,利用SystemVerilog任務(wù)作為補(bǔ)充,對其描述和驗(yàn)證,兩者協(xié)同工作,各取所長,以最簡便方式,獲得較高的覆蓋率,達(dá)到良好的驗(yàn)證效果。
文檔編號G06F11/26GK102495782SQ201110390469
公開日2012年6月13日 申請日期2011年11月30日 優(yōu)先權(quán)日2011年11月30日
發(fā)明者馮燕, 張挺, 陳嵐 申請人:中國科學(xué)院微電子研究所