TWI723219B - 加速閘層級模擬的方法與設備 - Google Patents
加速閘層級模擬的方法與設備 Download PDFInfo
- Publication number
- TWI723219B TWI723219B TW106131484A TW106131484A TWI723219B TW I723219 B TWI723219 B TW I723219B TW 106131484 A TW106131484 A TW 106131484A TW 106131484 A TW106131484 A TW 106131484A TW I723219 B TWI723219 B TW I723219B
- Authority
- TW
- Taiwan
- Prior art keywords
- gate
- level
- circuit design
- rtl
- values
- Prior art date
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000013461 design Methods 0.000 claims abstract description 105
- 238000013507 mapping Methods 0.000 claims abstract description 23
- 238000012546 transfer Methods 0.000 claims abstract description 13
- 238000012360 testing method Methods 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 14
- 230000009974 thixotropic effect Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 21
- 238000005516 engineering process Methods 0.000 description 8
- 230000006399 behavior Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012938 design process Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/331—Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Architecture (AREA)
- Software Systems (AREA)
Abstract
本發明實施例係關於一種方法,其包含:提供一電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;及基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計。
Description
本發明實施例係關於加速閘層級模擬的方法與設備。
積體電路(IC)技術之複雜性歸因於半導體處理製造技術之改良而不斷增加。涉及一單一電路上之許多元件(諸如一處理器、計時器、中斷控制器、匯流排、記憶體及/或嵌入式軟體)的完整系統單晶片(SoC)解決方案現可用於多種應用。一複雜SoC電路或處理器裝置之軟體開發、早期硬體架構探索及功能驗證係半導體工業所面臨之挑戰。在其中數百萬個或更多個電晶體可用來實施大的且複雜的SoC電路之32 nm或更小之處理製造技術(例如,先進技術節點)處,對此等複雜裝置進行功能驗證之挑戰呈指數增長。工業資料表明,全部項目資源之80%以上被分配給此等裝置之軟體開發及功能驗證。 一IC設計過程通常以描述待產生之一電路之行為或功能性的一軟體程式開始。此一軟體程式通常以定義待用有限實施方案細節執行之行為的程序程式設計語言(諸如C、C++、Verilog及VHDL)寫入。IC設計過程涉及各自需要一或多個中間步驟之複雜子過程。在此等中間步驟之各者,以不同層級之特異性表示IC設計。 一IC設計之較高層級描述之一者係一暫存器轉移層級(RTL)設計。在RTL設計中,變數及資料運算子表示IC組件,諸如IC之區段之暫存器及功能區塊。作為IC設計之一更一般高層級描述,RTL設計可容易跨不同IC設計過程技術映射。 IC設計之下一較低層級描述係一閘層級設計,在閘層級設計處,將IC定義為一組互連邏輯閘(諸如AND閘、OR閘)及記憶體組件(諸如正反器)。在以下論述中,在此層級之特異性的IC設計將稱為「接線對照表」。一接線對照表係在閘層級設計中對IC設計進行之比RTL設計中更特定之一定義。再者,閘層級設計通常為技術及程序特定的。因此,一般技術者可瞭解,以閘層級驗證/模擬一IC設計花費遠比RTL中更多的資源及時間來完成。然而,近來,工業中存在在進入晶片製造之一最後階段之前執行至少一個閘層級模擬之一增長的趨勢,此係因為閘層級模擬通常提供更為準確的結果,此有利地增加驗證IC設計之功率、效能、時序、面積估計等之可信度。
本發明實施例係關於一種用於對一電路設計執行一模擬之方法,其包括:提供該電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;及基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計。 本發明實施例係關於一種系統,其包括:一記憶體,其儲存電腦可執行指令;及一或多個硬體處理器,其等耦合至該記憶體且經組態以:提供一電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;及基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計。 本發明實施例係關於一種用於對一電路設計執行一模擬之方法,其包括:提供該電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;基於該等RTL至閘層級映射細節而將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計,以基於該電路設計之該閘層級模擬而產生一值改變轉儲檔案,其中該值改變轉儲檔案包含該閘層級接線對照表之各閘層級節點之觸變資訊;及基於該值改變轉儲檔案而估計該電路設計之功率消耗。
以下揭露描述用於實施標的物之不同特徵的各種例示性實施例。下文描述組件及配置之特定實例以簡化本揭露。當然,此等實例僅為實例且並不意欲為限制性的。例如,將瞭解,當將一元件稱為「連接至」或「耦合至」另一元件時,其可直接連接至或耦合至該另一元件,或可存在一或多個中介元件。 如上文提及,以閘層級模擬一IC設計通常比RTL中更準確但更為耗時/耗資源,此係因為在閘層級中,習知上需要一全尺寸模擬。例如,對一現代SoC電路執行一全尺寸閘層級模擬之時間可花費數天或高達數周來完成(例如,數百萬個至數十億個週期)。在一SoC電路之一全尺寸操作時期期間,SoC電路通常經歷複數個階段(例如,一初始化階段、一組態階段、一記憶體存取階段、一閒置階段、一中央處理單元(CPU)作業階段等),其中各階段消耗各自時間及功率以完成。一般而言,在估計SoC電路之總體效能(例如,功率消耗)時,總體效能係由一或多個階段(諸如(舉例而言) CPU作業階段、記憶體存取階段等)主導。 因此,本揭露提供用來對一IC設計執行一閘層級模擬以準確地估計該IC設計之一或多個效能特性,同時藉由分別利用SoC電路之RTL設計及閘層級設計之有利特性而避免需大量時間來完成模擬的方法與系統之各項實施例。不同於如上文論述之需要全尺寸模擬的習知閘層級模擬,所揭露之系統及方法容許在任何所要時段內對IC設計執行閘層級模擬,此極大地減少用於閘層級模擬之資源及時間量,同時提供僅可在閘層級模擬中提供之準確度。 圖1A及圖1B共同繪示根據一些實施例之用來藉由對一IC設計執行與習知閘層級模擬相比更快速之一閘層級模擬而估計該IC設計之功率消耗、最小所需面積及時序(在下文中稱為「IC設計之功率、面積及時序效能」)的一方法100之一例示性流程圖。應注意,方法100僅為一實例,且其並不意欲限制本揭露。因此,應瞭解,可在圖1A及圖1B之方法100之前、期間及之後提供額外操作,且本文中可僅簡要描述一些其他操作。在一些實施例中,IC設計可包含多種電路設計之任一者,諸如(舉例而言)一系統單晶片(SoC)電路設計、一特定應用積體電路(ASIC)設計、來自一半導體智慧產權核心/庫(IP核心/庫)之一電路設計等。 根據本揭露之一些實施例,方法100以操作102開始,其中提供一電路設計之一RTL描述。方法繼續至操作104,其中藉由合成RTL描述而提供電路之一對應閘層級接線對照表。方法100繼續至操作106,其中透過合成RTL描述而同時提供複數個RTL至閘層級(RtG)映射細節,如下文進一步詳細論述。方法100繼續至操作108,其中基於RTL描述而對電路設計執行一或多個測試台模擬。方法100繼續至操作110,其中提供基於RTL描述之一模擬結果。在一些實施例中,模擬結果係包含電路設計之全部操作階段的一全尺寸模擬結果。方法100繼續至操作112,其中指定一所要時段(例如,包含電路設計之一或多個主導操作階段)。方法100繼續至操作114,其中在指定時段之一開始時間擷取包含RTL描述之複數個內部操作值的一快照。方法100繼續至操作116,其中藉由使用RtG映射細節(由操作106提供)將RTL設計之經擷取內部操作值映射至閘層級接線對照表(由操作104提供)而作為閘層級操作值。方法100繼續至操作118,其中在指定時段之開始時間擷取包含測試台模擬之複數個輸入/輸出(I/O)變數的一快照。方法100繼續至操作120,其中藉由使用經擷取I/O變數及經映射閘層級操作值而在指定時段內基於閘層級接線對照表對電路設計執行一閘層級模擬。方法100繼續至操作122,其中基於閘層級模擬(操作120)之一結果而估計電路設計之功率、面積及時序效能。 方法100之操作可與一例示性電路設計在各個模擬階段處的所繪示實施例相關聯,如分別在圖2、圖3A、圖3B、圖4、圖5、圖6A、圖6B、圖7、圖8及圖9中展示。在一些實施例中,電路設計可包含一記憶體電路。記憶體電路可包含於一較大電路中,例如,一微處理器、一記憶體胞元及/或其他積體電路(IC)。再者,應注意,本文中描述之至少一些圖含有功能之符號或邏輯表示以有利於更佳理解本揭露之各種概念。 對應於操作102,圖2繪示根據一些實施例之一記憶體電路之一RTL描述200。如上文提及,一IC之一RTL描述包含藉由使用變數及資料運算子來表示IC之組件(例如,IC之暫存器及/或功能區塊)的IC之抽象行為描述。硬體描述語言(HDL) (例如,Verilog及/或VHDL)通常用來產生一IC之此一高層級表示。如圖2中展示,RTL描述200包含用來實施記憶體電路之五個描述區塊202、204、206、208及210。 在RTL描述200中,區塊202可被描述為一「4×4資料陣列」;區塊204可被描述為一「資料緩衝區」;區塊206可被描述為一「具有功能遮罩之輸出資料路徑」;區塊208可被描述為一「寫入項指標」;且區塊210可被描述為一「讀取項指標」。應注意,RTL描述200僅為經提供用於繪示目的之一實例。因此,為簡潔起見,簡要描述區塊202至210之各者之功能性(即,行為),且僅在圖2中展示且在下文重現區塊208及210 (即,寫入項指標及讀取項指標)之RTL描述。 在一些實施例中,4×4資料陣列(區塊202)包含配置成一4×4陣列(即,4行×4列)之十六個資料胞元(202-1、202-2、202-3、202-4、202-5、202-6、202-7、202-8、202-9、202-10、202-11、202-12、202-13、202-14、202-15及202-16),且該等資料胞元之各者經組態以邏輯地儲存一資料位元。資料緩衝區(區塊204)經組態以循序接收待寫入至4×4資料陣列202中之多批次資料位元。例如,各批次資料位元可包含四個資料位元,其中各資料位元經組態以寫入至4×4資料陣列202之一特定行之一列上的一各自資料胞元。具有功能遮罩之輸出資料路徑(區塊206)經組態以自4×4資料陣列202循序接收多批次讀取資料位元,且進一步對多批次讀取資料位元之各者提供一篩選功能。作為一非限制性實例,對於具有功能遮罩之輸出資料路徑206自4×4資料陣列202接收之每一批次讀取資料位元(例如,四個讀取資料位元),具有功能遮罩之輸出資料路徑206可將第二及第四讀取資料位元濾除為邏輯0。 寫入項指標(區塊208)經組態以基於一時脈訊號將在資料緩衝區204處接收之該批次資料位元循序寫入至4×4資料陣列202之一個選定行。下文重現寫入項指標208之RTL描述: WritePointer Function (wr_ptr) Initial wr_ptr = 0; When (WriteEnable & NotReset) { if (wr_ptr ==4) {wr_ptr = 0;} else {wr_ptr = wr_ptr+1;}} 在寫入項指標208之RTL描述中,變數「wr_ptr」可表示待寫入之選定行,且此一變數wr_ptr係在以下論述中將「擷取」且「映射」的各種上述內部操作值之一者;且變數「WriteEnable」可表示亦將「擷取」以供稍後使用的各種上述輸入/輸出(I/O)變數之一者。 更明確言之,在一些實施例中,上文提供的寫入項指標208之RTL描述係定義如何產生一位址指標(例如,wr_ptr)及該位址指標如何基於以計數器為基礎的邏輯一次遞增1的一程序之一高層級描述。應注意,寫入項指標208之上述RTL描述僅為經提供用於繪示之一實例。因此,寫入項指標208之上文提供的RTL描述簡要描述如下: a)「
WritePointer Function (wr_ptr)」經組態以引起寫入項指標208執行一類計數器程序以使各計數遞增,將此反映給待寫入的4×4資料陣列202之一選定行;b)「
Initial wr_ptr = 0」經組態以模仿一計數器事件之一初始狀態,其通常被設定為0;c)「
When (WriteEnable & NotReset) {}」係僅在滿足以下條件時執行「{ }」內之指令的一邏輯操作: i) 「WriteEnable」係一邏輯1且(ii)寫入項指標208未處於一重設狀態;及d)「
if (wr_ptr ==4) {wr_ptr=0;}」經組態以在「wr_ptr」已累積至一所要極限(例如,在此實例中為4)時執行if指令,且隨後將「wr_ptr」重設為0以再次從0開始計數。 讀取項指標(區塊210)經組態以基於驅動寫入項指標208之相同時脈訊號循序讀取儲存於4×4資料陣列202之一個選定行中的資料位元,以將經讀取資料位元提供至具有功能遮罩之輸出資料路徑206。下文重現讀取項指標210之RTL描述: ReadPointer Function (rd_ptr) Initial rd_ptr = 0; When (ReadEnable & NotReset) { if (rd_ptr ==4) {rd_ptr = 0;} else {rd_ptr = rd_ptr+1;}} 在讀取項指標210之RTL描述中,變數「rd_ptr」可表示待讀取之選定行,且此一變數rd_ptr係在以下論述中將「擷取」且「映射」的各種上述內部操作值之一者;變數「ReadEnable」可表示亦將「擷取」以供稍後使用的各種上述輸入/輸出(I/O)變數之一者。讀取項指標210之RTL描述實質上類似於如上文論述的寫入讀取指標208之RTL描述,因此,為簡潔起見,省略對讀取項指標210之論述。 對應於操作104,圖3A繪示根據一些實施例之基於記憶體電路之RTL描述200之合成的一例示性閘層級接線對照表300。一般而言,將一RTL描述轉譯成一閘層級接線對照表之一過程稱為「合成」。如上文提及,用來定義IC之一IC之一閘層級接線對照表包含一組互連邏輯閘(諸如AND閘、OR閘)及記憶體組件(諸如正反器)。一或多個工具可用來執行合成,該等工具諸如(舉例而言) Design Compiler (加利福尼亞州Mountain View之Synopsys)、Encounter RTL Compiler (加利福尼亞州聖荷西之Cadence Design Systems)。 在一些實施例中,基於RTL描述200之「行為」描述,RTL描述200可經合成(例如,經轉譯)以提供如圖3A中展示之閘層級接線對照表300。更特定言之,RTL描述200之各描述區塊202、204、206、208及210可合成為一各自記憶體陣列302或一邏輯電路304、306、308及310,其等各自包含電晶體/邏輯閘/正反器之一組合,如圖3B中展示。更明確言之,4×4資料陣列202可合成為記憶體陣列302;資料緩衝區204可合成為邏輯電路304;具有功能遮罩之輸出資料路徑206可合成為邏輯電路306;寫入項指標208可合成為邏輯電路308;且讀取項指標210可合成為邏輯電路310。 在一些實施例中,記憶體陣列302包含一記憶體位元胞元陣列:302-1、302-2、302-3、302-4、302-5、302-6、302-7、302-8、302-9、302-10、302-11、302-12、302-13、302-14、302-15及302-16,其中記憶體位元胞元302-1至302-16各自對應於4×4資料陣列202之一各自資料胞元。作為一代表性實例,圖3B中展示記憶體位元胞元302-1之一實施例。圖3B中的記憶體位元胞元302-1之所繪示實施例包含一6T (六電晶體)記憶體位元胞元,其中NMOS電晶體M1及M2用作記憶體位元胞元302-1之存取電晶體,PMOS電晶體M3及NMOS電晶體M4用作一第一反向器,PMOS電晶體M5及NMOS電晶體M6用作一第二反向器,且第一及第二反向器彼此交叉耦合。仍參考圖3B,邏輯電路304/306包含四個實質上類似正反器314 (例如,D正反器、SR正反器、T正反器、JK正反器等);且邏輯電路308/310包含邏輯閘318 (例如,AND閘、OR閘、NAND閘、NOR閘等)及正反器320 (例如,D正反器、SR正反器、T正反器、JK正反器等)之一或多個組合。又,應瞭解,圖3A及圖3B之電路僅為經提供用於繪示本揭露之各種概念及特徵之目的之代表性實例。 更特定言之,在RTL描述200 (圖2)中,4×4資料陣列202、資料緩衝區204、具有功能遮罩之輸出資料路徑206、寫入項指標208及讀取項指標210經定義以執行關於彼此之各自功能性,如上文提及。因而,閘層級接線對照表300可使記憶體陣列302及邏輯電路304至310相對於彼此互連,以因此執行各自功能性。 例如,邏輯電路304 (RTL描述200中之資料緩衝區204)之各正反器耦合至部署於記憶體陣列302之四個各自行中的四個記憶體位元胞元,且邏輯電路308 (RTL描述200中之寫入項指標208)耦合至記憶體陣列302,以容許根據邏輯電路308所選擇之行而將在邏輯電路304之各正反器之輸入端處接收的資料位元提供至四個記憶體位元胞元之一者。再者,邏輯電路306 (RTL描述200中之具有功能遮罩之輸出資料路徑206)之各正反器耦合至部署於記憶體陣列302之四個各自行中的四個記憶體位元胞元,且邏輯電路310 (RTL描述200中之讀取項指標210)耦合至記憶體陣列302,以容許根據邏輯電路310所選擇之行而在邏輯電路306之一各自正反器之輸入端處接收自四個記憶體位元胞元之一者讀取的資料位元。此外,如上文提及,具有功能遮罩之輸出資料路徑206 (圖2)經組態以將第二及第四讀取資料位元濾除為邏輯0。因此,在一些實施例中,邏輯電路306之第二及第四正反器之輸入(即,D2
及D0
)可與一「功能0」相關,如圖3A中展示。因而,儘管邏輯電路306之第二及第四正反器接收自記憶體陣列302之第二及第四列上的記憶體位元胞元(例如,記憶體位元胞元302-5至302-8及302-13至302-16)讀取之資料位元(其等可為邏輯1或0),然該邏輯電路之第二及第四正反器可仍將各自輸出(即,Q2
及Q0
)提供為邏輯0。 對應於操作106,在一些實施例中,在合成閘層級接線對照表300之後,可容易得到橋接RLT描述200及閘層級接線對照表300之複數個RTL至閘層級(RtG)映射細節。例如,圖4象徵性地繪示根據一些實施例,RtG映射細節之各者如何將RTL描述200之一變數轉譯成閘層級接線對照表300之一各自(閘層級)節點。 更明確言之,根據一些實施例,如下論述例示性RtG映射細節。分別象徵性地展示為「205」及「207」的資料緩衝區204之複數個輸入及輸出變數分別對應於邏輯電路304之正反器(例如,314)之輸入節點「305」及輸出節點「307」。儲存於4×4資料陣列202之各資料胞元中的一資料位元(未展示)對應於儲存於記憶體陣列302之對應記憶體位元胞元中的一資料位元(未展示)。作為一代表性實例,儲存於資料胞元202-1中之資料位元對應於儲存於記憶體位元胞元302-1中之資料位元。更明確言之,在其中記憶體位元胞元302-1實施為6T位元胞元(圖3B)之實例中,儲存於記憶體位元胞元302-1中之資料位元可對應於節點「X」,如圖3B中展示。 仍參考圖4,象徵性地展示為「209」的4×4資料陣列202之複數個輸出變數對應於記憶體胞元陣列302之輸出節點「309」。由於4×4資料陣列202之輸出亦耦合至具有功能遮罩之輸出資料路徑206,故記憶體胞元陣列302之此等輸出節點309亦相當於邏輯電路306之正反器(例如,314)之輸入節點。象徵性地展示為「211」的具有功能遮罩之輸出資料路徑206之複數個輸出變數對應於邏輯電路306之正反器(例如,314)之輸出節點311。寫入項指標208之變數「wr_ptr」對應於邏輯電路308之輸出節點313,而讀取項指標210之變數「rd_ptr」對應於邏輯電路310之輸出節點315,如圖4中展示。 對應於操作108,圖5象徵性地繪示根據一些實施例,如何模擬RTL描述200以提供一例示性測試台500。如本文中使用之術語「測試台」指代經組態以驗證一電路設計或模型(諸如(舉例而言)記憶體電路之RTL描述200)之正確性或可靠性的一虛擬環境。因此,為清楚起見,在下文中將測試台500稱為「測試台環境(TBE) 500」。 如圖5中展示,在一些實施例中,TBE 500包含三個功能區塊:一第一區塊502,其經組態以提供一時脈訊號502-1、一晶片啟用訊號502-2及一重設訊號502-3以驅動RTL描述200之一模擬操作;一第二區塊504,其經組態以將一寫入啟用訊號504-1提供至寫入項指標208以啟用一或多個寫入操作,將一資料陣列訊號504-2提供至資料緩衝區204,且將一讀取啟用訊號504-3提供至讀取項指標210以啟用一或多個讀取操作;及一第三區塊506,其經組態以藉由比較由具有功能遮罩之輸出資料路徑206提供之輸出訊號206-1與一預定訊號506-1而監測該輸出訊號206-1,以判定或驗證RTL描述200之模擬操作是否「如預期」。 類似於RTL描述200,在一些實施例中,可藉由通常以程序程式設計語言(諸如C、C++、Verilog及VHDL)寫入以定義各自功能區塊502、504及506的一軟體程式來實施TBE 500。因此,分別由功能區塊502、504及506提供或接收之訊號(例如,502-1、502-2、502-3、504-1、504-2、504-3、506-1等)可各自被描述為一輸入/輸出(I/O)變數(在下文中,「I/O變數」)。 在一些實施例中,TBE 500中的一些此等I/O變數可用作用於驅動RTL描述200之「刺激」。換言之,藉由將RTL描述200部署於TBE 500中且將I/O變數(例如,502-1、502-2、502-3、504-1、504-2、504-3、506-1等)應用於RTL描述200,可得模擬RTL描述200之操作的一測試台結果,此將在下文關於圖6A及圖6B論述。 如上文提及,TBE 500之功能區塊506經組態以監測由具有功能遮罩之輸出資料路徑206提供之輸出訊號206-1,以判定或驗證RTL描述200之模擬操作是否如預期。在一些實施例中,在執行測試台模擬之前,功能區塊506可經程式化(例如,以Verilog寫入)以與功能區塊504對應。更明確言之,功能區塊504將資料陣列訊號504-2提供至RTL描述200。在RTL描述200處理資料陣列訊號504-2之後,功能區塊506經組態以根據資料陣列訊號504-2及RTL描述200之操作而接收如預期之輸出訊號206-1作為預定訊號506-1。若輸出訊號206-1並非如預期(即,不等於訊號506-1),則在一些實施例中,TBE 500可升起一警報旗標。若輸出訊號206-1如預期(即,等於訊號506-1),則TBE 500可將RTL描述200辨識為一「合格」設計。在一些實施例中,資料陣列訊號504-2包含四個子訊號504-20、504-21、504-22、504-23 (以虛線箭頭展示),其等各自表示待寫入至沿4×4資料陣列202之一對應列的資源胞元之一資料位元,且輸出訊號206-1包含四個子訊號206-10、206-11、206-12及206-13 (以虛線箭頭展示),其等各自表示待自沿4×4資料陣列202之一對應列的資源胞元讀出且進一步藉由具有功能遮罩之輸出資料路徑206篩選的一資料位元,此兩者將在下文進一步詳細論述。 對應於操作110,圖6A繪示根據一些實施例之I/O變數502-1、502-2、502-3、504-1、504-2、504-3、506-1之例示性波形,且圖6B繪示根據一些實施例之在對RTL描述200執行之一全尺寸測試台模擬期間的一些特定時間之RTL描述200之一些例示性內部操作值。如上文提及,術語「全尺寸模擬」指代包含對應電路設計之全部操作階段的此一模擬。儘管圖6A之所繪示實施例包含10個循環(即,自時間「t0」至時間「t9」)以完成對RTL描述200之一全尺寸測試台模擬,然應注意,此僅為用於繪示目的之一實例。換言之,對RTL描述200之全尺寸測試台模擬可包含任何所要數目個週期。此外,在一些替代實施例中,可存在於操作110 (圖1)之對RTL描述200的此一測試台模擬中模擬之全部操作階段之一小部分,即,一非全尺寸測試台模擬。 再次參考圖6A,I/O變數502-1、502-2、502-3、504-1、504-2、504-3、506-1之各波形隨時間在一邏輯1 (在下文中,「HIGH」)與一邏輯0 (在下文中,「LOW」)之間振盪。如上文提及,資料陣列訊號504-2包含四個子訊號504-20、504-21、504-22、504-23,其等各自表示待寫入至沿4×4資料陣列202 (圖5)之一對應列的資源胞元之一資料位元。亦應注意,輸出訊號506-1包含四個子訊號506-10、506-11、506-12、506-13,其等各自表示待與自沿4×4資料陣列202之一對應列的資源胞元讀取之一資料位元(例如,206-10、206-11、206-12或206-13)進行比較且進一步藉由具有功能遮罩之輸出資料路徑206 (圖5)濾除的一資料位元。 例如,子訊號504-20表示應分別循序寫入至資料胞元202-13、202-14、202-15及202-16之資料位元;子訊號504-21表示應分別循序寫入至資料胞元202-9、202-10、202-11及202-11之資料位元;子訊號504-22表示應分別循序寫入至資料胞元202-5、202-6、202-7及202-8之資料位元;且子訊號504-23表示應分別循序寫入至資料胞元202-1、202-2、202-3及202-4之資料位元。類似地,子訊號506-10表示應分別與自資料胞元202-16、202-15、202-14及202-13循序讀取之資料位元進行比較的資料位元;子訊號506-11表示應分別與自資料胞元202-12、202-11、202-10及202-9循序讀取之資料位元進行比較的資料位元;子訊號506-12表示應分別與自資料胞元202-8、202-7、202-6及202-5循序讀取之資料位元進行比較的資料位元;且子訊號506-13表示應分別與自資料胞元202-4、202-3、202-2及202-1循序讀取之資料位元進行比較的資料位元。 在一些實施例中,由TBE 500執行之全尺寸測試台模擬在時間t0開始。在時間t0之前,TBE 500確證晶片啟用訊號502-2及重設訊號502-3為HIGH,以啟用RTL描述200之記憶體電路之操作。亦在時間t0之前,TBE 500將一第一批次資料位元(504-20至504-23)提供至資料緩衝區204。如圖6A中展示,在時間t0之前,資料位元504-20至504-23分別自邏輯0轉變為邏輯0、1、1、1。在時間t0之後,TBE 500確證寫入啟用訊號504-1為HIGH,以啟用寫入項指標208使得可將第一批次資料位元(504-20至504-23) (邏輯0、1、1、1)分別寫入至資料胞元202-16、202-12、202-8及202-4 (即,4×4資料陣列202之第一行)。類似地,在寫入啟用訊號504-1處於HIGH之情況下,在時間t1、t2及t3之後,可分別將第二批次、第三批次及第四批次資料位元(504-20至504-23)循序寫入至4×4資料陣列202之第二行(資料胞元202-15、202-11、202-7及202-3)、第三行(資料胞元202-14、202-10、202-6及202-2)以及第四行(資料胞元202-13、202-9、202-5及202-1)。為清楚起見,圖6A中亦繪示在時間t3與t4之間存在於4×4資料陣列202處之資料位元。 在一些實施例中,在時間t3與t4之間,TBE 500可判定可循序讀出存在於4×4資料陣列202處之資料位元,使得TBE 500確證讀取啟用訊號504-3為HIGH以啟用讀取項指標210。因而,可讀出寫入至4×4資料陣列202之資料位元。如上文提及,根據一些實施例,具有功能遮罩之輸出資料路徑206經組態以將經接收第二及第四位元濾除為邏輯0。基於RTL描述200之此等操作,在一些實施例中,在時間t5,TBE 500可預期自具有功能遮罩之輸出資料路徑206接收之一第一批次資料位元(即,儲存於4×4資料陣列202之第一行處的資料位元)為邏輯1010。因此,在時間t5,TBE 500可判定子訊號506-13、506-12、506-11及506-10為邏輯1010,如圖6A中展示。類似地,TBE 500在時間t6、t7及t8可分別判定子訊號506-13、506-12、506-11及506-10為邏輯1000、0010及1010。 參考圖6B,展示根據一些實施例之在RTL描述200正經歷一全尺寸測試台模擬時在時間t5、t6及t7之複數個例示性內部操作值(602、604、606、608及610)。為清楚起見,圖6B中僅展示全尺寸測試台模擬之一部分(即,在時間t5、t6及t7)。在一些實施例中,內部操作值602對應於寫入項指標208之變數「wr_ptr」,其指向或選擇待寫入的資料陣列200之一行;內部操作值604表示由資料緩衝區204提供之該批次資料位元;內部操作值606對應於讀取項指標210之變數「rd_ptr」,其指向或選擇待讀取的資料陣列202之一行;內部操作值608表示自4×4資料陣列202讀取且由具有功能遮罩之輸出資料路徑206接收之該批次資料位元;且內部操作值610表示由具有功能遮罩之輸出資料路徑206篩選之該批次資料位元。 仍參考圖6B且結合圖6A,在時間t5,寫入啟用訊號504-1被確證為LOW,使得內部操作值602可保持為LOW (邏輯00)。且由於由TBE 500提供之資料陣列訊號504-20至504-23處於LOW (邏輯0000),內部操作值604亦可處於LOW (邏輯0000)。另一方面,讀取啟用訊號504-3被確證為HIGH,使得內部操作值606可隨時間變化。例如,在時間t5,內部操作值606可對應於邏輯01,此引起讀取儲存於4×4資料陣列202之第二行處的資料位元。因此,內部操作值608可對應於邏輯1101 (儲存於4×4資料陣列202之第二行處的資料位元)。透過具有功能遮罩之輸出資料路徑206之篩選功能,內部操作值610可在一稍後時間(例如,時間t6)輸出為邏輯1000。因此,應注意,在時間t5,內部值610可反映最初自4×4資料陣列202之第一行讀出的經篩選資料位元(即,邏輯1110),且在由具有功能遮罩之輸出資料路徑206篩選之後,內部值610係邏輯1010。類似地,在時間t6,內部操作值602、604、606、608及610可分別為邏輯:00、0000、10 (以讀取4×4資料陣列202之第三行)、0011 (儲存於4×4資料陣列202之第三行處的資料位元)、1000 (最初自4×4資料陣列202之第二行讀出的經篩選資料位元)。且在時間t7,內部操作值602、604、606、608及610可分別為邏輯:00、0000、11 (以讀取4×4資料陣列202之第四行)、1011 (儲存於4×4資料陣列202之第四行處的資料位元)、0010 (最初自4×4資料陣列202之第三行讀出的經篩選資料位元)。 如上文提及,一IC之總體效能可由一或多個操作階段主導,且通常期望在此等特定操作階段之各者內對一閘層級接線對照表執行之一準確模擬結果提供IC之可靠效能估計。在基於上文描述之RTL描述200設計的記憶體電路之當前實例中,一使用者(例如,記憶體電路之一製造商、一廠商、一消費者等)可關注記憶體電路在一或多個指定時間(例如,t5至t8)期間之效能。習知閘層級(測試台)模擬需要對記憶體電路之閘層級接線對照表(即,圖3A/圖4之300)執行一全尺寸模擬(即,自時間t0至時間t9)。儘管例示性接線對照表300之閘層級節點(例如,305、307、309、311、313、315等)之一數目有限,然一般技術者瞭解,一現代SoC電路通常包含高達數百萬個此等閘層級節點,此使一對應閘層級模擬極其耗時/耗資源。然而,藉由指定一所要時段(例如,圖1A之操作112),本揭露之一些實施例使用上文論述的方法100之操作114、116及118 (圖1A及圖1B)以僅在指定時段(例如,t5至t8)執行一閘層級測試台模擬,此可極大地減少用來完成此閘層級測試台模擬之時間及/或資源量。下文將在上文圖2至圖6B中論述的記憶體電路之內容背景中進一步詳細論述操作114至118之各者。 對應於圖1之操作114,在操作112識別一指定時段(例如,自時間t5至t8) (其小於執行一全尺寸模擬所需之一時段)之後,在指定時段之開始時間(例如,時間t5)擷取包含RTL描述200之複數個內部操作值(包含儲存於4×4資料陣列202中之資料位元)的一快照。圖6B中象徵性地繪示此一快照。總言之,在時間t5,內部操作值602、604、606、608及610可分別為邏輯:00 (停用寫入操作)、0000、01 (以讀取4×4資料陣列202之第二行)、1101 (儲存於4×4資料陣列202之第二行處的資料位元)及1010 (自4×4資料陣列202之第一行讀出且由具有功能遮罩之輸出資料路徑206篩選的資料位元),且在圖6B中展示儲存於4×4資料陣列202中之資料位元。 隨後,對應於操作116,使用RtG映射細節(圖4)將經擷取內部操作值602、604、606、608、610及4×4資料陣列202中之資料位元各自映射至接線對照表300之對應閘層級節點。更明確言之,如圖7之閘層級接線對照表300中展示,經擷取內部操作值602 (例如,邏輯00)被映射至節點313;經擷取內部操作值604 (例如,邏輯0000)被映射至節點307;經擷取內部操作值606 (例如,邏輯01)被映射至節點315;經擷取內部操作值608 (例如,邏輯1101)被映射至節點309;經擷取內部操作值610 (例如,邏輯1010)被映射至節點311;且儲存於4×4資料陣列202中之資料位元各自被映射至記憶體陣列302之對應記憶體位元胞元(例如,302-1)。 隨後,對應於操作118,在指定時段之開始時間(例如,時間t5)擷取TBE 500 (對RTL描述200執行)之複數個I/O變數(502-1至502-3、504-1至504-3及506-1)。因而,TBE 500可經「客製化」以模擬從時間t5開始的閘層級接線對照表300。更明確言之,在時間t5,如圖8中展示,分別將I/O變數502-1、502-2、502-3、504-1、504-2 (504-20、504-21、504-22、504-23)、504-3及506-1 (506-10、506-11、506-12、506-13)擷取為邏輯:1、1、1、0、0000、1及0101。 在一些實施例中,藉由將具有經擷取內部操作值的閘層級接線對照表300 (圖7)部署至一客製化測試台環境(圖8)中,可實現僅在指定時段內對閘層級接線對照表300進行一閘層級測試台模擬。更明確言之,接著將該等經擷取I/O變數(現變為I/O值)用作刺激以從時間t5開始對具有經擷取內部操作值的閘層級接線對照表300 (圖7)執行一閘層級測試台模擬(圖1之操作120)。換言之,此一閘層級測試台模擬可在指定時段之開始時間(例如,在上文實例中,時間t5)由經擷取內部操作值及經擷取之I/O值初始化,連續地運行而未在指定時段之其他時間(例如,時間t6、t7或t8)擷取內部操作值及I/O變數,且藉由提供一結束指令而在指定時段結束時(例如,時間t8)停止。 各種閘層級邏輯模擬工具可用來執行此一閘層級測試台模擬,該等工具諸如(舉例而言) VCS (加利福尼亞州Mountain View之Synopsys)。因此,可在指定時段期間產生包含閘層級接線對照表300之各閘層級節點之觸變資訊的一或多個檔案(例如,一值改變轉儲(VCD)檔案)。藉由使用經產生VCD檔案,可藉由使用各種估計工具(操作122) (諸如(舉例而言) Power Compiler (加利福尼亞州Mountain View之Synopsys))而準確估計原始記憶體電路設計(自其產生閘層級接線對照表300)之一或多個效能特性(例如,功率消耗)。 圖9係根據一些實施例之一電腦系統900之一方塊圖。在一些實施例中,藉由圖9之一或多個電腦系統900來實現關於圖1至圖8描述的工具及/或引擎及/或系統及/或操作之一或多者。系統900包括經由一匯流排904或其他互連通信機構通信耦合之至少一個處理器901、一記憶體902、一網路介面(I/F) 906、一輸入/輸出(I/O)裝置908及一儲存器910。 在一些實施例中,記憶體902包括耦合至匯流排904以儲存待由處理器901執行之資料及/或指令的一隨機存取記憶體(RAM)及/或其他動態儲存裝置及/或唯讀記憶體(ROM)及/或其他靜態儲存裝置。記憶體902可進一步包含一使用者空間912、核心914、核心及/或使用者空間之部分,及其等之組件。在一些實施例中,記憶體902亦用於在執行待由處理器901執行之指令期間儲存暫時變數或其他中間資訊。在各項實施例中,記憶體902可裝納於一單一積體電路內或包括彼此可操作地耦合之複數個離散記憶體裝置。 在一些實施例中,一儲存裝置910 (諸如一磁碟或光碟)耦合至匯流排904以儲存資料及/或指令。I/O裝置908包括一輸入裝置、一輸出裝置及/或一組合輸入/輸出裝置以實現與系統900之使用者互動。一輸入裝置包括例如一鍵盤、小鍵盤、滑鼠、軌跡球、軌跡墊及/或遊標方向鍵以將資訊及命令傳遞至處理器901。一輸出裝置包括例如一顯示器、一印表機、一語音合成器等以將資訊傳遞至一使用者。 在一些實施例中,藉由處理器901來實現關於圖1至圖8描述的工具及/或引擎及/或系統之一或多個操作及/或功能性,該處理器901經程式化以執行此等操作及/或功能性。在一些實施例中,處理器901組態為特定組態硬體(例如,一或多個特定應用積體電路(ASIC))。根據各項實施例,處理器901可在一單一積體電路(IC)內實施或實施為多個通信耦合之IC及/或離散電路。應明白,處理器901可根據各種已知技術實施。在一項實施例中,處理器901包含可組態以例如藉由執行儲存於一相關聯記憶體中之指令而執行本文中描述之一或多個功能或程序的一或多個電路。在其他實施例中,處理器901可實施為經組態以執行本文中描述之一或多個功能或程序的韌體(例如,離散邏輯組件)。例如,根據各項實施例,處理器901可包含一或多個控制器、微處理器、微控制器、特定應用積體電路(ASIC)、數位訊號處理器、可程式化邏輯裝置、場可程式化閘陣列、或此等裝置或結構之任何組合、或其他已知裝置及結構,以執行本文中描述之功能。 記憶體902、介面906、儲存器910、I/O裝置908及匯流排904之一或多者可操作以接收指令、資料、設計約束、設計規則、接線對照表、佈局、模型及/或其他參數以供處理器901處理。 在一些實施例中,操作及/或功能性實現為儲存於一非暫時性電腦可讀記錄媒體中之一程式的功能。在至少一項實施例中,操作及/或功能性實現為儲存於記憶體902中之一程式(諸如一可執行指令集)之功能。在至少一項實施例中,一閘層級接線對照表(諸如接線對照表300 (圖3A))儲存於一非暫時性電腦可讀記錄媒體中以由如本文中描述之一或多個操作存取。一非暫時性電腦可讀記錄媒體之實例包含但不限於外部/可抽換及/或內部/內建儲存器或記憶體單元,例如,以下各者之一或多者:一光碟,諸如一DVD;一磁碟,諸如一硬碟;一半導體記憶體,諸如一ROM、一RAM、一記憶卡及類似者。 在一實施例中,一種用於對一電路設計執行一模擬之方法包含:提供該電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;及基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計。 在另一實施例中,一種系統包含:一記憶體,其儲存電腦可執行指令;及一或多個硬體處理器,其等耦合至該記憶體。該一或多個硬體處理器經組態以:提供一電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;及基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計。 在另一實施例中,一種用於對一電路設計執行一模擬之方法包含:提供該電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在一指定時段之一開始時間自該經模擬RTL描述擷取複數個內部操作值,其中該指定時段小於完成一全尺寸模擬所需之一時段;基於該等RTL至閘層級映射細節而將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以一閘層級模擬該電路設計,以基於該電路設計之該閘層級模擬而產生一值改變轉儲檔案,其中該值改變轉儲檔案包含該閘層級接線對照表之各閘層級節點之觸變資訊;及基於該值改變轉儲檔案而估計該電路設計之功率消耗。 前文概述若干實施例之特徵使得一般技術者可更佳理解本揭露之態樣。熟習此項技術者應明白,其等可容易將本揭露用作用於設計或修改其他製程及結構的一基礎以實行本文中介紹之實施例之相同目的及/或達成相同優點。熟習此項技術者亦應認知,此等等效構造並不脫離本揭露之精神及範疇,且其等可在不脫離本揭露之精神及範疇之情況下在本文中進行各種改變、置換及更改。
100‧‧‧方法102‧‧‧操作104‧‧‧操作106‧‧‧操作108‧‧‧操作110‧‧‧操作112‧‧‧操作114‧‧‧操作116‧‧‧操作118‧‧‧操作120‧‧‧操作122‧‧‧操作200‧‧‧暫存器轉移層級(RTL)描述202‧‧‧描述區塊/4×4資料陣列202-1至202-16‧‧‧資料胞元204‧‧‧描述區塊/資料緩衝區205‧‧‧輸入變數206‧‧‧描述區塊/具有功能遮罩之輸出資料路徑206-1‧‧‧輸出訊號206-10‧‧‧子訊號/資料位元206-11‧‧‧子訊號/資料位元206-12‧‧‧子訊號/資料位元206-13‧‧‧子訊號/資料位元207‧‧‧輸出變數208‧‧‧描述區塊/寫入項指標209‧‧‧輸出變數210‧‧‧描述區塊/讀取項指標211‧‧‧輸出變數300‧‧‧閘層級接線對照表302‧‧‧記憶體陣列/記憶體胞元陣列302-1至302-16‧‧‧記憶體位元胞元304‧‧‧邏輯電路305‧‧‧輸入節點306‧‧‧邏輯電路307‧‧‧輸出節點308‧‧‧邏輯電路309‧‧‧輸出節點310‧‧‧邏輯電路311‧‧‧輸出節點313‧‧‧輸出節點314‧‧‧正反器315‧‧‧輸出節點318‧‧‧邏輯閘320‧‧‧正反器500‧‧‧測試台/測試台環境(TBE)502‧‧‧第一區塊/功能區塊502-1‧‧‧時脈訊號/輸入/輸出(I/O)變數502-2‧‧‧晶片啟用訊號/輸入/輸出(I/O)變數502-3‧‧‧重設訊號/輸入/輸出(I/O)變數504‧‧‧第二區塊/功能區塊504-1‧‧‧寫入啟用訊號/輸入/輸出(I/O)變數504-2‧‧‧資料陣列訊號/輸入/輸出(I/O)變數504-20‧‧‧子訊號504-21‧‧‧子訊號504-22‧‧‧子訊號504-23‧‧‧子訊號504-3‧‧‧讀取啟用訊號/輸入/輸出(I/O)變數506‧‧‧第三區塊/功能區塊506-1‧‧‧預定訊號/輸出訊號/輸入/輸出(I/O)變數506-10‧‧‧子訊號506-11‧‧‧子訊號506-12‧‧‧子訊號506-13‧‧‧子訊號602‧‧‧內部操作值604‧‧‧內部操作值606‧‧‧內部操作值608‧‧‧內部操作值610‧‧‧內部操作值900‧‧‧電腦系統901‧‧‧處理器902‧‧‧記憶體904‧‧‧匯流排906‧‧‧網路介面(I/F)908‧‧‧輸入/輸出(I/O)裝置910‧‧‧儲存器/儲存裝置912‧‧‧使用者空間914‧‧‧核心M1‧‧‧NMOS電晶體M2‧‧‧NMOS電晶體M3‧‧‧PMOS電晶體M4‧‧‧NMOS電晶體M5‧‧‧PMOS電晶體M6‧‧‧NMOS電晶體X‧‧‧節點
在結合附圖閱讀時,自以下詳細描述最佳理解本揭露之態樣。應注意,各個構件不一定按比例繪製。事實上,為清楚論述,可任意地增大或減小各個構件之尺寸。 圖1A及圖1B繪示根據一些實施例之用來對一IC設計執行一閘層級模擬的一方法之一流程圖。 圖2繪示根據一些實施例之由圖1之方法提供的IC設計之一例示性暫存器轉移層級(RTL)描述。 圖3A繪示根據一些實施例之由圖1之方法提供的IC設計之一例示性閘層級接線對照表。 圖3B繪示根據一些實施例之圖3A的閘層級接線對照表之複數個例示性邏輯電路。 圖4繪示根據一些實施例之由圖1之方法提供的例示性RTL至閘層級(RtG)細節。 圖5繪示根據一些實施例之由圖1之方法提供的一例示性測試台環境(TBE)。 圖6A繪示根據一些實施例之於圖5之TBE中使用的複數個輸入/輸出(I/O)變數之例示性波形。 圖6B繪示根據一些實施例之於圖5之TBE中使用的複數個例示性內部操作值。 圖7繪示根據一些實施例之由圖1之方法提供的具有在一特定時間擷取且映射之內部操作值的一例示性閘層級接線對照表。 圖8繪示根據一些實施例之由圖1之方法提供的具有在一特定時間擷取之I/O變數的一例示性TBE。 圖9繪示根據一些實施例之用來執行圖1之方法的一電腦系統之一方塊圖。
100‧‧‧方法
102‧‧‧操作
104‧‧‧操作
106‧‧‧操作
108‧‧‧操作
110‧‧‧操作
112‧‧‧操作
114‧‧‧操作
Claims (10)
- 一種用於對一電路設計執行一模擬之方法,其包括:提供該電路設計之一暫存器轉移層級(RTL)描述;藉由將該RTL描述轉譯成一閘層級接線對照表而提供複數個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在用以完成該電路設計之至少一個操作階段之指定時段之開始時間自該經模擬RTL描述擷取多個內部操作值,其中該指定時段小於完成全尺寸模擬所需之時段,在該全尺寸模擬期間完成該電路設計之所有操作階段;將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取複數個I/O值;及基於該等經映射內部操作值及該等經擷取I/O值而在該指定時段內以閘層級模擬該電路設計。
- 如請求項1之方法,其進一步包括:基於該電路設計之該閘層級模擬產生值改變轉儲檔案,其中該值改變轉儲檔案包含該閘層級接線對照表之每一閘層級節點之觸變資訊。
- 如請求項1之方法,其中該RTL描述包含定義該電路設計之操作之多 個變數及運算子。
- 如請求項1之方法,其中該閘層級接線對照表包含基於該RTL描述彼此互連之多個邏輯閘及/或暫存器。
- 如請求項1之方法,其中該等經擷取內部操作值至該閘層級接線對照表之對應閘層級節點之該等映射包含使用該多個RTL至閘層級映射細節。
- 一種電路設計系統,其包括:記憶體,其儲存電腦可執行指令;以及一或多個硬體處理器,其耦合至該記憶體且經配置以:提供電路設計之暫存器轉移層級(RTL)描述;透過將該RTL描述轉譯成閘層級接線對照表而提供多個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在期間完成該電路設計之至少一個操作階段之指定時段之開始時間自經模擬RTL描述擷取多個內部操作值,其中該指定時段小於完成全尺寸模擬所需之時段,在該全尺寸模擬期間完成該電路設計之所有操作階段;將經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取多個I/O值;以及 基於經映射內部操作值及經擷取I/O值而在該指定時段內以閘層級模擬該電路設計。
- 如請求項6之電路設計系統,其中該一或多個硬體處理器進一步經配置以基於該電路設計之該閘層級模擬產生值改變轉儲檔案,該值改變轉儲檔案包含該閘層級接線對照表之每一閘層級節點之觸變資訊。
- 如請求項7之電路設計系統,其中該一或多個硬體處理器進一步經配置以基於該值改變轉儲檔案估計該電路設計之功率消耗。
- 一種用於對電路設計執行模擬之方法,其包括:提供該電路設計之暫存器轉移層級(RTL)描述;透過將該RTL描述轉譯成閘層級接線對照表而提供多個RTL至閘層級映射細節;提供一或多個輸入/輸出(I/O)變數作為刺激以模擬該電路設計之該RTL描述;在期間完成該電路設計之至少一個操作階段之指定時段之開始時間自經模擬RTL描述擷取多個內部操作值,其中該指定時段小於完成全尺寸模擬所需之時段,在該全尺寸模擬期間完成該電路設計之所有操作階段;基於該RTL至閘層級映射細節將該等經擷取內部操作值映射至該閘層級接線對照表之對應閘層級節點;在該指定時段之該開始時間自該等I/O變數擷取多個I/O值;基於該等經映射內部操作值及該等經擷取I/O值在該指定時段內以閘 層級模擬該電路設計,以基於該電路設計之該閘層級模擬產生值改變轉儲檔案,其中該值改變轉儲檔案包含該閘層級接線對照表之每一閘層級節點之觸變資訊;以及基於該值改變轉儲檔案估計該電路設計之功率消耗。
- 如請求項9之方法,其中該一或多個輸入/輸出I/O變數提供於測試台環境中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662433910P | 2016-12-14 | 2016-12-14 | |
US62/433,910 | 2016-12-14 | ||
US15/645,938 US10540462B2 (en) | 2016-12-14 | 2017-07-10 | Method and apparatus for speeding up gate-level simulation |
US15/645,938 | 2017-07-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201822039A TW201822039A (zh) | 2018-06-16 |
TWI723219B true TWI723219B (zh) | 2021-04-01 |
Family
ID=62489500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106131484A TWI723219B (zh) | 2016-12-14 | 2017-09-13 | 加速閘層級模擬的方法與設備 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10540462B2 (zh) |
CN (1) | CN108228957B (zh) |
TW (1) | TWI723219B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10853541B1 (en) * | 2019-04-30 | 2020-12-01 | Xilinx, Inc. | Data processing engine (DPE) array global mapping |
TWI740313B (zh) * | 2019-12-18 | 2021-09-21 | 新加坡商鴻運科股份有限公司 | 虛擬量測方法、裝置及電腦可讀存儲介質 |
US11347920B2 (en) * | 2020-10-21 | 2022-05-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Circuit synthesis optimization for implements on integrated circuit |
CN113688587B (zh) * | 2021-08-31 | 2024-03-22 | 上海商汤阡誓科技有限公司 | 一种电路布图的生成方法、装置、计算机设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160217239A1 (en) * | 2015-01-22 | 2016-07-28 | Synopsys, Inc. | Method and system for selecting stimulation signals for power estimation |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030195736A1 (en) * | 2002-04-11 | 2003-10-16 | Sun Microsystems, Inc. | Method of storing cross-hierarchy coupling data in a hierarchical circuit model |
US8781808B2 (en) * | 2005-10-10 | 2014-07-15 | Sei Yang Yang | Prediction-based distributed parallel simulation method |
US20090150136A1 (en) * | 2005-10-10 | 2009-06-11 | Sei Yang Yang | Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same |
CN101110092B (zh) * | 2007-08-31 | 2012-03-21 | 上海集成电路研发中心有限公司 | 高压mos晶体管电路仿真宏模型 |
US8117576B2 (en) * | 2008-03-05 | 2012-02-14 | Rambus Inc. | Method for using an equivalence checker to reduce verification effort in a system having analog blocks |
US8479128B2 (en) * | 2011-03-03 | 2013-07-02 | Synopsys, Inc. | Technique for honoring multi-cycle path semantics in RTL simulation |
AU2012379073B2 (en) * | 2012-04-30 | 2015-11-05 | Landmark Graphics Corporation | System and method for reservoir simulation using on-demand data |
US9038006B2 (en) * | 2013-04-30 | 2015-05-19 | Freescale Semiconductor, Inc. | Method and apparatus for generating gate-level activity data for use in clock gating efficiency analysis |
WO2014186803A1 (en) * | 2013-05-17 | 2014-11-20 | Cornell University | Automated layout for integrated circuits with nonstandard cells |
US9507883B2 (en) * | 2013-06-24 | 2016-11-29 | Altera Corporation | Method and apparatus for implementing a system-level design tool for design planning and architecture exploration |
US10445699B2 (en) * | 2014-01-30 | 2019-10-15 | Mentor Graphics Corporation | Social electronic design automation |
-
2017
- 2017-07-10 US US15/645,938 patent/US10540462B2/en active Active
- 2017-09-13 TW TW106131484A patent/TWI723219B/zh active
- 2017-10-23 CN CN201710992362.7A patent/CN108228957B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160217239A1 (en) * | 2015-01-22 | 2016-07-28 | Synopsys, Inc. | Method and system for selecting stimulation signals for power estimation |
Also Published As
Publication number | Publication date |
---|---|
US20180165394A1 (en) | 2018-06-14 |
CN108228957A (zh) | 2018-06-29 |
TW201822039A (zh) | 2018-06-16 |
US10540462B2 (en) | 2020-01-21 |
CN108228957B (zh) | 2023-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI723219B (zh) | 加速閘層級模擬的方法與設備 | |
US7472361B2 (en) | System and method for generating a plurality of models at different levels of abstraction from a single master model | |
US7730435B2 (en) | Automatic test component generation and inclusion into simulation testbench | |
US8234617B2 (en) | Method and system for re-using digital assertions in a mixed signal design | |
US8000950B2 (en) | Random initialization of latches in an integrated circuit design for simulation | |
US7561999B2 (en) | Verification apparatus, verification method, and program | |
WO2007066320A1 (en) | Conversion of circuit description to an abstract model of the circuit | |
TWI768536B (zh) | 積體電路模擬及設計方法與系統 | |
CN103116069A (zh) | 芯片频率的测试方法、装置及*** | |
US20130024178A1 (en) | Playback methodology for verification components | |
US7254793B2 (en) | Latch modeling technique for formal verification | |
CN107688694B (zh) | 使用多个选通点的单元感知缺陷表征和波形分析 | |
JP5034916B2 (ja) | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
TW201331775A (zh) | 用於硬體描述語言環境之全域時鐘處理常式物件 | |
WO2023207440A1 (zh) | 一种基于电路翻转行为的vcd矢量压缩方法及装置 | |
US5774380A (en) | State capture/reuse for verilog simulation of high gate count ASIC | |
US20120239368A1 (en) | Identifying Initial Don't Care Memory Elements for Simulation | |
US20220327269A1 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
US20040153301A1 (en) | Integrated circuit development methodology | |
KR101054706B1 (ko) | 넷리스트의 순차적 공통인자 기반의 분석을 위한 방법, 시스템 및 애플리케이션 | |
US6983437B2 (en) | Timing verification, automated multicycle generation and verification | |
US20190012418A1 (en) | Simulation program, method, and device | |
US8869080B2 (en) | Automatically identifying resettable flops for digital designs | |
JP2010257003A (ja) | 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体 |