TWI647582B - 增強去耦電容的實施方式的系統、方法及電腦產品 - Google Patents

增強去耦電容的實施方式的系統、方法及電腦產品 Download PDF

Info

Publication number
TWI647582B
TWI647582B TW106145281A TW106145281A TWI647582B TW I647582 B TWI647582 B TW I647582B TW 106145281 A TW106145281 A TW 106145281A TW 106145281 A TW106145281 A TW 106145281A TW I647582 B TWI647582 B TW I647582B
Authority
TW
Taiwan
Prior art keywords
decoupling capacitor
circuit
metal
chip
timing
Prior art date
Application number
TW106145281A
Other languages
English (en)
Other versions
TW201905742A (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
Application filed by 新唐科技股份有限公司 filed Critical 新唐科技股份有限公司
Application granted granted Critical
Publication of TWI647582B publication Critical patent/TWI647582B/zh
Publication of TW201905742A publication Critical patent/TW201905742A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/373Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L27/00Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate
    • H01L27/02Devices consisting of a plurality of semiconductor or other solid-state components formed in or on a common substrate including semiconductor components specially adapted for rectifying, oscillating, amplifying or switching and having potential barriers; including integrated passive circuit elements having potential barriers
    • H01L27/0203Particular design considerations for integrated circuits
    • H01L27/0207Geometrical layout of the components, e.g. computer aided design; custom LSI, semi-custom LSI, standard cell technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • 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/3312Timing analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Architecture (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

一種用於設計集成電路晶片的方法,所述方法包含:產生包含至少一個去耦電容的晶片的第一電路佈局;以及執行後處理去耦電容插入步驟,以在至少一個去耦電容之外添加至少一個額外的去耦電容,步驟包含:對於第一電路佈局的至少一部分,識別出至少一些具有正向冗餘的至少一部分電路的位置作為“候選”位置;以及在“候選”位置中的至少一個相應位置處插入至少一個附加去耦電容。

Description

增強去耦電容的實施方式的系統、方法及電腦產品
本發明涉及一種晶片設計,更具體的是涉及一種電子設計自動化。
晶片設計對干擾(noise)敏感,由於潛在的干擾發生器(例如但不限於提供Vdd和接地訊號的電網(power grid)),將存在超過設計中內置干擾界限的風險。已知內嵌式去耦電容(decoupling capacitor,以下簡稱decap)連接至電網(power mesh)可減少干擾的影響。添加去耦電容對於降低干擾是有效的,因為它們提供電荷定位(charge localization)。可以將去耦電容添加到不具有電路單元(cell)的積體電路的區域,或者可以添加到諸如高速記憶體的“高風險”區域中。
已知會在超大規模積體電路晶片(VLSI)中使用去耦電容。其常用技術具體描述在以下專利中:US6323050、US6763509、US6898769、US7222320、US7245516、US8421205、US8479136、US9262572、US9465899,以及以下的專利申請中:US20070061769A1、US20140167815A1、US20150186586A1及US20160117431A1。
美國專利號碼8224601中描述了常用的去耦電容估計以及決定需要多少去耦電容單元來解決設計中本地產生的功率干擾的方法。
來自Synopsys.com的David Stringfellow和John Pedicone對另一種傳統的去耦電容(dcap)的放置過程在網路上可取得的公開文檔:"Decoupling Capacitance Estimation,Implementation,and Verification:A Practical Approach for Deep Submicron SoCs"中進行了描述。該文件描述了電源電壓的動態變化,這是影響晶片性能的一個問題,因此構成了DSM SoC設計團隊的“重大課題”。為了達到電源供給網路中可接受的電壓波動水準,配置了足夠數量的去耦電容。接著,所產生的去耦電容可充當高頻電路(high-frequency circuit)的本地電荷儲存器(local charge reservoir),從而減少電源干擾對鄰近電路的影響。該文檔描述了如何在最先進的VLSI裝置中使用DCAP測計和實施流程。
Amit Dey、Vikas Garg、Rahul Saxena、Shailesh Kumar在“智慧去耦電容插入方法”中描述了一種的“設置與走線”設計方法,網址是以下位置:www.design-reuse.com/articles/31663/smart-decouplingcapacitor-insertion-methods.html。Dey等人描述了「在“設置與走線”設計中已經插入了去耦電容和填充物,為了增加去耦電容值,我們必須將已插入的填充物交換成去耦電容」。為使第一金屬層(Metal-1)及穿孔(via)層重新走線,當插入去耦電容時,可能會使Metal-1的去耦電容產生潛在的短路和間隔衝突(spacing violation)。為了重新走線Metal-1及via1的路徑,將加入Metal-1及via1的走線阻塞(routing blockages)。但在此之前我們將從此設計中移除所有去耦電容及填充物。在加入走線阻塞後,在Metal-1及via1層以及走線阻塞之間將會有許多短路及間隔衝突。為解決這些短路,由於產生衝突的走線為環保走線,將導致走線在走線阻塞中重新定位。接著走線阻塞將被刪除。此時去耦電容將在沒有任何DRC衝突下輕易的被插入,且去耦電 容中的Metal-1層將佔據原本走線阻塞的區域。藉此技術,我們可以將去耦電容值改善10~20%。”
常規的設置與走線工具特別執行去耦電容插入。這種軟體工具的舉例包含:Synopsys ICC及ICC2、Synopsys Apollo、Cadence Encounter platform、Mentor Graphics-Nitro-SoC、Mentor Graphics-Olympus-SoC及Ansys-Apache RedHawk。
上述傳統的設置與走線工具中至少有一部分可以執行std-cell時序提醒(timing-aware)(或稱時序驅動(timing driven))設置。
IBM、Intel、Marvel、QCOM、BroadCom等開發了能夠執行填充物至去耦電容交換的常規定制TCL腳本。
本說明書中提及的所有出版物和專利文獻以及其直接或間接引用的出版物和專利文獻的公開內容通過引用併入本文。此類出版物和專利文獻的實質可專利性未獲得承認。
本發明的某些實施例旨在優化積體電路的設計和製造,例如,ASIC(專用積體電路)。
本發明的某些實施例旨在提供一種實施或設置去耦電容的方法,具有改善的控制IC開發過程流程和/或評估設計品質的能力。本發明的某些實施例旨在提供一種透過交換填充單元(swapping filler cell)來實施或設置去耦電容的改進方法,包含提供包含填充單元的初始晶片設計(initial chip design),然後將至少一個填充單元與去耦電容交換。
本發明的某些實施例尋求提供一種電容插入方法,即使作為後處理操作來執行其在完全或完整電路佈局準備就緒之後,仍可另外設置電容的電容插入方法,例如,在走線資源非常有限的非常擁擠的IC設計中,插入去耦電容也不會對晶片面積產生影響,且對時序影響很小或沒有影響。在增加給定電路佈局中去耦電容的速率和/或縮短實施週期和/或不損害諸如時序、晶片/晶片面積和功率需求等其他設計約束的情況下,這可能是較佳的作法。
本發明的某些實施例旨在透過降低或減少傳統上對走線擁塞施加的限制來減少給定對象所需的給定晶片所需的矽面積或晶片尺寸,以滿足期望的去耦電容交換水準,這通常需要較低水準的走線擁塞。
本發明的某些實施例旨在提供一種智慧填充物至去耦電容交換過程,使給定去耦電容的密度中晶片尺寸減小5%或10%或更多。
本文中的某些實施例旨在提供去耦電容的時序驅動的插入。本發明的某些實施例旨在提供一種軟體方法來配置和驅動設置與走線(P & R)工具,以優化給定邏輯的去耦電容實施方式。
本發明的某些實施例旨在提供一種用於設計積體電路(例如ASIC)晶片的方法,該晶片包含去耦電容插入步驟,該步驟包含識別晶片中的第一電路佈局的至少一部分中的至少一部分填充位置的Metal-1(第一金屬)交越訊號(例如,穿過填充位置的物理區域的訊號與Metal-1段走線)是否全部具有正向時序冗餘,並作為候選位置,且使用去耦電容取代至少一個這樣的候選位置。
應當理解,對於許多填充物和去耦電容單元,訊號走線穿過單元所佔用的物理區域,並且這些訊號具有Metal-1的電路區段直到用於走線的最高金屬層。
本發明的某些實施例尋求提供一種用於識別填充單元並用電容單元例如去耦電容取代至少一部分所識別的填充單元的方法,包含產生穿過這 些填充單元的Metal-1電路的時序冗餘評價,並且使用這些評價考慮是否用電容(去耦電容)取代填充物。電容單元使用Metal-1連接,通常,去耦電容單元在內部使用Metal-1層連接其所有內部有源裝置以形成電容。然而,常規方法中通常不會使用去耦電容單元交換這些填充單元,以避免設計規則衝突(Design-Rule Violations)(DRCs),或者如果實現這種互換,則需要通過訊號再走線來解決DRC產生的衝突,從而延長時序關閉循環和/或擴大晶片尺寸,和/或在高利用率路線區域內造成設計困難。
應當理解,如果被填充單元穿過的Metal-1被去耦電容單元取代,則穿過填充單元的電路區段Metal-1通常具有產生設計規則衝突(DRC)的潛力。這個DRC衝突(干擾)是一個電路短路(net short),需要一個Metal-1段重新走線。Metal-1走線資源通常被去耦電容單元高度利用,因此通常需要電路再由來克服這個短路。DRC識別電路短路(net short)、電路瞬變(Net Transition)及電路電容(Net Capacitance)。為了克服這些“罪魁禍首(culprits)”,受影響的部分通常以更高的金屬等級(Metal level)重新排列(例如,Metal2/Metal3/Metal4/Metal5/Metaln);注意到受影響區域的走線資源需求可能很少。
本發明的某些實施例尋求提供一種方法,該方法在遭受設計規則(DRC)衝突的至少一個位置,即Metal-1短路中進行填充物至耦電容單元交換,。
本發明的某些實施例尋求提供一種改進的方法,其透過用去耦電容交換填充單元來添加去耦電容而不浪費晶片面積資源。
以下術語可以根據現有技術文獻或根據說明書中出現的任何定義來解釋,或如下:單元走線(cell routing)旨在包含標準單元引腳的金屬走線,例如,在設計模式中。例如:考慮需要連接到單元2引腳A的單元1引腳Z的模式。單元 走線(Cell-Routing)是這兩個單元針腳之間的金屬走線,在Metal-1(最低金屬層)到Metal-n(最高金屬層)的任何地方的金屬層中實施。
電路單元走線更改(cell-routing change)旨在包含走線實施中的任何金屬拓撲(Metal-topology)變化。
去耦電容(Decoupling capacitor)又稱DCAP:包含雙端電容單元(two-terminal capacitor cells),其通常散佈在標準邏輯單元(standard logic cells)之間,並且去耦電容單元的兩個端子中的一個被掛接到電源,而另一個的相應地接地。
關鍵電路(critical nets)、關鍵訊號(critical signals)、關鍵單元(critical cells):是將電路/訊號/單元納入設計中的晶片,其時序稱為“關鍵時序(critical timing)”,在非常緊繃(tight)或在界線上(on-the-edge)的意義上,在正向冗餘(positive-slack)的情況下,將要轉向負向冗餘(negative-slack),又名為“斷開(breaking)”,隨之而來的晶片/晶片性能下降,此外,甚至有微小的物理走線變化。任何物理特性的增加,例如這些訊號/電路上的電阻率/電容可能會增大與之相關的延遲。
封閉設計(closing design)、時序設計封閉(timing design closure):是積體電路設計開發工作流程的一部分(其可以包含例如靜態時序分析(static timing analysis)、設置、走線、邏輯整合(logic synthesis)),其透過確保設計滿足約束和目標而有助於生成積體電路的最終設計。
填充單元(filler cells):是在包含使用自動化p & r設置標準電路單元之後插入的單元,以便填補標準單元之間的間隙,從而通過消除間隙來確保鄰接;應當理解,所得到的鄰接部分允許例如由於其小尺寸而缺少主體連接(Bulk Connection)(基板連接(Substrate connection))的“薄單元(thin cell)”來使用其它電路單元的主體連接。小單元的基板可以透過與其鄰接的單元連接到電源/接地。術 語“填充單元”旨在包含通常由xy方向(尺寸)和xy位置表徵的任何物理單元,其在ic設計過程中生成但沒有指定的邏輯功能,而是填充分別具有指定的邏輯功能的先前定義的單元(“標準單元(standard cells)”)之間的間隙。
填充單元通常指填充在標準單元之間的空間的單元。通常,為了確保每個電路單元獲得電源和接地,電路單元被鄰接在一起。因此相鄰電路單元的VDD和VSS端子靠在一起,所以電源只能在該列的任何位置上的一個點被分接(tapped)。因此,如果幾乎都是這種情況,使用自動p & r工具放置的標準單元填充小於晶片面積的100%,填充單元插入在放置的標準單元之間的間隙中,直到達到所有電路單元都具有“鄰近”(每個單元在每一側鄰接其他單元)的空隙。填充單元可以包含用於繼續VDD和VSS軌的非功能單元,例如因為由於電路單元沒有抵接而發生的單元、接地和擴散層(diffusion layers)的不連續。填充單元通常會降低由基底(例如NWell、PPlus & NPlus)層創建的DRC違規和/或幫助維護電能軌(Power Rail)連接的連續性。一部分p & r工具使用術語“座標(origin)”來表示填充單元的x、y座標。
填充位置(filler location):旨在包含填充單元的位置或要給填充單元的位置。
電路佈局區塊(layout block):旨在包含晶片的平面圖的一部分。例如只有標準單元的物理區域,或者只是整個晶片的平面圖的一部分。
邏輯單元(logic-cell)又稱標準單元(standard-cell),旨在包含緩衝器、及閘(AND-gate)、非或閘(NOR-gate)、正反器(Flip-Flop)等。
電路(net)或稱電路(network)旨在包含一組或互連電路組件的集合。電路表(netlist)可以用於描述電路的連接性,並且可以包含組件和它們分別連接到的節點的列表。一個可以通過使用走線器(基於電路單元的或閘陣列走線 器)來“走線該電路”來生成電路佈局。電路旨在包含將引腳X連接到引腳Y的單條線,而連接電路(connectivity network)旨在包含整個晶片中的所有引腳連接。
隨機邏輯電路(random logic)旨在包含實施布爾函數(Boolean function)的一組邏輯閘(也稱為標準單元)。
冗餘(slack)、正向冗餘(positive slack):在靜態時序分析(static timing analysis,STA)中旨在包含與給定連接相關聯的“冗餘”的訊號/電路的特徵,並旨在包含所需時間與到達時間之間的差異,其中訊號的到達時間是經過的時間(由於路徑中的所有分量產生的延遲),直到訊號到達特定點或節點為止,通常將其作為時脈訊號的到達時間。所需的時間是訊號可以到達的最後時間(latest time),而不會使時脈週期長於所需時間。因此,在某個節點處的正向冗餘S意味著在該節點處的到達時間可以因S而增加,而不增加電路的總體延遲,負向冗餘意味著路徑太慢並且必須加速(或者參考訊號必須延遲)。
節點N處的正向冗餘S通常旨在包含其中相對於被認為是所需時間的到達時間是正的(高於零或至少一預定閾值高於零)的情況,因此如果增加走線延遲和到達時間進一步延遲,延遲時間可能仍然可以吻合,相對於可能被認為需要的到達時間是負向的情況。通常,正向冗餘允許在沒有時序影響的情況下插入去耦電容,因此具有正向冗餘的位置或節點是用於去耦電容插入的候選位置,相反的,通常,負向冗餘不允許插入去耦電容,因為這樣的插入將影響時序,因此具有負向冗餘的位置或節點通常不是用於去耦電容插入的候選位置。另外,通常情況下,正向冗餘越大,該位置候選人就越適合(作為去耦電容插入位置)。“正向”通常並不意味著端點為零;相反的,“正向冗餘”範圍的較低端點可以預定義在零以上。
交換(swap):旨在包含移除填充單元,並放置或插入(通常相同尺寸)去耦電容單元。
時序驅動(Timing driven),也稱為時序提醒(Timing-Aware):旨在表示某些設置與走線(P & R)方法中某些物理操作/階段的特徵,其中確定了具有緊密時序關係的邏輯單元,例如:因此P & R工具可以將這些單元盡可能靠近彼此,而不是使用易於增加延遲的長互連線(long interconnect wires)。通常,走線時序驅動的訊號識別要連接的所有導線的集合內的關鍵時序關係,並增加其走線優先級,以便首先連接這些位置,以確保直接點對點,並減少導線長度。因此,在短長度電路中延遲得到優化和最小化。
本發明包含以下實施例:
實施例1:一種積體電路晶片的設計方法,該方法包含:生成包含至少一個去耦電容的晶片的第一電路佈局,執行後處理去耦電容插入步驟以添加超過該至少一個去耦電容的至少一個附加去耦電容,所述步驟包含:對於該第一電路佈局的至少一部分,識別出至少一部分具有正向冗餘的至少一部分電路的位置作為“候選”位置;以及插入至少一附加去耦電容至"候選"位置中的至少一個別位置。
實施例2:根據前述實施例中任一項所述的方法,其中晶片的第一電路佈局滿足為晶片定義的所有時序需求。
實施例3:根據前述實施例中任一項所述的方法,其中,至少一部分包含整個第一電路佈局。
實施例4:根據前述實施例中任一項所述的方法,其中在晶片的至少一部分內,插入重複進行的降序冗餘。
實施例5:根據前述實施例中任一項所述的方法,其中,在整個晶片內,插入重複進行的降序冗餘。
實施例6:根據前述實施例中任一項所述的方法,其中第一電路佈局包含至少一個填充位置,並且其中識別步驟包含:識別晶片的第一電路佈局的至少一部分中的至少一部分填充位置具有METAL-1訊號交越。
實施例7:根據前述實施例中任一項所述的方法,其中至少在其電路中具有正向冗餘的部分中的所有填充位置被識別為“候選”位置。
實施例8:根據前述實施例中任一項所述的方法,其中在所述晶片的至少一部分內,重複進行插入,直到達到以下停止標準:所有插入的去耦電容的電容之和已達到預定的總電容。
預定的總電容可以例如是在第一電路佈局中已經達到的總電容的百分比。而且,對於晶片中的每個區域,可以具有不同的總電容。通常,每個去耦電容單元對總電容的貢獻是總去耦電容需求的百分比。
實施例9:根據前述實施例中任一項所述的方法,其中,檢查至少一個填充位置以確定在填充位置上是否存在Metal-1走線,並且其中在填充位置上不存在Metal-1走線的至少一個填充位置被去耦電容取代。
實施例10:根據前述實施例中任一項所述的方法,其中,檢查所有填充位置以確定在填充位置上是否存在Metal-1走線。
實施例11:根據前述實施例中任一項所述的方法,其中用去耦電容取代單個填充位置的必要條件是在單個填充位置上不存在Metal-1走線。
實施例12:根據前述實施例中任一項所述的方法,其以正向時序識別Metal-1電路區段,迫使至少一個填充至去耦(Filler-to-Decoupling)電容交換導致DRC/Net短路,並重新走線至少一個短路的Metal-1電路,以緩解比Metal-1更高的金屬方案中的訊號短路。
實施例13:據前述實施例中任一項所述的方法,其中第一電路佈局包含至少一個填充位置,並且其中識別步驟包含:將至少一部分具有正向冗餘的電路的填充位置作為“候選”位置。
實施例14:根據前述實施例中任一項所述的方法,其中識別步驟包含:針對晶片的所述第一電路佈局的至少一部分的具有正向時序冗餘的Metal-1交越訊號的填充位置作為“候選“位置;以及用至少一個相應的去耦電容取代至少一個“候選”位置。
實施例15:一種用於設計積體電路晶片的系統,該系統包含:至少一處理器,被配置為產生用於晶片的第一電路佈局,其包含至少一去耦電容;以及用於執行後處理去耦電容插入操作,以在該至少去耦電容外加入至少一附加去耦電容,後處理去耦電容插入操作包含:對於該第一電路佈局的至少一部分,識別出至少一部分具有正向冗餘的至少一部份電路的位置以作為一候選位置;以及在候選位置的至少一個別位置插入至少一附加去耦電容。
實施例16:一種電腦程序產品,包含其中包含電腦可讀程序代碼的非暫態實體電腦可讀媒體,電腦可讀程序代碼適於執行以實施積體電路晶片的設計方法,該方法包含:為晶片產生第一電路佈局,其包含至少一去耦電容;及執行後處理去耦電容插入操作,以在至少一去耦電容外加入至少一附加去耦電容,後處理去耦電容插入操作包含:對於第一電路佈局的至少一部分,識別出至少一部分具有正向冗餘的至少一部分電路的位置以作為一"候選"位置;以及在"候選"位置的至少一個別位置插入至少一該附加去耦電容。
還提供了一種不包含訊號的電腦程序,包含電腦程序代碼,用於在程序於至少一個電腦上運行時執行本文所示和所述的任何方法;以及電腦程序產品,包含典型非暫態的電腦可用或可讀媒體,如非暫態電腦可用或可讀儲存媒體,其通常是有形的,且具有包含在其中的電腦可讀程序代碼,電腦可讀程序代碼適於被執行以實施本文所示和所述的任何或全部方法。
根據本文所教示的步驟,可由至少一台為了特殊目的的電腦、或是配置為透過儲存在典型的非暫態電腦可讀儲存媒體中的至少一個電腦程序以達成特定目的的常規電腦執行。術語“非暫態(non-transitory)”在本文中用於排除短暫的、傳播的訊號或波,但是包含適用於該應用的任何揮發性或非揮發性電腦記憶體技術。
根據本發明的某些實施例,本發明的設備可以包含機器可讀記憶體,其包含或以其它方式儲存指令程序,指令程序在由機器執行時,實施本文所示和所述的本發明的一部分或全部設備、方法、特徵和功能。
上面提到的實施例和其他實施例在下一部分中詳細描述。
在文本或圖中出現的任何商標都是其所有者的財產,並且在此僅出現以解釋或說明如何實施本發明的實施例的一個示例。
術語“電腦(computer)”應該被廣義地理解為涵蓋具有數據處理能力的任何種類的電子裝置,包含作為非限制性示例的個人電腦、伺服器、嵌入式核心、計算系統、通信裝置、處理器(例如數據訊號處理器(DSP)、微控制器、現場可編程閘陣列(FPGA)、專用集成電路(ASIC)等)和其他電子計算裝置。
本文單獨列出的元件不必是不同的組件,而可以是相同的結構。元件或特徵可能存在的陳述旨在包含(a)元件或特徵存在的實施例;(b)其中元件或特徵不存在的實施例;和(c)其中有元件或特徵選擇地存在的實施例。用戶可以配置或選擇元素或特徵是否存在。
任何合適的電腦化數據儲存器(例如,電腦記憶體)可以用於儲存由本文所示和所述的系統接收或由其生成的資訊。
S10~S18、S18a~S18c‧‧‧步驟
第1圖係為根據本發明實施例構建和操作的去耦電容插入方法的簡化流程圖。可以提供一部分或全部所示的步驟。
第2圖是根據本發明的實施例構建和操作的用於執行階段完成(Implementation phase completion)的方法的簡化流程圖,其包含品質控制(quality Control)步驟,該品質控制步驟被配置為在設計釋出到生產之前確保時序和DCR關閉,可以執行全部或部分操作。
包含在本發明的範圍內的方法和系統可以以任何合適的順序,例如透過例示的方式,包含在具體示出的實施中示出的一部分(例如,任何合適的子集)或全部功能區塊,如圖所示。
這裡描述和示出的計算、功能或邏輯組件可以以各種形式來實施,例如作為硬體電路,例如但不限於定制的VLSI電路或閘陣列或可編程的硬體裝置,例如但不限於FPGA,或者作為儲存在至少一個有形或無形的電腦可讀媒體上,並且可由至少一個處理器執行的軟件程序代碼,或者其任何適當的組合。
如果提供的話,這裡描述的韌體實施功能可以保存在任何合適的記憶體裝置中,以及合適的處理單元(也可以是處理器)可以被配置用於執行韌體代碼。或者,本文描述的某些實施例可以部分地或排他性地以硬體實施,在這種情況下,這裡描述的一部分或全部變量、參數和計算可以是在硬體中。
在此描述的任何邏輯功能可以被實施為實時應用,如果適當的話並且其可以採用任何合適的架構選項,諸如但不限於FPGA、ASIC或DSP或其任何合適的組合。
這裡提到的任何硬體組件實際上可以包含一個或多個硬體裝置,例如,晶片,它們可以位於同一位置或彼此遠離。
包含大量隨機邏輯(由大量標準邏輯單元組成)的IC晶片走線非常複雜(走線指的是這些標準邏輯單元之間的連通性)。現在所有VLSI晶片實施的基本程序/演算法(如設置與走線技術)都被用來影響晶片的物理實施。傳統的設置與走線演算法根據標準單元在整個VLSI晶片實施過程中攜帶的時序圖優先設置與走線。Synopsys ICC、Cadence Encounter和Mentor P & R等主要EDA(電子設計自動化)公司出售用於實施晶片物理設計的IC設計程序,從而實現IC晶片的物理實施(電路佈局配置)。
實際的限制因素包含時序、面積、製造設計(DFM)和功耗。例如,由於產品營銷的考慮,一部分設計受到尺寸的限制(即所謂的必要的面積限制)。如果要滿足性能目標,一部分設計必須達成高速,例如一台強大的個人電腦,每秒必須完成百萬兆次的計算。移動裝置中的晶片可能受到功率限制,因為終端用戶不願意頻繁地幫電池充電。不同IC之間的這些限制是不同的。IC的設計在很大程度上限制了標準單元的密集區域,其中密度意在包含給定區域實際上由標準單元占據的“利用率”(標準單元占據的區域的比例)。
一般來說,在集成有標準單元的IC晶片區域中,保持可用於放置連接電路的區域的套件(set)或集合被稱為晶片的“走線資源”。這些在面積上受到 很大限制的IC中,欠缺的物理區域資源可以被走線工具用來放置連接在邏輯單元之間的導線。不幸的是,具有有限走線資源的密集IC設計通常需要多重迭代來完成走線或經由增量走線(通常稱為ECO)來實施修復,同時滿足所有預定義的標準,例如時序限制:經常增加的走線變化,在利用率非常高且可用的走線資源很少的情況下實施,隨之而來的是受到改變影響的電路的非最優重新走線(non-optimal re-routing),這反過來又對邏輯時序造成負面影響,導致時序違規,並且因此需要進一步修復。
另一個IC設計需求是電源完整性。為了滿足這個需求,實施流程例如,深次微米(deep-submicron)IC技術,包含在標準邏輯單元的區域內添加通常很小的去耦電容或去耦電容單元。這些雙端電容被連接到一個端子上的相關電源和另一個端子上的相對應的地上。這樣的電容可以被形成為適合在標準邏輯單元內,並且可以像標準邏輯單元一樣走線。描述了傳統的去耦電容插入技術, 例如,在上面技術背景部分列出的參考文獻中,並且可以通過傳統的IC設計工具來實施。例如,Synopsys ICC工具有一個在名為“insert_std_filler-Metal-cell{引用列表}”的設計中散播去耦電容單元的命令。
在典型的實施流程中,電容的這種設置的“最終”優化,例如,去耦電容發生(take place)在時序的優化(optimization)和關閉(closure)之後,或是交錯(interleaved)其中。這種“最終”優化可包含識別可用區域,並用電容填充它們。如果識別出缺少電容,例如去耦電容的區域,則可能需要進行主要的電路佈局/平面圖更改,以為額外的電容(例如去耦電容)騰出空間。主要平面圖更改可能包含:
-任何兩個標準單元之間的閒置空間考慮用於去耦電容插入。
-識別符合兩個標準單元之間的“閒置”距離的參考去耦電容單元尺寸。
-“設置”工具從單元庫(cell library)中創建一個“僅限物理(Physical-Only)”參考單元。
-設置演算法“拉(pulls)”新創建的例子並嵌入去耦電容單元以“填充”兩個標準單元之間的空隙(閒置空間)。
插入一個電容,例如,去耦電容,在特定位置的去耦電容也可能在許多或大多數情況下需要單元走線改變來解決Metal-1DRC短路--例如,以便適當地調整與走線。如本文所述,密集IC區域的走線變化通常產生新的和不期望的時序問題,其隨後的解決方案由於其收斂性延長而使設計週期複雜化。
現在參考第1圖以及詳細描述說明根據本發明的某些實施例中的電容,例如,去耦電容,的設置方法。此方法可以例如,獨立運行,或者作為特徵併入合適的程序中,例如,合適的P & R(設置與走線)工具,例如但不限於Synposys-ICC,或者在此處提及的其他工具或任何其他常規P & R工具中加以必要的更改。下面描述的步驟可以分別提供或執行,或者可以以任何合適的順序提供或執行所有步驟,或者其任意的子集合可以提供或執行,例如但不限於:
步驟S10:使用任何合適的P & R工具提供假定的或初始的或起始的晶片/晶片平面佈置圖,通常提供晶片平面電路佈局創建功能作為工具的設置方法的初步階段。通常,平面佈置圖包含放置的標準單元(又名std-cells),並且已經走線所有的互連。通常,大量的std-cells之間存在“空隙(gap)”。通常,幾乎所有的標準單元都不相互鄰接,因此幾乎所有的標準單元之間都存在空隙。
步驟S11:將一個給定的設計網表(netlist)應用到滿足所有時序需求的完整電路佈局區塊中。在此階段中,可以實施去耦電容的,例如每個已知的方法插入,此方法簡單地避免將去耦電容單元插入和放置在會引起Metal-1短路的填充空間中。
步驟S12:在給定的電路佈局中,至少確定一個、一部分或所有可用於放置電容的填充位置,例如,去耦電容,並儲存它們的坐標。例如,可以使用合適的tcl命令來查詢關於被p & r工具識別為填充空間的至少一個、一部分或全部位置,例如,彼此不相鄰的標準單元之間的至少一個、一部分或全部空隙。例如,識別這些填充單元的查詢可以實施為在P & R命令提示層級運行的TCL命令。例如:for each filler_type{FILL16BWP7THVT FILL32BWP7THVT FILL4BWP7THVT FILL64BWP7THVT FILL8BWP7THVT GFILL10BWP7THVT GFILL2BWP7THVT GFILL3BWP7THVT GFILL4BWP7THVT GFILLBWP7THVT FILL16BWP7T FILL32BWP7T FILL4BWP7T FILL64BWP7T FILL8BWP7T GFILL10BWP7T GFILL2BWP7T GFILL3BWP7T GFILL4BWP7T GFILLBWP7}{ puts "proccssing fillcrs of type $filler_type" foreach_in_collection filler[get_cells-quiet-all *-filter "ref_name==$filler_type"]
步驟S13:對於至少一個這樣的填充位置,例如,每個這樣的填充位置,確定是否存在穿過填充空間的Metal-1中的任何電路區段,例如是否存在填充物上的Metal-1走線。
如果不是(例如,如果沒有穿過填充空間的Metal-1中的電路區段/在填充物上沒有Metal-1走線),執行填充至去耦電容交換,例如,填充物(至少一個這樣的填充物)通常被取代為相同大小的電容(為了避免產生未解決的DRC),例如,去耦電容。
根據某些實施例,當給定填充物-單元被去耦電容-單元取代時,對可能經過再走線的穿過填充單元上的一部分或全部訊號執行時序分析。典型情況下,檢查Metal-1中穿過填充單元中的某些大部分或全部訊號/電路。該檢查可以例如包含,使用任何合適的TCL命令來查詢P & R工具。例如,時序查詢可 以在時序分析工具(例如Synopsys PrimeTime)中執行,在這種情況下查詢可以用TCL寫成:set slack[get_attribute $ timing_path slack]
然後設置與走線工具可以返回一個列表,包含對於每個檢查的訊號、訊號的名稱以及這些訊號分別穿過的填充單元名稱和位置(如果有的話)。然後,該列表可以被饋送到諸如Synopsys的PrimeTime的時序分析工具,以使用諸如“report_timing”之類的適當命令來查詢與這些訊號中的每一個相關聯的時序。
執行步驟S13通常是值得的,因為它是一種“容易實現的目標(low hanging fruit)”型操作,其產生去耦電容插入,而不會對走線和時序產生不利影響。
步驟S14:對於至少一個例如,在填充物上具有Metal-1走線的每個填充位置並未在上述步驟S13時被替代(通常大部分都是)時,記錄在填充單元占據的區域內在Metal-1中走線的電路的時序條件,例如響應於諸如“report_timing”TCL命令的時序查詢而返回的記錄數據。
步驟S15:為即將進行的交換步驟優先考慮填充位置。可以預定任何合適的優先級,例如但不限於時序驅動的優先級排序,例如透過掃描在步驟S14中所記錄的時序條件的優先級,藉由在其中走線到M1的電路的時序冗餘來排序所有填充位置,例如,在步驟S14中從最高或最高優先級(“最佳”)時序條件到最低或最低優先級(“最差”)時序條件記錄時序條件,從而生成序列表(並且因此填充單元分別與這些電路相關聯)。
可以使用任何合適的技術來檢查給定位置處的時序冗餘,例如以下測試:
通常來說,在步驟S15中,在步驟S14中創建並且儲存所有正向冗餘訊號交越點的表iii對填充單元進行分類和統一,以避免後續生成多次命令的錯誤,造成同一個填充單元與去耦電容單元交換。
通常將高優先級時序條件定義為具有最具挑戰性(most challenging)的冗餘值的填充單元,例如具有最小(但至少大於零的delta)正值的填充單元,因為期望優先交換這些填充單元。具有較大且大於delta的數字的填充單元越來越不那麼具有挑戰性,並且交換它們的優先級越來越低,並且例如如果在這些“較不具有挑戰性”的填充單元已經被交換之前就達到預定的停止標準,則不會發生交換,如下所述。
通常來說,由多個電路穿過的填充單元的優先級由具有最具挑戰性,例如,最小冗餘值的電路來決定。
在步驟S13中識別為在特定填充單元中具有Metal-1的任何電路被認為是與該特定填充單元“相關聯(associated)”的電路,並且這種填充單元在本文中被稱為“宿主(hosting)”Metal-1電路。
根據某些實施例,檢查(例如分析他們的時序)穿過所有填充物(通常包含但通常不限於Metal-1交越點)的所有訊號/電路,若具有正向冗餘則為了走線修正而被標記為“相關的(relevant)”,如果沒有正向冗餘,則標記為不相關(irrelevant)。
通常來說,僅僅略高於零的訊號不被認為具有正向冗餘,正向冗餘閾值或“冗餘裕度(slack-margin)”或“delta”,例如+200pS,是預定義的,並且可 以用於從訊號中區分重新出其冗餘度高於零但低於閾值的走線候選者。這種低於閾值的訊號被視為負向冗餘,並且與其相關聯的填充位置不是用於重新走線的候選者。另外,通常填充位置與略為負向冗餘相關,不是取代的候選者,避免使已經不能滿足時序限制的位置進一步惡化。
可以使用任何合適的技術來檢查某個填充位置處的時序冗餘,並確定冗餘查詢值是否大於預定冗餘裕度,例如,以下測試:
步驟S16:開始用任何合適的順序以電容,例如,去耦電容取代填充物“宿主”Metal-1電路。
例如,可以通過按照時序條件(或使用將時序考量與其他優先考慮事項相結合的優先次序)優先化來確定順序,例如,通過用諸如從步驟S 5中生成的列表的較高優先級往下的電容(例如去耦電容)交換填充物,來按照時序條件的最佳度的降序來進行取代。
可以理解的是,可以通過任何合適的常規技術,例如透過合適的P & R工具命令行中的合適的TCL命令來執行填充物到去耦電容的物理轉換,如:changc_link " a,t}' fillcrs_slack.report>!dcap.scr change_link xofiller!FILL16BWP7THVT!2544 DCAP16BWP7THVT
步驟S17:通常來說,當發現預定的停止條件成立時停止步驟S16。例如,停止條件可以是以下的任何一個或任何邏輯組合:
停止條件A:滿足插入的電容(例如,去耦電容)的預定義的設計規定總電容(又名固有電容值)。
這種停止條件也被稱為"去耦電容需求(DCAP requirement)"。為了預先確定合適的預定總量,電晶體級模擬(transistor level simulation)可以由電路設計者或動態IR程序(dynamic-IR program)來執行。
可以透過例如,使用可以由定制電路組(custom circuit team)運行的傳統功率分析程序(conventional power analysis program)的電路的類比模擬(analog simulation)來設置固有電容值(intrinsic capacitance value),即預定總電容值(也就是預定總去耦電容值)。
通常來說,例如執行上面的步驟S10-16之後,到目前為止插入的去耦電容的總去耦電容值(也就是總電容、固有電容值)至少被計算一次。通常,在去耦電容插入結束時計算總去耦電容值。然後,在最近的填充物→去耦電容交換之後,評估是否滿足了預定義的總去耦電容值。如果總去耦電容值仍小於預定義的期望總量,則可以將設計回歸到設置階段,以確保滿足固有電容需求。
根據某些可選實施例,總去耦電容值有時例如如果使用在此示出和描述的列表執行交換,自頂向下,在每n次交換之後,可以計算該值,並且如果電流總值仍然小於去耦電容需求,則在重新計算之前進行n次交換,並重新與預定的去耦電容需求進行比較。
停止條件B:在時序條件下達到預定的標準,例如,如果受影響的電路的時序比部分預定的標準更差,例如小於(接近於零)預定的冗餘裕度,則避免取代填充物。預定義標準,例如,可以包含正向時序冗餘值(即,冗餘裕度),即使由於走線改變而加重(aggravated),仍然在修改的電路上產生正向冗餘,使得不進行時序降級。填充物至去耦電容流程運行時,該值可以用作需求或停止條件。
替代地,或者在適當的停止條件變為真而停止步驟S16之外,步驟S16可以響應於諸如Metal-1觸碰Metal-2的物理條件而被中斷或停止,可選地,即使總體固有上限值要求因此不被滿足。或者,例如,步驟S16可以繼續,即使給予不合需要的物理條件,例如Metal-1觸碰Metal-2,直到滿足總體固有上限值需求,之後,繼續步驟S16,除非和直到當發生諸如Metal-1觸碰Metal-2之類的物理條件時被阻止。
另一種替代方法是繼續步驟S16,直到所有填充物的電路中有正向冗餘的填充物都被去耦電容取代。
根據某些實施例,步驟S16甚至可以在具有稍微(預設為小)負向(例如,零以下)冗餘的一組的一個或多個電路上執行。
步驟S18:實施階段可以通過配置合適的品質控制步驟來完成,以確保在設計投入生產之前時序和DCR關閉。例如,可以執行如第2圖的以下全部或部分品質控制步驟:
品質控制步驟S18a.主題邏輯(subject logic)的時序是藉由一個可能穿過多個邏輯結構的時序查詢來驗證的。
品質控制步驟S18b.任何留存的時序違規將被糾正。例如,即使使用delta>0冗餘裕度時序標準,對應的電路的時序也可能比預期得到更多的時序傳播(timing propagation),並導致時序違規,然後被修復(例如,根據下面的步驟S18c),直到滿足晶片時序要求。
品質控制步驟S18c.修復其他設計規則(DRC)違規(如果有的話),例如(但不限於)轉換裕度違規(transition margin violation)、電容裕度違規(capacitance margin violations),使用常規實施實踐,諸如但不限於緩沖和/或標準單元調整以滿足時序降級。
可以理解的是,合適的數據表(例如下面描述的表I-IV中的一部分或全部)可以由在此示出和描述的方法來生成和使用。
例如,步驟S12可以生成儲存填充單元及其對應的位置/坐標的表。該表可以用於確定哪些位置至少理論上可用於放置電容,例如如本文所述的去耦電容。
步驟S13可以生成儲存查詢結果的表ii,該查詢結果分別穿過任何查詢過的填充單元(例如,所有填充單元或儲存在表i中的所有填充單元)中的任意M1(或稱Metal1)層電路。
步驟S14可以生成儲存在表ii中儲存的步驟S13中識別的所有電路的時序冗餘值的表iii。可以理解的是,通常電路穿過多個填充單元時只經歷一次時序冗餘值決定。
表iv可以在步驟S16中生成,並且可以包含實現填充單元到去耦電容單元交換的命令表。通常來說,表iv中的每個命令包含改變鏈接命令(link command),如果滿足交換標準,則用去耦電容取代填充物,例如,如果對於特定填充單元,找到所有交越訊號(例如藉由訪問表iii)為了具有正向時序冗餘,將相關聯的填充單元、例如透過適當的添加到表中來設置,以被去耦電容單元取代。因此,例如如本文所描述的,可以藉由運行儲存在表iv中的一部分或全部命令來實現實際的填充單元到去耦電容單元的交換(例如,具有“時序感知(Timing-aware)”的Metal-1訊號)。通常來說,表iv可以例如包含命令列表,包含指示設置與走線工具的2行,表示哪個填充物被交換到去耦電容單元。
可以理解的是,上面的步驟S10~S18(或其任何子集)不需要被應用於整個晶片。替代的,該方法可以選擇性地應用,以節省時間和/或保存迭代和/或出於任何其他原因,例如僅限於晶片的某些區域或領域,例如僅限於高度擁塞的區域或者僅限於由設計者定義的高關鍵度區域(例如,高Metal-1含量的區 域),例如邏輯功能由設計者定義為關鍵區域的區域,或者僅限於晶片整個區域的任何其他子集。例如,例如按照上述方法進行填充物至去耦電容交換可以僅在Metal-1的擁塞區域中執行;填充單元內的Metal-1訊號可以基於任何合適的標準來識別。
如果在某些使用情況下可以省略,則可以在沒有Metal-1交越點的情況下,將交換晶片中的所有填充單元視為單獨的操作步驟;其他操作步驟也是如此。
查看任何給定填充單元的Metal-1電路交越點的時序,並且在每個填充單元的邊界內定址時序/時序關鍵的Metal-1電路區段提供了相當大的優勢。
作為替代方案,可以掃描晶片,並且發現沒有m1交越點的任何填充物可以交換,而具有在Metal-1中引起DRC違規的去耦電容單元的填充單元不進行交換。相反的,檢查任何/所有交越電路的所有冗餘是否大於預定的增量,並且如果是,則交換(填充物至去耦電容)。繼續,直到整個晶片已經被掃描,或者任何其他合適的基於時間或其他的停止標準已經發生。
可以理解的是,更一般地,本發明的方法包含檢查Metal-1填充物交越電路上的時序,而不管所採用的特定的晶片掃描方法(第1圖或其它)。例如,相關表格不一定需要按照時序條件進行排序,然後按照時序條件的降序進行交換,相反的,進行交換的順序可以是任何合適的順序,例如通過晶片區域,或者依照列的順序,或者隨機順序。
再舉一個例子,在第1圖的方法中,在多個填充單元交換候選內可能存在一定的電路Metal-1交越點,儘管在統計上具有跨越Metal-1中的幾個填充單元的電路通常被發現為是一個低或為零的機率事件。檢查每個填充單元的時序通常包含重新訪問相關訊號電路上的時序圖,該時序圖可能先行檢查過(對於先前由同一電路穿過的填充單元)。然而,另一種選擇是,如果發現電路的冗 餘度低於delta,則所有由該電路穿過的填充單元從表格中被移除,這是因為它們顯然不能被交換成去耦電容。為了促進這一點,表2可能包含一個矩陣,其中沿著一個維度的所有填充單元以及沿著另一個維度的所有電路,並且矩陣條目可以是1,以指示相關填充單元和電路的交越點,而矩陣中位置x、y處的矩陣條目0可以指示填充單元x和電路y之間不存在交越點。一旦某些填充單元被移除,該方法可能不會檢查只穿過被移除的單元的電路。
可以理解的是,第1圖的方法及其變型尤其是有利的,因為在時序/DRC封閉方面結果良好。特徵在於封閉時序的設計元件通常不受DCAP插入要求的干擾,從而最小化時序封閉週期預測,和/或因為就最佳電容而言結果是實際的,例如去耦電容插入,在IC時序、電源完整性和物理實施時間表之間實現良好的折衷。根據某些實施例,例如在時序是首要考慮的使用情況下,如果有的話,可能會考慮晶片/晶片擴大或放寬整體固有電容需求,中斷用於去耦電容單元交換的違反時序考慮因素的填充物,並克服電源完整性問題。
可以理解的是,第1圖的方法及其變型可以結合適用於增強或優化,任何合適的去耦電容插入過程,諸如但不限於在上述的技術背景部分中描述的Stringfellow-Pedicone文檔和其他去耦電容插入過程中描述的過程。
案例。
去耦電容交換在Synopsys-ICC設置與走線工具中適合運行的TCL命令編寫的代碼如下所示。
代碼通常包含可以一起使用或者獨立使用或者以任何合適的子組合和順序使用的以下一部分或全部過程:
a.ICC(Synopsys IC編譯器)腳本
b.PT(PrimeTime)腳本(通常來說,在PT工具命令行中運行的代碼包含執行時序查詢的一組TCL命令)
c.3為ICC生成change_link命令(這是一個P & R工具命令,用於執行參考電路單元交換,例如填充物至去耦電容交換)。
d.PT腳本創建敏感電路(sensitive net)列表(例如,具有關鍵時刻),例如基於違反端點的列表。通常,敏感電路列表是從PT時序查詢得出的。
e.CSH(可能驅動某些查詢的C-Shell Unix語言,例如由Linux/Unix操作系統)腳本命名為“look”。CSH(可驅動某些查詢的C-Shell Unix語言,例如Linux/Unix operating system)腳本命名為'look'
f.CSH腳本確保沒有敏感電路會受到傷害。
通常來說,藉由避免用去耦電容單元替換與這些電路相關聯的填充單元,設置時序增量間隔以確保關鍵/敏感時序電路不受損害,從而避免改變訊號延遲值的再走線。
ICC腳本
結果
時序分析Metal-1電路。此TCL代碼在PrimeTime中運行-時序分析工具:
PT腳本
結果
為ICC生成change_link命令awk-F'!''!/[012356789]e9/{t=$2;gsub(/FILL/,"DCAP",t);a=$0;gsub(/.*/,"",a); s=$NF;gsub(/.*/,"",s);if(s>0.21354)print "change_link" a,t}'fillers_slack.report>! dcap.scr
結果
PT腳本創建一個敏感電路列表(基於違規端點列表)
結果
CSH腳本命名為’look’
以CSH腳本確定沒有敏感電路將受到傷害。
可以理解的是,本文中所示和所述的去耦電容交換方法的實施例的上述TCL命令語言腳本僅作為示例提供。每個命令都可以改變、以另一種順序執行,或者根據使用情況、或設計限制而將所使用的特定的p & r工具等適當省略。
某些實施例的優點包含以下的一部分或全部:可以理解的是,設計過程通常受限於產品特定的要求,包含對“必須”在晶片中提供的去耦電容的需求。例如,“去耦電容值”(表示整個晶片所必需的表示去耦電容的數量的參數)可以透過以下設置:
a.動態電流模擬(動態IR分析,Dynamic IR analysis)例如通過傳統的功率分析模擬程序(例如Apache/by-Ansys、Voltus/by-Cadene、PrimeRail/by-Synopsys)生成。
識別可能影響設計中任何標準單元(也稱為std單元)的正常工作的電壓降(voltage drops),並且設定去耦電容值以解決常規操作中的降級以減輕所識別到的電壓降。
可以進行動態/靜態IR壓降模擬,包含識別低於/高於“電壓容差(voltage tolerance”值的任何壓降,並且對於每個這樣的下降,可能認為必需提供/吸收電壓擺動,並且提供將保證標準單元的適當功能的電荷,和/或,
b.電晶體級模擬程序(Spice,PrimeRail,Apache),例如計算平均動態IR降,並設定去耦電容值,以解決常規操作中的降級,從而減輕所識別的動態IR降。
某些實施例的特定優點在於,可以使用具有較高的小區利用率和/或更擁擠的走線資源的較小的晶片和/或晶片,並且可以滿足如上所述的要求。
由某些實施例產生的優點包含實現被認為必要的去耦電容插入的能力,例如預先指定的“去耦電容值”位準,滿足電路模擬需求,而不會影響晶片面積(不會擴大晶片),也不會產生高度的走線擁塞。
標準單元的操作由一定的電壓位準(即標準特徵值)特徵化。當標準單元的電壓下降或增益大於標準特徵值時,行為時序分析變得不準確,這可能導致晶片故障。
例如,標準單元正常操作的典型特徵為1.2V,並且矽供應商通常將標準單元操作特徵化為標稱值的+/-10%,在這種情況下,即使實際電壓降落在[1.08V,1.32V]範圍,又稱“電壓容差”,而電壓容差之外的值通常設定提供局部電荷給標準單元的去耦電容上限值,其確保標準單元將維持在特徵化區間中,由此確保標準單元在設計的電壓擺動中操作。
可以理解的是,在此使用的專用於ICC P & R TOOL的任何術語僅作為例示使用,或者可以使用其他設置與走線工具,必要的修改。
可以理解的是,諸如“強制(mandatory)”、“需要(required)”、“必須(need)”和“必須(must)”的術語是指在這裡描述的特定實現或應用的上下文中作 出的實現選擇,是為了清楚起見而不是限制性的,因為在替代實施方式中,相同的元素可能被定義為不是強制性的、不是必需的,甚至可能完全被消除。
每個模組或部件或處理器可以集中在單個物理位置或物理裝置中,或者分佈在多個物理位置或物理裝置上。
在本揭露的範圍內所包含的,特別是根據這裡的描述的電磁訊號。這些訊號可以攜帶用於以任何合適的順序執行本文所示和所述的任何方法的任何或所有操作的電腦可讀指令,包含同時執行合適的適當操作組;機器可讀指令,用於以任何合適的順序執行本文所示和所述的任何方法的任何或所有操作;由機器可讀的程序儲存裝置,有形地體現機器可執行的指令程序,以任何合適的順序執行本文所示和所述的任何方法的任何或所有操作,即,不一定如圖所示,包含平行或同時執行而不是如圖所示依序執行;包含電腦可用媒體的電腦程序產品,所述電腦可用媒體具有電腦可讀程序代碼,諸如可執行代碼,包含其所體現的、和/或包含電腦可讀程序代碼,用於以任何合適的順序執行本文所示和所述的任何方法的任何或所有操作;當以任何合適的順序執行時由本文所示和所述的任何方法的任何或所有操作所帶來的任何技術效果;任何合適的設備或裝置或其組合,被編程為以任何合適的順序單獨或組合地執行本文所示和所述的任何方法的任何或所有操作;每個電子裝置包含至少一個處理器和/或協作輸入裝置和/或輸出裝置,並且可以例如,用軟體操作在本文中示出和描述的任何操作;資訊儲存裝置或物理記錄器(諸如磁碟或硬碟),使得至少一個電腦或其他裝置被配置為以任何合適的順序執行本文所示和所述的任何方法的任何或所有操作;在下載之前或之後,例如在記憶體或諸如網際網路之類的資訊網路上預先儲存的至少一個程序,其以任何合適的順序體現本文中示出和描述的任何方法的任何或所有操作,以及其上傳或下載的方法,以及包含伺服器和/或客戶端的系統以便使用這些程序;至少一個處理器,被配置為執行所描述的 操作的任何組合或執行所描述的模組的任何組合;以及執行本文所示和所述的任何方法的任何或所有操作的硬體,其以任何適當的順序單獨執行或與軟體結合執行。本文描述的任何電腦可讀或機器可讀媒體旨在包含非暫態的電腦或機器可讀媒體。
本發明的特徵(包含在單獨實施例的上下文中描述的操作)也可以在單個實施例中組合提供。例如,系統實施例旨在包含相應的過程實施例,反之亦然。
相反地,本發明的特徵(包含在單個實施例的上下文中為了簡潔而描述的操作)或以特定的順序描述的特徵可以單獨地或以任何合適的子集提供,包含具有本領域已知的特徵(特別是但不限於在背景技術部分或其中所述的出版物中描述的那些特徵)或以不同的順序執行。“例如(e.g.)”在這裡用於不旨在限制的特定示例的意義上。每個方法可以包含例示或描述的操作中的一部分或全部,適當地例如如本文所示或所述。

Claims (15)

  1. 一種用於設計積體電路晶片的方法,其包含:針對一晶片,生成一第一電路佈局,該第一電路佈局包含至少一去耦電容;以及執行一後處理去耦電容插入操作,以在該至少一去耦電容外加入至少一附加去耦電容,該後處理去耦電容插入操作包含:對於該第一電路佈局的至少一部分,識別出至少一些具有正時間冗餘的至少一部分電路的位置,以作為一候選位置;以及在該候選位置的至少一位置插入至少一該附加去耦電容;其中在該晶片的該至少一部分電路內,該後處理去耦電容插入操作依照時間冗餘程度的降序順序重複進行。
  2. 如申請專利範圍第1項所述之方法,其中該第一電路佈局滿足為該晶片定義的所有時序需求。
  3. 如申請專利範圍第1項所述之方法,其中該至少一部分電路包含整個該第一電路佈局。
  4. 如申請專利範圍第1項所述之方法,其中在整個該晶片中,該後處理去耦電容插入操作依照時間冗餘程度的降序順序重複進行。
  5. 如申請專利範圍第1項所述之方法,其中該第一電路佈局包含至少一填充位置,且其中識別步驟包含:識別該第一電路佈局的該至少一部分電路中的至少一該填充位置上具有一Metal-1訊號交越。
  6. 如申請專利範圍第5項所述之方法,其中識別步驟包含識別該晶片的該第一電路佈局的至少該部分中,僅以至少該部分中的具有正向時序冗餘的複數個Metal-1交越訊號該填充位置作為該候選位置;以及以至少一對應去耦電容取代至少一個該候選位置。
  7. 如申請專利範圍第1項所述之方法,其中在具有正時間冗餘的電路中的所有填充位置被識別為該候選位置。
  8. 如申請專利範圍第1項所述之方法,其中在該晶片的至少一部分電路中,該後處理去耦電容插入操作重複進行直到達到以下停止標準:所有插入的去耦電容之總和已經達到預定的總電容值。
  9. 如申請專利範圍第1項所述之方法,更包含:檢查至少一填充位置以確認該至少一填充位置上方是否存在一Metal-1走線,而沒有Metal-1走線在其上方的該至少一填充位置由該去耦電容取代。
  10. 如申請專利範圍第9項所述之方法,其中所有該填充位置被確認是否有該Metal-1走線在其上方。
  11. 如申請專利範圍第9項所述之方法,其中用該去耦電容取代一個別填充位置的必要條件是在該個別填充位置上方不存在該Metal-1走線。
  12. 如申請專利範圍第1項所述之方法,其中以正向時序識別Metal-1電路區段,迫使至少一填充位置與該去耦電容互換,導致設計規則/電路(DRC/Net)短路,並重新走線至少一個正在短路的Metal-1電路,以緩解高於Metal-1的一金屬層中的訊號短路現象。
  13. 如申請專利範圍第1項所述之方法,其中該第一電路佈局包含至少一個填充位置,其中識別步驟包含:識別該填充位置中的至少一部分具有正向冗餘的電路的該填充位置作為該候選位置。
  14. 一種用於設計積體電路晶片的系統,包含:至少一處理器,被配置為針對一晶片產生一第一電路佈局,其包含至少一去耦電容;以及執行一後處理去耦電容插入操作,以在該至少一去耦電容外加入至少一附加去耦電容,該後處理去耦電容插入操作包含:對於該第一電路佈局的至少一部分,識別出至少一些具有正向冗餘的至少一部分的位置以作為一候選位置;以及在該候選位置的至少一個別位置插入至少一該附加去耦電容;其中在該晶片的該至少一部分電路內,該後處理去耦電容插入操作依照時間冗餘程度的降序順序重複進行。
  15. 一種電腦程序產品,包含:其中包含一電腦可讀程序代碼的一非暫態實體電腦可讀媒體,該電腦可讀程序代碼適於執行以實施積體電路晶片的設計方法,該方法包含:針對一晶片產生一第一電路佈局,其包含至少一去耦電容;及執行一後處理去耦電容插入操作,以在該至少一去耦電容外加入至少一附加去耦電容,該後處理去耦電容插入操作包含:對於該第一電路佈局的至少一部分,識別出至少一些具有正向冗餘的至少一部分電路的位置以作為一候選位置;以及在該候選位置的至少一個別位置插入至少一該附加去耦電容;其中在該晶片的該至少一部分電路內,該後處理去耦電容插入操作依照時間冗餘程度的降序順序重複進行。
TW106145281A 2017-06-14 2017-12-22 增強去耦電容的實施方式的系統、方法及電腦產品 TWI647582B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/622,625 2017-06-14
US15/622,625 US10289790B2 (en) 2017-06-14 2017-06-14 System, method and computer product for enhanced decoupling capacitor implementation

Publications (2)

Publication Number Publication Date
TWI647582B true TWI647582B (zh) 2019-01-11
TW201905742A TW201905742A (zh) 2019-02-01

Family

ID=64657485

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106145281A TWI647582B (zh) 2017-06-14 2017-12-22 增強去耦電容的實施方式的系統、方法及電腦產品

Country Status (3)

Country Link
US (1) US10289790B2 (zh)
CN (1) CN109086468B (zh)
TW (1) TWI647582B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI842413B (zh) * 2022-02-28 2024-05-11 台灣積體電路製造股份有限公司 設計積體電路佈局圖的系統及方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017127276A1 (de) * 2017-08-30 2019-02-28 Taiwan Semiconductor Manufacturing Co., Ltd. Standardzellen und abwandlungen davon innerhalb einer standardzellenbibliothek
CN111931444B (zh) 2019-05-09 2021-07-20 长江存储科技有限责任公司 用于功能对等检测中的仿真方法
US11296093B2 (en) * 2020-02-28 2022-04-05 International Business Machines Corporation Deep trench capacitor distribution
CN113688595B (zh) * 2020-05-19 2023-08-18 上海复旦微电子集团股份有限公司 系统级封装电路原理图设计方法及装置、可读存储介质
TWI806286B (zh) * 2021-12-14 2023-06-21 瑞昱半導體股份有限公司 用於濾波器的積體電路佈局及積體電路佈局方法
CN116151184B (zh) * 2023-04-20 2023-08-01 广东赛昉科技有限公司 实现最佳去耦电容值且满足金属密度约束的布局方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW504807B (en) * 2000-04-10 2002-10-01 Advanced Semiconductor Eng Electronic package structure
CN102236728A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 一种集成电路设计方法和设计仿真系统
TW201344481A (zh) * 2012-04-18 2013-11-01 Global Unichip Corp 晶片輸出入設計的方法
US20140264924A1 (en) * 2010-07-28 2014-09-18 Taiwan Semiconductor Manufacturing Co., Ltd. Apparatus and method for mitigating dynamic ir voltage drop and electromigration affects
US20150137202A1 (en) * 2012-03-23 2015-05-21 Rohm Co. Ltd. Cell-based ic layout system and cell-based ic layout method

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784368A (en) * 1994-09-23 1998-07-21 Motorola, Inc. Method and apparatus for providing a synchronous communication environment
US6516456B1 (en) * 1997-01-27 2003-02-04 Unisys Corporation Method and apparatus for selectively viewing nets within a database editor tool
US6618847B1 (en) * 1998-11-13 2003-09-09 Stmicroelectronics, Inc. Power stabilizer using under-utilized standard cells
US6323050B1 (en) 2000-10-02 2001-11-27 International Business Machines Corporation Method for evaluating decoupling capacitor placement for VLSI chips
US6487702B2 (en) * 2001-03-30 2002-11-26 Sun Microsystems, Inc. Automated decoupling capacitor insertion
US20030212973A1 (en) * 2002-05-13 2003-11-13 Shen Lin Methods for full-chip vectorless dynamic IR analysis in IC designs
US6763509B2 (en) 2002-09-26 2004-07-13 Sun Microsystems, Inc. Method and apparatus for allocating decoupling capacitor cells
US6898769B2 (en) 2002-10-10 2005-05-24 International Business Machines Corporation Decoupling capacitor sizing and placement
JP4860123B2 (ja) 2004-07-22 2012-01-25 富士通セミコンダクター株式会社 デカップリング容量の配置方法
JP4272647B2 (ja) 2005-09-09 2009-06-03 富士通マイクロエレクトロニクス株式会社 半導体集積回路装置のレイアウト方法及びそのレイアウトプログラム
JP5224642B2 (ja) 2005-11-21 2013-07-03 富士通セミコンダクター株式会社 集積回路のレイアウト方法及びコンピュータプログラム
JP5217418B2 (ja) 2007-12-25 2013-06-19 富士通セミコンダクター株式会社 半導体装置、容量値算出方法
US8015522B2 (en) * 2008-01-04 2011-09-06 Springsoft Usa, Inc. System for implementing post-silicon IC design changes
US8421205B2 (en) 2010-05-06 2013-04-16 Taiwan Semiconductor Manufacturing Company, Ltd. Power layout for integrated circuits
US8479136B2 (en) 2011-05-03 2013-07-02 International Business Machines Corporation Decoupling capacitor insertion using hypergraph connectivity analysis
US20130088275A1 (en) * 2011-10-06 2013-04-11 Lsi Corporation Dynamic voltage drop aware clock insertion tool
US8719746B1 (en) * 2012-11-26 2014-05-06 Lsi Corporation Reduction of metal fill insertion time in integrated circuit design process
US20140167815A1 (en) 2012-12-18 2014-06-19 Broadcom Corporation Area reconfigurable cells of a standard cell library
US9465899B2 (en) * 2013-03-15 2016-10-11 Freescale Semiconductor, Inc. Method for provisioning decoupling capacitance in an integrated circuit
US20150186586A1 (en) 2013-12-30 2015-07-02 Samsung Electronics Co., Ltd. Integrated circuit layouts and methods to improve performance
US9262572B2 (en) 2014-06-27 2016-02-16 Apple Inc. Fast and accurate capacitance checker
US9734276B2 (en) 2014-10-22 2017-08-15 Samsung Electronics Co., Ltd. Integrated circuit and method of designing layout of the same
DE102016111337B4 (de) * 2016-06-21 2018-03-15 Tdk-Micronas Gmbh Verfahren zur Steigerung der Entkoppelungs-Kapazität in einer mikroelektronischen Schaltung

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW504807B (en) * 2000-04-10 2002-10-01 Advanced Semiconductor Eng Electronic package structure
CN102236728A (zh) * 2010-04-30 2011-11-09 国际商业机器公司 一种集成电路设计方法和设计仿真系统
US20140264924A1 (en) * 2010-07-28 2014-09-18 Taiwan Semiconductor Manufacturing Co., Ltd. Apparatus and method for mitigating dynamic ir voltage drop and electromigration affects
US20150137202A1 (en) * 2012-03-23 2015-05-21 Rohm Co. Ltd. Cell-based ic layout system and cell-based ic layout method
TW201344481A (zh) * 2012-04-18 2013-11-01 Global Unichip Corp 晶片輸出入設計的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI842413B (zh) * 2022-02-28 2024-05-11 台灣積體電路製造股份有限公司 設計積體電路佈局圖的系統及方法

Also Published As

Publication number Publication date
US20180365363A1 (en) 2018-12-20
CN109086468B (zh) 2023-01-13
US10289790B2 (en) 2019-05-14
CN109086468A (zh) 2018-12-25
TW201905742A (zh) 2019-02-01

Similar Documents

Publication Publication Date Title
TWI647582B (zh) 增強去耦電容的實施方式的系統、方法及電腦產品
US9785141B2 (en) Method, system, and computer program product for schematic driven, unified thermal and electromagnetic interference compliance analyses for electronic circuit designs
US10915685B1 (en) Circuit stage credit based approaches to static timing analysis of integrated circuits
US11030383B2 (en) Integrated device and method of forming the same
TWI640883B (zh) 電腦可讀存儲介質及積體電路的電壓降和電遷移的分析方法
US8719752B1 (en) Hierarchical crosstalk noise analysis model generation
US11003821B1 (en) Deterministic loop breaking in multi-mode multi-corner static timing analysis of integrated circuits
US20120066654A1 (en) Stability-dependent spare cell insertion
US12019972B2 (en) Method and system of forming semiconductor device
US10360342B2 (en) Method, system, and storage medium for engineering change order scheme in circuit design
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US7168057B2 (en) Targeted optimization of buffer-tree logic
US7200829B2 (en) I/O circuit power routing system and method
US10216887B1 (en) Methods, systems, and computer program products for implementing an electronic design with time varying resistors in power gating analysis
Mamikonyan et al. IR drop estimation and optimization on DRAM memory using machine learning algorithms
US11270052B2 (en) System and method of timing characterization for semiconductor circuit
Posser et al. Electromigration Inside Logic Cells
Lu et al. Clock buffer polarity assignment with skew tuning
Chentouf et al. A Novel Net Weighting Algorithm for Power and Timing‐Driven Placement
Stringfellow et al. Decoupling capacitance estimation, implementation, and verification: A practical approach for deep submicron SoCs
Osler et al. Design closure
Becer et al. Signal integrity management in an soc physical design flow
Elgamel et al. Interconnect noise optimization in nanometer technologies
강민석 Design Methodology for Mesh based Clock Networks
Posser Electromigration aware cell design