TWI468950B - 執行硬體模擬及驗證解決方案的方法與設備 - Google Patents

執行硬體模擬及驗證解決方案的方法與設備 Download PDF

Info

Publication number
TWI468950B
TWI468950B TW98107709A TW98107709A TWI468950B TW I468950 B TWI468950 B TW I468950B TW 98107709 A TW98107709 A TW 98107709A TW 98107709 A TW98107709 A TW 98107709A TW I468950 B TWI468950 B TW I468950B
Authority
TW
Taiwan
Prior art keywords
processor
value change
change data
simulation
core
Prior art date
Application number
TW98107709A
Other languages
English (en)
Other versions
TW200949569A (en
Inventor
Manish Jain
Subha S Chowdhury
Sridhar Seshadri
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 TW200949569A publication Critical patent/TW200949569A/zh
Application granted granted Critical
Publication of TWI468950B publication Critical patent/TWI468950B/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
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

執行硬體模擬及驗證解決方案的方法與設備
本發明大致上是有關於硬體設計及驗證。更明確而言,本發明是有關於執行硬體模擬及驗證解決方案的方法及設備。
由於設計及驗證工具的進步,計算技術發展得十分迅速,若是沒有設計及驗證工具,則設計及驗證現今的計算裝置中常見的複雜積體電路幾乎是不可能的。因為積體電路的尺寸及複雜度快速增加,對於尋找用以改善硬體模擬及驗證解決方案的效能的方法及設備有強烈的需求。
不幸地,用於改善軟體效能的習知技術並非總是有效。例如,因為重新寫入如此複雜的軟體的成本甚鉅,平行執行擦除軟體並重新寫入是不切實際的。由於最複雜的平行編譯器在此種複雜的軟體中通常也不能使用平行化的時機,平行編譯器亦有可能不會改善效能。更進一步,根據Amdahl定律,僅平行化軟體的一小部份,通常也不能大幅改善效能,且若不同片段需要大量的同步化,則將軟體分成多個不同片段可能會降低效能。
本發明之一實施例提供用以在多處理器系統中執行硬體模擬及驗證解決方案之系統及技術。明確而言,一實施例將硬體模擬及驗證解決方案分成不同模組,以使其可平行執行,而不需要模組之間的大量通訊或是同步。
硬體模擬及驗證解決方案可分成一模擬核心,用以模擬數值改變;一數值改變傾印(value change dump,VCD)模組,用以將信號數值之改變儲存於電腦可讀儲存媒體;一功能涵蓋模組,用以檢驗功能;一觸發涵蓋模組,用以檢驗信號觸發;一斷言引擎,用以檢驗複合性能;及一測試平台模組,用以產生測試態樣。本發明之實施例可在不同處理器上執行不同模組,藉此改善效能。
積體電路(IC)設計流程
圖1為根據本發明之一實施例,顯示積體電路之設計及製造之各種步驟。
此製程通常以產品概念作為開始(步驟100),通常以EDA軟體設計製程來實現(步驟110)。一但完成設計,通常就下線(tape-out)(事件140)並進入製造製程(步驟150)及封裝及組裝製程(步驟160),以製造完成的晶片(結果170)。
EDA軟體設計製程(步驟110)包含步驟112-130,其等步驟將在以下敘述,但僅為說明目的而非意圖要限制本發明。舉例而言,實際的積體電路設計可能包含設計者以與下述不同的順序實施設計步驟。
系統設計(步驟112):在此步驟中,設計者描述欲實現之功能。設計者亦可實施假設規劃,以限制功能、檢驗成本等。硬體-軟體建構分割可在此步驟發生。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為Model Architect,Saber、System Studio及Design Ware產品。
邏輯設計及功能驗證(步驟114):在此階段,撰寫用於系統中之模組的VHDL或是Verilog程式碼,並檢驗此設計的功能精確性。更明確而言,須檢驗設計以確保能產生正確結果。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為VCS、Vera、Design Ware、MagellanTM 、Formality、ESP及Leda產品。
用以測試之合成及設計(步驟116):於此,VHDL/Verilog轉譯成網路表格。可為了目標技術而最佳化網路表格。此外,可設計並實現測試以檢驗完成的晶片。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為Design Compiler、Physical Compiler、Test compiler、Power CompilerTM 、FPGA Compiler、TetraMAX及DesignWare產品。
網路表格驗證(步驟118):在此步驟中,檢驗網路表格是否符合時序限制,及檢驗VHDL/Verilog來源程式碼的一致性。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為Formality、PrimeTime及VCS產品。
設計規劃(步驟120):於此,已建構並分析晶片之整體平面圖之時序及高層級路線。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為AstroTM 及IC Compiler產品。
具體實現(步驟122):配置(電路元件之定位)及接線(電路元件之連接)發生在此步驟。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為AstroTM 及IC Compiler產品。
分析及擷取(步驟124):在此階段,以電晶體層級來驗證電路功能,如此則容許假設性的限制。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為AstroRailTM 、PrimeRail、PrimeTime、及Star-RCXTTM 產品。
具體驗證(步驟126):在此步驟中,檢驗設計,以確保製造、電子問題、光微影問題、及電路的正確性。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為HerculesTM 產品。
解析度提升(步驟128):此步驟涉及佈局之幾何操作,以改善設計之製造性。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為Proteus/Progen、ProteusAF及PSMGen產品。
遮罩資料預備(步驟130):此步驟提供用於製造遮罩之「下線」資料,以製造完成的晶體。例示性的EDA軟體為Synopsys公司的產品,可在此步驟使用者為CATS產品家族。
可在上述之一個或更多個步驟中使用本發明之實施例。明確而言,可在邏輯設計及功能驗證步驟114中使用本發明之一實施例。
模擬及驗證解決方案
硬體描述語言(HDL)的引入重大改革了硬體驗證,且在1990年代早期,以HDL為基礎的模擬器已成為硬體驗證之重要工具。自其引入開始,HDL模擬器的效能不斷地改善,驗證技術歷經數個「栓合」工具發展的時期,以改善驗證能力。
然而,因為栓合工具方法會造成花費高且零碎的解決方案,其為多種方法及供應商的混雜物,栓合工具方法會降低模擬及驗證解決方案之整體效能。因為設計時的某些硬體建構的解譯差異,以其本身獨有語言個別編譯或是解譯的各個栓合工具造成分析或是編譯階段的效能低落,且亦會造成工具之間的不一致。隨著半導體集成密度不斷快速增加,很明顯的對於統合且可理解的硬體模擬及驗證解決方案有需求。因應此需求,Synopsys公司引入了可理解的硬體模擬及驗證解決方案VCS
圖2顯示根據本發明之一實施例,模擬及驗證解決方案之流程圖。
此製程通常以產生描述待測設計(DUT)的原始檔案204作為開始(步驟202)。原始檔案可使用標準化非專有的硬體描述語言(HDL)以描述DUT。
接著,使用編譯器編譯原始檔案,以獲得模擬執行206(步驟204)。模擬執行206可為被執行時可模擬DUT行為之軟體應用程式。模擬執行亦可包含在模擬時用以實施DUT驗證之指令。例如,在模擬時,編譯器可使模擬執行產生用以檢驗DUT之不同部分的功能的指令。相似地,在模擬時,編譯器可使模擬執行產生用於檢驗一組使用者指定的信號被觸發的次數的指令。
然後,執行模擬執行以模擬DUT,實施相互除錯,及產生模擬傾印檔案210以供後續分析(步驟208)。模擬傾印檔案210一般包含有關模擬時信號數值如何改變的資訊。本發明之一實施例使用壓縮技術減少模擬傾印檔案的大小。接著,分析模擬傾印檔案(步驟212)以將DUT除錯。
圖2所示之流程圖僅為說明性目的,而非意圖限制本發明之範圍。舉例而言,說明性的模擬器一般在其流程中不需要編譯步驟。然而,比起基於解譯器的方法而言,因為基於編譯器的方法可避免基於解譯器的多餘層級及效能低落,基於編譯器的方法通常模擬較快且使用較少的記憶體。更進一步,可以藉由使用漸進式編譯而大幅減少編譯原始檔案所需的時間,除非自上次編譯以來的相關原始檔案已更新,否則漸進式編譯會重複使用已編譯的模組。
儘管可理解的模擬及驗證解決方案呈現對於早期閂鎖方法的明顯改善,但因為積體電路的尺寸及複雜度快速增加,尋找改善硬體模擬及驗證解決方案的方法與設備的需求再次出現。
目前為止,微處理器供應商已可藉由增加時脈速度而增加效能。然而,隨著半導體密度持續增加,因為具體限制(例如散熱及同步),增加時脈速度的難度日趨增加。因此,電腦產業正在尋找其他方法,例如平行處理,以增加應用效能。明確而言,微處理器供應商引入將多個處理器包含在單一晶片中之多核處理器。
多處理器系統
圖3為根據本發明之一實施例,顯示多處理器系統。
多處理器系統可包含使用匯流排或是開關耦接的多個處理器。處理器一般為可執行指令的任何電路,從而使電路對儲存於電腦可讀儲存媒體中之資料實施操作。例如,多處理器系統300包含使用匯流排320耦接之處理器302、304及310。
處理器可包含一個或更多個核心,各個核心主要為一處理器,亦即,其為能夠執行指令之電路。例如,處理器302包含一個核心,處理器304包含兩個核心(核心306及308),處理器310包含四個核心(核心312、314、316及318)。以下,「處理器」及「核心」的術語可互換使用。
除了具有一個或更多個核心之外,處理器可包含一個或更多個快取記憶體層級。例如,處理器使用單一層級的快取記憶體,而處理器304使用雙層級的快取記憶體。明確而言,在處理器304中之各個核心具有自有的L1(層級1)快取記憶體,且該等核心共用L2(層級2)快取記憶體。處理器可包含分別的指令及資料快取記憶體,或可包含儲存指令及資料的單一快取記憶體。
可使用數種技術來達成處理器之間的通訊。在共享記憶體結構中,多個處理器可存取相同的位址空間。因此,第一處理器可將資料儲存於共享的記憶體位置,而第二處理器可從共享的記憶體位置讀出該資料。在其他類型的結構中,處理器可藉由經匯流排或是開關傳送訊息或是封包而互相通訊。例如,第一處理器可將資料儲存於封包中,並將封包傳送至第二處理器,第二處理器可使用該資料實施更進一步的處理。
可使用數種技術來設計多處理器系統之軟體。以同時程式語言撰寫應用程式,如此則容許應用程式發展者明確指定將平行實施之步驟。然而,因為重新撰寫大量軟體應用程式的成本高昂,通常這個選擇是不切實際的。另一選擇是使用可自動偵測可平行執行之指令順序的平行化編譯器。然而,在此種複雜的軟體中,即使是最複雜的編譯器,通常也無法使用平行的機會。
又另一選擇是將軟體應用程式分成可平行執行而不需要大量模組之間通訊的不同組成或是模組。因為應用程式層級分割需要軟體發展者對於軟體應用程式的內部工作有十分深入的了解,則其通常十分具有挑戰性。即使在軟體發展者得到深入了解之後,發展者仍必須找出分割軟體的方法,以使平行執行軟體可改善效能。明確而言,若軟體分成需要其間大量同步的組成,則實際上因為通訊瓶頸,有可能會降低效能。此外,分割解決方案必須要易於實現,亦即,分割解決方案必須具有成本效益,以使其可更改循序的軟體,使其可在多處理器系統上執行。
本發明之實施例係為根據如何將硬體模擬及驗證解決方案(其為非常複雜的軟體片段)以具有成本效益的方式分割成不同模組的新穎觀點,以使該等模組可平行執行,而不需要模組之間的的大量同步或是通訊量。
模擬核心
模擬核心通常為在模擬及驗證解決方案的諸多工作中,排程事件佇列中的模擬事件、提前模擬時間、及處理已排程事件作為模擬時間進展之部份。注意,此等工作並非為詳列工作,或意欲為限制模擬核心於所揭示之工作。在一實施例中,模擬核心之部分可儲存於軟體資料庫中。在編譯時,系統可將資料庫連接於其他程式碼,以創造模擬核心。
模擬核心可提供用於安裝回呼函式的回呼介面。在時槽中,當相關事件發生時或是當模擬為在特定事件區域時,會呼叫該回呼函式。
在一實施例中,系統可在單一處理器上執行模擬核心。在此實施例中,藉由該處理器上所執行之模擬核心決定整個DUT中的信號數值。在另一實施例中,DUT之不同部分可在不同處理器上模擬。注意,在此實施例,因為DUT的一部份中的信號改變有可能會影響另一DUT部份中的信號數值,可能需要不同處理器之間的大量通訊及同步。
圖4顯示根據本發明之一實施例,時槽之不同事件區域。
時槽可分成一組依序的區域,且各區域可用於處理事件的特定類型。將時槽分割可確保與特定區域相關的一組模擬事件係在與另一區域相關的另一組事件之前(或是之後)處理。然而,在任何給定區域中的事件執行順序不會被HDL的語法指定。或者,HDL可包含促使使用者指定區域內的事件順序的結構。
在一實施例中,時槽包含提前區域402、主動區域404、閒置區域406、無阻塞指派(NBA)區域408、觀察區域410、反應區域412及延後區域414。提前區域402發生在對目前時槽之模擬信號數值之改變之前。因此,提前區域402可用於安裝必須在目前時槽之變數改變狀態之前,及在執行處理之前存取模擬資料的回呼函式。提前區域402亦可用於取樣穩定狀態資料。主動區域404、閒置區域406、NBA區域408、觀察區域410及反應區域412為已知的反覆區域。延後區域414發生在已模擬完成目前時槽之全部信號數值之改變之後。因此,延後區域414可用於安裝必須在目前時槽之全部變數已改變狀態之後,及在全部處理已執行之後存取模擬資料之回呼函式。
DUT之說明一般包含描述DUT的一部分功能之模組,例如元件或是電路。主動區域404藉由執行DUT說明中之模組以決定信號數值。閒置區域406用於實施因為競爭情形而不能在主動區域中執行之任何HDL程式碼。若HDL程式碼係根據特定的寫碼原理撰寫,則有可能消除閒置區域406的必要。
NBA區域408可用於有效地處理模擬競爭情形。明確而言,係在全部的設計時脈信號已傳送,且已執行時脈觸發的處理之後,但在模擬時間超前之前,才處理NBA區域408中之事件。觀察區域410為可估算不變斷言之處,且因為NBA區域408中之無阻塞斷言可改變變數的數值,觀察區域410係在NBA區域408之後。觀察區域410亦為可估算時控斷言之最後一個區域。
測試平台程式碼係用於產生用於DUT之刺激,且係用於檢驗結果,以驗證設計是否與規格相符。反應區域412可用於執行測試平台程式碼,包含斷言之通過/失敗說明。
數值改變傾印
模擬及驗證解決方案經常將信號數值之改變傾印在檔案中,以供後續分析。例如,在圖2所示之工作流程中,系統產生模擬傾印檔案210以實施後續處理。因為信號數值之改變可能很大,某些模擬及驗證解決方案使用壓縮技術以減少傾印檔案的大小。不幸的,壓縮數值改變資料需要大量的計算,如此則降低模擬效能。
注意,因為壓縮數值改變資料不會改變DUT中之任何信號狀態,可獨立於模擬本身而實施壓縮。本發明之一實施例使用此種觀點來平行執行模擬核心及數值改變資料之壓縮。明確而言,可在模擬核心中安裝回呼函式以收集信號數值之改變,及將數值改變資料儲存於共享的記憶體中。接著,在另一處理器上執行數值改變傾印模組,以壓縮數值改變資料,及儲存壓縮的資料,以供後續分析。
功能涵蓋
功能涵蓋可用於量測驗證的進度。在一方法中,系統可使用功能涵蓋模組以定義如何量測驗證的進度。功能涵蓋模組通常包含表示滿足驗證計畫之條件之功能涵蓋物件。
在限制隨機測試方法中,刺激可使用功能涵蓋為手段。可量測隨機的刺激以判定是否全部的重要輸入條件如設計般發生在測試套組中。可收集功能涵蓋模組中所指定的全部驗證測試的功能涵蓋,且可根據測試資料判定功能涵蓋量度。功能涵蓋量度有助於工程師判定是否需要(若有存在的)任何額外測試、隨機或是可能導向。功能涵蓋物件可用於判定可指示驗證進度之功能涵蓋量度。
在一實施例中,功能涵蓋模組可為以容許使用者指定行為之語言來描述,且功能涵蓋模組可不斷追蹤行為發生的次數。明確而言,涵蓋模組包含一組涵蓋群集,其中各涵蓋群集包含取樣事件及涵蓋表示。取樣事件大致上為任意的模擬事件,例如信號或是變數改變。涵蓋表達式可對取樣變數、違法數值及忽略數值指定意欲數值。意欲數值可用於指定較佳行為,違法數值可用於標定DUT中之錯誤,忽略數值可用於定義未收集且/或是忽略的狀態,且判定功能涵蓋量度。功能涵蓋模組亦可指定涵蓋群集之取樣變數之交點,交點可促使功能涵蓋模組使多重涵蓋品項之間互相相關。
注意,因為判定功能涵蓋並不會改變DUT中之信號狀態,可獨立於硬體模擬而實施更多或更少功能涵蓋計算。本發明之一實施例使用此種觀點而平行執行模擬及功能涵蓋模組。明確而言,可在模擬核心中安裝回呼函式,以收集信號數值之改變,及將數值改變資料儲存於共享的記憶體中。接著,可在另一處理器上執行功能涵蓋模組,以判定功能涵蓋量度及回報量度予使用者。
觸發涵蓋
涵蓋量度可根據所提供之資訊類型分成兩種類別。控制-流程-涵蓋量度表示已實施之控制-流程涵蓋之範圍,亦即,在模擬時,DUT中之線、路徑及分支的範圍。數值涵蓋量度表示已實施之數值涵蓋之範圍,亦即,在模擬時,符合期望的信號數值之信號數值的範圍。
觸發涵蓋量度為追蹤DUT內之信號線是否被觸發的數值涵蓋量度。觸發涵蓋一般用於確保DUT中之信號線為「存活」,亦即,信號線在模擬時會改變其值。
觸發涵蓋模型可指定信號線之何者將被監控,及一個或更多個觸發涵蓋量度將如何基於測試資料而被計算。例如,觸發涵蓋模型可包含匯流排中之所有信號線,且相關的觸發涵蓋量度可回報在模擬時,匯流排中至少被觸發一次之信號線之百分比。或者,觸發涵蓋量度可回報在模擬時,信號線被觸發的平均次數。觸發涵蓋模型及量度之此等範例僅為說明性目的而表示,並非用以詳列或是限制本發明於所揭示之形式。
注意,因為判定觸發涵蓋並不會改變DUT中之信號狀態,可獨立於硬體模擬而實施更多或更少觸發涵蓋計算。本發明之一實施例使用此種觀點而平行執行模擬核心及觸發涵蓋模組。明確而言,可將回呼函式安裝於模擬核心中,以收集信號數值之改變及將數值改變資料儲存於共享的記憶體中。接著,可在另一處理器上執行觸發涵蓋模組,以判定觸發涵蓋量度及回報量度予使用者。
斷言
斷言為有關設計元件之說明,例如信號、登錄、交換等,其可用於估算DUT是否適當運作。檢驗斷言需要以一循環接一循環的方式存取設計元件。因此,為了要加速模擬工作率,較佳者為最小化在模擬時存取設計元件之花費。明確而言,意圖經由應用程式介面(例如藉由安裝回呼函式)存取設計元件會大幅減少效能,因此,較佳者為支援模擬核心內的斷言。
在習知方法中,一般係在圖4所示之觀察區域4101中估算斷言。然而,注意,斷言一般係使用在先前時槽中判定的信號數值。因此,可能可以在時槽的開始估算斷言。本發明之一實施例使用此種觀點在分離的線程中估算斷言。明確而言,模擬核心可在第一核心執行之第一線程上執行,而斷言引擎可在第二核心執行之第二線程上執行。模擬核心可通知斷言引擎新的時槽開始。回應通知之接收,斷言引擎可使用在先前時槽中判定的信號數值估算斷言。
既然斷言引擎係使用在先前時槽中已判定之信號數值,則可平行執行斷言及模擬核心。更進一步,注意,因為在時槽的開始及/或是結束之間需有充分同步,在斷言引擎線程及模擬核心線程之間可能會需要小量的同步。
測試平台
測試平台模組一般用於產生用於DUT之刺激及檢驗結果,以驗證設計是否符合規格。測試平台包含多個模組,其可以不同的抽象層級撰寫,且有時需要近端同步。一般係以促使使用者指定如何產生測試態樣的語言描述測試平台模組。若模擬核心及測試平台需要近端同步,則對於平行執行模擬核心及測試平台可能無益。然而,可能可以藉由以下特定的程式限制而最小化同步量。本發明之一實施例使用此種觀點來創造可與模擬核心平行執行之測試平台模型。
明確而言,測試平台模型之編碼規定包含以下:(1)應以非零偏斜取樣設計信號,(2)階層式的參考值不應出現在測試平台程式碼及模擬核心程式碼之間,(3)不應使用非同步取樣及事件控制,及(4)不應在測試平台程式碼及模擬核心程式碼之間共享變數。若觀察到該等編碼規定,則模擬核心及測試平台模組很有可能是平行執行,而不需此二者之間的大量同步。
在一實施例中,模擬核心及測試平台模組具有可互相獨立而執行更多或更少之獨有的事件驅動排程。在時槽中的反應區域的結尾,測試平台輸出事件可傳送到模擬核心。既然在測試平台中之NBA區域中之排程事件僅相當於設計信號之工作,則其可在處理反應區域中之全部其他事件之後,再由模擬核心處理。注意,因為其保持自測試平台模組至模擬核心之事件傳送之通常語義,此方法亦可反向進行。更進一步,注意,在每個時槽中,其僅足以同步化模擬核心及測試平台模組一次。
執行模擬及驗證解決方案之處理
圖5為根據本發明之一實施例,顯示可用於執行模擬及驗證系統之電腦系統。
電腦系統502包含處理器504、記憶體506及儲存裝置508。電腦系統502可耦接至顯示器514、鍵盤510及指向裝置512。儲存裝置508可儲存原始檔案516、編譯器518及執行520。處理器504可包含一個或更多個核心,且/或是電腦系統502可包含多處理器系統。
在操作中,電腦系統502將編譯器518載入記憶體506。接著,使用者可使用編譯器518編譯原始檔案516,以產生執行520。執行520可包含一個或更多個檔案,且可被儲存於電腦可讀儲存媒體中,例如儲存裝置508。電腦系統502可將記憶體506載入執行520,並使用處理器504執行儲存於執行520中之指令。在一實施例中,執行520可包含用於模擬核心、數值改變傾印模組、功能涵蓋模組、觸發涵蓋模組、斷言引擎及測試平台模組之指令。
在習知技術中,硬體及驗證解決方案通常在單一處理器上以單一處理執行。因此,用以改善硬體模擬及驗證解決方案之效能之習知技術著重於程式碼最佳化。相較之下,本發明之實施例可藉由分割硬體模擬及驗證解決方案為不同組成,並在多處理器統上將不同組成以分離的程序或是線程執行,而改善效能。
圖6顯示根據本發明之一實施例,在多處理器上執行硬體模擬及驗證解決方案之處理之流程圖,硬體模擬及驗證解決方案包含用以模擬信號數值之改變之模擬核心,及用以將信號數值之改變儲存於電腦可讀儲存媒體之VCD模組。
在操作中,系統可接收使用標準化非專有HDL以描述DUT之原始檔案。接著,系統可編譯原始檔案以獲得模擬核心。或者,系統可接收預先編譯好的模擬核心。
在一實施例中,模擬核心可提供回呼介面,其用於安裝當特定事件發生時會呼叫的回呼函式。在編譯時,可安裝每個時槽中會呼叫的回呼函式。回呼函式可包含收集數值改變資料之指令,及儲存數值改變資料之指令,以使另一處理器可存取數值改變資料。
明確而言,回呼函式可使用資料庫函式以收集數值改變資料。接著,回呼函式可將數值改變資料儲存於共享的記憶體區塊中,此共享的記憶體區塊可由執行數值改變傾印模組之另一處理器存取。然後,另一處理器上的數值改變傾印模組可讀出數值改變資料,並據此而處理數值改變資料,例如,數值改變傾印模組可壓縮數值改變資料並將壓縮的數值改變資料儲存於電腦可讀的儲存媒體中,以供後續分析。
在編譯之後,系統可在第一處理器上執行模擬核心,藉此使第一處理器產生表示一組信號數值之改變之數值改變資料,並儲存數值改變資料,以使不同於第一處理器之第二處理器可存取數值改變資料(步驟602)。
系統可在第二處理器上執行VCD模組,藉此使第二處理器壓縮數值改變資料,並將壓縮的數值改變資料儲存於電腦可讀的儲存媒體中,以供後續分析(步驟604)。模擬核心及VCD模組可執行為分離的程序或是分離的線程。
圖7為根據本發明之一實施例,顯示用以在多處理器上執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含用以模擬信號數值之改變之模擬核心,及用以檢驗DUT之涵蓋之功能涵蓋模組。
在操作中,系統可在第一處理器上執行模擬核心,藉此使第一處理器產生表示用於DUT之功能涵蓋模組中的一組信號數值之改變,及儲存數值改變資料,以使不同於第一處理器之第二處理器可存取數值改變資料(步驟702)。
系統可在第二處理器上執行功能涵蓋模組,藉此使第二處理器使用功能涵蓋模組及數值改變資料判定功能涵蓋量度,並將功能涵蓋量度回報予使用者(步驟704)。模擬核心及功能涵蓋模組可執行為分離的程序或是分離的線程。
圖8為根據本發明之一實施例,顯示用以在多處理器上執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含用以模擬信號數值之改變之模擬核心,及用以檢驗DUT之信號觸發之觸發涵蓋模組。
在操作中,系統可在第一處理器上執行模擬核心,藉此使第一處理器產生表示用於DUT之觸發涵蓋模型的一組信號數值之改變之數值改變資料,並儲存數值改變資料,以使不同於第一處理器之第二處理器可存取數值改變資料(步驟802)。
系統可在第二處理器上執行觸發涵蓋模組,藉此使第二處理器使用觸發涵蓋模型及數值改變資料判定觸發涵蓋量度,並將觸發涵蓋量度回報予使用者(步驟804)。模擬核心及觸發涵蓋模組可執行為分離的程序或是分離的線程。
圖9為根據本發明之一實施例,顯示用以在多處理器上執行硬體模擬及驗證解決方案之處理之流程圖,硬體模擬及驗證解決方案包含用以模擬信號數值之改變之模擬核心,及用以在測試DUT中檢驗設計之複合行為之斷言引擎。
在操作中,在模擬時槽開始時,系統可在第一處理器上執行模擬核心,藉此使第一處理器儘快通知在(不同於第一處理器之)第二處理器上的斷言引擎,在模擬時槽中,模擬DUT之信號數值之改變,及檢驗斷言引擎是否完成第二處理器上之執行(步驟902)。
系統可在第二處理器上執行斷言引擎,藉此使第二處理器執行以下動作:回應自模擬核心接收通知模擬時槽已開始而使用在先前時槽中判定的信號數值估算斷言;及一但已估算斷言,即通知模擬核心(步驟904)。模擬核心及斷言引擎可執行為分離的程序或是分離的線程。
在一實施例中,系統不會使用核心的回呼介面來安裝通知斷言引擎模擬時槽開始的回呼函式。取而代之的是,編譯器可產生指令以通知第二處理器上的斷言引擎模擬時槽已開始。明確而言,此等指令可為模擬核心之程式碼的一部分,且此等指令可由第一處理器在各個模擬時槽之始執行,藉此使第一處理器通知第二處理器上的斷言引擎線程模擬時槽已開始。圖10為根據本發明之一實施例,顯示用以在多處理器上執行硬體模擬及驗證解決方案之處理之流程圖,硬體模擬及驗證解決方案包含用以模擬信號數值之改變之模擬核心,及用以產生DUT之測試態樣之測試平台模組。
在操作中,系統可在第一處理器上執行模擬核心,藉此使第一處理器通知(不同於第一處理器之)第二處理器上之測試平台模組產生用以測試DUT之測試信號,自第二處理器上的測試平台模組接收測試信號,及在模擬時槽中模擬DUT之信號數值之改變(步驟1002)。
系統可在第二處理器上執行測試平台模組,藉此使第二處理器產生用以測試DUT之測試信號,並傳送測試信號至第一處理器上之模擬核心(步驟1004)。模擬核心及測試平台模組可執行為分離的程序或是分離的線程。
在一實施例中,編譯器可產生用以通知第二處理器上之測試平台模組以產生用以測試DUT之測試信號之指令。此等指令可為模擬核心之程式碼的一部份,且此等指令可由第一處理器在模擬時槽開始之前執行,藉此使第一處理器在測試時槽中通知測試平台模組產生用以測試DUT之測試信號。
結論
在詳細說明中所述之資料結構及程式碼一般係儲存於電腦可讀的儲存媒體,電腦可讀的儲存媒體為可儲存程式碼及/或是電腦系統使用的資料的任意裝置或是媒體。包含但不限於揮發式記憶體、非揮發式記憶體、磁性及光學儲存裝置,例如磁碟機、磁帶、光碟(CD)、數位多功能光碟或是數位影像光碟(DVD)或能夠儲存電腦可讀的媒體的已知或以後會發展的其他媒體。
更進一步,前述的本發明之實施例之敘述僅為說明性及敘述性的。實施例並非意圖詳列或是限制本發明於所揭示之形式。因此,熟知本技藝者當可輕易了解許多變型及更動。此外,上述揭示並非意欲限制本發明。本發明之範圍係由後附之申請專利範圍決定。
204...原始檔案
206...模擬執行
210...模擬傾印檔案
300...多處理器系統
302...處理器
304...處理器
306...核心
308...核心
310...處理器
312...核心
314...核心
316...核心
318...核心
320...匯流排
402...提前區域
404...主動區域
406...閒置區域
408...無阻塞指派區域
410...觀察區域
412...反應區域
414...延後區域
502...電腦系統
504...處理器
506...記憶體
508...儲存裝置
510...鍵盤
512...指向裝置
514...顯示器
516...原始檔案
518...編譯器
520...執行
圖1為根據本發明之一實施例,顯示積體電路之各種設計及製造步驟。
圖2為根據本發明之一實施例,顯示模擬及驗證解決方案之工作流程圖。
圖3為根據本發明之一實施例,顯示多處理器系統。
圖4為根據本發明之一實施例,顯示時槽中之不同事件區域之圖。
圖5為根據本發明之一實施例,顯示可用於執行模擬及驗證系統之電腦系統。
圖6為根據本發明之一實施例,顯示在多處理器中執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含模擬核心及數值改變傾印模組。
圖7為根據本發明之一實施例,顯示在多處理器中執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含模擬核心及功能涵蓋模組。
圖8為根據本發明之一實施例,顯示在多處理器中執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含模擬核心及觸發涵蓋模組。
圖9為根據本發明之一實施例,顯示在多處理器中執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含模擬核心及斷言引擎。
圖10為根據本發明之一實施例,顯示在多處理器中執行硬體模擬及驗證解決方案之處理流程圖,硬體模擬及驗證解決方案包含模擬核心及測試平台模組。

Claims (21)

  1. 一種在多處理器上執行硬體模擬及驗證解決方案之方法,其中該硬體模擬及驗證解決方案包含模擬信號數值之改變的一模擬核心,以及將信號數值之改變儲存於一電腦可讀儲存媒體的一數值改變傾印(value change dump,VCD)模組,該方法包含:在一第一處理器上執行該模擬核心,藉此使該第一處理器執行以下動作:產生數值改變資料,其中該數值改變資料包含有關於在模擬期間的信號數值之改變的資訊;及將該數值改變資料儲存於共享的記憶體區塊中;及在不同於該第一處理器的第二處理器上執行該VCD模組,藉此使該第二處理器執行以下動作:於匯流排上從該共享的記憶體區塊存取該數值改變資料;壓縮儲存於該共享的記憶體區塊中的該數值改變資料;及將該壓縮的數值改變資料儲存於該電腦可讀儲存媒體中,以供後續分析;且其中該模擬核心和該VCD模組被平行執行。
  2. 如申請專利範圍第1項之方法,其中,在執行該模擬核心之前,該方法包含:接收用以描述一待測設計(DUT)之原始檔案;及 編譯該原始檔案以獲得該模擬核心。
  3. 如申請專利範圍第2項之方法,其中該模擬核心提供用於安裝回呼函式的一回呼介面,當特定事件發生時,會呼叫該回呼函式;其中,編譯該原始檔案包含安裝一第一回呼函式,在該模擬核心產生該數值改變資料時會呼叫該第一回呼函式;及其中,該第一回呼函式包含:收集該數值改變資料之指令;及儲存於該共享的記憶體區塊中的該數值改變資料以使該第二處理器可存取該數值改變資料之指令。
  4. 如申請專利範圍第2項之方法,其中,該原始檔案使用標準化非專有的硬體描述語言(HDL)以描述該DUT,且其中該模擬核心及該VCD模組係在分離的程序中執行。
  5. 如申請專利範圍第1項之方法,其中該第一處理器和該第二處理器係於一處理器晶片內的不同核心。
  6. 如申請專利範圍第1項之方法,其中該第一處理器和該第二處理器係不同的處理器晶片。
  7. 如申請專利範圍第1項之方法,進一步包含在第三處理器上執行觸發涵蓋模組,藉此使該第三處理器執行以下動作:於該匯流排上從該共享的記憶體區塊存取該數值改變資料; 使用該觸發涵蓋模組及該數值改變資料來判定一觸發涵蓋量度;及向一使用者回報該觸發涵蓋量度。
  8. 一種儲存用於硬體模擬及驗證解決方案之指令的第一非暫態電腦可讀儲存媒體,其中該硬體模擬及驗證解決方案包含模擬信號數值之改變的一模擬核心,以及將信號數值之改變儲存於第二非暫態電腦可讀儲存媒體的一數值改變傾印(value change dump,VCD)模組,其中藉由具有多處理器的電腦執行該些指令時,使該電腦執行以下動作:執行在第一處理器上的該模擬核心,藉此使該第一處理器執行以下動作:產生數值改變資料,其中該數值改變資料包含有關於在模擬期間的信號數值之改變的資訊;及將該數值改變資料儲存於共享的記憶體區塊中;及在不同於該第一處理器的第二處理器上執行該VCD模組,藉此使該第二處理器執行以下動作:於匯流排上從該共享的記憶體區塊存取該數值改變資料;壓縮儲存於該共享的記憶體區塊中的該數值改變資料;及將該壓縮的數值改變資料儲存於該第二非暫態電腦可讀儲存媒體中,以供後續分析;且 其中該模擬核心和該VCD模組被平行執行。
  9. 如申請專利範圍第8項之第一非暫態電腦可讀儲存媒體,其中該模擬核心係藉由以下動作產生:接收用以描述待測設計(DUT)之原始檔案;及編譯該原始檔案以獲得該模擬核心。
  10. 如申請專利範圍第9項之第一非暫態電腦可讀儲存媒體,其中,該模擬核心提供用於安裝回呼函式的一回呼介面,當特定事件發生時,會呼叫該些回呼函式;其中,編譯該原始檔案包含安裝一第一回呼函式,在該模擬核心產生該數值改變資料時會呼叫該第一回呼函式;及其中,該第一回呼函式包含:收集該數值改變資料之指令;及儲存該數值改變資料於該共享的記憶體區塊中以使該第二處理器可存取該數值改變資料之指令。
  11. 如申請專利範圍第9項之第一非暫態電腦可讀儲存媒體,其中該原始檔案使用標準化非專有的硬體描述語言(HDL)以描述該DUT,且其中該模擬核心及該VCD模組係在分離的程序中執行。
  12. 如申請專利範圍第8項之第一非暫態電腦可讀儲存媒體,其中該第一處理器和該第二處理器係於一處理器晶片內的不同核心。
  13. 如申請專利範圍第8項之第一非暫態電腦可讀儲 存媒體,其中該第一處理器和該第二處理器係不同的處理器晶片。
  14. 如申請專利範圍第8項之第一非暫態電腦可讀儲存媒體,其中藉由具有多處理器的該電腦執行該些指令時,使該電腦執行以下動作:執行在第三處理器上的觸發涵蓋模組,藉此使該第三處理器執行以下動作:於該匯流排上從該共享的記憶體區塊存取該數值改變資料;使用該觸發涵蓋模組及該數值改變資料來判定一觸發涵蓋量度;及向一使用者回報該觸發涵蓋量度。
  15. 一種用於執行硬體模擬及驗證解決方案之系統,其中該硬體模擬及驗證解決方案包含模擬信號數值之改變的模擬核心,以及將信號數值之改變儲存於非暫態電腦可讀儲存媒體的一數值改變傾印(value change dump,VCD)模組,該系統包含:共享記憶體區塊;第一處理器,該第一處理器執行該模擬核心,藉此使該第一處理執行以下動作:產生數值改變資料,其中該數值改變資料包含有關於在模擬期間的信號數值之改變的資訊;及將該數值改變資料儲存於共享的記憶體區塊中;及在不同於該第一處理器的第二處理器上執行該VCD 模組,藉此使該第二處理器執行以下動作:於匯流排上從該共享的記憶體區塊存取該數值改變資料;壓縮儲存於該共享的記憶體區塊中的該數值改變資料;及將該壓縮的數值改變資料儲存於該非暫態電腦可讀儲存媒體中,以供後續分析;且其中該模擬核心和該VCD模組被平行執行。
  16. 如申請專利範圍第15項之系統,其中該模擬核心係藉由以下動作產生:接收用以描述待測設計(DUT)之原始檔案;及編譯該原始檔案以獲得該模擬核心。
  17. 如申請專利範圍第16項之系統,其中,該模擬核心提供用於安裝回呼函式的一回呼介面,當特定事件發生時,會呼叫該些回呼函式;其中,編譯該原始檔案包含安裝一第一回呼函式,在該模擬核心產生該數值改變資料時會呼叫該第一回呼函式;及其中,該第一回呼函式包含:收集該數值改變資料之指令;及儲存該數值改變資料於該共享的記憶體區塊中以使該第二處理器可存取該數值改變資料之指令。
  18. 如申請專利範圍第16項之系統,其中該原始檔案使用標準化非專有的硬體描述語言(HDL)以描述該 DUT,且其中該模擬核心及該VCD模組係在分離的程序中執行。
  19. 如申請專利範圍第15項之系統,其中該第一處理器和該第二處理器係於一處理器晶片內的不同核心。
  20. 如申請專利範圍第15項之系統,其中該第一處理器和該第二處理器係不同的處理器晶片。
  21. 如申請專利範圍第15項之系統,進一步包含第三處理器以執行觸發涵蓋模組,藉此使該第三處理器執行以下動作:於該匯流排上從該共享的記憶體區塊存取該數值改變資料;使用該觸發涵蓋模組及該數值改變資料來判定一觸發涵蓋量度;及向一使用者回報該觸發涵蓋量度。
TW98107709A 2008-04-30 2009-03-10 執行硬體模擬及驗證解決方案的方法與設備 TWI468950B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/112,222 US8121825B2 (en) 2008-04-30 2008-04-30 Method and apparatus for executing a hardware simulation and verification solution

Publications (2)

Publication Number Publication Date
TW200949569A TW200949569A (en) 2009-12-01
TWI468950B true TWI468950B (zh) 2015-01-11

Family

ID=41059452

Family Applications (1)

Application Number Title Priority Date Filing Date
TW98107709A TWI468950B (zh) 2008-04-30 2009-03-10 執行硬體模擬及驗證解決方案的方法與設備

Country Status (4)

Country Link
US (4) US8121825B2 (zh)
CN (1) CN101952827B (zh)
TW (1) TWI468950B (zh)
WO (1) WO2009134550A2 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8638792B2 (en) 2010-01-22 2014-01-28 Synopsys, Inc. Packet switch based logic replication
US8397195B2 (en) * 2010-01-22 2013-03-12 Synopsys, Inc. Method and system for packet switch based logic replication
US8738350B2 (en) * 2010-03-04 2014-05-27 Synopsys, Inc. Mixed concurrent and serial logic simulation of hardware designs
US8683282B2 (en) * 2011-03-01 2014-03-25 International Business Machines Corporation Automatic identification of information useful for generation-based functional verification
US8429581B2 (en) * 2011-08-23 2013-04-23 Apple Inc. Method for verifying functional equivalence between a reference IC design and a modified version of the reference IC design
US9057764B2 (en) * 2011-10-27 2015-06-16 International Business Machines Corporation Detection of unchecked signals in circuit design verification
KR20130081354A (ko) * 2012-01-09 2013-07-17 삼성전자주식회사 분산 병렬 시뮬레이션에서의 통신 방법
US8881075B2 (en) 2013-03-04 2014-11-04 Atrenta, Inc. Method for measuring assertion density in a system of verifying integrated circuit design
US8739090B1 (en) * 2013-03-15 2014-05-27 Cadence Design Systems, Inc. Probe signal compression method and apparatus for hardware based verification platforms
GB2512888A (en) 2013-04-10 2014-10-15 Ibm Verification assistance method in particular for the design of digital circuits
US9217774B2 (en) * 2013-11-01 2015-12-22 International Business Machines Corporation Cycle-accurate replay and debugging of running FPGA systems
KR102198499B1 (ko) * 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
CN104090839B (zh) * 2014-07-02 2017-03-15 中国银行股份有限公司 异常场景模拟测试方法及装置
US9619312B2 (en) 2015-02-12 2017-04-11 International Business Machines Corporation Persistent command parameter table for pre-silicon device testing
US9529963B1 (en) 2015-03-27 2016-12-27 Microsemi Storage Solutions (U.S.), Inc. Method and system for partitioning a verification testbench
US9852244B2 (en) * 2015-05-04 2017-12-26 Synopsys, Inc. Efficient waveform generation for emulation
US9934343B2 (en) 2016-05-27 2018-04-03 International Business Machines Corporation System and method for generation of an integrated circuit design
CN108932355B (zh) * 2017-05-23 2020-11-20 大唐移动通信设备有限公司 一种逻辑验证方法及装置
US10242179B1 (en) * 2017-06-08 2019-03-26 Rockwell Collins, Inc. High-integrity multi-core heterogeneous processing environments
US20190251219A1 (en) * 2018-02-14 2019-08-15 International Business Machines Corporation Correlating verification scenario coverage with hardware coverage events
GB2572665B (en) * 2018-04-05 2020-07-08 Imagination Tech Ltd Verification of hardware design for data transformation pipeline
CN111400994B (zh) * 2018-12-29 2024-04-05 广东高云半导体科技股份有限公司 网表形式验证方法、装置、计算机设备及存储介质
US11023637B1 (en) 2019-12-20 2021-06-01 Cadence Design Systems, Inc. Hybrid deferred assertion for circuit design
CN111510932A (zh) * 2020-03-21 2020-08-07 杭州迪普科技股份有限公司 无线接入点部署方法、装置、电子设备及计算机可读介质
CN114237767B (zh) * 2022-02-24 2022-06-14 西安羚控电子科技有限公司 一种实现多倍速仿真的系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6087967A (en) * 1998-09-03 2000-07-11 International Business Machines Corporation Method for generating and reading a compressed all event trace file
US20040249623A1 (en) * 2003-06-05 2004-12-09 Charley Selvidge Compression of emulation trace data
TW200724952A (en) * 2005-12-22 2007-07-01 Magima Digital Information Co Ltd A scan chain and an IC verification method using the scan chain

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480606B2 (en) * 1998-08-31 2009-01-20 Versity Design, Inc. VCD-on-demand system and method
US6523151B2 (en) * 2000-05-25 2003-02-18 International Business Machines Corporation Method for verifying the design of a microprocessor
US7222315B2 (en) * 2000-11-28 2007-05-22 Synplicity, Inc. Hardware-based HDL code coverage and design analysis
US6691301B2 (en) * 2001-01-29 2004-02-10 Celoxica Ltd. System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
US6745374B2 (en) * 2002-06-10 2004-06-01 Sun Microsystems, Inc. Algorithms for determining path coverages and activity
US20070299648A1 (en) * 2003-01-10 2007-12-27 Levitt Jeremy R Reuse of learned information to simplify functional verification of a digital circuit
US7454324B1 (en) * 2003-01-10 2008-11-18 James Andrew Garrard Seawright Selection of initial states for formal verification
US7346903B2 (en) * 2003-02-04 2008-03-18 Sun Microsystems, Inc. Compiling and linking modules of a cycle-based logic design
US20040243371A1 (en) * 2003-05-30 2004-12-02 Intel Corporation System and method for automatic derivation of coverage metrics for validation of pipelined designs
US7899659B2 (en) * 2003-06-02 2011-03-01 Lsi Corporation Recording and displaying logic circuit simulation waveforms
US20060004557A1 (en) * 2004-07-01 2006-01-05 Synopsys, Inc. System and method for reducing size of simulation value change files
US7742905B2 (en) * 2005-02-25 2010-06-22 Coware, Inc. Method and system for dynamically adjusting speed versus accuracy of computer platform simulation
US7408336B2 (en) * 2005-10-26 2008-08-05 International Business Machines Corporation Importation of virtual signals into electronic test equipment to facilitate testing of an electronic component
US7827541B2 (en) * 2006-03-16 2010-11-02 International Business Machines Corporation Method and apparatus for profiling execution of code using multiple processors

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6087967A (en) * 1998-09-03 2000-07-11 International Business Machines Corporation Method for generating and reading a compressed all event trace file
US20040249623A1 (en) * 2003-06-05 2004-12-09 Charley Selvidge Compression of emulation trace data
TW200724952A (en) * 2005-12-22 2007-07-01 Magima Digital Information Co Ltd A scan chain and an IC verification method using the scan chain

Also Published As

Publication number Publication date
US20120123763A1 (en) 2012-05-17
US9536027B2 (en) 2017-01-03
CN101952827B (zh) 2013-08-14
TW200949569A (en) 2009-12-01
CN101952827A (zh) 2011-01-19
US8341570B2 (en) 2012-12-25
WO2009134550A2 (en) 2009-11-05
US20090276738A1 (en) 2009-11-05
US8121825B2 (en) 2012-02-21
WO2009134550A3 (en) 2010-03-04
US20130085738A1 (en) 2013-04-04
US20140244233A1 (en) 2014-08-28
US8782580B2 (en) 2014-07-15

Similar Documents

Publication Publication Date Title
TWI468950B (zh) 執行硬體模擬及驗證解決方案的方法與設備
Laeufer et al. RFUZZ: Coverage-directed fuzz testing of RTL on FPGAs
US20060130029A1 (en) Programming language model generating apparatus for hardware verification, programming language model generating method for hardware verification, computer system, hardware simulation method, control program and computer-readable storage medium
US10073933B2 (en) Automatic generation of properties to assist hardware emulation
KR20200139235A (ko) 데이터 변환 파이프라인용 하드웨어 설계 검증
Sen Concurrency-oriented verification and coverage of system-level designs
US10614193B2 (en) Power mode-based operational capability-aware code coverage
US11200127B2 (en) Automated self-check of a closed loop emulation replay
Dietrich et al. Cross-layer fault-space pruning for hardware-assisted fault injection
US8468409B2 (en) Speed-path debug using at-speed scan test patterns
KR20060066634A (ko) 검증 성능과 검증 효율성을 높이는 동적검증 기법 방식의검증 장치 및 이를 이용한 검증 방법론
US7447621B1 (en) PLI-less co-simulation of ISS-based verification systems in hardware simulators
US20050086566A1 (en) System and method for building a test case including a summary of instructions
US20230351085A1 (en) Detecting instability in combinational loops in electronic circuit designs
Pal et al. ARISTOTLE: Feature Engineering for Scalable Application-Level Post-Silicon Debugging
Wei et al. Zoomie: A Software-like Debugging Tool for FPGAs
Banerjee et al. A scalable hybrid verification system based on HDL slicing
Chibani et al. Application-aware soft error sensitivity evaluation without fault injections—application to Leon3
Siddiqui System-on-Chip (SoC) emulation
Wagner et al. The Verification Universe
Chang et al. Handling nondeterminism in logic simulation so that your waveform can be trusted again
Floridia et al. Development flow of on-line Software Test Libraries for asynchronous processor cores
Chatterjee Harnessing Simulation Acceleration to Solve the Digital Design Verification Challenge.
Sharma Protocol-directed trace signal selection for post-silicon validation
Matsushita Design experience of a chip multiprocessor merlot and expectation to functional verification