TW201627858A - 仿真中之x傳播 - Google Patents

仿真中之x傳播 Download PDF

Info

Publication number
TW201627858A
TW201627858A TW104138288A TW104138288A TW201627858A TW 201627858 A TW201627858 A TW 201627858A TW 104138288 A TW104138288 A TW 104138288A TW 104138288 A TW104138288 A TW 104138288A TW 201627858 A TW201627858 A TW 201627858A
Authority
TW
Taiwan
Prior art keywords
state
signal
unknown
dut
reference signal
Prior art date
Application number
TW104138288A
Other languages
English (en)
Other versions
TWI595417B (zh
Inventor
亞歷山大 羅賓諾維其
盧多維克 馬克 拉蘇爾
Original Assignee
賽諾西斯公司
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
Priority claimed from US14/602,549 external-priority patent/US9659118B2/en
Priority claimed from US14/602,580 external-priority patent/US9773078B2/en
Application filed by 賽諾西斯公司 filed Critical 賽諾西斯公司
Publication of TW201627858A publication Critical patent/TW201627858A/zh
Application granted granted Critical
Publication of TWI595417B publication Critical patent/TWI595417B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

實施例係關於電路之仿真及信號之未知狀態之表示。一所揭示之系統(及方法及電腦程式產品)包含一仿真環境來將一待測設計(DUT)之一數位信號轉換成能夠表示一未知狀態之一形式。另外,該所揭示之系統將數位邏輯電路(諸如布林邏輯(Boolean logic)、正反器、鎖存器及記憶體電路)轉換成可使用具有未知狀態之信號來操作。因此,透過用一所揭示之語義表示之數位邏輯電路而指示且傳播一信號之一未知狀態以能夠立刻偵測到該DUT(例如)歸因於電力切斷或不適當初始化之不當操作。

Description

仿真中之X傳播
本發明大體上係關於電路之仿真,且更明確言之,本發明係關於即時識別一數位系統之不可預測行為。
仿真器已被開發來幫助電路設計者設計且調試高度複雜積體電路。一仿真器包含可一起模仿一待測設計(DUT)之操作的多個可重新組態組件,諸如場可程式化閘陣列(FPGA)。藉由使用一仿真器來模仿一DUT之操作,設計者可驗證:一DUT符合製造前之各種設計要求。
仿真之一態樣包含:識別一DUT之功能性。在一方法中,識別一DUT之功能性涉及:仿真一DUT且分析來自該仿真DUT之信號以驗證不當、不確定或未知操作。例如,若電力切斷或初始化不當,則DUT中之暫存器或邏輯電路未被適當終止且該等暫存器或邏輯電路之狀態變為未知的。在DUT之操作期間,未知狀態可致使不當邏輯運算,且不當邏輯運算之結果可進一步影響其他邏輯電路以使整個DUT不正確地操作。
在一習知方法中,用二進位狀態(例如高態或低態)表示一數位信號且識別DUT之不當或未知操作涉及:執行DUT之仿真,直至在DUT之輸出處偵測到不當或不確定結果為止。在先進程序(例如22奈米(nm)及以下)中,一DUT可包含數十億個邏輯電路及信號。因此,識 別一DUT之未知操作可涉及:執行大量數位邏輯運算,直至由於未知狀態而在輸出處傳播不當邏輯運算為止,其會是一耗時程序。因此,定位未知狀態之來源及調試該等未知狀態係無效的。
因此,需要一種用於根據所執行之仿真循環而依一有時效方式識別DUT之操作之不確定性的方法。
本發明揭示一種非暫時性電腦可讀媒體,其儲存指令來組態一仿真器以:在一待測設計(DUT)之一部分之一數位邏輯電路處接收一輸入信號及一參考信號;判定該參考信號是否具有一推測條件,該參考信號歸因於該參考信號之一未知狀態而具有該推測條件;回應於判定該參考信號具有該推測條件,在該參考信號之該推測條件之前基於該數位邏輯電路之該輸入信號之一狀態及一輸出之一狀態而產生該數位邏輯電路之該輸出;及藉由使用作為一額外數位邏輯電路之一輸入的該數位邏輯電路之該輸出來執行一數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
本發明亦揭示一種電腦實施方法,其包括:在一待測設計(DUT)之一部分之一數位邏輯電路處接收一輸入信號及一參考信號;判定該參考信號是否具有一推測條件,該參考信號歸因於該參考信號之一未知狀態而具有該推測條件;回應於判定該參考信號具有該推測條件,在該參考信號之該推測條件之前基於該數位邏輯電路之該輸入信號之一狀態及一輸出之一狀態而產生該數位邏輯電路之該輸出;及藉由使用作為一額外數位邏輯電路之一輸入的該數位邏輯電路之該輸出來執行一數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
本發明亦揭示一種儲存指令之非暫時性電腦可讀媒體,該等指令在由一處理器執行時致使該處理器:將用一2狀態語義表示之一待測設計(DUT)之一部分之一信號轉換成一暫存器轉移層級處之一4狀 態語義,用該2狀態語義表示之該信號具有使用一個位元之一高狀態及一低狀態之一者且用該4狀態語義表示之該信號具有使用兩個或兩個以上位元之該高狀態、該低狀態及一未知狀態之一者;及將用該2狀態語義表示之該DUT之該部分之一數位邏輯轉換成該4狀態語義,該數位邏輯基於該信號而產生該數位邏輯之一輸出。
本發明亦揭示一種非暫時性電腦可讀媒體,其儲存指令來組態一仿真器以:在一待測設計(DUT)之一部分之一記憶體器件處接收一輸入信號及一位址信號以執行一記憶體讀取操作;回應於該輸入信號或該位址信號具有一未知狀態,跳過讀取與該位址信號相關聯之內容;回應於該輸入信號或該位址信號具有該未知狀態,產生由該內容係未知所致之一輸出信號;及藉由根據該輸出信號使用一數位邏輯電路來執行一數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
本發明亦揭示一種電腦實施方法,該方法包括:在一待測設計(DUT)之一部分之一記憶體器件處接收一輸入信號及一位址信號以執行一記憶體讀取操作;回應於該輸入信號或該位址信號具有一未知狀態,跳過讀取與該位址信號相關聯之內容;回應於該輸入信號或該位址信號具有該未知狀態,產生由該內容係未知所致之一輸出信號;及藉由根據該輸出信號使用一數位邏輯電路來執行數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
本發明亦揭示一種儲存指令之非暫時性電腦可讀媒體,該等指令在由一處理器執行時致使該處理器以:將用一2狀態語義表示之一待測設計(DUT)之一部分之一信號轉換成一暫存器轉移層級處之一4狀態語義,用該2狀態語義表示之該信號具有使用一個位元之一高狀態及一低狀態之一者且用該4狀態語義表示之該信號具有使用兩個或兩個以上位元之該高狀態、該低狀態及一未知狀態之一者;及將用該2狀態語義表示之該DUT之該部分之一記憶體電路轉換成該4狀態語 義,該經轉換之記憶體電路包含用於儲存一輸入信號之一狀態之內容及與該內容相關聯之一記憶體指示符,該記憶體指示符與一位址信號相關聯以回應於該輸入信號或該位址信號具有該未知狀態而指示該內容係未知的。
100‧‧‧仿真環境
110‧‧‧主機系統
115‧‧‧介面
120‧‧‧仿真器
210‧‧‧設計編譯器
220‧‧‧場可程式化閘陣列(FPGA)映射模組
230‧‧‧運行時間模組
240‧‧‧語義轉換模組
250‧‧‧儲存器
310‧‧‧信號轉換模組
320‧‧‧布林邏輯轉換模組
330‧‧‧正反器轉換模組
335‧‧‧鎖存器轉換模組
340‧‧‧記憶體電路轉換模組
400‧‧‧信號轉換
400A‧‧‧信號轉換
400B‧‧‧信號轉換
405‧‧‧暫存器
405A‧‧‧第一暫存器
405B‧‧‧第二暫存器
405C‧‧‧第一暫存器
405D‧‧‧第二暫存器
410‧‧‧信號
410A‧‧‧位元signal_bin
410B‧‧‧位元signal_X
410C‧‧‧位元signal_high_possible
410D‧‧‧位元signal_low_possible
500‧‧‧布林邏輯轉換
505A‧‧‧布林邏輯算子
505B‧‧‧經轉換之布林邏輯算子
510‧‧‧輸入信號
510A‧‧‧輸入位元
510B‧‧‧輸入位元
520‧‧‧輸入信號
520A‧‧‧輸入位元
520B‧‧‧輸入位元
530‧‧‧輸出信號
530A‧‧‧輸出位元
530B‧‧‧輸出位元
600‧‧‧正反器轉換
605A‧‧‧正反器
605B‧‧‧經轉換之正反器
610‧‧‧輸入信號
610A‧‧‧輸入位元
610B‧‧‧輸入位元
620‧‧‧參考信號
620A‧‧‧參考位元
620B‧‧‧參考位元
630‧‧‧輸出信號
630A‧‧‧輸出位元
630B‧‧‧輸出位元
650‧‧‧轉變狀態位元
660‧‧‧鎖存器轉換
665A‧‧‧鎖存器
665B‧‧‧經轉換之鎖存器
700‧‧‧記憶體電路轉換
705A‧‧‧記憶體電路
705B‧‧‧經轉換之記憶體電路
710‧‧‧位址信號
710A‧‧‧位址位元
710B‧‧‧位址位元
720‧‧‧輸入信號
720A‧‧‧輸入位元
720B‧‧‧輸入位元
730‧‧‧控制信號
730A‧‧‧控制位元
730B‧‧‧控制位元
740‧‧‧位址
740(0)至740(N)‧‧‧位址
750‧‧‧記憶體指示符
750(0)至750(N)‧‧‧記憶體指示符
760‧‧‧內容
760(0)至760(N)‧‧‧內容
770‧‧‧輸出信號
770A‧‧‧輸出位元
770B‧‧‧輸出位元
810‧‧‧自一使用者獲得呈HDL之一DUT之一描述
820‧‧‧轉換DUT以表示一信號之一未知狀態
830‧‧‧綜合經轉換DUT之HDL描述以產生一閘級網表
840‧‧‧將閘級之DUT劃分成數個分區
850‧‧‧將各分區映射至仿真器之一或多個FPGA
910‧‧‧根據轉換規則而將一信號轉換成能夠表示該信號之一未知狀態之一形式
920‧‧‧根據轉換規則而轉換一布林邏輯算子
930‧‧‧根據轉換規則而轉換一正反器
935‧‧‧根據轉換規則而轉換一鎖存器
940‧‧‧根據轉換規則而轉換一記憶體電路
1010‧‧‧將DUT中之信號初始化為未知狀態
1020‧‧‧將具有已知狀態之輸入信號應用於DUT
1030‧‧‧基於輸入信號而執行數位邏輯運算
1040‧‧‧基於數位邏輯運算而判定信號狀態
1050‧‧‧是否繼續仿真?
1060‧‧‧基於輸出信號而判定DUT之一未知操作
1110‧‧‧接收一輸入信號及一參考信號
1120‧‧‧監測一推測條件
1140‧‧‧監測參考信號之一具體條件
1150‧‧‧基於推測條件之前之輸入信號及輸出信號而產生一輸出信號
1160‧‧‧基於參考信號之具體轉變之前之輸入信號而產生輸出信號
1170‧‧‧維持輸出信號
1210‧‧‧接收一輸入信號及一位址信號
1220‧‧‧判定輸入信號或位址信號是否為未定的
1230‧‧‧使用一記憶體指示符來指示與由位址信號指示之位址相關聯之內容係未知的
1235‧‧‧將輸入信號儲存於與由位址信號指示之位址相關聯之一內容中
1250‧‧‧接收一位址信號
1260‧‧‧判定位址信號是否為未定的
1270‧‧‧判定與由位址信號指示之一位址相關聯之內容是否為未知的
1280‧‧‧基於與由位址信號指示之位址相關聯之內容而產生輸出信號
1290‧‧‧產生具有一未知狀態之一輸出信號
1300‧‧‧電腦系統
1302‧‧‧硬體處理器
1304‧‧‧主記憶體
1306‧‧‧靜態記憶體
1308‧‧‧匯流排
1310‧‧‧圖形顯示單元
1312‧‧‧文數字輸入器件
1314‧‧‧游標控制器件
1316‧‧‧儲存單元
1318‧‧‧信號產生器件
1320‧‧‧網路介面器件
1322‧‧‧機器可讀媒體
1324‧‧‧指令
1326‧‧‧網路
所揭示之實施例具有將易於自[實施方式]、隨附申請專利範圍及附圖(或圖式)明白之其他優點及特徵。圖之一簡要介紹係如下:圖1係根據一實施例之一仿真環境之一方塊圖。
圖2係根據一實施例之一方塊圖,其繪示一主機系統。
圖3係根據一實施例之一語義轉換模組之一方塊圖。
圖4A係根據一語義表示之對仿真器實施之一信號之一實例性轉換。
圖4B係根據另一語義表示之對仿真器實施之一信號之另一實例性轉換。
圖5係根據一實施例之一布林邏輯電路之一實例性轉換。
圖6A係根據一實施例之一正反器之一實例性轉換。
圖6B係根據一實施例之一鎖存器之一實例性轉換。
圖7係根據一實施例之一記憶體電路之一實例性轉換。
圖8係根據一實施例之一流程圖,其繪示主機系統使經轉換以表示一數位信號之一未知狀態的一待測器件(DUT)準備用於仿真。
圖9繪示根據一實施例之對DUT執行之轉換。
圖10係根據一實施例之一流程圖,其繪示仿真器執行數位邏輯運算以基於信號狀態而識別DUT之一未知操作。
圖11係根據一實施例之一流程圖,其繪示一正反器或一鎖存器基於一參考信號之一推測條件及一具體條件而操作。
圖12A係根據一實施例之一流程圖,其繪示由仿真器執行之一記 憶體寫入操作。
圖12B係根據一實施例之一流程圖,其繪示由仿真器執行之一記憶體讀取操作。
圖13繪示能夠自一機器可讀媒體讀取指令且在一處理器(或控制器)中執行該等指令之一實例性機器之組件之一實施例。
圖及以下描述僅藉由繪示而與較佳實施例相關。應注意,自以下論述,本文中所揭示之結構及方法之替代實施例將易於被視為可在不背離所主張之原理之情況下採用之可行替代例。
現將詳細參考若干實施例,附圖中繪示該等實施例之實例。附圖僅為繪示目的而描繪所揭示系統(或方法)之實施例。應自以下描述認識到:可在不背離本文中所描述之原理之情況下採用本文中所繪示之結構及方法之替代實施例。
組態概述
一所揭示之系統(及方法及電腦程式產品)包含一仿真環境,其能夠指示一信號之一未知狀態且據此執行數位邏輯運算以改良識別一DUT之不當或未知操作的速率及效能。在該所揭示之系統(及方法及電腦程式產品)中,透過用一所揭示之語義表示之數位邏輯電路而指示且傳播一信號之一未知狀態以能夠即時識別該DUT(例如)歸因於電力切斷或失當初始化之不當操作。
一DUT之一不當或未知操作在本文中係指歸因於該DUT之任何信號具有一未知狀態而使該DUT之一輸出變為未知或不正確(相較於其預期輸出)的該DUT之一操作。
該仿真環境之一實施例包含一主機系統及一仿真器。該主機系統組態該仿真器以負載一待測設計(DUT),且該仿真器據此仿真該DUT。該主機系統根據轉換規則而轉換一DUT或該DUT之一部分以能 夠表示該DUT之一信號之一未知狀態且傳播該未知狀態。一DUT中之信號及邏輯電路(組合電路及時序電路)經轉換使得輸入信號之不確定性可被沿用至該等邏輯電路之輸出上。在一實施例中,在一暫存器轉移語言(RTL)層級處執行信號及邏輯電路之一轉換。替代地,可在一閘/電晶體層級或任何其他層級處執行信號及邏輯電路之一轉換。
在一方法中,該主機系統將用一2狀態語義表示之一DUT之一數位信號之一單一位元轉換成呈一3或4狀態語義(本文中指稱「4狀態語義」)之至少兩個位元以能夠表示一未知狀態。在一實施方案中,一第一位元指示一信號之一可行低狀態或一可行高狀態,且一第二位元指示該信號之狀態是否為已知或未知。在另一實施方案中,一第一位元指示一可行高狀態且一第二位元指示一可行低狀態。在兩個實施方案中,至少兩個位元之一組合能夠表示一信號之一未知狀態。
另外,該主機系統根據轉換規則而轉換布林邏輯算子以基於用該4狀態語義表示之輸入信號而判定該等經轉換布林邏輯算子之輸出及該等輸出之不確定性。當呈該4狀態語義之一輸入信號之一狀態係未知時,基於另一輸入信號之一已知狀態(例如高態或低態)而判定一經轉換布林邏輯算子之一輸出之一狀態及該輸出之該狀態之一確定性。因此,透過該等經轉換之布林邏輯算子而即時傳播未知狀態。
再者,該主機系統根據轉換規則而轉換邊緣操作器(例如正反器)以能夠使用一推測轉變來操作該等邊緣操作器,該推測轉變包含一參考信號之狀態自一未知狀態轉變或轉變至用該4狀態語義表示之未知狀態。一推測轉變在本文中係指一參考信號之一轉變,其可由於該參考信號之狀態之一不確定性而觸發一正反器之一操作。例如,對於一上升邊緣觸發之正反器,一推測轉變發生於該參考信號自一低狀態轉變至一未知狀態或自一未知狀態轉變至一高狀態時。經轉換之正反器基於一參考信號之一具體轉變(即,非推測的)或一推測轉變而產生一 輸出信號。
另外,該主機系統根據轉換規則而轉換鎖存器以能夠使用具有用該4狀態語義表示之一未知狀態的一參考信號來操作該等鎖存器。經轉換之鎖存器基於具有一具體狀態(即,已知狀態)或一未知狀態之一參考信號而產生一輸出信號。
此外,該主機系統根據轉換規則而轉換一記憶體電路以基於一未定位址信號而執行讀取操作及寫入操作。該未定位址信號包含具有一未知狀態之至少一位元。在使用所揭示之語義來轉換之後,可使用兩個或兩個以上位元來表示具有該未知狀態之該位元。在一態樣中,該經轉換之記憶體電路實施記憶體指示符,其中各記憶體指示符與其對應內容及由一位址信號指示之其對應位址相關聯。一記憶體指示符指示與該記憶體指示符相關聯之一對應內容之一不確定性。
實例性仿真環境
圖1係根據一實施例之一方塊圖,其繪示一仿真環境100。仿真環境100包含一主機系統110及一仿真器120。主機系統110透過一介面115而與仿真器120通信。
主機系統110組態仿真器120以仿真一DUT且在該DUT之仿真期間與仿真器120通信。一DUT係將由仿真器120仿真之一或多個電路設計。主機系統110可為一單一電腦或多個電腦之一集合。
在一實施例中,主機系統110自一使用者接收待仿真之一DUT之一描述。該DUT之描述涉及一類型之硬體描述語言(HDL),例如暫存器轉移語言(RTL)。主機系統110轉換該DUT或該DUT之一部分以能夠表示該DUT之一信號之一未知狀態。較佳地,主機系統110將呈一習知2狀態語義之信號轉換成一4狀態語義以表示該DUT之該信號之一未知狀態。另外,主機系統110轉換數位邏輯電路(其包含(但不限於)布林邏輯算子、正反器、鎖存器及記憶體電路)以能夠使用該4狀態語義 表示之信號來操作。
主機系統110根據4狀態語義基於經轉換DUT之HDL描述而產生一閘級網表。主機系統110使用該閘級網表來劃分經轉換之DUT且將各分區映射至包含於仿真器120中之一或多個邏輯電路。主機系統110透過介面115而將一或多個位元串流中之經轉換DUT之一閘級描述傳輸至仿真器120。該等位元串流可包含經轉換DUT之閘級邏輯之表示、劃分資訊、映射資訊、及用於組態仿真器120之設計約束。
在一替代實施例中,主機系統110透過介面115而將根據4狀態語義之經轉換DUT之HDL描述傳輸至仿真器120。
在另一替代實施例中,主機系統110自一使用者接收閘級邏輯中之一DUT之一描述。另外,主機系統110根據4狀態語義而轉換該閘級邏輯中之該DUT或該DUT之一部分以能夠表示該DUT之一信號之一未知狀態。類似地,主機系統110將包含該經轉換DUT之該閘級邏輯之表示的位元串流傳輸至仿真器120。
在一方法中,將DUT之一部分預先界定於一區塊/IP級硬體組件中。替代地,一使用者能夠選擇DUT之一部分來轉換成4狀態語義。另外,可用2狀態語義及4狀態語義兩者表示DUT之一部分以並行地仿真兩者以如實地保存所要行為。
另外,在藉由仿真器120之DUT之仿真期間,主機系統110透過介面115而自仿真器120接收仿真結果。仿真結果係基於DUT之仿真之由仿真器120傳輸之資訊。該等仿真結果包含描述仿真期間之DUT中之多個信號之狀態的資訊。例如,仿真器120傳輸呈4狀態語義之仿真結果,且主機系統110將來自仿真器120之該等仿真結果轉換成2狀態語義。在另一實例中,在傳輸至主機系統110之前,仿真器120將呈4狀態語義之仿真結果轉換成2狀態語義。
仿真器120係仿真DUT之一硬體系統。仿真器120包含可一起仿真 一DUT之多個可組態邏輯電路。在一實施例中,包含於仿真器120中之該等邏輯電路係場可程式化閘陣列(FPGA)。
對於待仿真之一DUT,仿真器120自主機系統110接收一或多個位元串流,該等位元串流包含根據4狀態語義之經轉換DUT之一閘級描述來表示DUT中之信號之未知狀態。該等位元串流進一步描述由主機系統110產生之DUT之分區、該等分區至仿真器120之FPGA的映射、及設計約束。在一替代實施例中,仿真器120接收包含經轉換DUT之HDL級描述的位元串流。基於該等位元串流,仿真器120組態FPGA以執行DUT之功能。
仿真器120根據4狀態語義而仿真經轉換之DUT以表示DUT中之信號之未知狀態。基於該仿真,仿真器120產生傳輸至主機系統110供分析之仿真結果。
介面115係允許主機系統110與仿真器120之間之通信的一通信媒介。在一實施例中,介面115係具有電連接之一電纜。例如,介面115可為一RS232、USB、LAN、光學或定製電纜。在其他實施例中,介面115係一無線通信媒介或一網路。例如,介面115可為採用一Bluetooth®或IEEE 802.11協定之一無線通信媒介。
圖2係根據一實施例之一方塊圖,其更詳細繪示主機系統110。主機系統110包含一設計編譯器210、FPGA映射模組220、運行時間模組230、語義轉換模組240及儲存器250。此等組件之各者可體現為硬體、軟體、韌體或其等之一組合。此等組件一起提供組態仿真器120且基於信號之未知狀態而監測仿真結果之設計。
在一實施例中,設計編譯器210將DUT之HDL轉換成閘級邏輯。對於待仿真之一DUT,設計編譯器210接收呈HDL(例如RTL或其他抽象層級)之DUT之一描述。設計編譯器210綜合DUT之HDL以根據閘級邏輯而產生具有DUT之一描述的一閘級網表。
映射模組220劃分DUT且將分區映射至仿真器組件。在設計編譯器210產生一閘級網表之後,映射模組220使用該網表來將閘級處之DUT劃分成若干分區。映射模組220將各分區映射至仿真器120之一或多個FPGA。映射模組220使用設計規則、設計約束(例如時序或邏輯約束)、及與仿真器120有關之資訊來執行該劃分及該映射。對於各分區,映射模組220產生描述包含於該分區中之邏輯電路及至仿真器120之一或多個FPGA之映射的一位元串流。該等位元串流亦可包含與組件與其他設計資訊之間之連接有關之資訊。映射模組220將該等位元串流傳輸至仿真器120,使得仿真器120之該等FPGA可經組態以仿真DUT。
運行時間模組230控制對仿真器120執行之仿真。運行時間模組230可致使仿真器120開始或停止執行該等仿真。另外,運行時間模組230可將輸入信號/資料提供至仿真器120。該等輸入信號可透過介面115而直接提供至仿真器120或透過其他輸入信號器件而間接提供至仿真器120。例如,具有運行時間模組230之主機系統110可控制一輸入信號器件(諸如一測試板、一信號產生器或一電源供應器)將該等輸入信號提供至仿真器120。
在一實施例中,運行時間模組230可自仿真器120接收仿真結果。在一實施方案中,運行時間模組230接收呈2狀態語義及/或4狀態語義之仿真結果。運行時間模組230亦可將所接收之仿真結果轉換成4狀態語義或2狀態語義。
儲存器250係一儲存庫,其用於保存用於組態仿真器120以負載一DUT之資訊或與對仿真器120執行之DUT之仿真有關之資訊。儲存器250含有呈HDL及網表描述之至少一者的一DUT或該DUT之一部分,其用2狀態語義及/或4狀態語義表示。另外,儲存器250含有設計規則、設計約束(例如時序或邏輯約束)、及與由映射模組220用於映 射之仿真器120及自該映射產生之一位元串流有關之資訊。再者,儲存器250含有由語義轉換模組240使用之轉換規則。另外,儲存器250儲存自仿真器120接收之仿真結果。
語義轉換模組240根據轉換規則而轉換一DUT以表示該DUT之信號之未知狀態。語義轉換模組240執行信號之轉換以能夠表示未知狀態。另外,語義轉換模組240將邏輯電路(其包含(但不限於)布林邏輯算子、正反器、鎖存器及記憶體電路)轉換成可使用信號之未知狀態之表示來操作,如將相對於圖4至圖7而詳細描述。可根據轉換規則而對該整個DUT或該DUT之一部分執行語義轉換。
參考圖3,圖中繪示根據一實施例之語義轉換模組240之一詳細方塊圖。在一實施例中,語義轉換模組240包含一信號轉換模組310、布林邏輯轉換模組320、正反器轉換模組330、鎖存器轉換模組335及記憶體電路轉換模組340。信號轉換模組310轉換呈能夠表示未知狀態之一格式的一DUT之信號。另外,布林邏輯轉換模組320轉換該DUT之布林邏輯電路以能夠使用具有未知狀態之信號來進行邏輯運算。另外,正反器轉換模組330轉換該DUT之正反器以能夠基於參考信號歸因於該等參考信號之未知狀態的推測轉變而操作正反器。此外,鎖存器轉換模組335轉換該DUT之鎖存器以能夠使用具有未知狀態之參考信號來進行鎖存器操作。再者,記憶體電路轉換模組340基於未定位址信號(其包含具有一未知狀態之至少一位元)而將該DUT之記憶體電路轉換成可操作。此等組件一起將該DUT或該DUT之一部分轉換成4狀態語義以能夠表示信號之未知狀態且傳播該等未知狀態。
信號轉換模組310轉換用一2狀態語義表示之一DUT之一數位信號以能夠表示一信號之一未知狀態。用一或多個位元表示一信號。由一暫存器或另一邏輯電路之一輸出表示一單一位元。各位元具有二進位狀態,諸如一高狀態(本文中亦指稱邏輯1、VDD及「真」)及一低狀 態(本文中指稱邏輯0、GND及「假」)。信號轉換模組310實施至少兩個位元以用2狀態語義表示一個位元以表示一未知狀態(本文中亦指稱邏輯X、不清楚及不確定)。較佳地,信號轉換模組310實施兩個位元以用2狀態語義表示一信號之一個位元之一未知狀態。在一方法中,藉由使用用於2狀態語義中之基本電路或邏輯區塊而達成語義轉換,如將相對於圖4至圖7而詳細描述。
圖4A中繪示由信號轉換模組310執行之一信號轉換400A之一實例性實施例。在此實例中,用2狀態語義表示呈使用一暫存器405之一單一位元之一信號410。根據信號轉換400A,使用一額外暫存器之一額外位元經實施以用一4狀態語義表示信號410。在一態樣中,一第一暫存器405A經實施以表示用於指示信號410之一可行低狀態或一可行高狀態的一位元signal_bin 410A。另外,一第二暫存器405B經實施以表示用於指示信號之狀態是否為已知或未知的一位元signal_X 410B。在此4狀態語義中,當位元signal_X 410B處於一低狀態中(例如,信號410之狀態係已知的)時,信號410之狀態係如由位元signal_bin 410A所指示。若位元signal_X 410B處於一高狀態中(例如,信號410之狀態係未知的),則信號410經表示以具有一未知狀態。下文可根據一實例性Verilog碼而實施信號轉換400A。
圖4B中繪示由信號轉換模組310執行之一信號轉換400B之另一實例性實施例。根據信號轉換400B,使用一額外暫存器之一額外位元經實施以用一4狀態語義表示信號410。在此方法中,一第一暫存器405C經實施以表示用於指示信號410之一可行高狀態的一位元 signal_high_possible 410C。另外,一第二暫存器405D經實施以表示用於指示信號410之一可行低狀態的一位元signal_low_possible 410D。在此4狀態語義中,當位元signal_high_possible 410C及位元signal_low_possible 410D兩者處於高狀態中時,信號410經表示以具有一未知狀態。當位元signal_high_possible 410C處於一高狀態中且位元signal_low_possible 410D處於一低狀態中時,信號410經表示以具有一高狀態。類似地,當位元signal_high_possible 410C處於一低狀態中且位於signal_low_possible 410D處於一高狀態中時,信號410經表示以具有一低狀態。當位元signal_high_possible 410C及位元signal_low_possible 410D兩者處於低狀態中時,信號410可經表示以具有一未知狀態或一未指派狀態(即,不影響邏輯運算)。下文可根據一實例性Verilog碼而實施信號轉換400B。
圖5中繪示由布林邏輯轉換模組320執行之一布林邏輯轉換500之一實例性實施例。布林邏輯轉換模組320根據轉換規則而轉換布林邏輯算子以基於具有未知狀態之輸入信號而判定該等經轉換布林邏輯算子之輸出及該等輸出之不確定性。
作為圖5中所繪示之一實例,布林邏輯轉換500將布林邏輯算子505A變換成經轉換之布林邏輯算子505B以使用具有未知狀態之信號來執行邏輯運算。在此實例中,呈2狀態語義之布林邏輯算子505A基於輸入信號510及520而執行布林邏輯運算以產生一輸出信號530,其中用一單一位元表示各信號。布林邏輯轉換500經執行使得布林邏輯算子505B接收輸入信號510及520,且產生呈4個狀態語義之任一者之 一輸出信號530,如相對於圖4A及圖4B所解釋。根據信號轉換400A及400B(本文中指稱一信號轉換400)之任一者,使用輸入位元510A、510B來表示輸入信號510,使用輸入位元520A、520B來表示輸入信號520,且使用輸出位元530A、530B來表示輸出信號530。為簡單起見,使用兩個輸入信號510及520來對一布林邏輯算子505A執行圖5中之布林邏輯轉換500。然而,可使用兩個以上輸入信號來對其他邏輯電路執行布林邏輯轉換500以判定一或多個輸出信號之一狀態及該一或多個輸出信號之不確定性。
布林邏輯算子505B基於輸入信號510及520之狀態而判定輸出信號530之一狀態及輸出信號530之該狀態之不確定性。例如,若布林邏輯算子505A係「與」或「與非」邏輯且輸入信號510之一狀態係未知的,則回應於輸入信號520具有一高狀態而將輸出信號530判定為未知的。在另一實例中,若布林邏輯算子505A係「或」或「或非」邏輯且輸入信號510之一狀態係未知的,則回應於輸入信號520具有一低狀態而將輸出信號530判定為未知的。在另一實例中,若布林邏輯算子505A係「互斥或」、「互斥或非」、「互斥與」或「互斥與非」邏輯,則回應於輸入信號510及520之任一者具有一未知狀態而將輸出信號530判定為未知的。依此方式,可透過經轉換之布林邏輯算子505B而傳播未知狀態。下文可根據實例性Verilog碼而實施「與」邏輯之一實例性布林邏輯轉換500。
圖6A中繪示由正反器轉換模組330執行之一正反器轉換600之一實例性實施例。呈2狀態語義之一正反器605A基於一參考信號620及參考信號620之狀態轉變之前所接收之一輸入信號610之一上升邊緣或一下降邊緣而產生一輸出信號630,其中用一單一位元表示各信號。正反器轉換模組330根據轉換規則而轉換正反器605A,使得一經轉換之正反器605B可使用具有未知狀態之信號以及參考信號620之一推測轉變來操作。
正反器轉換600經執行使得正反器605B接收一輸入信號610及參考信號620,且產生呈相對於圖4A及圖4B所解釋之4個狀態語義之任一者之一輸出信號630。根據一信號轉換400,使用輸入位元610A、610B來表示輸入信號610,使用參考位元620A、620B來表示參考信號620,且使用輸出位元630A、630B來表示輸出信號630。
隨著信號經轉換以表示未知狀態,參考信號620可自一未知狀態轉變或轉變至該未知狀態,藉此致使具有一上升邊緣或一下降邊緣之一推測轉變。作為一實例,對於一上升邊緣觸發正反器605B,一推測轉變可發生於參考信號620自一低狀態轉變至一未知狀態(即,[0X])或自一未知狀態轉變至一高狀態(即,[X1])時。類似地,對於一下降邊緣觸發正反器605B,一推測轉變可發生於參考信號620自一高狀態轉變至一未知狀態(即,[1X])或自一未知狀態轉變至一低狀態(即,[X0])時。
在一態樣中,對於一正邊緣觸發正反器605B,經轉換之正反器605B使用一暫存器或一邏輯電路之一輸出來實施一轉變狀態位元650以判定參考信號620自一低狀態至一未知狀態之一推測轉變。若根據圖4A之信號轉換400A而轉換信號,則藉由對參考位元620A(其對應於指示參考信號620之一可行低狀態之reference signal_bin)執行「與」運算而獲得轉變狀態位元650且對應於指示參考信號620之狀態 之reference signal_X的參考位元620B係已知的。(例如,轉變狀態位元=(!reference signal_bin)&(!reference signal_X)=!(reference signal_bin | reference signal_X))。若參考信號620自一低狀態轉變至一未知狀態(即,當轉變狀態位元650係一高狀態時,reference signal_X變為高態),則轉變狀態位元650之一狀態轉變至一低狀態。因此,偵測到轉變狀態位元650之一下降邊緣且接著偵測到參考信號620處於一未知狀態中以能夠偵測到參考信號620自一低狀態轉變至一未知狀態。
對於正邊緣觸發正反器605B,參考信號620之另一推測轉變可由於參考信號620自一未知狀態轉變至一高狀態(即,[X1])而發生。在一方法中,藉由偵測到reference signal_X之一下降邊緣且接著偵測到reference signal_bin處於一高狀態中而達成判定參考信號620自未知狀態轉變至高狀態。
一旦偵測到參考信號620之一推測轉變,則正反器605B可更新輸出信號630之一狀態。在一態樣中,回應於偵測到一推測轉變,可將不確定性沿用至輸出信號630上。就一推測轉變而言,基於該推測轉變之前之輸入信號610之一狀態及輸出信號630之一狀態而判定輸出信號630之一當前狀態。
在一方法中,可將輸出信號630之一當前狀態判定為推測轉變之前之輸入信號610之一狀態及輸出信號630之一狀態之一組合(例如,{q}<=merge_emul(q,d)或{q_bin,q_x}<=merge_emul(q_bin,q_x,d_bin,d_x),其中q係正反器之一輸出且d係正反器之一輸入)。例如,若推測轉變之前之正反器605B之輸入信號610及正反器605B之輸出信號630處於相同狀態中,則在推測轉變之後維持正反器605B之輸出信號630。因此,當推測轉變之前之輸入信號610及輸出信號630處於相同狀態中時,參考信號620之推測轉變不影響輸出信號630。若推測轉 變之前之正反器605B之輸入信號610及輸出信號630處於不同狀態中,則正反器605B之輸出信號630變為未知的。
除推測轉變之外,正反器605B亦基於參考信號620之一具體轉變而操作。在一態樣中,對於一正邊緣觸發正反器605B,判定參考信號620之一具體轉變係基於轉變狀態位元650。例如,藉由偵測到轉變狀態位元650之一下降邊緣且接著偵測到參考信號620處於一已知狀態(例如高狀態)中而判定參考信號620之一正邊緣以能夠偵測到參考信號620自一低狀態轉變至一高狀態(即,[01])。
下文可根據一實例性Verilog碼而實施正反器轉換600之一實施例。
圖6B中繪示由鎖存器轉換模組335執行之一鎖存器轉換660之一實例性實施例。呈2狀態語義之一鎖存器665A基於一參考信號620之一狀態而產生一輸出信號630,其中用一單一位元表示各信號。鎖存器轉換模組335根據轉換規則而轉換鎖存器665A,使得一經轉換之鎖存器665B可使用具有未知狀態之信號來操作。
鎖存器轉換660經執行使得鎖存器665B接收一輸入信號610及參考信號620,且產生呈相對於圖4A及圖4B所解釋之4個狀態語義之任一者之一輸出信號630。根據一信號轉換400,使用輸入位元610A、 610B來表示輸入信號610,使用參考位元620A、620B來表示參考信號620,且使用輸出位元630A、630B來表示輸出信號630。除鎖存器665B基於參考信號620之一狀態而非參考信號620之狀態之一轉變而操作,且不可實施轉變狀態位元之外,鎖存器665B之操作類似於正反器605B。
若參考信號620之一狀態係未知的,則鎖存器665B可更新輸出信號630之一狀態。在一態樣中,回應於偵測到參考信號620具有一未知狀態,可將不確定性沿用至輸出信號630上。若參考信號620或輸入信號610具有一評估狀態(例如可行高狀態),則鎖存器665B執行評估。當參考信號620或輸入信號610具有一評估狀態時,可連續地或離散地評估鎖存器665B之輸出。若在評估期間參考信號620之狀態係未知的,則可基於一評估之前所接收之輸入信號610之一狀態及輸出信號630之一狀態而判定輸出信號630之一當前狀態。
在一方法中,可將輸出信號630判定為評估之前之輸入信號610之一狀態及輸出信號630之一狀態之一組合(例如,{q}<=merge_emul(q,d)或{q_bin,q_x}<=merge_emul(q_bin,q_x,d_bin,d_x),其中q係鎖存器之一輸出且d係鎖存器之一輸入)。例如,若評估之前之鎖存器665B之輸入信號610及輸出信號630處於相同狀態中,則維持鎖存器665B之輸出信號630。因此,當評估之前之輸入信號610及輸出信號630處於相同狀態中時,具有一未知狀態之參考信號620不影響輸出信號630。若評估之前之鎖存器665B之輸入信號610及輸出信號630處於不同狀態中,則鎖存器665B之輸出信號630變為未知的。
鎖存器665B亦基於參考信號620之一具體狀態而操作。例如,回應於偵測到參考信號620之一評估狀態,當參考信號620處於該評估狀態中時,根據一輸入信號610而更新一輸出信號630。
下文可根據一實例性Verilog碼而實施鎖存器轉換660之一實施例。
圖7中繪示由記憶體電路轉換模組340執行之一記憶體電路轉換700之一實例性實施例。呈2狀態語義之記憶體電路705A基於一位址信號710及一控制信號730而執行讀取操作及寫入操作。對於寫入操作,將一輸入信號720儲存於記憶體電路705A中,且對於讀取操作,基於儲存於記憶體電路705A中之內容而產生一輸出信號770。記憶體電路轉換模組340根據轉換規則而轉換記憶體電路705A,使得一經轉換之記憶體電路705B可使用具有未知狀態之信號以及一未定位址信號710來操作。
呈2狀態語義之記憶體電路705A包含用於儲存所接收之輸入信號720的內容760(0)、760(1)...760(N)(本文中統稱為一內容760)。各內容760與來自位址740(0)、740(1)...740(N)(本文中統稱為一位址740)之一對應位址740相關聯。控制信號730指示是否執行一讀取操作或一寫入操作。對於寫入操作,將輸入信號720儲存於與由位址信號710指示之一對應位址740相關聯之一內容760中。對於讀取操作,基於與由位址信號710指示之一對應位址740相關聯之一內容760而產生輸出信號770。
在一實施方案中,記憶體電路轉換700將記憶體電路705A變換成可使用具有未知狀態之信號來操作之一經轉換記憶體電路705B。記 憶體電路轉換700經執行使得記憶體電路705B接收位址信號710、輸入信號720及控制信號730,且產生呈相對於圖4A及圖4B所解釋之4個狀態語義之任一者之一輸出信號770。在一態樣中,用一或多個位元表示各信號。根據一信號轉換400,使用位址位元710A、710B來表示位址信號710中之各位元,使用輸入位元720A、720B來表示輸入信號720中之各位元,使用控制位元730A、730B來表示控制信號730中之各位元,且使用輸出位元770A、770B來表示輸出信號770中之各位元。
隨著信號經轉換以表示未知狀態,位址信號710可變為未定的。較佳地,用多個位元表示位址信號710。當該等位元之至少一者係未知時,位址信號710變為未定的。例如,若位址信號710用3個位元表示且含有一未知狀態[LX1],則位址信號710可係指位址[101]或[111]以使與未定位址信號710相關聯之內容760為未知的。
在一態樣中,經轉換之記憶體電路705B實施記憶體指示符750(0)、750(1)...750(N)(本文中統稱為一記憶體指示符750)以指示與一對應位址740相關聯之一內容760係未知的。各記憶體指示符750與一對應位址740及對應內容760相關聯。較佳地,用一單一位元實施各記憶體指示符750。
對於執行寫入操作,當位址信號710係未定時,記憶體電路705B根據位址信號710而識別兩個或兩個以上候選位址740。與由位址信號710指示之候選位址740相關聯之記憶體指示符750經啟動(例如,經設定成高狀態)以表示與記憶體指示符750相關聯之對應內容760係未知的。較佳地,省略(或跳過)將輸入信號720儲存於與記憶體指示符750相關聯之對應內容760中。例如,一位址信號710可因[1X1]而為未定的,且記憶體電路705B將[101]及[111]識別為候選位址。另外,記憶體電路705B啟動與對應於[101]及[111]之候選位址相關聯之記憶體指 示符750以指示與候選位址[101]及[111]相關聯之內容係未知的。
若位址信號710係具體的(即,非未定的)且輸入信號720係未知的,則啟動與由位址信號710指示之位址740相關聯之一記憶體指示符750。類似地,可省略(或跳過)將具有未知狀態之輸入信號720儲存於與記憶體指示符750相關聯之對應內容760中。
對於執行讀取操作,當位址信號710係未定時,在一實施例中,記憶體電路705B產生具有一未知狀態之輸出信號770,且跳過讀取任何內容760。在一實施方案中,記憶體電路705B根據位址信號710而識別兩個或兩個以上候選位址740。在另一實施方案中,記憶體電路705B根據位址信號710而省略識別候選位址740。
除執行讀取操作之外,若位址信號710係具體的(即,非未定的)且啟動與由位址信號710指示之一對應位址740相關聯之一記憶體指示符750,則記憶體電路705B亦產生具有一未知狀態之輸出信號770,且跳過讀取任何內容760。
記憶體電路705B亦使用處於已知狀態中之信號來執行讀取操作及寫入操作。對於寫入操作,記憶體電路705B將輸入信號720儲存於與由位址信號710指示之一對應位址740相關聯之一內容760中。對於讀取操作,記憶體電路705B基於與由位址信號710指示之一對應位址740相關聯之一內容760而產生輸出信號770。
可藉由指示與呈一單一位元之一記憶體指示符750相關聯之一內容760之一確定性而改良讀取操作速率及寫入操作速率。較佳地,在記憶體電路705B中,一內容760包含多個位元,因此執行讀取操作及寫入操作會伴隨高延時。因此,避開一未定位址信號710或一未定輸入信號720之實際讀取操作及實際寫入操作會使記憶體電路705B之讀取操作及寫入操作更快。
在一態樣中,在記憶體電路705B之一初始化期間啟動全部記憶 體指示符750以指示所儲存之全部內容760係未知的。因此,無需一具體記憶體指派(即,使用一具體位址信號710及一已知輸入信號720之一寫入操作),一或多個記憶體指示符750保持啟動。較佳地,在一具體記憶體指派之後,撤銷記憶體指示符750(例如,將記憶體指示符750設定成一低狀態)。因此,可容易地識別未經初始化之記憶體位址以促進一嚴格設計實踐。
有益地,根據4狀態語義而初始化信號可表示未知值之族群而非一特定單一指派。因此,可暴露DUT之一未知操作,同時運用一特定值指派之一隨機初始化方法不會導致一問題表現。
表示一信號之一未知狀態且傳播該未知狀態可達成識別一DUT(例如)歸因於電力切斷或不當初始化之不當或未知操作之速率改良。隨著在一最近程序(例如22奈米及以下)中實施數十億邏輯電路,可在1百萬個仿真循環中達成識別呈2狀態語義之一DUT之不當或未知操作。相比而言,可藉由用4狀態語義表示一信號之一未知狀態且傳播該未知狀態之一能力而在1000個仿真循環內達成識別一DUT之不當或未知操作。
另外,可使用不採用一定製類比/混合信號電路(例如三態緩衝器)之習知數位電路區塊來實施呈4狀態語義之一DUT。因此,可以一相對較低成本達成該DUT之轉換。此外,當用2狀態邏輯無縫地實施該DUT之另一部分時,可用4狀態邏輯實施該DUT之一部分。
另外,可識別致使失效之一DUT之IP/區塊級硬體組件。因為可將一DUT之一部分轉換成4狀態語義,所以由一使用者選擇之預先界定IP/區塊級組件或區域或邏輯電路可進一步經檢查以根據仿真循環之次數而更快速地遠離一問題之根本原因。因此,用於實施呈4狀態語義之DUT之一部分之硬體資源保持於一合理位準處以不使仿真器120過載。
圖8係根據一實例性實施例之一流程圖,其繪示主機系統110使經轉換以表示一數位信號之一未知狀態的一待測器件(DUT)準備用於仿真。其他實施例可依不同順序執行圖8之步驟。再者,其他實施例可包含不同於此處所描述之步驟的步驟及/或額外步驟。
主機系統110自一使用者獲得呈HDL之一DUT之一描述(810)。主機系統110轉換該DUT以表示一信號之一未知狀態(820)。主機系統110綜合該經轉換DUT之HDL描述以產生一閘級網表(830)。在另一實施例中,並非在綜合之前轉換該DUT,而是在綜合該DUT之HDL描述之後轉換該DUT。
主機系統110使用該閘級網表來將閘級處之該DUT劃分成數個分區(840)。主機系統110將各分區映射至仿真器120之一或多個FPGA(850)。
圖9中繪示由主機系統110執行之DUT之轉換820。主機系統110根據轉換規則而將一信號轉換成能夠表示該信號之一未知狀態之一形式(910)。在一態樣中,藉由將至少兩個位元實施於該信號中之各位元而將該信號轉換成一4狀態語義。另外,主機系統110根據轉換規則而轉換一布林邏輯算子505A(920)以基於表示未知狀態之輸入信號510而判定經轉換布林邏輯算子505B之輸出信號530及輸出信號530之不確定性。另外,主機系統110根據轉換規則而轉換一正反器605A(930)。可使用一推測轉變來操作經轉換之正反器605B,該推測轉變包含一參考信號620之一狀態自一未知狀態轉變或轉變至該未知狀態。此外,主機系統110根據轉換規則而轉換一鎖存器665A(935)。可使用具有一未知狀態之一參考信號620來操作經轉換之鎖存器665B。再者,主機系統110根據轉換規則而轉換一記憶體電路705A(940)。可使用包含具有一未知狀態之至少一位元之一未定位址信號710或一未定輸入信號720來操作經轉換之記憶體電路705B。
圖10中繪示根據一實施例之一流程圖,其使仿真器120執行數位邏輯運算以基於信號狀態而識別DUT之一未知操作。較佳地,由主機系統110將DUT轉換成能夠表示DUT中之一信號之一未知狀態的一形式。其他實施例可依不同順序執行圖10之步驟。再者,其他實施例可包含不同於此處所描述之步驟的步驟及/或額外步驟。此外,其他實施例可省略此處所描述之某些步驟。
在初始化步驟中,將DUT中之信號初始化為未知狀態(1010)或設定為未知狀態。例如,在記憶體電路705B中,記憶體指示符750經啟動以指示記憶體電路705B中之內容760係未知的。另外,可將其他信號或邏輯電路之狀態初始化為未知狀態。在初始化步驟或在一電力切斷之後接通DUT期間,DUT之信號之一子集或全部信號將經指派以具有未知狀態。
仿真器120將具有已知狀態之輸入信號應用於DUT(1020)。該等輸入信號之一部分可具有未知狀態。仿真器120基於該等輸入信號而執行數位邏輯運算(1030),且基於1030所執行之該等數位邏輯運算而判定信號狀態(1040)。該等數位邏輯運算之結果可用於執行額外數位邏輯運算,因此可依據DUT之不當或未知操作而傳播未知狀態。仿真器120可在另一仿真循環中使用至少預定數目個循環之更新輸入信號來繼續仿真(1050)。
對於一經適當設計之DUT,預期該DUT自具有未知狀態(例如,歸因於電力切斷)之信號恢復。因此,在預定數目個循環之後,預期該DUT之輸出具有明確狀態。可藉由一設計選擇或透過該DUT之模擬而獲得預定數目個循環。在至少預定數目個循環內仿真該DUT之後,監測該DUT之輸出,且可基於輸出信號而判定該DUT之一未知操作(1060)。
參考圖11,圖中繪示根據一實施例之一流程圖,其使仿真器120 操作一正反器605B或一鎖存器665B。較佳地,由主機系統110將正反器605B或鎖存器665B轉換成能夠表示DUT中之一信號之一未知狀態的一形式。因此,可使用一參考信號620之一推測轉變來操作正反器605B且可使用具有一未知狀態之參考信號620來操作鎖存器665B。其他實施例可依不同順序執行圖11之步驟。再者,其他實施例可包含不同於此處所描述之步驟的步驟及/或額外步驟。此外,其他實施例可省略此處所描述之某些步驟。
正反器605B或鎖存器665B接收一輸入信號610及一參考信號620(1110)。在一方法中,用一4狀態語義表示輸入信號610及參考信號620。
正反器605B或鎖存器665B監測一推測條件(1120)。對於正反器605B,該推測條件可為參考信號620之一推測轉變。對於鎖存器665B,若參考信號620或輸入信號610具有一評估狀態(例如可行高狀態),該推測條件可為具有一未知狀態之參考信號620。在一態樣中,回應於偵測到該推測條件,正反器605B或鎖存器665B基於該推測條件之前之輸入信號610及輸出信號630而產生一輸出信號(1150)。因此,可將不確定性沿用至輸出信號630上。
另外,正反器605B或鎖存器665B監測參考信號620中之一具體條件(1140)。對於一正邊緣觸發正反器605B,該具體條件可為參考信號620自一低狀態轉變至一高狀態。對於鎖存器665B,該具體條件可為參考信號620具有一評估狀態(例如高狀態)。對於一正反器605B,若偵測到參考信號620之一具體條件,則正反器605B基於參考信號620之該具體轉變之前之輸入信號610而產生輸出信號630(1160)。對於一鎖存器665B,若偵測到參考信號620之一具體條件,則鎖存器665B基於參考信號620具有該具體評估狀態時所接收之輸入信號610而產生輸出信號630(1160)。
若未偵測到參考信號620之推測條件及一具體條件兩者,則正反器605B或鎖存器665B維持輸出信號630(1170)。
參考圖12A及圖12B,圖中繪示根據一實施例之一流程圖,其使仿真器120操作一記憶體電路705B。較佳地,由主機系統110將記憶體電路705B轉換成能夠表示DUT中之一信號之一未知狀態的一形式。因此,可使用一未定位址信號710來操作記憶體電路705B。其他實施例可依不同順序執行圖12A及圖12B之步驟。再者,其他實施例可包含不同於此處所描述之步驟的步驟及/或額外步驟。此外,其他實施例可省略此處所描述之某些步驟。
圖12A繪示根據一實施例之仿真器120對記憶體電路705B執行一寫入操作。記憶體電路705B接收一輸入信號720及一位址信號710(1210)。記憶體電路705B判定輸入信號720或位址信號710是否為未定的(1220)。回應於判定輸入信號720及位址信號710係具體的,記憶體電路705B將輸入信號720儲存於與由位址信號710指示之位址740相關聯之一內容760中(1235)。回應於判定輸入信號720及位址信號710之至少一者係未定的,記憶體電路705B使用一記憶體指示符750來指示與由位址信號710指示之位址740相關聯之內容760係未知的(1230)。在一實例中,記憶體電路705B根據位址信號710而識別候選位址740。在一方法中,記憶體指示符750經啟動以指示內容760係未知的,且較佳地省略將輸入信號720儲存於內容760中。
圖12B繪示根據一實施例之仿真器120對記憶體電路705B執行一讀取操作。記憶體電路705B接收一位址信號710(1250),且記憶體電路705B判定位址信號710是否為未定的(1260)。回應於判定位址信號710係未定的,記憶體電路705B產生具有一未知狀態之一輸出信號770(1290)。較佳地,省略(或跳過)內容760之實際讀取。
回應於判定位址信號710係具體的,記憶體電路705B判定與由位 址信號710指示之一位址740相關聯之內容760是否為未知的(1270)。在一方法中,記憶體電路705B檢查與內容760相關聯且與位址740相關聯之一記憶體指示符750以判定內容760是否為未知的。例如,若啟動記憶體指示符750,則將內容760判定為未知的。此外,回應於判定內容760係未知的,記憶體電路705B產生具有一未知狀態之輸出信號770(1290)。較佳地,省略(或跳過)內容760之實際讀取。
回應於判定內容760係已知的,記憶體電路705B基於與由位址信號710指示之位址740相關聯之內容760而產生輸出信號770(1280)。
計算機架構
現轉至圖13,其係繪示能夠自一機器可讀媒體讀取指令且在一處理器(或控制器)中執行該等指令之一實例性機器之組件的一方塊圖。明確言之,圖13展示呈一電腦系統1300之實例性形式之一機器之一圖示,電腦系統1300內之指令1324(例如軟體或程式碼)用於致使該機器執行相對於圖1至圖12所描述之方法之任何一或多者。電腦系統1300可用於圖1之仿真環境100中所繪示之實體(例如主機系統110、仿真器120)之一或多者。
實例性電腦系統1300包含一硬體處理器1302(例如一中央處理單元(CPU)、一圖形處理單元(GPU)、一數位信號處理器(DSP)、一或多個專用積體電路(ASIC)、一或多個射頻積體電路(RFIC)、或此等之任何組合)、一主記憶體1304及一靜態記憶體1306,其等經組態以經由一匯流排1308而彼此通信。處理器1302可包含一或多個處理器。電腦系統1300可進一步包含圖形顯示單元1310(例如一電漿顯示面板(PDP)、一液晶顯示器(LCD)、一投影機或一陰極射線管(CRT))。電腦系統1300亦可包含文數字輸入器件1312(例如一鍵盤)、一游標控制器件1314(例如一滑鼠、一軌跡球、一操縱桿、一運動感測器或其他指標儀器)、一儲存單元1316、一信號產生器件1318(例如一揚聲器)及 一網路介面器件1320,其等亦經組態以經由匯流排1308而通信。
儲存單元1316包含一機器可讀媒體1322,其上儲存有體現本文中所描述之方法或功能之任何一或多個的指令1324(例如軟體)。指令1324(例如軟體)亦可在其由電腦系統1300執行期間完全或至少部分駐留於主記憶體1304或處理器1302內(例如,駐留於一處理器之快取記憶體內),主記憶體1304及處理器1302亦構成機器可讀媒體。指令1324(例如軟體)可經由網路介面器件1320而在一網路1326上傳輸或接收。
雖然在一實例性實施例中將機器可讀媒體1322展示為一單一媒體,但術語「機器可讀媒體」應被視為包含能夠儲存指令(例如指令1324)之一單一媒體或多個媒體(例如一集中式或分散式資料庫、或相關聯之快取記憶體及伺服器)。術語「機器可讀媒體」亦應被視為包含能夠儲存用於由機器執行之指令(例如指令1324)且致使機器執行本文中所揭示之方法之任何一或多者的任何媒體。術語「機器可讀媒體」包含(但不限於)呈固態記憶體、光學媒體及磁性媒體之形式之資料儲存庫。
如此項技術中所知,一電腦系統1300可具有不同於圖13中所展示之組件及/或除圖13中所展示之組件之外之組件。另外,電腦系統1300可缺乏某些所繪示組件。例如,充當仿真器120之一電腦系統1300可包含一硬體處理器1302、一儲存單元1316、一網路介面器件1320及多個可組態邏輯電路(如上文參考圖1所描述)以及其他組件,但可缺乏一文數字輸入器件1312及一游標控制器件1314。
額外組態考量
應注意,雖然在用於仿真數位電路及系統之仿真環境之背景下描述標的,但所描述之原理可應用於任何數位電子器件之分析。所揭示組態之優點包含將信號及數位邏輯電路變換成能夠表示一未知狀態 之一形式。依此方式,可將一未知狀態傳播至其他邏輯電路,因此可依一計算高效方式識別一DUT(例如)歸因於電力切斷或不當初始化之不當或未知操作。再者,雖然本文中之實例以一仿真環境為背景,但本文中所描述之原理可應用於包含FPGA及ASIC之數位電路之硬體實施或軟體模擬(諸如EDA)之其他分析。
在本說明書中,複數個例項可將所描述之組件、操作或結構實施為一單一例項。雖然將一或多個方法之個別操作繪示及描述為單獨操作,但可同時執行該等個別操作之一或多者,且無需要依所繪示之順序執行該等操作。可將在實例性組態中呈現為單獨組件之結構及功能性實施為一組合結構或組件。類似地,可將呈現為一單一組件之結構及功能性實施為單獨組件。此等及其他變動、修改、添加及改良落於本文中之標的之範疇內。
本文中將某些實施例描述為包含邏輯或數個組件、模組或機構,例如,如圖1至圖12中所繪示。模組可構成軟體模組(例如一機器可讀媒體上或一傳輸信號中所體現之編碼)或硬體模組。一硬體模組係能夠執行某些操作之有形單元且可依某一方式組態或配置。在實例性實施例中,一或多個電腦系統(例如一獨立用戶端或伺服器電腦系統)或一電腦系統之一或多個硬體模組(例如一處理器或一群組之處理器)可由軟體(例如一應用程式或應用程式部分)組態為用於執行本文中所描述之某些操作的一硬體模組。
在各種實施例中,可機械地或電子地實施一硬體模組。例如,一硬體模組可包括經永久組態(例如,作為一專用處理器,諸如一場可程式化閘陣列(FPGA)或一專用積體電路(ASIC))以執行某些操作之專用電路或邏輯。一硬體模組亦可包括由軟體暫時組態以執行某些操作之可程式化邏輯或電路(例如,涵蓋於一通用處理器或其他可程式化處理器內)。應瞭解,可在考量成本及時間之後啟動在專用且永久 組態之電路或暫時組態之電路(例如,由軟體組態)中機械地實施一硬體模組之決定。
可由經暫時組態(例如,由軟體組態)或經永久組態以執行相關操作之一或多個處理器(例如處理器1302)至少部分執行本文中所描述之實例性方法之各種操作。不論是否經暫時或永久組態,此等處理器可構成用於執行一或多個操作或功能之處理器實施模組。在一些實例性實施例中,本文中所涉及之模組可包括處理器實施模組。
一或多個處理器亦可用於支援在一「雲計算」環境中或作為一「軟體即服務(SaaS)」之相關操作之效能。例如,可由一群組之電腦(作為包含處理器之機器之實例)執行操作之至少部分,此等操作可經由一網路(例如網際網路)且經由一或多個適當介面(例如應用程式介面(API))而存取。
操作之某些者之效能可分散於一或多個處理器中,不僅駐留於一單一機器內,且部署於數個機器中。在一些實例性實施例中,一或多個處理器或處理器實施模組可位於一單一地理位置中(例如,位於一家庭環境、一辦公環境或一伺服器群內)。在其他實例性實施例中,一或多個處理器或處理器實施模組可分散於數個地理位置中。
根據對作為位元或二進位數位信號儲存於一機器記憶體(例如一電腦記憶體)內之資料之操作之演算法及符號表示而呈現本說明書之一些部分。此等演算法或符號表示係由一般資料處理技術者用於對其他熟習技術者傳達其工作要旨之技術之實例。如本文中所使用,一「演算法」係導致一所要結果之一自行一致操作序列或類似處理。在此背景中,演算法及操作涉及實體量之實際操縱。通常(但非必需),此等量可呈能夠由一機器儲存、存取、轉移、組合、比較或依其他方式操縱之電信號、磁信號或光信號之形式。有時,主要為了共同使用之原因,使用用語(諸如「資料」、「內容」、「位元」、「值」、「元件」、 「符號」、「字元」、「術語」、「數目」、「數字」或其類似者)來指稱此等信號係方便的。然而,此等用語僅為方便標記且應與適當實體量相關聯。
若無另外明確說明,則在本文中使用諸如「處理」、「運算」、「計算」、「判定」、「呈現」、「顯示」或其類似者之用語之討論可涉及一機器(例如一電腦)之動作或程序,該機器操縱及/或變換表示為一或多個記憶體(例如揮發性記憶體、非揮發性記憶體、或其等之一組合)、暫存器或其他機器組件(其接收、儲存、傳輸、或顯示資訊)內之物理(例如電子、磁性或光學)量之資料。
如本文中所使用,對「一實施例」之任何參考意謂:結合該實施例所描述之一特定元件、特徵、結構或特性包含於至少一實施例中。出現於本說明書之各個位置中之片語「在一實施例中」未必全部係指相同實施例。
可使用表達「耦合」及「連接」以及其等之衍生詞來描述一些實施例。例如,可使用術語「耦合」來描述一些實施例以指示:兩個或兩個以上元件直接實體或電接觸。然而,術語「耦合」亦可意謂:兩個或兩個以上元件彼此不直接接觸,而是彼此合作或互動。實施例不受限於此背景。
如本文中使用,術語「包括」、「包含」、「具有」或其等之任何其他變型意欲涵蓋一非排他包含。例如,包括一系列元件之一程序、方法、物品或裝置未必僅受限於該等元件,而是可包含未明確列出或此程序、方法、物品或裝置固有之其他元件。此外,若未明確說明相反,則「或」係指一「包含或」而非一「互斥或」。例如,以下之任一者滿足一條件「A或B」:A為真(或存在)且B為假(或不存在);A為假(或不存在)且B為真(或存在);及A及B兩者為真(或存在)。
另外,「一」之用法經採用以描述本文中之實施例之元件及組 件。此僅為方便起見且將給出本發明之一般意義。此描述應被解讀為包含一個或至少一個,且若無另有清楚說明,則單數亦包含複數。
在閱讀本發明之後,熟習技術者將透過本文中所揭示之原理而瞭解信號之未知狀態之一表示及傳播之一系統及一程序之額外替代結構及功能設計。因此,雖然已繪示及描述特定實施例及應用,但應瞭解,所揭示之實施例不受限於本文中所揭示之精確建構及組件。熟習技術者將明白,可在不背離隨附申請專利範圍中所界定之精神及範疇之情況下對本文中所揭示之方法及裝置之配置、操作及細節作出各種修改、改變及變動。
1010‧‧‧將DUT中之信號初始化為未知狀態
1020‧‧‧將具有已知狀態之輸入信號應用於DUT
1030‧‧‧基於輸入信號而執行數位邏輯運算
1040‧‧‧基於數位邏輯運算而判定信號狀態
1050‧‧‧是否繼續仿真?
1060‧‧‧基於輸出信號而判定DUT之一未知操作

Claims (23)

  1. 一種非暫時性電腦可讀媒體,其儲存指令來組態一仿真器以:在一待測設計(DUT)之一部分之一數位邏輯電路處接收一輸入信號及一參考信號;判定該參考信號是否具有一推測條件,該參考信號歸因於該參考信號之一未知狀態而具有該推測條件;回應於判定該參考信號具有該推測條件,基於該參考信號之該推測條件之前之該輸入信號之一狀態及該數位邏輯電路之一輸出之一狀態而產生該數位邏輯電路之該輸出;及藉由使用作為一額外數位邏輯電路之一輸入的該數位邏輯電路之該輸出來執行一數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
  2. 如請求項1之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以產生該數位邏輯電路之該輸出以回應於該推測條件之前之該輸入信號之一狀態及該推測條件之前之該參考信號之一狀態不同而具有該未知狀態。
  3. 如請求項1之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以回應於該推測條件之前之該輸入信號之一狀態及該推測條件之前之該參考信號之一狀態不同而維持該數位邏輯電路之該輸出。
  4. 如請求項1之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以回應於該DUT之該輸出具有該未知狀態而將該DUT之一操作判定為未知的。
  5. 如請求項1之非暫時性電腦可讀媒體,其中該數位邏輯係一正反器且該參考信號之該推測條件係該參考信號之一狀態自該未知 狀態或至該未知狀態之一推測轉變。
  6. 如請求項5之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以使用該正反器之另一位元來指示該參考信號之該狀態之該推測轉變,該另一位元經組態以指示該參考信號之該狀態自一已知狀態轉變至該未知狀態。
  7. 如請求項6之非暫時性電腦可讀媒體,其中該另一位元指示該參考信號是否具有一低狀態,其中該等指令進一步組態該仿真器以藉由以下操作而判定該參考信號之該推測轉變:(i)偵測到該另一位元之一下降邊緣且接著偵測到該參考信號具有該未知狀態;或(ii)偵測到該參考信號自該未知狀態轉變至一高狀態。
  8. 如請求項6之非暫時性電腦可讀媒體,其中該另一位元指示該參考信號是否具有一低狀態,其中該等指令進一步組態該仿真器以藉由偵測到該另一位元之一下降邊緣且接著偵測到該參考信號處於一高狀態中而判定該參考信號之一具體轉變。
  9. 如請求項1之非暫時性電腦可讀媒體,其中該數位邏輯係一鎖存器且該參考信號之該推測條件係具有該未知狀態之該參考信號之一狀態。
  10. 如請求項1之非暫時性電腦可讀媒體,其中該DUT包含經轉換以表示未知狀態之該DUT之該部分及未經轉換以表示未知狀態之該DUT之另一部分。
  11. 一種電腦實施方法,其包括:在一待測設計(DUT)之一部分之一數位邏輯電路處接收一輸入信號及一參考信號;判定該參考信號是否具有一推測條件,該參考信號歸因於該參考信號之一未知狀態而具有該推測條件;回應於判定該參考信號具有該推測條件,基於該參考信號之 該推測條件之前之該輸入信號之一狀態及該數位邏輯電路之一輸出之一狀態而產生該數位邏輯電路之該輸出;及藉由使用作為一額外數位邏輯電路之一輸入的該數位邏輯電路之該輸出來執行一數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
  12. 一種儲存指令之非暫時性電腦可讀媒體,該等指令在由一處理器執行時致使該處理器:將用一2狀態語義表示之一待測設計(DUT)之一部分之一信號轉換成一暫存器轉移層級處之一4狀態語義,用該2狀態語義表示之該信號具有使用一個位元之一高狀態及一低狀態之一者且用該4狀態語義表示之該信號具有使用兩個或兩個以上位元之該高狀態、該低狀態及一未知狀態之一者;及將用該2狀態語義表示之該DUT之該部分之一數位邏輯轉換成該4狀態語義,該數位邏輯基於該信號而產生該數位邏輯之一輸出。
  13. 一種非暫時性電腦可讀媒體,其儲存指令來組態一仿真器以:在一待測設計(DUT)之一部分之一記憶體器件處接收一輸入信號及一位址信號以執行一記憶體讀取操作;回應於該輸入信號或該位址信號具有一未知狀態,跳過讀取與該位址信號相關聯之內容;回應於該輸入信號或該位址信號具有該未知狀態,產生由該內容係未知所致之一輸出信號;及藉由根據該輸出信號使用一數位邏輯電路來執行一數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
  14. 如請求項13之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以: 回應於該輸入信號或該位址信號具有該未知狀態,使用與用於執行一記憶體寫入操作之該位址信號相關聯之一記憶體指示符來將與該位址信號相關聯之該內容指示為未知的。
  15. 如請求項14之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以回應於該輸入信號或該位址信號具有該未知狀態而跳過將該輸入信號儲存於該記憶體器件中以執行該記憶體寫入操作。
  16. 如請求項14之非暫時性電腦可讀媒體,其中該記憶體指示符係與該內容相關聯之一1位元指示符。
  17. 如請求項14之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以使該記憶體指示符初始化以在該DUT之一電力切斷之後具有該未知狀態。
  18. 如請求項13之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以回應於該DUT之該輸出具有該未知狀態而將該DUT之一操作判定為未知的。
  19. 如請求項13之非暫時性電腦可讀媒體,其中該DUT包含經轉換以表示未知狀態之該DUT之該部分及未經轉換以表示未知狀態之該DUT之另一部分。
  20. 如請求項13之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以回應於該位址信號具有該未知狀態而根據該位址信號識別複數個候選位址。
  21. 如請求項20之非暫時性電腦可讀媒體,其中該等指令進一步組態該仿真器以使用與該複數個候選位址相關聯之記憶體指示符來將與該複數個候選位址相關聯之內容指示為未知的。
  22. 一種電腦實施方法,該方法包括:在一待測設計(DUT)之一部分之一記憶體器件處接收一輸入信 號及一位址信號以執行一記憶體讀取操作;回應於該輸入信號或該位址信號具有一未知狀態,跳過讀取與該位址信號相關聯之內容;回應於該輸入信號或該位址信號具有該未知狀態,產生由該內容係未知所致之一輸出信號;及藉由根據該輸出信號使用一數位邏輯電路來執行數位邏輯運算而將該未知狀態傳播至該DUT之一輸出。
  23. 一種儲存指令之非暫時性電腦可讀媒體,該等指令在由一處理器執行時致使該處理器:將用一2狀態語義表示之一待測設計(DUT)之一部分之一信號轉換成一暫存器轉移層級處之一4狀態語義,用該2狀態語義表示之該信號具有使用一個位元之一高狀態及一低狀態之一者且用該4狀態語義表示之該信號具有使用兩個或兩個以上位元之該高狀態、該低狀態及一未知狀態之一者;及將用該2狀態語義表示之該DUT之該部分之一記憶體電路轉換成該4狀態語義,該經轉換之記憶體電路包含用於儲存一輸入信號之一狀態之內容及與該內容相關聯之一記憶體指示符,該記憶體指示符與一位址信號相關聯以回應於該輸入信號或該位址信號具有該未知狀態而指示該內容係未知的。
TW104138288A 2015-01-22 2015-11-19 仿真中之x傳播 TWI595417B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/602,549 US9659118B2 (en) 2015-01-22 2015-01-22 X-propagation in emulation
US14/602,580 US9773078B2 (en) 2015-01-22 2015-01-22 X-propagation in emulation using efficient memory

Publications (2)

Publication Number Publication Date
TW201627858A true TW201627858A (zh) 2016-08-01
TWI595417B TWI595417B (zh) 2017-08-11

Family

ID=56417558

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104138288A TWI595417B (zh) 2015-01-22 2015-11-19 仿真中之x傳播

Country Status (4)

Country Link
EP (2) EP4224355A3 (zh)
CN (2) CN107250987B (zh)
TW (1) TWI595417B (zh)
WO (1) WO2016118204A1 (zh)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5428579A (en) * 1992-03-31 1995-06-27 Intel Corporation Flash memory card with power control register and jumpers
US5872953A (en) 1995-08-30 1999-02-16 Mentor Graphics Corporation Simulating circuit design on a circuit emulation system
US7356786B2 (en) * 1999-11-30 2008-04-08 Synplicity, Inc. Method and user interface for debugging an electronic system
CN1306706C (zh) * 2001-05-14 2007-03-21 华邦电子股份有限公司 数字逻辑模拟方法
US7043596B2 (en) * 2001-08-17 2006-05-09 Sun Microsystems, Inc. Method and apparatus for simulation processor
FR2841668B1 (fr) * 2002-06-26 2006-08-11 Emulation And Verification Eng Procede et systeme d'emulation d'un circuit sous test associe a un environnement de test
CN1254016C (zh) * 2003-06-02 2006-04-26 华邦电子股份有限公司 可降低电磁干扰的无突波电路
US7072825B2 (en) * 2003-06-16 2006-07-04 Fortelink, Inc. Hierarchical, network-based emulation system
US7366652B2 (en) * 2003-06-16 2008-04-29 Springsoft, Inc. Method of programming a co-verification system
US8150672B2 (en) * 2006-09-14 2012-04-03 International Business Machines Corporation Structure for improved logic simulation using a negative unknown boolean state
US8756557B2 (en) * 2007-05-09 2014-06-17 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US8010934B2 (en) * 2007-05-31 2011-08-30 International Business Machines Corporation Method and system for testing bit failures in array elements of an electronic circuit
EP2404180A1 (en) * 2009-03-05 2012-01-11 Mentor Graphics Corporation Cell-aware fault model creation and pattern generation
US10423740B2 (en) * 2009-04-29 2019-09-24 Synopsys, Inc. Logic simulation and/or emulation which follows hardware semantics
US8589892B2 (en) * 2010-11-21 2013-11-19 International Business Machines Corporation Verification of speculative execution
US8666723B2 (en) * 2011-08-31 2014-03-04 Oregon State Board Of Higher Education On Behalf Of Portland State University System and methods for generating and managing a virtual device

Also Published As

Publication number Publication date
TWI595417B (zh) 2017-08-11
EP3248103B1 (en) 2023-06-07
EP3248103A4 (en) 2018-08-08
EP4224355A2 (en) 2023-08-09
CN112783710A (zh) 2021-05-11
CN107250987B (zh) 2021-01-22
WO2016118204A1 (en) 2016-07-28
CN112783710B (zh) 2022-06-10
EP4224355A3 (en) 2023-08-16
CN107250987A (zh) 2017-10-13
EP3248103A1 (en) 2017-11-29

Similar Documents

Publication Publication Date Title
US9684743B2 (en) Isolated debugging in an FPGA based emulation environment
US9910944B2 (en) X-propagation in emulation using efficient memory
JP6600011B2 (ja) エミュレーションのための効率的波形生成
CN106802972B (zh) 时钟抖动仿真
US9286424B1 (en) Efficient waveform generation for emulation
US10073932B2 (en) Capturing time-slice of emulation data for offline embedded software debug
US9659118B2 (en) X-propagation in emulation
US10331825B2 (en) Waveform based reconstruction for emulation
EP3532936A1 (en) Debugging system and method
JP2006139729A (ja) ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体
US9958917B1 (en) Generalized resettable memory
Corteggiani et al. HardSnap: Leveraging hardware snapshotting for embedded systems security testing
CN112673376B (zh) 用于标识状态保持回路和振荡回路的硬件仿真系统和方法
TWI595417B (zh) 仿真中之x傳播
JP3472067B2 (ja) 設計支援装置
US10621067B1 (en) Data unit breakpointing circuits and methods
Harris Hardware/software covalidation
US9208282B1 (en) Enabling IP execution on a simulation execution platform
Zhang et al. Integrated iss and fpga soc hw/sw co-verification environment design
Huang et al. Eliminate the X-Optimization during RTL Verification