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 PDF

Info

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
Application number
TW098125909A
Other languages
English (en)
Other versions
TWI534643B (zh
Inventor
Manoj Bist
Sandeep Mehrotra
Original Assignee
Synopsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of TW201015364A publication Critical patent/TW201015364A/zh
Application granted granted Critical
Publication of TWI534643B publication Critical patent/TWI534643B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design 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)

  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-
TW098125909A 2008-09-15 2009-07-31 用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率記錄的方法和裝置 TWI534643B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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