本發(fā)明屬于集成電路設(shè)計驗證技術(shù)領(lǐng)域,具體涉及一種基于perl實現(xiàn)斷言自動插入rtl的方法。
背景技術(shù):
當(dāng)今超大規(guī)模集成電路復(fù)雜度高、規(guī)模大、層次多,驗證復(fù)雜度劇增,采用斷言方式的驗證也愈來愈多,但在實際應(yīng)用中,僅一個單一模塊可能用到的斷言監(jiān)視器可能就達(dá)幾十乃至百個之多,對于規(guī)模大的芯片,由設(shè)計人員手動在rtl代碼中插入斷言的方式,不僅會占用設(shè)計人員不少的時間和精力,而且手動操作更易出錯,同時,迭代過程對元素進(jìn)行刪增等操作會出現(xiàn)斷言錯誤,往往需要更多的精力進(jìn)行修改。此為現(xiàn)有技術(shù)的不足之處。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于,針對在設(shè)計中插入斷言的繁瑣以及花費時間長,不便于迭代的缺陷,提供設(shè)計一種基于perl實現(xiàn)斷言自動插入rtl的方法。
為了達(dá)到上述目的,本發(fā)明的技術(shù)方案為:
一種基于perl實現(xiàn)斷言自動插入rtl的方法,其特征在于,包括如下步驟:
步驟1:rtl設(shè)計代碼中插入相應(yīng)的代表相關(guān)斷言驗證的關(guān)鍵字,確定插入斷言的位置;
步驟2:從斷言庫中精確匹配插入關(guān)鍵字位置的斷言程序,使斷言庫和rtl設(shè)計代碼的有機(jī)結(jié)合,創(chuàng)建perl腳本;
步驟3:執(zhí)行perl腳本,實現(xiàn)向rtl代碼中插入斷言程序;
步驟4:將插入后的代碼寫回到rtl代碼文件中。
在進(jìn)行上述步驟1之前,根據(jù)功能驗證的配置參數(shù),命名關(guān)鍵字,確定統(tǒng)一風(fēng)格的關(guān)鍵字命名,并且關(guān)鍵字以庫的形式進(jìn)行管理;rtl編碼前把設(shè)計劃分為多個模塊,創(chuàng)建所有模塊所有需要插入的斷言,各斷言代碼中定義相應(yīng)的配置參數(shù)來完成功能的驗證,并以庫的形式進(jìn)行管理。
步驟3中,rtl設(shè)計完成后執(zhí)行perl腳本在關(guān)鍵字位置一鍵插入所有模塊的斷言。
優(yōu)選地,根據(jù)不同驗證點確定統(tǒng)一風(fēng)格的關(guān)鍵字命名,驗證點包括fifo、interface、存儲器、信號明確有時間限制的關(guān)系點。
優(yōu)選地,插入的關(guān)鍵字為flag_fifo。
斷言的產(chǎn)生過程包括:產(chǎn)生確認(rèn)集成電路設(shè)計中各模塊規(guī)格的設(shè)計數(shù)據(jù)或文檔,并將數(shù)據(jù)進(jìn)行存儲;分析設(shè)計數(shù)據(jù)產(chǎn)生用于驗證模塊規(guī)格的特性,并將特性轉(zhuǎn)換為斷言描述;關(guān)鍵詞庫通過關(guān)鍵詞匹配,驗證通過,建立對應(yīng)關(guān)系與斷言庫建立連接。
每個斷言只驗證一個條件。
為任何功能劃分模糊或邊角邏輯添加斷言驗證。
將分散在各層級各模塊中分散狀態(tài)的斷言以庫的形式統(tǒng)一管理;在rtl代碼設(shè)計過程中,只需要向代碼中插入提前命名好的關(guān)鍵字,代碼完成后可通過perl的文本精確處理能力,在關(guān)鍵字位置一鍵插入所有模塊的斷言。
本發(fā)明的有益效果在于,利用perl的強(qiáng)大文本處理能力,通過實現(xiàn)自動化插入的方式,降低出錯率,節(jié)省開發(fā)時間也便于迭代,迭代過程節(jié)省修改時間。
此外,本發(fā)明設(shè)計原理可靠,結(jié)構(gòu)簡單,具有非常廣泛的應(yīng)用前景。
由此可見,本發(fā)明與現(xiàn)有技術(shù)相比,具有突出的實質(zhì)性特點和顯著地進(jìn)步,其實施的有益效果也是顯而易見的。
附圖說明
圖1為本實施例提供的一種基于perl實現(xiàn)斷言自動插入rtl的方法中perl的結(jié)構(gòu)圖。
圖2為一種基于perl實現(xiàn)斷言自動插入rtl的方法中自動插入過程示圖。
具體實施方式
下面結(jié)合附圖并通過具體實施例對本發(fā)明進(jìn)行詳細(xì)闡述,以下實施例是對本發(fā)明的解釋,而本發(fā)明并不局限于以下實施方式。
如圖1所示,本實施例提供的一種基于perl實現(xiàn)斷言自動插入rtl的方法,包括如下步驟:
步驟1:rtl設(shè)計代碼中插入相應(yīng)的代表相關(guān)斷言驗證的關(guān)鍵字,確定插入斷言的位置;
步驟2:從斷言庫中精確匹配插入關(guān)鍵字位置的斷言程序,使斷言庫和rtl設(shè)計代碼的有機(jī)結(jié)合,創(chuàng)建perl腳本;
步驟3:執(zhí)行perl腳本,實現(xiàn)向rtl代碼中插入斷言程序;
步驟4:將插入后的代碼寫回到rtl代碼文件中。
在進(jìn)行上述步驟1之前,根據(jù)功能驗證的配置參數(shù),命名關(guān)鍵字,確定統(tǒng)一風(fēng)格的關(guān)鍵字命名,并且關(guān)鍵字以庫的形式進(jìn)行管理;rtl編碼前把設(shè)計劃分為多個模塊,創(chuàng)建所有模塊所有需要插入的斷言,各斷言代碼中定義相應(yīng)的配置參數(shù)來完成功能的驗證,并以庫的形式進(jìn)行管理。
步驟3中,rtl設(shè)計完成后執(zhí)行perl腳本在關(guān)鍵字位置一鍵插入所有模塊的斷言。
根據(jù)不同驗證點確定統(tǒng)一風(fēng)格的關(guān)鍵字命名,驗證點包括fifo、interface、存儲器、信號明確有時間限制的關(guān)系點。
在rtl代碼設(shè)計過程中,插入關(guān)鍵字flag_fifo,編碼完成后,執(zhí)行perl腳本,根據(jù)關(guān)鍵詞庫和斷言庫的連接,從斷言庫中精確匹配應(yīng)該插入flag_fifo位置的斷言程序,將插入后的代碼寫回到rtl代碼文件中,如圖2所示。
以上公開的僅為本發(fā)明的優(yōu)選實施方式,但本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的沒有創(chuàng)造性的變化,以及在不脫離本發(fā)明原理前提下所作的若干改進(jìn)和潤飾,都應(yīng)落在本發(fā)明的保護(hù)范圍內(nèi)。