TWI718486B - 積體電路佈局設計方法 - Google Patents
積體電路佈局設計方法 Download PDFInfo
- Publication number
- TWI718486B TWI718486B TW108106924A TW108106924A TWI718486B TW I718486 B TWI718486 B TW I718486B TW 108106924 A TW108106924 A TW 108106924A TW 108106924 A TW108106924 A TW 108106924A TW I718486 B TWI718486 B TW I718486B
- Authority
- TW
- Taiwan
- Prior art keywords
- layout design
- integrated circuit
- stage
- circuit layout
- design method
- Prior art date
Links
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/39—Circuit design at the physical level
- G06F30/396—Clock trees
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- 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]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
本發明揭露了一種積體電路佈局設計方法,能夠減少一積體電路佈局設計流程之結果的電路面積與功率的消耗。該積體電路佈局設計流程包含一前段流程與一後段流程。該積體電路佈局設計方法包含下列步驟:依據初始時脈延遲設定執行該前段流程,以產生一初始網表;依據該初始網表執行該後段流程的至少一部分以得到更新時脈延遲設定;依據該更新時脈延遲設定執行該前段流程的至少一部分,以產生一更新網表;以及依據該更新網表執行該後段流程,以得到該積體電路佈局設計流程之結果。
Description
本發明是電路佈局設計方法,尤其是關於積體電路佈局設計方法。
一般的積體電路佈局設計流程包含一邏輯合成(synthesis)流程與一自動佈局繞線(automatic placement and routing, APR)流程。該邏輯合成流程依據一積體電路設計的硬體描述碼(hardware description language code, HDL code)產生一邏輯閘級的網表(netlist),接著該自動佈局繞線流程依據該網表產生電路的實體設計。然而,目前的邏輯合成流程未考慮一時脈根源(clock root)至一序向元件(sequential cell)的一時脈接腳的時脈樹(clock tree),也就是說該時脈根源至該序向元件的該時脈接腳的時脈延遲(clock latency)被視為零(例如當該序向元件為正反器時)或可能為一不準確的預設值(例如當該序向元件為一積體時脈閘控(integrated clock gating, ICG)元件或一靜態隨機存取記憶體(SRAM)電路時);因此,為了符合電路運作的時序要求,該邏輯合成流程的時序處理可能是過度限制的(over-constraint),從而該自動佈局繞線流程依據該網表所產生的實體設計的電路面積與功耗可能會超出所需。在製程微縮的趨勢下,電路面積與功耗均是本領域錙銖必較的項目,因此,目前的積體電路佈局設計流程仍有改善的餘地。
本發明的目的之一在於提供一種積體電路佈局設計方法,以改善先前技術。
本發明的目的之一在於提供一種積體電路佈局設計方法,以改善一積體電路佈局設計流程之結果。
本發明之積體電路佈局設計方法的一實施例能夠改善一積體電路佈局設計流程之結果的電路面積與功率的消耗,該積體電路佈局設計流程包含一前段流程與一後段流程,該實施例包含下列步驟:依據初始時脈延遲設定執行該前段流程,以產生一初始網表;依據該初始網表執行該後段流程的至少一部分,以得到更新時脈延遲設定;依據該更新時脈延遲設定執行該前段流程的至少一部分,以產生一更新網表;以及依據該更新網表執行該後段流程,以得到該積體電路佈局設計流程之結果。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
以下說明內容的用語是參照本技術領域的習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語的解釋是以本說明書的說明或定義為準。
本發明揭露了一種積體電路佈局設計方法,能夠改善一積體電路佈局設計流程之結果,以降低一積體電路(例如:處理器)的面積及生產成本,並降低該積體電路的漏電(leakage power)。該積體電路佈局設計流程包含一前段流程與一後段流程。該前段流程包含一邏輯合成(synthesis)流程,其可由一工具程式(例如:Synopsys的design compiler,或是Cadence的genus)來執行;該後段流程包含一自動佈局繞線(automatic placement and routing, APR)流程,其可由一工具程式(例如:Synopsys的ICC/ICC2,或是Cadence的Innovus)來執行。該邏輯合成流程依序包含一轉譯(translation)階段、一映射(mapping)階段、與一優化(optimization)階段;該自動佈局繞線流程依序包含一佈局與優化(Placement and Optimization)階段、一時序樹合成(Clock Tree Synthesis, CTS)階段、一時序樹合成後優化(Post-CTS Optimization)階段、一訊號繞線(Signal Routing)階段、與一繞線後優化(Post-Route Optimization)階段;該前段流程可能包含早於該邏輯合成流程的其它流程像是一模擬流程;該後段流程可能包含晚於該自動佈局繞線流程的其它流程像是一驗證流程。由於該前段流程及其中的每一階段與該後段流程及其中的每一階段均為已知,其細節在此省略。
圖1顯示本發明之積體電路佈局設計方法的一實施例,該實施例能夠改善前述積體電路佈局設計流程之結果的電路面積與功率的消耗。圖1之實施例包含下列步驟: 步驟S110:依據初始時脈延遲(clock latency)設定執行該前段流程,以產生一初始網表(netlist)。於一實作範例中,步驟S110依據一初始資料庫執行該前段流程,以產生一初始網表(netlist),並更新該初始資料庫而得到一第一更新資料庫,其中該初始資料庫包含初始時脈延遲(clock latency)設定。於一實作範例中,步驟S110執行該前段流程包含前述邏輯合成流程,以產生該初始網表。於步驟S110的一實作範例中,根據該初始時脈延遲設定,一時脈根源(clock root)與一序向元件(sequential cell)的一時脈接腳(clock pin)之間的時脈延遲等於一第一值;舉例而言,該第一值為零。於一實作範例中,該序向元件為一正反器(flip flop)、一積體時脈閘控(integrated clock gating, ICG)元件、一靜態隨機存取記憶體(SRAM)電路、或一包含記憶體儲存資料的邏輯電路(例如:計數器或閂鎖器)。 步驟S120:依據該初始網表執行該後段流程的至少一部分以得到更新時脈延遲設定。於一實作範例中,步驟S120依據該初始網表執行前述自動佈局繞線流程的至少一部分(例如:該佈局與優化階段、該時序樹合成階段、與該時序樹合成後優化階段如圖2之S222~S226所示;或者該佈局與優化階段、該時序樹合成階段、該時序樹合成後優化階段、該訊號繞線階段、與該繞線後優化階段如圖3之S322~S329所示),以得到該更新時脈延遲設定。於一實作範例中,根據該更新時脈延遲設定,前述時脈根源與前述序向元件的時脈接腳之間的時脈延遲為一第二值,該第二值不同於該第一值;舉例而言,該第二值大於該第一值。 步驟S130:依據該更新時脈延遲設定執行該前段流程的至少一部分,以產生一更新網表。於一實作範例中,步驟S130依據該更新時脈延遲設定更新前述第一更新資料庫以得到一第二更新資料庫,並依據該第二更新資料庫執行該前段流程的至少一部分以產生該更新網表。於一實作範例中,步驟S130依據該更新時脈延遲設定執行前述邏輯合成流程的至少一部分(例如:該優化階段如圖2之S236或圖3之S336所示;或者該映射階段與該優化階段),以產生該更新網表。 步驟S140:依據該更新網表執行該後段流程,以得到該積體電路佈局設計流程之結果。
值得注意的是,步驟S110~S140可由單一工具程式或複數個工具程式來執行。另值得注意的是,前述資料庫可被一工具程式自動地更新或藉由使用者的輸入而被更新。
圖2顯示圖1之積體電路佈局設計方法的一範例性實作流程,其中虛框表示的階段(亦即:訊號繞線階段S228、與繞線後優化階段S229、轉譯階段S232、映射階段S234)是未被執行的程序。如圖2所示,該實作流程包含下列程序:該邏輯合成流程的轉譯階段S212、映射階段S214與優化階段S216;該自動佈局繞線流程的佈局與優化階段S222、時序樹合成階段S224、與時序樹合成後優化階段S226;該邏輯合成流程的優化階段S236;以及該自動佈局繞線流程的佈局與優化階段S242、時序樹合成階段S244、時序樹合成後優化階段S246、訊號繞線階段S248、與繞線後優化階段S249。圖2的實作流程中,該更新時脈延遲設定是於執行完該時序樹合成後優化階段S226後得到;由於本實作流程於執行完該後段流程的時序樹合成後優化階段S226後即回頭執行該前段流程的優化階段S236,本實作流程可省去執行時序樹合成後優化階段S226之後的階段(亦即:虛框表示的階段)的時間。
圖3顯示圖1之積體電路佈局設計方法的另一範例性實作流程,其中虛框表示的階段(亦即:轉譯階段S332、映射階段S334)是未被執行的程序。如圖3所示,本發明之積體電路佈局設計方法依序執行至少下列程序:該邏輯合成流程的轉譯階段S312、映射階段S314與優化階段S316;該自動佈局繞線流程的佈局與優化階段S322、時序樹合成階段S324、該時序樹合成後優化階段S326、該訊號繞線階段S328、與該繞線後優化階段S329;該邏輯合成流程的優化階段S336;以及該自動佈局繞線流程的佈局與優化階段S342、時序樹合成階段S344、時序樹合成後優化階段S346、訊號繞線階段S348、與繞線後優化階段S349。圖3的實作流程中,該更新時脈延遲設定是於執行完該繞線後優化階段S329後得到;由於本實作流程於執行完該繞線後優化階段S329階段後才回頭執行該優化階段S336,本實作流程所得到的該更新時脈延遲設定相較於圖2的實作流程所得到的該更新時脈延遲設定更加準確,而能更有效地改善該積體電路佈局設計流程之結果。
請注意,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例中部分或全部技術特徵,或選擇性地實施前述複數個實施例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。
綜上所述,本發明能夠改善一積體電路佈局設計流程之結果的電路面積與功率的消耗,以減少一積體電路的生產成本,並降低該積體電路的漏電(leakage power)。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
S110~S140:步驟S212:轉譯階段S214:映射階段S216:優化階段S222:佈局與優化階段S224:時序樹合成階段S226:時序樹合成後優化階段S228:訊號繞線階段S229:繞線後優化階段S232:轉譯階段S234:映射階段S236:邏輯合成流程的優化階段S242:佈局與優化階段S244:時序樹合成階段S246:時序樹合成後優化階段S248:訊號繞線階段S249:繞線後優化階段S312:轉譯階段S314:映射階段S316:優化階段S322:佈局與優化階段S324:時序樹合成階段S326:時序樹合成後優化階段S328:訊號繞線階段S329:繞線後優化階段S332:轉譯階段S334:映射階段S336:優化階段S342:佈局與優化階段S344:時序樹合成階段S346:時序樹合成後優化階段S348:訊號繞線階段S349:繞線後優化階段
[圖1]顯示本發明之積體電路佈局設計方法的一實施例; [圖2]顯示圖1之積體電路佈局設計方法的一範例性實作流程;以及 [圖3]顯示圖1之積體電路佈局設計方法的另一範例性實作流程。
S110~S140:步驟
Claims (10)
- 一種積體電路佈局設計方法,能夠改善一積體電路佈局設計流程之結果,該積體電路佈局設計流程包含一前段流程與一後段流程,該積體電路佈局設計方法包含:依據初始時脈延遲設定執行該前段流程,以產生一初始網表(netlist);依據該初始網表執行該後段流程的至少一部分,以得到更新時脈延遲設定;依據該更新時脈延遲設定執行該前段流程的至少一部分,以產生一更新網表;以及依據該更新網表執行該後段流程,以得到該積體電路佈局設計流程之結果,其中該前段流程包含一或多個流程不晚於一邏輯合成(Synthesis)流程,該後段流程包含一或多個流程不早於一自動佈局繞線(Automatic Placement and Routing,APR)流程。
- 如申請專利範圍第1項所述之積體電路佈局設計方法,其中該自動佈局繞線流程包含一時序樹合成後優化(Post-CTS Optimization)階段與一繞線後優化(Post-Route Optimization)階段,該後段流程的該至少一部分包含該時序樹合成後優化階段。
- 如申請專利範圍第1項所述之積體電路佈局設計方法,其中該前段流程的該至少一部分為該邏輯合成流程之一優化(Optimization)階段。
- 如申請專利範圍第3項所述之積體電路佈局設計方法,其中該前段流程的該至少一部分僅包含該前段流程的一部分。
- 如申請專利範圍第3項所述之積體電路佈局設計方法,其中該自動佈局繞線流程包含一時序樹合成後優化(Post-CTS Optimization)階段與一繞線 後優化(Post-Route Optimization)階段,該後段流程的該至少一部分包含該時序樹合成後優化階段。
- 如申請專利範圍第5項所述之積體電路佈局設計方法,其中該更新時脈延遲設定是於執行完該時序樹合成後優化階段後得到。
- 如申請專利範圍第5項所述之積體電路佈局設計方法,其中該後段流程的該至少一部分僅包含該後段流程的一部分。
- 如申請專利範圍第5項所述之積體電路佈局設計方法,其中該後段流程的該至少一部分包含該繞線後優化階段。
- 如申請專利範圍第8項所述之積體電路佈局設計方法,其中該更新時脈延遲設定是於執行完該繞線後優化階段後得到。
- 如申請專利範圍第1項所述之積體電路佈局設計方法,其中依據該初始時脈延遲設定,一時脈根源(clock root)與一序向元件(sequential cell)的一時脈接腳(clock pin)之間的一時脈延遲等於一第一值;依據該更新時脈延遲設定,該時脈根源與該序向元件的該時脈接腳之間的該時脈延遲為一第二值,該第二值不同於該第一值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108106924A TWI718486B (zh) | 2019-02-27 | 2019-02-27 | 積體電路佈局設計方法 |
US16/801,414 US10915688B2 (en) | 2019-02-27 | 2020-02-26 | IC layout design method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108106924A TWI718486B (zh) | 2019-02-27 | 2019-02-27 | 積體電路佈局設計方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032396A TW202032396A (zh) | 2020-09-01 |
TWI718486B true TWI718486B (zh) | 2021-02-11 |
Family
ID=72142612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108106924A TWI718486B (zh) | 2019-02-27 | 2019-02-27 | 積體電路佈局設計方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10915688B2 (zh) |
TW (1) | TWI718486B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113919275A (zh) | 2020-09-21 | 2022-01-11 | 台积电(南京)有限公司 | 用于优化集成电路的布局的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8302053B2 (en) * | 2010-02-24 | 2012-10-30 | Juniper Networks, Inc. | Automated integrated circuit clock insertion |
TWI376613B (en) * | 2007-05-22 | 2012-11-11 | United Microelectronics Corp | Method for determining a standard cell for ic design |
US20150276871A1 (en) * | 2014-03-31 | 2015-10-01 | Mediatek Singapore Pte. Ltd. | Integrated circuit and method for establishing scan test architecture in integrated circuit |
CN105631087A (zh) * | 2014-11-26 | 2016-06-01 | 台湾积体电路制造股份有限公司 | 用于集成电路布局生成的方法、器件和计算机程序产品 |
US9489478B2 (en) * | 2014-10-17 | 2016-11-08 | Synopsys, Inc. | Simplifying modes of an electronic circuit by reducing constraints |
US10073944B2 (en) * | 2016-06-08 | 2018-09-11 | Synopsys, Inc. | Clock tree synthesis based on computing critical clock latency probabilities |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119440A2 (en) * | 2004-06-01 | 2005-12-15 | Tera Systems, Inc. | Methods and systems for mixed-mode physical synthesis in electronic design automation |
WO2005119531A2 (en) * | 2004-06-01 | 2005-12-15 | Tera Systems, Inc. | Rule-based design consultant and method for integrated circuit design |
EP1816577A1 (en) * | 2006-02-03 | 2007-08-08 | STMicroelectronics (Research & Development) Limited | A method of making an integrated circuit including a clock tree |
US10509886B2 (en) * | 2017-11-07 | 2019-12-17 | Taiwan Semiconductor Manufacturing Company Ltd. | Method, system, and storage medium for RC extraction using hierarchical modeling architecture |
-
2019
- 2019-02-27 TW TW108106924A patent/TWI718486B/zh active
-
2020
- 2020-02-26 US US16/801,414 patent/US10915688B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI376613B (en) * | 2007-05-22 | 2012-11-11 | United Microelectronics Corp | Method for determining a standard cell for ic design |
US8302053B2 (en) * | 2010-02-24 | 2012-10-30 | Juniper Networks, Inc. | Automated integrated circuit clock insertion |
US20150276871A1 (en) * | 2014-03-31 | 2015-10-01 | Mediatek Singapore Pte. Ltd. | Integrated circuit and method for establishing scan test architecture in integrated circuit |
US9489478B2 (en) * | 2014-10-17 | 2016-11-08 | Synopsys, Inc. | Simplifying modes of an electronic circuit by reducing constraints |
CN105631087A (zh) * | 2014-11-26 | 2016-06-01 | 台湾积体电路制造股份有限公司 | 用于集成电路布局生成的方法、器件和计算机程序产品 |
US10073944B2 (en) * | 2016-06-08 | 2018-09-11 | Synopsys, Inc. | Clock tree synthesis based on computing critical clock latency probabilities |
Also Published As
Publication number | Publication date |
---|---|
US10915688B2 (en) | 2021-02-09 |
TW202032396A (zh) | 2020-09-01 |
US20200272783A1 (en) | 2020-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Simon et al. | BLADE: An in-cache computing architecture for edge devices | |
Cassidy et al. | Beyond Amdahl's law: an objective function that links multiprocessor performance gains to delay and energy | |
Papaphilippou et al. | Accelerating database systems using FPGAs: A survey | |
Mueller et al. | Data processing on FPGAs | |
US8200846B2 (en) | Timestamp synchronization for queries to database portions in nodes that have independent clocks in a parallel computer system | |
US10579341B2 (en) | Generation of workload models from execution traces | |
TWI718486B (zh) | 積體電路佈局設計方法 | |
Chowdhury et al. | AnyCore: A synthesizable RTL model for exploring and fabricating adaptive superscalar cores | |
US9047434B2 (en) | Clustering for processing of circuit design data | |
US7577558B2 (en) | System and method for providing compact mapping between dissimilar memory systems | |
US20100293514A1 (en) | Design-driven metal critical dimension (cd) biasing | |
CN111666732B (zh) | 集成电路布局设计方法 | |
Konstadinidis et al. | Architecture and physical implementation of a third generation 65 nm, 16 core, 32 thread chip-multithreading sparc processor | |
Bose et al. | Challenges in processor modeling and validation | |
US20230110560A1 (en) | Unified framework and method for accurate context-aware timing modeling | |
Hayes et al. | Future vector microprocessor extensions for data aggregations | |
Wainberg et al. | Robust optimization of multiple timing constraints | |
US10380295B1 (en) | Methods, systems, and articles of manufacture for X-behavior verification of an electronic design | |
Ratkovic et al. | Physical vs. physically-aware estimation flow: case study of design space exploration of adders | |
Choudhary | FabScalar: Automating the design of superscalar processors | |
US11868696B2 (en) | Lightweight unified power format implementation for emulation and prototyping | |
TWI477941B (zh) | Dynamic modulation processing device and its processing method | |
US11797739B2 (en) | Endpoint path margin based integrated circuit design using sub-critical timing paths | |
US20220327266A1 (en) | Generating a reduced block model view on-the-fly | |
US20220121802A1 (en) | Construction, modeling, and mapping of multi-output cells |