TW202032260A - 積體電路設計方法、積體電路設計系統及非暫態電腦可讀取媒體 - Google Patents
積體電路設計方法、積體電路設計系統及非暫態電腦可讀取媒體 Download PDFInfo
- Publication number
- TW202032260A TW202032260A TW108134473A TW108134473A TW202032260A TW 202032260 A TW202032260 A TW 202032260A TW 108134473 A TW108134473 A TW 108134473A TW 108134473 A TW108134473 A TW 108134473A TW 202032260 A TW202032260 A TW 202032260A
- Authority
- TW
- Taiwan
- Prior art keywords
- winding
- configuration
- configurations
- layout
- layouts
- 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/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/394—Routing
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
- G06N7/023—Learning or tuning the parameters of a fuzzy system
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Fuzzy Systems (AREA)
- Automation & Control Theory (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
系統及方法包括:接收功能積體電路設計且基於該接收的功能積體電路設計產生複數個配置和繞線(PnR)佈局,並且可以產生一或多個積體電路平面規劃。一或多個模糊邏輯規則可經應用以分析與經產生的配置和繞線佈局的每一者相關聯的屬性,並且可產生具有面積利用率的複數個配置和繞線佈局的配置和繞線佈局,該面積利用率符合一或多個模糊邏輯規則。
Description
積體電路典型地包括具有複雜相互關係的數以千計的元件。該些電路通常使用被稱為電子設計自動化(electronic design automation,EDA)的高度自動化的製程設計。電子設計自動化開始於在硬體描述語言中(hardware description language,HDL)提供的功能規範,並且繼續通過電路設計的規範,包括稱為單元的基本電路元件的規範、單元的實體佈置,及互連單元的佈線。該些單元使用特定的積體電路技術實施邏輯或其他電子功能。電子設計自動化可經劃分為一系列諸如合成、佈局、路由等的階段。該些步驟的每一步驟可涉及選擇來自單元庫的單元。典型地,使用各種單元組合的非常多的不同電路設計可滿足電路的功能規範。
100:流程
104:暫存器轉換階層(RTL)設計
108:邏輯設計
112:佈局設計
116:晶片(系統單晶片)
120:製造
204:第一配置
208:第二配置
212:第一示例性系統單晶片佈局
216:第二示例性系統單晶片佈局
220:第一邏輯電路
224:第二邏輯電路
300:處理系統
302A~302D:平面規劃
304:網路連線表
308:配置和繞線與分析元件
312:模糊邏輯面積最佳化器
314:配置和繞線運行及分析資訊
316:經面積最佳化的系統單晶片設計
318:經面積最佳化的系統單晶片資訊
324:計算裝置
404、412:系統單晶片配置
408、416、420、524、528、532、536、540、544、556、560、564、568、572、576:方框
504:第一系統單晶片設計
508:第二系統單晶片設計
512:第三系統單晶片設計
516:子區塊配置
520:子元件
548:第四系統單晶片設計
552:第五系統單晶片設計
600:處理系統
604:處理單元
608:顯示器
612:輸入/輸出裝置
616:中央處理單元
620:記憶體
622、626:軟體代碼
624:大量儲存裝置
628:視訊配接器
640:區域網路/廣域網路
662:輸入/輸出介面
664:網路介面
666:匯流排
700:設計流程
700A:學習階段
700B:預測階段
700C:消除階段
702:訓練資料
704:學習方法
706:關鍵準則細化
708:參數估計
710:知識儲存
712:資料庫
714:規則庫
716:新資料
724:預測結果
718、720、722、726、728、730、732、734、736、908、912、916、920、924、928、932、936:步驟
804、808:表
812:運行識別器
816:特徵向量
820:分類
824:值
828:排序
900:方法
本案之各態樣當與附圖一起閱讀時將從以下實施方式中最佳地理解。應注意,根據行業中的標準實踐,各個特徵並未按比例繪製。實際上,為了論述清晰起見,各個特徵之尺寸可以任意地增加或減小。
第1圖為圖示根據一些實施例的積體電路設計流程的實例的流程圖。
第2A圖至第2D圖為圖示根據一些實施例的示例性平面規劃佈局的方塊圖。
第3圖為圖示根據一些實施例的示例性最佳化方法的方塊圖。
第4A圖及第4B圖圖示根據一些實施例的積體電路平面規劃的實例。
第5A圖至第5B圖為圖示根據一些實施例的平面規劃方框的實例的方塊圖。
第6圖為圖示根據一些實施例的用於積體電路設計系統的示例性處理系統的各態樣的方塊圖。
第7圖為圖示根據一些實施例的積體電路設計系統的進一步態樣的方塊圖。
第8圖圖示根據一些實施例的用於第7圖的系統的配置和繞線運行及分析資訊的實例。
第9圖為圖示根據一些實施例的用於產生積體電路的方法的實例的製程流程圖。
以下揭示內容提供了用於實施所提供之標的之不同特徵的許多不同實施例,或實例。下文描述了元件和佈置之特定實例以簡化本案。當然,該些實例僅為實例且並不意欲作為限制。例如,在以下描述中之第一特徵在第二特徵之上或上
方之形式可包括其中第一特徵與第二特徵直接接觸形成之實施例,且亦可包括其中可在第一特徵與第二特徵之間形成額外特徵,以使得第一特徵與第二特徵可不直接接觸之實施例。另外,本案可在各種實例中重複元件符號及/或字母。此重複是用於簡化及清晰之目的,且其本身不指定所論述之各種實施例及/或配置之間的關係。此外,在本文中提供各種表格,其中展示包括說明性變數、值、範圍等的實例。該些變數、值、範圍等僅為實例,並且其他變數、值、範圍等亦在本案的範圍之內。
系統單晶片(System-on-Chip,SoC)設計近些年已成為半導體技術的主要驅動因素之一。系統單晶片為一種積體電路,其整合了電腦或其他電子系統的所有或至少大多數元件。該些元件典型地包括中央處理單元、記憶體、輸入/輸出埠及次級儲存器一上述各者全部在單個基板上。取決於應用,典型的系統單晶片可包含數位、類比、混合信號,及通常的射頻信號處理功能。隨著上述功能整合在單個電子基板上,系統單晶片可比具有同等功能的多晶片設計消耗更少的功率且佔用更小的面積。
積體電路自動設計工具(諸如電子設計自動化)可輔助系統單晶片設計製程並且可將電路設計轉換為待製造的電路佈局。電子設計自動化(Electronic design automation,EDA)開始於在硬體描述語言(hardware description language,HDL)中提供的功能規範,並且繼續通過電路設計的規範,包括稱為單元的基本電路元件的規範、單元的實體佈
置,及互連單元的佈線。該些單元使用特定的積體電路技術實施邏輯或其他電子功能。即使當使用電子設計自動化工具時,面積最佳化對於積體電路裝置的實體設計可具有挑戰性。例如,獲得最小可能的實體面積對於大多數系統單晶片產品皆是需要的。一些方法嘗試利用過去的經驗,利用經由電子設計自動化或配置和繞線(place and route,PnR)引擎運行的估計的面積/形狀來建立一些測試案例。當測試配置和繞線運行完成時,工程師可分析結果並且選取作為新基線的設計。若時間及資源允許,可運行另外的測試案例。需要手動努力及資料分析的此方法可能缺少一致性。此外,不保證最佳的面積/形狀設計。
根據本案的各態樣,模糊邏輯機器學習演算法經用於自動地確定實體設計的標準單元的面積及形狀。輸入具有網路連線表及建議的平面規劃的劃分,並且基於接收的輸入,提供一或多個配置和繞線結果,該些結果最小化對於實體設計的所需面積。
如第1圖中所示,用於設計系統單晶片的流程100典型地藉由獲取詳細的系統規範(諸如所需功能、通訊及其他要求),並且將該些系統規範轉換為暫存器轉換階層(register transfer level,RTL)設計來開始於暫存器轉換階層設計104階段。暫存器轉換階層設計可為一種設計抽象化,該設計抽象化根據在硬體暫存器之間的數位信號(資料)的流動,以及對彼等信號執行的邏輯操作來建模同步信號電路。暫存器轉換階層設計可以程式設計語言(諸如VHDL或Verilog語言)的形式
提供,並且典型地描述數位電路的確切行為,以及對輸入及輸出的互連。存器轉換階層設計可為系統單晶片、區塊、單元,及/或系統單晶片的元件,及/或一或多個子區塊、單元,及/或階層式設計的元件而提供。
另一下一個階段涉及在邏輯設計108階段處將暫存器轉換階層設計轉換為邏輯設計。邏輯設計108階段典型地涉及將暫存器轉換階層設計轉換為邏輯設計,產生經連接的邏輯電路的網路連線表。邏輯設計可使用典型的邏輯元件,諸如AND元件、OR元件、XOR元件、NAND元件及NOR元件,以及顯示來自一或多個庫的所需功能的單元。在一些情況下,可利用一或多個智慧財產權(intellectual property,IP)核心並且將其嵌入系統單晶片中;因此,可產生一網路連線表,該網路連線表描述結合該設計所涉及的電路的各種電子元件的連接性。例如,網路連線表包括在電路中的一列電子元件及該些電子元件所連接至的一列節點。類似於暫存器轉換階層設計104階段,邏輯設計可為系統單晶片、區塊、單元,及/或系統單晶片的元件,及/或一或多個子區塊、單元,及/或階層式設計的元件而提供。
流程100進一步包括佈局設計112階段,其中閘極位準網路連線表經轉換為完整的實體幾何表示。初始地,佈局設計112階段包括平面規劃,平面規劃為基於設計限制橫跨一區域所做之各種區塊、單元,及/或元件及輸入/輸出點的佈置流程。該些資源可經佈置或「框」在裝置的一或多個層上。可在平面規劃階段建立佈局方框,產生作為用於置放標準單元的
引導線的路由方框功能。作為一實例,系統單晶片設計可經劃分為一或多個功能區塊,或分區。可執行在每一區塊之內的實體元件的置放,以及類比區塊或外部智慧財產權核心的整合。當置放所有元件時,可執行全域或詳細路由以將所有元件連接在一起。類似於暫存器轉換階層設計104階段及邏輯設計108階段,可為系統單晶片、區塊、單元,及/或系統單晶片的元件,及/或一或多個子區塊、單元,及/或階層式設計的元件進行佈局設計112階段。如下文將進一步論述,在一些實例中使用機器學習及模糊邏輯演算法以最佳化邏輯設計108階段的該些態樣。
根據本案的實施例,平面規劃階段可包括以一或多個配置置放各個區塊、單元及/或元件。在一些實施中,使用模糊邏輯機器學習演算法以自動地確定最佳的平面規劃。例如,第一配置204圖示以第2A圖中所示的第一方式佈置的方塊A、方塊B及方塊C;而第2B圖中所示的第二配置圖示以第二方式佈置的方塊A、方塊B及方塊C。第一配置204的區塊A可執行與第二配置208的區塊A相同的功能性及/或與第二配置208的區塊A相同。第一配置204的區塊B可執行與第二配置208的區塊B相同的功能性及/或與第二配置208的區塊B相同。第一配置204的區塊C可執行與第二配置208的區塊C相同的功能性及/或與第二配置208的區塊C相同。第一配置204可利益與第二配置208相比更少的面積;然而,若在需要額外面積以置放額外區塊、單元及/或元件作為現有配置設計的一部
分及/或用於在以後時刻增加功能的情況下所期望,則第二配置208可能是有益的。
進一步在第2C圖及第2D圖中圖示第一示例性系統單晶片實體佈局212及第二示例性系統單晶片實體佈局216。第一示例性系統單晶片佈局212可與第一配置204或第一配置204的一或多個區塊、單元及/或元件相同或類似。第二示例性系統單晶片佈局216可與第二配置208或第二配置208的一或多個區塊、單元及/或元件相同或類似。在一些實施例中,第一示例性系統單晶片佈局212及第二示例性系統單晶片佈局216執行相同的功能性;然而,一或多個區塊的實體佈局及設計可能不同。例如,第一邏輯電路220及第二邏輯電路224可執行相同的功能,即使該些電路包括不同的元件。相應地,第一邏輯電路220的網路連線表可不同於第二邏輯電路224的網路連線表,且因此隨後的路由、間隔及面積要求可不同。手動確定各個區塊、功能、電路的最佳實體佈局及設計可能是耗時且成本高昂的。根據本案的各個態樣,模糊邏輯學習演算法可用於使佈局設計112階段的各態樣自動化。
因此,例如,在第1圖中所示的製造120階段,實施第一邏輯電路220及第二邏輯電路224之每一者所需的面積大小是不同的。因此,在當在晶片(系統單晶片)116階段期間產生實體設計時發生面積最佳化階段期間,降低所需的面積量是需要的。雖然可以存在用於達成相同結果的電路及/或設計的各種實施,但是所揭示的實例嘗試在考慮到電路之間的各種設計準則的同時達成最佳的結構,該些設計準則諸如電路之間
的面積、時序、串擾及短路。選擇適當單元以使用特定積體電路技術實施所需邏輯或其他電子功能,確定單元的實體佈置及佈線互連等對於甚至經驗豐富的設計者可亦具有挑戰。如上所述,獲得最小可能的實體面積對於大多數系統單晶片產品皆是需要的。使用過往的經驗,迭代地使用測試案例以估計面積/形狀等需要大量的人工努力,並且該些資料分析可能缺乏一致性。因此,面積最佳化趨於為在實體設計階段期間的永無止境的挑戰;然而,共同目標仍然為最小實體面積為系統單晶片產品的所需準則。根據本案的實施例,除了人工努力之外或代替人工努力,可利用模糊邏輯與機器學習以達成最佳最小的實體面積以減少利用例如處理系統300的系統單晶片的總體尺寸,以提高效率及一致性。
根據本案之態樣,模糊邏輯機器學習演算法用於在一些情況下自動地確定實體設計的標準單元的最佳面積及形狀,以達成可能的最小實體面積,同時滿足功能設計要求。在一些實施例中,模糊邏輯為多值邏輯的形式,其中變數的真值可為0與1之間(含0與1)的任何實數。模糊邏輯通常用於處理部分真值的概念,其中真值的範圍可在完全正確與完全錯誤之間。亦即,利用模糊邏輯的決策通常是基於不精確且非數值的資訊;模糊模型或集合提供表示模糊性及不精確資訊的數學手段。該些模型能夠辨識、表示、操控、解譯,及利用模糊且缺乏確定性的資料及資訊。
第3圖為根據本案之態樣的使用模糊邏輯流程的面積最佳化製程的方塊圖。複數個分區及網路連線表304可例
如經提供至配置和繞線與分析元件308。作為非限制實例,分區可為任何大小的單元區塊、子區塊、智慧財產權核心等,包括網路連線表及建議的平面規劃。例如,如由元件符號302A所示,具有一或多個方框(諸如方框A、B......n)的平面規劃(諸如平面規劃A)可經提供用於配置和繞線運行及後續分析。對配置和繞線運行期間,軌跡、墊,及/或其他方框可經添加至所提供的平面規劃。後續的配置和繞線運行可利用相同的平面規劃,但可包括以每一運行增量增加的方框。由於面積最佳化的目標通常是在遵守良好設計規則及技術的同時獲得最小的實體設計,所以路由及元件佈置的總體面積利用率可為最佳化區域的最終指示符。亦即,利用率可為經使用的晶片、矽及/或晶粒區域除以總晶片、矽及/或晶粒區域的量度。計算的利用率越大,用於路由軌跡及/或置放元件的開放區域,或自由區域越小。換言之,低利用率將指示可用的晶片、矽及/或晶粒面積比需要的更多。因此,藉由增量地增加方框的大小,導致用於路由的減少量的晶片、矽,及/或晶粒區域,整體利用率可增加。
替代地或另外地,複數個平面規劃(例如,302A、302B、302C及/或302D)可經提供至配置和繞線與分析元件308。平面規劃之每一者可在大小、形狀及/或方框方面有所不同,而可以增量增加的方式為相同及/或不同平面規劃提供方框。例如,部分地歸因於方框位置的差異,302A及302C中的方框A可不同於302B及/或302D中的平面規劃B。在一些實施例中,方框可經增量地增加以使得可根據單個平面規劃獲得更
大的利用率。在其他情況下,方框的位置可增加、改變或(從平面規劃)減去。在一些情況下,網路連線表可對於每一平面規劃相同及/或不同;因此,利用相同平面規劃及/或相同大小及/或位置的方框可經評估用於增加面積最佳化。
提供一或多個網路連線表、一或多個平面規劃,及/或一或多個方框至配置和繞線與分析元件308的結果可包括特定於配置和繞線運行之每一者的配置和繞線運行及分析資訊314。作為一實例,運行識別器可識別具有特定方框的特定平面規劃,在該特定方框中利用特定的網路連線表。另外,配置和繞線運行及分析資訊314可包括指示配置和繞線運行及後續分析的一或多個量測。作為一實例,配置和繞線運行及分析資訊314可包括影響面積的量測集合,諸如但不限於,例如時序、設計規範驗證(design rule check,DRC)及短路。亦即,一旦已發生了配置和繞線(PnR),所得的網路連線表(包括對原始網路連線表的任何改變及/或修改)、定義檔案,及/或時序資訊(以單獨的檔案格式,諸如標準寄生提取格式;或與定義檔案一起)可經定義以確保系統單晶片設計(例如,平面佈置、方框、網路連線表,及路由)滿足或超過設計及/或功能性約束及/或要求,諸如例如時序要求。作為一實例,可根據靜態時序分析(static timing analysis;STA)來分析完整的時序資訊。所得的分析資訊可包含配置和繞線運行及分析資訊314的至少一部分。
配置和繞線運行及分析資訊314(對於提交至配置和繞線與分析元件308之平面規劃的每一者)可隨後經提供
至模糊邏輯面積最佳化器312。在下文中結合第7圖論述由模糊邏輯面積最佳化器312使用的模糊邏輯流程的實例。模糊邏輯面積最佳化器312可利用模糊邏輯以確定用於評估與配置和繞線運行的每一者相關聯的一或多個量測的準則,其中每一配置和繞線運行係用於平面佈置、方框,及/或網路連線表組合。模糊邏輯面積最佳化器312可提供一或多個經面積最佳化的系統單晶片設計316(例如,網路連線表及/或具有一或多個方框的平面規劃),該面積最佳化提供資源的最佳使用同時最小化所需的空間;並且可以經面積最佳化的系統單晶片資訊318的形式提供該資訊。在一些情況下,模糊邏輯面積最佳化器312可能提供太多或太少的設計。在一些情況下,方框可以比原始提供的粒度更精細的粒度增加及/或減少。例如,不是將方框的大小遞增2%,而是可將起始方框增加0.1%。另外或替代地,該方框的區域可增加,或減少例如0.1%的任何倍數(例如,0.2%、0.3%......4.5%等)。在一些情況下,方框的區域可增加或減少隨機量。如可以了解地,平面規劃、網路連線表,及方框可經儲存在儲存位置處,諸如記憶體中;並且配置和繞線與分析元件308及模糊邏輯面積最佳化器312可常駐於例如計算裝置324中。當然,配置和繞線與分析元件308及模糊邏輯面積最佳化器312可常駐於不同的計算裝置中。
根據本案之實施例,第4A圖及第4B圖圖示可由模糊邏輯最佳化器312分析及/或產生的不同方框的實例。第4A圖圖示包括方框408的系統單晶片配置404。第4B圖圖示另一系統單晶片配置412,該配置可包括例如較大的方框416,
及/或在不同位置處的方框420。第一系統單晶片配置404可為例如第一平面規劃,而第二系統單晶片配置412可為具有增加大小的方框區域的相同平面規劃及/或具有方框420的不同平面規劃的說明。
第5A圖圖示具有不同方框的額外詳細平面規劃。如第5A圖中所示,第一系統單晶片設計504可包括區塊、元件,或子區塊配置516。區塊、元件、單元,或子區塊配置516可首先包括子元件520。第一系統單晶片設計504及區塊、元件,或子區塊配置516可表示初始起始區域配置,諸如具有對於網路連線表A的方框A的平面規劃A,諸如在第3圖中所示。根據本案之實施例,第二系統單晶片設計508可藉由包括一或多個方框(諸如方框524、方框528及/或方框532)而不同於第一系統單晶片設計504。因此,與區塊、元件、單元,或子區塊配置516及/或系統單晶片配置相關聯的區域可藉由在給定區域配置之內提供額外的功能性或減少所需的面積來減少;並且可對應於第二配置,諸如具有對於網路連線表A的方框B的平面規劃,諸如在第3圖中所示。此外,第三系統單晶片設計512可藉由包括一或多個方框(諸如方框536、方框540及/或方框544)而不同於第二及第一系統單晶片設計504/508。因此,與區塊、元件、單元,或子區塊配置516及/或系統單晶片設計相關聯的區域可減少,並且可對應於第二配置,諸如具有對於網路連線表A的方框B的平面規劃A,諸如在第3圖中所示。方框536可遞增地大於方框524;方框540可遞增地大於方框528,並且方框544可遞增地大於方框532。
第5B圖圖示具有不同方框的一或多個平面規劃的額外詳情。如第5B圖中所示,第一系統單晶片設計504可包括區塊、元件、單元,或子區塊配置516。區塊、元件、單元,或子區塊配置516可首先包括子元件520。第一系統單晶片設計504及區塊、元件,或子區塊配置516可表示初始起始區域配置,諸如具有對於網路連線表A的方框A的平面規劃A,諸如在第3圖中所示。根據本案之實施例,第四系統單晶片設計548可藉由包括一或多個方框(諸如方框556、方框560及/或方框564)而不同於第一系統單晶片設計504。因此,與區塊、元件、單元,或子區塊配置516及/或系統單晶片配置相關聯的區域可藉由在給定區域配置之內提供進一步的功能性或減少所需的面積來減少;並且可對應於第二配置,諸如具有對於網路連線表A的方框B的平面規劃A,諸如在第3圖中所示;及/或可對應於具有對於網路連線表A的方框B的平面規劃B。此外,第五系統單晶片設計552可藉由包括一或多個方框(諸如方框568、方框572及/或方框576)而不同於第四及第一系統單晶片設計504/508。因此,與區塊、元件、單元,或子區塊配置516及/或系統單晶片設計552相關聯的區域可藉由在給定區域配置之內提供進一步的功能性或減少所需的面積來減少;並且可對應於第二配置,諸如具有對於網路連線表A的方框B的平面規劃A,及/或可對應於具有對於網路連線表A的方框C的平面規劃B,諸如在第3圖中所示。方框568可遞增地大於方框5556;方框572可遞增地大於方框560,並且方框576可遞增地大於方框564。
第6圖為圖示根據本文揭示的一些實施例的處理系統600的實例的方塊圖。處理系統600可用於實施本文論述的各種流程,諸如第3圖中所示的配置和繞線與分析308及模糊邏輯面積最佳化器312模組及下文論述的第7圖的設計系統。處理系統600包括處理單元604,諸如桌上型電腦、工作站、膝上型電腦、客製化用於特定應用的專用單元、智慧型電話或平板電腦等。處理單元600可裝備有顯示器608及一或多個輸入/輸出裝置612,諸如滑鼠、鍵盤、觸控式熒幕、列印機等。處理單元604亦包括連接至匯流排666的中央處理單元(central processing unit,CPU)616、記憶體620、大量儲存裝置624、視訊配接器628及輸入/輸出介面662。
匯流排666可為任何類型的若干匯流排架構中之一或多者,該些匯流排架構包括記憶體匯流排或記憶體控制器、周邊匯流排,或視訊匯流排。中央處理單元616可包含任何類型的電子資料處理器,且記憶體620可包含任何類型的系統記憶體,諸如靜態隨機存取記憶體(static random access memory,SRAM)、動態隨機存取記憶體(dynamic random access memory,DRAM),或唯讀記憶體(read-only memory,ROM)。
大量儲存裝置624可包含任何類型的儲存裝置,該儲存裝置經配置儲存資料、程式及其他資訊,並且經配置以使資料、程式及其他資訊經由匯流排666可存取。大量儲存裝置624可包含例如硬碟驅動器、磁碟驅動器、光碟驅動器等的一或多者。
如本文中使用的術語「電腦可讀取媒體」可包括電腦儲存媒體,諸如上文所述的系統記憶體及儲存裝置。電腦儲存媒體可包括用於儲存資訊的以任何方法或技術實施的揮發性及非揮發性、可移除及非可移除媒體,該資訊諸如電腦可讀取指令、資料結構,或程式模組。記憶體620及大量儲存裝置624為電腦儲存媒體的實例(例如,記憶體儲存)。因此,電腦儲存媒體可包括RAM、ROM、電子可抹除唯讀記憶體(electrically erasable read-only memory,EEPROM)、快閃記憶體或其他記憶體技術、壓縮光碟-唯讀記憶體(compact disk-read only memory,CD-ROM)、數位化通用光碟(digital versatile disk,DVD)或其他光學儲存器、磁卡、磁帶、磁碟儲存器或其他磁性儲存裝置,或者能夠用於儲存資訊且可由處理系統600存取的任何其他製品。任何此電腦儲存媒體可為處理系統600的一部分。電腦儲存媒體不包括載波或其他傳播或調制的資料信號。
通信媒體可由電腦可讀取指令、資料結構、程式模組,或為調制資料信號的其他資料(諸如載波或其他傳輸機制)實現,並且包括任何資訊傳遞媒體。術語「經調制資料信號」可描述具有一或多個特性集或以對信號中的資訊編碼的方式改變的信號。舉例而言,但並非限制,通信媒體可包括有線媒體,諸如有線網路或直接有線連接;及無線媒體,諸如聲學、射頻(radio frequency;RF)、紅外線,及其他無線媒體。
視訊配接器628及輸入/輸出介面662提供將外部輸入及輸出裝置耦接至處理單元604的介面。如第6圖中所
示,輸入及輸出裝置的實例包括耦接至視訊配接器628的顯示器608;及耦接至輸入/輸出介面662的輸入/輸出裝置612,諸如滑鼠、鍵盤、列印機,等等。其他裝置可耦接至處理單元604,並且可利用額外或更少的介面卡。例如,串列介面卡(未圖示)可用於提供列印機的串列介面。處理單元604可亦包括網路介面664,網路介面可以是至區域網路(local area network,LAN)或廣域網路(wide area network,WAN)640的有線連結及/或無線連結。
處理系統600的實施例可包括其他元件。例如,處理系統600可包括電源、電纜、母板、可移除儲存媒體、外殼等等。儘管未示出,該些其他元件被視為處理系統600的一部分。
在一些實例中,軟體代碼係藉由中央處理單元616執行以分析使用者設計以獲得積體電路佈局,並且進一步最佳化與該積體電路佈局相關聯的區域。軟體代碼可由中央處理單元616經由匯流排666從記憶體620、大量儲存裝置624等存取,或經由網路介面664遠端存取。作為非限制性實例,軟體代碼622、軟體代碼626可常駐於一或多個記憶體620或大量儲存裝置624之內,以便獲得積體電路佈局並且進一步最佳化與該積體電路佈局相關聯的區域。
第7圖圖示根據本案的一些實施例的利用設計流程700以最佳化與積體電路佈局相關聯的區域的諸態樣。例如,第3圖的模糊邏輯面積最佳化器312在一些實施中使用設計流程700。設計流程700包括各種階段,諸如例如學習階段
700A、預測階段700B,及消除階段700C。通常,接收功能積體電路設計,並且基於該接收的功能積體電路設計及一或多個積體電路平面規劃產生各種配置和繞線佈局。一或多個模糊邏輯規則可經應用以分析與產生的配置和繞線佈局的每一者相關聯的屬性。設計流程700的學習階段700A可基於應用於學習方法704的訓練資料702產生模糊邏輯規則,並且模糊邏輯規則可經儲存於知識儲存710中。
學習階段700A因此包括可提供至一或多個學習方法704的訓練資料702。訓練資料702可包括已先前分類為經最佳化準則及/或未經最佳化準則的資料,並且可為對於與一或多個平面規劃(諸如上文論述的第4圖及第5圖中的平面規劃)相關聯的一或多個網路連線表的影響區域的量測(諸如時序、設計規範驗證、面積、短路等)的集合。訓練資料702可以特徵向量形式表示,並且在一些情況下,訓練資料702可基於學習方法704而細化,諸如關鍵準則細化706及參數估計708。更特定言之,特定準則可在關鍵準則細化706處應用於訓練資料702。在關鍵準則細化706處,可執行由初始參數估計708提供的關鍵範圍準則的細化。例如,可在參數估計708處提供基於參數的初始人類判斷;該些參數可以對於影響面積最佳化的特定準則的範圍的形式提供。如先前所述,模糊邏輯為多值邏輯的形式,其中變數的真值可為0與1之間(含0與1)的任何實數。以此方式,模糊邏輯可用於處理部分真值的概念,其中真值的範圍可在完全正確與完全錯誤之間。模糊模型或集合從而提供表示模糊性及不精確資訊的數學手段。該些模
型能夠辨識、表示、操控、解譯,及利用模糊且缺乏確定性的資料及資訊。作為非限制性實例,可為用於平面規劃面積最佳化的一或多個準則建立模糊範圍。若準則的值落在由模糊範圍建立的參數之外(亦即,準則不被視為模糊),則準則的值可經視為明確的(crisp)且可採用一明確值,該明確值指示準則的值是否滿足範圍參數(例如,是、否、1、0、低、中、高)或是否可採用指示範圍(高、中、低)的值。
可基於例如設計者的經驗根據人類及/或專家知識提供用於參數估計708的準則的初始範圍及參數,以分類輸入範圍參數;其中輸入範圍參數可用於模糊化,或以其他方式將數值輸入值(諸如明確值)轉換為模糊值(諸如模糊邏輯輸入值)。在一些情況下,用於參數估計708的該些初始提供的分類範圍可在關鍵準則細化706處利用機器學習及分類方法細化。例如,基於一或多個機器學習分類技術,模糊化範圍的參數(例如,上限值及/或下限值)可根據一或多個機器學習及/或分類模型而修改。該些機器學習及/或分類模型可包括一或多個機器學習模型,該一或多個機器學習模型經配置以提供參數,諸如給定輸入級的情況下的利用率及平面規劃區域。因此,機器學習的目標是基於給定輸入預測輸出及/或指派一組觀察至群集中,以使得在相同群集中的觀察以某種方式類似。在學習方法704處應用的機器學習技術可使用監督及/或非監督的學習。亦即,利用監督的學習,訓練資料702可包括已經分類為可接受或不可接受及/或有效或無效的資料。因此,在參數估計708處估計的初始參數可使用先前分類的資料根據訓
練資料702及機器學習模型細化。例如,訓練資料702可包括具有網路連線表及一或多個建議的平面規劃的區塊分區,該些平面規劃諸如第4圖及第5圖中所示的平面規劃,且具有增量增加或減少的方框。由於面積最佳化的目標通常是在遵守良好設計規則及技術的同時獲得最小的實體設計,所以路由及元件佈置的總體面積利用率可為最佳化區域的最終指示符,並且從而可用於細化訓練資料。亦即,利用率可為經使用的晶片、矽及/或晶粒區域除以總晶片、矽及/或晶粒區域的量度。計算的利用率越大,用於路由軌跡及/或置放元件的較小開放區域,或自由區域越小。換言之,低利用率將指示可用的晶片、矽及/或晶粒面積比需要的更多。
此外,並且根據本案的實施例,機器學習模型可以資料訓練,該資料包括應用於一或多個建議的平面規劃的分區及網路連線表,或一或多個配置和繞線運行,其中應用於一或多個建議的平面規劃的各個分區及網路連線表,或一或多個配置和繞線運行將產生不同的利用率,諸如第5A圖及第5B圖的各種利用率實例中所示。參看第5A圖,在一些情況下,平面規劃(系統單晶片設計)504、508、512將在大小、形狀及/或方框上不同。如先前所述,子區塊配置516在所示的配置中變化。現參看第2A圖至第2D圖中所示的平面規劃及方框的實例,區塊A、B及C可在大小、位置和功能性等上有所不同。各個方框A、B及C根據配置和繞線運行增量增加,根據配置和繞線運行置放在各個分區位置處,或上述的組合,如先前參看第2圖、第4圖及第5圖所論述。因此,訓練資料亦可包括其他
設計約束,諸如但不限於短路、設定時序、功率使用違規、在設計約束檔案中發現的設計約束,及/或其他設計約束。
在一些情況下,經訓練模型可以模糊邏輯值訓練,該些模糊邏輯值作用於一或多個建議的平面規劃的分區及網路連線表,該些平面規劃諸如第2A圖至第2D圖中所示的平面規劃(配置或示例性系統單晶片佈局)204、208、212、216。亦即,一或多個設計約束,以及分類的利用率可能落入或落出一或多個模糊邏輯範圍(具有連續範圍的值而非精確值的變數)。利用模糊邏輯的範圍以建立良好準則的範圍可允許「最佳的」經最佳化區域,或者「最佳的」經利用區域得以基於應用於變數的模糊準則來獲得,該些變數諸如彼等相關聯的分區、網路連線表、平面規劃佈局等。作為一實例,雖然在軌跡之間發生的理想短路的數目將理想地為零(亦即,明確的真/假或是/否準則),但是實際上,在設計中的多個已知短路可能對總體設計無害。換言之,零短路可能是理想的,但是一些數目的短路可為可接受的,並且不同數目的短路可經分類為各接受範圍。同樣地,理想時序(諸如設定時序)將儘可能接近於零;然而,大於零的設定時序在大部分情況下仍為可以接受的。此外,設定時序可經區域化至矽、晶片及/或晶粒上的特定位置。藉由允許例如存在一些短路及大於零的時序,系統單晶片設計的利用率可高於其他設計,因為準則的一些位準在設計中可為可接受的。因此,建立可接受準則的模糊範圍(亦即,不同於非二元是/否或通過/失敗準則)可用於最佳化利用率。
設計流程700的學習階段700A可隨後流動至知識儲存710,以使得一或多個規則庫714可儲存於資料庫712或其他儲存位置中。亦即,基於一或多個估計的參數估計708,可建立識別屬性的關鍵準則細化706,資料庫712可常駐在記憶體620、大量儲存裝置624處,及/或常駐在經由第6圖中所示的網路介面644可存取的網路位置處。
規則中之每一者可識別準則值的模糊(例如,0與1之間的連續值)及/或明確分類(例如,1/0、是/否等)的組合,以及關於該些組合是否有效(例如,滿足由人類知識及/或機器學習技術建立的設計準則)的所得指示。在一些情況下,規則庫714可包含其中準則之每一組合以某些方式(諸如求和)組合的規則以產生輸出;該輸出可隨後經確定為關於是否其落入一或多個範圍中,諸如例如是-明確範圍、模糊範圍(在是與否之間某處),及/或否-明確範圍。輸出值可根據分類確定該所得求和輸出是否有效,其中諸如「1」的二元值可指示該求和輸出有效,並且「0」可指示該求和輸出無效。在其中輸出值中的求和輸出結果落入模糊範圍中的情況下,專家知識及/或機器學習技術可用於確定是否準則組合產生有效輸出,其中有效輸出指示準則的該組合滿足設計準則範圍,諸如可接受或不可接受數目的短路、設定時序等。例如,滿足明確是範圍的準則可導致輸出值落入明確類之內;該明確類可隱式地產生有效輸出。在一些情況下,規則可經定義為要求輸入(亦即,人類輸入)常駐於指定模糊類中。相對於以下表1及表2提供額外詳細的非限制性實例。
如表1及表2所示,若規則A經應用於由具有低短路(<=100)、高利用率(>=68%)及低設定時序(<=100ns)的配置和繞線運行及分析產生的資料,則規則可產生明確輸出分類及有效輸出(例如1)的進一步結果。若規則B經應用於由配置和繞線結果及分析產生的資料,該資料具有低短路(<=100)、中等或合理的利用率(66%)及低設定時序(<=100ns),則再次將規則應用於配置和繞線運行結果可產生明確輸出分類及有效輸出的進一步結果(例如1)。若規則C經應用於來自配置和繞線結果及分析的資料,該資料具有低短路(<=100)、中等或合理的利用率(66%)及低設定時序(<=100ns),則將規則應用於配置和繞線結果可產生模糊輸出分類,但可產生有效輸出(例如1)。在該情況下,人類的專業知識已經涉及建立模糊範圍。若規則D經應用於來自配置和繞線結果及分析的資料,該資料具有低短路(<=100)、中等或合理的利用率(61%)及中等或合理的設定時序(490ns),則將
規則應用於配置和繞線運行結果可產生明確輸出分類及無效輸出(例如0)。亦可能將規則D應用於相同配置和繞線結果及分析,其具有低短路(<=100)、合理的利用率(61%)及合理的設定時序(490ns),但取決於例如施加的人類輸入,使配置和繞線結果落入將產生無效輸出(例如0)的模糊輸出分類之內。
上文論述的明確-否-範圍(crisp-no-range)、模糊範圍及明確-是-範圍(crisp-yes-range)之每一者可使用一或多個先前描述的機器學習流程來建立。例如,包括經確定為有效的配置和繞線運行的訓練資料可提供至學習方法704,以使得可在參數估計708處估計範圍參數,其中範圍參數指示明確-範圍-否(crisp-range-no)、模糊範圍及明確-範圍-是(crisp-range-yes)準則之每一者的上限及下限可以基於訓練資料而修改及細化。儘管上文實例圖示具有三個範圍的最佳區域準則集,但是可預期額外的範圍及/或準則。例如,可建立對於低至中短路的額外模糊範圍等。
隨後可確定具有面積利用率的配置和繞線佈局,該面積利用率符合來自知識儲存的模糊邏輯規則的一或多者。例如,在預測階段700B期間,可將規則庫714從資料庫712提供至推理引擎步驟720。因此,在步驟718,來自例如配置和繞線運行的新資料716可經模糊化(例如,指派至準則範圍)。新資料716可對應於具有如先前參考第3圖論述的方框的網路連線表及平面規劃。新資料716可由應用於多個建議的平面規劃的分區及網路連線表的配置和繞線流程產生,其中應
用於多個建議的平面規劃的各個分區及網路連線表將產生不同的結果,諸如例如時序及利用率。因此,在一些情況下,平面規劃將在大小、形狀及/或方框方面有所不同,其中該方框可根據每一配置和繞線運行遞增增加,可經根據每一配置和繞線運行置放在各個分區位置處,及上述兩者之組合。例如,在使用相同平面規劃的每一配置和繞線運行之間,方框可遞增增加2%。另外地或替代地,可利用不同的平面規劃,其中不同的平面規劃具有不同形狀及/或不同位置的方框。因此,多個配置和繞線運行可經應用於第二平面規劃以使得方框的區域在配置和繞線運行的每一者之間不同,以確定對於該平面規劃的方框例如在同時滿足其他設計準則的同時提供較小的實體設計。
新資料716可由相同的網路連線表及分區產生,該些網路連線表及分區經應用於不同的平面規劃及/或每一平面規劃的不同區域方框。每一配置和繞線運行的結果可儲存於一或多個記憶體620及/或大量儲存裝置624中,及/或經由網路介面646可存取。從配置和繞線運行產生的新資料716的非限制性實例在下文表3中圖示。
上文在表3中示出的每一配置和繞線運行的所得新資料716可隨後在步驟718模糊化,以將分離的配置和繞線資料量測轉換為模糊值並且產生類似於以下表4的表,其中模糊化準則可例如基於表5建立準則值每一者的低(L)、中(M)或高(H)限制。
在推理引擎步驟720處,規則庫714可應用於模糊準則,其中規則庫714的每一庫針對來自由推理引擎步驟720
的每一配置和繞線運行的模糊的新資料716激發。在一些情況下,多個規則可應用於單個配置和繞線運行。在其他情況下,應用規則庫714的一或多個規則可在如上文結合表2所述的去模糊化步驟722期間產生輸出值,並且提供類似於以下表6的輸出值以提供資料的低(L)、中(M)或高(H)分類及明確(C)或模糊(F)輸出分類。亦即,去模糊化為在給定模糊集及相應隸屬度的情況下,產生明確邏輯的可量化結果的流程;去模糊化為將模糊集映射至明確集的流程。輸出值可指示具有面積利用率的預測配置和繞線佈局,該面積利用率符合來自知識儲存710的模糊邏輯規則的一或多者,如在預測階段700B的預測結果724步驟處所示。
在一些情況下,設計流程可以預測結果724結束,其中與具有最接近於理想設計要求的參數的運行ID相關聯的網路連線表、分區,及平面規劃可得以獲得並且用於進一步系統單晶片製造。然而,在一些情況下,與具有最接近於理想設計要求的量測參數的運行ID相關聯的網路連線表、分區,及平面佈置可能不具有最大,或最佳的利用率(面積最佳化)。因此,可進入消除階段700C,在該階段配置和繞線運行可基於一或多個額外分類技術而消除。例如,在步驟726處,若配
置和繞線運行無效,諸如上文在表6中以明確輸出值0所示的運行n,則可在步驟728處從進一步考慮中除去配置和繞線運行。因此,設計流程700的消除階段700C可進行以分類其餘配置和繞線運行(例如,表6中的運行ID 1至......)之每一者。根據本案的實施例,可在步驟730處執行諸如最近相鄰者搜尋的機器學習演算法以使得根據最高面積利用率、平面規劃,及/或區域方框(諸如在表6中所示)最接近於彼此的前k個結果(其中k為變數)可得以識別。作為一實例,可獲得諸如在表7中所示的輸出,該表展示對於短路、利用率、時序設定、模糊化類(明確(C)或模糊(F))及最近相鄰排序的最近相鄰資料。
在一些情況下,設計流程可以預測結果724結束,其中對於其餘配置和繞線運行的每一者的網路連線表滿足面積最佳化準則。例如,若在步驟730中識別的前k個結果的數目小於及/或等於如在決策區塊步驟732處確定的候選的最小數目,則設計流程700的消除階段700C可在步驟734處結
束,並且在預測結果724步驟處識別的配置和繞線運行可在步驟736處儲存於一或多個儲存位置中,該些儲存位置例如大量儲存裝置624及/或記憶體620。
若在步驟730處的配置和繞線運行的所得分類產生配置和繞線運行的一數量(例如,前k個結果的數量),該數量超過在步驟732處的候選配置和繞線運行的最小數量,則可將前k個候選配置和繞線運行提供回至預測階段700B及/或學習階段700A。亦即,根據本案之實施例,前k個候選配置和繞線運行可用於調整,及/或細化一或多個準則,該一或多個準則用以模糊化提供至設計流程700中的輸入。例如,利用率可經細化以使得不同的上限及下限定義低、中及高模糊類,如表8中所示。因此,推理引擎步驟720可作用於相同配置和繞線網路連線表及利用不同模糊類的其他準則;從而,在去模糊化步驟722期間,對於配置和繞線運行的有效輸出值可符合經細化的限制。
另外地或替代地,若在步驟730處的配置和繞線運行的所得分類產生配置和繞線運行的一數量(例如,前k個結果的數量),該數量超過在步驟732處的候選配置和繞線運
行的最小數量,則可在學習階段700A中,以更細化的方式修改(例如,增加或減小)與前k個候選配置和繞線運行相對應的初始系統單晶片設計的方框。例如,可對於特定的網路連線表及平面佈置獲得前k個候選配置和繞線運行的平均方框大小;該方框可最後以增量方式在新資料716的步驟中增加。在一些情況下,方框區域增加1%,而不是增加2%。在其他情況下,不是將方框的大小遞增2%,而是可將起始方框增加0.1%。替代地或另外地,該方框的區域可增加,或減少例如0.1%的任何倍數(例如,0.2%、0.3%......4.5%等)。在一些情況下,方框的區域可增加或減少隨機量。
因此,來自知識儲存710的嚴格準則可應用於先前的配置和繞線運行及/或在預測階段700B中具有不同區域方框的配置和繞線運行。該些額外的預測結果可在步驟730處根據最近相鄰演算法再次分類,例如,以識別最接近於彼此的前k個結果(其中k為變數),以使得作為一實例,可獲得諸如表9中所示的輸出的輸出。
因此,例如,可識別具有最大利用率的對應於平面佈置、方框及網路連線表的運行ID,同時仍獲得如由經細化的模糊化規則定義的最佳時序及短路結果(例如,表8)。
第8圖圖示例如在表804中的配置和繞線運行及分析資訊314及經面積最佳化的系統單晶片資訊318的額外詳情。配置和繞線運行及分析資訊314及經面積最佳化的系統單晶片資訊318之每一者可包括適用於特定配置和繞線運行及後續分析的一或多條資訊。例如,可提供系統單晶片設計的面積、大小、形狀、切口、圖案、時序、設定時序、預期短路的數目、整體利用率,及特定於平面規劃的識別器。替代地或另外地,在表808中,提供一或多個特徵向量的額外詳情,其描繪了配置和繞線運行及分析資訊314、經面積最佳化的系統單晶片資訊318,及/或經由分類820步驟獲取的資訊的詳情。例如,表808可包括識別用於配置和繞線運行及分析的平面佈置、方框及/或網路連線表的運行識別器812。該表可包括特定特徵向量816,該特徵向量包括量測,諸如在表804中識別的那些量測及/或適用於特定配置和繞線運行及後續分析的其他資訊。此外,表808可包括來自預測結果步驟(例如,724)的輸出的分類820,及/或預測結果724步驟的值824。最後,在分類820步驟處的分類及排序流程之後,表808可包括對於每一配置和繞線運行的排序828。因此,前n個結果可作為模糊邏輯面積最佳化流程700的輸出提供。
第9圖圖示根據本案的實施例的方法900的額外詳情。亦即,用於基於模糊邏輯分類及機器學習演算法產生系統單晶片設計的方法900可如第9圖中所示提供。方法900可包括更多或更少的步驟或者可以與第9圖中所示的彼等步驟不同的步驟順序安排。方法900可作為由電腦系統執行的電腦可執行指令的集合執行,並且編碼或儲存在諸如第6圖中所示的示例性電腦處理系統的電腦可讀取媒體上。此外,方法900可由與處理器相關聯的閘極或電路、特定應用積體電路(Application Specific Integrated Circuit;ASIC)、現場可程式閘陣列(field programmable gate array,FPGA)、系統單晶片(SoC),或其他硬體裝置執行。在下文中,方法900應參考結合第1圖至第8圖描述的系統、元件、模組、軟體、資料結構、使用者介面等來說明。
在方法900中,在步驟908處,接收諸如在第3圖至第5B圖中所示的彼等的一或多個網路連線表、候選平面規劃,及區域方框。在步驟912處,執行配置和繞線及分析,產生對於如先前論述的配置和繞線運行的每一者的平面規劃及量測。在步驟916處,平面規劃及量測可用於定於準則,該準則用於建立用於模糊化作為輸入資料的量測的一或多類模糊邏輯分類器。在步驟920處,諸如彼等先前描述的一或多個規則集可經激發以根據先前建立的模糊類評估量測,並且產生對於配置和繞線運行的每一者的預測結果(例如,已經歷配置和繞線及分析流程的平面規劃)。來自步驟920的結果可經分類,及/或分組,且進一步在924處評估以確定是否所得配置和繞線
運行的量大於閾值。若如此,則方法可進行至步驟928,其中一或多個模糊邏輯規則集可經細化及/或模糊化準則可經細化。因此,先前利用的經歷不同模糊化準則及/或輸出規則的配置和繞線及後續分析的結果可在步驟920處獲得。另外地或替代地,方法900可從步驟924進行至步驟932,若所得配置和繞線運行的量大於如由在步驟924中確定閾值,其中與平面規劃的一或多個方框相關聯的區域可以比先前增加及/或減小的更細化的方式藉由增量增加及/或減小該區域來修改。因此,方法900可進行之步驟908,其中步驟908至924可使用新的配置和繞線運行及後續分析資訊重複。當配置和繞線運行的數目滿足預定數量準則發生時,方法900可在步驟936處結束。
根據本案的實施例可包括一種方法,該方法包括:接收功能積體電路設計;基於所接收的功能積體電路設計及一或多個積體電路平面規劃產生複數個配置和繞線(PnR)佈局;應用一或多個模糊邏輯規則以分析與經產生的配置和繞線佈局的每一者相關聯的屬性;以及確定具有面積利用率的複數個配置和繞線佈局的配置和繞線佈局,該面積利用率符合一或多個模糊邏輯規則。
進一步所揭示的實施例可包括面積最佳化系統單晶片(SoC)設計器,其包括:處理器、由儲存模糊邏輯規則的處理器可存取的資料庫、及由處理器可存取的電腦可讀取媒體、儲存指令的電腦可讀取媒體,當該些指令由實施方法的處理器執行時,該方法包括:接收功能積體電路設計;基於所接收的功能積體電路設計及一或多個積體電路平面規劃產生複
數個配置和繞線(PnR)佈局;應用一或多個模糊邏輯規則以分析與經產生的配置和繞線佈局的每一者相關聯的屬性;以及確定具有面積利用率的複數個配置和繞線佈局的配置和繞線佈局,該面積利用率符合一或多個模糊邏輯規則。上述實施例的至少一個態樣可包括修改模糊化準則、一或多個邏輯規則及/或一或多個平面規劃的至少一者。
其他實施例可包括電腦可讀取媒體,該電腦可讀取媒體包括一或多個指令,該些指令當由處理器執行時,使得處理器接收功能積體電路設計;基於所接收的功能積體電路設計及一或多個積體電路平面規劃產生複數個配置和繞線(PnR)佈局;及對於產生的複數個配置和繞線佈局的每一者,應用一或多個設計分析至配置和繞線佈局以產生與配置和繞線佈局相關聯的屬性;模糊化該些屬性;基於一或多個模糊邏輯規則產生輸出;以及將輸出去模糊化;並且確定具有面積利用率的複數個配置和繞線佈局的配置和繞線佈局,該面積利用率符合一或多個模糊邏輯規則。
本案概述了各種實施例,以便熟習該項技術者可較佳理解本案的態樣。熟習該項技術者應理解,其可輕易地使用本揭示內容作為用於設計或修改其他製程及結構之基礎,該些其他製程及結構用於實現本文介紹之實施例的相同目的及/或達成相同優點。熟習該項技術者亦應瞭解,該些同等構造不背離本案之精神及範疇,且在不背離本案之精神及範疇之情況下,熟習該項技術者可以進行各種改變、替代及更改。
300:處理系統
302A~302D:平面規劃
304:網路連線表
308:配置和繞線與分析元件
312:模糊邏輯面積最佳化器
314:配置和繞線運行及分析資訊
316:經面積最佳化的系統單晶片設計
318:經面積最佳化的系統單晶片資訊
324:計算裝置
Claims (20)
- 一種方法,包含:接收一功能積體電路設計;基於接收的該功能積體電路設計及一或多個積體電路平面規劃,產生複數個配置和繞線(place and route,PnR)佈局;應用一或多個規則以分析與經產生的該些配置和繞線佈局中每一者相關聯的複數個屬性,其中該一或多個規則包括具有複數個真值的複數個變數,該些真值可為0與1之間(含0與1)的任何實數;以及在複數個配置和繞線佈局中決定一配置和繞線佈局,該配置和繞線佈局具有一面積利用率,該面積利用率符合該一或多個規則。
- 如請求項1所述之方法,其中該一或多個規則為模糊邏輯規則,且其中應用該一或多個規則以分析經產生的該些配置和繞線佈局包括:對於該些配置和繞線佈局的每一者:在該配置和繞線佈局上應用一或多個設計分析,以產生與該配置和繞線佈局相關聯的該些屬性;模糊化該些屬性;基於該一或多個模糊邏輯規則產生一輸出;以及去模糊化該輸出。
- 如請求項2所述之方法,進一步包含:至少基於該面積利用率將該些配置和繞線佈局分類且排序。
- 如請求項2所述之方法,進一步包含:在一或多個積體電路平面規劃的每一者中定位一方框於一相同位置,其中在該一或多個積體電路平面規劃的每一者中的該方框不同於其他方框。
- 如請求項4所述之方法,其中該些方框中的每一者的一尺寸不同於其他方框的一尺寸。
- 如請求項2所述之方法,進一步包含:基於具有一面積利用率的該些配置和繞線佈局中經決定的該配置和繞線佈局,修改該一或多個模糊邏輯規則,該面積利用率符合該一或多個模糊邏輯規則。
- 如請求項2所述之方法,進一步包含:基於具有一面積利用率的該些配置和繞線佈局中經決定的該配置和繞線佈局,修改用於模糊化該些屬性的一模糊化準則,該面積利用率符合該一或多個模糊邏輯規則。
- 如請求項1所述之方法,其中該一或多個平面規劃包括一第一平面規劃及與該第一平面規劃不同的一第二平面規劃,該第一平面規劃包括一方框,該方框具有與該第二平面中的一方框相同的一形狀及尺寸。
- 如請求項1所述之方法,進一步包含:基於具有一面積利用率的該些配置和繞線佈局產生一知識資料庫,該面積利用率符合該一或多個模糊邏輯規則。
- 如請求項1所述之方法,進一步包含:基於該些配置和繞線佈局中該配置和繞線佈局製造一系統單晶片,該配置和繞線佈局具有一面積利用率,且該面積利用率符合一或多個模糊邏輯規則。
- 一種系統,包含:一處理器;一資料庫,可由儲存複數個模糊邏輯規則的該處理器存取;一電腦可讀取媒體,可由該處理器存取,該電腦可讀取媒體儲存當由該處理器執行時會實施一方法的指令,並包含:接收一功能積體電路設計;基於接收的該功能積體電路設計及一或多個積體電路平面規劃產生複數個配置和繞線(PnR)佈局;應用儲存於該資料庫中的一或多個模糊邏輯規則以分析與經產生的該些配置和繞線佈局中每一者相關聯的屬性;在該些配置和繞線佈局中決定一配置和繞線佈局,該配置和繞線佈局具有一面積利用率,該面積利用率符合該一或多個模糊邏輯規則;至少基於該面積利用率將該些配置和繞線佈局分類且排序,且至少基於該面積利用率由經分類且排序後的該些配置和繞線佈局中選出其中一部分;以及修改一模糊化準則、一或多個邏輯規則及/或一或多個平面規劃的至少一者。
- 如請求項11所述之系統,其中應用該些模糊邏輯規則以分析經產生的該些配置和繞線佈局的該方法包括:對於該複數個配置和繞線佈局的每一者:應用一或多個設計分析至該配置和繞線佈局以產生與該配置和繞線佈局相關聯的屬性;模糊化該些屬性;基於該一或多個模糊邏輯規則產生一輸出;以及去模糊化該輸出。
- 如請求項12所述之系統,其中該資料庫儲存於該些電腦可讀取媒體中。
- 如請求項12所述之系統,其中該方法進一步包含:應用一或多個該模糊邏輯規則以分析該些屬性,該些屬性與經分類且排序的該些配置和繞線佈局之每一者相關聯;以及在該些配置和繞線佈局中,決定一第二配置和繞線佈局,該第二配置和繞線佈局具有一面積利用率,該面積利用率符合該經應用的一或多個模糊邏輯規則。
- 如請求項11所述之系統,其中該方法進一步包含:在該一或多個積體電路平面規劃的每一者中的相同位置處,系統地改變一方框。
- 如請求項11所述之系統,其中該方法進一步包含:基於具有一面積利用率的該些配置和繞線佈局的經決定的該配置和繞線佈局,修改該一或多個模糊邏輯規則,該面積利用率符合該一或多個模糊邏輯規則。
- 如請求項11所述之系統,其中該方法進一步包含:基於具有一面積利用率的該些配置和繞線佈局中經決定的該配置和繞線佈局,修改用於模糊化該些屬性的模糊化準則,該面積利用率符合該一或多個模糊邏輯規則。
- 如請求項11所述之系統,其中該方法進一步包含:基於具有一面積利用率的該些配置和繞線佈局產生一知識資料庫,該面積利用率符合一或多個模糊邏輯規則。
- 一種電腦可讀取媒體,包括一或多個指令的,當該一或多個指令由一處理器執行時,使得該處理器進行以下操作:接收一功能積體電路設計;基於該接收的功能積體電路設計及一或多個積體電路平面規劃產生複數個配置和繞線(PnR)佈局;以及對於經產生的該些配置和繞線佈局的每一者:應用一或多個設計分析至該配置和繞線佈局以產生與該配置和繞線佈局相關聯的複數個屬性;模糊化該些屬性;基於該一或多個模糊邏輯規則產生一輸出;去模糊化該輸出;以及在該些配置和繞線佈局中決定一配置和繞線佈局,該配置和繞線佈局具有一面積利用率,該面積利用率符合該一或多個模糊邏輯規則。
- 如請求項19所述之電腦可讀取媒體,其中該一或多個指令使得該處理器以:基於至少該面積利用率選擇該些配置和繞線佈局的一部分;修改模糊化準則、一或多個邏輯規則及/或一或多個平面規劃的至少一者;應用一或多個不同的模糊邏輯規則以分析與該些配置和繞線佈局之每一者相關聯的該些屬性;以及決定具有一面積利用率的在該些配置和繞線佈局中,決定一配置和繞線佈局,該配置和繞線佈局具有一面積利用率,該面積利用率符合經應用的該一或多個模糊邏輯規則。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862738593P | 2018-09-28 | 2018-09-28 | |
US62/738,593 | 2018-09-28 | ||
US201962857383P | 2019-06-05 | 2019-06-05 | |
US62/857,383 | 2019-06-05 | ||
US16/569,966 | 2019-09-13 | ||
US16/569,966 US11392748B2 (en) | 2018-09-28 | 2019-09-13 | Integrated circuit design using fuzzy machine learning |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032260A true TW202032260A (zh) | 2020-09-01 |
TWI716115B TWI716115B (zh) | 2021-01-11 |
Family
ID=69947559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108134473A TWI716115B (zh) | 2018-09-28 | 2019-09-24 | 積體電路設計方法、積體電路設計系統及非暫態電腦可讀取媒體 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11392748B2 (zh) |
KR (1) | KR102279473B1 (zh) |
CN (1) | CN110991138B (zh) |
TW (1) | TWI716115B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810336B2 (en) * | 2017-10-06 | 2020-10-20 | Zglue, Inc. | Methods for automated hardware system synthesis |
DE102019124928A1 (de) * | 2018-09-28 | 2020-04-02 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integriertes schaltungsdesign unter verwendung von fuzzy-maschinenlernen |
CN112052642A (zh) * | 2019-05-20 | 2020-12-08 | 台湾积体电路制造股份有限公司 | 用于机器学习的esl建模的系统和方法 |
US11048852B1 (en) * | 2019-07-26 | 2021-06-29 | Cadence Design Systems, Inc. | System, method and computer program product for automatic generation of sizing constraints by reusing existing electronic designs |
US10878160B1 (en) * | 2019-07-31 | 2020-12-29 | Taiwan Semiconductor Manufacturing Co., Ltd. | Analog cells utilizing complementary mosfet pairs |
US10831955B1 (en) * | 2019-11-19 | 2020-11-10 | International Business Machines Corporation | Prediction of closure feasibility in microprocessor design |
CN111950225B (zh) * | 2020-08-13 | 2024-05-10 | 京东方科技集团股份有限公司 | 一种芯片布局方法、装置、存储介质和电子设备 |
US11347920B2 (en) | 2020-10-21 | 2022-05-31 | Taiwan Semiconductor Manufacturing Company, Ltd. | Circuit synthesis optimization for implements on integrated circuit |
US11301612B1 (en) * | 2021-01-03 | 2022-04-12 | Bqr Reliability Engineering Ltd. | Method and apparatus for predicting electrical values in electronic circuits |
US20230281366A1 (en) * | 2022-03-02 | 2023-09-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Apparatus and method of optimizing an integrtted circuit design |
KR102662404B1 (ko) * | 2023-07-22 | 2024-04-29 | 주식회사 플랜터 | 인공지능 기반 다목적 지능형 반도체 시스템 |
CN118151851B (zh) * | 2024-03-19 | 2024-07-09 | 苏州元脑智能科技有限公司 | 固态硬盘读取方法、装置、设备及可读存储介质 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6171872A (ja) * | 1984-09-14 | 1986-04-12 | Amagasaki Seikan Kk | 溶接缶の溶接継目の被覆方法とその装置 |
US5768479A (en) * | 1996-09-17 | 1998-06-16 | Cadence Design Systems, Inc. | Circuit layout technique with template-driven placement using fuzzy logic |
US7065727B2 (en) * | 2001-04-25 | 2006-06-20 | Barcelona Design, Inc. | Optimal simultaneous design and floorplanning of integrated circuit |
US7356784B1 (en) * | 2003-12-05 | 2008-04-08 | Cadence Design Systems, Inc. | Integrated synthesis placement and routing for integrated circuits |
US6882897B1 (en) | 2004-01-05 | 2005-04-19 | Dennis S. Fernandez | Reconfigurable garment definition and production method |
US7523429B2 (en) * | 2004-02-20 | 2009-04-21 | Takumi Technology Corporation | System for designing integrated circuits with enhanced manufacturability |
JP4768251B2 (ja) * | 2004-11-01 | 2011-09-07 | 株式会社東芝 | 半導体集積回路の設計方法、半導体集積回路の設計システム及び半導体集積回路の製造方法 |
US7617464B2 (en) * | 2005-05-20 | 2009-11-10 | Synopsys, Inc. | Verifying an IC layout in individual regions and combining results |
US20090300570A1 (en) * | 2006-07-17 | 2009-12-03 | Syncira Corporation | Interactive hierarchical analog layout synthesis for integrated circuits |
US7739646B2 (en) * | 2006-10-12 | 2010-06-15 | Springsoft, Inc. | Analog and mixed signal IC layout system |
US8330414B2 (en) * | 2006-11-08 | 2012-12-11 | Panasonic Corporation | Contactless battery charger, electronic device, battery pack, and contactless charging system |
US7861203B2 (en) * | 2006-12-29 | 2010-12-28 | Cadence Design Systems, Inc. | Method and system for model-based routing of an integrated circuit |
US8138723B2 (en) * | 2008-05-26 | 2012-03-20 | Steve Carkner | Remote battery charging system with dynamic voltage adjustment and method of use |
US8463457B2 (en) * | 2008-06-13 | 2013-06-11 | Schlumberger Technology Corporation | Feedback control using a simulator of a subterranean structure |
KR20120052955A (ko) * | 2009-08-11 | 2012-05-24 | 소니 주식회사 | 전자 기기, 전자 기기의 충전 방법, 프로그램, 충전 제어 장치 및 충전 제어 방법 |
JP2011109833A (ja) * | 2009-11-18 | 2011-06-02 | Sony Corp | 二次電池の充電方法および充電装置 |
JP2011151891A (ja) * | 2010-01-19 | 2011-08-04 | Sony Corp | 二次電池の充電方法および充電装置 |
EP2559588B1 (en) * | 2010-06-04 | 2017-11-08 | Honda Motor Co., Ltd. | Control apparatus for vehicle |
US8902625B2 (en) * | 2011-11-22 | 2014-12-02 | Marvell World Trade Ltd. | Layouts for memory and logic circuits in a system-on-chip |
US8473891B1 (en) * | 2012-01-31 | 2013-06-25 | Texas Instruments Incorporated | System and method for integrated circuit layout editing using reference frames |
US8745556B2 (en) | 2012-06-28 | 2014-06-03 | Taiwan Semiconductor Manufacturing Co., Ltd. | Layout method and system for multi-patterning integrated circuits |
US20140156233A1 (en) * | 2012-12-03 | 2014-06-05 | Can Wang | Method and apparatus for electronic circuit simulation |
CN103870617B (zh) | 2012-12-12 | 2017-04-05 | 上海华虹宏力半导体制造有限公司 | 低频芯片自动布局布线方法 |
US9910953B2 (en) * | 2013-03-04 | 2018-03-06 | Kla-Tencor Corporation | Metrology target identification, design and verification |
CN103208850B (zh) * | 2013-04-12 | 2016-01-13 | 惠州Tcl移动通信有限公司 | 可变充电电压的usb充电系统、充电器及智能终端 |
JP6221586B2 (ja) | 2013-09-30 | 2017-11-01 | 株式会社ソシオネクスト | 半導体集積回路 |
US9189588B2 (en) | 2013-12-10 | 2015-11-17 | Taiwan Semiconductor Manufacturing Company, Ltd. | Polygon-based optical proximity correction |
KR102193674B1 (ko) * | 2014-01-22 | 2020-12-21 | 삼성전자주식회사 | 반도체 장치의 레이아웃 디자인을 생성하는 레이아웃 디자인 시스템 |
US20160042110A1 (en) | 2014-08-10 | 2016-02-11 | Qualcomm Incorporated | High quality physical design for monolithic three-dimensional integrated circuits (3d ic) using two-dimensional integrated circuit (2d ic) design tools |
WO2016074159A1 (zh) * | 2014-11-11 | 2016-05-19 | 广东欧珀移动通信有限公司 | 通信方法、电源适配器和终端 |
US9390211B1 (en) * | 2015-01-09 | 2016-07-12 | Synopsys, Inc. | Circuit placement based on fuzzy clustering |
KR102257031B1 (ko) | 2015-03-13 | 2021-05-27 | 삼성전자주식회사 | 반도체 집적 회로 설계 방법 |
US9846755B2 (en) | 2015-04-16 | 2017-12-19 | Taiwan Semiconductor Manufacturing Company Limited | Method for cell placement in semiconductor layout and system thereof |
US10250052B2 (en) * | 2015-12-03 | 2019-04-02 | Qualcomm Incorporated | Charge rate optimization for enhanced battery cycle life |
KR102547376B1 (ko) * | 2016-03-03 | 2023-06-26 | 삼성전자주식회사 | 전자 장치, 충전 제어 방법 및 컴퓨터 판독가능 기록매체 |
US10817637B2 (en) | 2016-07-29 | 2020-10-27 | Samsung Electronics Co., Ltd. | System and method of designing integrated circuit by considering local layout effect |
US10366200B2 (en) | 2016-09-07 | 2019-07-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | System for and method of manufacturing a layout design of an integrated circuit |
US10783311B2 (en) * | 2016-10-31 | 2020-09-22 | Synopsys, Inc. | DRC processing tool for early stage IC layout designs |
US10509883B2 (en) * | 2016-11-28 | 2019-12-17 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method for layout generation with constrained hypergraph partitioning |
WO2019075242A1 (en) * | 2017-10-11 | 2019-04-18 | Beyond Limits, Inc. | SYSTEM FOR IMPROVING EXPLORATION AND TANK PRODUCTION |
US10808333B2 (en) * | 2018-01-08 | 2020-10-20 | Totic Technology Inc. | Method and apparatus for performing layout designs using stem cells |
-
2019
- 2019-09-13 US US16/569,966 patent/US11392748B2/en active Active
- 2019-09-24 TW TW108134473A patent/TWI716115B/zh active
- 2019-09-27 KR KR1020190120070A patent/KR102279473B1/ko active IP Right Grant
- 2019-09-27 CN CN201910922914.6A patent/CN110991138B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
TWI716115B (zh) | 2021-01-11 |
CN110991138B (zh) | 2023-08-08 |
US11392748B2 (en) | 2022-07-19 |
CN110991138A (zh) | 2020-04-10 |
KR102279473B1 (ko) | 2021-07-22 |
KR20200037104A (ko) | 2020-04-08 |
US20200104459A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI716115B (zh) | 積體電路設計方法、積體電路設計系統及非暫態電腦可讀取媒體 | |
Huang et al. | Machine learning for electronic design automation: A survey | |
Kirby et al. | CongestionNet: Routing congestion prediction using deep graph neural networks | |
Chan et al. | BEOL stack-aware routability prediction from placement using data mining techniques | |
US11748552B2 (en) | Integrated circuit design using fuzzy machine learning | |
US11604917B2 (en) | Static voltage drop (SIR) violation prediction systems and methods | |
Huang et al. | Routability-driven macro placement with embedded cnn-based prediction model | |
US11853676B2 (en) | Layout context-based cell timing characterization | |
US10489542B2 (en) | Machine learning based post route path delay estimator from synthesis netlist | |
US11055463B1 (en) | Systems and methods for gate array with partial common inputs | |
Wuu et al. | Efficient approach to early detection of lithographic hotspots using machine learning systems and pattern matching | |
Xie et al. | Fast IR drop estimation with machine learning | |
CN115510802A (zh) | 用于预测详细布线拓扑和轨道使用的机器学习模型 | |
EP4356283A1 (en) | Machine-learning-based power/ground (p/g) via removal | |
Teh et al. | Practical System-on-Chip repeater design with hybrid meta-heuristic techniques | |
Francisco | Machine Learning for Design Rule Checking, Multilayer CMP Hotspot Detection, and PPA Modeling, with Transfer Learning and Synthetic Training | |
US11861283B2 (en) | Placement method and non-transitory computer readable storage medium | |
US11741282B2 (en) | Reinforcement learning-based adjustment of digital circuits | |
Pawar | Application of Machine Learning to Physical Design | |
US20220318475A1 (en) | Library Design and Co-optimization with a Circuit Design | |
Ji et al. | LayNet: Layout Size Prediction for Memory Design Using Graph Neural Networks in Early Design Stage | |
Francisco Fernandez | Machine Learning for Design Rule Checking, Multilayer CMP Hotspot Detection, and PPA Modeling, with Transfer Learning and Synthetic Training. | |
Pan | Machine learning techniques for routability-driven routing in application-specific integrated circuits design | |
NING et al. | Machine Learning for Electronic Design Automation: A Survey | |
Jamal et al. | MBIST Area & Test Time Optimization Using Machine Learning |