亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法和設(shè)備的制作方法

文檔序號(hào):6433062閱讀:359來(lái)源:國(guó)知局
專利名稱:用于計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及集成電路設(shè)計(jì)技術(shù),更具體地說(shuō),涉及用于計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法和設(shè)備。

背景技術(shù)
在集成電路設(shè)計(jì)過程中,驗(yàn)證(verification)是非常重要的一個(gè)步驟。在驗(yàn)證步驟中,向集成電路模型輸入各種激勵(lì)信號(hào),通過比較集成電路模型的實(shí)際輸出信號(hào)和期望的輸出信號(hào)是否相符,來(lái)檢查集成電路模型的邏輯正確性。例如,在驗(yàn)證具有兩個(gè)輸入端的 與門模型時(shí),依次向該模型輸入四種可能的激勵(lì)信號(hào),檢查各激勵(lì)信號(hào)下與門模型的輸出是否正確,從而確定該與門模型的邏輯是否正確。集成電路模型需要經(jīng)過驗(yàn)證以后才能用來(lái)作為制造實(shí)際集成電路的依據(jù)。驗(yàn)證步驟的目的是確保集成電路模型在所有可能的激勵(lì)的情況下都能夠按照設(shè)計(jì)正確地工作。理論上講,通過窮舉各種可能的激勵(lì)信號(hào)可以實(shí)現(xiàn)完全的驗(yàn)證,從而確保集成電路模型的正確性。但是這種方式效率太低,從而隨著集成電路的復(fù)雜度越來(lái)越高而變得越來(lái)越不實(shí)際。在實(shí)際的驗(yàn)證步驟中所采用的激勵(lì)信號(hào)是所有可能的激勵(lì)信號(hào)的子集。所述子集可以是人工地選取的,這需要驗(yàn)證人員有非常豐富的經(jīng)驗(yàn)。所述子集也可以通過根據(jù)約束條件進(jìn)行隨機(jī)測(cè)試?yán)啥x取。但無(wú)論采用哪種方法,都需要考察驗(yàn)證的完備性,即考察采用所述子集進(jìn)行驗(yàn)證是否覆蓋了各種可能性。通常用覆蓋率(coverage)來(lái)表示所述完備性。傳統(tǒng)的覆蓋率計(jì)算方法基于寄存器傳送級(jí)(RTL, Register Transfer Level)單元。例如,將已經(jīng)驗(yàn)證過的RTL單元占集成電路模型中總RTL單元的比例作為所述覆蓋率。然而,孤立的RTL單元能夠正確工作并不代表由這些RTL單元組成的集成電路模型能夠正確地工作。因此,需要一種改進(jìn)的覆蓋率計(jì)算方法。


發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了用于計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法和設(shè)備。根據(jù)本發(fā)明實(shí)施例的一種計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法,包括獲取待驗(yàn)證集成電路模型的邏輯結(jié)構(gòu);根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑;以及計(jì)算驗(yàn)證對(duì)所述信號(hào)路徑的覆蓋率。根據(jù)本發(fā)明實(shí)施例的一種計(jì)算集成電路模型的驗(yàn)證覆蓋率的設(shè)備,包括獲取裝置,配置為獲取待驗(yàn)證集成電路模型的邏輯結(jié)構(gòu);搜索裝置,配置為根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑;以及計(jì)算裝置,配置為計(jì)算驗(yàn)證對(duì)所述
信號(hào)路徑的覆蓋率。根據(jù)本發(fā)明實(shí)施例提供的技術(shù)方案,可以得到基于信號(hào)路徑的驗(yàn)證覆蓋率。所述基于信號(hào)路徑的驗(yàn)證覆蓋率可以與基于RTL單元的驗(yàn)證覆蓋率結(jié)合,更加準(zhǔn)確地提供有關(guān)驗(yàn)證完備性的數(shù)據(jù)。



圖I是適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖。圖2是根據(jù)本發(fā)明實(shí)施例的計(jì)算驗(yàn)證覆蓋率的方法的流程圖。圖3是如何搜索并記錄信號(hào)路徑的流程圖。圖4A和圖4B示出正向信號(hào)追蹤和反向信號(hào)追蹤。圖5是一個(gè)組合邏輯電路。圖6是根據(jù)本發(fā)明實(shí)施例的計(jì)算驗(yàn)證覆蓋率的裝置的方框圖。 ■
具體實(shí)施例方式所屬技術(shù)領(lǐng)域的技術(shù)人員知道,本發(fā)明的多個(gè)方面可以體現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明的多個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即,可以是完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等)、或者本文一般稱為“電路”、“模塊”或“系統(tǒng)”的軟件部分與硬件部分的組合。此外,本發(fā)明的多個(gè)方面還可以采取體現(xiàn)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可用的程序碼??梢允褂靡粋€(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任何組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于一電的、磁的、光的、電磁的、紅外線的、或半導(dǎo)體的系統(tǒng)、裝置、器件或任何以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括以下有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPR0M或閃存)、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任何合適的組合。在本文件的語(yǔ)境中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形的介質(zhì),該程序被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可包括在基帶中或者作為載波一部分傳播的、其中體現(xiàn)計(jì)算機(jī)可讀的程序碼的傳播的數(shù)據(jù)信號(hào)。這種傳播的信號(hào)可以采用多種形式,包括一但不限于一電磁信號(hào)、光信號(hào)或任何以上合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以是并非為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)、但是能發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序的任何計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、電線、光纜、RF等等,或者任何合適的上述組
口 ο計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、電線、光纜、RF等等,或者任何合適的上述組合。用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序碼,可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任何組合來(lái)編寫,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言-諸如Java、Smalltalk、C++之類,還包括常規(guī)的過程式程序設(shè)計(jì)語(yǔ)言-諸如” C”程序設(shè)計(jì)語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序碼可以完全地在用戶的計(jì)算上執(zhí)行、部分地在用戶的計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶的計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后一種情形中,遠(yuǎn)程計(jì)算機(jī)可以通過任何種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶的計(jì)算機(jī),或者,可以(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過因特網(wǎng))連接到外部計(jì)算機(jī)。以下參照按照本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明的多個(gè)方面。要明白的是,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能指令計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means)的制造品。·也可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,使得在計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令就提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。下面參照附圖,結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行描述。這樣的描述僅僅出于說(shuō)明目的,而不意圖對(duì)本發(fā)明的范圍進(jìn)行限制。圖I示出了適于用來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施方式的示例性計(jì)算系統(tǒng)100的框圖。如所示,計(jì)算機(jī)系統(tǒng)100可以包括CPU(中央處理單元)101、RAM(隨機(jī)存取存儲(chǔ)器)102、R0M(只讀存儲(chǔ)器)103、系統(tǒng)總線104、硬盤控制器105、鍵盤控制器106、串行接口控制器107、并行接口控制器108、顯示控制器109、硬盤110、鍵盤111、串行外部設(shè)備112、并行外部設(shè)備113和顯示器114。在這些設(shè)備中,與系統(tǒng)總線104耦合的有CPU 10URAM 102, ROM 103、硬盤控制器105、鍵盤控制器106、串行控制器107、并行控制器108和顯示控制器109。硬盤110與硬盤控制器105耦合,鍵盤111與鍵盤控制器106耦合,串行外部設(shè)備112與串行接口控制器107耦合,并行外部設(shè)備113與并行接口控制器108耦合,以及顯示器114與顯示控制器109耦合。應(yīng)當(dāng)理解,圖I所述的結(jié)構(gòu)框圖僅僅為了示例的目的而示出的,而不是對(duì)本發(fā)明范圍的限制。在某些情況下,可以根據(jù)具體情況而增加或者減少某些設(shè)備。如前所述,孤立的RTL單元能夠正確工作并不代表由這些RTL單元組成的集成電路模型能夠正確地工作。比如說(shuō),設(shè)計(jì)人員在設(shè)計(jì)集成電路模型中時(shí)可能漏掉了一個(gè)RTL單元。這個(gè)RTL單元由于并不存在于集成電路模型中,因此無(wú)所謂“被驗(yàn)證”。但是由于漏掉了該RTL單元,可能導(dǎo)致集成電路模型整體不能按照設(shè)計(jì)正確地工作。又比如說(shuō),假定兩個(gè)有限狀態(tài)機(jī)(Finite State Machine) RTL單元本身均能正確工作。如果其中一個(gè)的輸出可能是另外一個(gè)的輸入,那么其連接關(guān)系正確與否就影響這兩個(gè)RTL單元作為一個(gè)整體是否能夠正確地工作,進(jìn)而影響到受這兩個(gè)有限狀態(tài)驅(qū)動(dòng)的其他RTL單元的工作準(zhǔn)確性。圖2是根據(jù)本發(fā)明實(shí)施例的計(jì)算驗(yàn)證覆蓋率的方法的流程圖。步驟201,獲取待驗(yàn)證集成電路模型(DUT, Design Under Test)的邏輯結(jié)構(gòu)。此處提取的邏輯結(jié)構(gòu)是以RTL單元為基本單位的。從集成電路模型中提取RTL單元是本領(lǐng)域的常用技術(shù),例如許多綜合(synthesis)工具都可以做到,在此不再贅述。在提取了 RTL單元之后,也很容易得到各RTL單元與其他RTL單元之間的連接關(guān)系,從而獲取所述邏輯結(jié)構(gòu)??梢杂糜邢驁D來(lái)表示所述邏輯結(jié)構(gòu)。對(duì)以RTL單元為基本單位的集成電路設(shè)計(jì)模型而言,其對(duì)應(yīng)的有向圖中的各個(gè)節(jié)點(diǎn)表示RTL單元,節(jié)點(diǎn)之間的有向邊表示RTL單元之間信號(hào)輸入或輸出。根據(jù)本發(fā)明的一個(gè)實(shí)施例,連接RTL單元的線路本身也可以看作是有向圖中的節(jié)點(diǎn)而不是有向邊。通過為各個(gè)節(jié)點(diǎn)設(shè)置屬性,使得各個(gè)節(jié)點(diǎn)可以表示不同的RTL單元或線路。本領(lǐng)域技術(shù)人員都知道如何通過鄰接矩陣、鄰接表等數(shù)據(jù)結(jié)構(gòu)來(lái)表示一個(gè)有向圖,從而表示一個(gè)實(shí)際的邏輯結(jié)構(gòu)。當(dāng)然,本領(lǐng)域技術(shù)人員還可以采用其他很多手段來(lái)表示一個(gè)集成電路模型的邏輯結(jié)構(gòu)。因此,獲取一個(gè)集成電路模型的邏輯結(jié)構(gòu),就是獲取表示該集成電路模型的數(shù)據(jù)結(jié)構(gòu)的集合。在后面的描述中,由于RTL單元和有向圖節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系,因此其具有相同 的指代對(duì)象。步驟202,根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑。在步驟201中已經(jīng)得到了集成電路模型中的RTL單元以及RTL單元之間的連接關(guān)系。根據(jù)這些信息,可以得到集成電路模型中的信號(hào)路徑。具體步驟在下面結(jié)合其他附圖進(jìn)行更為詳細(xì)的說(shuō)明。對(duì)集成電路模型中的信號(hào)路徑進(jìn)行搜索,其基本思想是分析電路結(jié)構(gòu)并且進(jìn)行窮舉式搜索。由于電路結(jié)構(gòu)本質(zhì)上是一個(gè)有向圖,因此窮舉式搜索必然是閉合的。也就是說(shuō),窮舉式搜索必然能夠找到電路結(jié)構(gòu)中的所有信號(hào)路徑。在這一步驟中得到的信號(hào)路徑可以用特定的表達(dá)方式進(jìn)行記錄。一般來(lái)說(shuō),根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以采用通用覆蓋率代碼(Generic Coverage Code)來(lái)記錄所述信號(hào)路徑。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,可以將所述通用覆蓋率代碼進(jìn)一步轉(zhuǎn)換成其他用于驗(yàn)證的語(yǔ)言,例如SVA/PSL/OVA/Wrapper等,以記錄所述信號(hào)路徑。進(jìn)而,對(duì)所述信號(hào)路徑也可以根據(jù)某些約束條件進(jìn)行篩選。比如,某分支實(shí)際上是不可能采取的。在記錄時(shí)可以排除包含該分支的信號(hào)路徑。步驟203,計(jì)算驗(yàn)證對(duì)所述彳目號(hào)路徑的覆蓋率。在開始驗(yàn)證后,向集成電路模型輸入激勵(lì)信號(hào)??梢院苋菀椎嘏袛喑鲞@些激勵(lì)信號(hào)使得那些信號(hào)路徑被執(zhí)行過??梢砸员粓?zhí)行過的信號(hào)路徑占所有信號(hào)路徑的比例作為所述覆蓋率。如果在步驟202中對(duì)信號(hào)路徑進(jìn)行了篩選,那么也可以以被執(zhí)行過的信號(hào)路徑占通過篩選余下的信號(hào)路徑的比例作為所述覆蓋率。在得到覆蓋率以后,就可以作為評(píng)價(jià)驗(yàn)證效果的參考。如果覆蓋率低于某個(gè)閾值,可能需要重新生成激勵(lì)信號(hào),然后用重新生成的激勵(lì)信號(hào)再次進(jìn)行驗(yàn)證,并且重新計(jì)算驗(yàn)證對(duì)所述信號(hào)路徑的覆蓋率。在窮舉式搜索中,搜索起始節(jié)點(diǎn)的選擇影響到搜索的計(jì)算量。搜索起始節(jié)點(diǎn)的選擇還影響到以所搜索到的信號(hào)路徑為參考進(jìn)行驗(yàn)證時(shí)的效率。因此,對(duì)搜索起始節(jié)點(diǎn)的選擇是非常重要的。根據(jù)本發(fā)明的一個(gè)實(shí)施例,以集成電路模型的輸入端作為搜索起始節(jié)點(diǎn)。如前所述,集成電路模型本質(zhì)上是一個(gè)有向圖。對(duì)以RTL單元為基本單位的集成電路設(shè)計(jì)模型而言,有向圖中的各個(gè)節(jié)點(diǎn)表示RTL單元,節(jié)點(diǎn)之間的有向邊表示RTL單元之間信號(hào)輸入或輸出。集成電路模型的輸入端,或者對(duì)應(yīng)有向圖的輸入節(jié)點(diǎn),是這樣的一個(gè)RTL單元其只有輸出的有向邊但是沒有輸入的有向邊,或者其輸入的有向邊來(lái)自于集成電路模型外部。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,以有限狀態(tài)機(jī)作為搜索起始節(jié)點(diǎn)。有限狀態(tài)機(jī)往往是后續(xù)電路的驅(qū)動(dòng),因此以有限狀態(tài)機(jī)作為搜索起始節(jié)點(diǎn)所找到的信號(hào)路徑也可以進(jìn)行有效率的驗(yàn)證。如何根據(jù)集成電路模型的邏輯結(jié)構(gòu)識(shí)別出集成電路模型的輸入端或有限狀態(tài)機(jī)是本領(lǐng)域的常用技術(shù),在此不再贅述。下面參照?qǐng)D3描述如何搜索并記錄所述集成電路模型中的信號(hào)路徑。步驟301,以所述搜索起始節(jié)點(diǎn)作為正向信號(hào)追蹤的追蹤源節(jié)點(diǎn)。 正向信號(hào)追蹤的意思是,順著作為追蹤源節(jié)點(diǎn)的一個(gè)RTL單元的輸出有向邊到達(dá)作為追蹤漏節(jié)點(diǎn)的下一個(gè)RTL單元。正向信號(hào)追蹤只涉及兩個(gè)RTL單元,即有向邊兩端的RTL單元。如前所述,搜索起始節(jié)點(diǎn)也是一種RTL單元,因此可以作為所述追蹤源節(jié)點(diǎn)。后面還要提到反向信號(hào)追蹤,其含義是順著作為追蹤漏節(jié)點(diǎn)的一個(gè)RTL單元的輸入有向邊到達(dá)作為追蹤源節(jié)點(diǎn)的RTL單元。反向信號(hào)追蹤也只涉及兩個(gè)RTL單元,即有向邊兩端的RTL單元。步驟302,從所述追蹤源節(jié)點(diǎn)開始進(jìn)行正向信號(hào)追蹤,記錄有向邊另一端的追蹤漏節(jié)點(diǎn)作為中途節(jié)點(diǎn)。步驟303,判斷所述中途節(jié)點(diǎn)是否觸發(fā)器,如果是則進(jìn)入步驟304,否則進(jìn)入步驟305。步驟303是可選的。在不存在步驟303的情況下,從步驟302直接進(jìn)入步驟304。步驟304,從所述中途節(jié)點(diǎn)開始進(jìn)行正向信號(hào)追蹤,并且判斷有向邊另一端的追蹤漏節(jié)點(diǎn)是否為搜索終結(jié)節(jié)點(diǎn),如果是則進(jìn)入步驟306,否則進(jìn)入步驟305。搜索終結(jié)節(jié)點(diǎn)可以是集成電路模型的輸出端,或者集成電路模型內(nèi)部給有限狀態(tài)機(jī)提供輸入的節(jié)點(diǎn)。根據(jù)數(shù)字電路本身的特性,通常要求搜索終結(jié)節(jié)點(diǎn)有穩(wěn)定的輸出。因此在信號(hào)路徑上,搜索終結(jié)節(jié)點(diǎn)之前通常存在觸發(fā)器。在判斷某個(gè)RTL單元是否為搜索終結(jié)節(jié)點(diǎn)即步驟304之前,先判斷其是否存在對(duì)應(yīng)的觸發(fā)器,可以提高辨識(shí)搜索終結(jié)節(jié)點(diǎn)的準(zhǔn)確度。同時(shí),由于觸發(fā)器的辨識(shí)相對(duì)搜索終結(jié)節(jié)點(diǎn)的辨識(shí)更加容易,也可以避免對(duì)每一個(gè)中途節(jié)點(diǎn)都進(jìn)行是否為搜索終結(jié)節(jié)點(diǎn)的判斷。步驟305,以所述中途節(jié)點(diǎn)作為新的追蹤源節(jié)點(diǎn),返回步驟302。步驟306,輸出包含所述搜索起始節(jié)點(diǎn),所述中途節(jié)點(diǎn)和所述搜索終結(jié)節(jié)點(diǎn)的信號(hào)路徑。根據(jù)本發(fā)明的一個(gè)實(shí)施例,可以在步驟302中記錄中途節(jié)點(diǎn)的數(shù)目。中途節(jié)點(diǎn)數(shù)目表示路徑的長(zhǎng)度。路徑越長(zhǎng),則對(duì)該路徑進(jìn)行驗(yàn)證所需要的激勵(lì)信號(hào)可能就越多。采用大量激勵(lì)信號(hào)對(duì)一條過長(zhǎng)的路徑進(jìn)行驗(yàn)證會(huì)使得整體的驗(yàn)證效率降低。特別地,也可以在步驟303中記錄觸發(fā)器的數(shù)目。觸發(fā)器的存在在更大程度上意味著驗(yàn)證所需要的激勵(lì)信號(hào)數(shù)目的增加??梢栽谒阉餍盘?hào)路徑的過程中判斷一條路徑經(jīng)過的中途節(jié)點(diǎn)數(shù)目或觸發(fā)器數(shù)目是否超過中途節(jié)點(diǎn)數(shù)目閾值或觸發(fā)器數(shù)目閾值,一旦超過就停止進(jìn)一步的正向信號(hào)追蹤,并且不記錄該信號(hào)路徑。也可以在搜索過程中不進(jìn)行信號(hào)路徑長(zhǎng)度的判斷,而是將搜索得到的信號(hào)路徑均進(jìn)行記錄,然后再以中途節(jié)點(diǎn)數(shù)目或觸發(fā)器數(shù)目作為約束條件對(duì)所記錄的路徑進(jìn)行篩選。一個(gè)追蹤源節(jié)點(diǎn)可能輸出多條有向邊,每個(gè)有向邊的另一端都有一個(gè)追蹤漏節(jié)點(diǎn)。這些多條有向邊分別對(duì)應(yīng)于不同的路徑??梢栽诒硎竟?jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)中設(shè)置一個(gè)標(biāo)識(shí)位來(lái)幫助搜索到所有這些不同的路徑。在進(jìn)行搜索之前,將所有節(jié)點(diǎn)的標(biāo)志位復(fù)位到默認(rèn)值,例如O。在開始每一次正向信號(hào)追蹤之前,判斷當(dāng)前追蹤源節(jié)點(diǎn)所輸出的各有向邊另一端的追蹤漏節(jié)點(diǎn)的標(biāo)志位是否均為非默認(rèn)值,例如I。如果是的話,則將該追蹤源節(jié)點(diǎn)的標(biāo)志位置位為所述非默認(rèn)值,并且返回步驟301,即重新從搜索起始節(jié)點(diǎn)開始正向信號(hào)追蹤。否則,即如果當(dāng)前追蹤源所輸出的各有向邊另一端的追蹤漏節(jié)點(diǎn)中有一個(gè)或多個(gè)的標(biāo)志位為默認(rèn)值,則正向信號(hào)追蹤到所述標(biāo)志位為默認(rèn)值的追蹤漏節(jié)點(diǎn)中的一個(gè)。本領(lǐng)域技術(shù)人員還可以設(shè)計(jì)出各種其他方法,來(lái)確保找到從同一搜索起始節(jié)點(diǎn)開始的所有信號(hào)路徑。 在以上的描述中,假定所述信號(hào)路徑是“直接連接路徑”,即信號(hào)路徑上不存在組合邏輯RTL單元。組合邏輯RTL單元的輸出是由多個(gè)輸入決定的?;镜慕M合邏輯RTL單元是,諸如與門、或門的各種邏輯門,復(fù)用器(MUX),比較器。復(fù)雜的組合邏輯電路,例如加法器、乘法器等都可以分解成基本組合邏輯RTL單元的組合。包含所述組合邏輯RTL單元的信號(hào)路徑是“組合邏輯路徑”。組合邏輯路徑的搜索終結(jié)節(jié)點(diǎn)的信號(hào)往往取決于多個(gè)搜索起始節(jié)點(diǎn)的信號(hào)。根據(jù)本發(fā)明的一個(gè)實(shí)施例,采用反向信號(hào)追蹤來(lái)確定組合邏輯路徑的各個(gè)搜索起始節(jié)點(diǎn)。簡(jiǎn)而言之,在正向信號(hào)追蹤時(shí)如果發(fā)現(xiàn)組合邏輯RTL單元,則除了以該組合邏輯RTL單元為新的追蹤源節(jié)點(diǎn)繼續(xù)進(jìn)行正向信號(hào)追蹤以外,還以該組合邏輯RTL單元為追蹤漏節(jié)點(diǎn)進(jìn)行反向信號(hào)追蹤,以便找到所有能夠影響該組合邏輯RTL單元輸出的搜索起始節(jié)點(diǎn)。如前所述,集成電路模型中的信號(hào)要么來(lái)自輸入端,要么來(lái)自有限狀態(tài)機(jī),因此反向信號(hào)追蹤最終會(huì)抵達(dá)這兩種RTL單元中的一個(gè)。圖4A以與門為例說(shuō)明正向信號(hào)追蹤和反向信號(hào)追蹤。正向信號(hào)追蹤由虛線所示,反向信號(hào)追蹤由點(diǎn)劃線所示。正向信號(hào)追蹤沿著有向邊Input A所指示抵達(dá)作為追蹤漏節(jié)點(diǎn)的與門。接下來(lái),一方面以所述與門為新的追蹤源節(jié)點(diǎn)沿著有向邊Output C進(jìn)行下一次正向信號(hào)追蹤,另一方面沿著輸入到與門的另一條有向邊Input B進(jìn)行反向信號(hào)追蹤。正向信號(hào)追蹤會(huì)抵達(dá)搜索終結(jié)節(jié)點(diǎn),而反向信號(hào)追蹤會(huì)抵達(dá)另一個(gè)搜索起始節(jié)點(diǎn)。圖4B以復(fù)用器為例說(shuō)明正向信號(hào)追蹤和反向信號(hào)追蹤。對(duì)于復(fù)用器而言,沿有向邊Input D的控制信號(hào)決定了沿有向邊Input A的信號(hào)是否能夠通過所述復(fù)用器,因此優(yōu)選地可以只沿著有向邊Input D進(jìn)行反向信號(hào)追蹤。反向信號(hào)追蹤所找到的RTL單元有可能也是組合邏輯RTL單元??梢圆捎蒙疃葍?yōu)先或廣度優(yōu)先的算法來(lái)找到所有的搜索起始節(jié)點(diǎn)。下面參照?qǐng)D5說(shuō)明采用深度優(yōu)先的算法來(lái)找到所有搜索起始節(jié)點(diǎn)的步驟。首先,從第一搜索起始節(jié)點(diǎn)通過正向信號(hào)追蹤到達(dá)與門A。由于與門A是組合邏輯RTL單元,因此需要進(jìn)行反向信號(hào)追蹤。第二,以與門A為追蹤漏節(jié)點(diǎn)進(jìn)行反向信號(hào)追蹤,到達(dá)與門B。與門B也是組合邏輯RTL單元,因此其有多個(gè)輸入有向邊。將與門B記錄下來(lái)。第三,以與門B為追蹤漏 節(jié)點(diǎn)進(jìn)行反向信號(hào)追蹤,沿著與門B的一個(gè)輸入有向邊到達(dá)第二搜索起始節(jié)點(diǎn)。第四,返回與門B,以與門B為追蹤漏節(jié)點(diǎn)進(jìn)行第二次反向信號(hào)追蹤,沿著與門B的另一個(gè)輸入有向邊到達(dá)第三搜索起始節(jié)點(diǎn)。第五,由于針對(duì)與門B的各輸入有向邊均進(jìn)行了反向信號(hào)追蹤,因此與門B已經(jīng)處理完畢。進(jìn)而,由于與門A的各輸入有向邊也已經(jīng)處理完畢,因此已經(jīng)找到了影響與門A的輸出的各搜索起始節(jié)點(diǎn)。通過結(jié)合正向信號(hào)追蹤和反向信號(hào)追蹤,可以得到這樣的信號(hào)路徑,該路徑包括至少一個(gè)搜索終結(jié)節(jié)點(diǎn),影響該搜索終結(jié)節(jié)點(diǎn)的信號(hào)的搜索起始節(jié)點(diǎn),以及所述搜索起始節(jié)點(diǎn)和搜索終結(jié)節(jié)點(diǎn)之間的中途節(jié)點(diǎn)。在驗(yàn)證時(shí),可以容易地確定所述路徑是否被執(zhí)行過,從而得到以信號(hào)路徑為基準(zhǔn)的覆蓋率。圖6是基于本發(fā)明實(shí)施例的計(jì)算集成電路模型的驗(yàn)證覆蓋率的設(shè)備。該設(shè)備包括獲取裝置,配置為獲取待驗(yàn)證集成電路模型的邏輯結(jié)構(gòu);搜索裝置,配置為根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑;以及計(jì)算裝置,配置為計(jì)算驗(yàn)證對(duì)所述信號(hào)路徑的覆蓋率。附圖中的流程圖和框圖,圖示了按照本發(fā)明各種實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來(lái)實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。雖然以上結(jié)合具體實(shí)施例,對(duì)本發(fā)明的各個(gè)裝置和方法進(jìn)行了詳細(xì)描述,但本發(fā)明并不限于此。本領(lǐng)域普通技術(shù)人員能夠在說(shuō)明書教導(dǎo)之下對(duì)本發(fā)明進(jìn)行多種變換、替換和修改而不偏離本發(fā)明的精神和范圍。應(yīng)該理解,所有這樣的變化、替換、修改仍然落入本發(fā)明的保護(hù)范圍之內(nèi)。本發(fā)明的保護(hù)范圍由所附權(quán)利要求來(lái)限定。
權(quán)利要求
1.一種計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法,包括 獲取待驗(yàn)證集成電路模型的邏輯結(jié)構(gòu); 根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑;以及 計(jì)算對(duì)所述信號(hào)路徑的驗(yàn)證覆蓋率。
2.如權(quán)利要求I所述的方法,其中所述邏輯結(jié)構(gòu)以有向圖表示,其中搜索并記錄所述待驗(yàn)證集成電路|吳型中的彳目號(hào)路徑包括 以搜索起始節(jié)點(diǎn)作為正向信號(hào)追蹤的追蹤源節(jié)點(diǎn); 從所述追蹤源節(jié)點(diǎn)開始進(jìn)行正向信號(hào)追蹤; 記錄有向邊另一端的追蹤漏節(jié)點(diǎn)作為中途節(jié)點(diǎn); 判斷是否發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn); 如果未發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn),則以所述中途節(jié)點(diǎn)作為新的追蹤源節(jié)點(diǎn)進(jìn)行正向信號(hào)追蹤,并返回所述記錄中途節(jié)點(diǎn)的步驟;以及 如果發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn),則記錄包含所述搜索起始節(jié)點(diǎn),所述中途節(jié)點(diǎn)和所述搜索終結(jié)節(jié)點(diǎn)的信號(hào)路徑。
3.如權(quán)利要求2所述的方法,其中所述搜索起始節(jié)點(diǎn)是以下節(jié)點(diǎn)中的一個(gè) 集成電路模型的輸入端,或有限狀態(tài)機(jī)。
4.如權(quán)利要求2或3所述的方法,其中所述搜索終結(jié)節(jié)點(diǎn)是以下節(jié)點(diǎn)中的一個(gè) 集成電路模型的輸出端,或向有限狀態(tài)機(jī)提供輸入的節(jié)點(diǎn)。
5.如權(quán)利要求2所述的方法,其中判斷是否發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn)包括 判斷所述中途節(jié)點(diǎn)是否為觸發(fā)器; 如果所述中途節(jié)點(diǎn)不是觸發(fā)器,則確定未發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn);以及如果所述中途節(jié)點(diǎn)是觸發(fā)器,則以所述觸發(fā)器為追蹤源節(jié)點(diǎn)進(jìn)行正向信號(hào)追蹤,判斷有向邊另一端的追蹤漏節(jié)點(diǎn)是否為搜索終結(jié)節(jié)點(diǎn)。
6.如權(quán)利要求2所述的方法,進(jìn)一步包括 如果所述中途節(jié)點(diǎn)是組合邏輯電路,則從所述組合邏輯電路開始進(jìn)行反向信號(hào)追蹤,直到發(fā)現(xiàn)影響所述組合邏輯電路的輸出的所有搜索起始節(jié)點(diǎn)。
7.如權(quán)利要求I或2所述的方法,搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑包括 記錄所述待驗(yàn)證集成電路模型中長(zhǎng)度短于閾值的信號(hào)路徑。
8.如權(quán)利要求7所述的方法,其中所述信號(hào)路徑的長(zhǎng)度由信號(hào)路徑所經(jīng)過的觸發(fā)器數(shù)目表示。
9.一種計(jì)算集成電路模型的驗(yàn)證覆蓋率的設(shè)備,包括 獲取裝置,配置為獲取待驗(yàn)證集成電路模型的邏輯結(jié)構(gòu); 搜索裝置,配置為根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑;以及 計(jì)算裝置,配置為計(jì)算對(duì)所述信號(hào)路徑的驗(yàn)證覆蓋率。
10.如權(quán)利要求9所述的設(shè)備,其中所述邏輯結(jié)構(gòu)以有向圖表示,所述搜索裝置包括 配置為以搜索起始節(jié)點(diǎn)作為正向信號(hào)追蹤的追蹤源節(jié)點(diǎn)的裝置; 配置為從所述追蹤源節(jié)點(diǎn)開始進(jìn)行正向信號(hào)追蹤的裝置;配置為記錄有向邊另一端的追蹤漏節(jié)點(diǎn)作為中途節(jié)點(diǎn)的裝置; 配置為判斷是否發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn)的裝置; 配置為如果未發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn),則以所述中途節(jié)點(diǎn)作為新的追蹤源節(jié)點(diǎn)進(jìn)行正向信號(hào)追蹤,并觸發(fā)所述配置為記錄有向邊另一端的追蹤漏節(jié)點(diǎn)作為中途節(jié)點(diǎn)的裝置的裝置;以及 配置為如果發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn),則記錄包含所述搜索起始節(jié)點(diǎn),所述中途節(jié)點(diǎn)和所述搜索終結(jié)節(jié)點(diǎn)的信號(hào)路徑的裝置。
11.如權(quán)利要求10所述的設(shè)備,其中所述搜索起始節(jié)點(diǎn)是以下節(jié)點(diǎn)中的一個(gè) 集成電路模型的輸入端,或有限狀態(tài)機(jī)。
12.如權(quán)利要求10或11所述的設(shè)備,其中所述搜索終結(jié)節(jié)點(diǎn)是以下節(jié)點(diǎn)中的一個(gè) 集成電路模型的輸出端,或向有限狀態(tài)機(jī)提供輸入的節(jié)點(diǎn)。
13.如權(quán)利要求10所述的設(shè)備,其中所述配置為判斷是否發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn)的裝置包括 配置為判斷所述中途節(jié)點(diǎn)是否為觸發(fā)器的裝置; 配置為如果所述中途節(jié)點(diǎn)不是觸發(fā)器,則確定未發(fā)現(xiàn)搜索終結(jié)節(jié)點(diǎn)的裝置;以及配置為如果所述中途節(jié)點(diǎn)是觸發(fā)器,則以所述觸發(fā)器為追蹤源節(jié)點(diǎn)進(jìn)行正向信號(hào)追蹤,并且判斷有向邊另一端的追蹤漏節(jié)點(diǎn)是否為搜索終結(jié)節(jié)點(diǎn)的裝置。
14.如權(quán)利要求10所述的設(shè)備,進(jìn)一步包括 配置為如果所述中途節(jié)點(diǎn)是組合邏輯電路,則從所述組合邏輯電路開始進(jìn)行反向信號(hào)追蹤,直到發(fā)現(xiàn)影響所述組合邏輯電路的輸出的所有搜索起始節(jié)點(diǎn)的裝置。
15.如權(quán)利要求9或10所述的設(shè)備,其中所述搜索裝置包括 配置為記錄所述待驗(yàn)證集成電路模型中長(zhǎng)度短于閾值的信號(hào)路徑的裝置。
16.如權(quán)利要求15所述的設(shè)備,其中所述信號(hào)路徑的長(zhǎng)度由信號(hào)路徑所經(jīng)過的觸發(fā)器數(shù)目表示。
全文摘要
本發(fā)明實(shí)施例提供了一種計(jì)算集成電路模型的驗(yàn)證覆蓋率的方法,包括獲取待驗(yàn)證集成電路模型的邏輯結(jié)構(gòu);根據(jù)所述邏輯結(jié)構(gòu),搜索并記錄所述待驗(yàn)證集成電路模型中的信號(hào)路徑;以及計(jì)算驗(yàn)證對(duì)所述信號(hào)路徑的覆蓋率。根據(jù)本發(fā)明實(shí)施例提供的技術(shù)方案,可以得到基于信號(hào)路徑的驗(yàn)證覆蓋率,從而更加準(zhǔn)確地提供有關(guān)驗(yàn)證完備性的數(shù)據(jù)。
文檔編號(hào)G06F17/50GK102968515SQ20111027026
公開日2013年3月13日 申請(qǐng)日期2011年8月31日 優(yōu)先權(quán)日2011年8月31日
發(fā)明者范博, 陳亮, 潘永峰, 周凡 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1