TWI676133B - 用於仿真之以波形為基礎之重建 - Google Patents

用於仿真之以波形為基礎之重建 Download PDF

Info

Publication number
TWI676133B
TWI676133B TW106138955A TW106138955A TWI676133B TW I676133 B TWI676133 B TW I676133B TW 106138955 A TW106138955 A TW 106138955A TW 106138955 A TW106138955 A TW 106138955A TW I676133 B TWI676133 B TW I676133B
Authority
TW
Taiwan
Prior art keywords
logic circuit
signal
clock cycles
processor
logic circuits
Prior art date
Application number
TW106138955A
Other languages
English (en)
Other versions
TW201823975A (zh
Inventor
賈剛 威薩爾 簡
Gagan Vishal Jain
強森 亞戴卡拉𦸐米
Johnson Adaikalasamy
亞歷山大 強 威克菲爾德
Alexander John Wakefield
賴舒 米塔爾
Ritesh Mittal
索萊曼 拉辛姆
Solaiman Rahim
奧利維爾 庫達爾特
Olivier Coudert
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 美商賽諾西斯公司
Publication of TW201823975A publication Critical patent/TW201823975A/zh
Application granted granted Critical
Publication of TWI676133B publication Critical patent/TWI676133B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • 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
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本發明揭示一種程序,其用以識別在仿真完成之後完全重建組合佈局所需之順序及組合信號之最小集合。自仿真器輸出順序及組合元件之一最小子集以最大化仿真器速度且限制對仿真器資源之利用,例如,對FPGA資源之利用。使用一並行計算網格來執行對組合波形或SAIF資料之一高效重建。

Description

用於仿真之以波形為基礎之重建
一仿真系統以一快速度執行且產生極大量資料以用於仿真後分析(諸如除錯、功率估計等)。產生一波形或開關活動交換格式(SAIF)資料之傳統方法涉及自仿真器傾印(dump)大量資料,此引起傳統方法遭受以下限制之一或多者:1)若自仿真器傾印全部順序及組合信號,則速度歸因於對來自仿真器硬體之資料頻寬之限制而緩慢;2)傾印全部順序及組合信號需要仿真器內部之額外硬體資源,此引起容量或速度問題;或3)若僅傾印順序元件且使用多個並行基於事件之模擬器離線重建全部組合信號,則重建程序變緩慢。
本發明揭示一種程序,其用以識別在仿真完成之後完全重建組合佈局所需之順序及組合信號之最小集合。自仿真器輸出順序及組合元件之一最小子集以最大化仿真器速度且限制對仿真器資源(例如,FPGA資源)之利用。使用一並行計算網格來執行對組合波形或SAIF資料之一高效重建。
相關申請案之交叉參考 本申請案主張2016年11月11日申請之標題為「Waveform Based Reconstruction for Emulation」之美國臨時申請案第62/421,167號之權利,該案之全文以引用的方式併入本文中。 所揭示實施例可改良各種電路特徵之仿真及測試效率,包含: 1. 組合迴路及回饋 2. 高效基於多處理器之計算 3. 回溯失效 4. 一時間片段之計算 5. 時間向量化 6. 資料傾印障壁 在待測設計(DUT)之編譯期間,可識別組合迴路且擷取回饋值(成為在仿真運作期間擷取之順序元件之一者)以減少邏輯評估時之迴路數目。 高效基於多處理器之計算涉及平衡處理樹深度及演算法以最小化儲存於記憶體中之未處理或經計算波形。一輕量級排程器線程及使用N個重量級計算線程可達成接近100%效率。 當擷取DUT中之一觸發器(flop)子集以減少記憶體資源利用率時,則可在一時間片段開始時擷取觸發器值,而容許知曉任何邏輯之初始值。 可將具有大量相關聯事件之信號變換為一時間向量記號,其中按一時階表示一資料字之各位元。可在一個時脈週期中對大的資料字完成諸如AND或OR之單運算碼評估。例如,可執行資料字之一64位元AND而非64個個別的一位元AND運算。 來自仿真器之習知資料傳送利用內建於仿真器中之緩衝器。此等緩衝器使仿真器能夠在緩衝器已滿時將較大資料區段傳送至主機電腦系統。此可引起整體DUT之一些資料無序地到達主機電腦系統。主機電腦系統可讀取整個資料傾印以搜尋可針對一特定信號存在之資料。強制仿真器清空全部資料緩衝器且將一資料傾印障壁添加至經傾印資料檔案中可容許主機電腦系統之後處理工具在此等緩衝器邊界處分割輸入資料。此可減少記憶體利用,此係因為主機電腦系統無需將整個資料檔案讀取至記憶體中或對其進行多次讀取。 本文中描述之實例實施例可結合執行一模擬以建構一目標信號之一波形之一仿真環境使用。例如,本文中描述之實例實施例可與在美國專利申請公開案第2017/0091360號中描述之仿真及模擬技術一起使用,該案之全文以引用的方式併入本文中。 迴路中斷 在傳統基於事件之模擬中,藉由依時間順序模擬事件而執行波形重建。藉由模擬器維持一事件清單,且在時間推進至下一時階之前處理事件。若電路設計中存在組合或順序迴路,則使用自先前時階知曉之值來計算下一時階之值。 波形計算遍歷(iterate over)設計一次,同時針對設計中之各元件處理事件。在知曉輸入信號之後排程設計中之各設計元件以進行評估。 例如,在圖2中,可在知曉一信號214、一信號216、一信號220及一信號222係至邏輯電路200之主輸入時立即評估一邏輯電路202及一邏輯電路204,且在仿真時擷取其等之值。僅可在評估邏輯電路204之後評估自邏輯電路204接收輸入信號224之一邏輯電路208,此係因為評估邏輯電路208需要信號224。類似地,在評估邏輯電路202及邏輯電路204之後評估一邏輯電路206,此係因為邏輯電路202及204之輸出係至邏輯電路206之輸入。 在傳統基於事件之模擬中,當設計內部存在一回饋迴路時發生一問題。在此情況中,若永遠無法完全知曉一邏輯電路之輸入,則永遠無法評估該邏輯電路。如本文中揭示,組合回饋迴路(諸如圖3中展示之回饋迴路)可中斷,且在仿真期間擷取此迴路內之一最佳位置。 參考圖3,一組合迴路300包括一第一閘302、一第二閘304及一迴路中斷306。閘302及304係邏輯電路之實例。 在DUT之編譯期間,識別組合迴路且擷取回饋值以幫助確保邏輯評估中不存在迴路。回饋值可成為在仿真運作期間擷取之順序元件之一者。 若設計內部存在一回饋迴路,則可不評估一邏輯電路(諸如第一閘302及第二閘304),此係因為並不完全知曉自第二閘304回饋之至第一閘302之輸入及來自第一閘302之輸出(其係至第二閘304之輸入)。一組合迴路300可在迴路中斷306處中斷,且在仿真期間擷取此位置。 可根據圖5處理組合迴路300。 在本文中描述之實施例中,若在仿真運作期間未傾印順序元件,則含有順序元件之回饋迴路(諸如圖4中展示之迴路)亦中斷。 參考圖4,一順序迴路400包括一第一閘402、一第二閘404、一第三閘406、一第四閘408及一迴路中斷410。閘402至408係邏輯電路之實例。 若在仿真運作期間未傾印順序元件(例如,第一閘402、第二閘404、第三閘406及第四閘408),則包括順序元件之一回饋迴路可中斷。可根據圖5處理順序迴路400。 可在編譯時間識別設計中之組合及順序迴路。識別迴路容許仿真器最小化針對整個設計擷取之主輸入。此可導致針對各組合迴路擷取之一個信號及針對具有非取樣順序元件之各迴路擷取之一個信號。 高效基於多處理器之計算 可利用一多核心機器來高效地執行波形計算,此係因為各個別處理器可評估設計之一不同部分。一排程器線程選擇具有已知輸入之邏輯電路且將此等邏輯電路發送至工作者線程以進行重建。藉由監測各重建線程之處理速度且基於建構線程之當前效能分配新的邏輯電路以進行評估而平衡負載。下文描述之圖9展示使用一排程器線程及一處理速度監測器來平衡一組工作者線程之間的波形計算負載之一處理器之一方塊圖。 呈開關活動交換格式(SAIF)格式之功率活動包含各信號之轉變次數及信號為高、低或未知之各者之週期數目。SAIF格式可不包括全部波形細節。 擴展工具可更高效地操作,此係因為無需所得波形。在產生SAIF計數之後可自記憶體移除所計算之任何中間波形。 可藉由處理節點以最小化波形儲存要求而以一最佳方式遍歷設計。 在圖2中,一個評估順序係邏輯電路202、邏輯電路204、邏輯電路206及邏輯電路208,從而需要信號218及信號224兩者同時在記憶體中。 一最佳順序係處理邏輯電路204,接著邏輯電路208。接著,可移除信號224或重新分配所利用之記憶體。接著,處理邏輯電路202及邏輯電路206。在此情況中,在任何時間,一個信號在記憶體中。 可動態地排程事件順序以平衡準備好評估之邏輯電路之數目及當前在記憶體中之信號之數目。 當全部輸入已知(且準備好處理)之邏輯電路清單為低時,選擇具有高扇出之邏輯電路可引起將更多邏輯電路添加至此清單。此將命令事件重建以防止準備好評估的佇列中之飢餓(starvation)。 當全部輸入已知之邏輯電路清單為高且記憶體使用為高時,則選擇具有高扇入之邏輯電路可引起自清單移除更多邏輯電路,且可移除波形。 下文關於圖10及圖11描述用於平衡處理單元或線程之間的波形計算之例示性方法。 回溯失效 一些閘具有判定閘之功能性及如何處理資料之一控制接針。例如,一MUX具有一選擇線且一FLOP可具有一時脈啟用。AND或OR閘亦可取決於輸入值而以此方式表現。 當評估一閘時,若控制信號引起忽略輸入,則此閘之評估得以簡化。閘之輸出並未改變,且無需評估非控制接針之輸入值。 例如,在圖2中,邏輯電路206係一MUX且此具有針對一特定時間範圍選取較低輸入之一選擇。此意謂輸入信號218不會影響邏輯電路206之輸出。 可藉由透過連接至信號218之邏輯往回搜尋且將此時間範圍標記為無效或無需而執行額外最佳化。此可引起在該時間範圍期間略過邏輯電路202之評估。 此回溯可在邏輯之整個扇入錐(fan-in cone)中發生,從而將許多節點標記為具有其中可略過計算之各種時間範圍。 執行判定低功率結構之設計分析以識別設計內部之時脈閘控及資料閘控。首先評估此等波形且可在仿真運作期間傾印此等波形以進一步增大重建速度。 作為一實例,一AND閘具有兩個輸入信號。若知曉兩個輸入信號之一第一者在時間0至10,000具有一值0且自時間10,000至20,000具有一值1,則仿真器系統可立即判定AND閘之輸出在時間0至10,000期間將為0,且無需計算第二輸入信號之輸入。此外,AND閘在時間10,000至20,000期間之值可簡化為第二輸入信號之值。 關於圖12描述用於回溯無效之一例示性方法。 一時間片段之計算 為限制在仿真/FPGA運作期間擷取之資料量,可選擇且擷取設計中之順序元件之一子集(例如,管線邏輯,其中擷取管線之第一級且在波形重建期間計算後續級)。 當利用此特徵來擷取一特定時間範圍時,利用順序元件之初始狀態。可利用各種技術(包含掃描鏈邏輯)來運用有限額外硬體要求獲得設計內部之順序元件。 在一時間擷取窗開始時獲得順序元件之組合且接著在時間擷取窗內獲得順序元件之一子集可容許對順序及組合元件之完全重建。 例如,若圖2中之邏輯電路係順序正反器,且在仿真執行期間擷取邏輯電路202及邏輯電路204,則系統可因知曉輸入而重建信號218及信號224。然而,系統可不具有重建信號226或信號228之資訊,直至信號傳播至邏輯電路206及邏輯電路208。若邏輯電路206及邏輯電路208具有閘控時脈,則此更加複雜,此係因為此意謂在顯著數目之仿真時間週期內可未知信號226或信號228。 在窗開始時擷取元件值可容許針對設計中之全部元件計算初始狀態。 關於圖13更詳細描述一例示性時間分割程序。 時間向量化 設計中之一些信號具有大量事件且使用傳統或波形重建技術計算此等複雜事件係低效的。當至一元件之輸入資料超過一特定臨限值時,可將輸入資料型樣轉換為一基於時間之位元格式。接著,可對作為一單一實體之所得位元向量而非對各個別位元執行簡單運算。 例如,信號A及B具有如圖6中展示之資料值。邏輯電路係一AND閘,因此所得波形C將為A及B之一邏輯AND。在圖6中展示將A波形及B波形之各者轉換為一基於字之格式。接著,可對此等元件執行AND運算而計算N個位元。 在不具有此轉換之情況下,許多個別AND運算之一迴路需要顯著更長時間來執行。在圖6中展示之實例中,通常存在64個N計算;轉換將此數目減少為8個。關於圖14更詳細描述一例示性時間向量化程序。 資料傾印障壁 來自硬體之習知資料傾印包含內建於硬體中之緩衝器。此等緩衝器容許硬體在緩衝器已滿時將較大資料區段發送至主機。此意謂資料以叢發方式且未依正確時間順序到達主機。 為解決與習知資料傾印相關聯之問題(例如,未對應於增量時間段之傳送),處理工具可必須讀取整個資料傾印以搜尋可針對一特定信號存在之資料。為讀取一特定信號之信號值,可處理整個傾印資料檔案,此係因為稍後資料檔案中可存在另一值集。 在圖7中展示之實例中,圖7中之波形「A」經保存至一檔案。當在位置「p」處讀取檔案時,知曉波形「A」之全部事件。然而,工具無法保證稍後檔案中不存在波形「A」之額外資料區段。因此,可讀取整個檔案以檢查任何額外波形「A」區段。 為解決此問題,仿真器可強制硬體清空全部資料緩衝器且將一資料傾印障壁添加至經傾印資料檔案中,此將容許後處理工具在此等緩衝器邊界處分割輸入資料。讀取資料之工具現能夠處理t1..t2而在無需讀取經過檔案中之障壁「B」位置,如圖8中展示。此可減小記憶體,此係因為未將整個資料檔案讀取至記憶體中或讀取多次。 資料障壁之結果係對於處理工具之一減小的記憶體要求。特定言之,處理工具無需將整個資料檔案讀取至記憶體中或對其進行多次讀取,且代替性地可將自0至障壁B之各時間段處理為一時間段。關於圖15描述一例示性資料傾印障壁程序。 圖1係根據本發明之一項實施例之一硬體驗證系統100之一例示性高階方塊圖。硬體驗證系統100可用以對一電路設計104進行驗證、測試或除錯。硬體驗證系統100可包含一硬體仿真器或原型系統108及一電腦系統102,關於圖16描述其之一實施例。如圖1中描繪,硬體仿真器或原型系統108可耦合至電腦系統102,該電腦系統102可包含可接收電路設計104之一硬體描述語言表示之一編譯器106模組。 編譯器106可包含各種各樣的軟體模組,其等可包含或可不包含一專用編譯器模組。編譯器106可變換、改變、重新組態、添加新功能至及/或控制電路設計104之時序以有利於電路設計104之驗證、仿真或原型設計。此外,編譯器106可將電路設計104及任何相關聯改變編譯為用以程式化硬體仿真器或原型系統108之一二進位影像。 因此,最終可由一積體電路晶片中之硬體實施之電路設計104之邏輯功能及時序可代替性地首先在硬體仿真器或原型系統108中實施。除其他優點之外,可依遠高於單獨藉由軟體驗證完成之速度完成硬體中之電路設計104之驗證。 硬體仿真器或原型系統108可包含大量仿真器單元(例如,單元116、單元118、單元120),其等各自包括一或多個電路板(例如,板110、板112、板114)。各板可包括一或多個可程式化處理器122 (諸如一場可程式化閘陣列(FPGA))及其他區塊(未展示) (諸如記憶體、輸入/輸出裝置、其他處理器及類似者)。硬體仿真器或原型系統108自編譯器106接收一經編譯電路設計104且程式化可程式化處理器122以驗證電路設計之行為。硬體仿真器或原型系統108可包含一主系統或主控系統,可自該系統產生數個其他時脈信號。 參考圖5,一迴路中斷程序500接收複數個邏輯電路之一電腦化模型(方塊502)。判定連接於一迴路中之複數個邏輯電路之一部分(方塊504)。判定待追蹤之一信號(方塊506)。信號可對應於複數個邏輯電路之部分之兩個邏輯電路之間的一連接。產生一檔案(方塊508)。檔案可描述(i)複數個邏輯電路之電腦化模型及(ii)經判定信號。將檔案傳輸至一仿真器以根據檔案仿真複數個邏輯電路且追蹤經判定信號(方塊510)。 為判定連接於一迴路中之複數個邏輯電路之部分,編譯器106可遍歷(traverse)電路設計104之邏輯電路。在一實施例中,編譯器106選擇複數個邏輯電路之一邏輯電路且接著判定是一第一旗標還是一第二旗標與該邏輯電路相關聯。第一旗標指示邏輯電路已經過審查,且第二旗標指示邏輯電路尚未被審查。若編譯器106判定邏輯電路與第一旗標相關聯,則編譯器106使一第三旗標與邏輯電路相關聯;第三旗標指示邏輯電路係連接於迴路中之複數個邏輯電路之部分中之一電路。若編譯器106判定邏輯電路與第二旗標相關聯,則編譯器106使第一旗標與邏輯電路相關聯。在使新旗標與邏輯電路相關聯之後,編譯器106選擇具有耦合至先前審查之邏輯電路之一輸出之一輸入之複數個邏輯電路之一後續邏輯電路。 在一些實施例中,編譯器106自對應於複數個邏輯電路之部分當中的連接之信號判定待追蹤信號之一最小數目。在此等實施例中,檔案進一步描述待追蹤信號之經判定最小數目。 在一些實施例中,編譯器106判定連接於不同迴路中之複數個邏輯電路之多個部分。若一個迴路涵蓋另一迴路,則可將兩個迴路組合成一較大迴路。 在一些實施例中,電腦102自仿真器108接收在仿真複數個邏輯電路之部分期間由仿真器針對複數個時脈週期追蹤之經判定信號之一波形。接著,電腦102可基於電腦化模型針對複數個時脈週期之第一組時脈週期模擬複數個邏輯電路之部分,同時省略針對複數個時脈週期之第二組時脈週期模擬複數個邏輯電路之部分。電腦102可基於針對第一組時脈週期對複數個邏輯電路之部分之模擬而針對複數個時脈週期自複數個邏輯電路之部分產生一邏輯電路之一輸出信號之一輸出波形。該邏輯電路之此輸出信號未由仿真器108追蹤。 在一些實施例中,針對複數個時脈週期產生邏輯電路之輸出信號之輸出波形涉及:針對第一組時脈週期偵測邏輯電路之一輸入信號之一輸入波形之一週期性型樣;判定週期性型樣針對第一組時脈週期在輸入信號之輸入波形中重複之一次數;及基於週期性型樣及週期性型樣重複之次數針對複數個時脈週期產生邏輯電路之輸出信號之輸出波形。 在一些情況中,藉由仿真器追蹤邏輯電路之輸入信號或其係另一邏輯電路之一輸出信號。 在一些實施例中,針對複數個時脈週期產生邏輯電路之輸出信號之輸出波形涉及:針對第二組時脈週期將邏輯電路之輸出信號之輸出波形產生為處於一預定狀態。 電腦102可進一步經組態以:判定待用作邏輯電路之一參考信號之一信號;判定其中參考信號處於一第一狀態之複數個時脈週期之第一組時脈週期;及判定其中參考信號處於不同於第一狀態之一第二狀態之複數個時脈週期之第二組時脈週期。判定待用作邏輯電路之參考信號之信號可涉及:選擇邏輯電路之一第一輸入信號及將具有少於第一輸入信號之一週期性型樣數目之一第二輸入信號選擇為參考信號。參考信號可耦合至邏輯電路之一預定埠。 參考圖6,一波形變換600包括一輸入波形602、一時間向量604及一所得時間向量606。 可接收一或多個輸入波形602。可將輸入波形602變換為一或多個時間向量604。此可根據圖14來執行。 可將一或多個時間向量604變換為所得時間向量606。運算包含諸如AND、OR等之邏輯運算。 參考圖7,一信號700包括一第一時間702、一第二時間704、一時段706及一經傾印資料檔案708。 可利用第一時間702及第二時間704來判定時段706。可將時段706可轉換為經傾印資料檔案708之部分。 可根據圖15追蹤信號700。 參考圖8,一信號800包括一第一時間802、一第二時間804、一時段806及一經傾印資料檔案808。 可利用第一時間802及第二時間804來判定時段806。可將時段806轉換為經傾印資料檔案808之部分。 可將旗標810 (例如,障壁)添加至經傾印資料檔案808。可利用旗標810來判定經轉換之各時段806之間的一障壁。亦可利用旗標810來表示由信號800引起之經傾印資料檔案808之部分。 可根據圖15追蹤信號800。 參考圖9,一基於多處理器之計算系統900可包括一排程器線程902、工作者線程904及一處理速度監測器906。 排程器線程902可接收一設計且將設計之部分(例如,閘或其他邏輯電路)發送至工作者線程904以計算部分之波形。排程器線程902亦可自處理速度監測器906接收工作者線程904之各者之處理速度資訊。 工作者線程904可接收設計之一部分(例如,閘或其他邏輯電路)且可計算該等部分之波形。 處理速度監測器906可監測工作者線程904之效能,包含處理速度。處理速度監測器906可將效能資訊發送至排程器線程902。 基於多處理器之計算系統900可根據圖10及圖11操作。 參考圖10,一基於多處理器之計算程序1000自一仿真器接收複數個邏輯電路之信號之波形,藉由仿真器在仿真複數個邏輯電路期間針對複數個時脈週期追蹤該等信號(方塊1002)。獲得複數個邏輯電路之一電腦化模型,其包括對應於複數個邏輯電路之至少一第一邏輯電路之電腦化模型之一第一部分及對應於複數個邏輯電路之至少一第二邏輯電路之電腦化模型之一第二部分(方塊1004)。例如,可在一處理器之一排程器線程902處接收模型。藉由一第一處理單元使用電腦化模型之第一部分電子模擬第一邏輯電路(方塊1006)。藉由一第二處理單元使用電腦化模型之第二部分電子模擬第二邏輯電路(方塊1008)。基於對第一邏輯電路及第二邏輯電路之模擬針對複數個時脈週期產生來自複數個邏輯電路之一邏輯電路之一輸出信號之一輸出波形(方塊1010)。可執行此等模擬且藉由工作者線程904輸出輸出波形。 在一些實施例中,基於多處理器之計算程序1000進一步判定第一處理單元及第二處理單元(例如,一處理器上之一第一及第二工作者線程)之一可用者,其中指令進一步包括回應於判定第一處理單元可用而模擬第一邏輯電路之指令。 在一些實施例中,在第一處理單元完成模擬第一邏輯電路而第二處理單元模擬第二邏輯電路之後,基於多處理器之計算程序1000進一步引起第一處理單元模擬複數個邏輯電路之一第三邏輯電路。 參考圖11,基於多處理器之計算程序1100接收一第一邏輯電路(方塊1102)。判定一第一處理單元之可用性(決策方塊1104)。若第一處理單元不可用,則判定一第二處理單元之可用性(決策方塊1106)。可藉由一排程器線程902判定可用性。若第二處理單元不可用,則例如藉由排程器線程902判定將第一邏輯電路發送至其之處理器(決策方塊1108)。決策1108可基於由處理速度監測器906提供之處理速度或其他資訊。 若在1108處判定第一處理單元,則將第一邏輯電路放置於第一處理單元之佇列中(方塊1110)。若第一處理單元在1104處可用或第一邏輯電路在第一處理單元之佇列前端,則第一處理單元處理第一邏輯電路(方塊1116)。 若在1108處判定第二處理單元,則將第一邏輯電路放置於第二處理單元之佇列中(方塊1112)。若第二處理單元在1106處可用或第一邏輯電路在第二處理單元之佇列前端,則第二處理單元處理第一邏輯電路(方塊1114)。 在藉由第一處理單元(方塊1116)或第二處理單元(方塊1114)處理第一邏輯電路之後,基於多處理器之計算程序1100結束(方塊1118)。 在一些實施例中,第一邏輯電路可保持在第一處理單元或第二處理單元之佇列中,直至第一邏輯電路在佇列之前部或前端(例如,先進先出)。 在一些實施例中,決策方塊1108藉由第一處理單元及第二處理單元之當前效能(例如,處理速度)判定。 參考圖12,一回溯失效程序1200自一仿真器接收複數個邏輯電路之信號之波形,藉由仿真器仿真複數個邏輯電路期間針對複數個時脈週期追蹤該等信號(方塊1202)。識別複數個邏輯電路之一組一或多個順序邏輯電路(方塊1204)。獲得藉由仿真器追蹤之該組順序邏輯電路之一或多個初始值(方塊1206)。獲得複數個邏輯電路之一或多個邏輯電路之一電腦化模型(方塊1208)。針對複數個時脈週期之第一時脈週期基於順序邏輯電路之初始值根據電腦化模型電子模擬一或多個邏輯電路(方塊1210)。省略針對複數個時脈週期之第二時脈週期模擬一或多個邏輯電路(方塊1212)。基於針對第一時脈週期對一或多個邏輯電路進行之模擬針對複數個時脈週期產生來自一或多個邏輯電路之一邏輯電路之一輸出信號之一輸出波形,未藉由仿真器追蹤邏輯電路之輸出信號(方塊1214)。 在追蹤初始值之後不會追蹤順序邏輯電路之一或多者。 在一些實施例中,回溯失效程序1200可進一步:針對第一時脈週期偵測邏輯電路之一輸入信號之一輸入波形之一週期性型樣;判定針對第一時脈週期在輸入信號之輸入波形中重複之一週期性型樣數目;及基於週期性型樣及週期性型樣重複之數目針對複數個時脈週期產生邏輯電路之輸出信號之輸出波形。回溯失效程序1200可進一步針對第二時脈週期將邏輯電路之輸出信號之輸出波形產生為處於一預定狀態。 在一些實施例中,回溯失效程序1200可進一步:判定待用作邏輯電路之一參考信號之一信號;判定其中參考信號處於一第一狀態之複數個時脈週期之第一時脈週期;及判定其中參考信號處於不同於第一狀態之一第二狀態之複數個時脈週期之第二時脈週期。 回溯失效程序1200可在邏輯之一整個扇入錐中發生,且可將多個節點標記為具有其中可略過計算之各種時間範圍。 可執行判定低功率結構之設計分析以識別設計內部之時脈閘控及資料閘控。可首先評估經識別時脈閘控及資料閘控之波形且可在仿真運作期間傾印波形以進一步增大重建速度。 參考圖13,一個時間分割程序1300自一仿真器接收複數個邏輯電路之信號之波形,藉由仿真器在仿真複數個邏輯電路期間針對複數個時脈週期追蹤該等信號(方塊1302)。自波形判定一第一波形之一第一部分,第一波形與信號之一第一信號相關聯,第一波形之第一部分在複數個時脈週期之預定時脈週期期間具有至少一預定轉變次數(方塊1304)。將第一波形之第一部分轉換為複數個位元,複數個位元之各位元表示第一信號在一對應時脈週期期間的一狀態(方塊1306)。獲得複數個邏輯電路之一或多個邏輯電路之一電腦化模型(方塊1308)。根據電腦化模型電子針對複數個時脈週期之第一時脈週期模擬一或多個邏輯電路,複數個時脈週期之第一時脈週期對應於第一波形之一第二部分(方塊1310)。省略針對對應於第一波形之一第三部分之複數個時脈週期之第二時脈週期模擬一或多個邏輯電路(方塊1312)。針對複數個時脈週期之第三時脈週期基於複數個位元電子模擬一或多個邏輯電路,複數個時脈週期之第三時脈週期對應於第一波形之第一部分(方塊1314)。基於針對第一時脈週期及第三時脈週期對一或多個邏輯電路進行之模擬針對複數個時脈週期產生來自一或多個邏輯電路之一邏輯電路之一輸出信號之一輸出波形,未藉由仿真器追蹤邏輯電路之輸出信號(方塊1316)。 時間分割程序1300可進一步基於複數個位元透過一單一運算碼獲得對應於第三時脈週期之輸出信號之一部分。 時間分割程序1300可進一步:針對第一時脈週期偵測邏輯電路之一輸入信號之一輸入波形之一週期性型樣;判定針對第一時脈週期在輸入信號之輸入波形中重複之一週期性型樣數目;及基於週期性型樣及週期性型樣重複之數目針對複數個時脈週期產生邏輯電路之輸出信號之輸出波形。在一些實施例中,針對第二時脈週期將邏輯電路之輸出信號之輸出波形產生為處於一預定狀態。 時間分割程序1300可進一步:判定待用作邏輯電路之一參考信號之一信號;判定其中參考信號處於一第一狀態之複數個時脈週期之第一時脈週期;及判定其中參考信號處於不同於第一狀態之一第二狀態之複數個時脈週期之第二時脈週期。 在一些實施例中,可以開關活動介面格式(SAIF)表示自仿真器接收之信號之波形。以SAIF表示之一信號之一波形可描述信號之一轉變次數、期間信號處於一低狀態之一時脈週期數目及期間信號處於一高狀態之一時脈週期數目。 可利用包含掃描鏈邏輯之技術來獲得一設計內部之順序元件。可運用有限額外硬體要求執行此等技術。在一時間擷取窗開始時獲得順序元件之組合且接著在時間擷取窗內獲得順序元件之一子集可容許順序及組合元件之一重建。在一窗開始時擷取元件值可容許計算設計中之元件之初始狀態。 參考圖14,一時間向量化程序1400接收輸入資料(方塊1402)。輸入資料可為一波形。比較輸入資料之大小與一臨限值(決策方塊1404)。臨限值可自一記憶體結構接收或輸入至系統。將輸入資料轉換為一基於向量之格式(方塊1406)。基於向量之格式可為一基於字之格式。若輸入資料小於臨限值或輸入資料經轉換為一基於向量之格式,則時間向量化程序1400結束(完成方塊1408)。 可對基於向量之格式化資料執行額外運算。運算可包含邏輯運算(例如,AND、OR等)及至一波形之轉換。 參考圖15,一資料傾印障壁程序1500接收由硬體組件仿真之一邏輯電路之一信號(方塊1502)。針對一時段判定一時脈週期數目(方塊1504)。針對時段追蹤邏輯電路之信號(方塊1506)。將經追蹤信號儲存於一追蹤記憶體單元中(方塊1508)。產生表示信號之波形之一輸出資料串流(方塊1510)。將一旗標插入至輸出資料串流中(方塊1512)。旗標可指示信號針對時段之轉變之一結束。將輸出資料串流傳輸至一主機裝置(方塊1514)。判定信號追蹤是否完成(決策方塊1516)。若信號追蹤完成,則資料傾印障壁程序1500結束(完成方塊1518)。 若信號追蹤未完成,則判定追蹤記憶體單元是否已滿(決策方塊1520)。若追蹤記憶體單元已滿,則清除追蹤記憶體單元(方塊1522)且判定一新時段(方塊1504)。所追蹤之時段(方塊1506)可為先前未追蹤之信號之一部分。若追蹤記憶體單元未滿,則針對具有相同數目個時脈週期之一額外時段追蹤邏輯電路之信號(方塊1506)。所追蹤之時段可為先前未追蹤之信號之一部分。 圖16繪示根據一項實施例之一例示性系統1600之若干組件。在各種實施例中,系統1600可包含一桌上型PC、伺服器、工作站或能夠執行諸如本文中描述之操作之操作之其他計算裝置。在一些實施例中,系統1600可包含比圖16中展示之組件更多的組件。然而,為揭示一闡釋性實施例,不必展示全部此等通常習知組件。各種有形組件或有形組件之一子集可在本文中統稱為以一特定方式組態或調適之「邏輯」,例如用特定軟體或韌體組態或調適之邏輯。 在各種實施例中,系統1600可包括共同提供本文中描述之功能性之一或多個實體及/或邏輯裝置。在一些實施例中,系統1600可包括一或多個複製及/或分佈式實體或邏輯裝置。 在一些實施例中,系統1600可包括自一「雲端計算」供應商供應之一或多個計算資源,例如,由華盛頓州西雅圖市之Amazon.com公司提供之Amazon Elastic Compute Cloud (「Amazon EC2」);由加利福尼亞州聖克拉拉市之Sun Microsystems公司提供之Sun Cloud Compute Utility;由華盛頓州雷德蒙德市之Microsoft公司提供之Windows Azure;及類似者。 系統1600包含使若干組件互連之一匯流排1602,若干組件包含一網路介面1608、一顯示器1606、一中央處理單元1610及一記憶體1604。 記憶體1604大體上包括一隨機存取記憶體(「RAM」)及永久非暫時性大容量儲存裝置,諸如一硬碟機或固態硬碟。記憶體1604儲存一作業系統1612。 可使用與一非暫時性電腦可讀媒體1616相關聯之一驅動機構(未展示)將此等及其他軟體組件載入至系統1600之記憶體1604中,諸如一軟碟、磁帶、DVD/CD-ROM驅動器、記憶卡或類似者。 記憶體1604亦包含資料庫1614。在一些實施例中,系統1600可經由網路介面1608、一儲存區域網路(「SAN」)、一高速串列匯流排及/或經由其他適合通信技術與資料庫1614進行通信。 在一些實施例中,資料庫1614可包括自一「雲端儲存」供應商供應之一或多個儲存資源,例如,由華盛頓州西雅圖市之Amazon.com公司提供之Amazon Simple Storage Service (「Amazon S3」)、由加利福尼亞州山景城之Google公司提供之Google Cloud Storage,及類似者。 對「一項實施例」或「一實施例」之參考不一定指代相同實施例,但其等可為相同實施例。除非上下文另外清楚要求,否則在整個描述及發明申請專利範圍中,字詞「包括(comprise/comprising)」及類似者應解釋為一包含性意義,而非一排他性或窮盡性意義;即,「包含但不限於」之意義。使用單數或複數之字詞亦分別包含複數或單數,除非明確限於一單一者或多個。另外,字詞「本文中」、「上文」、「下文」及類似含義之字詞(當在本申請案中使用時)指代本申請案之一整體而非本申請案之任何特定部分。當發明申請專利範圍使用字詞「或」來參考兩個或更多個品項之一清單時,該字詞涵蓋字詞之全部以下解釋:清單中之任何品項、清單中之全部品項及清單中之品項之任何組合,除非明確限於一者或另一者。「邏輯」指代機器記憶體電路、非暫時性機器可讀媒體,及/或其材料及/或材料能量組態包括控制及/或程序信號之電路,及/或可應用以影響一裝置之操作之設定及值(諸如電阻、阻抗、電容、電感、電流/電壓額定等)。磁性媒體、電子電路、電及光學記憶體(揮發性及非揮發性兩者)及韌體係邏輯之實例。邏輯明確排除純信號或軟體本身(然而並不排除包括軟體且藉此形成物質組態之機器記憶體)。熟習此項技術者將瞭解,邏輯可分佈遍及一或多個裝置及/或可由組合記憶體、媒體、處理電路及控制器、其他電路等組成。因此,為清晰及正確性起見,邏輯可能並未始終明確地繪示於裝置及系統之圖式中,儘管其固有地存在於裝置及系統中。可經由分佈於一或多個計算裝置中之邏輯實施本文中描述之技術及程序。邏輯之特定分佈及選擇將根據實施方案而變化。熟習此項技術者將瞭解,存在可實現本文中描述之程序及/或系統之各種邏輯實施方案(例如,硬體、軟體及/或韌體),且較佳載具將隨著其中部署程序之內容背景而變化。「軟體」指代可容易為不同目的重新調適之邏輯(例如,讀取/寫入揮發性或非揮發性記憶體或媒體)。「韌體」指代具體實施為唯讀記憶體及/或媒體之邏輯。硬體指代具體實施為類比及/或數位電路之邏輯。若一實施者判定速度及準確度最重要,則實施者可選擇一硬體及/或韌體載具;或者,若靈活性最重要,則實施者可選擇一單獨軟體實施方案;或者,再次替代地,實施者可選擇硬體、軟體及/或韌體之某一組合。因此,存在可實現本文中描述之程序之若干可能載具,其等皆非固有地優於其他者,此係因為所利用之任何載具係取決於其中將部署載具之內容背景及實施者之特定關注(例如,速度、靈活性或可預測性)之一選擇,內容背景及特定關注之任一者可變化。熟習此項技術者將認知,實施方案之光學態樣可涉及光學定向之硬體、軟體及/或韌體。前述[實施方式]已經由使用方塊圖、流程圖及/或實例來闡述裝置及/或程序之各種實施例。在此等方塊圖、流程圖及/或實例含有一或多個功能及/或操作之範圍內,此項技術者將眾所周知地理解,可藉由廣泛範圍的硬體、軟體、韌體或實質上其等之任何組合個別地及/或共同地實施此等方塊圖、流程圖或實例內之各功能及/或操作。可經由特定應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、數位信號處理器(DSP)或其他整合格式實施本文中描述之標的之若干部分。然而,熟習此項技術者將認知,本文中揭示之實施例之一些態樣(整體或部分)可在標準積體電路中等效地實施為在一或多個電腦上運作之一或多個電腦程式(例如,作為在一或多個電腦系統上運作之一或多個程式)、實施為在一或多個處理器上運作之一或多個程式(例如,作為在一或多個微處理器上運作之一或多個程式)、實施為韌體或實施為實質上其等之任何組合,且設計電路及/或寫入用於軟體及/或韌體之程式碼將根據本發明良好處於熟習此項技術者之技能內。另外,熟習此項技術者將暸解,本文中描述之標的之機制能夠分佈為呈多種形式之一程式產品,且本文中描述之標的之一闡釋性實施例無關於用以實際實行分佈之信號承載媒體之特定類型皆同等適用。一信號承載媒體之實例包含但不限於以下各者:可記錄型媒體,諸如軟碟、硬碟機、CD ROM、數位磁帶、快閃隨身碟、SD卡、固態固定或可抽換儲存器及電腦記憶體。在一般意義上,熟習此項技術者將認知,本文中描述之各種態樣(其等可由廣泛範圍的硬體、軟體、韌體或其等之任何組合個別地及/或共同地實施)可被視為由各種類型之「電路」組成。因此,如本文中使用,「電路」包含但不限於具有至少一個離散電路之電路、具有至少一個積體電路之電路、具有至少一個特定應用積體電路之電路、形成由一電腦程式組態之一通用計算裝置(例如,由至少部分實行本文中描述之程序及/或裝置之一電腦程式組態之一通用電腦或由至少部分實行本文中描述之程序及/或裝置之一電腦程式組態之一微處理器)之電路、形成一記憶體裝置(例如,隨機存取記憶體之形式)之電路,及/或形成一通信裝置(例如,一數據機、通信開關或光電設備)之電路。熟習此項技術者將認知,在此項技術內通常以本文中闡述之方式描述裝置及/或程序,且此後使用標準工程實踐將此等所描述裝置及/或程序整合至較大系統中。即,本文中描述之裝置及/或程序之至少一部分可經由合理的實驗量整合至一網路處理系統中。
100‧‧‧硬體驗證系統
102‧‧‧電腦系統
104‧‧‧電路設計
106‧‧‧編譯器
108‧‧‧硬體仿真器或原型系統
110‧‧‧電路板
112‧‧‧電路板
114‧‧‧電路板
116‧‧‧仿真器單元
118‧‧‧仿真器單元
120‧‧‧仿真器單元
122‧‧‧可程式化處理器
200‧‧‧邏輯電路
202‧‧‧邏輯電路
204‧‧‧邏輯電路
206‧‧‧邏輯電路
208‧‧‧邏輯電路
214‧‧‧信號
216‧‧‧信號
218‧‧‧信號
220‧‧‧信號
222‧‧‧信號
224‧‧‧信號
226‧‧‧信號
228‧‧‧信號
300‧‧‧組合迴路
302‧‧‧第一閘
304‧‧‧第二閘
306‧‧‧迴路中斷
400‧‧‧順序迴路
402‧‧‧第一閘
404‧‧‧第二閘
406‧‧‧第三閘
408‧‧‧第四閘
410‧‧‧迴路中斷
500‧‧‧迴路中斷程序
502‧‧‧方塊
504‧‧‧方塊
506‧‧‧方塊
508‧‧‧方塊
510‧‧‧方塊
600‧‧‧波形變換
602‧‧‧輸入波形
604‧‧‧時間向量
606‧‧‧所得時間向量
700‧‧‧信號
702‧‧‧第一時間
704‧‧‧第二時間
706‧‧‧時段
708‧‧‧經傾印資料檔案
800‧‧‧信號
802‧‧‧第一時間
804‧‧‧第二時間
806‧‧‧時段
808‧‧‧經傾印資料檔案
810‧‧‧旗標
900‧‧‧基於多處理器之計算系統
902‧‧‧排程器線程
904‧‧‧工作者線程
906‧‧‧處理速度監測器
1000‧‧‧基於多處理器之計算程序
1002‧‧‧方塊
1004‧‧‧方塊
1006‧‧‧方塊
1008‧‧‧方塊
1010‧‧‧方塊
1100‧‧‧基於多處理器之計算程序
1102‧‧‧方塊
1104‧‧‧決策方塊
1106‧‧‧決策方塊
1108‧‧‧決策方塊
1110‧‧‧方塊
1112‧‧‧方塊
1114‧‧‧方塊
1200‧‧‧回溯失效程序
1202‧‧‧方塊
1204‧‧‧方塊
1206‧‧‧方塊
1208‧‧‧方塊
1210‧‧‧方塊
1212‧‧‧方塊
1214‧‧‧方塊
1300‧‧‧時間分割程序
1302‧‧‧方塊
1304‧‧‧方塊
1306‧‧‧方塊
1308‧‧‧方塊
1310‧‧‧方塊
1312‧‧‧方塊
1314‧‧‧方塊
1316‧‧‧方塊
1400‧‧‧時間向量化程序
1402‧‧‧方塊
1404‧‧‧決策方塊
1406‧‧‧方塊
1408‧‧‧完成方塊
1500‧‧‧資料傾印障壁程序
1502‧‧‧方塊
1504‧‧‧方塊
1506‧‧‧方塊
1508‧‧‧方塊
1510‧‧‧方塊
1512‧‧‧方塊
1514‧‧‧方塊
1516‧‧‧決策方塊
1518‧‧‧完成方塊
1520‧‧‧決策方塊
1522‧‧‧方塊
1600‧‧‧系統
1602‧‧‧匯流排
1604‧‧‧記憶體
1606‧‧‧顯示器
1608‧‧‧網路介面
1610‧‧‧中央處理單元
1612‧‧‧作業系統
1614‧‧‧資料庫
1616‧‧‧非暫時性電腦可讀媒體
為容易識別任何特定元件或動作之論述,一元件符號中之一或多個最高有效數位指代首次引入該元件之圖號。 圖1係根據本發明之一項實施例之一硬體驗證系統100之一例示性高階方塊圖。 圖2繪示根據一項實例實施例之邏輯電路200。 圖3繪示一組合迴路300之一實例實施例。 圖4繪示一順序迴路400之一實例實施例。 圖5繪示一迴路中斷程序500之一實例實施例。 圖6繪示一波形變換600之一實例實施例。 圖7繪示一信號700之一實例實施例。 圖8繪示一信號800之一實例實施例。 圖9繪示一基於多處理器之計算系統900之一實例實施例。 圖10繪示一基於多處理器之計算程序1000之一實例實施例。 圖11繪示一基於多處理器之計算程序1100之一實例實施例。 圖12繪示一回溯失效程序1200之一實例實施例。 圖13繪示一時間分割程序1300之一實例實施例。 圖14繪示一時間向量化程序1400之一實例實施例。 圖15繪示一資料傾印障壁程序1500之一實例實施例。 圖16繪示根據一項實施例之一例示性系統1600。

Claims (27)

  1. 一種非暫時性電腦可讀媒體,其包括經儲存指令,該等指令在由一處理器執行時引起該處理器:接收複數個邏輯電路之一電腦化模型;判定該複數個邏輯電路之一部分,該部分連接於一迴路中;判定待追蹤之一信號,該信號對應於連接於該迴路中之該部分之兩個邏輯電路之間的一連接;產生描述(i)該複數個邏輯電路之該電腦化模型及(ii)該經判定信號之一檔案;及將該檔案傳輸至一仿真器以根據該檔案仿真該複數個邏輯電路且追蹤該經判定信號。
  2. 如請求項1之非暫時性電腦可讀媒體,其中判定連接於該迴路中之該複數個邏輯電路之該部分之該等指令進一步包括引起該處理器進行以下操作之指令:選擇該複數個邏輯電路之一邏輯電路;判定是一第一旗標還是一第二旗標與該邏輯電路相關聯,該第一旗標指示該邏輯電路已經過審查,該第二旗標指示該邏輯電路尚未被審查;回應於該邏輯電路與該第一旗標相關聯之一判定而使一第三旗標與該邏輯電路相關聯,該第三旗標指示該邏輯電路係連接於該迴路中之該複數個邏輯電路之該部分中之一電路;回應於該邏輯電路與該第二旗標相關聯之一判定而使該第一旗標與該邏輯電路相關聯;及選擇具有耦合至該邏輯電路之一輸出之一輸入之該複數個邏輯電路之一後續邏輯電路。
  3. 如請求項1之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時引起該處理器進行以下操作之指令:自對應於該複數個邏輯電路之該部分當中的連接之信號判定待追蹤信號之一最小數目,其中該檔案進一步描述待追蹤信號之該經判定最小數目。
  4. 如請求項1之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時引起該處理器進行以下操作之指令:判定連接於另一迴路中之該複數個邏輯電路之另一部分;及組合該複數個邏輯電路之該部分與該複數個邏輯電路之該另一部分以形成涵蓋該迴路及該另一迴路之一較大迴路。
  5. 如請求項1之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時進一步引起該處理器進行以下操作之指令:自該仿真器接收該經判定信號之一波形,藉由該仿真器在仿真該複數個邏輯電路之該部分期間針對複數個時脈週期追蹤該經判定信號;基於該電腦化模型針對該複數個時脈週期之一第一組時脈週期模擬該複數個邏輯電路之該部分;省略針對該複數個時脈週期之一第二組時脈週期模擬該複數個邏輯電路之該部分;及基於針對該第一組時脈週期對該複數個邏輯電路之該部分進行之該模擬而針對該複數個時脈週期產生來自該複數個邏輯電路之該部分之一邏輯電路之一輸出信號之一輸出波形,未藉由該仿真器追蹤該邏輯電路之該輸出信號。
  6. 如請求項5之非暫時性電腦可讀媒體,其中引起該處理器針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:針對該第一組時脈週期偵測該邏輯電路之一輸入信號之一輸入波形之一週期性型樣;判定該週期性型樣針對該第一組時脈週期在該輸入信號之該輸入波形中重複之一次數;及基於該週期性型樣及該週期性型樣重複之該次數針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形。
  7. 如請求項6之非暫時性電腦可讀媒體,其中藉由該仿真器追蹤該邏輯電路之該輸入信號或其係另一邏輯電路之一輸出信號。
  8. 如請求項6之非暫時性電腦可讀媒體,其中引起該處理器針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:針對該第二組時脈週期將該邏輯電路之該輸出信號之該輸出波形產生為處於一預定狀態。
  9. 如請求項5之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時引起該處理器進行以下操作之指令:判定待用作該邏輯電路之一參考信號之一信號;判定其中該參考信號處於一第一狀態之該複數個時脈週期之該第一組時脈週期;及判定其中該參考信號處於不同於該第一狀態之一第二狀態之該複數個時脈週期之該第二組時脈週期。
  10. 如請求項9之非暫時性電腦可讀媒體,其中引起該處理器判定待用作該邏輯電路之該參考信號之該信號之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:選擇該邏輯電路之一輸入信號;及將該邏輯電路之另一輸入信號選擇為該參考信號,該另一輸入信號具有少於該輸入信號之一週期性型樣數目。
  11. 如請求項9之非暫時性電腦可讀媒體,其中引起該處理器判定待用作該邏輯電路之該參考信號之該信號之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:將該邏輯電路之另一輸入信號選擇為該參考信號,該另一輸入信號耦合至該邏輯電路之一預定埠。
  12. 一種非暫時性電腦可讀媒體,其包括經儲存指令,該等指令在由一處理器執行時引起該處理器:自一仿真器接收複數個邏輯電路之信號之波形,藉由該仿真器在仿真該複數個邏輯電路期間針對複數個時脈週期追蹤該等信號;獲得複數個邏輯電路之一電腦化模型,該電腦化模型包括:該電腦化模型之一第一部分,其對應於該複數個邏輯電路之至少一第一邏輯電路,及該電腦化模型之一第二部分,其對應於該複數個邏輯電路之至少一第二邏輯電路;藉由一排程器線程判定一第一處理單元之可用性及一第二處理單元之可用性,該等可用性係基於從一處理速度監測器接收之資料而判定,該處理速度監測器監測該第一處理單元及該第二處理單元之效能;基於經判定之該等可用性將該第一邏輯電路指派給該第一處理單元用以模擬;基於經判定之該等可用性將該第二邏輯電路指派給該第二處理單元用以模擬;藉由該第一處理單元使用該電腦化模型之該第一部分電子模擬該第一邏輯電路;藉由該第二處理單元使用該電腦化模型之該第二部分電子模擬該第二邏輯電路;及基於對該第一邏輯電路及該第二邏輯電路之該模擬針對該複數個時脈週期產生來自該複數個邏輯電路之一邏輯電路之一輸出信號之一輸出波形。
  13. 如請求項12之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時引起該第一處理單元在該第一處理單元完成對該第一邏輯電路之該模擬而該第二處理單元模擬該第二邏輯電路之後模擬該複數個邏輯電路之一第三邏輯電路之指令。
  14. 一種非暫時性電腦可讀媒體,其包括經儲存指令,該等指令在由一處理器執行時引起該處理器:自一仿真器接收複數個邏輯電路之信號之波形,藉由該仿真器在仿真該複數個邏輯電路期間針對複數個時脈週期追蹤該等信號;識別該複數個邏輯電路之一組順序邏輯電路;獲得由該仿真器追蹤之該組順序邏輯電路中之各邏輯電路之初始值;獲得該複數個邏輯電路之一或多個邏輯電路之一電腦化模型;針對該複數個時脈週期之第一時脈週期基於該組順序邏輯電路之該等初始值電子根據該電腦化模型模擬該一或多個邏輯電路;省略針對該複數個時脈週期之第二時脈週期模擬該一或多個邏輯電路;及針對該等第一時脈週期基於對該一或多個邏輯電路之該模擬針對該複數個時脈週期產生來自該一或多個邏輯電路之一邏輯電路之一輸出信號之一輸出波形,未藉由該仿真器追蹤該邏輯電路之該輸出信號。
  15. 如請求項14之非暫時性電腦可讀媒體,其中在追蹤該等初始值之後未追蹤該組順序邏輯電路之一或多者。
  16. 如請求項14之非暫時性電腦可讀媒體,其中引起該處理器針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:針對該等第一時脈週期偵測該邏輯電路之一輸入信號之一輸入波形之一週期性型樣;判定針對該等第一時脈週期在該輸入信號之該輸入波形中重複之一週期性型樣數目;及基於該週期性型樣及該等週期性型樣重複之該數目針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形。
  17. 如請求項16之非暫時性電腦可讀媒體,其中引起該處理器針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:針對該等第二時脈週期將該邏輯電路之該輸出信號之該輸出波形產生為處於一預定狀態。
  18. 如請求項14之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時引起該處理器進行以下操作之指令:判定待用作該邏輯電路之一參考信號之一信號;判定其中該參考信號處於一第一狀態之該複數個時脈週期之該等第一時脈週期;及判定其中該參考信號處於不同於該第一狀態之一第二狀態之該複數個時脈週期之該等第二時脈週期。
  19. 一種非暫時性電腦可讀媒體,其包括經儲存指令,該等指令在由一處理器執行時引起該處理器:自一仿真器接收複數個邏輯電路之信號之波形,藉由該仿真器在仿真該複數個邏輯電路期間針對複數個時脈週期追蹤該等信號;自該等波形判定一第一波形之一第一部分,該第一波形與該等信號之一第一信號相關聯,該第一波形之該第一部分在該複數個時脈週期之預定時脈週期期間具有至少一預定轉變次數;將該第一波形之該第一部分轉換為複數個位元,該複數個位元之各位元表示該第一信號在一對應時脈週期期間的一狀態;獲得該複數個邏輯電路之一或多個邏輯電路之一電腦化模型;根據該電腦化模型針對該複數個時脈週期之第一時脈週期電子模擬該一或多個邏輯電路,該複數個時脈週期之該等第一時脈週期對應於該第一波形之一第二部分;省略針對對應於該第一波形之一第三部分之該複數個時脈週期之第二時脈週期模擬該一或多個邏輯電路;針對該複數個時脈週期之第三時脈週期基於該複數個位元電子模擬該一或多個邏輯電路,該複數個時脈週期之該等第三時脈週期對應於該第一波形之該第一部分;及基於針對該等第一時脈週期及該等第三時脈週期對該一或多個邏輯電路之該模擬針對該複數個時脈週期產生來自該一或多個邏輯電路之一邏輯電路之一輸出信號之一輸出波形,未藉由該仿真器追蹤該邏輯電路之該輸出信號。
  20. 如請求項19之非暫時性電腦可讀媒體,其中引起該處理器針對該複數個時脈週期之該等第三時脈週期基於該複數個位元模擬該一或多個邏輯電路之該等指令進一步引起一處理單元基於該複數個位元透過一單一運算碼獲得對應於該等第三時脈週期之該輸出信號之一部分。
  21. 如請求項19之非暫時性電腦可讀媒體,其中針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:針對該等第一時脈週期偵測該邏輯電路之一輸入信號之一輸入波形之一週期性型樣;判定針對該等第一時脈週期在該輸入信號之該輸入波形中重複之一週期性型樣數目;及基於該週期性型樣及該等週期性型樣重複之該數目針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形。
  22. 如請求項21之非暫時性電腦可讀媒體,其中引起該處理器針對該複數個時脈週期產生該邏輯電路之該輸出信號之該輸出波形之該等指令進一步包括在執行時引起該處理器進行以下操作之指令:針對該等第二時脈週期將該邏輯電路之該輸出信號之該輸出波形產生為處於一預定狀態。
  23. 如請求項19之非暫時性電腦可讀媒體,其進一步包括在由該處理器執行時引起該處理器進行以下操作之指令:判定待用作該邏輯電路之一參考信號之一信號;判定其中該參考信號處於一第一狀態之該複數個時脈週期之該等第一時脈週期;及判定其中該參考信號處於不同於該第一狀態之一第二狀態之該複數個時脈週期之該等第二時脈週期。
  24. 如請求項19之非暫時性電腦可讀媒體,其中以開關活動介面格式(SAIF)表示自該仿真器接收之該等信號之該等波形,以該SAIF表示之一信號之一波形描述該信號之一轉變次數、期間該信號處於一低狀態之一時脈週期數目及期間該信號處於一高狀態之一時脈週期數目。
  25. 一種非暫時性電腦可讀媒體,其包括經儲存指令,該等指令在由一仿真器執行時組態該仿真器之硬體組件以:針對一第一時段追蹤由該等硬體組件仿真之一邏輯電路之一信號;將該所追蹤信號儲存於一追蹤記憶體單元處;產生表示該信號之波形之一輸出資料串流,該輸出資料串流之一第一部分包含針對該第一時段之經追蹤信號及在該第一時段期間針對至少一額外邏輯電路追蹤之至少一額外經追蹤信號;將一旗標插入至該輸出資料串流中,該旗標指示該經追蹤信號及該至少一額外經追蹤信號針對該第一時段之轉變之一結束;針對一第二時段追蹤由該等硬體組件仿真之該邏輯電路之該信號;產生該輸出資料串流之一第二部分,該輸出資料串流之該第二部分包含針對該第二時段之經追蹤信號;及將該輸出資料串流傳輸至一主機裝置,其中該主機裝置經組態以基於該輸出資料串流中的該旗標將針對該第一時段之該經追蹤信號及針對該第二時段之該經追蹤訊號識別為該邏輯電路之第一及第二波形段。
  26. 如請求項25之非暫時性電腦可讀媒體,其中在該第一時段之後在該追蹤記憶體單元已滿時插入該旗標,且其中該仿真器進一步經組態以:清除該追蹤記憶體單元;及針對該第二時段追蹤該信號。
  27. 如請求項25之非暫時性電腦可讀媒體,其中在該第一時段之後在該追蹤記憶體單元已滿之前插入該旗標,且其中該仿真器經進一步組態以針對該第二時段追蹤該信號,該第一時段及該第二時段具有相同數目個時脈週期。
TW106138955A 2016-11-11 2017-11-10 用於仿真之以波形為基礎之重建 TWI676133B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662421167P 2016-11-11 2016-11-11
US62/421,167 2016-11-11

Publications (2)

Publication Number Publication Date
TW201823975A TW201823975A (zh) 2018-07-01
TWI676133B true TWI676133B (zh) 2019-11-01

Family

ID=62106580

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106138955A TWI676133B (zh) 2016-11-11 2017-11-10 用於仿真之以波形為基礎之重建

Country Status (5)

Country Link
US (3) US11200149B2 (zh)
EP (1) EP3539027A4 (zh)
CN (2) CN109937418B (zh)
TW (1) TWI676133B (zh)
WO (1) WO2018089842A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10621296B1 (en) * 2017-06-07 2020-04-14 Synopsys, Inc. Generating SAIF efficiently from hardware platforms
US10540466B1 (en) * 2018-02-09 2020-01-21 Cadence Design Systems, Inc. Systems and methods for streaming waveform data during emulation run
US11138356B1 (en) * 2018-08-17 2021-10-05 Synopsys, Inc. Dedicated reconfigurable IP for emulation-based power estimation
EP3853726A1 (en) * 2018-10-22 2021-07-28 Siemens Industry Software Inc. Dynamic allocation of computing resources for electronic design automation operations
US11023635B1 (en) * 2020-07-27 2021-06-01 Synopsys, Inc. Sequence of frames generated by emulation and waveform reconstruction using the sequence of frames
CN114329644B (zh) * 2021-11-17 2023-03-24 芯华章科技股份有限公司 对逻辑系统设计进行加密仿真的方法、设备及存储介质
CN116933699A (zh) * 2022-04-08 2023-10-24 华为技术有限公司 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质
CN115718653B (zh) * 2022-11-24 2024-05-07 中国华能集团清洁能源技术研究院有限公司 用于仿真平台的数据调用优化方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW394900B (en) * 1995-12-12 2000-06-21 Hitachi Ltd Emulator and system evaluation device using the same
US20060074622A1 (en) * 2004-07-12 2006-04-06 Mentor Graphics Corp. Software state replay
TWI292099B (en) * 2002-11-18 2008-01-01 Advanced Risc Mach Ltd Apparatus, method and computer program product for processing data within a secure processing system
US8640064B1 (en) * 2012-06-12 2014-01-28 Xilinx, Inc. Hardware description language simulator tracing and control
TWI472912B (zh) * 2012-09-11 2015-02-11 Univ Nat Cheng Kung 以電路內部事件作為觸發條件之除錯控制系統及其方法
US20160328499A1 (en) * 2015-05-04 2016-11-10 Synopsys, Inc. Efficient Waveform Generation for Emulation

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6785873B1 (en) * 1997-05-02 2004-08-31 Axis Systems, Inc. Emulation system with multiple asynchronous clocks
US6009256A (en) 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US6053947A (en) * 1997-05-31 2000-04-25 Lucent Technologies, Inc. Simulation model using object-oriented programming
US6073194A (en) * 1997-07-31 2000-06-06 Advanced Micro Devices, Inc. Transaction based windowing methodology for pre-silicon verification
US6061511A (en) * 1998-06-12 2000-05-09 Ikos Systems, Inc. Reconstruction engine for a hardware circuit emulator
US6295623B1 (en) * 1999-01-29 2001-09-25 Credence Systems Corporation System for testing real and simulated versions of an integrated circuit
US6317381B1 (en) * 1999-12-07 2001-11-13 Micron Technology, Inc. Method and system for adaptively adjusting control signal timing in a memory device
US6847927B2 (en) * 2000-12-07 2005-01-25 International Business Machines Corporation Efficient array tracing in a logic simulator machine
US20030105617A1 (en) * 2001-12-05 2003-06-05 Nec Usa, Inc. Hardware acceleration system for logic simulation
CA2499477A1 (en) * 2002-10-03 2004-04-15 The Hospital For Sick Children Research Institute Prevention of primary sjogren's syndrome by ica69 deficiency
JP2004171367A (ja) * 2002-11-21 2004-06-17 Matsushita Electric Ind Co Ltd 回路動作シミュレーション装置、回路動作シミュレーション方法、回路動作シミュレーションプログラム、および回路情報復号化プログラム
US7716036B2 (en) * 2003-04-24 2010-05-11 International Business Machines Corporation Method and apparatus to use clock bursting to minimize command latency in a logic simulation hardware emulator / accelerator
US20080140379A1 (en) * 2003-05-22 2008-06-12 Xoomsys, Inc. Approximations for simulations of systems
US7698118B2 (en) * 2004-04-15 2010-04-13 Mentor Graphics Corporation Logic design modeling and interconnection
US8073672B2 (en) 2004-07-06 2011-12-06 Mentor Graphics Corporation Managing communication bandwidth in co-verification of circuit designs
US8250500B1 (en) * 2005-10-17 2012-08-21 Altera Corporation Method and apparatus for deriving signal activities for power analysis and optimization
KR101282963B1 (ko) * 2006-05-12 2013-07-08 삼성전자주식회사 에뮬레이션 시스템 및 그 방법
JP2008065640A (ja) 2006-09-07 2008-03-21 Toshiba Corp シミュレーション装置およびそのシミュレーション制御方法
US8082139B1 (en) 2007-03-27 2011-12-20 Xilinx, Inc. Displaying signals of a design block emulated in hardware co-simulation
US8706467B2 (en) 2008-04-02 2014-04-22 Synopsys, Inc. Compact circuit-simulation output
JP4881404B2 (ja) 2009-03-27 2012-02-22 株式会社東芝 回路記述生成装置および機能検証方法
US10423740B2 (en) 2009-04-29 2019-09-24 Synopsys, Inc. Logic simulation and/or emulation which follows hardware semantics
US8265918B1 (en) 2009-10-15 2012-09-11 Xilinx, Inc. Simulation and emulation of a circuit design
US8255853B2 (en) * 2010-04-08 2012-08-28 Springsoft Usa, Inc. Circuit emulation systems and methods
US8640070B2 (en) * 2010-11-08 2014-01-28 International Business Machines Corporation Method and infrastructure for cycle-reproducible simulation on large scale digital circuits on a coordinated set of field-programmable gate arrays (FPGAs)
US9619598B2 (en) 2012-01-31 2017-04-11 Mentor Graphics Corporation Input space reduction for verification test set generation
US9703579B2 (en) 2012-04-27 2017-07-11 Mentor Graphics Corporation Debug environment for a multi user hardware assisted verification system
US20140052430A1 (en) 2012-04-27 2014-02-20 Mentor Graphics Corporation Partitionless Multi User Support For Hardware Assisted Verification
US9135376B2 (en) 2012-05-01 2015-09-15 Mentor Graphics Corporation Input space reduction for verification test set generation
US9372947B1 (en) 2014-09-29 2016-06-21 Cadence Design Systems, Inc. Compacting trace data generated by emulation processors during emulation of a circuit design
US9959375B2 (en) 2014-10-06 2018-05-01 Synopsys, Inc. Efficient emulation and logic analysis
US10140413B2 (en) 2015-04-21 2018-11-27 Synopsys, Inc. Efficient resolution of latch race conditions in emulation
US9286424B1 (en) * 2015-05-04 2016-03-15 Synopsys, Inc. Efficient waveform generation for emulation
US9959379B2 (en) * 2015-10-07 2018-05-01 Mentor Graphics Corporation Hybrid compilation for FPGA prototyping

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW394900B (en) * 1995-12-12 2000-06-21 Hitachi Ltd Emulator and system evaluation device using the same
TWI292099B (en) * 2002-11-18 2008-01-01 Advanced Risc Mach Ltd Apparatus, method and computer program product for processing data within a secure processing system
US20060074622A1 (en) * 2004-07-12 2006-04-06 Mentor Graphics Corp. Software state replay
US8640064B1 (en) * 2012-06-12 2014-01-28 Xilinx, Inc. Hardware description language simulator tracing and control
TWI472912B (zh) * 2012-09-11 2015-02-11 Univ Nat Cheng Kung 以電路內部事件作為觸發條件之除錯控制系統及其方法
US20160328499A1 (en) * 2015-05-04 2016-11-10 Synopsys, Inc. Efficient Waveform Generation for Emulation

Also Published As

Publication number Publication date
WO2018089842A1 (en) 2018-05-17
CN109937418A (zh) 2019-06-25
CN116796672A (zh) 2023-09-22
EP3539027A4 (en) 2020-09-02
US11200149B2 (en) 2021-12-14
US12001317B2 (en) 2024-06-04
TW201823975A (zh) 2018-07-01
US11726899B2 (en) 2023-08-15
CN109937418B (zh) 2023-12-08
US20220066909A1 (en) 2022-03-03
EP3539027A1 (en) 2019-09-18
US20230342283A1 (en) 2023-10-26
US20180137031A1 (en) 2018-05-17

Similar Documents

Publication Publication Date Title
TWI676133B (zh) 用於仿真之以波形為基礎之重建
US8428927B2 (en) Simulation method and simulation apparatus
US20180113970A1 (en) Latency Test In Networking System-On-Chip Verification
US10678976B2 (en) Generic protocol analyzer for circuit design verification
CN108885579B (zh) 用于根据核追踪进行数据挖掘的方法和设备
WO2011037940A2 (en) Concurrent simulation of hardware designs with behavioral characteristics
JP6600011B2 (ja) エミュレーションのための効率的波形生成
US10540466B1 (en) Systems and methods for streaming waveform data during emulation run
Lee et al. Dynamic power and performance back-annotation for fast and accurate functional hardware simulation
El Mandouh et al. Application of machine learning techniques in post-silicon debugging and bug localization
US10664637B2 (en) Testbench restoration based on capture and replay
US10331825B2 (en) Waveform based reconstruction for emulation
US8145467B1 (en) Method and apparatus for profiling a hardware/software embedded system
US10614193B2 (en) Power mode-based operational capability-aware code coverage
Chuang et al. Hybrid approach to faster functional verification with full visibility
Kenterlis et al. A low-cost SEU fault emulation platform for SRAM-based FPGAs
US10621296B1 (en) Generating SAIF efficiently from hardware platforms
US10546081B2 (en) Full memory logical erase for circuit verification
US10387593B2 (en) Code coverage reconstruction
US10409624B1 (en) Data array compaction in an emulation system
US8024168B2 (en) Detecting X state transitions and storing compressed debug information
US9064069B1 (en) Creating an end point report based on a comprehensive timing report
Chou et al. Optimizing blocks in an soc using symbolic code-statement reachability analysis
Chen et al. An FPGA-based transient error simulator for resilient circuit and system design and evaluation
Dreyer et al. Non-intrusive online timing analysis of large embedded applications