TWI685064B - 電路設計方法及相關的電腦程式產品 - Google Patents
電路設計方法及相關的電腦程式產品 Download PDFInfo
- Publication number
- TWI685064B TWI685064B TW108107337A TW108107337A TWI685064B TW I685064 B TWI685064 B TW I685064B TW 108107337 A TW108107337 A TW 108107337A TW 108107337 A TW108107337 A TW 108107337A TW I685064 B TWI685064 B TW I685064B
- Authority
- TW
- Taiwan
- Prior art keywords
- circuit
- gate
- level netlist
- generate
- component
- Prior art date
Links
Images
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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/16—Equivalence checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本發明揭露一種電路設計方法,其包含有以下步驟:產生一門級網表;根據該門級網表以決定出一電路中的至少一個特定元件,其中該至少一個特定元件的輸出永遠是一個固定值;以及使用一箝位元件來替換該至少一個特定元件的功能,以產生一更新後門級網表。
Description
本發明係有關於電路設計方法。
在一般積體電路(Integrated Circuit,IC)的設計流程中,設計者先使用硬體描述語言(Hardware Description Language)對電路功能進行暫存器傳輸層級(Register Transfer Level,RTL)的設計,接著再交由邏輯合成工具,在考慮各種條件下,將設計轉換為實際半導體特定工藝(technology)的門級網表(gate-level netlist)。在此轉換過程中,邏輯合成工具會嘗試實現邏輯的最佳化,然而,由於積體電路設計日益龐大,現今的邏輯合成工具均非常複雜,在進行轉換時,需要設置多樣設定並進行反覆調校。使用者雖然可以多方嘗試,但均無法保證內部電路最佳化的程度。
因此,本發明的目的之一在於提供一種電路設計方法,其可以針對邏輯合成後所產生的門級網表再次進行最佳化,以解決先前技術的問題。
在本發明的一個實施例中,揭露了一種電路設計方法,其包含有以下步驟:產生一門級網表;根據該門級網表以決定出一電路中的至少一個特定元件,其中該至少一個特定元件的輸出永遠是一個固定值;以及使用一箝位元件來替換該至少一個特定元件的功能,以產生一更新後門級網表。
在本發明的另一個實施例中,揭露了一種用來進行電路設計的電腦程式產品,經由電腦載入該電腦程式產品以執行:根據一門級網表以決定出一電路中的至少一個特定元件,其中該至少一個特定元件的輸出永遠是一個固定值;以及使用一箝位元件來替換該至少一個特定元件的功能,以產生一更新後門級網表。
第1圖為根據本發明一實施例之電路設計方法的流程圖。在本實施例中,電路設計方法係由一電腦程式產品被一電腦/處理器載入之後,使用多個程式指令所執行,參考第1圖,電路設計方法的流程敘述如下。
首先,在步驟102,處理器根據一RTL設計以及多個限制條件(constraint)來進行邏輯合成(logic synthesis)操作以產生一門級網表,其中該些限制條件可以是時脈頻率、接腳功能…等等由工程師輸入的設定參數,且該門級網表為一種描述電路的檔案格式,其在邏輯上會符合RTL 設計。
接著,在步驟104,處理器對門級網表進行屬性生成設定。具體來說,在本實施例中屬性生成係為輸出永遠是一個固定值的元件(亦即,輸出永遠是“1”的元件以及輸出永遠是“0”的元件),而處理器可以在門級網表所描述的電路中所有元件的輸出加上足以偵測訊號變動的屬性。在積體電路領域中,屬性可以使用SystemVerilog語法中斷言(assertion)的方式來表達,但本發明並不限於此。
在步驟106,處理器使用正規方法(formal method)來判斷步驟104所產生的屬性在步驟102所產生之門級網表的電路中是否成立,亦即進行屬性驗證以決定出至少一個特定元件。具體來說,處理器使用正規方法來判斷電路中每一個元件的輸出訊號是否會變動,其中若是元件的輸出訊號會變動則表示驗證屬性成立,而若是元件的輸出訊號不會變動則表示驗證屬性不成立,因此,處理器可以收集屬性驗證不成立的元件來作為輸出永遠是一個固定值的特定元件。
需注意的是,正規方法為一電腦科學上的專有名詞,其核心為模型驗證(model-checking)或是屬性驗證(property-checking),且由於正規方法係奠基於嚴謹的數學證明,故具有很高的可靠度,因此可以準確地尋找出門級網表所描述之電路中輸出永遠是一個固定值的所有特定元件。此外,由於正規方法的詳細內容並非是本發明的重點,故相關細節在此不贅述。
在步驟108,在決定出電路中輸出永遠是一個固定值的所有特定元件之後,處理器將門級網表中加入箝位元件(tie cell)以代替特定元件的功能,亦即使用箝位元件的輸出來代替特定元件的輸出,其中箝位元件可以是最簡單具有固定值輸出的元件。舉例來說,如第2A圖所示,假設電路包含了一正反器210、一及閘220、一反相器230以及一正反器240,且在步驟106中處理器判斷了正反器210的輸出永遠是邏輯值“1”,則處理器可以修改門級網表中的描述以加入一輸出永遠是邏輯值“1”的箝位元件250來取代正反器210,亦即箝位元件250的輸出端會連接到原本正反器210後方的元件,而正反器210的輸出端則是會變成空接/浮接(floating)的狀態。在門級網表中所有的特定元件的輸出都被箝位元件替代之後,處理器便產生一個暫時的門級網表。
在步驟110,處理器反覆地搜尋暫時的門級網表中不具有功能的多餘元件,並將這些多餘元件自電路中移除,以產生一更新後門級網表。具體來說,依序參考第3A圖~第3C圖,處理器首先會偵測到正反器210的輸出是空接的狀態,亦即正反器210本身已經沒有作用而是一個多餘的元件,因此處理器便可以將正反器210自暫時的門級網表中移除;接著,在正反器210已經被移除之後(第3B圖),處理器會偵測到及閘220的輸出是空接的狀態,亦即及閘220本身已經沒有作用而是一個多餘的元件,因此處理器便可以將及閘220自暫時的門級網表中移除;接著,在及閘220已經被移除之後(第3C圖),處理器會偵測到反相器230以及正反器240的輸出是空接的狀態,亦即反相器230以及正反器240本身已經沒有作用而是多餘的元件,因此處理器便可以將反相器230以及正反器240自暫時的門級網表中移除。在暫時的門級網表中所有的多餘元件都移除之後,處理器便產生一個更新後門級網表。
在步驟112中,處理器可以採用正規方法來判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生一判斷結果。具體來說,處理器可以使用邏輯等價性檢查(Logic Equivalence Check,LEC)或是循序等價性檢查(Sequential Equivalence Check,SEC),並測試該門級網表以及該更新後門級網表在相同輸入的情形下是否會具有相同的輸出結果,並據以判斷該門級網表以及該更新後門級網表的電路功能是否相同。若是該判斷結果指出該門級網表以及該更新後門級網表的電路功能相同,則代表該更新後門級網表相較於步驟102所產生之該門級網表具有更精簡的架構,因此可以用來進行後續的實體電路佈局。
簡要歸納本發明,本發明的電路設計方法中,透過將門級網表中輸出永遠是固定值的特定元件替換為最簡單的箝位元件,並在完成箝位元件替換後反覆搜尋並刪除多餘的元件,可以在維持相同功能的情形下有效地精簡電路架構,以產生一個最佳化的門級網表。透過本發明,可以解決現有邏輯合成工具之最佳化能力不足、或是和RTL設計無法良好匹配的問題。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
102~112‧‧‧步驟
210、240‧‧‧正反器
220‧‧‧及閘
230‧‧‧反相器
250‧‧‧箝位元件
第1圖為根據本發明一實施例之電路設計方法的流程圖。
第2圖為使用箝位元件來替代電路中輸出永遠是固定值之特定元件的示意圖。
第3A~3C圖為決定出多餘元件並刪除的示意圖。
102~112‧‧‧步驟
Claims (10)
- 一種電路設計方法,包含有: 產生一門級網表(gate-level netlist); 根據該門級網表以決定出一電路中的至少一個特定元件,其中該至少一個特定元件的輸出永遠是一個固定值;以及 使用一箝位元件(tie cell)來替換該電路中的該至少一個特定元件的功能,以產生一更新後門級網表。
- 如申請專利範圍第1項所述之電路設計方法,其中使用該箝位元件來替換該電路中的該至少一個特定元件的功能,以產生該更新後門級網表的步驟包含有: 將該電路中的該至少一個特定元件替換為該箝位元件,並搜尋該電路中因為該至少一個特定元件被替換為該箝位元件後而不具有功能的至少一個多餘元件,並將該至少一個多餘元件自該電路中移除,以產生該更新後門級網表。
- 如申請專利範圍第2項所述之電路設計方法,其中搜尋該電路中因為該至少一個特定元件被替換為該箝位元件後而不具有功能的該至少一個多餘元件的步驟包含有: 搜尋該電路中輸出為空接的元件,以作為該至少一個多餘元件。
- 如申請專利範圍第1項所述之電路設計方法,另包含有: 判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生一判斷結果。
- 如申請專利範圍第4項所述之電路設計方法,其中判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生該判斷結果的步驟包含有: 使用循序等價性檢查(Sequential Equivalence Check,SEC) 判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生該判斷結果。
- 一種用來進行電路設計的電腦程式產品,經由電腦載入該電腦程式產品以執行: 根據一門級網表以決定出一電路中的至少一個特定元件,其中該至少一個特定元件的輸出永遠是一個固定值;以及 使用一箝位元件(tie cell)來替換該電路中的該至少一個特定元件的功能,以產生一更新後門級網表。
- 如申請專利範圍第6項所述之電腦程式產品,其使用該箝位元件來替換該電路中的該至少一個特定元件的功能,以產生該更新後門級網表的步驟包含有: 將該電路中的該至少一個特定元件替換為該箝位元件,並搜尋該電路中因為該至少一個特定元件被替換為該箝位元件後而不具有功能的至少一個多餘元件,並將該至少一個多餘元件自該電路中移除,以產生該更新後門級網表。
- 如申請專利範圍第7項所述之電腦程式產品,其中搜尋該電路中因為該至少一個特定元件被替換為該箝位元件後而不具有功能的該至少一個多餘元件的步驟包含有: 搜尋該電路中輸出為空接的元件,以作為該至少一個多餘元件。
- 如申請專利範圍第6項所述之電腦程式產品,另包含有: 判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生一判斷結果。
- 如申請專利範圍第9項所述之電腦程式產品,其中判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生該判斷結果的步驟包含有: 使用循序等價性檢查(Sequential Equivalence Check,SEC) 判斷該門級網表以及該更新後門級網表的電路功能是否相同,以產生該判斷結果。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW108107337A TWI685064B (zh) | 2019-03-06 | 2019-03-06 | 電路設計方法及相關的電腦程式產品 |
| US16/802,573 US20200285791A1 (en) | 2019-03-06 | 2020-02-27 | Circuit design method and associated computer program product |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW108107337A TWI685064B (zh) | 2019-03-06 | 2019-03-06 | 電路設計方法及相關的電腦程式產品 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI685064B true TWI685064B (zh) | 2020-02-11 |
| TW202034454A TW202034454A (zh) | 2020-09-16 |
Family
ID=70413509
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW108107337A TWI685064B (zh) | 2019-03-06 | 2019-03-06 | 電路設計方法及相關的電腦程式產品 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20200285791A1 (zh) |
| TW (1) | TWI685064B (zh) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI789198B (zh) * | 2022-01-04 | 2023-01-01 | 瑞昱半導體股份有限公司 | 掃描鏈設計與電路測試方法 |
| TWI801202B (zh) * | 2022-04-13 | 2023-05-01 | 瑞昱半導體股份有限公司 | 電路驗證方法 |
| CN114792079A (zh) * | 2022-04-22 | 2022-07-26 | 电子科技大学 | 一种门级网表转换为可综合硬件描述语言代码的方法 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1996023263A1 (en) * | 1995-01-25 | 1996-08-01 | Lsi Logic Corporation | Timing shell generation through netlist reduction |
| US20050228616A1 (en) * | 2004-04-09 | 2005-10-13 | Incentia Design Systems, Corp. | Method and system for providing fast design for testability prototyping in integrated circuit designs |
| US20090228855A1 (en) * | 2005-12-19 | 2009-09-10 | Juergen Dirks | Automation of tie cell insertion, optimization and replacement by scan flip-flops to increase fault coverage |
| US20090235222A1 (en) * | 2008-03-17 | 2009-09-17 | Xilinx, Inc. | Creating a standard cell circuit design from a programmable logic device circuit design |
| US20150331981A1 (en) * | 2014-05-16 | 2015-11-19 | Brian J. Mulvaney | Timing Verification of an Integrated Circuit |
-
2019
- 2019-03-06 TW TW108107337A patent/TWI685064B/zh active
-
2020
- 2020-02-27 US US16/802,573 patent/US20200285791A1/en not_active Abandoned
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1996023263A1 (en) * | 1995-01-25 | 1996-08-01 | Lsi Logic Corporation | Timing shell generation through netlist reduction |
| US20050228616A1 (en) * | 2004-04-09 | 2005-10-13 | Incentia Design Systems, Corp. | Method and system for providing fast design for testability prototyping in integrated circuit designs |
| US20090228855A1 (en) * | 2005-12-19 | 2009-09-10 | Juergen Dirks | Automation of tie cell insertion, optimization and replacement by scan flip-flops to increase fault coverage |
| US20120198407A1 (en) * | 2005-12-19 | 2012-08-02 | Juergen Dirks | Automation of tie cell insertion, optimization and replacement by scan flip-flops to increase fault coverage |
| US20090235222A1 (en) * | 2008-03-17 | 2009-09-17 | Xilinx, Inc. | Creating a standard cell circuit design from a programmable logic device circuit design |
| US20150331981A1 (en) * | 2014-05-16 | 2015-11-19 | Brian J. Mulvaney | Timing Verification of an Integrated Circuit |
Also Published As
| Publication number | Publication date |
|---|---|
| US20200285791A1 (en) | 2020-09-10 |
| TW202034454A (zh) | 2020-09-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10776547B1 (en) | Infinite-depth path-based analysis of operational timing for circuit design | |
| US6721924B2 (en) | Noise and power optimization in high performance circuits | |
| US7882483B2 (en) | Method for checking constraints equivalence of an integrated circuit design | |
| JP2015524589A (ja) | 相対タイミング特徴付け | |
| US9953120B2 (en) | Relative timing characterization | |
| US8719752B1 (en) | Hierarchical crosstalk noise analysis model generation | |
| TWI685064B (zh) | 電路設計方法及相關的電腦程式產品 | |
| US20080201671A1 (en) | Method for generating timing exceptions | |
| JP2009003669A (ja) | 半導体集積回路の電源変動検証装置及び方法並びにそのプログラム | |
| US20080059923A1 (en) | Lsi power consumption calculation method and calculation program | |
| US6964027B2 (en) | System and method for optimizing exceptions | |
| TWI467401B (zh) | 變更點搜尋方法及裝置 | |
| US12073159B2 (en) | Computing device and method for detecting clock domain crossing violation in design of memory device | |
| WO2023245719A1 (zh) | 时序逻辑元件性能检查方法及设备 | |
| US10460060B2 (en) | Checking equivalence between changes made in a circuit definition language and changes in post-synthesis nets | |
| US10867093B1 (en) | System and method for an electronic design tool providing automated guidance and interface for circuit design processing | |
| US20130205269A1 (en) | System and method for managing timing margin in a hierarchical integrated circuit design process | |
| CN111695321B (zh) | 电路设计方法及相关的电脑程序产品 | |
| US10430535B2 (en) | Verification support program medium, verification support method, and information processing device for verification of a circuit | |
| JP2008243092A (ja) | マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム | |
| Hamour et al. | Analog IP design flow for SoC applications | |
| US8959467B2 (en) | Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools | |
| Plassan et al. | Improving the efficiency of formal verification: the case of clock-domain crossings | |
| US11270052B2 (en) | System and method of timing characterization for semiconductor circuit | |
| US10726182B1 (en) | Operator aware finite state machine for circuit design simulation |