TW201015364A - Method and apparatus for merging EDA coverage logs of coverage data - Google Patents
Method and apparatus for merging EDA coverage logs of coverage data Download PDFInfo
- Publication number
- TW201015364A TW201015364A TW098125909A TW98125909A TW201015364A TW 201015364 A TW201015364 A TW 201015364A TW 098125909 A TW098125909 A TW 098125909A TW 98125909 A TW98125909 A TW 98125909A TW 201015364 A TW201015364 A TW 201015364A
- Authority
- TW
- Taiwan
- Prior art keywords
- coverage
- record
- verification
- hardware description
- circuit design
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Description
201015364 六、發明說明: 【發明所屬之技術領域及先前技術】 電子設計自動化EDA在半導體工業中實際地施用於 所有裝置設計專案上。在針對該產品之槪念開發後,使用 EDA工具以界定具體的實作。在稱爲定案之程序中,使 用EDA工具界定之實作係用於產生用於遮罩製造之遮罩 資料,該等遮罩係用於該等已完成晶片之製造中的微影使 用。然後使用生產裝備產生及使用該等遮罩,以製造積體
P 電路晶圓。將該等晶圓分割、封裝、及裝配以提供用於銷 售之積體電路晶片。 使用EDA工具之設計的範例程序係從使用架構界定 工具之整體系統設計開始,該架構界定工具描述待使用該 « 積體電路實作之產品的功能性。其次,施用邏輯設計工具 以基於諸如Verilog或VHDL的描述語言產生高階描述, 並在疊代過程中施用功能驗證工具以確信該高階描述實現 φ 該設計目標。其次,使用合成及可測試設計工具以將該高 階描述轉換爲網路連線表、針對目標技術最佳化該網路連 線表、並設計及實作容許該已完成晶片對該網路連線表之 檢查的測試。 典型的設計流程其次可能包含在其中建構及分析用 於該晶片之整體平面佈置的設計規劃級,以確保用於該網 路連線表的時序參數可在高階實現。其中,可能以時序限 制並以在高階使用VHDL或Verilog界定之功能定義嚴格 地檢查該網路連線表的一致性。在選定網路連線表之疊代 -5- 201015364 過程並將該網路連線表映射至用於該最終設計的元件庫後 ,使用用於佈局及佈線之實體實作工具。實施佈局之工具 將電路元件定位在佈置中,且實施佈線的工具界定用於該 等電路元件的互連。 在佈局及佈線後界定的該等組件之後通常使用擷取 工具在電晶體層級上分析,及驗證,以確保實現該電路功 能並符合時序限制。該佈局及佈線程序在必要時可以疊代 方式重臨。其次,該設計受分析可製造性、電氣效能、微 影參數、以及電路正確性之實體驗證程序驗證,諸如設計 規則檢查DRC、佈置規則檢查LRC、以及佈局對電路 LVS檢查。 在藉由叠代設計及驗證程序得到可接受設計之後, 如上文所述,所產生的設計可受提供該佈局之幾何處理的 解析度增強技術處理,以改善可製造性。最後,製備並定 案用於已完成產品之生產的該遮罩資料。 【發明內容】 本技術的一實施樣態係合倂覆蓋率記錄之電子設計 自動化方法。該等覆蓋率記錄係由一硬體描述語言電路設 計的驗證產生。當產生該等覆蓋率記錄時合倂該等覆蓋率 記錄,無須等待所有未決驗證之覆蓋率記錄。未決驗證之 範例係未決動態模擬(例如,純隨機模擬、導引隨機模擬 、以及純導引模擬)及未決正式驗證。 在部分實施例中,該等覆蓋率記錄中的至少一者係 -6- 201015364 由該硬體描述語言電路設計之模擬所產生。在部分實施例 中,覆蓋率記錄的合倂導致包含正式驗證覆蓋率資料之已 合倂覆蓋率記錄。 不同實施例具有回應於覆蓋率記錄之合倂的結果。 一此種回應係變更該硬體描述語言電路設計之一未決模擬 的一條件。改變條件的範例包含變更輸入參數,諸如變更 輸入條件(例如,改變該輸入組態檔及/或參數,以在不同 _ 模式/組態中模擬該晶片,改變會依次加入更多限制及/或 放寬既存限制之該測試台控制參數,從而導致不同的待產 生輸入剌激)或改變隨機因子條件。 _ 其他此種結果係釋放至少一部分的大量儲存器。 其他此種結果-不僅回應於覆蓋率記錄的合倂,也回 應於符合之預定條件-係產生覆蓋率報告。 其他此種結果係決定將一未決驗證的完成視爲不足 以改善該硬體描述語言電路設計的驗證覆蓋率。決定該未 Φ 決驗證預期不足以改善驗證覆蓋率的一種方式係決定待藉 由未決模擬模擬之該硬體描述語言電路設計的屬性已模擬 。在一實施例中,當決定該未決驗證預期不足以改善驗證 覆蓋率時,則該未決驗證停止。 另一此種結果更新該硬體描述語言電路設計之驗證 覆蓋率的一覆蓋率度量。該覆蓋率度量包括來自該等覆蓋 率記錄之合併的覆蓋率資料。範例覆蓋率度量考慮判定覆 蓋率、功能覆蓋率、以及程序碼覆盡率(例如’線覆蓋率 、條件覆蓋率、分枝覆蓋率、路徑覆蓋率、觸發覆蓋率、 201015364 指定觸發覆蓋率)° 在部分實施例中’本技術從未就緒狀態改變爲就緒 狀態,以合倂覆蓋率記錄。回應於此狀態改變’要求在該 狀態改變前產生覆蓋率記錄資料· ° 部分覆蓋率產生多執行實例。此等多執行實例通常 實施該硬體描述語言電路設計之模擬的覆蓋率記錄之合倂 ,或驗證。 本技術的另一實施樣態係合倂覆蓋率記錄之電子設 計自動化方法。該等已合倂覆蓋率記錄包含一硬體描述語 言電路設計之一第一模擬的一第一覆蓋率記錄及該硬體描 述語言電路設計之一第二模擬的一第二覆蓋率記錄。該第 一模擬係基於該硬體描述語言電路設計的一第一硬體驗證 語言覆蓋率模型。該第二模擬係基於該硬體描述語言電路 設計的一第二硬體驗證語言覆蓋率模型。該第二硬體驗證 ΐ吾言覆蓋率模型新於且不同於該第一硬體驗證語言覆蓋率 模型。 該硬體描述語言電路設計的硬體描述語言包含 Verilog、SystemVerilog、及 VHDL 之任一者。 第一及第二硬體驗證語言模型的硬體驗證語言包含 SystemVerilog、Native Testbench、E、及 Vera 之任一者 〇 不同實施例具有控制覆蓋率資料是否刪除及/或保留 的不同條件,回應於該等覆蓋率記錄的合倂。 一此種條件包含回應於包含不同的最大數量之自動 -8- 201015364 產生箱的該第一覆蓋率記錄及該第二覆蓋率記錄,保持該 第二覆蓋率記錄之該覆蓋點的覆蓋率資料並刪除來自該第 一覆蓋率記錄之該覆蓋點的覆蓋率資料。 另一此種條件包含回應於包含具有一箱名不存在於 該第二覆蓋率記錄中的一箱之該第一覆蓋率記錄,在該合 倂後刪除該箱的覆蓋率資料。 另一此種條件包含回應於包含具有一箱名存在於該 第二覆蓋率記錄中的一箱之該第一覆蓋率記錄,在該合倂 後保持該箱的覆蓋率資料。 另一此種條件包含回應於具有一覆蓋點之該第一覆 蓋率記錄及具有該覆蓋點之該第二覆蓋率記錄,該覆蓋點 在該第一覆蓋率記錄中具有一第一表示寬度且在該第二覆 蓋率記錄中具有與該第一表示寬度不同之一第二表示寬度 ,保持具有該第二表示寬度之該覆蓋點的覆蓋率資料而刪 除具有第一表示寬度之該覆蓋點的覆蓋率資料。 另一此種條件包含回應於具有一箱之該第一覆蓋率 記錄且該第二覆蓋率記錄具有該箱,該箱在該第一覆蓋率 記錄中具有一第一箱界定且在該第二覆蓋率記錄中具有與 該第一箱界定不同之一第二箱界定,然後在該合倂後,保 持具有該第二箱界定之該箱的覆蓋率資料而刪除具有該第 一箱界定之該箱的覆蓋率資料。 另一此種條件包含回應於包含至少命名爲二覆蓋率 點識別符的一交叉覆蓋率點之一交叉覆蓋率點名稱的該第 一覆蓋率記錄,且該第二覆蓋率記錄包含至少命名爲該二 -9 - 201015364 覆蓋率點識別符的該交叉覆蓋率點之該交叉覆蓋率點名稱 ,然後回應從該第一覆蓋率記錄刪除該等已識別覆蓋率點 之至少一者的覆蓋率資料,刪除該第一覆蓋率記錄之該交 叉覆蓋率點的覆蓋率資料。 另一此種條件包含回應於包含一第一交叉覆蓋率點 之一第一使用者界定交叉箱的該第一覆蓋率記錄,及包含 一第二交叉覆蓋率點之一第二使用者界定交叉箱的該第二 覆蓋率記錄,該第一交叉覆蓋率點及該第二交叉覆蓋率點 具有一相同名稱,盡管該第一使用者界定交叉箱及該第二 使用者界定交叉箱具有不同界定,保持該第一使用者界定 交叉箱的覆蓋率資料及該第二使用者界定交叉箱之覆蓋率 資料。 另一此種條件包含回應於包含一第一交叉覆蓋率點 之第一自動交叉箱的該第一覆蓋率記錄,及包含一第二使 用者界定交叉箱的該第二覆蓋率記錄,該第二使用者界定 交叉箱包括該第一交叉覆蓋率點的該等自動交叉箱,保持 在該第二覆蓋率記錄的該第二使用者界定交叉箱中之該等 第一自動交叉箱的覆蓋率記錄。 另一此種條件包含回應於包含—第一交叉覆蓋率點 之該第一覆蓋率記錄,及包含一第二交叉覆蓋率點的該第 一覆蓋率記錄,盡管該第一交叉覆蓋率點及該第二交叉覆 蓋率點具有不同的自動交叉覆蓋率空間,保持i)由該第二 交叉覆蓋率點之自動交叉覆蓋率空間所包括的該第一交叉 覆盡率點之自動父叉覆蓋率資料’以及該第二交叉覆 -10- 201015364 蓋率點的覆蓋率資料。 另一此種條件包含回應於包含不存在於該第一覆蓋 率記錄中之一交叉覆蓋率點的該第二覆蓋率記錄’保持該 交叉覆蓋率點。 另一此種條件包含回應於包含不存在於該第二覆蓋 率記錄中之一交叉覆蓋率點的該第一覆蓋率記錄,刪除該 交叉覆蓋率點。 另一此種條件包含回應於包含不存在於該第二覆蓋 率記錄中之性質覆蓋率的該第一覆蓋率記錄,保持該性質 覆蓋率。 另一此種條件包含回應於包含不存在於該第一覆蓋 率記錄中之性質覆蓋率的該第二覆蓋率記錄’保持該性質 覆蓋率。
本技術的其他實施樣態相關於具有用於電路設計之 電腦可讀指令的電腦可讀媒體’包含實施本文描述之本技 術的電腦指令。本技術的其他實施樣態相關於具有儲存實 施本文描述之本技術的電腦指令之記憶體的電腦。 【實施方式】 圖1係積體電路製造的簡化流程圖’從槪念階段、 經過電子設計自動化(EDA)階段、並結束於該等積體電路 〇 圖1顯示例示之數位積體電路及測試流程的簡圖。 如同本文之所有流程圖’將領會圖1中的許多步驟可組合 -11 - 201015364 、平行實施或以不同順序實施,而不影響已實現的功能。 在部分情形中,步驟的重配置僅將於也造成特定其他改變 時實現相同結果,且在其他情形中,步驟的重配置僅將於 滿足特定條件時實現相同結果。此種重配置可能性對讀者 將係明顯的。 在高階流程,圖1之程序從產品槪念開始(步驟1〇〇) ,並在EDA(電子設計自動化)軟體設計程序中實現(步驟 110)。當該設計完成時,生產程序(步驟150)及封裝與裝 配程序(步驟160)發生,最終,導致已完成積體電路晶片( 結果170)。在步驟180中,部分或所有該等已完成晶片 使用預定測試向量及預期回應在測試機台上測試。 該EDA軟體設計程序(步驟110)實際上由若干步驟 1 12-130所組成,爲簡化,以線性方式顯示。在實際的積 體電路設計程序中,特定設計可能必須返回以通過步驟, 直到通過特定測試。相似地,在任何實際設計程序中,此 等步驟可能以不同順序及組合發生。因此此描述係藉由上 下文及一般解釋的方式提供,而非以用於特定積體電路之 具體、或建議的設計流程提供。 現在將提供該EDA軟體設計程序(步驟1 1〇)之組成步 驟的簡短描述。 系統設計(步驟1 12):設計者描述彼等希望實作的功 能、假使規畫改進功能彼等能實施的功能,檢查成本等。 硬體-軟體架構劃分可發生在此階段。來自Synopsys,Inc. 之可在此步驟使用的範例EDA軟體產品包含Model 201015364
Architect、Saber、System Studio、以及 Design Ware® 產 品。 邏輯設計及功能驗證(步驟114):在此階段,撰寫用 於該系統中之模組的VHDL或Verilog碼,並針對功能正 確性檢查該設計。更具體地說,檢查該設計以確保其產生 正確的輸出,以回應於特定的輸入刺激。來自Synopsys, Inc.之可在此步驟使用的範例EDA軟體產品包含VC S、 VERA、DesignWare®、Magellan、Formality、ESP、以及 LEDA產品。然而部分設計在此階段可能已包含特定之可 測試設計特性,諸如掃描鏈及關聯之掃描壓縮或解壓縮電 路,當彼等在本文中使用時,並不包含在該等術語「邏輯 設計」及「電路設計」中。
S 合成及可測試設計(DFT)(步驟116) ·•此處,將該 VHDL/Verilog轉換爲網路連線表。該網路連線表可針對 目標技術最佳化。此外,測試架構的實作係在此步驟中發 0 生,以容許該等已完成晶片的檢查。來自Synopsys,Inc. 之可在此步驟使用的範例EDA軟體產品包含Design Compiler®、Physical Compiler、Test Compiler、Power Compiler 、 FPGA Compiler 、 TetraMAX 、以及 DesignWare®產品。具有如上文所述之少數使用者指定組 態設定,用於實作測試架構之目前產品係DFT MAX。 DFT MAX於Synopsys之DFT MAX調適性掃描壓縮合成 的產品說明書(2 〇〇 7)中描述,以提及之方式倂入本文中。 網路連線表驗證(步驟1 18):在此步驟,檢查該網路 -13- 201015364 連線表對時序限制的一致性及與VHDL/Verilog原始碼的 對應性。來自SynopSyS,lnc.之可在此步驟使用的範例 EDA軟體產品包含F〇rmaiity、PrimeTime、以及VCS產 品。 設計規劃(步驟120):此處,係針對時序及頂層佈線 ,建構及分析用於該晶片之整體平面佈置。來自 Synopsys, Inc.之可在此步驟使用的範例EDA軟體產品包 含 Astro 以及 IC Compiler 產品。 實體實作(步驟122):佈局(電路元件的定位)及佈線( 該等元件的連接)在此步驟中發生。來自Synopsys, Inc.之 可在此步驟使用的範例EDA軟體產品包含該Astro以及 IC Compiler 產品。' 分析及擷取(步驟124):在此步驟,在電晶體等級驗 證該電路功能,假使可改善,此依序容許改善。來自 Synopsys, Inc.之可在此步驟使用的範例EDA軟體產品包 含 AstroRail、PrimeRail、Primetime 及 Star RC/XT 產品 ο 實體驗證(步驟126):在此步驟實施不同的檢查功能 ,以針對:製造、電性問題、微影問題、以及電路,確保 正確性。來自Synopsys, Inc.之可在此步驟使用的範例 EDA軟體產品包含該Hercules產品。 定案(步驟127):此步驟提供用於微影使用的遮罩之 生產的「定案」資料’以生產已完成晶片。來自 Synopsys,Inc.之可在此步驟使用的範例EDA軟體產品包 201015364 含該CATS(R)家族產品。 解析度增強(步驟128):此步驟包含該佈置的幾何處 理,以改善該計的可製造性。來自Synopsys,Inc.之可在 此步驟使用的範例 EDA軟體產品包含 Proteus、 ProteusAF、以及 PSMGen 產品。 遮罩製備(步驟130):此步驟包含遮罩資料製備及該 等遮罩自身的寫入二者。 本技術的實施樣態特別相關於上文所述之「邏輯設 ❿ 計及功能驗證」。 設計及功能驗證係提供該硬體描述語言電路設計滿 _ 足該電路之設計規格的程序。雖然靜態及動態驗證法二者 均有效,由於實施該硬體描述語言電路設計之正式檢驗的 限制,靜態法傾向受限於相對小的電路區塊。動態法依賴 該硬體描述語言電路設計的模擬,且不能實現完整驗證。 爲完成具有數百萬閘的最新複雜性之該硬體描述語言電路 φ 設計的適度徹底驗證,模擬環境執行大量具有不同條件的 模擬,諸如不同輸入條件或不同隨機因子。持續此種模擬 直到滿足該總計覆蓋率度量。 因爲遞增之計算資源的成本遞減趨勢,每次該模擬 模型調整時,熟悉本發明之人士傾向於重執行模擬以達成 滿足覆蓋率度量的結果。 將從該硬體描述語言電路設計之已完成模擬所產生 的覆蓋率資料作爲覆蓋率記錄儲存在大量儲存器中。不同 的電子設計自動化廠商通常具有彼等自有之非專屬覆蓋率 -15- 201015364 記錄,該等覆蓋率記錄僅儲存電子設計自動化覆蓋率資料 ,並不儲存以如Oracle、IBM、MySQL等提供之資料庫所 儲存的通用資料。覆蓋率資料係預期在模擬期間發生之一 組關注條件,或屬性。 在部分實施例中,合倂該等覆蓋率記錄。該覆蓋率 模型係期望在模擬期間觀察之一組關注條件。各模擬產生 代表由該模擬覆蓋之該覆蓋率模型的部位之覆蓋率記錄。 該合倂作業將該等覆蓋率記錄合計,以計算該覆蓋率模型 之何等部分係由所有模擬所共同覆蓋。 該等模擬係根據該硬體驗證語言覆蓋率模型而實施 ’其包含功能覆蓋率及判定覆蓋率。其他實施例包含一或 多個功能覆蓋率、判定覆蓋率、以及碼覆蓋率的不同組合 〇 覆蓋率資料在「針對SystemVerilog之IEEE標準-統 —硬體設計、規格、及驗證語言」,IEEE Std 1800中描 述’以提及之方式倂入本文中。下文對覆蓋率資料的描述 大多取此IEEE標準。 覆蓋率群組’或覆蓋群組可包含一或多個覆蓋率點 ’或覆蓋點。覆蓋率點可係整數變數或整數表示式。各覆 蓋率點包含關聯於其取樣値或其値轉變之一組箱。該等箱 可清楚地由使用者界定或由該硬體驗證語言環境自動產生 。用於覆蓋率點的箱可自動地由硬體驗證語言環境產生或 清楚地界定。 覆蓋率點箱’或箱,關聯於名稱及具有一組値或値 -16- 201015364 轉變序列之計數。若該箱指定一組値,每次該覆蓋率點與 該組中的値之一者符合時,該計數增加。若該箱指定値轉 變序列’每次該覆蓋率點與値轉變之全體序列符合時,該 計數增加。 因此’箱係識別受模擬的該硬體描述語言電路之屬 性的單元,使得在模擬後,該模型之覆蓋率度量係基於該 等箱計算。該覆蓋率度量係硬體描述語言電路設計之驗證 _ 過程的評估。該覆蓋率模型係所有箱的總計,包含箱之交 叉點及箱的覆蓋點。在部分實施例中,將相同模型用於所 有模擬,並將所產生的覆蓋率資料合倂。在其他實施例中 ’至少針對部分模擬使用不同模型,並選擇性地合併所產 生的覆蓋率資料。 覆蓋群組可指定在二或多個覆蓋率點或變數之間的 交叉覆蓋率。將N個覆蓋率點組的交叉覆蓋率界定爲與 該N個覆蓋率點關聯之所有箱的所有組合之覆蓋率,亦 φ 即,N組覆蓋率點箱的笛卡爾乘積。自動交叉覆蓋率係自 動產生之覆蓋率點與另一覆蓋率點的交叉覆蓋率。 覆蓋率點項的覆蓋率可取決於該覆蓋率點的箱係由 使用者清楚地界定或由工具自動地產生而不同地計算。 針對使用者界定箱,將覆蓋率點的覆蓋率計算爲:i) 該等已覆蓋箱之基準,亦即,所有(已界定)已覆蓋箱子集 ,與ii)該組已界定箱之基準的比率。 針對自動產生箱,將覆蓋率點的覆蓋率計算爲:i)該 已覆蓋率箱的基準,亦即,所有(自動界定)已覆蓋箱子集 -17- 201015364 ,與ii)a)代表該覆蓋率點的所需最小位元數量及 b)auto_bin_max之較小値的比率。 累積覆蓋率視爲係所有重要箱的聯集;因此,其包 含所有實例之所有箱(包含重覆箱)的作用。 爲決定是否覆蓋覆蓋率群組之特定箱,該累積覆蓋 率計算考慮所有經累計實例之at_least選項的値。,結帛, 在箱之擊點計數等於或超過所有實例之所有at_least値的 最大値之前,不將其視爲係已覆蓋。該最大値的使用代表 更保守的選擇。 圖2-4發表EDA驗證之實施例,特別係覆蓋率驅動 驗證。 此受討論實施例在覆蓋率記錄可合倂之前不需要產 生所有覆蓋率記錄。此方式在隨機迴歸測試環境中調整得 特別良好,在該環境中,具有大量輸入條件或隨機因子的 隨機測試一天執行24小時,一週執行7天。因爲覆蓋率 記錄係在最後覆蓋率記錄產生之前合倂,在此方式中,所 需之硬碟空間量不再直接與測試數量成比例。相似地,該 方式不必等待至最後模擬已完成運行,以取樣已合倂之覆 蓋率記錄。維持未處理(未合倂)覆蓋率記錄的管線。覆蓋 率記錄的早期總計也容許在所有測試已完成運行前,良好 地協助覆蓋率空區的識別及分析。「不良」刺激更快而非 較遲未受覆蓋。 圖2-4於下文中討論。 圖2係實施硬體驗證語言電路設計之模擬的系統之 -18- 201015364 簡化方塊圖。該系統包含獨立模擬客戶端210、檔案系統 220以儲存覆蓋率記錄、位置儲存庫伺服器23〇、以及合 倂常駐程式240。該模擬客戶端的行爲如同多個生產者, 且「urg」合倂常駐程式的行爲如同多個消費者並提供同 步化基元以維持該佇列的一致性。 獨立模擬客戶端210係產生功能覆蓋率記錄的獨立 隨機模擬。各測試客戶端傾印代表該覆蓋率模型之標定部 分的覆蓋率記錄。各客戶端確保下列各者: Φ 1) 不逾越至不同模擬客戶端的資料庫目錄。 2) 將該記錄儲存在可從該機械存取之槽案系統中,該 「urg常駐程式」在該機械上運行爲統一報告產生器。 3) 此等客戶端使用介面,諸如Perl,與該位置儲存庫 伺服器交談。 該等客戶端將該等覆蓋率記錄於該檔案系統220中 所在的目錄告知該位置儲存庫伺服器230。範例實作係具 • 有下列模範方法的物件導向 per丨介面,例如 VtgSimClientlntf · l)new :產生該物件之建構器。採用二命令引數及一 選擇性引數。 i)SerVer :運行該位置儲存庫伺服器之機械的名稱 ii)port:該位置儲存庫伺服器於其上運行的填號 iii)newmodel:此引數係選擇性的。預設値爲0。當 設定爲1時,其切換在該合倂伺服器用於彈性合倂的主模 型。 -19- 201015364 2)dispatchLocation :告知與該覆蓋率記錄的位置相 關之該位置儲存庫伺服器的方法。成功時傳回小的xml字 串,失敗時傳回undef。 範例1 : use VtgSimClientlntf; my $simcli = VtgSimClientIntf->new(server=>'vgamd84', port=>7070); my $retVal = $simcli ->dispatchDbLocation(“/u/foo/bar,vdb’’); 若成功,$retVal的値會係: <dbsummary currdb="/u/foo/bar.vdb" /> 範例2 : use VtgSimClientlntf; my $simcli = VtgSimClientIntf->new(server=>'vgamd84', port=>7070, newmodel=>l); my $retVal = $simcli ->dispatchDbLocation(tVu/foo/bar.vdb,,)j 此範例將合倂伺服器所使用的主覆蓋率模型切換至 儲存在/u/foo/bar.vdb下的一者。若成功,$retVal的値會 係: <dbsummary currdb="/u/foo/bar.vdb" /> 由於儲存來自大量獨立模擬客戶端210之該等覆蓋 率記錄的該等需求,檔案系統22 0持有共同代表大量儲存 量之巨量的覆蓋率記錄。 位置儲存庫伺服器23 0係輕量伺服器,其保持對由 -20- 201015364 獨立模擬所產生的獨立覆蓋率記錄目錄之位置的追蹤。其 保持對該頂目錄位置的追蹤。部分實施例不作資料移動。 合倂常駐程式2 4 0係查詢位置儲存庫伺服器2 3 0以 提取覆蓋率記錄列表進行處理的計算密集程序。然後從檔 案系統22 0存取並處理實際的覆蓋率記錄。整合工具,諸 如urg(統一報告產生器),合倂由獨立模擬所產生的覆蓋 率記錄’以計算該覆蓋率模型的何等部分由該套驗證中的 _ 所有測試共同地覆蓋。該等合倂常駐程式提供鉤,以在所 有覆蓋率記錄完成前取樣該等已累計之覆蓋率記錄。 圖3係顯示圖2之模擬系統的作業之簡化狀態圖。 早期狀態係啓動合倂伺服器310。該合倂伺服器啓動 , 並能接收覆蓋率記錄,且停用 「 SerV_p〇St_start_Call_back」。此回呼係用於提出當該合倂 伺服器離線時之已產生的任何覆蓋率記錄。若多個合倂伺 服器在相同機械上運行時,選項rdaemon_port_start」指 0 定該等合倂常駐程式於其後運行之該合倂伺服器的該埠。 中間狀態係活動狀態3 1 0。在模擬運行時,當特定模 擬工作結束時,其使用該模擬客戶端介面以提出該覆蓋率 記錄位置至該合倂伺服器。在此狀態,檢查點回呼發生。 在合倂預定數量之覆蓋率記錄(可藉由組態檔中的 cheCkp〇int_granularity 組態)或在正規期間(可藉由 time_granularity組態)之後,其針對各合倂常駐程式停用 該「檢查點回呼」。此回呼刪除不加入何任値或保持對該 覆蓋率度量如何改變之追蹤的覆蓋率記錄。 -21 - 201015364 之後的狀態係停止合倂伺服器3 3 0。在此點,停用用 於各合併常駐程式之daemon_post_call_back。實施清除 活動、寄送電子郵件等。 下文係關於合倂伺服器之鉤/回呼的細節,自 A)列表 至E): A) 覆蓋率記錄提出鉤:該鉤爲累計覆蓋率記錄,容 許覆蓋率記錄提出至該合倂伺服器。 B) 位置伺服器起動後回呼··(該圖中的「 serv_post_start_call_back」)一旦該合倂伺服器啓動並能 接收覆蓋率記錄’停用此回呼。此回呼應用於提出在當該 合倂伺服器離線時之已產生的任何覆蓋率記錄(使用該覆 蓋率記錄提出鉤)。 C) 檢查點回呼:(該圖中的checkpoint_callback)此回 呼在正規期間停用,藉由以下參數組態: 1) time_granularity :使用者將此參數設定爲—値(單 位爲秒)以指示此回呼何時應停用。例如,若該値爲1 8 〇 〇 秒,該回呼將於每1 8 0 0秒後停用。 2) checkpoint_granularity :使用者可設定此參數以指 示應停用此回呼的頻率。例如,若該値設定爲900,則此 回呼將在每合倂900個覆蓋率記錄後停用。 除了上述預定條件外,停用此回呼並產生覆蓋率報 告之其他預定條件係該已合倂覆蓋率記錄到達的覆蓋率百 分比或其他覆蓋率度量量。 若設定該等參數二者,則無論何事件首先發生,該 -22- 201015364 回呼將停用。該checkpoint_callback具有下列資訊: 1) 在該最後回呼中用於各度量的基本分數 2) 針對各已合倂覆蓋率記錄,該檢査點回呼具有下列 資訊:2a)該覆蓋率記錄的名稱,2b)針對各度量的累計覆 蓋率分數 此回呼可用於實作定製行動。彼等之一部分提及如 下: _ 1)遞增分級:若針對覆蓋率記錄的遞增覆蓋率分數爲 零,則可刪除其。將藉由測試加入的遞增覆蓋率建入由該 合倂伺服器所暴露之該等鉤中。所以,若覆蓋率記錄不加 入任何値,可迅速地將其刪除,從而藉由約爲受標定之可 覆蓋物件的總數量約束所需之大量儲存器的量。 2) 監視覆蓋率分數如何隨時間改變:此回呼可用於畫 出該覆蓋率分數如何隨時間改變。若該覆蓋率分數不改變 或改變得非常少,該客戶端可企圖改變該刺激或指示真人 φ (經由電子郵件/傳呼器)必須採取行動。 3) 良好測試的備份:該客戶端可決定特定覆蓋率記錄 是否指示覆蓋率分數中的改變或覆蓋難以擊點/覆蓋之可 覆蓋物件,並備份該測試。 通常,檢查點回呼指令能與該合倂常駐程式非同步 地運行。該合倂常駐程式將不等待該腳本完成。該檢查點 回呼介面係能處理xml檔案之指令。若該指令係「cpcb」 ,在產生檢查點後,會從該合倂常駐程式將其調用爲「 cpcb path-to-a-valid-xml-file」° -23- 201015364 該檢査點回呼介面檔案的範例方案如下: <!ELEMENT checkpointed—databases (basescore) (dir*)> <!ELEMENT basescore (score*) > <!ATTLIST basescore EMPTY> 〈ELEMENT dir (test*) > <!ATTLIST dir path CDATA #REQUIRED> <!ATTLIST dir error (yes|no) #REQUIRED> <!ATTLIST dir newmodel (yes|no) #OPTONAL> 'test (score*) > test name CDATA #REQUIRED> <!ELEMENT score > <!ELEMENTi
<!ATTLIST <!ATTLIST score metric (assert|testbench|line|cond|fsm|branch)# REQUIRED > <!ATTLIST score numerator CDATA #REQUIRED> <!ATTLIST score denominator CDATA #REQUIRED> 該「basescore」元件包含針對將所有覆蓋率記錄目 _ 錄遞增地合併於其上之該測試的覆蓋率資料分數。 該「dir」元件代表已處理之頂層覆蓋率記錄目錄。 屬性「path」指示該目錄的位置。屬性「error」指示當處 理該目錄時,若發生錯誤。將該等錯誤細節重導向至檔案 G 「err.log」。 「分數」代表各測試在藉由度量基底之度量上的覆 蓋率分數。 範例檢查點回呼檔案如下: -24- 201015364 <checl^inted_databases> <basescore > <score metric="assert" numeratoWO" denominator="0" /> <score metric=Mtestbenchn numerato^'O" denominator=nOM t> </basescore>
<dirpath="/remoteMghome6/manojb/demo/p的 imk/db一0",em>F="no"> <testname=7remote/vtghome6/manojb/demo/pr^xmk/db_0/resultsM <scoremetric=MassertH numerator=MlM denominator="l" />
<score metric="testbenchM numerator="0" denominator="0" /> </test> <test name=7remote/vtghome6/manojb/demo/pr/junk/db_0/t3n > <score metric=MassertM numerato^'T* denominator=HlM A> </test> <test name=7remote/vtghome6/manojb/demo/pr/junk/db_0/testM > <score metric=nassertf! numerator^'T1 denominator''Γ1 f>
<score metric="testbench" nnmerator="47M denominator=tl50997H /> </test> </dir> <dir path=,7remote/vtghome6/manojb/demo/pr/junk/db_lH, error=nnon newmodel=Myes"> <test naxne=7remote/vtghome6/manojb/demo/pr/junk/db_l/results1' > <scoremetric="assertM numerator='T, denominator="lH /> -25- 201015364 /> <score metric=Mtestbenchn numerator=M47" denominator="50997!l <ytest> <test name=7remota/vtghome6/manojb/demo/pr/junk/db_l/t3i, > <score metric=Hassertn numerator=MlM denominator" 1M /> <score metric=HtestbenchM numerator=M47M denommator='!50997'1 t> </test> <test name=M/remote/vtghome6/inanojb/demo/pr/junk/db_l/test" > <score metric="assert" numerator^’’ 1" denominator^’’ 1" > <score metric='ftestbench" numerator="47M denominator=5M50997" />
</test> </dir> </ checkpointed_databases> D) 常駐程式啓動前回呼:(圖中之 daemon_pre_call_back)。一且該合倂常駐程式開始處理覆 蓋率記錄之前,停用此回呼。此回呼可用於針對各合倂常 駐程式收集統計。 E) 常駐程式啓動後回呼:(圖中之 daemon_post_call_back)當該合倂伺服器停止時,停用此 回呼。針對各合倂常駐程式停用一此種回呼。此可用於採 取如下之行動: 1. 產生定製報告 2. 傳送電子郵件等 圖4係圖2及3之該模擬系統的簡化目錄結構。 預設各合倂常駐程式在由directory _p re fix指定的該 目錄內側產生次目錄。例如,針對由「./aggregated_data 」所指定的預定組態檔,產生圖4之目錄結構。「 -26- 201015364
UrgDaemon_l/UserDir/MergeDb」係由第一合倂常駐程式 所產生 的累計 覆蓋率 記錄。 ^ UrgDaemon_l/UserDir/err.log」係用於由該第一常駐程式 完成之覆蓋率記錄累計的錯誤記錄檔。將錯誤(訛誤覆胃 率記錄、該工具中的錯誤/故障)重導向至此檔案。 下文係在位置儲存庫伺服器230啓動合倂伺服器的 範例語法。 mergeserv [—.config=<config-file>] -start卜-stop C〇nfig_file係由該合倂伺服器讀取之該[選擇性]組態 檔。此組態檔的範例格式提供如下。 --start :啓動該合倂伺服器。若該合倂伺服器已在運 行中,此選項不作任何事。 --stop :停止該合倂伺服器。此初始該停止序列。在 已合倂所有的已提出資料庫後,該合倂伺服器停止。 範例合倂伺服器組態檔以xml格式顯示如下。
<mserv_config> <location_serv port="7070" datadir=7u/regress_usr/locationdb” /> <serv』ost一start—call-back command=”submit一again” /> <merge_daemon num=M2'! directoryjprefix-#./aggregated_data,s> <daemon_j>re一call一backcommand=”pre.pl’’/t> 〈merge一daemon—options checkpoint—granularity^OO” time_gramilarity="900” /> <check_point—call一back command=’’foo.pr /> <daemon_j)〇st__call_back command-,post.prV> 〈/merge—daemon〉 </mserv_config> 在此範例預設組態中: -27- 201015364 1) 位置儲存庫伺服器在埠7070上運行。 2) 停用合倂常駐程式的單一實例。 3) 所有合倂常駐程式客戶端將該累計資料產生在目錄 r aggregated_dataj 下。 4) 合倂伺服器在一記錄中維持未處理覆蓋率記錄的列 表,該記錄儲存在由屬性d at adir指定的該目錄下。在許 多實施例中’僅有運行該合倂伺服器的該使用者具有此目 錄的寫入權限。datadir的預設値爲「.」。 該合倂常駐程式之多個實例的運行係效能最佳化, 以處理覆蓋率記錄迅速地產生之情形。爲在相同機械上運 行多個合倂伺服器’用於停用該等獨立合倂伺服器之組態 檔不應彼此衝突。具體地說,在該組態檔中的下列項目不 應衝突。 i) location一serv port ii) datadir iii) directory ^prefix iv) daemon_port—start 相同的’任何與該等合倂伺服器共用之回呼腳本不 應修改相同的系統資源。例如,若該檢査點回呼在某個檔 案/目錄中儲存有用的測試資訊,由該等獨立回呼腳本使 用的該檔案/目錄應隨各合倂伺服器而異。 此處係用於在相同機械上運行二合倂伺服器之取樣 組態檔的範例。 -28- 201015364 <mserv_config> 〈location—serv port=’’7070" datadir=,’/u/regress一usr/locationdb” > <serv_post一start一call-back /> 〈merge—daemon num="2" directory_prefix=”./aggregated一data,5> <daemon_pre_call_back command-5pre.pr^ 〈merge—daemon—options checkpoint一 granularity=”300” time_granularity=n900” <check_point_call_back command-ΐοο-ρΓ* l> <daemon_post一callback command=”post.pr^> </merge一daemon〉 </mserv_config> <msei*v_config>
〈location一serv port=n7071" datadir=”/u/regress—usr/locationdb.second,, /> <serv_post一start_call一back command=’’submit—again” /> 〈merge—daemon directory_j)refix-5./aggregated_data.second,,> <daemon_pre_callback command-5pre.pr/^ 〈merge一daemon一options checlq)〇int_granularity=”300” timejgranularity="900’’ daemon_port一313^,’14449” /> <check_pointjcaIl_back command-'ίοο.ρΓ51> <daemon_post_call一back command=,’post.pl’,^> </merge一daemon〉 </mserv一config> 然而前文通常相關於合倂覆蓋率記錄,下文通常相 關於合倂特定覆蓋率記錄的技術。 圖5A及5B係與合倂而非捨棄先前覆蓋率記錄之已 改善模擬流程對照的簡化流程圖。因爲遞增之計算資源的 成本遞減趨勢,如圖5A所示,每次該模擬模型調整時, 熟悉本發明之人士傾向於重執行模擬以達成滿足覆蓋率度 量的結果,而非從舊的模擬模型的覆蓋率記錄保留任何覆 蓋率資料。 圖5A之流程圖如下。在501中,產生功能覆蓋率模 -29- 201015364 型。在5 03中,運行隨機模擬,從特定輸入條件或某個第 一隨機因子開始。在505中,合併藉由模擬產生的覆蓋率 記錄。在507中,分析已合倂之覆蓋率記錄。在509中, 改善該功能覆蓋率模型。該流程圖在611之後重覆’在該 步驟中刪除先前的覆蓋率記錄。 圖5B的流程圖修改圖5A的流程。在5〇4中,與 503中從特定輸入條件或特定第一隨機因子開始該隨機模 擬不同,該隨機模擬係以新輸入條件或新隨機因子運行。 在512中,與在511中刪除該等覆蓋率記錄不同,輸入先 前的覆蓋率記錄。 圖5B的技術可施用在當所有模擬完成時,或相關於 圖2-4如上文之所討論的在最後模擬完成之前’合倂覆蓋 率記錄之情形的任一者。 下列範例使用SystemVerilog樣式的語法以代表覆蓋 率記錄,但可應用在具有可比性語法之何何硬體驗證語言 上。記錄T1代表較舊的覆蓋率記錄。記錄T2代表較新 的覆蓋率記錄。已合倂記錄代表合倂該等個別覆蓋率記錄 的結果。解釋在各範例之後。 範例1 : 記錄T1 記錄T2 已合倂記錄 cpl: coverpoint firstsig; option.auto bin max = 64: cpl: coverpoint firstsig; option.auto bin max = 32; cpl: coverpoint firstsig; option.auto bin max = 32; 根據範例1,不同的auto_bin_max値不係等效合倂 201015364 範例2 ·‘ 記錄T1 記錄T2 已合倂記錄 cp2: coverpoint secondsig { bin first = [0:63]; bin mid = [71:82]; } cp2: coverpoint secondsig { bin first = [0:63]; bin second = [65:128]; I cp2: coverpoint secondsig { bin first = [0:63]; bin second = [65:128]; }
根據範例2,刪除記錄T1之「coverpoint secondsig 」的「binmid = [71: 82]」,因爲其消失在記錄T2中的「 coverpoint secondsig」之定義中。 範例3 : 記錄T1 記錄T2 已合倂記錄 cp3: coverpoint thirdsig; cp3: coverpoint thirdsig; cp3: coverpoint thirdsig; 根據範例3,記錄τ丨的cp3係等效合倂於記錄T2中 φ 的cp3,並將彼等合倂。 範例4 : 記錄T1 記錄T2 已合倂記錄 Bit[7:0]signal; cp4: coverpoint signal; Bit[15:0]signal; cp4: coverpoint signal; cp4: coverpoint signal; 根據範例4,刪除記錄T1的「cp4: coverpoint signal」’因爲該檢查點表示式(「訊號」)的寬度已從8 位元改變爲1 6位元。 -31 - 201015364 範例5 : 記錄T1 記錄Τ2 已合倂記錄 ccl: cross cpl,cp2; ccl: cross cpl, cp2; ccl: cross cpl, cp2; 根據範例5,由於記錄T1的檢查點「cp 1」受刪除, 刪除記錄T1的「ccl: cross cpl,cp2;」(參考針對cpl 的範例1)。 範例6 : 記錄T1 記錄T2 已合倂記錄 cc2: cross cp2, cp3 { bins mybin = binsof(cp2) intersect [0:255]; } cc2: cross cp2, cp3 { bins mybin = binsof(cp2) intersect [0:255]; bins yourbin = binsof(cp2) intersect [256:511]; > cc2: cross cp2s cp3 { bins mybin = binsof(cp2) intersect [0:255]; bins yourbin = binsof(cp2) intersect [256:511]; j__ 根據範例6,針對T1及T2,合倂使用者箱my bin的 覆蓋率資料。將T1中的cc2之自交叉合併 > 該等自交叉 也在T2中的cc2之自交叉覆蓋率空間中。 範例7 : 記錄T1 記錄T2 已合倂記錄 cc3: cross cp2, cp3 { bins mybin = binsof(cp2) intersect [0:255]; } cc3: cross cp2, cp3 { bins mybin = binsof(cp2) intersect [0:8191]; > cc3: cross cp2, cp3 { bins mybin = binsof(cp2) intersect [0:255]; bins mybin ~ binsof(cp2) intersect [0:8191]; > 201015364 根據範例7,盡管由於該使用者箱「mybin」的定義 不同,T1及T2中的CC3之自交叉覆蓋率空間不同’在記 錄T1中看到的自交叉仍將輸入,並與記錄T2中所看到 的自交叉合倂。將T1中的ce3之部分自交叉箱包括在記 錄T2中的使用者箱mybin之定義中。將來自記錄T1的 此等自交叉箱併入記錄T2的使用者箱my bin中。記錄T1 中的剩餘自交叉箱將與記錄T2中的對應自交叉箱合倂。 範例8 : 記錄T1 記錄T2 已合倂記錄 cc4: cross q>l, cp2, cp3 cc4: cross cpl,cp2, cp3 根據範例8,在合倂後,將保留不存在於記錄T1中 而存在於T2中的交叉點cc4。 記錄T1 mmn 已合併記錄— first_prop:cover property(.......); second_prop:cover property(.......); first_prop:cover property(.......); third_prop:cover pr〇perty(.......); first_j>rop:cover property(.......); second_prop:cover property(.......); third_prop:cover property(.......); 根據範例7’在合倂後,將保留不存在於記錄τι中 而存在於T2中的覆蓋性質「third_prop」;在合倂後,將 保留不存在於記錄T2中而存在於τΐ中的覆蓋性質「 second_pr〇p」 〇 -33- 201015364 圖6係不同實施例之電腦系統的簡化方塊圖。 圖6係可用於實作合倂本發明的實施樣態之軟體的 電腦系統610之簡化方塊圖。當本文陳述之該等流程圖及 其他演算法描述一系列步驟時,將領會該流程圖或演算法 的各步驟可藉由導致諸如610的電腦系統以指定方式作業 而實現。 電腦系統610典型地包含藉由匯流排次系統612與 許多周邊裝置通訊之處理器次系統614。處理器次系統 614可能包含一或多個處理器。處理器次系統614提供用 於電腦系統610的路徑,以接收及傳送本文所描述之包含 在,諸如具有多核心、多處理器、及/或虛擬機械實作之 該處理器次系統614內的資訊。該等周邊裝置可能包含儲 存次系統624,包含記憶體次系統626以及檔案儲存次系 統628、使用者介面輸入裝置622、使用者介面輸出裝置 620、以及網路介面次系統616。該等輸入及輸出裝置容 許使用者與電腦系統610互動。網路介面次系統616提供 至外側網路的介面’包含至通訊網路618的介面,並經由 通訊網路618耦合至其他電腦系統中的對應介面裝置。通 訊網路618可能包含許多已互連電腦系統及通訊連接。此 等通訊連接可能係有線連接、光學連接、無線連接、或任 何其他用於資訊通訊的機構。雖然在一實施例中,通訊網 路618係網際網路’在其他實施例中,通訊網路618可能 係任何合適的電腦網路。通訊網路6丨8提供用於電腦系統 610的路徑’以接收及傳送本文所描述資訊。 -34- 201015364 網路介面的實體硬體組件有時稱爲網路介面卡(NIC) ,雖然彼等不必爲卡片形式:例如,彼等可具有積體電路 (1C)及以直接裝配在主機板之連接器的形式、或以製造在 具有該電腦系統的其他組件之單積體電路晶片上的巨集晶 元的形式。 使用者介面裝置622可能包含鍵盤、諸如滑鼠、軌 跡球、觸控板、或圖形輸入板之指向裝置、掃描器、倂入 _ 顯示器的觸控螢幕、諸如語音辨識系統、微音器之音訊輸 入裝置、以及其他型的輸入裝置。通常,術語「輸入裝置 」之使用傾向於包含所有可能類型的裝置及方式,以將資 _ 訊輸入至電腦系統610中或至電腦網路618上。 使用者介面輸出裝置620可能包含顯示次系統,列 表機、傳真機、或非視覺顯示,諸如音訊輸出裝置。該顯 示次系統可能包含陰極射線管(CRT)、平面裝置,諸如液 晶顯示器(LCD)、投影裝置、或用於產生可視影像的特定 φ 其他機構。該顯示次系統也可能提供非視覺顯示,諸如經 由音訊輸出裝置。通常,術語「輸出裝置」的之使用傾向 包含所有可能類型的裝置及方式,以將資訊從電腦系統 610輸出至該使用者或至其他機械或電腦系統。 儲存次系統624儲存提供本發明之特定實施例的功 能之基本程式及資料構造。例如,實作本發明的特定實施 例之功能的不同模組可能儲存在儲存次系統624中。此等 軟體模組通常藉由處理器次系統614執行。 記憶體次系統626典型地包含許多記憶體,該等記 -35- 201015364 憶體包含在程式執行期間用於指令及資料儲存的主隨機存 取記億體(RAM)630以及固定指令儲存於其中的唯讀記憶 體(ROM)63 2。檔案儲存次系統628提供用於程式及資料 檔案的持久儲存,並可能包含硬式磁碟驅動機、與連同相 聯之可移除媒體的軟式磁碟驅動機(例示地顯示爲儲存電 路設計680的電腦可讀媒體640)、CD/DVD唯讀記憶體驅 動器、光學裝置、或可移除媒體匣。實作本發明的特定實 施例之功能的該等資料庫及模組可能已設置在電腦可讀媒 體中,諸如一或多張CD/DVD ROM,並可能藉由儲存次 系統628儲存。主記憶體626在其他事物之間包含當由處 理器次系統614執行時,導致該電腦系統操作或實施如本 文所描述之功能的電腦指令。如本文所使用的,稱爲在「 該主機」或「該電腦」中或上運行之程序及軟體係在處理 器次系統614上執行,以回應主記憶體次系統626中的電 腦指令及資料,該主記憶體次系統包含用於此種指令及資 料之任何其他區域或遠端儲存。 匯流排次系統6 1 2提供用於使電腦系統6 1 0之不同 組件及次系統如預期地彼此通訊的機構。雖然匯流排次系 統612槪要地顯示爲單一匯流排,該匯流排的替代實施例 可能使用多匯流排。 電腦系統610自身可有不同類型,包含個人電腦、 可攜式電腦、工作站、電腦終端機、網路電腦、電視機、 大型主機、平行處理系統、多於一台電腦的網路、或任何 其他資料處理系統或使用者裝置。甚至由於電腦及網路的 -36- 201015364 本質改變’將圖6中描畫的電腦系統610之描述視爲係僅 用於描繪本發明的較佳實施例之目的的特定範例。電腦系 統6 1 0的許多其他組態可能具有較圖6所描畫之該電腦系 統爲多或少的組件。 下文係討論合倂覆蓋率記錄之模範條件的數學附錄
1·等效合倂 若可覆蓋物件係等效合倂的,合倂跨越記錄的可覆 蓋物件。等效合倂的觀念在覆蓋點及交叉點上不同。使用 表示法AlSmerge_eqA2以指出A1及A2爲等效合倂。 1.1覆蓋點的等效合倂 1 · 1 · 1自動箱化覆蓋點的等效合倂 1·1.1.1預設等效合倂
Pi s meige-eq P2 iff name(Pl)s name(P2) auto一bin_max(Pl) = auto一bin一max(P2) width(Pl) = width(P2) 其中PI及P2自動箱化覆蓋點。 1.1.1.2彈性的等效合倂 與用於自動箱化覆蓋點的預設等效合倂相同。 1. 1 .2使用者箱化覆蓋點的等效合倂 -37- 201015364 1.1.2.1預設等效合倂 P1 β mergc-eq P2 iff name(Pl) = name(P2) width(Pl) = width(P2)
Bu(Pl) = Bu(P2) 其中PI及P2係使用者箱化覆蓋點,且BU(P)指向該 組使用者界定箱。 1.1.2.2彈性的等效合倂 P1 = merge-eq P2 iff name(Pl) = name(P2) width(Pl) = width(P2) 須注意已放棄具有相同之使用者界定箱組的必要性 1.2交叉點的等效合倂 考慮交叉點, C = P1 X P2 ... X Pn 界定下列各者:
Bu =在交叉C中的使用者界定箱組 對於箱b€Bu,界定下列各者:
Sb =包含該使用者界定箱b的自動交叉箱
Ba=自動交叉箱組-SBu
Blgn =不合法/忽視/不可及自動交叉箱組 -38- 201015364 π =設定交叉產生運算子
Bj=在第j個覆蓋點Pj中的箱組。 符號BU(C)係用於指出交叉C的使用者界定箱組。 對其他組擴充相似符號,諸如Ba等。 考慮二交叉點:
Cl= A1 X A2…X An,其中Al、A2、…An係成份覆 蓋點。 , C2= B1 X B2…X Bm,其中Bl、B2、…Am係成份覆 盖點。 1.2.1預設等效合倂 若保持以下各者,ClSmerge.eqC2。 •交叉二者具有相同數量的覆蓋點。 n = = m -成份覆蓋點係逐對等效合倂。 A 1 =merge-eqB 1 ' A2smerge-eqB2.....Αη三merge-eqBm -BU(C 1 ) = BU(C2) -若D係C 1及C 2中的使用者界定箱組’則保持下列 各者
VdeD Sd(C(Tl)) = Sd(C(T2)) 1.2.2彈性的等效合倂 若保持以下各者,CNmeweqC2° -交叉二者具有相同數量的覆蓋點。 -39- 201015364 -成份覆蓋點係逐對等效合倂。 A 1 = = merge-eqB 1 ' A 2 s m e r g e . e q β 2 ' ··* ' A Π Ξ m e r g e - e q B m 上述規則具有以下隱喻: -若覆蓋點不能合併,包括該覆蓋點之任何交叉點將 簡單地加至該已合倂記錄。總之,覆蓋點的*merge-eq具有 對所有交叉點的漣波效應。 1.2判定的等效合倂 1.2.1預設等效合倂 若保持以下各者,針對判定A1及A2,Al^erge-eqA2 〇 name(Al ) = name(A2) 1.2.2彈性的等效合倂 此等規則與預設等效合倂相同。 2.用於合倂之規則 用於預設合倂的該等規則係直接的,因爲預設等效 合倂確保跨越受合倂交叉記錄的該覆蓋率空間係相同的。 以下各節描述用於彈性合倂的該等規則。 2 · 1用於合倂覆蓋點及交叉點的規則 使M(T1)爲T1中的覆蓋點/交叉點且M(T2)係T2中 201015364 的覆蓋點/交叉點。 1. 若M(Tl)Smerge-eqM(T2),在根據上文界定之該等規 則合倂後,將放棄僅界定於較舊功能覆蓋率模型中的箱° 2. 若M(Tl)*merge-eqM(T2),則該已合倂記錄包含 M(T2),其中T2係具有更近期功能覆蓋率模型的該記錄 i 2.2用於合倂判定的規則 醫 若A(T1)係記錄T1中的判定且A(T2)係記錄T2中的 判定,則根據以下規則合倂彼等。 1. 若 A(Tl) = merge_etIA(T2),則該已合倂記錄包含 A(T1)(或 A(T2))。 2. 若 A(Tl)*merge_eqA(T2),則該已合倂記錄包含 A(T2),其中T2係更近期記錄。 當本發明係藉由參考至上文詳細描述之較佳實施例 φ 及範例而揭示時,待理解此等範例傾向於以例示性而非限 制性的觀念揭示。預期修改及組合將易爲熟悉本發明之人 士想及,該等修改及組合將在本發明之精神及下列申請專 利範圍之範圍內。 【圖式簡單說明】 圖1係積體電路製造的簡化流程圖,從槪念階段、 經過電子設計自動化(EDA)階段、並結束於該等積體電路 -41 - 201015364 圖2係實施硬體驗證語言電路設計之模擬的系統之 簡化方塊圖。 圖3係顯示圖2之模擬系統的作業之簡化狀態圖。 圖4係圖2及3之該模擬系統的簡化目錄結構》 圖5A及5B係與合倂而非捨棄先前覆蓋率記錄之已 改善模擬流程對照的簡化流程圖。 圖6係不同實施例之電腦系統的簡化方塊圖。 【主要元件符號說明】 2 1 〇 :獨立模擬客戶端 220 :檔案系統 230:位置儲存庫伺服器 240 :合倂常駐程式 6 1 〇 :電腦系統 6 1 2 :匯流排次系統 614:處理器次系統 616 :網路介面次系統 618 :通訊網路 620:使用者介面輸出裝置 622:使用者介面輸入裝置 624 :儲存次系統 626 :記憶體次系統 628 :檔案儲存次系統 630 :隨機存取記憶體 201015364 632 :唯讀記憶體 640 :電腦可讀媒體 6 8 0 :電路設計
Claims (1)
- 201015364 七、申請專利範团: ι.~種電子設計自動化方法,包含: 當由一硬體描述語言電路設計之驗證所產生的覆蓋率 記錄產生時’合倂該等覆蓋率記錄,無須等待所有未決驗 證的覆蓋率記錄。 2. 如申請專利範圍第1項之電子設計自動化方法,其 中該等覆蓋率記錄中的至少一覆蓋率記錄係由該硬體描述 語言電路設計之模擬所產生。 3. 如申請專利範圍第1項之電子設計自動化方法,另 外包含: 回應該合倂,變更該硬體描述語言電路設計之一未決 模擬的一條件。 4. 如申請專利範圍第1項之電子設計自動化方法,另 外包含: 回應該合倂,變更該硬體描述語言電路設計之一未決 模擬的一輸入參數。 5 .如申請專利範圍第1項之電子設計自動化方法’另 外包含: 回應該合倂,釋放至少一部分的大量儲存器。 6 ·如申請專利範圍第1項之電子設計自動化方法,另 外包含: 回應該合倂及所匹配的一預定條件,產生一覆蓋率報 告。 7 .如申請專利範圍第1項之電子設計自動化方法,另 201015364 外包含: 回應該合倂,決定將一未決驗證的完成視爲不足以改 善該硬體描述語言電路設計的驗證覆蓋率。 8 _如申請專利範圍第1項之電子設計自動化方法,另 外包含: 回應該合倂,藉由決定待藉由一未決模擬來模擬的該 硬體描述語言電路設計之一屬性已經完成模擬,決定將一 _ 未決驗證的完成視爲不足以改善該硬體描述語言電路設計 〇 的驗證覆蓋率。 9 .如申請專利範圍第1項之電子設計自動化方法,另 外包含: 回應該合倂,決定將一未決驗證的完成視爲不足以改 善該硬體描述語言電路設計的驗證覆蓋率,並導致該未決 驗證停止。 10.如申請專利範圍第1項之電子設計自動化方法, Φ 其中該合倂導致包含正式驗證覆蓋率資料的一已合倂覆蓋 率記錄。 1 1 .如申請專利範圍第1項之電子設計自動化方法, 另外包含= 回應該合倂的實施就緒,要求在該合倂的該實施就緒 之前所產生的覆蓋率記錄資料。 1 2 ·如申請專利範圍第1項之電子設計自動化方法, 另外包含= 回應該合倂,實施: -45- 201015364 更新該硬體描述語言電路設計之驗證覆蓋率的一覆蓋 率度量,該覆蓋率度量包括來自該合併的覆蓋率資料。 13.如申請專利範圍第丨項之電子設計自動化方法, 另外包含: 建立多重執行實例,該等多重執行實例實施該硬體描 述語言電路設計的模擬之覆蓋率記錄的合倂。 14· —種電腦可讀媒體,具有用於電路設計之電腦可 讀指令,包含: 當由一硬體描述語言電路設計之驗證所產生的覆蓋率 記錄產生時,合併該等覆蓋率記錄,無須等待所有未決覆 蓋率記錄的電腦指令。 15. 如申請專利範圍第14項之電腦可讀媒體’另外包 含: 變更該硬體描述語言電路設計的一未決模擬之一條件 的電腦指令,以回應該合倂。 16. 如申請專利範圍第14項之電腦可讀媒體’另外包 含·· 釋放至少一部分大量儲存器的電腦指令’以回應該合 倂。 17. 如申請專利範圍第14項之電腦可讀媒體’另外包 含: 產生一覆蓋率報告的電腦指令’以回應該合併及所匹 配的一預定條件。 18. —種裝置,包含: -46 - 201015364 一電腦,具有儲存當由一硬體描述語言電路設計之驗 證所產生的覆蓋率記錄產生時,合倂該等覆蓋率記錄’無 須等待所有未決覆蓋率記錄之電腦指令的一記憶體。 1 9.如申請專利範圍第1 8項的裝置’其中該記憶體另 外儲存: 變更該硬體描述語言電路設計的一未決模擬之一條件 的電腦指令,以回應該合倂。 20. 如申請專利範圍第18項的裝置,其中該記憶體另 外儲存: 釋放至少一部分大量儲存器的電腦指令’以回應該合 倂。 21. 如申請專利範圍第18項的裝置,其中該記憶體另 外儲存: 產生一覆蓋率報告的電腦指令,以回應該合倂及所匹 配的一預定條件。 ❹ -47-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/210,887 US8001505B2 (en) | 2008-09-15 | 2008-09-15 | Method and apparatus for merging EDA coverage logs of coverage data |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201015364A true TW201015364A (en) | 2010-04-16 |
TWI534643B TWI534643B (zh) | 2016-05-21 |
Family
ID=42005689
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098125909A TWI534643B (zh) | 2008-09-15 | 2009-07-31 | 用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率記錄的方法和裝置 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8001505B2 (zh) |
CN (1) | CN101676919B (zh) |
TW (1) | TWI534643B (zh) |
WO (1) | WO2010030450A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886242B1 (en) * | 2006-12-12 | 2011-02-08 | Cadence Design Systems, Inc. | Systems, methods, and apparatus for total coverage analysis and ranking of circuit designs |
US8413088B1 (en) * | 2007-06-07 | 2013-04-02 | Cadence Design Systems, Inc. | Verification plans to merging design verification metrics |
US8560985B1 (en) * | 2007-06-07 | 2013-10-15 | Cadence Design Systems, Inc. | Configuration-based merging of coverage data results for functional verification of integrated circuits |
US8001505B2 (en) | 2008-09-15 | 2011-08-16 | Synopsys, Inc. | Method and apparatus for merging EDA coverage logs of coverage data |
US8676966B2 (en) * | 2009-12-28 | 2014-03-18 | International Business Machines Corporation | Detecting and monitoring server side states during web application scanning |
US8145949B2 (en) * | 2010-06-16 | 2012-03-27 | Plx Technology, Inc. | Automated regression failure management system |
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9098637B1 (en) * | 2011-10-21 | 2015-08-04 | Cadence Design Systems, Inc. | Ranking process for simulation-based functional verification |
CN103198007A (zh) * | 2012-01-06 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 多进程的日志输出方法及系统 |
US8601415B2 (en) * | 2012-04-13 | 2013-12-03 | International Business Machines Corporation | Planning for hardware-accelerated functional verification |
US9021349B1 (en) * | 2012-04-25 | 2015-04-28 | Cadence Design Systems, Inc. | System, method, and computer program product for identifying differences in a EDA design |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9069782B2 (en) | 2012-10-01 | 2015-06-30 | The Research Foundation For The State University Of New York | System and method for security and privacy aware virtual machine checkpointing |
CN104950241B (zh) * | 2014-03-31 | 2017-10-24 | 联发科技(新加坡)私人有限公司 | 集成电路及在集成电路中建立扫描测试架构的方法 |
US10387593B2 (en) * | 2015-02-24 | 2019-08-20 | Mentor Graphics Corporation | Code coverage reconstruction |
US9934343B2 (en) | 2016-05-27 | 2018-04-03 | International Business Machines Corporation | System and method for generation of an integrated circuit design |
US10546083B1 (en) * | 2017-05-10 | 2020-01-28 | Cadence Design Systems, Inc. | System, method, and computer program product for improving coverage accuracy in formal verification |
US10915430B2 (en) | 2017-07-17 | 2021-02-09 | Red Hat Israel, Ltd. | Source code test consolidation |
DE102017127276A1 (de) | 2017-08-30 | 2019-02-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standardzellen und abwandlungen davon innerhalb einer standardzellenbibliothek |
US10741539B2 (en) | 2017-08-30 | 2020-08-11 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standard cells and variations thereof within a standard cell library |
US10515169B1 (en) * | 2018-01-06 | 2019-12-24 | Cadence Design Systems, Inc. | System, method, and computer program product for computing formal coverage data compatible with dynamic verification |
US10796051B1 (en) | 2019-04-30 | 2020-10-06 | Cadence Design Systems, Inc. | Adaptive model interface for a plurality of EDA programs |
US11036906B1 (en) * | 2020-01-24 | 2021-06-15 | Cadence Design Systems, Inc. | Method and apparatus to accelerate verification signoff by selective re-use of integrated coverage models |
CN112329273B (zh) * | 2020-12-17 | 2023-10-24 | 芯天下技术股份有限公司 | 一种提升芯片验证效率的方法、装置、存储介质和终端 |
CN116663492B (zh) * | 2023-07-26 | 2023-10-13 | 北京云枢创新软件技术有限公司 | 交叉仓所覆盖的交叉项数量的获取方法、电子设备和介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272668B1 (en) * | 1994-12-14 | 2001-08-07 | Hyundai Electronics America, Inc. | Method for cell swapping to improve pre-layout to post-layout timing |
US6718521B1 (en) | 2000-08-14 | 2004-04-06 | International Business Machines Corporation | Method and system for measuring and reporting test coverage of logic designs |
KR100434240B1 (ko) | 2001-02-27 | 2004-06-04 | (주)다이나릿시스템 | 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법 |
US6598211B2 (en) * | 2001-03-30 | 2003-07-22 | Intel Corporation | Scaleable approach to extracting bridges from a hierarchically described VLSI layout |
US7346903B2 (en) | 2003-02-04 | 2008-03-18 | Sun Microsystems, Inc. | Compiling and linking modules of a cycle-based logic design |
US7373619B2 (en) * | 2003-05-10 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Post-silicon test coverage verification |
US7181376B2 (en) | 2003-06-03 | 2007-02-20 | International Business Machines Corporation | Apparatus and method for coverage directed test |
TW200719661A (en) | 2005-11-04 | 2007-05-16 | Univ Nat Taiwan | Digital rights management framework(DRM) for SOC IP |
US20080147373A1 (en) | 2006-12-14 | 2008-06-19 | Thomas Roessler | Method for analyzing the design of an integrated circuit |
US8001505B2 (en) | 2008-09-15 | 2011-08-16 | Synopsys, Inc. | Method and apparatus for merging EDA coverage logs of coverage data |
-
2008
- 2008-09-15 US US12/210,887 patent/US8001505B2/en active Active
-
2009
- 2009-07-31 WO PCT/US2009/052354 patent/WO2010030450A2/en active Application Filing
- 2009-07-31 TW TW098125909A patent/TWI534643B/zh active
- 2009-09-15 CN CN200910169199XA patent/CN101676919B/zh active Active
-
2011
- 2011-07-22 US US13/189,314 patent/US8904319B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20110283246A1 (en) | 2011-11-17 |
CN101676919A (zh) | 2010-03-24 |
TWI534643B (zh) | 2016-05-21 |
US8001505B2 (en) | 2011-08-16 |
CN101676919B (zh) | 2013-03-13 |
WO2010030450A3 (en) | 2010-05-06 |
US20100070940A1 (en) | 2010-03-18 |
WO2010030450A2 (en) | 2010-03-18 |
US8904319B2 (en) | 2014-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201015364A (en) | Method and apparatus for merging EDA coverage logs of coverage data | |
TWI507904B (zh) | 用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率紀錄的方法和裝置 | |
US9760668B2 (en) | Automating system on a chip customized design integration, specification, and verification through a single, integrated service | |
US7480608B2 (en) | Method and system for reducing storage requirements of simulation data via KEYWORD restrictions | |
US7529655B2 (en) | Program product for defining and recording minimum and maximum event counts of a simulation utilizing a high level language | |
US8117576B2 (en) | Method for using an equivalence checker to reduce verification effort in a system having analog blocks | |
US8930918B2 (en) | System and method for SQL performance assurance services | |
US8892386B2 (en) | Method and apparatus for post-silicon testing | |
US8413095B1 (en) | Statistical single library including on chip variation for rapid timing and power analysis | |
US7203633B2 (en) | Method and system for selectively storing and retrieving simulation data utilizing keywords | |
JP2023507301A (ja) | データフローグラフのコンポーネントのユニットテスト | |
US7194400B2 (en) | Method and system for reducing storage and transmission requirements for simulation results | |
US8050902B2 (en) | Reporting temporal information regarding count events of a simulation | |
US9672317B2 (en) | Quality of results system | |
US20060122818A1 (en) | Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases | |
Diaz et al. | IBIF: Industrial Base Innovation Fund-Integrated Circuit Emulation Manufacturing Design Capability Improvements | |
Diaz | Integrated Circuit Emulation Manufacturing Design Capability Improvements |