TWI534643B - 用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率記錄的方法和裝置 - Google Patents
用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率記錄的方法和裝置 Download PDFInfo
- Publication number
- TWI534643B TWI534643B TW098125909A TW98125909A TWI534643B TW I534643 B TWI534643 B TW I534643B TW 098125909 A TW098125909 A TW 098125909A TW 98125909 A TW98125909 A TW 98125909A TW I534643 B TWI534643 B TW I534643B
- Authority
- TW
- Taiwan
- Prior art keywords
- coverage
- hardware description
- verification
- circuit design
- record
- 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
電子設計自動化EDA在半導體工業中實際地施用於所有裝置設計專案上。在針對該產品之概念開發後,使用EDA工具以界定具體的實作。在稱為定案之程序中,使用EDA工具界定之實作係用於產生用於遮罩製造之遮罩資料,該等遮罩係用於該等已完成晶片之製造中的微影使用。然後使用生產裝備產生及使用該等遮罩,以製造積體電路晶圓。將該等晶圓分割、封裝、及裝配以提供用於銷售之積體電路晶片。
使用EDA工具之設計的範例程序係從使用架構界定工具之整體系統設計開始,該架構界定工具描述待使用該積體電路實作之產品的功能性。其次,施用邏輯設計工具以基於諸如Verilog或VHDL的描述語言產生高階描述,並在疊代過程中施用功能驗證工具以確信該高階描述實現該設計目標。其次,使用合成及可測試設計工具以將該高階描述轉換為網路連線表、針對目標技術最佳化該網路連線表、並設計及實作容許該已完成晶片對該網路連線表之檢查的測試。
典型的設計流程其次可能包含在其中建構及分析用於該晶片之整體平面佈置的設計規劃級,以確保用於該網路連線表的時序參數可在高階實現。其中,可能以時序限制並以在高階使用VHDL或Verilog界定之功能定義嚴格地檢查該網路連線表的一致性。在選定網路連線表之疊代過程並將該網路連線表映射至用於該最終設計的元件庫後,使用用於佈局及佈線之實體實作工具。實施佈局之工具將電路元件定位在佈置中,且實施佈線的工具界定用於該等電路元件的互連。
在佈局及佈線後界定的該等組件之後通常使用擷取工具在電晶體層級上分析,及驗證,以確保實現該電路功能並符合時序限制。該佈局及佈線程序在必要時可以疊代方式重臨。其次,該設計受分析可製造性、電氣效能、微影參數、以及電路正確性之實體驗證程序驗證,諸如設計規則檢查DRC、佈置規則檢查LRC、以及佈局對電路LVS檢查。
在藉由疊代設計及驗證程序得到可接受設計之後,如上文所述,所產生的設計可受提供該佈局之幾何處理的解析度增強技術處理,以改善可製造性。最後,製備並定案用於已完成產品之生產的該遮罩資料。
本技術的一實施樣態係合倂覆蓋率記錄之電子設計自動化方法。該等覆蓋率記錄係由一硬體描述語言電路設計的驗證產生。當產生該等覆蓋率記錄時合倂該等覆蓋率記錄,無須等待所有未決驗證之覆蓋率記錄。未決驗證之範例係未決動態模擬(例如,純隨機模擬、導引隨機模擬、以及純導引模擬)及未決正式驗證。
在部分實施例中,該等覆蓋率記錄中的至少一者係由該硬體描述語言電路設計之模擬所產生。在部分實施例中,覆蓋率記錄的合倂導致包含正式驗證覆蓋率資料之已合倂覆蓋率記錄。
不同實施例具有回應於覆蓋率記錄之合倂的結果。一此種回應係變更該硬體描述語言電路設計之一未決模擬的一條件。改變條件的範例包含變更輸入參數,諸如變更輸入條件(例如,改變該輸入組態檔及/或參數,以在不同模式/組態中模擬該晶片,改變會依次加入更多限制及/或放寬既存限制之該測試台控制參數,從而導致不同的待產生輸入刺激)或改變隨機因子條件。
其他此種結果係釋放至少一部分的大量儲存器。
其他此種結果-不僅回應於覆蓋率記錄的合倂,也回應於符合之預定條件-係產生覆蓋率報告。
其他此種結果係決定將一未決驗證的完成視為不足以改善該硬體描述語言電路設計的驗證覆蓋率。決定該未決驗證預期不足以改善驗證覆蓋率的一種方式係決定待藉由未決模擬模擬之該硬體描述語言電路設計的屬性已模擬。在一實施例中,當決定該未決驗證預期不足以改善驗證覆蓋率時,則該未決驗證停止。
另一此種結果更新該硬體描述語言電路設計之驗證覆蓋率的一覆蓋率度量。該覆蓋率度量包括來自該等覆蓋率記錄之合倂的覆蓋率資料。範例覆蓋率度量考慮判定覆蓋率、功能覆蓋率、以及程序碼覆蓋率(例如,線覆蓋率、條件覆蓋率、分枝覆蓋率、路徑覆蓋率、觸發覆蓋率、指定觸發覆蓋率)。
在部分實施例中,本技術從未就緒狀態改變為就緒狀態,以合倂覆蓋率記錄。回應於此狀態改變,要求在該狀態改變前產生覆蓋率記錄資料。
部分覆蓋率產生多執行實例。此等多執行實例通常實施該硬體描述語言電路設計之模擬的覆蓋率記錄之合倂,或驗證。
本技術的另一實施樣態係合倂覆蓋率記錄之電子設計自動化方法。該等已合倂覆蓋率記錄包含一硬體描述語言電路設計之一第一模擬的一第一覆蓋率記錄及該硬體描述語言電路設計之一第二模擬的一第二覆蓋率記錄。該第一模擬係基於該硬體描述語言電路設計的一第一硬體驗證語言覆蓋率模型。該第二模擬係基於該硬體描述語言電路設計的一第二硬體驗證語言覆蓋率模型。該第二硬體驗證語言覆蓋率模型新於且不同於該第一硬體驗證語言覆蓋率模型。
該硬體描述語言電路設計的硬體描述語言包含Verilog、SystemVerilog、及VHDL之任一者。
第一及第二硬體驗證語言模型的硬體驗證語言包含SystemVerilog、Native Testbench、E、及Vera之任一者。
不同實施例具有控制覆蓋率資料是否刪除及/或保留的不同條件,回應於該等覆蓋率記錄的合倂。
一此種條件包含回應於包含不同的最大數量之自動產生箱的該第一覆蓋率記錄及該第二覆蓋率記錄,保持該第二覆蓋率記錄之該覆蓋點的覆蓋率資料並刪除來自該第一覆蓋率記錄之該覆蓋點的覆蓋率資料。
另一此種條件包含回應於包含具有一箱名不存在於該第二覆蓋率記錄中的一箱之該第一覆蓋率記錄,在該合倂後刪除該箱的覆蓋率資料。
另一此種條件包含回應於包含具有一箱名存在於該第二覆蓋率記錄中的一箱之該第一覆蓋率記錄,在該合倂後保持該箱的覆蓋率資料。
另一此種條件包含回應於具有一覆蓋點之該第一覆蓋率記錄及具有該覆蓋點之該第二覆蓋率記錄,該覆蓋點在該第一覆蓋率記錄中具有一第一表示寬度且在該第二覆蓋率記錄中具有與該第一表示寬度不同之一第二表示寬度,保持具有該第二表示寬度之該覆蓋點的覆蓋率資料而刪除具有第一表示寬度之該覆蓋點的覆蓋率資料。
另一此種條件包含回應於具有一箱之該第一覆蓋率記錄且該第二覆蓋率記錄具有該箱,該箱在該第一覆蓋率記錄中具有一第一箱界定且在該第二覆蓋率記錄中具有與該第一箱界定不同之一第二箱界定,然後在該合倂後,保持具有該第二箱界定之該箱的覆蓋率資料而刪除具有該第一箱界定之該箱的覆蓋率資料。
另一此種條件包含回應於包含至少命名為二覆蓋率點識別符的一交叉覆蓋率點之一交叉覆蓋率點名稱的該第一覆蓋率記錄,且該第二覆蓋率記錄包含至少命名為該二覆蓋率點識別符的該交叉覆蓋率點之該交叉覆蓋率點名稱,然後回應從該第一覆蓋率記錄刪除該等已識別覆蓋率點之至少一者的覆蓋率資料,刪除該第一覆蓋率記錄之該交叉覆蓋率點的覆蓋率資料。
另一此種條件包含回應於包含一第一交叉覆蓋率點之一第一使用者界定交叉箱的該第一覆蓋率記錄,及包含一第二交叉覆蓋率點之一第二使用者界定交叉箱的該第二覆蓋率記錄,該第一交叉覆蓋率點及該第二交叉覆蓋率點具有一相同名稱,盡管該第一使用者界定交叉箱及該第二使用者界定交叉箱具有不同界定,保持該第一使用者界定交叉箱的覆蓋率資料及該第二使用者界定交叉箱之覆蓋率資料。
另一此種條件包含回應於包含一第一交叉覆蓋率點之第一自動交叉箱的該第一覆蓋率記錄,及包含一第二使用者界定交叉箱的該第二覆蓋率記錄,該第二使用者界定交叉箱包括該第一交叉覆蓋率點的該等自動交叉箱,保持在該第二覆蓋率記錄的該第二使用者界定交叉箱中之該等第一自動交叉箱的覆蓋率記錄。
另一此種條件包含回應於包含一第一交叉覆蓋率點之該第一覆蓋率記錄,及包含一第二交叉覆蓋率點的該第二覆蓋率記錄,盡管該第一交叉覆蓋率點及該第二交叉覆蓋率點具有不同的自動交叉覆蓋率空間,保持i)由該第二交叉覆蓋率點之自動交叉覆蓋率空間所包括的該第一交叉覆蓋率點之自動交叉覆蓋率資料,以及ii)該第二交叉覆蓋率點的覆蓋率資料。
另一此種條件包含回應於包含不存在於該第一覆蓋率記錄中之一交叉覆蓋率點的該第二覆蓋率記錄,保持該交叉覆蓋率點。
另一此種條件包含回應於包含不存在於該第二覆蓋率記錄中之一交叉覆蓋率點的該第一覆蓋率記錄,刪除該交叉覆蓋率點。
另一此種條件包含回應於包含不存在於該第二覆蓋率記錄中之性質覆蓋率的該第一覆蓋率記錄,保持該性質覆蓋率。
另一此種條件包含回應於包含不存在於該第一覆蓋率記錄中之性質覆蓋率的該第二覆蓋率記錄,保持該性質覆蓋率。
本技術的其他實施樣態相關於具有用於電路設計之電腦可讀指令的電腦可讀媒體,包含實施本文描述之本技術的電腦指令。本技術的其他實施樣態相關於具有儲存實施本文描述之本技術的電腦指令之記憶體的電腦。
圖1係積體電路製造的簡化流程圖,從概念階段、經過電子設計自動化(EDA)階段、並結束於該等積體電路。
圖1顯示例示之數位積體電路及測試流程的簡圖。如同本文之所有流程圖,將領會圖1中的許多步驟可組合、平行實施或以不同順序實施,而不影響已實現的功能。在部分情形中,步驟的重配置僅將於也造成特定其他改變時實現相同結果,且在其他情形中,步驟的重配置僅將於滿足特定條件時實現相同結果。此種重配置可能性對讀者將係明顯的。
在高階流程,圖1之程序從產品概念開始(步驟100),並在EDA(電子設計自動化)軟體設計程序中實現(步驟110)。當該設計完成時,生產程序(步驟150)及封裝與裝配程序(步驟160)發生,最終,導致已完成積體電路晶片(結果170)。在步驟180中,部分或所有該等已完成晶片使用預定測試向量及預期回應在測試機台上測試。
該EDA軟體設計程序(步驟110)實際上由若干步驟112-130所組成,為簡化,以線性方式顯示。在實際的積體電路設計程序中,特定設計可能必須返回以通過步驟,直到通過特定測試。相似地,在任何實際設計程序中,此等步驟可能以不同順序及組合發生。因此此描述係藉由上下文及一般解釋的方式提供,而非以用於特定積體電路之具體、或建議的設計流程提供。
現在將提供該EDA軟體設計程序(步驟110)之組成步驟的簡短描述。
系統設計(步驟112):設計者描述彼等希望實作的功能、假使規畫改進功能彼等能實施的功能,檢查成本等。硬體-軟體架構劃分可發生在此階段。來自Synopsys,Inc.之可在此步驟使用的範例EDA軟體產品包含Model Architect、Saber、System Studio、以及DesignWare產品。
邏輯設計及功能驗證(步驟114):在此階段,撰寫用於該系統中之模組的VHDL或Verilog碼,並針對功能正確性檢查該設計。更具體地說,檢查該設計以確保其產生正確的輸出,以回應於特定的輸入刺激。來自Synopsys,Inc.之可在此步驟使用的範例EDA軟體產品包含VCS、VERA、DesignWare、Magellan、Formality、ESP、以及LEDA產品。然而部分設計在此階段可能已包含特定之可測試設計特性,諸如掃描鏈及關聯之掃描壓縮或解壓縮電路,當彼等在本文中使用時,並不包含在該等術語「邏輯設計」及「電路設計」中。
合成及可測試設計(DFT)(步驟116):此處,將該VHDL/Verilog轉換為網路連線表。該網路連線表可針對目標技術最佳化。此外,測試架構的實作係在此步驟中發生,以容許該等已完成晶片的檢查。來自Synopsys,Inc.之可在此步驟使用的範例EDA軟體產品包含Design Compiler、Physical Compiler、Test Compiler、Power Compiler、FPGA Compiler、TetraMAX、以及DesignWare產品。具有如上文所述之少數使用者指定組態設定,用於實作測試架構之目前產品係DFT MAX。DFT MAX於Synopsys之DFT MAX調適性掃描壓縮合成的產品說明書(2007)中描述,以提及之方式倂入本文中。
網路連線表驗證(步驟118):在此步驟,檢查該網路連線表對時序限制的一致性及與VHDL/Verilog原始碼的對應性。來自Synopsys,Inc.之可在此步驟使用的範例EDA軟體產品包含Formality、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軟體產品包含該CATS(R)家族產品。
解析度增強(步驟128):此步驟包含該佈置的幾何處理,以改善該計的可製造性。來自Synopsys,Inc.之可在此步驟使用的範例EDA軟體產品包含Proteus、ProteusAF、以及PSMGen產品。
遮罩製備(步驟130):此步驟包含遮罩資料製備及該等遮罩自身的寫入二者。
本技術的實施樣態特別相關於上文所述之「邏輯設計及功能驗證」。
設計及功能驗證係提供該硬體描述語言電路設計滿足該電路之設計規格的程序。雖然靜態及動態驗證法二者均有效,由於實施該硬體描述語言電路設計之正式檢驗的限制,靜態法傾向受限於相對小的電路區塊。動態法依賴該硬體描述語言電路設計的模擬,且不能實現完整驗證。為完成具有數百萬閘的最新複雜性之該硬體描述語言電路設計的適度徹底驗證,模擬環境執行大量具有不同條件的模擬,諸如不同輸入條件或不同隨機因子。持續此種模擬直到滿足該總計覆蓋率度量。
因為遞增之計算資源的成本遞減趨勢,每次該模擬模型調整時,熟悉本發明之人士傾向於重執行模擬以達成滿足覆蓋率度量的結果。
將從該硬體描述語言電路設計之已完成模擬所產生的覆蓋率資料作為覆蓋率記錄儲存在大量儲存器中。不同的電子設計自動化廠商通常具有彼等自有之非專屬覆蓋率記錄,該等覆蓋率記錄僅儲存電子設計自動化覆蓋率資料,並不儲存以如Oracle、IBM、MySQL等提供之資料庫所儲存的通用資料。覆蓋率資料係預期在模擬期間發生之一組關注條件,或屬性。
在部分實施例中,合倂該等覆蓋率記錄。該覆蓋率模型係期望在模擬期間觀察之一組關注條件。各模擬產生代表由該模擬覆蓋之該覆蓋率模型的部位之覆蓋率記錄。該合倂作業將該等覆蓋率記錄合計,以計算該覆蓋率模型之何等部分係由所有模擬所共同覆蓋。
該等模擬係根據該硬體驗證語言覆蓋率模型而實施,其包含功能覆蓋率及判定覆蓋率。其他實施例包含一或多個功能覆蓋率、判定覆蓋率、以及碼覆蓋率的不同組合。
覆蓋率資料在「針對SystemVerilog之IEEE標準-統一硬體設計、規格、及驗證語言」,IEEE Std 1800中描述,以提及之方式倂入本文中。下文對覆蓋率資料的描述大多取此IEEE標準。
覆蓋率群組,或覆蓋群組可包含一或多個覆蓋率點,或覆蓋點。覆蓋率點可係整數變數或整數表示式。各覆蓋率點包含關聯於其取樣值或其值轉變之一組箱。該等箱可清楚地由使用者界定或由該硬體驗證語言環境自動產生。用於覆蓋率點的箱可自動地由硬體驗證語言環境產生或清楚地界定。
覆蓋率點箱,或箱,關聯於名稱及具有一組值或值轉變序列之計數。若該箱指定一組值,每次該覆蓋率點與該組中的值之一者符合時,該計數增加。若該箱指定值轉變序列,每次該覆蓋率點與值轉變之全體序列符合時,該計數增加。
因此,箱係識別受模擬的該硬體描述語言電路之屬性的單元,使得在模擬後,該模型之覆蓋率度量係基於該等箱計算。該覆蓋率度量係硬體描述語言電路設計之驗證過程的評估。該覆蓋率模型係所有箱的總計,包含箱之交叉點及箱的覆蓋點。在部分實施例中,將相同模型用於所有模擬,並將所產生的覆蓋率資料合倂。在其他實施例中,至少針對部分模擬使用不同模型,並選擇性地合倂所產生的覆蓋率資料。
覆蓋群組可指定在二或多個覆蓋率點或變數之間的交叉覆蓋率。將N個覆蓋率點組的交叉覆蓋率界定為與該N個覆蓋率點關聯之所有箱的所有組合之覆蓋率,亦即,N組覆蓋率點箱的笛卡爾乘積。自動交叉覆蓋率係自動產生之覆蓋率點與另一覆蓋率點的交叉覆蓋率。
覆蓋率點項的覆蓋率可取決於該覆蓋率點的箱係由使用者清楚地界定或由工具自動地產生而不同地計算。
針對使用者界定箱,將覆蓋率點的覆蓋率計算為:i)該等已覆蓋箱之基準,亦即,所有(已界定)已覆蓋箱子集,與ii)該組已界定箱之基準的比率。
針對自動產生箱,將覆蓋率點的覆蓋率計算為:i)該已覆蓋率箱的基準,亦即,所有(自動界定)已覆蓋箱子集,與ii)a)代表該覆蓋率點的所需最小位元數量及b)auto_bin_max之較小值的比率。
累積覆蓋率視為係所有重要箱的聯集;因此,其包含所有實例之所有箱(包含重覆箱)的作用。
為決定是否覆蓋覆蓋率群組之特定箱,該累積覆蓋率計算考慮所有經累計實例之at_least選項的值。結果,在箱之擊點計數等於或超過所有實例之所有at_least值的最大值之前,不將其視為係已覆蓋。該最大值的使用代表更保守的選擇。
圖2-4發表EDA驗證之實施例,特別係覆蓋率驅動驗證。
此受討論實施例在覆蓋率記錄可合倂之前不需要產生所有覆蓋率記錄。此方式在隨機迴歸測試環境中調整得特別良好,在該環境中,具有大量輸入條件或隨機因子的隨機測試一天執行24小時,一週執行7天。因為覆蓋率記錄係在最後覆蓋率記錄產生之前合倂,在此方式中,所需之硬碟空間量不再直接與測試數量成比例。相似地,該方式不必等待至最後模擬已完成運行,以取樣已合倂之覆蓋率記錄。維持未處理(未合倂)覆蓋率記錄的管線。覆蓋率記錄的早期總計也容許在所有測試已完成運行前,良好地協助覆蓋率空區的識別及分析。「不良」刺激更快而非較遲未受覆蓋。
圖2-4於下文中討論。
圖2係實施硬體驗證語言電路設計之模擬的系統之簡化方塊圖。該系統包含獨立模擬客戶端210、檔案系統220以儲存覆蓋率記錄、位置儲存庫伺服器230、以及合倂常駐程式240。該模擬客戶端的行為如同多個生產者,且「urg」合倂常駐程式的行為如同多個消費者並提供同步化基元以維持該佇列的一致性。
獨立模擬客戶端210係產生功能覆蓋率記錄的獨立隨機模擬。各測試客戶端傾印代表該覆蓋率模型之標定部分的覆蓋率記錄。各客戶端確保下列各者:
1)不逾越至不同模擬客戶端的資料庫目錄。
2)將該記錄儲存在可從該機械存取之檔案系統中,該「urg常駐程式」在該機械上運行為統一報告產生器。
3)此等客戶端使用介面,諸如Perl,與該位置儲存庫伺服器交談。
該等客戶端將該等覆蓋率記錄於該檔案系統220中所在的目錄告知該位置儲存庫伺服器230。範例實作係具有下列模範方法的物件導向perl介面,例如VtgSimClientlntf:
1)new:產生該物件之建構器。採用二命令引數及一選擇性引數。
i)server:運行該位置儲存庫伺服器之機械的名稱
ii)port:該位置儲存庫伺服器於其上運行的埠號
iii)newmodel:此引數係選擇性的。預設值為0。當設定為1時,其切換在該合倂伺服器用於彈性合倂的主模型。
2)dispatchLocation:告知與該覆蓋率記錄的位置相關之該位置儲存庫伺服器的方法。成功時傳回小的xml字串,失敗時傳回undef。
範例1:
若成功,$retVal的值會係:
範例2:
此範例將合倂伺服器所使用的主覆蓋率模型切換至儲存在/u/foo/bar.vdb下的一者。若成功,$retVal的值會係:
<dbsummary currdb="/u/foo/bar.vdb"/>
由於儲存來自大量獨立模擬客戶端210之該等覆蓋率記錄的該等需求,檔案系統220持有共同代表大量儲存量之巨量的覆蓋率記錄。
位置儲存庫伺服器230係輕量伺服器,其保持對由獨立模擬所產生的獨立覆蓋率記錄目錄之位置的追蹤。其保持對該頂目錄位置的追蹤。部分實施例不作資料移動。
合併常駐程式240係查詢位置儲存庫伺服器230以提取覆蓋率記錄列表進行處理的計算密集程序。然後從檔案系統220存取並處理實際的覆蓋率記錄。整合工具,諸如urg(統一報告產生器),合併由獨立模擬所產生的覆蓋率記錄,以計算該覆蓋率模型的何等部分由該套驗證中的所有測試共同地覆蓋。該等合併常駐程式提供鉤,以在所有覆蓋率記錄完成前取樣該等已累計之覆蓋率記錄。
圖3係顯示圖2之模擬系統的作業之簡化狀態圖。
早期狀態係啟動合併伺服器310。該合併伺服器啟動,並能接收覆蓋率記錄,且停用「serv_post_start_call_back」。此回呼係用於提出當該合併伺服器離線時之已產生的任何覆蓋率記錄。若多個合併伺服器在相同機械上運行時,選項「daemon_port_start」指定該等合併常駐程式於其後運行之該合併伺服器的該埠。
中間狀態係活動狀態320。在模擬運行時,當特定模擬工作結束時,其使用該模擬客戶端介面以提出該覆蓋率記錄位置至該合併伺服器。在此狀態,檢查點回呼發生。在合併預定數量之覆蓋率記錄(可藉由組態檔中的checkpoint_granularity組態)或在正規期間(可藉由time_granularity組態)之後,其針對各合併常駐程式停用該「檢查點回呼」。此回呼刪除不加入何任值或保持對該覆蓋率度量如何改變之追蹤的覆蓋率記錄。
之後的狀態係停止合倂伺服器330。在此點,停用用於各合倂常駐程式之daemon_post_call_back。實施清除活動、寄送電子郵件等。
下文係關於合倂伺服器之鉤/回呼的細節,自A)列表至E):
A)覆蓋率記錄提出鉤:該鉤為累計覆蓋率記錄,容許覆蓋率記錄提出至該合倂伺服器。
B)位置伺服器起動後回呼:(該圖中的「serv_post_start_call_back」)一旦該合倂伺服器啟動並能接收覆蓋率記錄,停用此回呼。此回呼應用於提出在當該合倂伺服器離線時之已產生的任何覆蓋率記錄(使用該覆蓋率記錄提出鉤)。
C)檢查點回呼:(該圖中的checkpoint_callback)此回呼在正規期間停用,藉由以下參數組態:
1)time_granularity:使用者將此參數設定為一值(單位為秒)以指示此回呼何時應停用。例如,若該值為1800秒,該回呼將於每1800秒後停用。
2)checkpoint_granularity:使用者可設定此參數以指示應停用此回呼的頻率。例如,若該值設定為900,則此回呼將在每合倂900個覆蓋率記錄後停用。
除了上述預定條件外,停用此回呼並產生覆蓋率報告之其他預定條件係該已合倂覆蓋率記錄到達的覆蓋率百分比或其他覆蓋率度量量。
若設定該等參數二者,則無論何事件首先發生,該回呼將停用。該checkpoint_callback具有下列資訊:
1)在該最後回呼中用於各度量的基本分數
2)針對各已合倂覆蓋率記錄,該檢查點回呼具有下列資訊:2a)該覆蓋率記錄的名稱,2b)針對各度量的累計覆蓋率分數
此回呼可用於實作定製行動。彼等之一部分提及如下:
1)遞增分級:若針對覆蓋率記錄的遞增覆蓋率分數為零,則可刪除其。將藉由測試加入的遞增覆蓋率建入由該合倂伺服器所暴露之該等鉤中。所以,若覆蓋率記錄不加入任何值,可迅速地將其刪除,從而藉由約為受標定之可覆蓋物件的總數量約束所需之大量儲存器的量。
2)監視覆蓋率分數如何隨時間改變:此回呼可用於畫出該覆蓋率分數如何隨時間改變。若該覆蓋率分數不改變或改變得非常少,該客戶端可企圖改變該刺激或指示真人(經由電子郵件/傳呼器)必須採取行動。
3)良好測試的備份:該客戶端可決定特定覆蓋率記錄是否指示覆蓋率分數中的改變或覆蓋難以擊點/覆蓋之可覆蓋物件,並備份該測試。
通常,檢查點回呼指令能與該合倂常駐程式非同步地運行。該合倂常駐程式將不等待該腳本完成。該檢查點回呼介面係能處理xml檔案之指令。若該指令係「cpcb」,在產生檢查點後,會從該合倂常駐程式將其調用為「cpcb path-to-a-valid-xml-file」。
該檢查點回呼介面檔案的範例方案如下:
該「basescore」元件包含針對將所有覆蓋率記錄目錄遞增地合倂於其上之該測試的覆蓋率資料分數。
該「dir」元件代表已處理之頂層覆蓋率記錄目錄。屬性「path」指示該目錄的位置。屬性「error」指示當處理該目錄時,若發生錯誤。將該等錯誤細節重導向至檔案「err.log」。
「分數」代表各測試在藉由度量基底之度量上的覆蓋率分數。
範例檢查點回呼檔案如下:
D)常駐程式啟動前回呼:(圖中之daemon_pre_call_back)。一旦該合併常駐程式開始處理覆蓋率記錄之前,停用此回呼。此回呼可用於針對各合併常駐程式收集統計。
E)常駐程式停止後回呼:(圖中之daemon_post_call_back)當該合併伺服器停止時,停用此回呼。針對各合併常駐程式停用一此種回呼。此可用於採取如下之行動:
1.產生定製報告
2.傳送電子郵件等
圖4係圖2及3之該模擬系統的簡化目錄結構。
預設各合併常駐程式在由directory_prefix指定的該目錄內側產生次目錄。例如,針對由「./aggregated_data」所指定的預定組態檔,產生圖4之目錄結構。「UrgDaemon_1/UserDir/MergeDb」係由第一合倂常駐程式所產生的累計覆蓋率記錄。「UrgDaemon_1/UserDir/err.log」係用於由該第一常駐程式完成之覆蓋率記錄累計的錯誤記錄檔。將錯誤(訛誤覆蓋率記錄、該工具中的錯誤/故障)重導向至此檔案。
下文係在位置儲存庫伺服器230啟動合倂伺服器的範例語法。
mergeserv[--config=<config_file>]--start|--stop
config_file係由該合倂伺服器讀取之該[選擇性]組態檔。此組態檔的範例格式提供如下。
--start:啟動該合倂伺服器。若該合倂伺服器已在運行中,此選項不作任何事。
--stop:停止該合倂伺服器。此初始該停止序列。在已合倂所有的已提出資料庫後,該合倂伺服器停止。
範例合倂伺服器組態檔以xml格式顯示如下。
在此範例預設組態中:
1)位置儲存庫伺服器在埠7070上運行。
2)停用合倂常駐程式的單一實例。
3)所有合倂常駐程式客戶端將該累計資料產生在目錄「aggregated_data」下。
4)合倂伺服器在一記錄中維持未處理覆蓋率記錄的列表,該記錄儲存在由屬性datadir指定的該目錄下。在許多實施例中,僅有運行該合倂伺服器的該使用者具有此目錄的寫入權限。datadir的預設值為「.」。
該合倂常駐程式之多個實例的運行係效能最佳化,以處理覆蓋率記錄迅速地產生之情形。為在相同機械上運行多個合倂伺服器,用於停用該等獨立合倂伺服器之組態檔不應彼此衝突。具體地說,在該組態檔中的下列項目不應衝突。
i)location_serv port
ii)datadir
iii)directory_prefix
iv)daemon_port_start
相同的,任何與該等合倂伺服器共用之回呼腳本不應修改相同的系統資源。例如,若該檢查點回呼在某個檔案/目錄中儲存有用的測試資訊,由該等獨立回呼腳本使用的該檔案/目錄應隨各合倂伺服器而異。
此處係用於在相同機械上運行二合倂伺服器之取樣組態檔的範例。
然而前文通常相關於合倂覆蓋率記錄,下文通常相關於合倂特定覆蓋率記錄的技術。
圖5A及5B係與合倂而非捨棄先前覆蓋率記錄之已改善模擬流程對照的簡化流程圖。因為遞增之計算資源的成本遞減趨勢,如圖5A所示,每次該模擬模型調整時,熟悉本發明之人士傾向於重執行模擬以達成滿足覆蓋率度量的結果,而非從舊的模擬模型的覆蓋率記錄保留任何覆蓋率資料。
圖5A之流程圖如下。在501中,產生功能覆蓋率模型。在503中,運行隨機模擬,從特定輸入條件或某個第一隨機因子開始。在505中,合併藉由模擬產生的覆蓋率記錄。在507中,分析已合併之覆蓋率記錄。在509中,改善該功能覆蓋率模型。該流程圖在511之後重覆,在該步驟中刪除先前的覆蓋率記錄。
圖5B的流程圖修改圖5A的流程。在504中,與503中從特定輸入條件或特定第一隨機因子開始該隨機模擬不同,該隨機模擬係以新輸入條件或新隨機因子運行。在512中,與在511中刪除該等覆蓋率記錄不同,輸入先前的覆蓋率記錄。
圖5B的技術可施用在當所有模擬完成時,或相關於圖2-4如上文之所討論的在最後模擬完成之前,合併覆蓋率記錄之情形的任一者。
下列範例使用SystemVerilog樣式的語法以代表覆蓋率記錄,但可應用在具有可比性語法之何何硬體驗證語言上。記錄T1代表較舊的覆蓋率記錄。記錄T2代表較新的覆蓋率記錄。已合併記錄代表合併該等個別覆蓋率記錄的結果。解釋在各範例之後。
範例1:
根據範例1,不同的auto_bin_max值不係等效合併。
範例2:
根據範例2,刪除記錄T1之「coverpoint secondsig」的「bin mid=[71:82]」,因為其消失在記錄T2中的「coverpoint secondsig」之定義中。
範例3:
根據範例3,記錄T1的cp3係等效合倂於記錄T2中的cp3,並將彼等合倂。
範例4:
根據範例4,刪除記錄T1的「cp4:coverpoint signal」,因為該檢查點表示式(「訊號」)的寬度已從8位元改變為16位元。
範例5:
根據範例5,由於記錄T1的檢查點「cp1」受刪除,刪除記錄T1的「cc1:cross cp1,cp2;」(參考針對cp1的範例1)。
範例6:
根據範例6,針對T1及T2,合倂使用者箱mybin的覆蓋率資料。將T1中的cc2之自交叉合倂,該等自交叉也在T2中的cc2之自交叉覆蓋率空間中。
範例7:
根據範例7,盡管由於該使用者箱「mybin」的定義不同,T1及T2中的cc3之自交叉覆蓋率空間不同,在記錄T1中看到的自交叉仍將輸入,並與記錄T2中所看到的自交叉合併。將T1中的cc3之部分自交叉箱包括在記錄T2中的使用者箱mybin之定義中。將來自記錄T1的此等自交叉箱併入記錄T2的使用者箱mybin中。記錄T1中的剩餘自交叉箱將與記錄T2中的對應自交叉箱合併。
範例8:
根據範例8,在合併後,將保留不存在於記錄T1中而存在於T2中的交叉點cc4。
範例9:
根據範例9,在合併後,將保留不存在於記錄T1中而存在於T2中的覆蓋性質「third_prop」;在合併後,將保留不存在於記錄T2中而存在於T1中的覆蓋性質「second_prop」。
圖6係不同實施例之電腦系統的簡化方塊圖。
圖6係可用於實作合倂本發明的實施樣態之軟體的電腦系統610之簡化方塊圖。當本文陳述之該等流程圖及其他演算法描述一系列步驟時,將領會該流程圖或演算法的各步驟可藉由導致諸如610的電腦系統以指定方式作業而實現。
電腦系統610典型地包含藉由匯流排次系統612與許多周邊裝置通訊之處理器次系統614。處理器次系統614可能包含一或多個處理器。處理器次系統614提供用於電腦系統610的路徑,以接收及傳送本文所描述之包含在,諸如具有多核心、多處理器、及/或虛擬機械實作之該處理器次系統614內的資訊。該等周邊裝置可能包含儲存次系統624,包含記憶體次系統626以及檔案儲存次系統628、使用者介面輸入裝置622、使用者介面輸出裝置620、以及網路介面次系統616。該等輸入及輸出裝置容許使用者與電腦系統610互動。網路介面次系統616提供至外側網路的介面,包含至通訊網路618的介面,並經由通訊網路618耦合至其他電腦系統中的對應介面裝置。通訊網路618可能包含許多已互連電腦系統及通訊連接。此等通訊連接可能係有線連接、光學連接、無線連接、或任何其他用於資訊通訊的機構。雖然在一實施例中,通訊網路618係網際網路,在其他實施例中,通訊網路618可能係任何合適的電腦網路。通訊網路618提供用於電腦系統610的路徑,以接收及傳送本文所描述資訊。
網路介面的實體硬體組件有時稱為網路介面卡(NIC),雖然彼等不必為卡片形式:例如,彼等可具有積體電路(IC)及以直接裝配在主機板之連接器的形式、或以製造在具有該電腦系統的其他組件之單積體電路晶片上的巨集晶元的形式。
使用者介面裝置622可能包含鍵盤、諸如滑鼠、軌跡球、觸控板、或圖形輸入板之指向裝置、掃描器、倂入顯示器的觸控螢幕、諸如語音辨識系統、微音器之音訊輸入裝置、以及其他型的輸入裝置。通常,術語「輸入裝置」之使用傾向於包含所有可能類型的裝置及方式,以將資訊輸入至電腦系統610中或至電腦網路618上。
使用者介面輸出裝置620可能包含顯示次系統,列表機、傳真機、或非視覺顯示,諸如音訊輸出裝置。該顯示次系統可能包含陰極射線管(CRT)、平面裝置,諸如液晶顯示器(LCD)、投影裝置、或用於產生可視影像的特定其他機構。該顯示次系統也可能提供非視覺顯示,諸如經由音訊輸出裝置。通常,術語「輸出裝置」的之使用傾向包含所有可能類型的裝置及方式,以將資訊從電腦系統610輸出至該使用者或至其他機械或電腦系統。
儲存次系統624儲存提供本發明之特定實施例的功能之基本程式及資料構造。例如,實作本發明的特定實施例之功能的不同模組可能儲存在儲存次系統624中。此等軟體模組通常藉由處理器次系統614執行。
記憶體次系統626典型地包含許多記憶體,該等記憶體包含在程式執行期間用於指令及資料儲存的主隨機存取記憶體(RAM)630以及固定指令儲存於其中的唯讀記憶體(ROM)632。檔案儲存次系統628提供用於程式及資料檔案的持久儲存,並可能包含硬式磁碟驅動機、與連同相聯之可移除媒體的軟式磁碟驅動機(例示地顯示為儲存電路設計680的電腦可讀媒體640)、CD/DVD唯讀記憶體驅動器、光學裝置、或可移除媒體匣。實作本發明的特定實施例之功能的該等資料庫及模組可能已設置在電腦可讀媒體中,諸如一或多張CD/DVD ROM,並可能藉由儲存次系統628儲存。主記憶體626在其他事物之間包含當由處理器次系統614執行時,導致該電腦系統操作或實施如本文所描述之功能的電腦指令。如本文所使用的,稱為在「該主機」或「該電腦」中或上運行之程序及軟體係在處理器次系統614上執行,以回應主記憶體次系統626中的電腦指令及資料,該主記憶體次系統包含用於此種指令及資料之任何其他區域或遠端儲存。
匯流排次系統612提供用於使電腦系統610之不同組件及次系統如預期地彼此通訊的機構。雖然匯流排次系統612概要地顯示為單一匯流排,該匯流排的替代實施例可能使用多匯流排。
電腦系統610自身可有不同類型,包含個人電腦、可攜式電腦、工作站、電腦終端機、網路電腦、電視機、大型主機、平行處理系統、多於一台電腦的網路、或任何其他資料處理系統或使用者裝置。甚至由於電腦及網路的本質改變,將圖6中描畫的電腦系統610之描述視為係僅用於描繪本發明的較佳實施例之目的的特定範例。電腦系統610的許多其他組態可能具有較圖6所描畫之該電腦系統為多或少的組件。
下文係討論合倂覆蓋率記錄之模範條件的數學附錄。
1.等效合倂
若可覆蓋物件係等效合倂的,合倂跨越記錄的可覆蓋物件。等效合倂的觀念在覆蓋點及交叉點上不同。使用表示法A1≡merge-eqA2以指出A1及A2為等效合倂。
1.1覆蓋點的等效合倂
1.1.1自動箱化覆蓋點的等效合倂
1.1.1.1預設等效合倂
其中P1及P2自動箱化覆蓋點。
1.1.1.2彈性的等效合倂
與用於自動箱化覆蓋點的預設等效合倂相同。
1.1.2使用者箱化覆蓋點的等效合倂
1.1.2.1預設等效合倂
其中P1及P2係使用者箱化覆蓋點,且Bu(P)指向該組使用者界定箱。
1.1.2.2彈性的等效合倂
須注意已放棄具有相同之使用者界定箱組的必要性。
1.2交叉點的等效合倂
考慮交叉點,
C=P1 X P2...X Pn
界定下列各者:
Bu=在交叉C中的使用者界定箱組
對於箱b€Bu,界定下列各者:
Sb=包含該使用者界定箱b的自動交叉箱
Ba=自動交叉箱組=ΠBj-SBu
Bjgn=不合法/忽視/不可及自動交叉箱組
Π=設定交叉產生運算子
Bj=在第j個覆蓋點Pj中的箱組。
符號Bu(C)係用於指出交叉C的使用者界定箱組。
對其他組擴充相似符號,諸如Ba等。
考慮二交叉點:C1=A1 X A2…X An,其中A1、A2、…An係成份覆蓋點。
C2=B1 X B2…X Bm,其中B1、B2、…Bm係成份覆蓋點。
1.2.1 預設等效合併
若保持以下各者,C1≡merge-eqC2。
-交叉二者具有相同數量的覆蓋點。
n==m
-成份覆蓋點係逐對等效合併。
A1≡merge-eqB1、A2≡merge-eqB2、…、An≡merge-eqBm
-Bu(C1)=Bu(C2)
-若D係C1及C2中的使用者界定箱組,則保持下列各者
1.2.2 彈性的等效合併
若保持以下各者,C1≡merge-eqC2。
-交叉二者具有相同數量的覆蓋點。
n==m
-成份覆蓋點係逐對等效合倂。
A1=≡merge-eqB1、A2≡merge-eqB2、…、An≡merge-eqBm
上述規則具有以下隱喻:
-若覆蓋點不能合倂,包括該覆蓋點之任何交叉點將簡單地加至該已合倂記錄。總之,覆蓋點的≠merge-eq具有對所有交叉點的漣波效應。
1.2判定的等效合倂
1.2.1預設等效合倂
若保持以下各者,針對判定A1及A2,A1≡merge-eqA2。
name(A1)=name(A2)
1.2.2彈性的等效合倂
此等規則與預設等效合倂相同。
2.用於合倂之規則
用於預設合倂的該等規則係直接的,因為預設等效合倂確保跨越受合倂交叉記錄的該覆蓋率空間係相同的。
以下各節描述用於彈性合倂的該等規則。
2.1用於合倂覆蓋點及交叉點的規則
使M(T1)為T1中的覆蓋點/交叉點且M(T2)係T2中的覆蓋點/交叉點。
1.若M(T1)≡merge-eqM(T2),在根據上文界定之該等規則合倂後,將放棄僅界定於較舊功能覆蓋率模型中的箱。
2.若M(T1)≠merge-eqM(T2),則該已合倂記錄包含M(T2),其中T2係具有更近期功能覆蓋率模型的該記錄。
2.2用於合倂判定的規則
若A(T1)係記錄T1中的判定且A(T2)係記錄T2中的判定,則根據以下規則合倂彼等。
1.若A(T1)≡merge-eqA(T2),則該已合倂記錄包含A(T1)(或A(T2))。
2.若A(T1)≠merge-eqA(T2),則該已合倂記錄包含A(T2),其中T2係更近期記錄。
當本發明係藉由參考至上文詳細描述之較佳實施例及範例而揭示時,待理解此等範例傾向於以例示性而非限制性的觀念揭示。預期修改及組合將易為熟悉本發明之人士想及,該等修改及組合將在本發明之精神及下列申請專利範圍之範圍內。
210...獨立模擬客戶端
220...檔案系統
230...位置儲存庫伺服器
240...合倂常駐程式
610...電腦系統
612...匯流排次系統
614...處理器次系統
616...網路介面次系統
618...通訊網路
620...使用者介面輸出裝置
622...使用者介面輸入裝置
624...儲存次系統
626...記憶體次系統
628...檔案儲存次系統
630...隨機存取記憶體
632...唯讀記憶體
640...電腦可讀媒體
680...電路設計
圖1係積體電路製造的簡化流程圖,從概念階段、經過電子設計自動化(EDA)階段、並結束於該等積體電路。
圖2係實施硬體驗證語言電路設計之模擬的系統之簡化方塊圖。
圖3係顯示圖2之模擬系統的作業之簡化狀態圖。
圖4係圖2及3之該模擬系統的簡化目錄結構。
圖5A及5B係與合倂而非捨棄先前覆蓋率記錄之已改善模擬流程對照的簡化流程圖。
圖6係不同實施例之電腦系統的簡化方塊圖。
Claims (18)
- 一種電子設計自動化方法,包含:當由一硬體描述語言電路設計之驗證所產生的覆蓋率記錄產生時,在該硬體描述語言電路設計之最後模擬完成之前,合併該等覆蓋率記錄,無須等待所有未決驗證的覆蓋率記錄,以及回應該合併,釋放至少一部分的大量儲存器。
- 如申請專利範圍第1項之電子設計自動化方法,其中該等覆蓋率記錄中的至少一覆蓋率記錄係由該硬體描述語言電路設計之模擬所產生。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併,變更該硬體描述語言電路設計之一未決模擬的一條件。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併,變更該硬體描述語言電路設計之一未決模擬的一輸入參數。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併及所匹配的一預定條件,產生一覆蓋率報告。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含: 回應該合併,決定將一未決驗證的完成視為不足以改善該硬體描述語言電路設計的驗證覆蓋率。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併,藉由決定待藉由一未決模擬來模擬的該硬體描述語言電路設計之一屬性已經完成模擬,決定將一未決驗證的完成視為不足以改善該硬體描述語言電路設計的驗證覆蓋率。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併,決定將一未決驗證的完成視為不足以改善該硬體描述語言電路設計的驗證覆蓋率,並導致該未決驗證停止。
- 如申請專利範圍第1項之電子設計自動化方法,其中該合併導致包含正式驗證覆蓋率資料的一已合併覆蓋率記錄。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併的實施就緒,要求在該合併的該實施就緒之前所產生的覆蓋率記錄資料。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:回應該合併,實施:更新該硬體描述語言電路設計之驗證覆蓋率的一覆蓋 率度量,該覆蓋率度量包括來自該合併的覆蓋率資料。
- 如申請專利範圍第1項之電子設計自動化方法,另外包含:建立多重執行實例,該等多重執行實例實施該硬體描述語言電路設計的模擬之覆蓋率記錄的合併。
- 一種用於電子設計自動化之電腦可讀媒體,具有用於電路設計之電腦可讀指令,包含:當由一硬體描述語言電路設計之驗證所產生的覆蓋率記錄產生時,在該硬體描述語言電路設計之最後模擬完成之前,合併該等覆蓋率記錄,無須等待所有未決覆蓋率記錄的電腦指令,以及釋放至少一部分大量儲存器的電腦指令,以回應該合併。
- 如申請專利範圍第13項之電腦可讀媒體,另外包含:變更該硬體描述語言電路設計的一未決模擬之一條件的電腦指令,以回應該合併。
- 如申請專利範圍第13項之電腦可讀媒體,另外包含:產生一覆蓋率報告的電腦指令,以回應該合併及所匹配的一預定條件。
- 一種用於電子設計自動化之裝置,包含:一電腦,具有儲存當由一硬體描述語言電路設計之驗證所產生的覆蓋率記錄產生時,在該硬體描述語言電路設 計之最後模擬完成之前,合併該等覆蓋率記錄,無須等待所有未決覆蓋率記錄之電腦指令的一記憶體,以及釋放至少一部分大量儲存器的電腦指令,以回應該合併。
- 如申請專利範圍第16項的裝置,其中該記憶體另外儲存:變更該硬體描述語言電路設計的一未決模擬之一條件的電腦指令,以回應該合併。
- 如申請專利範圍第16項的裝置,其中該記憶體另外儲存:產生一覆蓋率報告的電腦指令,以回應該合併及所匹配的一預定條件。
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 TW201015364A (en) | 2010-04-16 |
TWI534643B true 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI683228B (zh) * | 2017-08-30 | 2020-01-21 | 台灣積體電路製造股份有限公司 | 開發電子裝置的電子架構設計的系統、開發多個標準電路元件庫的方法及將電子裝置製作至半導體基底上的系統 |
US11704472B2 (en) | 2017-08-30 | 2023-07-18 | Taiwan Semiconductor Manufacutring Co., Ltd. | Standard cells and variations thereof within a standard cell library |
Families Citing this family (23)
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 |
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
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI683228B (zh) * | 2017-08-30 | 2020-01-21 | 台灣積體電路製造股份有限公司 | 開發電子裝置的電子架構設計的系統、開發多個標準電路元件庫的方法及將電子裝置製作至半導體基底上的系統 |
US10741539B2 (en) | 2017-08-30 | 2020-08-11 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standard cells and variations thereof within a standard cell library |
US11182533B2 (en) | 2017-08-30 | 2021-11-23 | Taiwan Semiconductor Manufacturing Co., Ltd. | Standard cells and variations thereof within a standard cell library |
US11704472B2 (en) | 2017-08-30 | 2023-07-18 | Taiwan Semiconductor Manufacutring Co., Ltd. | Standard cells and variations thereof within a standard cell library |
Also Published As
Publication number | Publication date |
---|---|
US8904319B2 (en) | 2014-12-02 |
US8001505B2 (en) | 2011-08-16 |
CN101676919A (zh) | 2010-03-24 |
TW201015364A (en) | 2010-04-16 |
US20100070940A1 (en) | 2010-03-18 |
WO2010030450A2 (en) | 2010-03-18 |
US20110283246A1 (en) | 2011-11-17 |
CN101676919B (zh) | 2013-03-13 |
WO2010030450A3 (en) | 2010-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI534643B (zh) | 用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率記錄的方法和裝置 | |
TWI507904B (zh) | 用於合併覆蓋率資料的電子設計自動化(eda)覆蓋率紀錄的方法和裝置 | |
US7529655B2 (en) | Program product for defining and recording minimum and maximum event counts of a simulation utilizing a high level language | |
US7206732B2 (en) | C-API instrumentation for HDL models | |
US7359847B2 (en) | Tracking converage results in a batch simulation farm network | |
US7188061B2 (en) | Simulation monitors based on temporal formulas | |
US20080168057A1 (en) | Method and system for reducing storage requirements of simulation data via keyword restrictions | |
US20030101039A1 (en) | Maintaining data integrity within a distributed simulation environment | |
US20130013246A1 (en) | Method and apparatus for post-silicon testing | |
US7158924B2 (en) | Dynamic loading of C-API HDL model instrumentation | |
US7203633B2 (en) | Method and system for selectively storing and retrieving simulation data utilizing keywords | |
US6934885B2 (en) | Fail thresholding in a batch simulation farm network | |
US20030125915A1 (en) | Count data access in a distributed simulation environment | |
US7092868B2 (en) | Annealing harvest event testcase collection within a batch simulation farm | |
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 | |
US7143018B2 (en) | Non-redundant collection of harvest events within a batch simulation farm network | |
US20060122818A1 (en) | Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases | |
KR20210057183A (ko) | 상태-유지 루프들 및 발진 루프들을 식별하기 위한 하드웨어 시뮬레이션 시스템들 및 방법들 | |
Hajisheykhi et al. | A framework for verification of SystemC TLM programs with model slicing: A case study | |
US11442839B2 (en) | Runtime metrics based test ordering | |
CN116976263A (zh) | 检测电子电路设计中的组合环路中的不稳定性 |