TW201935289A - 用於單元交換的方法 - Google Patents
用於單元交換的方法 Download PDFInfo
- Publication number
- TW201935289A TW201935289A TW108103441A TW108103441A TW201935289A TW 201935289 A TW201935289 A TW 201935289A TW 108103441 A TW108103441 A TW 108103441A TW 108103441 A TW108103441 A TW 108103441A TW 201935289 A TW201935289 A TW 201935289A
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- location
- cell
- legal
- determining
- Prior art date
Links
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
-
- 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
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- 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/06—Power analysis or power optimisation
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本揭露提供一種用於單元交換的方法。確定用於交換第一單元的位置。在位置處確定用於單元放置的一個或多個合法定位。為多個合法定位的每一個確定多個單元。基於與所述多個單元中的每一個相關的定時資訊而從多個單元中確定第二單元。用第二單元交換第一單元。
Description
本揭露涉及一種用於單元交換的方法。
晶片的設計流程以包含晶片的整體目標和高水準要求的系統規範的準備開始。這些目標和要求覆蓋功能、性能、物理尺寸以及生產技術。一旦準備好系統規範,就設定了架構設計。晶片的架構設計包含基本架構以符合晶片規範。一旦設定了架構,就進行功能和邏輯設計。隨後將功能和邏輯設計轉換成電路設計。在電路設計之後,實施物理設計。在物理設計期間,電路元件用其幾何圖示來產生實體。換句話說,具有固定形狀和大小的所有巨集、單元、柵極、電晶體等指定有空間位置(即放置)且在金屬層中完成適當路由連接。物理設計的結果是一組製造規範。
根據本揭露的實施例,用於單元交換的方法包括:確定用於交換第一單元的位置;在確定的位置處確定用於單元放置的多個合法定位;在多個合法定位處確定用於放置的多個單元;基於與多個單元中的每一個相關的定時資訊而從多個單元中確定第二單元;以及用第二單元交換第一單元。上述的至少一步驟是由處理器所執行。
根據本揭露的實施例,用於單元交換的系統包括記憶體儲存裝置以及儲存指令的處理單元。處理單元用於執行指令,並且其中指令在由處理單元執行時耦接到記憶體儲存裝置。處理單元操作以:確定違反與電路相關的物理設計約束的單元;確定用於單元交換的位置;在確定的位置處確定多個合法定位;確定多個合法定位的多個單元版本;以及從多個單元版本中確定用於與違反與電路相關的物理設計約束的單元交換的單元版本,單元版本是基於與多個單元版本中的每一個相關的定時資訊而確定。
根據本揭露的實施例,非暫時性電腦可讀媒體儲存在執行時進行用於單元交換的方法的指令集合,由指令集合執行的方法包括:確定違反與電路相關的物理設計約束的第一單元;確定用於交換第一單元的位置;在確定的位置處確定用於單元放置的多個合法定位;為多個合法定位確定多個單元;基於與多個單元中的每一個相關的定時資訊而從多個單元中確定第二單元;以及用第二單元交換第一單元。
以下揭露內容提供用於實施所提供主題的不同特徵的許多不同實施例或實例。下文描述元件和佈置的特定實例以簡化本揭露。當然,這些只是實例且並不意欲為限制性的。舉例來說,在以下描述中,第一特徵在第二特徵上方或第二特徵上的形成可包含第一特徵和第二特徵直接接觸地形成的實施例,並且還可包含額外特徵可在第一特徵與第二特徵之間形成使得第一特徵和第二特徵可不直接接觸的實施例。另外,本揭露可以在各種實例中重複附圖標號和/或字母。這種重複是出於簡化和清楚的目的,且本身並不指示所論述的各種實施例和/或配置之間的關係。
此外,本文中為易於描述,可使用例如“在…下方”、“下方”、“下部”、“上方”、“上部”以及類似術語的空間相對術語來描述一個元件或特徵與如圖中所示出的另一元件或特徵的關係。除圖中所描繪的取向之外,空間相對術語意圖涵蓋裝置在使用或操作中的不同取向。設備可以其它方式定向(旋轉90度或處於其它取向),且本文中所使用的空間相對描述詞可同樣相應地進行解釋。
積體電路自動設計工具將電路設計轉換為所要製造的電路佈局。此流程通常包括將電路的行為描述轉換為功能描述,然後將其分解為邏輯功能並使用標准單元庫映射到單元列。一旦被映射,則將結構設計轉換為實體佈局,構建時脈樹以同步化結構元件,並且在佈局後優化設計。
圖1a一般性地示出了實例積體電路設計以及製造流程100,其可以被實現在由用戶所提供的用於積體電路的行為/功能設計產生實體佈局。用戶設計102基於應用於整體設計的輸入所施加的各種信號或刺激來指定電路的期望行為或功能,並且可以用合適的編程語言來編寫。用戶設計102可以由用戶藉由I/O界面上傳到計算系統中。或者,可以將用戶設計102上載及/或保存在記憶體裝置上。實例計算系統的描述請參考圖5。
合成104被執行於用戶設計102上,其藉由匹配用戶設計102與標准單元,例如是來自一個或多個單元庫106,藉以將用戶設計102所需的行為及/或功能轉換為功能等效的邏輯閘層次(logic gate-level)電路描述。單元庫106預先被設計的組件或單元的列表,每個組件或單元可以執行離散的邏輯功能。單元被儲存在單元庫106中以作為包括內部電路元件的資訊、與這些電路元件的各種連接、預先被設計的實體佈局圖案。其中實體佈局圖案每個單元的單位高度以及單元的設計電源軌(power rail)、摻雜物植入、阱等。另外,所儲存的單元還可以包括單元的形狀、用於外部連接的連接端位置、延遲特性、功率消耗等。合成104導致功能等效的邏輯閘層次電路描述,例如邏輯閘層次網表(netlist)108。單元庫106可以儲存在記憶體裝置上的資料庫中。基於邏輯閘層次網表108,光罩110可以被生成以用於積體電路製造112。
本揭露的實施例提供用於單元交換的方法和系統。本文所揭露的單元交換為定時驅動的。也就是說,在一個單元類型提供物理設計約束的若干版本時,本揭露提供定時驅動的單元交換方法。在交換單元以符合物理設計約束時,所揭露的單元交換方法考慮定時影響。因此,在需要用於物理設計約束的單元交換時維持電路的性能。另外,所揭露的單元交換方法通過防止由於忽略單元交換中的定時而插入單元或確定單元大小來改進整體結果品質(overall quality of result,QoR)。
佈置電路的流程涉及在積體電路封裝設計內確定所需電路元件的物理放置,以此方式便於優化例如性能、物理空間、功率耗散以及熱耗散的參數。佈置任務更包含放置所需元件,以及路由元件之間的內連線導體信號路徑。
將相關元件放置為更接近於彼此可改進性能,例如通過減少因信號之間的內連線引線的長度而導致的電容負載,由此減小元件之間的傳播延遲。因此,佈局流程涉及在電路設計的若干相關方面進行權衡。舉例來說,元件在電路內的一個位置中的放置將相對於一個參數改進電路性能,但相對於另一參數降低性能。或者,舉例來說,特定放置可相對於一個內連線路徑改進性能,但對於另一路徑降低性能。
平衡這些權衡需要將所選元件改變或交換為針對不同性能、面積或功率耗散目標而優化的功能上的等效物。在實例實施例中,平衡這些權衡需要改變或交換一個單元類型的不同版本以符合物理設計約束。圖1b示出交換位置的物理佈局的實例示意圖。如圖1b的框122中所示,交換位置包含多個位點(即位點S1、位點S2、位點S3以及位點S4)。位點S1、位點S2、位點S3以及位點S4中的每一個由金屬軌道穿過。舉例來說,位元點S1由一個金屬軌道穿過。一個軌道近似於節點中的兩個金屬(即金屬1和金屬1)通孔之間的最小間距。在實例實施例中,金屬1是用於將裝置路由在一起以便產生邏輯或類比功能的第一層級金屬。舉例來說,金屬1可以是銅、金、鋁、鎢、聚合物等。金屬1實際上為示範性的,且其它金屬層級為可預知的。舉例來說,軌道可以是金屬1與聚合物、金屬1與金屬2、金屬2與金屬2等之間的間距
如圖1b中所示,交換位置提供用於放置具有w間距的長度的單元的多個不同選項。在實例實施例中,間距是使兩個不同內連線分離的距離。如圖1b的框124中所示,具有w間距的第一單元可放置在起始於位點S1處的交換位置處。另外,且如框126處所示,具有w間距的第二單元可放置在起始於位點S2處的交換位置處。此外,且如框128處所示,具有w間距的第三單元可放置在起始於位點S3處的交換位置處。此外,且如框130處所示,另一具有w間距的第四單元可放置在起始於位點S4處的交換位置處。
在實例實施例中,第一單元、第二單元、第三單元以及第四單元可為與待交換的單元相關的單元類型的多個版本。舉例來說,第一單元、第二單元、第三單元以及第四單元可具有與待交換的單元相關的單元類型的不同物理約束(即物理尺寸)。在其它實施例中,第一單元、第二單元、第三單元以及第四單元可彼此交換以符合不同物理約束。
位點S1、位點S2、位點S3以及位點S4實際上為示範性的,且其它位點為可預知的。舉例來說,單元位置可包含超過四個位點,且可從那些位點中的任一個處開始放置單元。另外,不同版本的單元可具有不同間距。舉例來說,一個單元的長度可以為兩個間距,而另一版本的相同單元的長度可以為三個間距或四個間距。此外,不同版本的單元可具有不同定時資訊。在實例實施例中,與單元版本相關的定時資訊是根據單元延遲被提供。此外,不同版本的單元可具有不同內連線點。
圖2是示出用於單元交換的方法200的流程圖。在實例實施例中,方法200也稱為定時驅動的單元交換方法。方法200開始於操作202,其中識別違反一個或多個物理設計約束的單元。舉例來說,識別違反電路或晶片的一個或多個物理約束的第一單元。在其它實例中,識別超過一個違反電路或晶片的一個或多個物理約束的單元。在實例實施例中,例如由電腦輔助工程(computer aided engineering,CAE)或電子設計自動化(electronic design automation,EDA)自動地或由電路設計師手動地識別違反物理約束的一個或多個單元。
在方法200的操作204處,確定單元的相同位置處的交換單元是否違反物理設計約束。舉例來說,識別違反物理設計約束的第一單元的當前位置。隨後,確定是否在第一單元的當前位置處交換單元。在實例實施例中,CAE確定是否在相同位置處交換單元。在其它實例中,電路設計師確定是否在相同位置處交換單元。
在實例實施例中,相同位置指代識別為違反物理設計約束的第一單元的位置或識別為交換位置的當前位置。在一些實例實施例中,違反物理設計約束的單元能夠用相同單元類型的不同版本替換,或用不同單元類型的另一單元替換。
在方法200的操作206處,確定是否已發現合法位置。舉例來說,在操作204處確定交換位置之後,在操作處206確定所確定的交換位置是否是合法位置。在實例實施例中,確定交換位置是否是合法定位(也稱為合法位(legalization))包含發現單元的非重疊放置位置,從而使對設計目標的任何不利影響最小化。在實例實施例中,由CAE或電路設計師確定合法定位。
如果在操作206處發現交換位置不是合法位置,則在方法200的操作208處,交換位置改變為下一位置。舉例來說,確定可進行單元交換的晶片上的下一位置。在實例實施例中,下一位置可位於晶片的相同層或不同層上。在一些實施例中,由CAE或電路設計師確定下一位置。
在操作208處將交換位置改變為下一位置之後,方法200隨後迴圈回到操作206以確定下一位置是否是合法位置。在實例實施例中,重複操作206和操作208直到已發現用於單元交換的合法位置為止。在實例實施例中,針對預定數目的迴圈重複操作206和操作208。
如果在操作206處發現交換位置是合法定位,那麼在方法200的操作210處,基於合法位置設定定位搜索視窗Wsearch
。在實例實施例中,定位搜索視窗Wsearch
可操作以確定電流交換位置處的用於單元放置的潛在定位。基於交換位置的物理約束以及待放置單元的物理約束而確定潛在定位。舉例來說,且如圖1中所示,不同定位可包含位點S1、位點S2、位點S3以及位點S4。
在方法200的操作212處,為定位搜索視窗Wsearch
中所確定的每一定位確定合法單元版本。在實例實施例中,提供單元的超過一個版本以符合不同物理約束。在操作212處,對於定位搜索視窗Wsearch
中所確定的每一定位,方法200確定符合定位的物理約束的單元版本。在實例實施例中,由CAE或電路設計師確定合法單元版本。在實例實施例中,在閱讀本揭露內容之後,本領域的普通技術人員將顯而易見的是,在一些情況下,在定位搜索視窗Wsearch
中可能找不到合法單元版本。
在方法200的操作214處,選擇定時驅動的單元版本和放置位置。在實例實施例中,每一單元版本含有不同定時資訊。舉例來說,利用圖1b的定位,位元點S1的單元版本可具有與位元點S2、位點S3或位元點S4的單元版本的定時資訊不同的定時資訊。在實例實施例中,選擇符合物理約束以及定時約束的單元版本。在實例實施例中,可由CAE或電路設計師定義單元放置的定時約束。可根據單元延遲或系統時鐘定義定時約束。可選擇除了符合物理約束以外還符合所定義的定時約束的單元版本,以供用於合法位置處的放置。
在方法200的操作216處,進行單元版本和位置的合法放置。舉例來說,在操作214處選擇符合定時約束以及物理約束的單元版本之後,將所選擇的單元版本放置在所選擇的版本的合法定位處。
圖3是示出放置位置選擇的實例實施例的圖。在圖3的實例實施例中,確定每一單元版本的最小位移位置。在實例實施例中,根據用於設定Wsearch
的起始位置確定最小位移。在選擇最小位移位置之後,選擇單元版本和合法位置以使單元延遲和位移最小化。
舉例來說,如圖3中所示,可行的候選項可包含n個版本的單元,每一版本的單元根據合法位置提供最小位移。舉例來說,如圖3的框302中所示,單元版本1與位置l1處的最小位移相關。此外,且如圖3的框304中所示,單元版本2與位置l2處的最小位移相關。類似地,且如圖3的框306中所示,單元版本n與位置ln處的最小位移相關。在實例實施例中,選擇用於交換的合法定位和單元版本以使單元延遲和位移最小化。
圖4是示出放置位置選擇的另一實例實施例的圖。在圖4的實例實施例中,由合法候選項中選出每一單元版本的最大位移位置。在實例實施例中,根據用於設定Wsearch
的起始位置測量最大位移。在選擇最大位移位置之後,選擇單元版本和合法位置以使單元延遲和位移最大化。
舉例來說,如圖4中所示,可行的候選項可包含n個版本的單元,每一版本的單元根據合法位置提供最大位移。舉例來說,如圖4的框402中所示,版本1與位置l1處的最大位移相關。此外,且如圖4的框404中所示,版本2與位置l2處的最大位移相關。類似地,且如圖4的框406中所示,版本n與位置ln處的最大位移相關。在實例實施例中,選擇單元版本和合法定位以使單元延遲和位移最大化。
圖5以及本說明書中的額外論述意圖提供可實施本揭露和/或其部分的合適計算環境的簡要概述。雖然不是必需的,但是本文中所描述的實施例可例如通過程式模組實施為電腦可執行指令,由例如使用者端工作站或伺服器的電腦執行。一般來說,程式模組包含常式、程式、物件、元件、資料結構以及類似物,其進行特定任務或實施特定抽象資料類型。此外,應瞭解,本揭露和/或其部分可用其它電腦系統組態實踐,包含掌上型裝置、多核處理器系統、微處理器類消費電子產品或可程式設計消費電子產品、網路PC、微型電腦、大型電腦以及類似物。本揭露還可在分散式運算環境中實踐,其中任務由通過通信網路連結的遠端處理裝置進行。在分散式運算環境中,程式模組可位於本機存放區器儲存裝置和遠端存放器儲存裝置中。
圖5示出可實施本揭露實施例中的一個或多個的合適操作環境500的一個實例。這僅是合適操作環境的一個實例且並不意圖暗示對用途或功能的範圍有任何限制。可適合於使用的其它眾所周知的計算系統、環境和/或配置包含(但不限於)個人電腦、伺服器電腦、掌上型裝置或膝上型裝置、多處理器系統、基於微處理器的系統、例如智慧手機的可程式設計消費電子產品、網路PC、微型電腦、大型電腦,包含上述系統或裝置中的任一個的分散式運算環境以及類似物。
在其最基礎的配置中,操作環境500通常可包含至少一個處理單元502以及記憶體504。依據計算裝置的準確配置和類型而定,記憶體504(儲存(除其它以外)API、程式等和/或用於實施或進行本文中所揭露的系統和方法的其它元件或指令等)可以是易失性(例如RAM)、非易失性(例如ROM、閃速記憶體等)或所述兩種的某種組合。這種最基礎配置在圖5中由虛線506示出。此外,環境500還可包含儲存裝置(可移除儲存裝置508,和/或不可移除儲存裝置510)包含(但不限於)磁片或光碟或磁帶或光帶。類似地,環境500還可具有例如鍵盤、滑鼠、筆、語音輸入等的輸入裝置514,和/或例如顯示器、揚聲器、印刷機等的輸出裝置516。例如LAN、WAN、點對點(point to point)等的一個或多個通信連接512也可包含於環境中。
操作環境500可包含至少一些形式的電腦可讀媒體。電腦可讀媒體可以是可由處理單元502或包括操作環境的其它裝置存取的任何可用的媒體。舉例來說,電腦可讀媒體可包含電腦儲存媒體和通信媒體。電腦儲存媒體可包含在任何方法或技術中實施以用於儲存例如電腦可讀指令、資料結構、程式模組或其它資料的資訊的易失性和非易失性、可移除和不可移除媒體。電腦儲存媒體可包含RAM、ROM、EEPROM、閃速記憶體或其它記憶體技術、CD-ROM、數位通用光碟(digital versatile disk,DVD)或其它光學儲存裝置、盒式磁帶、磁帶、磁碟記憶體或其它磁性儲存裝置,或可用來儲存所需資訊的任何其它非暫時性媒體。電腦儲存媒體可不包含通信媒體。
通信媒體可實施電腦可讀指令、資料結構、程式模組或例如載波的調製資料信號或其它傳送機構中的其它資料,且包含任何資訊傳遞媒體。術語“調製資料信號”可意指以對信號中的資訊進行編碼的方式設定或改變信號的特徵中的一個或多個的信號。舉例來說,通信媒體可包含例如有線網路或直接有線連接的有線媒體,以及例如音響、RF、紅外以及其它無線媒體的無線媒體。上述中的任一個的組合也應包含在電腦可讀媒體的範圍內。
操作環境500可以是使用到一個或多個遠端電腦的邏輯連接在網路環境中操作的單一電腦。遠端電腦可以是個人電腦、伺服器、路由器、網路PC、對等裝置或其它共同網路節點,且通常包含上文所描述元件中的多個或全部以及其它未提及裝置。邏輯連接可包含由可用通信媒體支持的任何方法。這類網路環境在辦公室、全企業電腦網路、企業內網(intranet)以及網際網路(Internet)中較為常見。
本文中所描述的不同方面可使用軟體、硬體或軟體和硬體的組合來採用,以實施和進行本文中所揭露的系統和方法。雖然特定裝置已貫穿本揭露敘述為實行特定功能,但是本領域技術人員將瞭解,這些裝置出於說明性目的提供,且在不脫離本揭露範圍的情況下,其它裝置可用於實行本文中所揭露的功能。
如上文所陳述,多個程式模組和資料檔案可儲存在系統記憶體504中。在處理單元502上執行時,程式模組508(例如應用程式、輸入/輸出(I/O)管理以及其它公用程式)可進行包含(但不限於)本文中所描述的操作方法的步驟中的一個或多個的過程,舉例來說,所述操作方法例如圖1a中所示出的方法100以及圖2中所示出的方法200。操作環境500還可以藉由通信連接512可操作地連接到合適的製造工具和設備520,例如,用於製造如圖1a的方法中所示的IC。
此外,本揭露的實例可實踐於電氣電路中,所述電氣電路包括離散電子元件、含有邏輯門的封裝的或集成的電子晶片、利用微處理器的電路,或實踐於含有電子元件或微處理器的單一晶片上。舉例來說,本揭露的實例可經由系統晶片(system-on-a-chip,SOC)實踐,所述系統晶片中圖5中所示出的元件中的每一個或中的多個可集成到單個積體電路上。這類SOC裝置可包含一個或多個處理單元、圖形單元、通信單元、系統虛擬化單元以及各種應用程式功能,上述中的所有集成(或“燒錄(burned)”)到晶片襯底上作為單個積體電路。在經由SOC操作時,本文中所描述的功能可經由與單個積體電路(晶片)上的操作環境500的其它元件集成的特殊應用邏輯來操作。本揭露的實例也可使用能夠進行例如與(AND)、或(OR)以及非(NOT)的邏輯操作的其它技術實踐,包含(但不限於)機械技術、光學技術、流體技術以及量子技術。另外,本揭露的實例可在通用電腦內或在任何其它電路或系統中實踐。
根據一實施例,用於單元交換的方法包括:確定用於交換第一單元的位置;在確定的位置處確定用於單元放置的多個合法定位;在多個合法定位處確定用於放置的多個單元;基於與多個單元中的每一個相關的定時資訊而從多個單元中確定第二單元;以及用第二單元交換第一單元。上述的至少一步驟是由處理器所執行。
根據一實施例,確定位置包括確定用於交換的合法位置,合法位置包括用於單元放置的至少一個合法定位。
根據一實施例,在確定的位置處確定多個合法定位包括使用位置搜索視窗來確定多個合法位置。
根據一實施例,確定多個單元包括確定與第一單元相關的單元類型的多個版本。
根據一實施例,確定與第一單元相關的單元類型的多個版本包括確定與在放置於對應合法定位處時具有相關物理設計約束的第一單元相關的單元類型的多個版本,相關物理設計約束並不違反電路的物理設計約束。
根據一實施例,確定用於交換第一單元的位置包括:識別與第一單元相關的第一位置;確定第一位置是用於單元放置的合法位置;以及回應於確定第一位置並不是合法位置而確定第二位置,第二位置包括用於單元放置的合法位置。
根據一實施例,從多個單元中確定第二單元包括:確定多個單元中的每一個的最小位移;從多個單元中確定使最小位移以及單元延遲最小化的第二單元。
根據一實施例,從多個單元中確定第二單元包括:確定多個單元中的每一個的最大位移;從多個單元中確定使單元延遲以及最大位移最大化的第二單元。
根據一實施例,確定最大位移位置包括根據用於確定多個合法定位的位置搜索視窗的初始定位確定最大位移。
根據一實施例,用於單元交換的方法包括還包括創造包括第二單元的積體電路的光罩,並基於所創造的光罩製造積體電路。
根據一實施例,用於單元交換的系統包括:記憶體儲存裝置;以及儲存指令的處理單元,其耦接到記憶體儲存裝置,其中處理單元用於執行指令,並且其中指令在由處理單元執行時操作以:確定違反與電路相關的物理設計約束的單元;確定用於單元交換的位置;在確定的位置處確定多個合法定位;確定多個合法定位的多個單元版本;以及從多個單元版本中確定用於與違反與電路相關的物理設計約束的單元交換的單元版本,單元版本是基於與多個單元版本中的每一個相關的定時資訊而確定。
根據一實施例,操作以確定用於單元交換的位置的處理單元包括操作以確定用於單元放置的至少一個合法定位存在於定位處的處理單元。
根據一實施例,定時資訊包括單元延遲。
根據一實施例,操作以從多個單元版本中確定單元版本的處理單元包括操作以基於與多個單元版本相關的位移資訊以及定時資訊而確定單元版本的處理單元。
根據一實施例,位移資訊包括確定的位置處的多個合法定位中的每一個的最小位移以及最大位移。根據一實施例,非暫時性電腦可讀媒體儲存在執行時進行用於單元交換的方法的指令集合,由指令集合執行的方法包含:確定用於交換的第一單元;確定用於交換第一單元的位置;在確定的位置處確定用於單元放置的多個合法定位;為多個合法定位確定多個單元;基於與多個單元中的每一個相關的定時資訊而從多個單元中確定第二單元;以及用第二單元交換第一單元。
根據一實施例,定時資訊包括單元延遲。
根據一實施例,第二單元是與第一單元相關的單元類型的單元版本,單元版本是基於位移資訊而確定,位移資訊包括確定的位置處的多個合法定位中的每一個的最小位移以及最大位移。
根據一實施例,確定單元版本以最大化位移並最大化單元延遲。
根據一實施例,確定單元版本以最小化位移並最小化單元延遲。
在實例實施例中,本文中所描述的方法、設備以及系統中的任一個可與各種基於掃描的電路或部分地基於掃描的電路結合使用,且與各種診斷程式結合。此外,可利用所揭露方法、設備以及系統來確定與所識別系統性缺陷相關的故障類型。故障類型可包含(例如)固定故障、轉換故障、保持時間故障以及其它故障。此外,使用根據所揭露技術生成的測試集合識別的故障類型不必為特定類型,而是能夠根據實施方案而變化。
前文概述若干實施例的特徵以使得本領域的技術人員可更好地理解本揭露的各方面。本領域的技術人員應瞭解,其可以易於使用本揭露作為設計或修改用於進行本文中所介紹的實施例的相同目的和/或獲得相同優勢的其它方法和結構的基礎。本領域的技術人員還應認識到,這類等效構造並不脫離本揭露的精神和範圍,且本領域的技術人員可在不脫離本揭露的精神和範圍的情況下在本文中進行各種改變、替代以及更改。
100‧‧‧方法/流程
102‧‧‧用戶設計
104‧‧‧合成
106‧‧‧單元庫
108‧‧‧邏輯閘層次網表
110‧‧‧光罩
112‧‧‧IC製造
122、124、126、128、130、302、304、306、402、404、406‧‧‧框
200‧‧‧方法
202、204、206、208、210、212、214、216‧‧‧操作
500‧‧‧操作環境
502‧‧‧處理單元
504‧‧‧記憶體
506‧‧‧虛線
508‧‧‧可移除儲存裝置
510‧‧‧不可移除儲存裝置
512‧‧‧通信連接
514‧‧‧輸入裝置
516‧‧‧輸出裝置
520‧‧‧製造設備
l1、l2、ln‧‧‧位置
S1、S2、S3、S4‧‧‧位點
在結合附圖閱讀時,從以下詳細描述最好地理解本揭露的各方面。應注意,根據行業中的標準慣例,各種特徵未按比例繪製。實際上,為了論述清楚起見,可任意增大或減小各種特徵的尺寸。
圖1a是根據一些實施例的實例積體電路設計以及製造流程的流程圖。
圖1b是根據一些實施例的用於單元放置的位置的物理佈局的實例示意圖。
圖2是示出根據一些實施例的用於單元交換的方法的流程圖。
圖3是示出根據一些實施例的放置位置選擇的實例的圖。
圖4是示出根據一些實施例的放置位置選擇的另一實例的圖。
圖5示出可實施本揭露實例中的一個或多個的合適操作環境的實例。
Claims (1)
- 一種用於單元交換的方法,包括: 確定用於交換第一單元的位置; 在所述確定的位置處確定用於單元放置的多個合法定位; 在所述多個合法定位處確定用於放置的多個單元; 基於與所述多個單元中的每一個相關的定時資訊而從所述多個單元中確定第二單元;以及 用所述第二單元交換所述第一單元; 其中上述的至少一步驟是由處理器所執行。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862624182P | 2018-01-31 | 2018-01-31 | |
US62/624,182 | 2018-01-31 | ||
US16/257,822 | 2019-01-25 | ||
US16/257,822 US10977416B2 (en) | 2018-01-31 | 2019-01-25 | Timing driven cell swapping |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201935289A true TW201935289A (zh) | 2019-09-01 |
Family
ID=67391443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108103441A TW201935289A (zh) | 2018-01-31 | 2019-01-30 | 用於單元交換的方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US10977416B2 (zh) |
CN (1) | CN110096725A (zh) |
TW (1) | TW201935289A (zh) |
Families Citing this family (2)
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 |
US10977416B2 (en) | 2018-01-31 | 2021-04-13 | Taiwan Semiconductor Manufacturing Company, Ltd. | Timing driven cell swapping |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7036103B2 (en) * | 1999-10-14 | 2006-04-25 | Synopsys, Inc. | Detailed placer for optimizing high density cell placement in a linear runtime |
US7366997B1 (en) * | 2005-01-11 | 2008-04-29 | Synplicity, Inc. | Methods and apparatuses for thermal analysis based circuit design |
US8495534B2 (en) * | 2010-06-08 | 2013-07-23 | International Business Machines Corporation | Post-placement cell shifting |
JP2015053001A (ja) * | 2013-09-09 | 2015-03-19 | 株式会社東芝 | 半導体集積回路のレイアウト方法、及び、半導体集積回路のレイアウトプログラム |
US9996657B2 (en) * | 2016-07-28 | 2018-06-12 | Taiwan Semiconductor Manufacturing Company Limited | Systems and methods for generating a multiple patterning lithography compliant integrated circuit layout |
US10977416B2 (en) | 2018-01-31 | 2021-04-13 | Taiwan Semiconductor Manufacturing Company, Ltd. | Timing driven cell swapping |
-
2019
- 2019-01-25 US US16/257,822 patent/US10977416B2/en active Active
- 2019-01-30 TW TW108103441A patent/TW201935289A/zh unknown
- 2019-01-31 CN CN201910098359.XA patent/CN110096725A/zh active Pending
-
2021
- 2021-04-12 US US17/227,462 patent/US11663392B2/en active Active
-
2023
- 2023-05-23 US US18/322,156 patent/US20230297758A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US10977416B2 (en) | 2021-04-13 |
US20210232749A1 (en) | 2021-07-29 |
US11663392B2 (en) | 2023-05-30 |
US20190236239A1 (en) | 2019-08-01 |
US20230297758A1 (en) | 2023-09-21 |
CN110096725A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11475195B2 (en) | Computer-implemented method and computing system for designing integrated circuit by considering timing delay | |
JP4669896B2 (ja) | プリミティブ構築標準セルを作成するための方法 | |
US7480878B2 (en) | Method and system for layout versus schematic validation of integrated circuit designs | |
US8954915B2 (en) | Structured placement of hierarchical soft blocks during physical synthesis of an integrated circuit | |
TW202018548A (zh) | 製造積體電路的方法以及用於設計積體電路的計算系統 | |
US10928442B2 (en) | Computer implemented methods and computing systems for designing integrated circuits by considering back-end-of-line | |
US8238190B2 (en) | Clock-gated model transformation for asynchronous testing of logic targeted for free-running, data-gated logic | |
TW202205128A (zh) | 針對具有嵌入式邏輯的多位元記憶體的系統與方法 | |
US11030383B2 (en) | Integrated device and method of forming the same | |
US7870528B2 (en) | Method and system for unfolding/replicating logic paths to facilitate modeling of metastable value propagation | |
US9298872B2 (en) | Apportioning synthesis effort for better timing closure | |
TWI789911B (zh) | 用於電容值提取的系統、方法及儲存媒體 | |
US20230297758A1 (en) | Timing driven cell swapping | |
US7885801B2 (en) | Modeling asynchronous behavior from primary inputs and latches | |
US20130198703A1 (en) | Virtual Flat Traversal Of A Hierarchical Circuit Design | |
JP2010257164A (ja) | 半導体集積回路装置の設計方法およびプログラム | |
US8782589B1 (en) | Soft pin insertion during physical design | |
US6820048B1 (en) | 4 point derating scheme for propagation delay and setup/hold time computation | |
US10360331B2 (en) | Scoped simulation for electrostatic discharge protection verification | |
TW202018550A (zh) | 積體電路設計方法 | |
US10885243B1 (en) | Logic partition reporting for integrated circuit design | |
US9785736B2 (en) | Connectivity-aware layout data reduction for design verification | |
Li et al. | iPD: An Open-source intelligent Physical Design Toolchain | |
KR20210107285A (ko) | 반도체 장치의 설계 방법 및 이를 수행하는 설계 시스템 | |
TW202018870A (zh) | 統計模型的開發方法及開發系統 |