两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

形式驗證中的屬性覆蓋率的制作方法

文檔序號:6507155閱讀:291來源:國知局
專利名稱:形式驗證中的屬性覆蓋率的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)輔助設(shè)計(CAD),特別是涉及集成電路形式驗證中的屬性覆蓋率。
背景信息現(xiàn)代邏輯設(shè)計的問題之一是驗證設(shè)計實際上是按其預(yù)定的方式工作的。邏輯設(shè)計中沒有檢測到的錯誤會導(dǎo)致昂貴的重新設(shè)計,如果產(chǎn)品已經(jīng)投放市場,甚至?xí)瓜M(fèi)者失去對產(chǎn)品的信心。
模型檢測是驗證設(shè)計的一種方法。模型檢測是用于屬性驗證的一種形式驗證(FV)技術(shù)。屬性規(guī)定了特定電路信號與其他信號相關(guān)的各個時間點(diǎn)想要的值。假設(shè)有一個設(shè)計模型和一些想要的屬性,模型檢測器如符號模型驗證器(SMV)驗證該模型在所有可能的輸入順序下是否滿足所有想要的屬性。上述屬性已經(jīng)使用屬性規(guī)定語言如計算樹邏輯(CTL)規(guī)定好。雖然模型檢測是一項徹底的FV技術(shù),但是如果用戶規(guī)定的屬性沒有檢測到程序錯誤帶來的錯誤行為,該程序錯誤會逃過模型檢測。這些錯誤行為通常發(fā)生在用戶沒有覺察的一些不明顯的角落。當(dāng)需要手工將規(guī)范分解為一組更小、模型檢測器能夠驗證的更易于處理的屬性時通常出現(xiàn)這種情況。為減少錯誤的逃出(escape),用戶需要不斷地增強(qiáng)已有的屬性并且規(guī)定新的屬性,而不知道附加的驗證是不足還是過剩。
邏輯仿真是驗證設(shè)計的另一種方法。在已有的基于仿真的驗證方法學(xué)中,使用覆蓋量度來改善一套檢驗程序的質(zhì)量以及估計驗證任務(wù)的進(jìn)展。例如,用于仿真的常用覆蓋量度是“代碼覆蓋率”,其測量仿真期間運(yùn)用的硬件描述語言(“HDL”)語句的部分?!盎诳捎^察性的代碼覆蓋率”通過將潛在的錯誤傳播分解為可觀察性的點(diǎn)增強(qiáng)了這一度量?!稗D(zhuǎn)換覆蓋率”是另一種用于控制狀態(tài)機(jī)的度量。這些覆蓋率度量通過指出測試程序中的覆蓋漏洞而在減少程序錯誤逃出方面很有效。
但是,用于仿真的已有的覆蓋率度量沒有直接應(yīng)用到模型檢測,如模型檢測任務(wù)中的代碼覆蓋率的自然解釋或轉(zhuǎn)換覆蓋率度量對于每個屬性給出的是無意義的100%覆蓋率。邏輯仿真是動態(tài)的并且其覆蓋率是輸入仿真矢量驅(qū)動的,而模型檢測是靜態(tài)的,沒有任何電路運(yùn)行概念。與邏輯仿真不同,模型檢測工作中程序錯誤逃出檢測的可能性僅依賴于驗證的屬性的質(zhì)量。因此,需要的是估計對于設(shè)計驗證的一組屬性“完整性”(也就是質(zhì)量)的覆蓋率度量。
例如,考慮用于計數(shù)的模5計數(shù)器,以stall(停止)和reset(復(fù)位)作為外部輸入的CTL公式AG[((-stall∧-reset∧(count=C)∧(C<5))-AX(count=C+1)]這個公式規(guī)定了如果stall和reset信號沒有聲明并且計數(shù)器值小于5,則上述計數(shù)器在下一步增加1。模型檢測器檢查整個可達(dá)到的狀態(tài)空間以驗證該屬性。但是,實際上,僅對滿足前提的那些緊接著的后續(xù)狀態(tài)確定了count(計數(shù))的情況的正確性(即其正確增加)。因此模型狀態(tài)空間的正確性條件的實際檢測受到CTL公式的限制。因此,這一屬性不能稱為提供了100%的覆蓋率。這個例子說明了對于形式驗證屬性需要規(guī)定覆蓋率測量。
因這個和其他原因,需要本發(fā)明。
發(fā)明概述本發(fā)明的一個方面是一種測量形式驗證屬性覆蓋率的方法。該方法包括接收邏輯設(shè)計的一個模型,其中該模型具有多個狀態(tài)。上述方法還包括接收對上述邏輯設(shè)計的模型驗證的屬性以及接收該屬性的一個或多個觀測信號。上述方法還包括提供一個覆蓋的狀態(tài)集,在其中檢測一個或多個觀測信號的值就足以確定驗證屬性的正確性。
本發(fā)明的另一個方面是測量形式驗證屬性的覆蓋率的替代方法。該方法包括接收一個邏輯設(shè)計模型,其中該模型具有多種狀態(tài)。該方法還包括接收對上述邏輯設(shè)計的模型驗證的屬性以及接收該屬性的一個或多個觀測信號。該方法還包括提供上述屬性觀測信號的一個覆蓋的狀態(tài)集,其中該組覆蓋狀態(tài)包括每個狀態(tài),其中改變狀態(tài)中觀測信號的值則導(dǎo)致該屬性失敗。
附圖簡述

圖1是一個計算機(jī)系統(tǒng)的框圖,在其上實現(xiàn)了本發(fā)明的一個實施方案。
圖2是用于測量形式驗證屬性覆蓋率的一個系統(tǒng)的框圖。
圖3說明了計算屬性覆蓋率的一個電路的狀態(tài)轉(zhuǎn)換圖的一部分。
圖4說明了計算屬性覆蓋率的一個電路的第二個狀態(tài)轉(zhuǎn)換圖。
圖5說明了計算屬性覆蓋率的一個電路的第三個狀態(tài)轉(zhuǎn)換圖。
優(yōu)選實施方案描述在下面優(yōu)選實施方案的詳細(xì)描述中,參考了在此作為一部分的附圖,并且其中通過圖解顯示了應(yīng)用本發(fā)明的特定實施方案。需要理解的是,在不違背本發(fā)明范圍的情況下可以應(yīng)用其他實施方案并且進(jìn)行結(jié)構(gòu)上的修改。
下面的詳細(xì)描述說明了確定狀態(tài)空間由模型檢測驗證的屬性所覆蓋的部分的覆蓋率度量。在每個屬性中,確定一個信號(或幾個信號的命題)作為該屬性的觀測信號。覆蓋率度量測量與上述觀測信號相關(guān)的一組屬性的覆蓋率。覆蓋率度量確定可到達(dá)狀態(tài),其中上述觀測信號的值確定驗證屬性的正確性。然后可以使用模型檢測算法檢測上述觀測信號在這些“覆蓋”狀態(tài)的正確性條件以證明該屬性正確還是不正確。
詳細(xì)描述組織如下。第一節(jié)描述了一個計算機(jī)系統(tǒng),在其上實現(xiàn)了本發(fā)明的一個實施方案。第二節(jié)介紹了本發(fā)明一個實施方案的概述。第三節(jié)描述了形式驗證中的屬性覆蓋率。第四節(jié)介紹了計算覆蓋率度量的一種方法的一個示范實施方案。第五節(jié)提供了形式驗證中屬性覆蓋率的示范實現(xiàn)。最后給出結(jié)論。示范計算機(jī)系統(tǒng)參見圖1,顯示了計算機(jī)系統(tǒng)100,其中實現(xiàn)了本發(fā)明的一個實施方案。計算機(jī)系統(tǒng)100包括用于信息通信的總線或其他通信裝置101,以及連接到總線101上用于處理信息的處理器102。計算機(jī)系統(tǒng)100還包括連接到總線101上用于存儲信息和處理器102執(zhí)行的指令的隨機(jī)存取存儲器(RAM)或其他動態(tài)存儲設(shè)備104(稱作主存儲器)。主存儲器104還可用于在處理器102執(zhí)行屬性覆蓋率指令期間存儲臨時變量或其他中間信息。計算機(jī)系統(tǒng)100還包括連接到總線101上用于存儲靜態(tài)信息和處理器102指令的只讀存儲器(ROM)和/或其他靜態(tài)存儲設(shè)備106,以及如磁盤或光盤及其相應(yīng)盤驅(qū)動器的數(shù)據(jù)存儲設(shè)備107。數(shù)據(jù)存儲設(shè)備107連接到總線101以存儲用于在形式驗證屬性中測量覆蓋率的信息和指令。計算機(jī)系統(tǒng)100還連接到如陰極射線管(CRT)或液晶顯示器(LCD)等連接到總線101上用于將信息顯示給計算機(jī)用戶的顯示設(shè)備121上。包括字母數(shù)字和其他鍵的字母數(shù)字混合輸入設(shè)備122也連接到總線101,以與處理器102進(jìn)行信息和命令選擇通信。附加用戶輸入設(shè)備可以是連接到總線101上的光標(biāo)控制設(shè)備123,如鼠標(biāo)、跟蹤球、指示筆或光標(biāo)方向鍵,用于與處理器102進(jìn)行方向信息和命令選擇的通信,并且用于控制顯示器121上光標(biāo)的移動。連接到總線101上的另一個設(shè)備是硬拷貝設(shè)備124,可用于在如紙、膠片或類似類型介質(zhì)上打印指令、數(shù)據(jù)或其他信息。還要注意,計算機(jī)系統(tǒng)100的任何一個或所有部件以及相關(guān)硬件可以用于一個實施方案中,但是,應(yīng)當(dāng)理解,系統(tǒng)的任何類型的配置可用于其它實施方案中用戶需要的各種目的。
存儲在計算機(jī)可讀介質(zhì)(如RAM、ROM或其他數(shù)據(jù)存儲設(shè)備)中的計算機(jī)可讀指令由計算機(jī)系統(tǒng)100的處理器102執(zhí)行。計算機(jī)可讀指令使得計算機(jī)系統(tǒng)100執(zhí)行一種下面進(jìn)一步描述的測量形式驗證屬性覆蓋率的方法。本發(fā)明的一個實施方案概述參見圖2描述了本發(fā)明的一個實施方案概述。圖2是用于測量形式驗證屬性覆蓋率的一個系統(tǒng)的框圖。圖2顯示的系統(tǒng)包括輸入、處理模塊以及一個或多個輸出。
輸入包括一個屬性、一個或多個觀測信號,以及電路模型或其他邏輯設(shè)計模型。該屬性是規(guī)定特定電路信號在與其他信號相關(guān)的各個時間點(diǎn)想要的值的形式驗證屬性。在一個實施方案中,上述屬性以CTL書寫。但是,本領(lǐng)域技術(shù)人員將認(rèn)識到,在不偏離本發(fā)明范圍的情況下可以采用其他屬性規(guī)定語言。
上述觀測信號是由上述屬性規(guī)定的一個特定的電路信號。上述觀測信號是檢測到的信號。在一個實施方案中,該觀測信號由用戶提供。在一個替代實施方案中,該觀測信號由處理模塊確定。電路模型是一個集成電路設(shè)計模型,與模型檢測驗證工具一起使用,并且與本發(fā)明的上述系統(tǒng)一起使用。
處理模塊包括利用模型檢測驗證工具或在一個替代實施方案中利用仿真檢測器執(zhí)行測量屬性覆蓋率功能的程序模塊。通常,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定功能或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。處理模塊提供驗證完整性指示。由處理模塊執(zhí)行的覆蓋率度量是基于狀態(tài)而不是路徑。下面詳細(xì)描述了覆蓋率度量的示范實施方案。這里使用的術(shù)語“狀態(tài)”同時指狀態(tài)和輸入。在一個狀態(tài)可以通過幾條路徑到達(dá)意義上狀態(tài)覆蓋率是靜態(tài)的。
在一個實施方案中,輸出包括指示在其中為上述屬性檢測了觀測信號的狀態(tài)的百分比的覆蓋率百分比。附加輸出從下面的詳細(xì)描述中可以很容易地看到。形式驗證中的屬性覆蓋率“公式”(也稱作“屬性”)規(guī)定了特定電路信號在與其他信號相關(guān)的各個時間點(diǎn)想要的值。換句話說,每個公式規(guī)定某些電路信號的正確性條件并且還規(guī)定了這一條件有效的電路狀態(tài)空間。在正確性條件中檢測的一個信號或命題確定為“觀測信號”,并且在這一觀測信號上定義覆蓋率。在一個實施方案中,順序電路被視為Mealy有限狀態(tài)機(jī)。
定義1有限狀態(tài)機(jī)(FSM)M是一個4元數(shù)組<S,TM,P,S1>,其中S是一組有限狀態(tài),TMS×S是M在S的成對狀態(tài)之間的轉(zhuǎn)換關(guān)系,并且P={p1,p2,…,pn,q}是一組信號,其中q是觀測信號。每個信號是一個代表一組狀態(tài)的布爾函數(shù)S→{T,F(xiàn)},或等效地,每個信號對應(yīng)一個原子命題。S1S是一個有限狀態(tài)集。
假設(shè)一個屬性已由模型檢測算法驗證對于電路是正確的,本發(fā)明定義了按照初始狀態(tài)可到達(dá)的電路狀態(tài)的一個子集,該屬性對于特定觀察信號的覆蓋率。如果存在一個輸入序列作為從初始狀態(tài)到某個狀態(tài)的FSM,則從初始狀態(tài)可以到達(dá)該狀態(tài)。在一個實施方案中,對于觀測信號的“一個覆蓋集”的狀態(tài)就是該組可到達(dá)的狀態(tài),其中上述觀測信號的值必須檢測以證實滿足上述屬性。
因此,上述覆蓋集中的狀態(tài)有兩個特性。第一,如果上述觀測信號的值在上述覆蓋集之外的模型的任何狀態(tài)中改變,仍能滿足上述屬性。對于上述屬性那些狀態(tài)不檢測。第二,如果上述觀測信號的值在任何覆蓋狀態(tài)中改變,則上述屬性失敗。在這個實施方案中,該覆蓋狀態(tài)集是一個最小集。
為確認(rèn)一個狀態(tài)是否屬于上述覆蓋集,該狀態(tài)中觀測信號的值被修改并且評估其對該屬性正確性的影響。為實現(xiàn)這一測試,對于給定FSM M的每個狀態(tài)按如下定義了雙FSM定義2假設(shè)FSM M=<S,TM,P,S1>,其中P={p1,p2,…,pn,q},并且任何狀態(tài)sS,則與狀態(tài)s相關(guān)的雙 是一個四元數(shù)組<S,TM,{p1,p2,…,pn, },S1>,其中 對每個狀態(tài)t∈S.
按照這個定義,覆蓋集狀態(tài)的一個實施方案定義如下。
定義3假設(shè)一個屬性f及一個FSM M,該M關(guān)于其初始狀態(tài)集S1滿足f,表示為M,S1|=f,如果并且只有在對于任何狀態(tài)s∈S,上述雙FSM滿足條件(M^SS1|≠f]]>)(s∈C)時,一組CS才是M對于觀測信號q上的f的一個覆蓋集。
這個定義獨(dú)立于屬性規(guī)定語言并且保證在一個未覆蓋的狀態(tài)中改變上述觀測信號的值不會引起該屬性失敗,而在一個覆蓋的狀態(tài)中改變上述值則會導(dǎo)致該屬性失敗。這個覆蓋狀態(tài)集是唯一的。因此,其組成了一個必要的并且是足夠的集以證實滿足該屬性。以這種方式定義覆蓋狀態(tài),因此這些狀態(tài)上的觀測信號的值保證滿足該屬性規(guī)定的正確性條件。因此,覆蓋率給出對于上述觀測信號該模型的狀態(tài)空間有多少由驗證屬性檢測過的一種測量。這一定義不排除同一屬性中有多個可觀測信號。覆蓋狀態(tài)則簡單地是每個單獨(dú)信號的覆蓋狀態(tài)的并集。
為通過矛盾證實覆蓋狀態(tài)集是唯一的,假設(shè)對于屬性f和觀測信號信號q有兩個分離的覆蓋集C1和C2。因為C1≠C2,必然存在一個狀態(tài)s屬于一個,而不屬于另一個,假設(shè)不失一般性的s∈C1而 通過覆蓋集C1的定義,如果在狀態(tài)s中值q改變,則屬性f失敗。這意味著s應(yīng)該屬于所有覆蓋集并且因此s∈C2,這是一個矛盾。因此C1=C2,并且覆蓋狀態(tài)集是唯一的。
下面的例子參考圖3說明覆蓋狀態(tài)的定義。這個例子計算下面q作為觀測信號的簡單CTL公式的覆蓋率AG(P1→AXAXq)。該公式規(guī)定無論何時P1被聲明,將來q將被聲明兩步。圖3說明了被計算屬性覆蓋率的電路的狀態(tài)轉(zhuǎn)換圖300的一部分。因此,為使上述公式有效在圖3標(biāo)記狀態(tài)302中必須聲明q。這個標(biāo)記狀態(tài)302是一個覆蓋狀態(tài)。檢查顯示上述定義3中規(guī)定的條件對于這個狀態(tài)成立。注意還有其他聲明了q的狀態(tài)304、306,但是因為其對于給定公式的正確性不關(guān)鍵,因此沒有標(biāo)記為覆蓋狀態(tài)。
在一個替代實施方案中,覆蓋集的一個不太嚴(yán)格的定義是對于檢測觀測信號值以確定CTL公式正確性的一組充分、但不必要狀態(tài)。這種情況下的覆蓋集既不唯一也不是最小的。
定義4帶有一組給定初始狀態(tài)的給定模型上“觀測信號”的公式的覆蓋率計算為被覆蓋模型的可到達(dá)狀態(tài)數(shù)的百分比 一組屬性的覆蓋率簡單地是來自每個單獨(dú)屬性覆蓋率集的并集。
因此對于一個特定觀測信號完全或100%的覆蓋率意味著該信號的值已經(jīng)被電路所有可到達(dá)狀態(tài)上的驗證屬性檢測。這作為屬性完整性和驗證質(zhì)量的一個非常有用的指標(biāo)。更重要的是,覆蓋率度量的公式表示可以根據(jù)未覆蓋狀態(tài)識別低覆蓋率區(qū)域,因此用戶可以編寫額外屬性以增加覆蓋率。
在一個替代實施方案中,這一覆蓋率度量還可用于仿真測試的覆蓋率測量。在這種情況下,覆蓋狀態(tài)定義為仿真檢測器在仿真期間檢測觀測信號值的狀態(tài)。
上述覆蓋率的定義可應(yīng)用于任何屬性規(guī)定語言。這一節(jié)詳細(xì)描述剩下的部分介紹了為ACTL子集,CTL通用子集計算覆蓋集的一種算法的一個示范實施方案。
我們接受的ACTL子集定義如下f∷=b|b→f|AXf|AGf|A[f∪g]|f∧g其中b是命題公式并且f和g是子集中的臨時公式。注意AFf可以等價地寫為A[True U f]并且不需要單獨(dú)對待。這個子集中缺少的唯一ACTL結(jié)構(gòu)是臨時公式的邏輯和。
對這個ACTL子集應(yīng)用定義3,可以準(zhǔn)確計算對于上述公式正確性關(guān)鍵的觀測信號的值的狀態(tài)集。但是,以這種方式應(yīng)用定義3導(dǎo)致一些意外的覆蓋率?!芭既恍詫傩浴钡母采w率非常低。例如,考慮屬性A[P1U q]和圖4所示的電路的狀態(tài)轉(zhuǎn)換圖。該屬性規(guī)定在來自初始狀態(tài)的任何一條路徑上P1應(yīng)該高直到觀測信號q被聲明為止。直觀地,看來q被聲明處遇到的第一個狀態(tài)應(yīng)該被覆蓋(如圖4所標(biāo)記)。但是,因為P1在這個狀態(tài)很高,因此在這個狀態(tài)改變q的值不會導(dǎo)致該屬性失敗。實際上,在這條路徑上沒有一個狀態(tài)被認(rèn)為由上述定義覆蓋。因此,這個屬性的覆蓋率是零。這與對這一屬性的期望值相反。為獲得覆蓋率更直觀的測量,Until公式的兩個部分的覆蓋率影響需要彼此分離并且每個部分的覆蓋率需要單獨(dú)計算。為達(dá)到這一點(diǎn),ACTL公式的轉(zhuǎn)換定義如下。該轉(zhuǎn)換改變了上述公式的對稱性但是保持了語義的等價。
定義5對于一個FSM M,在可接受ACTL子集中指定公式f并且在該公式中指定觀測信號q,引入信號q’。信號q’由與觀測信號q相同的函數(shù)定義?!翱捎^察性變換”通過將f中的q替換為q’來定義(表示為f|q→q’)(b→f)=b→(f)(b)=b|q→q′(AXf)=AX(f)(AGf)=AG(f) (f∧g)=(f)∧(g)f’和g’分別作為(f)和(g)的簡寫?,F(xiàn)在新符號q’是變換公式f’的觀測信號。
注意可觀測性變換之后的公式在驗證正確性方面與原始公式等價。公式的對稱結(jié)構(gòu)發(fā)生改變的僅有的兩種情況是隱含和Until公式。目的是指出從隱含的結(jié)果部分提供覆蓋率的狀態(tài)以及從Until公式的每個部分單獨(dú)提供覆蓋率的狀態(tài)。作為可觀測性變換的結(jié)果,兩個具有不同語法的語義等價公式可提供不同的覆蓋率。因此,上述公式的語法更好地捕獲用戶的驗證目的。定義3對變換公式的應(yīng)用給出覆蓋集更直觀和實用的測定??捎^測性變換與覆蓋狀態(tài)的定義一致,其中覆蓋狀態(tài)集確定為在其中足以檢測觀測信號的值以確定CTL公式正確性的一組狀態(tài)。覆蓋率計算本節(jié)詳細(xì)描述介紹計算覆蓋率度量的方法的一個示范實施方案。該示范實施方案是一個對給定ACTL公式和給定觀測信號在FSM的狀態(tài)空間計算覆蓋狀態(tài)集的遞歸算法。該算法在初始公式上運(yùn)算但給出與上述變換公式相關(guān)的計算的覆蓋狀態(tài)集。因此,在這個實施方案中,覆蓋率的計算不需要可觀測性變換應(yīng)用。后面,證實計算的覆蓋集與通過對變換公式直接應(yīng)用定義3得到的是相同的狀態(tài)集。
問題綜述給定帶有一組初始狀態(tài)S1的FSM M以及一個可接受ACTL公式g如M,S1|=g,對觀測信號q計算覆蓋狀態(tài)集和覆蓋率。
在g的句法結(jié)構(gòu)上以遞歸方式計算嵌套公式g的覆蓋率。下面的表1總結(jié)了這個算法。關(guān)于一組起始狀態(tài)計算了每個子公式的覆蓋率。關(guān)于起始狀態(tài)集S0的公式g的覆蓋狀態(tài)集表示為C(S0,g)。向下遍歷分析樹,用于計算特定子公式覆蓋率的起始狀態(tài)集發(fā)生變化,如表所示。對應(yīng)于M的初始狀態(tài)集S1(在表1中替換S0=S1)計算最高層公式g的覆蓋率,也就是C(S0,g)。
上述算法確保任何覆蓋狀態(tài)中觀測信號的值滿足該公式規(guī)定的正確性條件。如果子公式不涉及觀測信號,其覆蓋集將是空的。下面給出上述算法中函數(shù)的定義。
表1.覆蓋集的遞歸計算
給定命題公式b,令T(b)表示滿足b的狀態(tài)集。注意如果并且只有b在所有起始狀態(tài)都是真的時,該電路才滿足上述屬性。被覆蓋的這些起始狀態(tài)的子集確定為其中判定b的滿足實際上依賴于觀測信號q的值(b也規(guī)定了其他信號的條件)的那些起始狀態(tài)。換句話說,在覆蓋狀態(tài)上改變觀測信號q的值必須在該狀態(tài)證明公式b是假的,否則它會是真的。在上面的表中,由函數(shù)depend(b)=T(b)∩T(⫬b|q→⫬q)]]>給出這組狀態(tài)。
類型b→f,AXf和AGf的公式的計算是直接的。公式b→f規(guī)定了公式f在滿足判定b的S0中的那些起始狀態(tài)上必須是真的。對應(yīng)于起始狀態(tài)S0的子公式b→f的覆蓋集C(S0,b→f)等價于,并且計算為對應(yīng)于新的起始狀態(tài)集S0∩T(b)的f的覆蓋集C(S0∩T(b),f)。
公式AXf規(guī)定f從起始狀態(tài)集S0開始保持在所有后續(xù)狀態(tài)中。函數(shù)forward(S0)給出從S0中的起始狀態(tài)開始恰好一步可到達(dá)的狀態(tài)。當(dāng)計算f的覆蓋率時這個集成為新的起始狀態(tài)。forward(S0)={s′′|∃s′∈S0,(s′,s′′)∈TM}]]>AGf規(guī)定f具有從S0開始可到達(dá)的所有狀態(tài)。函數(shù)reachable(S0)給出從S0開始在任意數(shù)量的前向步驟中可到達(dá)的狀態(tài)。這個集成為用于計算f覆蓋率的新的起始狀態(tài)集。 Until運(yùn)算符的覆蓋率估算有點(diǎn)復(fù)雜。在圖5的狀態(tài)轉(zhuǎn)換圖的幫助下解釋A[f1Uf2]的覆蓋狀態(tài)的計算。子公式f1在沿著從S0的一個起始狀態(tài)(在這個例子中唯一)的路徑的狀態(tài)上驗證為真,這樣f1為真直到f2第一次變?yōu)檎妗:瘮?shù)traverse(S0,f1,f2)識別沿著從S0中的狀態(tài)開始的路徑的狀態(tài),這樣f1為真而f2不真直到,但是不包括,f2變?yōu)檎嫣幍臓顟B(tài)。這些狀態(tài)在圖5中由f1標(biāo)記和標(biāo)注并且在計算子公式f1的覆蓋率時成為新的起始狀態(tài)集。
traverse(S0,f1,f2)=S′0∪traverse(forward(S′0),f1,f2)其中S′0=S0∩T(f1)∩T(⫬f2).]]>除此之外,從S0前向遍歷時第一次遇到的滿足f2的狀態(tài)被認(rèn)為是計算命題子公式f2覆蓋率的起始狀態(tài)。這些狀態(tài)在圖5中由f2標(biāo)記和標(biāo)注并且由函數(shù)firstreached(S0,f2)計算。firstreached(S0,f2)=(S0∩T(f2))∪firstreached(forward(S0∩T(⫬f2)),f2)]]>Until公式的覆蓋集是從C(traverse(S0,f1,f2),f1)到C(firstreached(S0,f2),f2)的覆蓋的并集。
兩個子公式的合并的公式的覆蓋集簡單地是子公式覆蓋集的并集,因為為滿足合并的公式,兩個子公式必須由FSM滿足。
正確性定理給定具有初始狀態(tài)S1和帶有觀測信號q的可接受ACTL公式g的FSM M,上述算法為轉(zhuǎn)換公式g’=(g)和觀測信號q’正確計算由定義3規(guī)定的覆蓋狀態(tài)集,其中是可觀測性變換。
檢驗檢驗是通過引入公式的結(jié)構(gòu)。除了涉及臨時運(yùn)算符的三種情況,所有其他情況可以簡單地從覆蓋率定義、可觀測性變換和算法中獲得。AX和AG運(yùn)算符的情況直接遵循下面的等式
(M,forward(S0)|=f)(M,S0|=(AXf))(M,reachable(S0)|=f)(M,S0|=(AGf))最復(fù)雜的情況是Until運(yùn)算符。在可觀測性變換定義中的兩個術(shù)語對應(yīng)覆蓋率算法的兩個集。因為traverse(S0,f1,f2)表示從S0開始的路徑上的滿足f1但不滿足f2直到并且不包括滿足f2的狀態(tài),直到由C(traverse(S0,f1,f2),f1)計算的覆蓋集是A[f’1Uf2]的正確覆蓋集。同樣,由C(firstreached(S0,f2),f2)計算的覆蓋集是 的正確覆蓋集。
這個算法與傳統(tǒng)符號模型檢測算法有相同的復(fù)雜程度。兩者都基于采用二進(jìn)制決策圖表(BDDs)的固定點(diǎn)計算,其在最壞的情況下是指數(shù)的。在驗證期間計算的子公式的結(jié)果可以記住并在覆蓋率估算期間使用以達(dá)到更有效的應(yīng)用。實際上,覆蓋率估算在某些情況下比驗證稍微貴一些,因為其需要計算可到達(dá)狀態(tài)。這涉及對于CTL公式的實際驗證不必要的固定點(diǎn)計算。
在上述示范實施方案中,在計算了可到達(dá)狀態(tài)集和覆蓋狀態(tài)集之后,覆蓋率估算器給出覆蓋率百分比并且在一個實施方案中,打印出未覆蓋狀態(tài)列表。這一輸出幫助用戶編寫額外的屬性以覆蓋漏洞。覆蓋率估算器還通過執(zhí)行從初始狀態(tài)到未覆蓋狀態(tài)經(jīng)過最短路徑的寬度第一次可到達(dá)性分析以及生成對于該路徑的輸入序列打印到未覆蓋狀態(tài)的軌跡。形式驗證中屬性覆蓋率的示范實現(xiàn)上述覆蓋率度量的實施方案在驗證完整性上獲得高置信度方面很有用。在正規(guī)規(guī)定和驗證周期完成并且用戶對驗證完整性相當(dāng)有信心之后,應(yīng)當(dāng)使用測量想要屬性的覆蓋率的覆蓋率估算器模塊。在一個實施方案中,由模型檢測模塊執(zhí)行驗證。覆蓋率估算器模塊則測量想要屬性的覆蓋率。
采用這里介紹的度量,驗證工程師能夠識別電路顯示的沒有經(jīng)過任何屬性檢測的行為。這個過程的第一步是檢查覆蓋率估算器提供的未覆蓋的狀態(tài)。如果從這步檢查中沒有馬上明顯看出如何增強(qiáng)驗證以覆蓋漏洞,則第二步是指示本發(fā)明的系統(tǒng)生成特定未覆蓋狀態(tài)的軌跡。這些軌跡是導(dǎo)致未覆蓋狀態(tài)的電路行為的證據(jù)并且提供關(guān)于獲得更高覆蓋率需要的額外屬性的特性的有力線索。然后用戶可以通過編寫額外屬性或者通過減弱前項或增強(qiáng)后項改善已有屬性來增強(qiáng)驗證。在一個實施方案中,對于每個主要輸出信號和每個重要電路信號建議的最小覆蓋率要求是100%的覆蓋率。
未被屬性覆蓋的狀態(tài)集的很大一部分是在其上觀測信號值與電路正確性不相關(guān)的狀態(tài)。在一個實施方案中,用戶提供這些“不關(guān)心”的狀態(tài)作為狀態(tài)變量的一組命題并且排除在覆蓋率空間之外以給出更實際的覆蓋率估計。
模型檢測系統(tǒng)表達(dá)的公平條件限制系統(tǒng)在屬性驗證期間只看公平路徑,也就是公平限制通常是無限地真實的路徑。因此公平限制的存在要求覆蓋率估計算法也忽略未指向公平路徑的狀態(tài)。在一個實施方案中,覆蓋率作為沿公平路徑可到達(dá)的狀態(tài)部分計算。
按照本發(fā)明的覆蓋率估算器模塊與一個版本的SMV一起實現(xiàn)并且應(yīng)用于來自一個微處理器設(shè)計的電路。選擇來自每個電路的信號作為觀測信號并且應(yīng)用估算器確定驗證屬性的覆蓋率以檢測上述信號的行為。下面的表2給出測量了覆蓋率的觀測信號的名稱,為該信號驗證的屬性的數(shù)量,為給定屬性集獲得的覆蓋率,以BDD節(jié)點(diǎn)數(shù)量和在HP9000工作站上按秒計的運(yùn)行時間方式測量的模型檢測性能,以及覆蓋率估算器的運(yùn)行時間性能。
表2覆蓋率結(jié)果
電路1是一個優(yōu)先級緩存,按照其優(yōu)先級(高或低)排定和存儲進(jìn)入項。該模型有24個變量。給定已經(jīng)在緩存中項的數(shù)量和輸入項數(shù)量,上述屬性規(guī)定在下一時鐘緩存中的項的正確數(shù)量。例如,如果緩存中目前有B個項和I個輸入項并且B+I小于緩存的大小,則下一時鐘該緩存應(yīng)該有I+B個項。高或低的優(yōu)先級項由不同屬性檢測,并且其數(shù)量被作為觀測信號。驗證屬性集應(yīng)該提供所有可能情況的完全分析,但是當(dāng)緩存是空的并且有低優(yōu)先級的項輸入時會有遺漏的情況沒有覆蓋到,這些項需要存儲。編寫一個簡單的額外屬性以覆蓋這種情況。這一屬性的驗證失敗并且實際上反映了緩存設(shè)計中有程序錯誤。
電路2是一個由讀指針、寫指針和換行位控制的循環(huán)隊列,無論何時哪個指針繞回該隊列就進(jìn)行切換(toggle)。其也有停止、清除和復(fù)位信號作為輸入。編寫屬性以驗證換行位、完整和空信號的正確操作。該模型有38個變量。對完整和空信號的覆蓋率是100%。但是換行位的覆蓋率是60%。檢查未覆蓋的狀態(tài),編寫了三個額外屬性仍沒有達(dá)到100%覆蓋率。跟蹤通向這些未覆蓋狀態(tài)的輸入/狀態(tài)序列并發(fā)現(xiàn)當(dāng)寫指針繞回時,如果聲明停止信號,則換行位的值就沒有檢測。在屬性規(guī)定期間很容易遺漏這種細(xì)微的角落情況。增加一個屬性來規(guī)定換行位在這種情況下保持不變并獲得100%覆蓋率。
電路3是一個處理器在指令解碼階段的管道。管道數(shù)據(jù)通路的寬度抽象為一個單一比特。驗證這個信號上的屬性以檢測通過管道的數(shù)據(jù)的正確分段,而不是實際的數(shù)據(jù)轉(zhuǎn)換。這些屬性通常采用的形式是到管道的一個輸入在stall上給定確定適當(dāng)條件時最終出現(xiàn)在輸出處。最終模型有15個變量。通過識別未覆蓋狀態(tài)并且增強(qiáng)屬性集,覆蓋率增加到100%。
這些例子說明覆蓋率估計可以改善FV的質(zhì)量。運(yùn)行時間和存儲器需要與實際驗證需要的相似。而且,上述例子是常用FV屬性的一個很好的代表緩存涉及的句法簡單的屬性,如AG(p1→AX…AXp2)以及管道需要的以嵌套方式使用Until操作符的偶然性屬性,如AG(p1→A[p2UA[p3Up4]])。結(jié)論上述詳細(xì)描述已經(jīng)描述了用于基于模型檢測的驗證方法論的覆蓋率度量。還描述了一個適用于CTL重要子集的用于模型檢測的覆蓋率度量的示范實施方案。覆蓋率度量識別屬性覆蓋漏洞,其能夠發(fā)現(xiàn)逃過模型檢測過程的程序錯誤。
雖然這里說明和描述了特定實施方案,但本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,任何被考慮以獲得相同目的的方案可以替代上述特定實施方案。這一申請目的是覆蓋本發(fā)明的任何修改或變化。因此,本發(fā)明僅受權(quán)利要求書和其等同物的限制。
權(quán)利要求
1.一種測量形式驗證屬性覆蓋率的方法,該方法包括接收一個邏輯設(shè)計模型,其中該模型有多個狀態(tài);接收一個為該邏輯設(shè)計的模型驗證的屬性;接收一個或多個該屬性的觀測信號;以及提供一組覆蓋狀態(tài),在其中檢測一個或多個上述觀測信號的值足以確定該屬性的正確性。
2.權(quán)利要求1的方法,還包括為該屬性的一個或多個觀測信號確定一組可到達(dá)狀態(tài);以及計算覆蓋率百分比,其中覆蓋率百分比是可到達(dá)狀態(tài)集的一部分。
3.權(quán)利要求2的方法,還包括如果覆蓋率百分比小于100%,則提供一組未覆蓋的狀態(tài)。
4.權(quán)利要求3的方法,還包括顯示包括未覆蓋狀態(tài)集的狀態(tài)列表。
5.權(quán)利要求4的方法,其中狀態(tài)列表包括可以由用戶按需要修改的未覆蓋狀態(tài)集。
6.權(quán)利要求1的方法,還包括顯示包括覆蓋狀態(tài)組的狀態(tài)列表。
7.權(quán)利要求6的方法,其中狀態(tài)列表包括可以由用戶按需要修改的覆蓋狀態(tài)集。
8.權(quán)利要求1的方法,還包括生成通向覆蓋狀態(tài)集中一個狀態(tài)的狀態(tài)軌跡。
9.權(quán)利要求3的方法,還包括生成通向未覆蓋狀態(tài)集中一個狀態(tài)的狀態(tài)軌跡。
10.權(quán)利要求9的方法,其中生成上述軌跡還包括執(zhí)行從一個或多個初始狀態(tài)到未覆蓋狀態(tài)經(jīng)過最短路徑的寬度第一次可到達(dá)性分析以及生成對于該最短路徑的輸入序列。
11.一種測量形式驗證屬性覆蓋率的方法,該方法包括接收一個邏輯設(shè)計模型,其中該模型有多個狀態(tài);接收一個為該邏輯設(shè)計的模型驗證的屬性;接收一個或多個該屬性的觀測信號;以及為該屬性的一個或多個觀測信號提供一個覆蓋狀態(tài)集,其中該覆蓋狀態(tài)集包括在其中改變該狀態(tài)中上述觀測信號的值導(dǎo)致該屬性失敗的每個狀態(tài)。
12.權(quán)利要求11的方法,還包括為該屬性的一個或多個觀測信號提供一個未覆蓋狀態(tài)集,其中該未覆蓋狀態(tài)集包括其中觀測信號的值對該屬性正確性沒有影響的每個狀態(tài)。
13.權(quán)利要求11的方法,還包括為該屬性的一個或多個觀測信號確定一個可到達(dá)狀態(tài)集;以及計算覆蓋率百分比,其中覆蓋率百分比是可到達(dá)狀態(tài)集的一部分。
14.權(quán)利要求11的方法,還包括顯示一個包括覆蓋狀態(tài)集的狀態(tài)列表。
15.權(quán)利要求14的方法,其中上述狀態(tài)列表包括可由用戶按需要修改的覆蓋狀態(tài)集。
16.權(quán)利要求12的方法,還包括顯示一個包括未覆蓋狀態(tài)集的狀態(tài)列表。
17.權(quán)利要求16的方法,其中狀態(tài)列表包括可由用戶按需要修改的未覆蓋狀態(tài)集。
18.權(quán)利要求11的方法,還包括生成通向一個覆蓋狀態(tài)的狀態(tài)軌跡。
19.權(quán)利要求12的方法,還包括生成通向未覆蓋狀態(tài)之一的狀態(tài)軌跡。
20.權(quán)利要求19的方法,其中提供上述軌跡還包括執(zhí)行從一個或多個初始狀態(tài)到未覆蓋狀態(tài)經(jīng)過最短路徑的寬度第一次可到達(dá)性分析以及生成對于該最短路徑的輸入序列。
21.一種測量形式驗證屬性覆蓋率的方法,該方法包括為第一個屬性的第一個觀測信號提供第一個覆蓋狀態(tài)集;為第二個屬性的第二個觀測信號提供第二個覆蓋狀態(tài)集;以及在第一個覆蓋狀態(tài)集和第二個覆蓋狀態(tài)集之間執(zhí)行合并操作,以便為第一個屬性和第二個屬性確定第三個覆蓋狀態(tài)集。
22.一種制品包括一種包括指令的計算機(jī)可讀介質(zhì),當(dāng)執(zhí)行這些指令時導(dǎo)致計算機(jī)接收一個邏輯設(shè)計模型,其中該模型有多個狀態(tài);接收一個為該邏輯設(shè)計的模型驗證的屬性;接收一個或多個該屬性的觀測信號;以及提供一組覆蓋狀態(tài),在其中檢測一個或多個上述觀測信號的值足以確定該屬性的正確性。
23.權(quán)利要求22的制品,其中計算機(jī)可讀介質(zhì)還包括指令,當(dāng)執(zhí)行這些指令時導(dǎo)致計算機(jī)為該屬性的一個或多個觀測信號確定可到達(dá)狀態(tài)集;并且計算覆蓋率百分比,其中覆蓋率百分比是可到達(dá)狀態(tài)集的一部分。
24.權(quán)利要求22的制品,其中計算機(jī)可讀介質(zhì)還包括指令,當(dāng)執(zhí)行這些指令時導(dǎo)致計算機(jī)為該屬性的一個或多個觀測信號提供未覆蓋狀態(tài)集。
25.一種制品包括一種包括指令的計算機(jī)可讀介質(zhì),當(dāng)執(zhí)行這些指令時導(dǎo)致計算機(jī)接收一個邏輯設(shè)計模型,其中該模型有多個狀態(tài);接收一個為該邏輯設(shè)計的模型驗證的屬性;接收一個或多個該屬性的觀測信號;以及為該屬性的一個或多個觀測信號提供一個覆蓋狀態(tài)集,其中該覆蓋狀態(tài)集包括在其中改變狀態(tài)中一個或多個上述觀測信號的值導(dǎo)致該屬性失敗的每個狀態(tài)。
26.帶有計算機(jī)可執(zhí)行模塊的計算機(jī)可讀介質(zhì)包括用于驗證邏輯設(shè)計滿足一個或多個屬性的模型檢測模塊;以及用于測量一個或多個屬性覆蓋率的覆蓋率估算器模塊。
27.權(quán)利要求26的計算機(jī)可讀介質(zhì),其中用計算樹邏輯屬性規(guī)定語言規(guī)定了一個或多個屬性。
28.一種測量仿真測試覆蓋率的方法,該方法包括接收一組仿真測試;接收一組仿真檢測器;接收一組觀測信號;以及為一個或多個觀測信號提供一個覆蓋狀態(tài)集,其中該覆蓋狀態(tài)集包括在仿真測試期間,仿真檢測器在其中檢測了上述觀測信號值的每個狀態(tài)。
29.一種測量形式驗證屬性覆蓋率的方法,該方法包括接收一個邏輯設(shè)計模型,其中該模型有多個狀態(tài);接收一個為該邏輯設(shè)計的模型驗證的屬性;接收一個或多個該屬性的觀測信號;以及提供一組覆蓋狀態(tài),在其中檢測一個或多個上述觀測信號的值足以確定該屬性的正確性。
30.一種測量形式驗證屬性覆蓋率的方法,該方法包括接收一個邏輯設(shè)計模型,其中該模型有多個狀態(tài);接收一個為該邏輯設(shè)計的模型驗證的屬性;接收一個或多個該屬性的觀測信號;以及為該屬性的一個或多個觀測信號提供一個覆蓋狀態(tài)集,其中該覆蓋狀態(tài)集包括在其中改變該狀態(tài)中一個或多個上述觀測信號的值導(dǎo)致該屬性失敗的每個狀態(tài)。
全文摘要
本發(fā)明的一個方面是一種覆蓋率度量以確定由模型檢測驗證的屬性覆蓋的狀態(tài)空間部分。在每個屬性中,確定一個信號(或幾個信號的命題)作為該屬性中的觀測信號。覆蓋率度量測量與該觀測信號相關(guān)的一組屬性的覆蓋率。該覆蓋率度量確定可到達(dá)狀態(tài),其中上述觀測信號的值確定驗證屬性的正確性??刹捎靡环N模型檢測算法來檢測在這些“覆蓋”狀態(tài)中上述觀測信號上的正確性條件,以證明該屬性是正確的或是不正確的。
文檔編號G06F17/50GK1421013SQ00809255
公開日2003年5月28日 申請日期2000年6月20日 優(yōu)先權(quán)日1999年6月20日
發(fā)明者Y·V·霍斯科特 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
青冈县| 沁阳市| 永新县| 太仆寺旗| 苏尼特右旗| 甘谷县| 图片| 延长县| 磐安县| 武清区| 亚东县| 梓潼县| 张家口市| 阜南县| 丽江市| 绥芬河市| 凤山市| 奉化市| 西和县| 榕江县| 温泉县| 九江县| 都江堰市| 盐池县| 澄城县| 凤台县| 静安区| 柏乡县| 兰溪市| 沾化县| 乐平市| 饶阳县| 通许县| 安多县| 上栗县| 治县。| 哈巴河县| 吴桥县| 隆子县| 赞皇县| 调兵山市|