TW202242699A - 閘級網表移位方法 - Google Patents
閘級網表移位方法 Download PDFInfo
- Publication number
- TW202242699A TW202242699A TW110129534A TW110129534A TW202242699A TW 202242699 A TW202242699 A TW 202242699A TW 110129534 A TW110129534 A TW 110129534A TW 110129534 A TW110129534 A TW 110129534A TW 202242699 A TW202242699 A TW 202242699A
- Authority
- TW
- Taiwan
- Prior art keywords
- gate
- netlist
- mapping
- target
- standard cells
- 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/32—Circuit design at the digital level
- G06F30/323—Translation or migration, e.g. logic to logic, hardware description language [HDL] translation or netlist translation
-
- 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/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
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/06—Structured ASICs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
一種用於將現有的ASIC設計從一種半導體製程移位到另一種半導體製程的方法及系統。在一些實施例中,一種用於對現有的ASIC設計進行移位的方法包括:將閘級網表每次一列地剖析成用於形成ASIC設計的一個或多個標準單元;形成具有映射規則的多個映射表,所述映射規則用於將經剖析的所述一個或多個標準單元映射到在第二半導體製程中實作的等效目標標準單元;使用所述多個映射表將經剖析的所述一個或多個標準單元映射到等效目標標準單元;以及產生以等效目標標準單元來描述ASIC設計的目標閘級網表。
Description
在本發明的實施例中闡述的技術大體來說涉及特殊應用積體電路,且更具體來說,涉及閘級網表移位方法、機器可讀媒體及積體電路設計系統。
特殊應用積體電路(application specific integrated circuit,ASIC)被廣泛用於實作用於大規模生產的多功能電子電路。ASIC可使用全訂製設計技法(full-custom technique)或標準單元技法來設計。在全訂製設計技法中,通過手來對小區塊(或單元)進行手動佈局,一次一個矩形或多邊形地構建電晶體,然後是邏輯閘,且然後是更複雜的積體電路。對於複雜的ASIC晶片設計,全訂製設計技法的佈局及組裝製程要求大量高技能的設計人員及長的開發週期。
另一方面,用於設計晶片的標準單元技法是一種簡單得多的製程並且已經獲得了廣泛應用。標準單元是連接在一起以實行簡單的邏輯功能的一個或多個電路元件(例如電晶體、電容器及其他基礎電路元件)的群組。還為標準單元創建物理佈局及時序行為模型。然後將預先設計的標準單元的大的群組組裝成標準單元庫,所述標準單元庫通常由最終將生產實際晶片的製作廠商以名義成本提供。這些標準單元庫的實例可從例如臺灣半導體製造公司(Taiwan Semiconductor Manufacturing Company,TSMC)等製作廠商處獲得。此外,ASIC製作廠商還可提供ASIC設計技術庫,所述ASIC設計技術庫包括關於製程技術的信息(包括每一金屬層的線寬及間距、通孔規則)以及電信息(例如每一層的電阻及層之間的電容)。
由於半導體製作技術正在向10奈米以下的溝道寬度(此會提供改善的晶片面積利用率及降低的功耗)發展,因此ASIC設計人員及電子公司需要盡可能快且高效地將其現有的設計移位到最新技術,以避免失去銷售其產品及設計的任何機會。一般來說,將舊設計轉換為新技術要求工程師從設計的暫存器傳輸級(Register Transfer Level,RTL)描述開始便經歷漫長而乏味的設計過程。具有幾個設計團隊參與設計過程的多個階段的公司將因此不得不花費大量的時間及成本讓他們的團隊將現有的設計移位到最新的技術。
現有的ASIC設計從一種技術到另一種技術的移位過程通常涉及自動合成軟體工具,所述自動合成軟體工具可獲取積體電路的網表描述,並將所述網表描述映射到包括最新目標技術的標準單元的等效網表中。然而,此過程非常耗時且要求昂貴的自動化軟體工具以及對製作廠商的標準單元庫的存取。
因此,期望克服先前網表移位方法的前述缺陷並在設計工程師部分的努力最小的情況下為現有的ASIC設計移位提供快速的周轉時間。
在背景技術部分中公開的信息僅旨在為以下闡述的本發明的各種實施例提供上下文,且因此本背景部分可包括未必是現有技術信息(即,所屬領域中的一般技術人員已知的信息)的信息。因此,在本背景技術部分中闡述當前命名的發明人的工作的範圍內,所述工作以及在提出申請時可能不符合現有技術的說明的方面既不明確也不隱含地被認為是針對本公開的現有技術。
本發明實施例提供一種將具有特殊應用積體電路設計的閘級網表從第一半導體製程移位到第二半導體製程的方法,包括:接收以硬體描述語言指明的所述特殊應用積體電路設計;將所述閘級網表每次一列地剖析成用於形成所述特殊應用積體電路設計的一個或多個標準單元;形成具有映射規則的多個映射表,所述映射規則用於將經剖析的所述一個或多個標準單元映射到在所述第二半導體製程中實作的等效目標標準單元;使用所述多個映射表將經剖析的所述一個或多個標準單元映射到所述等效目標標準單元;產生以所述等效目標標準單元來描述所述特殊應用積體電路設計的目標閘級網表;以及輸出用於以所述第二半導體製程進行製造的所述特殊應用積體電路設計的經移位物理佈局。
本發明實施例提供一種非暫時性機器可讀媒體,儲存有指令,所述指令在由處理器執行時實行一種將積體電路的網表從第一技術庫移位到第二技術庫的方法,所述方法包括:接收以硬體描述語言指明的特殊應用積體電路設計;接收原始網表;每次一列地剖析所述原始網表,以定義一個或多個標準單元;產生包含映射規則的多個映射表,所述映射規則將所述一個或多個標準單元映射到在所述第二技術庫中實作的等效目標標準單元;使用所述多個映射表將所述一個或多個標準單元映射到所述等效目標標準單元中的相應的一個或多個等效目標標準單元;產生與所述第二技術庫相關聯的目標網表,所述目標網表以所述等效目標標準單元來描述所述積體電路;以及輸出用於以所述第二技術庫進行製造的所述特殊應用積體電路設計的經移位物理佈局。
本發明實施例提供一種積體電路設計系統,包括:電腦,具有處理器及記憶體;軟體應用,由所述電腦的所述處理器運行,且常駐在所述電腦的所述記憶體中;所述軟體應用包括多個軟體功能模組,所述多個軟體功能模組包括:剖析器,被配置成接收用於描述現有的特殊應用積體電路的閘級網表,並將所述閘級網表剖析成一個或多個標準單元;單元映射器,耦合到所述剖析器且被配置成使用多個映射表將在原始的一組技術庫中描述的經剖析的所述一個或多個標準單元映射到在新的一組技術庫中描述的等效目標標準單元,其中所述多個映射表提供用於將經剖析的所述一個或多個標準單元映射到所述等效目標標準單元的映射規則,且其中所述映射規則是基於所述原始的一組技術庫及所述新的一組技術庫;以及目標網表寫入器,耦合到所述單元映射器且被配置成產生以所述等效目標標準單元來描述所述特殊應用積體電路的目標閘級網表。
以下參照附圖來闡述本公開的各種示例性實施例,以使所屬領域中的一般技術人員能夠製作及使用本公開。對於所屬領域中的一般技術人員來說將顯而易見的是,在閱讀本公開之後,在不背離本公開的範圍的條件下,可對本文闡述的實例進行各種改變或修改。因此,本公開不限於本文闡述及示出的示例性實施例及應用。另外,在本文中公開的方法中步驟的特定次序和/或層次僅是示例性方式。基於設計偏好,所公開的方法或製程的步驟的特定次序或層次可在保持在本公開的範圍內的同時被重新排列。因此,所屬領域中的一般技術人員將理解,除非另有明確說明,否則本文公開的方法及技法以樣本次序呈現各種步驟或動作,且本公開不限於所呈現的特定次序或層次。
如圖1中所示,自動ASIC合成工具102接受例如以下輸入:閘級來源設計103、與閘級來源設計103相關聯的來源設計約束105、技術庫的來源組、及技術庫的目標組104。在一些實施例中,來源設計約束105可為限制積體電路設計的可變性的任意組的規則、障礙或局限。來源設計約束105可還包括指明積體電路的外部時序行為的時序約束。技術庫的來源組及技術庫的目標組包括標準單元的邏輯描述及物理描述,且可能包括可用於特定半導體製造製程的積體電路設計中的實例化(instantiation)的客制邏輯單元、功能塊及宏單元。
圖1示出根據一些實施例的描述使用不涉及自動ASIC合成工具的組件映射技法的閘級網表移位過程100的流程圖。在一些實施例中,閘級網表移位過程100接收常常使用硬體描述語言(hardware description language,HDL)(例如Verilog HDL)指明的ASIC設計108。此外,閘級網表移位過程100包括組件映射引擎101,所述組件映射引擎101接受例如ASIC設計108的閘級來源設計103(例如,“金來源功能閘極網表(Golden Source Functional Gate Netlist)”)及與閘級來源設計103相關聯的來源設計約束105。在一些實施例中,閘級來源設計103可由RTL編譯器合成工具從暫存器傳輸級(RTL)源代碼合成。在又一些實施例中,閘級來源設計103包括代表要移位的電路的分層的或扁平的閘級網表。設計中的各種信號被稱為網路(net)。分層網表由一系列區塊組成,而扁平網表僅包括一個區塊。網表區塊可包括組件及它們使用網路內連的說明。可將組件簡化成組合邏輯閘或順序邏輯閘,或者它們可為下部層級的分層區塊。舉例來說,組件可為表示單個組合邏輯功能(例如,“及”、“反及”、“反或”、“或”、“互斥或”、“反互斥或”等)的標準單元或者單個儲存元件(例如,用於順序邏輯的正反器或鎖存器)。作為另一種選擇,組件可為可由一組標準單元代表的庫單元。在再一實例中,組件也可為代表一組邏輯功能及儲存的可程式原語。在替代實施例中,組件可為表示複雜邏輯功能的宏塊,例如記憶體、計數器、移位器、加法器、乘法器等。可將組件中的每一者進一步簡化成用於形成組合邏輯或順序邏輯的標準單元。
在一些實施例中,組件映射引擎101可包括在數據庫中組織的多個映射表102。此外,所述多個映射表102的每一列可將標準單元從一種半導體製作技術映射到另一種半導體製作技術。舉例來說,所述多個映射表102中的一者中的一個列可將在28 nm製程中闡述的標準組件(例如,“及”、“反及”、“反或”、“或”、“互斥或”、“反互斥或”等)映射到10 nm製程中的等效組件。在組件映射引擎101中實作的示例性映射表如下表1中所示。在示例性映射表1中,第一行列出來自來源技術庫的標準組件。來源技術庫可包括在過時的半導體製程(例如65 nm)中實作的多個標準單元。在一些實施例中,可產生所述多個映射表的數據庫。在一個示例性實施例中,數據庫中的所述多個映射表中的每一者可基於來源技術庫及目標技術庫來識別或索引。在一些實施例中,來源技術庫可還包括由自動放置及佈線工具使用的佈局視圖、示意性視圖及模擬視圖。表1的第二行定義第一行中所列出的標準單元的輸入及輸出。舉例來說,表1列出雙輸入“NAND2”標準單元,所述雙輸入“NAND2”標準單元具有輸入端子“A”及“B”以及輸出端子“Z”。此外,第三行列出來自目標技術庫的標準單元。目標技術庫可包括在新的半導體製程(例如,10 nm)中實作的多個標準單元。在一些實施例中,目標技術庫可還包括由自動放置及佈線工具使用的佈局視圖、示意性視圖及模擬視圖,所述自動放置及佈線工具使用目標半導體製造技術產生用於製作的電路佈局。表1的第四行定義第三行中所列出的標準單元的輸入及輸出。舉例來說,表1列出具有輸入端子“In1”及“In2”以及輸出端子“Out”的雙輸入“ND2”標準單元。這樣一來,表1的第一行及第三行提供來源技術庫中所定義的標準單元到目標技術庫中所定義的標準單元的一對一映射。此外,表1的第二行及第四行提供來源技術庫中所定義的標準單元的輸入端子及輸出端子到目標技術庫中所定義的標準單元的輸入端子及輸出端子的一對一映射。舉例來說,根據表1中指明的映射規則,來源技術庫的雙輸入“NAND2”標準單元被映射到目標技術庫的雙輸入“ND2”標準單元,“NAND2”標準單元的輸入端子“A”及“B”被映射到“ND2”標準單元的輸入端子“In1”及“In2”,且“NAND2”標準單元的輸出端子“Z”被映射到“ND2”標準單元的輸出端子“Out”。
表1
來源技術庫單元 | 來源庫單元介面 | 目標技術庫單元 | 目標庫單元介面 |
INV | A、Z | INV | In、Out |
BUF | A、Z | BUF | In、Out |
NAND2 | A、B、Z | ND2 | In1、In2、Out |
NAND3 | A、B、C、Z | ND3 | In1、In2、In3、Out |
NOR2 | A、B、Z | NR2 | In1、In2、In3、Out |
NOR3 | A、B、C、Z | NR3 | In1、In2、In3、Out |
FF | D、Q、CLK、SI、SE | FF1B | d、q、ck、se、se |
… | … | … | … |
在一些實施例中,組件映射引擎101可包括網表剖析器及目標網表寫入器,網表剖析器被配置成實行閘級來源設計103的基於列的剖析,目標網表寫入器被配置成使用所述多個映射表102產生目標閘級網表106。以下將更詳細地闡述網表剖析器及目標網表寫入器。
如圖1中所示,可由自動放置及佈線工具使用由組件映射引擎101提供的目標閘級網表106來產生物理佈局107,然後可將物理佈局107用於使用技術庫的目標組104中指明的新的半導體製造製程來完成及製造閘級來源設計103中所描述的ASIC。在一些示例性實施例中,閘級網表移位過程100可輸出用於以目標製程進行製造的ASIC設計的經移位物理佈局109。
具有組件映射引擎101的閘級網表移位過程100的一個示例性優點是會減少將設計從一種技術製程移位到另一種技術製程所需的運行時間。此是由於組件映射引擎101,所述組件映射引擎101使用所述多個映射表102實行從一種半導體製作技術到另一種半導體製作技術的標準單元映射。閘級網表移位過程100的另一示例性優點在於,閘級網表移位過程100提供用於在不使用第三方自動ASIC合成工具的條件下將設計從一種半導體技術製程移位到另一種半導體技術製程的改善的能力,此也使得能夠實作優化功率、性能及面積(power, performance and area,PPA)設計度量的快速設計技術協同優化(Design Technology Co-Optimization,DTCO)解決方案。
圖2示出根據一些實施例的積體電路設計系統200的方塊圖,積體電路設計系統200包括:組件映射引擎101,接受閘級來源設計103作為輸入並產生目標閘級網表106、處理器202、及記憶體204。
在一個實施例中,處理器202執行常駐在例如記憶體204等機器可讀媒體上的指令。在一些實施例中,可將指令從例如以下機器可讀媒體加載到記憶體204(記憶體204可包括隨機存取記憶體(Random Access Memory,RAM)、動態RAM(dynamic RAM,DRAM)等)中:光學媒體(光碟(compact disk,CD)、數位光碟(digital video disk,DVD)等)、磁媒體(磁碟、磁帶等)、或兩者的組合。處理器202可從記憶體204檢索指令並執行所述指令來實行以下闡述的組件映射引擎103的操作。
注意,圖2中所示的組件中的任意者或全部以及相關聯的硬體可用於系統200的各種實施例中。然而,應理解,系統200的其他配置可包括比圖2中所示裝置多或少的裝置。
電腦系統通常包括至少一個處理器202,所述至少一個處理器202經由匯流排子系統與多個外圍裝置進行通信。這些外圍裝置可包括儲存子系統、用戶介面輸入裝置、用戶介面輸出裝置及網路介面子系統,所述儲存子系統包括記憶體子系統及文件儲存子系統。輸入及輸出裝置使得用戶能夠與電腦系統進行交互。
如圖2中所示,組件映射引擎101包括所述多個映射表102,所述多個映射表102提供用於將標準單元從一種半導體製作技術映射到另一種半導體製作技術的映射規則。
在一些實施例中,組件映射引擎101可還包括網表剖析器201,網表剖析器201被配置成每次一列地剖析所接收的閘級來源設計103。在又一些實施例中,閘級來源設計103可為包含ASIC的網表描述的文本文件,並且網表剖析器201可被配置成對代表ASIC的文本文件進行剖析。此外,網表剖析器201可包括剖析算法,所述剖析算法剖析網表文本文件以獲得經剖析的網表數據,經剖析的網表數據代表ASIC的裝置數據、裝置屬性數據、宏數據、宏屬性數據、連接數據及連接屬性數據。
在又一些實施例中,網表剖析器201可將從閘級來源設計103提取的經剖析的來源網表數據發送到單元映射器203。在一些實施例中,單元映射器203可被配置成使用所述多個映射表102將從閘級來源設計103提取的經剖析的網表數據映射到目標網表數據。在一些實施例中,來源網表數據及目標網表數據可包括標準單元的名稱、標準單元的連接屬性、宏、或宏屬性。
在一個示例性實施例中,單元映射器203可還被配置成為組合邏輯元件以及順序邏輯元件提供直接的一對一映射。在一些實施例中,單元映射器203可還能夠在經剖析的來源網表數據的組合邏輯元件或順序邏輯元件與目標製作技術中的一個或多個組合邏輯元件或順序邏輯元件對應時,基於所述多個映射表102,實行一對多映射。
在一些實施例中,單元映射器203可還包括“包裝單元”庫或數據庫205,所述“包裝單元”庫或數據庫205被提供給組件映射引擎101,用於將例如微處理器及微控制器等大的單元或單元的群組從閘級來源設計103移位到目標閘級網表106(圖1)。在一些實施例中,每一包裝單元具有與標準單元中的一或多者的對應的群組的覆蓋面積相匹配的覆蓋面積。在一些實施例中,庫或數據庫205可包括客制邏輯單元、功能區塊及宏單元,用於將在閘級來源設計103中找到的客制邏輯單元、功能區塊或宏單元移位到目標閘級網表106。
在一些實施例中,組件映射引擎101可還包括目標網表寫入器207,所述目標網表寫入器207耦合到映射器203且被配置成產生目標閘級網表106。在又一些實施例中,目標網表寫入器207可被配置成產生包含經移位ASIC的閘級網表描述的文本文件。這樣一來,經移位ASIC的閘級網表描述可包括經移位ASIC的裝置數據、裝置屬性數據、宏數據、宏屬性數據、連接數據及連接屬性數據。
圖3及圖4是根據一些實施例的分別由組件映射引擎101實行的來源閘級網表剖析、映射、以及目標閘級網表產生過程的方塊圖。
現在參照圖3,網表剖析器201(圖2)可被配置成接收文本文件301,文本文件301包括需要移位的ASIC晶片設計的閘級網表。在一些實施例中,具有閘級網表的文本文件可從Verilog格式或VHDL格式合成。
在又一些實施例中,網表剖析器201開始每次一列地剖析文本文件301,直到它到達最後一列或文件結束(End of File,EoF)字符。如圖3中所示,網表剖析器201可將文本文件301的第一列剖析成三輸入反或閘303,所述三輸入反或閘303具有連接到其“A”輸入端子的節點“net11”、連接到其“B”輸入端子的節點“net12”、以及連接到其“C”輸入端子的節點“net13”,而節點“out11”連接到反或閘的輸出端子。根據又一些實施例,網表剖析器201隨後將文本文件301的剩餘列剖析成反相器305、第一正反器307、兩輸入反及閘309及第二正反器311。在一些實施例中,網表剖析器201可將文本文件301中的閘級網表剖析成例如有向圖等數據結構,圖的頂點用作經剖析的標準單元(例如,三輸入反或閘303、反相器305、第一正反器307或兩輸入反及閘309)且有向邊用作經剖析的標準單元的輸入及輸出。在其他實施例中,網表剖析器201可利用有向非循環圖來代表來自文本文件301的經剖析的標準單元。
在又一些實施例中,映射器203(圖2)可在所述多個映射表102的第一行中查找每一經剖析的標準單元,以尋找匹配條目。映射器可隨後基於所述多個映射表102中所定義的映射規則,將每一經剖析的標準單元映射到在目標半導體製作技術中實作的等效標準單元。舉例來說,映射器203可使用第一映射規則315將反相器305映射到在目標半導體製作技術中實作的反相器中。這樣一來,可使用第二映射規則317將所述兩輸入反及閘309映射到在目標半導體製作技術中實作的兩輸入ND2閘。此外,可使用第三映射規則319將三輸入反或閘303映射到在目標半導體製作技術中實作的三輸入NR3閘。且最後,可使用第四映射規則324將第一正反器307及第二正反器311各自映射到在目標半導體製作技術中實作的正反器中。
現在參照圖4,可由目標網表寫入器207(圖2)基於所述多個映射表102中所定義的映射規則來產生目標網表文本文件401。更具體來說,根據一些實施例,可由目標網表寫入器207(圖2)基於第一映射規則315、第二映射規則317、第三映射規則319及第四映射規則324來產生目標網表文本文件401。在又一些實施例中,可將目標網表編碼成ASCII文本或Unicode文本。
在又一些實施例中,目標網表寫入器207可在目標網表文本文件401中產生三輸入NR3閘403,所述三輸入NR3閘403與所接收的文本文件301中的三輸入反或閘303對應。同樣地,目標網表寫入器207可還在目標網表文本文件401中產生反相器405、第一正反器407、兩輸入ND2閘409及第二正反器411,所述反相器405、第一正反器407、兩輸入ND2閘409及第二正反器411分別與所接收的文本文件301中所定義的反相器305、第一正反器307、兩輸入反及閘309及第二正反器311對應。
圖5示出根據一些實施例的用於產生映射表的數據庫507的流程圖,所述映射表指明用於將多個來源組件庫503中所定義的標準單元移位到多個目標組件庫501中所定義的等效組件的映射規則。在一些實施例中,所述多個來源組件庫503可包括一個或多個標準單元庫及宏單元庫。此外,所述多個來源組件庫503在可能不是最近的來源製作技術中定義標準單元及宏單元。另一方面,所述多個目標組件庫501在最新的目標或期望的製作技術中定義等效的標準單元及宏單元。舉例來說,所述多個來源組件庫503可在65 nm製作技術中指明標準單元及宏單元,而所述多個目標組件庫501可在10 nm製作技術中指明等效的標準單元及宏單元。
在一些實施例中,映射表的數據庫507可由映射表產生器505產生,映射表產生器505被配置成接受來源組件庫503及目標組件庫501作為輸入。在又一些實施例中,映射表產生器505可基於設計因素(例如候選單元的覆蓋面積及複雜性)從所述多個目標組件庫501選擇等效的標準單元及宏單元。如本文中所使用的,標準單元的覆蓋面積意指其佈局的規劃尺寸。此外,標準單元的複雜性由用於實作標準單元的功能的邏輯閘的數目決定。舉例來說,在實作相同功能的同時,具有較少邏輯閘的標準單元沒有具有大量邏輯閘的標準單元複雜。
圖6示出根據一些實施例的用於將現有ASIC設計移位到最新的製作技術的方法的流程圖。在操作600處,接收ASIC設計。在一些實施例中,可使用硬體描述語言(HDL)(例如Verilog HDL)來指明ASIC設計。
在操作601處,可每次一列地剖析描述現有的ASIC設計的來源閘級網表且可提取用於形成現有的ASIC設計的一個或多個標準單元。在一些實施例中,閘級網表可為由RTL編譯器合成工具從暫存器傳輸級(RTL)源代碼合成的文本文件。在又一些實施例中,來源閘級網表可包括代表要移位的現有的ASIC的分層的或扁平的閘級網表。此外,來源閘級網表可包括組件及它們使用網路內連的說明。此外,可將組件來源閘級網表簡化成組合邏輯閘或順序邏輯閘,或者它們可為下部層級的分層區塊。在一些實施例中,可將來源閘級網表剖析成例如有向圖等數據結構,圖的頂點用作經剖析的標準單元且有向邊用作經剖析的標準單元的輸入及輸出。
在操作603處,可形成包括映射規則的多個映射表,所述映射規則用於將在第一半導體製程中實作的經剖析的所述一個或多個標準單元映射到在第二半導體製程中實作的等效目標標準單元。在一些實施例中,可基於所述多個來源組件庫503及所述多個目標組件庫501來形成所述多個映射表。在一些實施例中,所述多個映射表的每一列可將標準單元或宏單元從一種半導體製作技術映射到另一種半導體製作技術。在又一些實施例中,如果在所述多個目標組件庫501中存在兩個或更多個等效的候選標準單元或宏單元,則映射表產生器505可基於候選單元的覆蓋面積、組成及複雜性來產生候選標準單元或宏單元的所述多個映射表。
在操作604處,可使用所述多個映射表將標準單元或宏單元映射到等效的目標標準單元。在一個示例性實施例中,映射可為一對一的,其中標準單元或宏單元被映射到一個等效的候選標準單元或宏單元。在另一實施例中,當經剖析的來源閘級網表的標準宏單元與目標製程中的一個或多個等效的候選標準單元或宏單元對應時,映射也可為一對多的。
在操作606處,可產生目標閘級網表。在一些實施例中,目標網表寫入器207(圖2)可被配置成產生目標閘級網表。在又一些實施例中,所產生的目標閘級網表可為包含經移位ASIC的閘級網表描述的文本文件。隨後,可由自動放置及佈線工具使用目標閘級網表來產生經移位ASIC的物理佈局,然後可使用目標半導體製程利用所述物理佈局來完成及製造經移位ASIC。
在操作608處,可輸出用於以目標製程進行製造的ASIC設計的經移位物理佈局。可使用常常被稱為“幾何形狀(geometry)”的經移位物理佈局來產生積體電路工具,所述積體電路工具是一系列遮罩,所述一系列遮罩各自代表ASIC的層。然後由製造商使用所述工具來製作積體電路。
在一實例中,一種將具有特殊應用積體電路設計的閘級網表從第一半導體製程移位到第二半導體製程的方法,包括:接收以硬體描述語言指明的所述特殊應用積體電路設計;將所述閘級網表每次一列地剖析成用於形成所述特殊應用積體電路設計的一個或多個標準單元;形成具有映射規則的多個映射表,所述映射規則用於將經剖析的所述一個或多個標準單元映射到在所述第二半導體製程中實作的等效目標標準單元;使用所述多個映射表將經剖析的所述一個或多個標準單元映射到所述等效目標標準單元;產生以所述等效目標標準單元來描述所述特殊應用積體電路設計的目標閘級網表;以及輸出用於以所述第二半導體製程進行製造的所述特殊應用積體電路設計的經移位物理佈局。
在相關實施例中,所述剖析還包括:提取一個或多個經剖析的標準單元的連接屬性。
在相關實施例中,所述映射規則是在所述多個映射表的每一列中進行定義的。
在相關實施例中,所述形成所述多個映射表還包括:接收來源組件庫及目標組件庫,所述來源組件庫指明用於在所述第一半導體製程中形成所述特殊應用積體電路設計的所述一個或多個標準單元,所述目標組件庫指明所述第二半導體製程中的所述等效目標標準單元;以及基於所接收的所述來源組件庫及所述目標組件庫產生所述多個映射表。
在相關實施例中,所述目標閘級網表是包括所述等效目標標準單元的連接屬性的文本文件。
在另一實例中,一種非暫時性機器可讀媒體,儲存有指令,所述指令在由處理器執行時實行一種將積體電路的網表從第一技術庫移位到第二技術庫的方法,所述方法包括:接收以硬體描述語言指明的特殊應用積體電路設計;接收原始網表;每次一列地剖析所述原始網表,以定義一個或多個標準單元;產生包含映射規則的多個映射表,所述映射規則將所述一個或多個標準單元映射到在所述第二技術庫中實作的等效目標標準單元;使用所述多個映射表將所述一個或多個標準單元映射到所述等效目標標準單元中的相應的一個或多個等效目標標準單元;產生與所述第二技術庫相關聯的目標網表,所述目標網表以所述等效目標標準單元來描述所述積體電路;以及輸出用於以所述第二技術庫進行製造的所述特殊應用積體電路設計的經移位物理佈局。
在相關實施例中,所述方法還包括:提取一個或多個標準單元的連接屬性。
在相關實施例中,所述目標網表是以ASCII格式進行編碼且包括所述等效目標標準單元的連接屬性。
在相關實施例中,所述方法還包括:產生用於將經剖析的所述一個或多個標準單元映射到使用所述第二技術庫實作的所述相應的一個或多個等效目標標準單元的映射規則,其中所述映射規則是在所述多個映射表的每一列中進行定義的。
在相關實施例中,所述方法還包括:將所述原始網表剖析成一個或多個宏單元;以及使用包裝單元數據庫將經剖析的所述一個或多個宏單元映射到等效目標宏單元。
在相關實施例中,所述方法還包括:將所述原始網表剖析成有向圖,所述有向圖的每一頂點被指派到所述一個或多個標準單元中的每一者。
在相關實施例中,所述方法還包括:從所述目標網表產生所述積體電路的物理佈局,其中所述物理佈局用於以由所述第二技術庫指明的半導體製造製程製作所述積體電路。
在相關實施例中,所述方法還包括:從所述多個映射表產生數據庫,其中所述多個映射表中的每一者是基於所述第一技術庫及所述第二技術庫來識別。
在又一實例中,一種積體電路設計系統,包括:電腦,具有處理器及記憶體;軟體應用,由所述電腦的所述處理器運行,且常駐在所述電腦的所述記憶體中;所述軟體應用包括多個軟體功能模組,所述多個軟體功能模組包括:剖析器,被配置成接收用於描述現有的特殊應用積體電路的閘級網表,並將所述閘級網表剖析成一個或多個標準單元;單元映射器,耦合到所述剖析器且被配置成使用多個映射表將在原始的一組技術庫中描述的經剖析的所述一個或多個標準單元映射到在新的一組技術庫中描述的等效目標標準單元,其中所述多個映射表提供用於將經剖析的所述一個或多個標準單元映射到所述等效目標標準單元的映射規則,且其中所述映射規則是基於所述原始的一組技術庫及所述新的一組技術庫;以及目標網表寫入器,耦合到所述單元映射器且被配置成產生以所述等效目標標準單元來描述所述特殊應用積體電路的目標閘級網表。
在相關實施例中,所述剖析器還被配置成提取一個或多個經剖析的標準單元的連接屬性。
在相關實施例中,所述映射規則是在所述多個映射表的每一列中定義的。
在相關實施例中,所述單元映射器還包括:接收來源組件庫及目標組件庫,所述來源組件庫指明用於在所述原始的一組技術庫中形成所述特殊應用積體電路的所述一個或多個標準單元,所述目標組件庫指明所述新的一組技術庫中的所述等效目標標準單元;以及基於所接收的所述來源組件庫及所述目標組件庫產生所述多個映射表。
在相關實施例中,所述目標閘級網表是包括所述等效目標標準單元的連接屬性的文本文件。
在相關實施例中,所述剖析器還被配置成將所述閘級網表剖析成有向圖,所述有向圖的頂點被指派到所述一個或多個標準單元。
在相關實施例中,所述剖析器還被配置成將所述閘級網表剖析成一個或多個宏單元,其中所述一個或多個宏單元中的至少一者是微處理器。
儘管以上已闡述了本公開的各種實施例,然而應理解,所述實施例僅以舉例方式而非限制方式呈現。同樣,各個圖可繪示示例性架構或配置,提供所述示例性架構或配置是為了使所屬領域中的一般技術人員能夠理解本公開的示例性特徵及功能。然而,所屬領域中的一般技術人員應理解,本公開並非僅限於所示出的示例性架構或配置,而是可使用各種替代架構及配置來實作。另外,如所屬領域中的一般技術人員應理解,一個實施例的一個或多個特徵可與本文中所述的另一實施例的一個或多個特徵進行組合。因此,本公開的廣度及範圍不應受上述示例性實施例中的任一示例性實施例限制。
還應理解,本文中每當使用例如“第一”、“第二”等稱謂來提及元件時均不是籠統地限制所述元件的數量或次序。而是,本文中使用這些稱謂作為區分兩個或更多個元件或區分元件的實例的便捷手段。因此,提及“第一元件”及“第二元件”並不意味著僅可採用兩個元件或者第一元件必須以某種方式在第二元件之前。
另外,所屬領域中的一般技術人員應理解,可使用各種不同的技術及技法中的任意者來表示信息及信號。舉例來說,數據、指令、命令、信息、信號、位及符號(舉例來說,在以上說明中可能提及的)可由電壓、電流、電磁波、磁場或磁性粒子、光學場或光學粒子或其任意組合來表示。
所屬領域中的一般技術人員還應理解,結合本文所公開的各個方面闡述的各種例示性邏輯區塊、模組、處理器、構件、電路、方法及功能中的任意者可由電子硬體(例如,數位實施方式、類比實施方式或兩者的組合)、韌體、包含指令的各種形式的程式或設計代碼(為方便起見,在本文中可被稱為“軟體”或“軟體模組”)或這些技法的任意組合來實作。
為清楚地例示硬體、韌體及軟體的此種可互換性,以上已對各種例示性組件、區塊、模組、電路及步驟在其功能方面進行了大體闡述。此種功能是被實作成硬體、韌體還是軟體、抑或被實作成這些技法的組合取決於具體應用及施加於整個系統的設計約束條件。所屬領域中的技術人員可針對每一具體應用以各種方式實施所闡述的功能,但此種實施方式決策不會導致背離本公開的範圍。根據各種實施例,處理器、器件、組件、電路、結構、機器、模組等可被配置成實行本文中所述的功能中的一個或多個功能。本文中針對規定操作或功能使用的用語“被配置成”或“被配置用於”是指處理器、器件、組件、電路、結構、機器、模組、信號等被實體構造成、程式化成、排列成和/或格式化成實行規定操作或功能。
此外,所屬領域中的一般技術人員應理解,本文中所述的各種例示性邏輯區塊、模組、器件、組件及電路可在積體電路(IC)內實作或由積體電路(IC)實行,所述積體電路可包括數位信號處理器(digital signal processor,DSP)、特殊應用積體電路(ASIC)、現場可程式閘陣列(field programmable gate array,FPGA)或其他可程式邏輯器件、或其任意組合。邏輯區塊、模組及電路可還包括天線和/或收發器,以與網路內或器件內的各種組件進行通信。被程式化成實行本文中的功能的處理器將變成專門程式的或專用的處理器,且可被實作成計算器件的組合,例如DSP與微處理器的組合、多個微處理器、一個或多個微處理器與DSP核的結合、或者實行本文中所述的功能的任何其他合適的配置。
如果以軟體的形式實作,則所述功能可作為一個或多個指令或代碼儲存在電腦可讀媒體上。因此,本文中所公開的方法或算法的步驟可被實作成儲存在電腦可讀媒體上的軟體。電腦可讀媒體包括電腦儲存媒體及通信媒體二者,包括可能夠將電腦程式或代碼從一個地方傳遞到另一地方的任何媒體。儲存媒體可為可由電腦存取的任何可用媒體。作為示例而非限制,這種電腦可讀媒體可包括隨機存取記憶體(RAM)、唯讀記憶體(read-only memory,ROM)、電可除程式化唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)、唯讀式微縮光碟(compact disk- ROM,CD-ROM)或其他光碟記憶體件、磁盤記憶體件或其他磁性儲存器件、或者可用於以指令或數據結構的形式儲存所期望的程式代碼且可由電腦存取的任何其他媒體。
在本文件中,本文使用的用語“模組”是指用於實行本文中所述的相關聯的功能的軟體、韌體、硬體以及這些元件的任意組合。另外,為便於論述,各種模組被闡述為離散模組;然而,對於所屬領域中的一般技術人員來說顯而易見的是,可將兩個或更多個模組組合形成單個模組,由所述單個模組實行根據本公開的實施例的相關聯的功能。
對本公開中所述的實施方式的各種修改對於所屬領域中的技術人員來說將顯而易見,且在不背離本公開的範圍的條件下,本文中所定義的一般原理也可應用於其他實施方式。因此,本公開並非旨在僅限於本文中所示的實施方式,而是符合與本文所公開新穎特徵及原理一致的最寬廣範圍。
100:閘級網表移位過程
101:組件映射引擎
102:自動ASIC合成工具/映射表
103:閘級來源設計
104:技術庫的目標組
105:來源設計約束
106:目標閘級網表
107:物理佈局
108:ASIC設計
109:經移位物理佈局
200:積體電路設計系統/系統
201:網表剖析器
202:處理器
203:單元映射器/映射器
204:記憶體
205:包裝單元庫或數據庫/庫或數據庫
207:目標網表寫入器
301:文本文件
303:三輸入反或閘
305、405:反相器
307、407:第一正反器
309:兩輸入反及閘
311、411:第二正反器
315:第一映射規則
317:第二映射規則
319:第三映射規則
324:第四映射規則
401:目標網表文本文件
403:三輸入NR3閘
409:兩輸入ND2閘
501:目標組件庫
503:來源組件庫
505:映射表產生器
507:數據庫
600、601、603、604、606、608:操作
以下參照下面各圖來詳細闡述本公開的各種示例性實施例。提供圖式僅是為了例示的目的,並且僅繪示本公開的示例性實施例,以有利於讀者理解本公開。因此,不應將圖式視為對本公開的寬度、範圍或適用性的限制。應注意,為了清楚及易於例示起見,這些圖式未必按比例繪製。
圖1示出根據一些實施例的描述使用不涉及自動ASIC合成工具的組件映射技法的閘級網表移位過程的流程圖。
圖2示出根據一些實施例的積體電路設計系統200的方塊圖。
圖3及圖4是根據一些實施例的由組件映射引擎101實行的網表剖析過程、網表映射過程及網表產生過程的方塊圖。
圖5示出根據一些實施例的用於產生映射表的數據庫的流程圖,所述映射表指明用於將多個來源組件庫中所定義的標準單元移位到多個目標組件庫中所定義的等效組件的映射規則。
圖6示出根據一些實施例的用於將現有的ASIC設計移位到最新技術的方法的流程圖。
600、601、603、604、606、608:操作
Claims (1)
- 一種將具有特殊應用積體電路設計的閘級網表從第一半導體製程移位到第二半導體製程的方法,包括: 接收以硬體描述語言指明的所述特殊應用積體電路設計; 將所述閘級網表每次一列地剖析成用於形成所述特殊應用積體電路設計的一個或多個標準單元; 形成具有映射規則的多個映射表,所述映射規則用於將經剖析的所述一個或多個標準單元映射到在所述第二半導體製程中實作的等效目標標準單元; 使用所述多個映射表將經剖析的所述一個或多個標準單元映射到所述等效目標標準單元; 產生以所述等效目標標準單元來描述所述特殊應用積體電路設計的目標閘級網表;以及 輸出用於以所述第二半導體製程進行製造的所述特殊應用積體電路設計的經移位物理佈局。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/239,000 US11403448B1 (en) | 2021-04-23 | 2021-04-23 | Apparatus and method for mapping foundational components during design porting from one process technology to another process technology |
US17/239,000 | 2021-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202242699A true TW202242699A (zh) | 2022-11-01 |
Family
ID=82652567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110129534A TW202242699A (zh) | 2021-04-23 | 2021-08-10 | 閘級網表移位方法 |
Country Status (3)
Country | Link |
---|---|
US (3) | US11403448B1 (zh) |
CN (1) | CN114925647A (zh) |
TW (1) | TW202242699A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230074528A1 (en) * | 2021-09-07 | 2023-03-09 | International Business Machines Corporation | Iterative design of an integrated circuit design |
US11803684B1 (en) * | 2021-10-04 | 2023-10-31 | Cadence Design Systems, Inc. | Relative placement by application of layered abstractions |
CN115345112B (zh) * | 2022-08-17 | 2024-03-26 | 上海极海盈芯科技有限公司 | 一种集成电路图生成的方法、装置、电子设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5491640A (en) * | 1992-05-01 | 1996-02-13 | Vlsi Technology, Inc. | Method and apparatus for synthesizing datapaths for integrated circuit design and fabrication |
US5841663A (en) * | 1995-09-14 | 1998-11-24 | Vlsi Technology, Inc. | Apparatus and method for synthesizing integrated circuits using parameterized HDL modules |
US8756048B2 (en) * | 2011-04-15 | 2014-06-17 | Stmicroelectronics S.R.L. | Method for technology porting of CAD designs, and computer program product therefor |
CN113011122A (zh) * | 2019-12-19 | 2021-06-22 | 台湾积体电路制造股份有限公司 | 用于减少迁移错误的方法和系统 |
-
2021
- 2021-04-23 US US17/239,000 patent/US11403448B1/en active Active
- 2021-07-20 CN CN202110818747.8A patent/CN114925647A/zh active Pending
- 2021-08-10 TW TW110129534A patent/TW202242699A/zh unknown
-
2022
- 2022-07-14 US US17/865,084 patent/US11783104B2/en active Active
-
2023
- 2023-08-08 US US18/231,762 patent/US20240037302A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11783104B2 (en) | 2023-10-10 |
US20240037302A1 (en) | 2024-02-01 |
US11403448B1 (en) | 2022-08-02 |
US20220414304A1 (en) | 2022-12-29 |
CN114925647A (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102139425B1 (ko) | 회로 스텐실들을 이용한 회로 설계를 위한 추출된 레이아웃-의존 효과들의 재사용 | |
Kahng et al. | VLSI physical design: from graph partitioning to timing closure | |
TW202242699A (zh) | 閘級網表移位方法 | |
US20060271899A1 (en) | Methods for producing structured application-specific integrated circuits that are equivalent to field-programmable gate arrays | |
US11055463B1 (en) | Systems and methods for gate array with partial common inputs | |
TWI789911B (zh) | 用於電容值提取的系統、方法及儲存媒體 | |
US8281269B2 (en) | Method of semiconductor integrated circuit device and program | |
JP3938220B2 (ja) | 大規模集積回路装置の製造方法及び大規模集積回路装置 | |
CN114764555A (zh) | 产生方法 | |
US20230260591A1 (en) | Transforming local wire thru resistances into global distributed resistances | |
US11734489B2 (en) | Circuit layout verification | |
US20210390244A1 (en) | System and Method for Synchronizing Net Text Across Hierarchical Levels | |
US9652573B1 (en) | Creating and using a wide-gate data structure to represent a wide-gate in an integrated circuit (IC) design | |
US9690890B1 (en) | Creating and using a wide-bus data structure to represent a wide-bus in an integrated circuit (IC) design | |
US20030084410A1 (en) | SPICE to Verilog netlist translator | |
US11328109B2 (en) | Refining multi-bit flip flops mapping without explicit de-banking and re-banking | |
US9721051B2 (en) | Reducing clock skew in synthesized modules | |
Yeap et al. | VLSI circuit optimization for 8051 MCU | |
US9454632B1 (en) | Context specific spare cell determination during physical design | |
US11301611B2 (en) | Deterministic clustering and packing method for random logic on programmable integrated circuits | |
Khvatov et al. | Development of an IP-cores Libraries as Part of the Design Flow of Integrated Circuits on FPGA | |
US10049174B2 (en) | Exact delay synthesis | |
Singh et al. | Register-Transfer-Level Design for Application-Specific Integrated Circuits | |
US11694010B2 (en) | Reformatting scan patterns in presence of hold type pipelines | |
US11144700B1 (en) | Grouping nets to facilitate repeater insertion |