TWI474203B - 模擬電路的方法、積體電路、電腦系統及電腦程式產品 - Google Patents
模擬電路的方法、積體電路、電腦系統及電腦程式產品 Download PDFInfo
- Publication number
- TWI474203B TWI474203B TW98107705A TW98107705A TWI474203B TW I474203 B TWI474203 B TW I474203B TW 98107705 A TW98107705 A TW 98107705A TW 98107705 A TW98107705 A TW 98107705A TW I474203 B TWI474203 B TW I474203B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- signals
- signal
- additional
- primary
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
本發明的實施例是有關於電路模擬器。更詳細地說,本發明的實施例是有關於一種縮減電路模擬輸出檔案之大小的方法及裝置。
在電路的設計過程中固定地都要做模擬。為有助於電路設計上的偵測作業,電路模擬器經常需要輸出設計參數的模擬數值或波形至一外部檔案內,可供後續由後處理工具及/或偵錯工具來加以使用。
現有之電路模擬器的一項問題在於他們通常會將所有的模擬數值或波形輸出至該外部檔案內。因此,該外部檔案的大小會相當的大,這對於性能(例如電路模擬時間)會有不利的影響,並會增加與模擬作業有關的費用。
因此之故,有需要能有一種裝置及技術,以供縮減該外部檔案之大小,同時並能有助於模擬結果的後處理作業及/或電路的偵錯作業,而不會有前述的困擾。
本發明的一實施例提供一種用以模擬電路的電腦系統。在該模擬的第一模式期間,該電腦系統會將與該電路之一部份相關的主要信號及主要信號與次要信號間之電路關係儲存於一檔案內,其中該等主要信號係與該電路的該部份內的閘輸出無關,而該等次要信號則是由該電路的該部份內的閘加以驅動。再者,在該模擬的第二模式期間,該電腦系統會將該等信號間的額外關係上的動態變化儲存於該檔案內,其中該等信號可包括主要信號、次要信號、或二者。
在某些實施例中,該等動態變化包含有指示出該等額外關係內之一暫時過渡轉變的事件。這些事件可以是與偵錯應用相關者。例如說,該等事件可包含有:強迫該等信號中至少一者成為具有一預定的波形(例如一固定值),及/或中止強迫該等信號中至少一者成為具有該預定值。另外,該等事件可包含有:設定該等信號成為彼此相同,及/或中止設定該等信號成為彼此相同。
在某些實施例中,該電腦系統可在該等額外關係上有所變化之時間以外的時間時,根據儲存於該檔案內的該等主要信號及該等電路關係之一者或多者來產生該等次要信號之一者。例如說,該次要信號的產生可包括有使用優先佇列來評估該等電路關係。應注意,該次要信號可以是在該模擬完成後產生。再者,應注意,該次要信號可以是使用不同於用來進行該模擬的應用軟體來加以產生。
在某些實施例中,該等電路關係包含有該電路的該部份內的閘一電路拓撲。再者,該電路的該部份內的至少一閘可具有一相關延遲。
在某些實施例中,該第一模式有助於將該檔案的大小相對於在該檔案包括有該等主要信號及該等次要信號之時加以縮減。再者,該第一模式有助於以較該等主要信號及該等次要信號均儲存於該檔案內時更為快速地進行模擬。
在某些實施例中,該模擬包含有Verilog模擬。再者,該模擬可包含有超高速積體電路硬體描述語言(VHDL)中所指定的電路模擬。
在某些實施例中,該電路的該部份包含有整個電路。
另一實施例提供一種用以模擬該電路的方法,其可由該電腦系統加以實施。此方法可包含有前述作業中的至少一部份。
另一實施例提供一種可供配合該電腦系統使用的電腦程式產品。此電腦程式產品可包含有對應於前述作業中之至少一部份的指令。
另一種實施例提供一種積體電路,係規劃來模擬該電路。在該模擬的第一模式期間,該積體電路係規劃成能將與該電路之該部份相關的主要信號及主要信號與次要信號間之電路關係儲存於該檔案內,其中該等主要信號係與該電路的該部份內的閘輸出無關,且該等次要信號則是由該電路的該部份內的閘加以驅動。再者,在該模擬的第二模式期間,該積體電路係規劃成能將該等信號間的額外關係上的動態變化儲存於該檔案內,其中該等信號可包括主要信號、次要信號、或二者。
下面的說明係供用來讓熟知此技藝者能夠製做並使用本發明,並係針對一特定的應用及其需求來加以說明。熟知此技藝者當可輕易地知悉該等所揭露之實施例的多種變化,而本文內所界定的一般原則亦可應用於其他的實施例及應用中,而不會脫離本發明的精神及範疇。因此,本發明並不意欲受限於在此所示的實施例而已,而是要配合於本文中所揭露之原則及特點的最寬廣範圍。
下面將說明有關於電腦系統、方法、積體電路、以及可用於該電腦系統內的電腦程式產品(亦即軟體)的實施例。這些系統、積體電路、軟體、以及程序可用來模擬電路,並可有助於該電路的偵錯。詳細地說,在模擬的過程中,與該電路之一部份相關的主要信號,以及該等主要信號與相關於該電路之該部份的次要信號間的電路關係,會輸出至一檔案內(詳細地說,在一時段內的數個時間的該等主要信號的值將會被儲存起來)。這些化及改良。這些主要信號可以是與該電路的該部份內的閘極輸出無關者,而該等次要信號可以是由該電路的該部份內的閘極加以驅動。再者,該等電路關係可以包括該電路的該部份內的閘-電路拓撲。
另外,在模擬的過程中,當信號(例如主要信號及/或次要信號)間的額外關係上有動態變化時,此資訊可以輸出至該檔案內。這些動態變化可以包括有指示出該等額外關係內之暫時過渡轉變的事件(例如與偵錯應用相關者)。例如說,這些事件可以包括有:強迫該等信號中至少一者成為具有預定的波形(例如固定值);中止強迫該等信號中至少一者成為具有該預定值;設定該等信號成為互相相同;及/或中止設定該等信號成為彼此相同。
在模擬作業完成後,儲存於該檔案內的該等主要信號及電路關係之一者或多者即可在該等額外關係上有所變化之時間以外的時間時產生該等次要信號之一者。例如說,產生該次要信號包括有使用優先佇列(Priority Queuing)來評估該等電路關係。應注意,該次要信號可以利用不同於用來進行模擬作業的應用軟體來加以產生。此不同的應用軟體可以包括:後處理應用軟體、波形觀測器(Waveform Viewer)、及/或偵錯工具。
藉由將這些主要信號及電路表徵(Circuit Representation)儲存於該檔案內(但不將次要信號儲存於該檔案內),相對於該等主要信號及次要信號均被儲存時的大小,此技術可有助於縮減該檔案的大小。而後,該檔案之大小的此一縮減將可僅使用較少的系統資源(例如記憶體),並可有助於更快速的模擬作業,此二者均可減低與模擬作業有關的費用。
在接下的討論中,模擬作業包括Verilog模擬。再者,此模擬作業可包括超高速積體電路硬體描述語言(VHDL)中所指定的電路模擬。再者,在某些實施例中,此模擬作業可由一積體電路來加以施行,例如說規劃來進行此模擬的現場可程式邏輯閘陣列(FPGA)。
應注意,這些模擬技術可以施行成個別的軟體應用程式,或是諸如電路模擬器之類的其他應用軟體中的程式模組或副程式。再者,此軟體應用程式可以規劃成能在電腦上執行,例如:個人電腦、膝上型電腦、伺服器、工作站、主機電腦、或其他能夠處理電腦可讀取資料的裝置。應注意,此電腦可設於單一處所,或是分散於多個處所,例如經由網路(例如網際網路或內部網路)進行通訊的電腦系統。因此,與模擬作業相關的資訊可在當地儲存(例如存於一電腦內),或是做遠距儲存(例如存放至可經由網路存取的另一台電腦或伺服器)。
我們接下來要說明設計與製造積體電路或晶片的實施例。第1圖是一流程圖100,顯示出積體電路之設計與製造上的各種作業。此程序開始於產品概念(110)的產生,其係在使用電子設計自動化(EDA)軟體(112)的設計過程中完成的。當該設計最終完成時,即定案(Tape Out)(134)。在定案後,即可製做(136)出半導體晶粒,並進行封裝及組裝程序(138),這最終即可得到完成的晶片(140)。
此一使用EDA軟體(112)的設計程序包括作業114-132,其等將說明如下。應注意,此設計流程的說明係僅供解釋說明之用而已。此說明並非是要用來限制本發明。例如說,實際的積體電路設計可能會需要設計者以不同於本文中所述之次序來進行各項設計作業。
在系統設計(114)的階段中,設計者要定出要實施的功能。他們亦可進行若則(What-If)規劃,以精製功能設定及查證成本。應注意,硬體-軟體架構作區隔可在此階段中進行。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:Model Architect、Saber、System Studio、以及Designware等產品。
接下來,在邏輯設計及功能驗證(116)的階段中,將針對電路中的模組撰寫VHDL或是Verilog碼,且會針對該設計來查驗功能正確性。更詳細地說,會對該設計來加以查驗,以確保其可生成正確的輸出。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:VCS、Vera、Designware、Magellan、Formality、ESP、以及Leda等產品。
接下來,在組合及測試設計(118)的階段中,VHDL/Verilog會轉換成一網路表(netlist)。此網路表可針對靶技術(Target Technology)加以最佳化。另外,可設計並實施測試來查驗最終晶片。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:Design Compiler、Physical Compiler、Test Compiler、Power Compiler、FPGA Compiler、Tetramax、以及Designware等產品。
再者,在網路表驗證(120)的階段中,會針對該網路表加以查驗,以符合時序限制及對應於VHDL/Verilog原始碼。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:
Formality、Primetime、以及VCS等產品。
再者,在設計規劃(122)的階段中,會針對時序及頂層路線安排來建構並分析晶片的整體平面配置。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:Astro及IC Compiler等產品。
另外,在實體實施(124)的階段中,會進行元件布局(電路元件的定位)及路線安排(其等的連接)。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:Astro及IC Compiler等產品。
接下來,在分析及抽取(126)階段中,會針對電路功能在電晶體層級加以驗證,這可供進行精製作業。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:Astrorail、Primerail、Primetime、以及Star RC/XT等產品。
接下來,在實體驗證(128)的階段中,該設計會被加以查驗,以確保在以下各方面的正確性:製造、電氣事項、微影事項、以及電路。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有Hercules產品。
再者,在解析度增強(130)階段中,會進行佈線的幾何處理,以改善該設計的製造加工性。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有:Proteus、ProteusAF、以及PSMGED等產品。
另外,在光罩資料製備(132)階段中,將會提供可用來製做供產製最終晶片之光罩的‘定案’資料。來自美國加州Mountain View地區Synopsys公司可供應用於此一階段內的範例EDA軟體產品包括有Cats系列產品。
本發明的實施例可以在前述各階段中的單一或多個階段中使用。詳細地說,在某些實施例中,本發明可在系統設計(114)階段及/或邏輯設計及功能驗證(116)階段中加以使用。
我們接下來要說明用以模擬電路的系統、裝置及程序的實施例。第2圖是一方塊圖,顯示出一電路200。此電路包含有邏輯閘210,其等包括有一個或多個電晶體,例如及閘。更廣泛地說,通常有數種相當的方式可用來定義一閘的型式。例如說,在Verilog中,及閘可定義成‘and g1(o,i1,i2)’、‘assign o=i1&i2’、以及‘always_comb o=i1&i2’。在下面的討論中,所有會由合成工具加以映射至一閘的Verilog構造均視為閘。
應注意,邏輯閘210-1及210-2的輸入信號是主要信號212,而邏輯閘210-3的輸入信號及邏輯閘210-3的輸出信號則是次要信號214,亦即這些信號是由一個或多個邏輯閘加以驅動,因此可根據主要信號212及主要信號212與次要信號214間在電路200內的電路關係來加以產生。在某些實施例中,這些電路關係包括有該電路200中至少一部份的閘-電路拓撲。再者,該等電路關係可以包括有與該等邏輯閘210之一者相關的延遲。
再者,應注意到,邏輯閘210係配置成二個層級216,其中邏輯閘210-1及210-2是位在層級216-1,而邏輯閘210-3則是位在層級216-2。如下面將會進一步說明的,這些層級216定義出可用以評估邏輯閘210來決定出由主要信號212而來的次要信號214的次序。
在以電路模擬器對電路200(或電路200的一部份)做模擬的過程中,次要信號214對於主要信號212的依賴性可加以強化,以改善模擬的效能及/或減少電腦系統資源的使用。詳細地說,該等主要信號212及該等電路關係可以儲存於一檔案內,例如一外部檔案。例如說,該等主要信號212在一時段內的多個時間點的模擬數值可以儲存於該檔案內。由於此檔案比較小(因為未儲存該等次要信號214),因此僅會使用較少的記憶體,且只需有較少量的記憶體作業。這可縮減模擬的時間,該時間對於與開發具有該電路之積體電路有關的成本而言會有所影響。
在一範例性實施例中,該檔案大小可縮減3倍(相對於含有主要信號212及次要信號214在內的檔案而言),且模擬時間可縮減2.5倍(相對於主要信號212及次要信號214均輸出至該檔案的模擬作業而言)。
許多電路模擬器均包括有諸如整合式偵錯工具之類的特點。例如說,一編譯過的電路模擬器可包含有一偵錯工具或核心內的應用軟體。此偵錯工具可在另一時段內迫使一給定信號,例如主要信號212中之一者及/或次要信號214中之一者,等於一預定值或波形。一般而言,此時段的特徵是在於其中之與電路200有關之信號的額外關係上具有動態變化的暫時事件。例如說,一第一事件代表迫使諸如主要信號212-1成為具有一預定值(例如一固定值)的過渡轉變,而一第二事件則代表中止該迫使的動作。其他的事件可包括:將二個或多個信號(其等可以是主要信號212及/或次要信號214)成為互相相同及/或中止該一將信號設定成為互相相同的設定動作。因此,在該另一段時段內,其係由該等暫時事件中之二者所界定者,會有對於一個或多個信號的連續設定。
為能支撐此項功能,電路模擬器會將該等暫時事件之一者或多者的發生儲存於該檔案內。另外,該電路模擬器也會儲存信號(其等可以是主要信號212及/或次要信號214)在該另一段時段內的一個或多個預定值或波形。
為能支撐使用者之請求電路200內的任意信號(例如說,在波形檢視、偵錯、及/或生成統計資料的過程中),在模擬作業之後,該電路模擬器及/或其他的應用軟體(其等可以是個別的應用軟體或程式模組或另外的應用軟體中的副程式)可用以在該等額外關係中有所變化之時間(亦即該段時段)以外的時間點,根據儲存於該檔案內的該等主要信號212及該等電路關係中之一者或多者來產生該等次要信號214之一者或多者。另外,對於一被強迫的給定信號(亦即在該另外之時段內的時間),可以使用該預定值或波形。
因此,在某些實施例中,在該另一段時段中,該檔案內所儲存的主要信號212將不會被直接使用(如果該給定信號是該等主要信號212中之一者)或間接使用(例如用來決定該等次要信號214中之一者)。但是,在某些該另一時段內會對該給定信號做連續設定的實施例中,例如當該給定信號等於另一信號時,該等儲存起來的主要信號212中之一者將會被使用(如果該給定信號是等於該等儲存起來之主要信號212中之一者)。
在某些實施例中,產生該等次要信號214中之一者或多者的作業包括有使用優先佇列來評估該等電路關係。再者,該產生作業可藉由使用該電路200的閘網路層級化表徵(例如扁平閘電路),如層級216所標示者,而更有效率地進行。
應注意,由於該產生作業係依暫時事件而定(詳細地說,對於該給定信號而言,在該另一段時段內沒有產生作業),因此在該電路模擬器被編譯時及/或在模擬中,次要信號214通常是無法計算的。
在某些實施例中,電路200包含有較少量或額外的組件。再者,二個或多個組件可合併成一單一組件,及/或一個或多個組件的位置可以改變。
我們接下來要說明用來模擬該電路之方法的實施例。第3圖是一流程圖,顯示出一種用以模擬電路的方法300,其可由一電腦系統加以執行。在該模擬作業的第一模式期間,該電腦系統儲存主要信號及主要信號與次要信號間與該電路之一部份相關的電路關係於一檔案內(310),其中該等主要信號係與該電路的該部份的閘輸出無關,而該等次要信號則是由該電路的該部份內的閘來加以驅動。再者,在該模擬作業的第二模式期間,該電腦系統儲存該信號間的額外關係內的動態變化於該檔案內(312),其中該等信號可包括有主要信號、次要信號、或者二者。
在某些實施例中,該電腦系統可選擇性地在該等額外關係內有所變化時以外的時間點根據儲存於該檔案內的該等主要信號之一者或多者及該等電路關係而產生該等次要信號中之一者(314)。
應注意,在該方法300的某些實施例中,可能會有另外的或是較少量的作業。再者,該等作業的次序也可以變動,及/或二個或多個作業可以合併成單一作業。
我們接下來要說明用來模擬該電路的電腦系統。第4圖是一方塊圖,顯示出一電腦系統400。電腦系統400包含有:一個或多個處理器410、一通訊界面412、一使用者界面414、以及一個或多個將這些組件連接在一起的信號線422。應注意,該等一個或多個處理器410:可以支撐平行處理作業及/或多緒作業,該通訊界面412可以具有一持續性的通訊聯結,而該等一個或多個信號線422則能構成一通訊匯流排。再者,該使用者界面414可包括有:一顯示器416、一鍵盤418、及/或一指示器420,例如一滑鼠。
電腦系統400內的記憶體424可包含有揮發性記憶體及/或非發揮性記憶體。更詳細地說,記憶體424可包括有:ROM、RAM、EPROM、EEPROM、快閃記憶體、一個或多個智慧卡、一個或多個磁碟儲存裝置、一個或多個光學儲存裝置。記憶體424可儲存一作業系統426,其包含有處理多種用以進行硬體依賴性工作的基本系統服務的程序(或一組指令)。記憶體424亦可將程序(或一組指令)儲存於一通信模組428內。這些通信程序可用來與一個或多個電腦及/或伺服器進行通信,包括相對於電腦系統400而言是位於遠方處所的電腦及/或伺服器。
記憶體424亦可包含有多個程式模組(或一組指令),包括:重建模組430(或一組指令)、電路模擬模組432(或一組指令)、選擇性後處理模組446(或一組指令)、選擇性波形檢視器模組448(或一組指令)、及/或選擇性偵錯模組450(或一組指令)。再者,電路模擬模組432可包含有:模擬器模組434(或一組指令)及/或強迫模組436(或一組指令)。
模擬器模組434能進行一個或多個電路438(或這些電路的部份)的模擬,例如電路A 440-1或電路B 440-2。在這些模擬的過程中,模擬器模組434會將主要信號及與該等電路438之一者或多者相關的電路表徵輸出至一個或多個輸出檔案442。再者,如果在與該等電路438之一者或多者相關的主要信號及/或次要信號之間的一個或多個額外關係內有一個或多個動態變化時,例如藉由強迫模組436來強迫一信號,則此資訊亦可被儲存於該等一個或多個輸出檔案442內。
在一給定的模擬作業後,重建模組430會根據該等輸出檔案442之一者或多者內的資訊來產生與該等電路438之一者或多者相關的選擇性次要信號444。再者,該等輸出檔案442之一者或多者內的主要信號及/或該等選擇性次要信號444可由其他的應用軟體加以使用,例如:選擇性後處理模組446(用以收集與信號相關的統計資料)、選擇性波形檢視器模組448(用以檢視信號)、及/或選擇性偵錯模組450(用以對該等電路438之一者進行偵錯)。
該記憶體424內的各模組的指令可實施為:高階程序語言、物件導向程式語言、及/或組合或機器語言。應注意,該程式語言可以編譯或判讀,例如可規劃或規劃成能由一個或多個處理單元410加以執行。
雖然電腦系統400是顯示成具有多個個別物件,但第4圖僅係供對各種存在於電腦系統400內的特點做功能性的說明,而不是本文中所描述之實施例的結構性架構。實際上,而且是熟知此技藝者所可知曉的,電腦系統400的功能可分散於許多的伺服器或電腦內,而這些伺服器或電腦的各種群組則可執行這些功能中的特定子集。在某些實施例中,電腦系統400的這些功能的一部份或全部能以特殊應用積體電路(ASIC)、FPGA、及/或一個或多個數位信號處理器(DSP)來加以實施。
電腦系統400可包含有較少數量的組件,或是額外的組件。再者,二個或多個組件可合併成單一個組件,及/或一個或多個組件的位置是可以改變。在某些實施例中,電腦系統400的功能能較多地以硬體來實施而較少地以軟體加以實施,或是較少地以硬體來實施而較多地以軟體加以實施,如此技藝中所知悉的。
我們接下來要討論可應用於電腦系統400內的資料結構的實施例。第5圖是一方塊圖,顯示出一資料結構500。此資料結構可包含有輸出檔案510。一給定的輸出檔案,例如輸出檔案510-1,可包括有:一對應於輸出檔案510-1之入口的模擬512-1、一個或多個電路514-1(或是電路的部份)、做為一個或多個時段內之時間的函數的一個或多個主要信號516-1的數值、與該等額外關係內之動態變化相關並與一個或多個另外時段相關的選擇性事件518-1、在該等一個或多個時段內發生的一個或多個被強迫信號520-1、及/或可用以自該等一個或多個主要信號516-1中產生一個或多個次要信號的電路關係522-1(例如該等電路514-1之一者或多者的一部份內的閘-電路拓撲)。
應注意,在資料結構500的某些實施例中,可能會有較少數量,或是額外的組件。再者,二個或多個組件可合併成單一個組件,及/或一個或多個組件的位置是可以改變。
本發明的前述實施例的說明是僅供解釋及說明之目的而已。他們並非是本發明的全部或是要將本發明限制於本文所揭露的形式。因此,對於熟知此技藝的實施者而言,仍有許多的顯而易知變化及改變。另外,前述的說明內容並非要用以限制本發明。本發明的範圍應由下附的申請專利範圍來加以界定。
100...流程圖
110...產品概念
112...電子設計自動化軟體
114...系統設計
116...邏輯設計及功能驗證
118...組合及測試設計
120...網路表驗證
122...設計規劃
124...實體實施
126...分析及抽取
128...實體驗證
130...解析度增強
132...光罩資料製備
134...定案
136...製做
138...封裝及組裝程序
140...晶片
200...電路
210-1...邏輯閘
210-2...邏輯閘
210-3...邏輯閘
212-1...主要信號
212-2...主要信號
212-3...主要信號
212-4...主要信號
214-1...次要信號
214-2...次要信號
214-3...次要信號
216-1...層級
216-2...層級
300...方法
310...第一模式
312...第二模式
314...產生次要信號
400...電腦系統
410...處理器
412...通訊界面
414...使用者界面
416...顯示器
418...鍵盤
420...指示器
422...信號線
424...記憶體
426...作業系統
428...通信模組
430...重建模組
432...電路模擬模組
434...模擬器模組
436...強迫模組
438...電路
440-1...電路A
440-2...電路B
442...輸出檔案
444...次要信號
446...後處理模組
448...波形檢視器模組
450...偵錯模組
500...資料結構
510-1...輸出檔案
510-2...輸出檔案
512-1...模擬
514-1...電路
516-1...主要信號
518-1...事件
520-1...被強迫信號
522-1...電路關係
第1圖是一流程圖,顯示出根據本發明一實施例的一積體電路之設計與製造上的各種作業。
第2圖是一方塊圖,顯示出根據本發明一實施例的電路。
第3圖是一流程圖,顯示出一種根據本發明一實施例的用以模擬電路的方法。
第4圖是一方塊圖,顯示出根據本發明一實施例的一電腦系統。
第5圖是一方塊圖,顯示出根據本發明一實施例的一資料結構。
應注意,在所有的圖式中,相同的參考編號是代表相對應的零件。
300...方法
310...第一模式
312...第二模式
314...產生次要信號
Claims (21)
- 一種模擬電路的方法,包含有:在該模擬的第一模式期間,將與該電路之一部份相關聯的一組主要信號及該組主要信號與一組次要信號間之電路關儲存,其中該組主要信號係與該電路的該部份內的閘輸出無關,其中該組次要信號是由該電路的該部份內的閘加以驅動,且其中該儲存步驟不儲存該組次要信號;在該模擬的第二模式期間,將信號間的額外關係上的動態變化儲存於該檔案內,其中該等信號可包括主要信號、次要信號、或二者,且其中當要施加額外關係到一信號時,所儲存的動態變化指定一持續時間;以及以下列步驟決定在一時間例的次要信號值:根據所儲存之該等額外關係上的動態變化來決定是否要在該時間例施加額外關係到該次要信號,回應於決定在該時間例不施加額外關係到該次要信號,藉由根據所儲存之該組主要信號評估該儲存的電路關係來決定該次要信號值,以及回應於決定在該時間例施加額外關係到該次要信號,藉由評估該額外關係來決定該次要信號值。
- 如申請專利範圍第1項所述之方法,其中該等動態變化包含有指示出該等額外關係內之一暫時過渡轉變的事件。
- 如申請專利範圍第2項所述之方法,其中該等事件是與偵錯應用相關聯者。
- 如申請專利範圍第2項所述之方法,其中該等事件包含有強迫該等信號中至少一者具有一預定的波形。
- 如申請專利範圍第4項所述之方法,其中該預定的波形包含有一固定值。
- 如申請專利範圍第4項所述之方法,其中該等事件包含有中止強迫該等信號中至少一者具有一預定值。
- 如申請專利範圍第6項所述之方法,其中該預定的波形包含有一固定值。
- 如申請專利範圍第2項所述之方法,其中該等事件包含有設定該等信號成為彼此相同。
- 如申請專利範圍第8項所述之方法,其中該等事件包含有中止設定該等信號成為彼此相同。
- 如申請專利範圍第1項所述之方法,其中該次要信號是使用不同於用來進行該模擬的應用軟體來加以產生。
- 如申請專利範圍第1項所述之方法,其中該次要信號的產生包括有使用優先佇列來評估該等電路關係。
- 如申請專利範圍第1項所述之方法,其中該等電路關係包含有該電路的該部份內的閘-電路拓撲。
- 如申請專利範圍第12項所述之方法,其中該電路的該部份內的至少一閘具有一相關聯延遲。
- 如申請專利範圍第1項所述之方法,其中該第一模式有助於將該檔案的大小相對於包括有該組主要信號及該組次要信號之第二檔案的大小加以縮減。
- 如申請專利範圍第1項所述之方法,其中該模擬的該第一模式有助於以較該組主要信號及該組次要信號均儲存於該檔案內的模擬模式更為快速地進行模擬。
- 如申請專利範圍第1項所述之方法,其中該模擬包含有Verilog模擬。
- 如申請專利範圍第1項所述之方法,其中該模擬包含有超高速積體電路硬體描述語言(VHDL)中所指定的電路模擬。
- 如申請專利範圍第1項所述之方法,其中該電路的該部份包含有整個電路。
- 一種配合電腦系統使用的電腦程式產品,該電腦程式產品包含有一電腦可讀取儲存媒介及一內嵌的電腦程式機制,用以規劃該電腦系統來模擬一電路,該電腦程式機制包含有:指令,用以將與該電路之一部份相關聯的一組主要信號及該組主要信號與一組次要信號間之電路關係儲存,其中該主要信號係與該電路的該部份內的閘輸出無關,其中組等次要信號是由該電路的該部份內的閘加以驅動,且其中該儲存步驟不儲存該組次要信號;以及指令,用以在該模擬的第二模式期間,將信號間的額外關係上的動態變化儲存於該檔案內,其中該等信號可包括主要信號、次要信號、或二者,且其中當要施加額外關係到一信號時,所儲存的動態變化指定一持續時間;以及指令,用以以下列步驟決定在一時間例的次要信號值: 根據所儲存之該等額外關係上的動態變化來決定是否要在該時間例施加額外關係到該次要信號,回應於決定在該時間例不施加額外關係到該次要信號,藉由根據所儲存之該組主要信號評估該儲存的電路關係來決定該次要信號值,以及回應於決定在該時間例施加額外關係到該次要信號,藉由評估該額外關係來決定該次要信號值。
- 一種積體電路,係規劃來模擬一電路,包含有:在該模擬的第一模式期間,該積體電路係規劃成將與該電路之一部份相關聯的一組主要信號及該組主要信號與一組次要信號間之電路關係儲存,其中該組主要信號係與該電路的該部份內的閘輸出無關,其中該組次要信號則是由該電路的該部份內的閘加以驅動,且其中該儲存步驟不儲存該組次要信號;以及在該模擬的第二模式期間,該積體電路係規劃成將信號間的額外關係上的動態變化儲存於該檔案內,其中該等信號可包括主要信號、次要信號、或二者,且其中當要施加額外關係到一信號時,所儲存的動態變化指定一持續時間;以及其中該積體電路係進一步規劃成以下列步驟決定在一時間例的次要信號值:根據所儲存之該等額外關係上的動態變化來決定是否要在該時間例施加額外關係到該次要信號,回應於決定在該時間例不施加額外關係到該次要信 號,藉由根據所儲存之該組主要信號評估該儲存的電路關係來決定該次要信號值,以及回應於決定在該時間例施加額外關係到該次要信號,藉由評估該額外關係來決定該次要信號值。
- 一種電腦系統,包含有:一處理器;記憶體;以及一程式模組,其中該程式模組係儲存於該記憶體內,且係規劃成能由該處理器加以執行,以模擬一電路,該程式模組包含有:指令,用以將與該電路之一部份相關聯的一組主要信號及該組主要信號與一組次要信號間之電路關係儲存,其中該組主要信號係與該電路的該部份內的閘輸出無關,其中該組次要信號是由該電路的該部份內的閘加以驅動,且其中該儲存步驟不儲存該組次要信號;以及指令,用以在該模擬的第二模式期間,將信號間的額外關係上的動態變化儲存於該檔案內,其中該等信號可包括主要信號、次要信號、或二者,且其中當要施加額外關係到一信號時,所儲存的動態變化指定一持續時間;以及指令,用以以下列步驟決定在一時間例的次要信號值:根據所儲存之該等額外關係上的動態變化來決定 是否要在該時間例施加額外關係到該次要信號,回應於決定在該時間例不施加額外關係到該次要信號,藉由根據所儲存之該組主要信號評估該儲存的電路關係來決定該次要信號值,以及回應於決定在該時間例施加額外關係到該次要信號,藉由評估該額外關係來決定該次要信號值。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/060,984 US8706467B2 (en) | 2008-04-02 | 2008-04-02 | Compact circuit-simulation output |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201003444A TW201003444A (en) | 2010-01-16 |
| TWI474203B true TWI474203B (zh) | 2015-02-21 |
Family
ID=40942428
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW98107705A TWI474203B (zh) | 2008-04-02 | 2009-03-10 | 模擬電路的方法、積體電路、電腦系統及電腦程式產品 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8706467B2 (zh) |
| CN (1) | CN101689216B (zh) |
| TW (1) | TWI474203B (zh) |
| WO (1) | WO2009123828A2 (zh) |
Families Citing this family (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8024168B2 (en) * | 2008-06-13 | 2011-09-20 | International Business Machines Corporation | Detecting X state transitions and storing compressed debug information |
| CN102270262A (zh) * | 2011-08-23 | 2011-12-07 | 复旦大学 | 集成电路仿真模拟波形压缩和解压缩方法及装置 |
| US9286424B1 (en) * | 2015-05-04 | 2016-03-15 | Synopsys, Inc. | Efficient waveform generation for emulation |
| US9852244B2 (en) * | 2015-05-04 | 2017-12-26 | Synopsys, Inc. | Efficient waveform generation for emulation |
| US10120965B2 (en) * | 2015-09-30 | 2018-11-06 | Synopsys, Inc. | Waveform based reconstruction for emulation |
| US9684746B2 (en) | 2015-10-13 | 2017-06-20 | Synopsys, Inc. | Signal reconstruction in sequential logic circuitry |
| CN116796672A (zh) | 2016-11-11 | 2023-09-22 | 美商新思科技有限公司 | 用于仿真的基于波形的重构 |
| CN116933699A (zh) * | 2022-04-08 | 2023-10-24 | 华为技术有限公司 | 用于生成和存储电路仿真过程中的波形数据的方法、电子设备和存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5378934A (en) * | 1990-09-12 | 1995-01-03 | Hitachi, Ltd. | Circuit having a master-and-slave and a by-pass |
| TW464828B (en) * | 1996-10-17 | 2001-11-21 | Quickturn Design Systems Inc | Method and apparatus for design verification using emulation and simulation |
| US6493659B1 (en) * | 1998-05-29 | 2002-12-10 | Nec Corporation | Power consumption calculating apparatus and method of the same |
| US20030204828A1 (en) * | 1999-11-19 | 2003-10-30 | Matsushita Electric Industrial Co., Ltd. | Method for calculation of cell delay time and method for layout optimization of semiconductor integrated circuit |
| US20060004557A1 (en) * | 2004-07-01 | 2006-01-05 | Synopsys, Inc. | System and method for reducing size of simulation value change files |
| TWI261160B (en) * | 2003-10-09 | 2006-09-01 | Ip First Llc | Method and apparatus for fine tuning clock signals of an integrated circuit |
Family Cites Families (33)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US2859962A (en) * | 1955-04-15 | 1958-11-11 | Honeywell Regulator Co | Capstan for electrostatic tape drives |
| JPS63145549A (ja) * | 1986-12-09 | 1988-06-17 | Hitachi Ltd | 論理回路シミユレ−シヨン方法 |
| EP0445454B1 (en) * | 1990-03-08 | 1997-06-18 | International Business Machines Corporation | Hardware simulator |
| US5023486A (en) * | 1990-03-30 | 1991-06-11 | Atmel Corporation | Logic output control circuit for a latch |
| JP2788820B2 (ja) * | 1991-08-30 | 1998-08-20 | 三菱電機株式会社 | シミュレーション装置 |
| JP2763985B2 (ja) * | 1992-04-27 | 1998-06-11 | 三菱電機株式会社 | 論理シミュレーション装置 |
| US5953519A (en) * | 1995-06-12 | 1999-09-14 | Fura; David A. | Method and system for generating electronic hardware simulation models |
| GB2303230B (en) * | 1995-07-13 | 1998-08-12 | Advanced Risc Mach Ltd | Digital circuit simulation |
| US5905883A (en) * | 1996-04-15 | 1999-05-18 | Sun Microsystems, Inc. | Verification system for circuit simulator |
| US6389379B1 (en) * | 1997-05-02 | 2002-05-14 | Axis Systems, Inc. | Converification system and method |
| US6031386A (en) * | 1997-10-31 | 2000-02-29 | Sandia Corporation | Apparatus and method for defect testing of integrated circuits |
| US6212665B1 (en) * | 1998-03-27 | 2001-04-03 | Synopsys, Inc. | Efficient power analysis method for logic cells with many output switchings |
| JP2000029920A (ja) * | 1998-07-13 | 2000-01-28 | Mitsubishi Electric Corp | シミュレーション装置、シミュレーション方法およびシミュレーションプログラムを記録した媒体 |
| JP2000137798A (ja) * | 1998-11-04 | 2000-05-16 | Canon Inc | 画像入出力装置、画像入出力方法および画像処理システム |
| JP2000357183A (ja) * | 1999-06-16 | 2000-12-26 | Matsushita Electric Ind Co Ltd | 遅延ライブラリ表現方法、遅延ライブラリ生成方法、および遅延ライブラリを用いた遅延計算方法 |
| JP2001208803A (ja) * | 2000-01-24 | 2001-08-03 | Advantest Corp | 半導体集積回路の故障シミュレーション方法および故障シミュレータ |
| JP4174167B2 (ja) * | 2000-04-04 | 2008-10-29 | 株式会社アドバンテスト | 半導体集積回路の故障解析方法および故障解析装置 |
| US6985840B1 (en) * | 2000-07-31 | 2006-01-10 | Novas Software, Inc. | Circuit property verification system |
| US6539341B1 (en) * | 2000-11-06 | 2003-03-25 | 3Com Corporation | Method and apparatus for log information management and reporting |
| US6965606B2 (en) * | 2001-01-26 | 2005-11-15 | Exar Corporation | Method and apparatus for byte rotation |
| US6957403B2 (en) * | 2001-03-30 | 2005-10-18 | Syntest Technologies, Inc. | Computer-aided design system to automate scan synthesis at register-transfer level |
| JP2002318829A (ja) * | 2001-04-19 | 2002-10-31 | Matsushita Electric Ind Co Ltd | 回路シミュレーション方法および回路シミュレーション装置、ならびに、回路シミュレーションプログラムおよびそのプログラムを記録したコンピュータ読取可能な記録媒体 |
| US6653860B2 (en) * | 2001-08-10 | 2003-11-25 | Lattice Semiconductor Corporation | Enhanced macrocell module having expandable product term sharing capability for use in high density CPLD architectures |
| JP3803283B2 (ja) * | 2001-11-21 | 2006-08-02 | 株式会社半導体理工学研究センター | 集積回路のテストのための圧縮テストプランの生成、テスト系列生成およびテスト |
| US20030125918A1 (en) * | 2002-01-02 | 2003-07-03 | International Business Machines Corporation | VHDL technology library method for efficient customization of chip gate delays |
| US6650142B1 (en) * | 2002-08-13 | 2003-11-18 | Lattice Semiconductor Corporation | Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use |
| US20040260527A1 (en) * | 2003-06-19 | 2004-12-23 | Stanculescu Alexandru G. | Compact and effective representation of simulation results |
| US20040267489A1 (en) * | 2003-06-24 | 2004-12-30 | Frederic Reblewski | Data compaction and pin assignment |
| US7340700B2 (en) * | 2005-05-27 | 2008-03-04 | Lsi Logic Corporation | Method for abstraction of manufacturing test access and control ports to support automated RTL manufacturing test insertion flow for reusable modules |
| US7464354B2 (en) * | 2005-12-08 | 2008-12-09 | International Business Machines Corporation | Method and apparatus for performing temporal checking |
| US7925899B2 (en) * | 2005-12-29 | 2011-04-12 | Intel Corporation | Method, system, and apparatus for runtime power estimation |
| US7478346B2 (en) * | 2006-01-26 | 2009-01-13 | Springsoft Usa, Inc. | Debugging system for gate level IC designs |
| US8249471B2 (en) * | 2009-03-31 | 2012-08-21 | Brother Kogyo Kabushiki Kaisha | Image forming apparatus having waste toner detecting mechanism |
-
2008
- 2008-04-02 US US12/060,984 patent/US8706467B2/en active Active
-
2009
- 2009-03-09 CN CN2009800002413A patent/CN101689216B/zh active Active
- 2009-03-09 WO PCT/US2009/036495 patent/WO2009123828A2/en not_active Ceased
- 2009-03-10 TW TW98107705A patent/TWI474203B/zh active
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5378934A (en) * | 1990-09-12 | 1995-01-03 | Hitachi, Ltd. | Circuit having a master-and-slave and a by-pass |
| TW464828B (en) * | 1996-10-17 | 2001-11-21 | Quickturn Design Systems Inc | Method and apparatus for design verification using emulation and simulation |
| US6493659B1 (en) * | 1998-05-29 | 2002-12-10 | Nec Corporation | Power consumption calculating apparatus and method of the same |
| US20030204828A1 (en) * | 1999-11-19 | 2003-10-30 | Matsushita Electric Industrial Co., Ltd. | Method for calculation of cell delay time and method for layout optimization of semiconductor integrated circuit |
| TWI261160B (en) * | 2003-10-09 | 2006-09-01 | Ip First Llc | Method and apparatus for fine tuning clock signals of an integrated circuit |
| US20060004557A1 (en) * | 2004-07-01 | 2006-01-05 | Synopsys, Inc. | System and method for reducing size of simulation value change files |
Also Published As
| Publication number | Publication date |
|---|---|
| US8706467B2 (en) | 2014-04-22 |
| CN101689216B (zh) | 2013-09-18 |
| WO2009123828A3 (en) | 2009-11-26 |
| CN101689216A (zh) | 2010-03-31 |
| WO2009123828A2 (en) | 2009-10-08 |
| US20090254331A1 (en) | 2009-10-08 |
| TW201003444A (en) | 2010-01-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI474203B (zh) | 模擬電路的方法、積體電路、電腦系統及電腦程式產品 | |
| CN102782651B (zh) | 硬件设计的混合式并发及串行逻辑仿真 | |
| US6629293B2 (en) | Block based design methodology | |
| US8326592B2 (en) | Method and system for verifying electronic designs having software components | |
| JP4994393B2 (ja) | 単一のマスターモデルから異なる抽象化レベルの複数のモデルを生成するシステムと方法 | |
| US20250077752A1 (en) | Method to compute timing yield and yield bottleneck using correlated sample generation and efficient statistical simulation | |
| US10949589B2 (en) | Method for compression of emulation time line in presence of dynamic re-programming of clocks | |
| US11327790B1 (en) | Event-level parallel simulation using dynamic synchronization | |
| US10521528B2 (en) | Signal reconstruction in sequential logic circuitry | |
| US11200127B2 (en) | Automated self-check of a closed loop emulation replay | |
| Cheah et al. | Descriptor: A corpus of synthesizable Verilog RTL modules dataset for EDA research (CORE) | |
| US11475293B1 (en) | Learning-based toggle estimation | |
| Yeh et al. | Automatic constraint generation for guided random simulation | |
| Knödtel et al. | A Novel Methodology for Evaluating the Energy Consumption of IP Blocks in System-Level Designs | |
| Morgado et al. | Generating worst-case stimuli for accurate power grid analysis | |
| Karampatzakis et al. | A Design Flow for the Precise Identification of the Worst-Case Voltage Drop in Power Grid Analyses | |
| Wagner et al. | Verification of a Modern Processor |