TWI793546B - 電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體 - Google Patents

電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體 Download PDF

Info

Publication number
TWI793546B
TWI793546B TW110108555A TW110108555A TWI793546B TW I793546 B TWI793546 B TW I793546B TW 110108555 A TW110108555 A TW 110108555A TW 110108555 A TW110108555 A TW 110108555A TW I793546 B TWI793546 B TW I793546B
Authority
TW
Taiwan
Prior art keywords
circuit
computer
performance
physical analog
power
Prior art date
Application number
TW110108555A
Other languages
English (en)
Other versions
TW202217638A (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 台灣積體電路製造股份有限公司
Publication of TW202217638A publication Critical patent/TW202217638A/zh
Application granted granted Critical
Publication of TWI793546B publication Critical patent/TWI793546B/zh

Links

Images

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
    • 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/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/31Design entry, e.g. editors specifically adapted for circuit design
    • 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/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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
    • 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
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/10Processors
    • 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/08Thermal analysis or thermal 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/18Manufacturability analysis or optimisation for manufacturability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本揭露描述用於在積體電路上實施的優化電路合成的電 腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體。電路的邏輯行為的暫存器傳輸級代碼描述被輸入。將暫存器傳輸級代碼描述轉換成用於多種類型的元件及特徵尺寸技術的結構上界定的電路設計。產生每一結構上界定的電路設計的平面佈局圖。針對每一平面佈局圖創建實體模擬電路。掃描一系列操作條件以分析每一實體模擬電路的功率、性能以及面積。

Description

電腦實施方法、電腦實施系統以及非暫時性電 腦可讀媒體
本揭露中所描述的技術通常涉及積體電路系統晶片設計實施流程,且更具體地說,涉及用於在積體電路上實施的優化電路合成。
可使用多種技術來優化設計具有半導體裝置的專用積體電路(application specific integrated circuits;ASIC)和片上系統(System on Chips;SoC)。此類設計可為一系列變化的矽設計、實施以及製造技術,但不限於3奈米、5奈米、7奈米、10奈米、12奈米、16奈米、28奈米及/或許多其它技術。可基於使用例如功率性能面積的多種技術來優化例如隨機存取記憶體(random access memory;RAM)等的這些晶片的記憶元件。此優化可為勞動密集的且耗時的。
本揭露的電腦實施方法用於在積體電路上實施的優化電路合成。電腦實施方法包括:輸入電路的邏輯行為的暫存器傳輸級代碼描述;將暫存器傳輸級代碼描述轉換成用於多種類型的元件及特徵尺寸技術的結構上界定的電路設計;產生每一結構上界定的電路設計的平面佈局圖;對每一平面佈局圖創建實體模擬電路;以及掃描一系列操作條件以分析每一實體模擬電路的功率、性能以及面積。
本揭露的電腦實施系統用於在積體電路上實施的優化電路合成。電腦實施系統包括轉換模組、模擬模組以及分析模組。轉換模組配置成存取電路的行為的暫存器傳輸級代碼描述,並將暫存器傳輸級代碼轉換成用於多種類型的元件及特徵尺寸技術的一組結構上界定的電路設計。模擬模組配置成存取所述一組結構上界定的電路設計並對每一平面佈局圖創建實體模擬電路。分析模組配置成存取實體模擬電路並掃描實體模擬電路的一系列操作條件,以產生對於實體模擬電路的功率、性能以及面積特性的一組分析。
本揭露的非暫時性電腦可讀媒體對用於製造積體電路的記憶體儲存指令進行編碼。所述指令在被執行時引起包括以下各項的操作:產生每一結構上界定的電路設計的平面佈局圖;對每一平面佈局圖創建實體模擬電路;以及掃描一系列操作條件以分析每一實體模擬電路的功率、性能以及面積。
100、200、300:系統
210:轉換模組
220:平面佈局圖映射模組
230:模擬模組
240:分析模組
310:分類別模組
320:顯示模組
330:電路設計模組
340:合成模組
350:網表創建模組
400、500、700、900:框圖
402、404、406、501、502、503、504、505、701、702、703、704、705:文件列表
410:記憶體尺寸提取器
412:追蹤器
422、424、426:邏輯閘配置
431:單埠靜態隨機存取記憶體
432:雙埠靜態隨機存取記憶體
433:複式埠靜態隨機存取記憶體
434:2P RF元件
436、520:暫存器編譯器
437:1P RF元件
440:包裝器
452、454、456:網表
460:區塊
511、512、513、514:編譯
515:暫存器正反器儲存
521、522、523、524、525:CPU網表
530:用戶界定
600:圖解
721、722、723、724、725:ML網表
800:流程圖
810、820、830、840、850:步驟
904:匯流排
908:處理系統
912:唯讀記憶體
914:顯示介面
916:隨機存取記憶體
920:通訊連接埠
928:輸入裝置介面
932:輸入裝置
936:鍵盤
940:顯示裝置
948:磁碟控制卡
952、956:磁碟機
結合附圖閱讀以下詳細描述會最佳地理解本揭露的各方面。應注意,根據業界中的標準慣例,各種特徵未按比例繪製。實際上,為了論述清楚起見,可任意增大或減小各種特徵的尺寸。
圖1是根據本揭露的各種實施例的用於分析和提取來自跨各種技術尺寸(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的RAM配置和暫存器堆的資料的示例性系統的框圖。
圖2是根據本揭露的各種實施例的用於分析和提取來自跨各種技術尺寸(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的RAM配置和暫存器堆的資料的另一示例性系統的框圖。
圖3是根據本揭露的各種實施例的用於分析和提取來自跨各種技術尺寸(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的RAM配置和暫存器堆的資料的另一示例性系統的框圖。
圖4是示出根據本揭露的各種實施例的合成網表的產生的示例性框圖。
圖5是示出根據本揭露的各種實施例的合成CPU網表的產生的示例性框圖。
圖6是示出根據本揭露的各種實施例的PPA分析的示例性圖解。
圖7是示出根據本揭露的各種實施例的合成ML網表的產生 的示例性框圖。
圖8是示出根據本揭露的各種實施例的用於在積體電路上實施的優化電路合成的方法的示例性流程圖。
圖9是示出用於實施本文中所描述的各種方面的樣本計算裝置架構的示例性框圖。
以下公開內容提供用於實施所提供主題的不同特徵的許多不同實施例或實例。下文描述元件和佈置的具體實例以簡化本揭露。當然,這些僅為實例且並不意圖為限制性的。舉例來說,在以下描述中,第一特徵在第二特徵上方或第二特徵上的形成可包含第一特徵與第二特徵直接接觸地形成的實施例,且還可包含可在第一特徵與第二特徵之間形成額外特徵從而使得第一特徵與第二特徵可不直接接觸的實施例。另外,本揭露可在各種實例中重複附圖標號和/或字母。此重複是出於簡化和清楚的目的,且本身並不指示所論述的各種實施例和/或配置之間的關係。
隨著電子元件的尺寸持續減小且電路佈局變得更複雜,電路佈局的模擬可說明優化電路設計和安置。數千種ASIC設計存在以用於各種RAM、暫存器以及其它記憶元件。這些設計可大大地不同於彼此,因為每一種設計可考慮各種類型的RAM編譯器、單元類型(例如,6T或8T)、裝置速度或密度、元件閾值電壓、功率需求等。一起編譯這些設計可有助於優化新電路設計。新設 計可以優化用於特定目的的佈局的方式從現存設計中併入適當特徵。換句話說,設計可為可合成的,以用於跨各種裝置尺寸(5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的矽實施。編譯設計(例如,提取的資料)包含電路行為的描述。使用提取的資料,可通過將電路行為翻譯成界定各種電子元件尺寸和佈局的一組結構上界定的電路佈局來實體模擬新電路。佈局可被分析以存取實體模擬電路且接著可掃描實體模擬電路的一系列操作條件(例如,使用合成變數掃描系統(synthesis variable sweep system;SVSS)),以產生具有對於實體模擬電路的功率、性能以及面積(power,performance,and area;PPA)特性的一組分析的優化的網表(netlist)。此輸出可提供優化的實體模擬電路。可在例如高效計算(high performance computing;HPC)、5G移動設備、汽車、人工智慧或物聯網(internet of things;IoT)的許多不同行業中應用此類電路。
圖1是根據本揭露的各種實施例的用於分析和提取來自跨各種技術尺寸(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的RAM配置和暫存器堆的資料的示例性系統100的框圖。系統100可為接收界定各種電路的邏輯行為的RAM行為模型的暫存器傳輸級(register transfer level;RTL)設計的資料處理電腦系統。RTL是根據硬體暫存器之間的數位信號流和對那些信號執行的邏輯操作來模型化同步數位電路的設計抽象概念。如圖2至圖3中更詳細描述,系統100使用多個模組以產生 用於新電路設計的優化的設計網表。優化的設計網表具有對於實體模擬電路的功率、性能以及面積特性的一組分析。網表是電子電路的連接的描述。網表是界定各種電子元件和那些元件之間的節點連接的列表。新電路設計可為基於輸入到系統100中的RTL設計的優化的設計。通過系統100輸出的網表還包含優化的功率、性能以及面積(PPA)特徵。PPA分析用於優化設計,因為電路設計的功率、性能以及面積中的每一個都是設計不可或缺的方面。PPA分析在電路設計期間被使用。
圖2是根據本揭露的各種實施例的用於分析和提取來自跨各種技術尺寸(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的RAM配置和暫存器堆的資料的另一示例性系統200的框圖。系統200包含轉換模組210、平面佈局圖(Floor Plan)映射模組220、模擬模組230以及分析模組240。轉換模組210接收如圖1中所描述的暫存器傳輸級代碼(RTL)。暫存器傳輸級代碼是硬體描述語言內使用的軟體代碼。可使用暫存器傳輸級代碼來描述實體電路,所述暫存器傳輸級代碼描述硬暫存器之間的數位信號流以及由實體電路的元件對數位信號執行的邏輯操作(例如,AND、NAND、OR、NOR)。轉換模組210存取所述電路邏輯行為的暫存器傳輸級代碼描述。轉換模型210接著將暫存器傳輸級代碼轉換成用於多種類型元件(例如,CPU、GPU、ML-NPU)的一組結構上界定的電路設計(例如,及(AND)閘、反及(NAND)電路、或(OR)閘、反或(NOR)電路)以及特 徵尺寸技術(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)。平面佈局圖映射模組220存取一組結構上界定的電路設計,並將所述一組結構上界定的電路設計轉換成一組平面佈局圖。平面佈局圖界定電路設計內的電子元件以及所述元件在特定區域(例如,底層)中的實體安置。模擬模組230存取一組平面佈局圖並針對每一平面佈局圖創建可模擬的電路。分析模組240存取實體模擬電路並掃描實體模擬電路的一系列操作條件,以產生具有對於實體模擬電路的功率、性能以及面積特性的一組分析的優化的設計網表。分析模組240還針對多個實體模擬電路同時並行(例如,同時)掃描一系列操作條件(例如,各種輸入電壓、例如高溫/低溫、高濕度/低濕度等各種環境)。
圖3是根據本揭露的各種實施例的用於分析和提取來自跨各種技術尺寸(例如,5奈米、7奈米、10奈米、12奈米、16奈米、28奈米等)的RAM配置和暫存器堆的資料的另一示例性系統300的框圖。與圖2的系統200類似,系統300可包含轉換模組210、平面佈局圖映射模組220、模擬模組230以及分析模組240。另外,系統可包含分類別模組310、顯示模組320、電路設計模組330、合成模組340以及網表創建模組350中的一或多個。
分類別模組310存取分析並通過功率、性能以及面積特性產生一組實體模擬電路的分類列表,所述功率、性能以及面積特性界定電路的功耗、性能(也就是電路操作的頻率)以及電路所佔用的面積。這些特性可基於功率、性能以及面積值被分類。 顯示模組320存取實體模擬電路的分類列表並在圖形化使用者介面上顯示實體模擬電路的分類列表。電路設計模組330存取一組結構上界定的電路設計,並將結構上所界定的電路設計轉換成用於功率、性能以及面積特性的多簡檔配置(multiple profiled configurations)的合成的一組文件列表(filelist)。文件列表界定電路的元件以及元件之間的互連點。合成模組340存取一組文件列表,並使用設計編譯器將一組文件列表合成為一組邏輯閘配置。電路的合成包含將暫存器傳輸級代碼翻譯成通用布林模型(Boolean model)。可在邏輯電平處優化所述布林模型以將多個操作組合成更簡單的操作。舉例來說,元件可被重新佈置、組合以及/或再組合成不同元件以致力於減少操作時間以及電路內的總體元件的數目。另外,優化可包含元件的連續映射,其中可在單元內吸收環繞連續單元的邏輯以節省面積。設計編譯器也可執行各種優化操作,例如去除不具有輸出埠連接的邏輯、去除冗餘元件(例如,如兩個連續反相器)及/或傳播常量以減少電路內的總體邏輯元件。網表創建模組350存取一組邏輯閘配置並將一組邏輯閘配置轉換成將由模擬模組230使用的一組網表。邏輯閘配置含有界定元件互連的邏輯示意圖。這些邏輯閘配置可翻譯成配置內的節點、配置內的元件以及其互連的文本表示。此文本表示為網表。
圖4是示出根據本揭露的各種實施例的合成網表的產生的示例性框圖400。文件列表(例如,描述電路邏輯行為的RTL 設計-界定電路的邏輯行為的軟體代碼)可涉及多種技術,例如中央處理單元(central processing unit;CPU)(例如,CPU-IP1 402)、圖形處理單元(graphical processing unit;GPU)(例如,GPU-IP1)、機器學習網路處理器(machine learning network processor;ML-NPU)(例如,ML-NPU-IP1)等。每一組文件列表可包含與不同模組設計相關聯的一或多個文件列表,如圖6至圖7中更詳細地描述。記憶體尺寸提取器410(例如,合成模組340)處理給定組網表以產生對應於每一組的邏輯閘配置,所述邏輯閘配置界定被評估的給定記憶體單元的尺寸。舉例來說,邏輯閘配置422(例如,config.CPU)對應於CPU-IP1文件列表402。記憶體尺寸提取器410還包含追蹤器412。追蹤器412產生與對應於半導體裝置的RTL設計的至少一部分相關聯的行為資訊。舉例來說,此行為資訊可包含裝置尺寸(例如,字元線的數目和位元線的數目)。類似地,邏輯閘配置424(例如,config.GPU)對應於GPU-IP1文件列表404。邏輯閘配置426(例如,config.ML-NPU)對應於ML-NPU-IP1文件列表406。如先前詳細描述,邏輯閘配置例如使用如單埠(single-port;SP)靜態隨機存取記憶體(static random access memory;SRAM)431、雙埠SRAM 432、複式埠(dual-port;DP)SRAM 433、1P RF 437元件、2P RF元件434以及任何其它類型的暫存器編譯器436的暫存器編譯器被編譯。這些編譯配置接著通過包裝器440來被翻譯成對應於輸入文件列表(例如,文件列表402、文件列表404、文件列表406)的網表。包裝器是被 界定以包封經包裝的代碼的軟體,使得經包裝的代碼的代碼複雜度對另一介面連接軟體元件不可見。實際上,包裝器自身含有更簡單的代碼,所述代碼創建與所述另一軟體元件的介面從而簡化兩個軟體元件之間的互動。舉例來說,兩個軟體元件可在具有彼此不相容的不同類型的軟體代碼時使用包裝器。舉例來說,網表CPU-IP1 452與文件列表CPU-IP1 402對應。網表GPU-IP1 454與文件列表GPU-IP1 404對應。網表MP-NPU-IP1 456與ML-NPU-IP1 406對應。這些網表用以使用元件的自動安置和/或信號的路由來產生優化的電路設計(例如,步驟460)。優化的網表被傳輸回到編譯器且將其儲存以使得其可用於將來的電路佈局中。
圖5是示出根據本揭露的各種實施例的合成CPU網表的產生的示例性框圖500。在此實例中,一組文件列表對應於N個模組(例如,文件列表501、文件列表502、文件列表503、文件列表504、文件列表505等)。每一文件列表包含與所述特定模組相關聯的特定行為邏輯。使用暫存器編譯器或正反器編譯器520將一組文件列表一起編譯成基於技術尺寸(例如,5奈米、7奈米、16奈米等)的分組。編譯用於產生用於佈局中的SRAM塊的佈局。每一編譯包含所有實體記憶體配置以及與輸入文件列表501、文件列表502、文件列表503、文件列表504、文件列表505相關聯的PPA配置。換句話說,一起編譯跨各種技術尺寸(例如,5奈米、7奈米、16奈米等)的具有一個字元線和一個位元線(例如文件列表502的模組-1)的所有模組。類似地,跨各種技術尺寸(例 如,5奈米、7奈米、16奈米等)的具有兩個字元線和兩個位元線(例如文件列表052的模組-2)的所有模組一起被編譯。針對跨所有各種技術尺寸(例如,5奈米、7奈米、16奈米等)的所有模組繼續此操作。PPA簡檔器針對每一技術尺寸(例如,5奈米、7奈米、16奈米等)儲存的編譯(例如,編譯511、編譯512、編譯513、編譯514)到邏輯閘配置進行評估。在圖6中更詳細地描述PPA分析。暫存器編譯器520設定可儲存於暫存器正反器儲存515中。編譯511、編譯512、編譯513、編譯514隨著暫存器正反器儲存515可被包裝和編譯以產生具有包裝的PPA簡檔的對應網表(例如,CPU網表521、CPU網表522、CPU網表523、CPU網表524、CPU網表525),其界定各種模組的功率、性能以及面積特性。包裝器是被界定以包封經包裝的代碼的軟體,使得經包裝的代碼的代碼複雜度對另一介面連接軟體元件不可見。實際上,包裝器自身含有更簡單的代碼,所述代碼創建與所述另一軟體元件的介面從而簡化兩個軟體元件之間的互動。舉例來說,可在兩個軟體元件具有彼此不相容的不同類型的軟體代碼時使用包裝器。在圖5中示出的實施例的實例中,PPA簡檔界定與不同模組尺寸(例如,一個字元線/位元線、兩個字元線/位元線等)關聯的特定功率、性能以及面積需求。在一些實施例中,專案使用者界定的配置器可為待優化的電路設置特定尺寸界定(例如,用戶界定530)。換句話說,使用者可經由使用者輸入來設置電路的特定尺寸。
圖6是示出PPA分析的示例性圖解600。使用PPA分析器評估各種文件列表以同時增加性能、維持低功耗且最小化裝置面積。通過三角測量與功率(例如,sp、Ip)、面積(例如,udh)以及性能(例如,hs)相關聯的常量來執行這些計算。這些常量界定由電子裝置消耗的功率,電子裝置元件佔據的面積,以及操作電子裝置需要的時鐘頻率(例如,性能)。三角測量是測量常量(例如,圖解600上所示出的點)中的每一個之間的距離的製程。最終目標是使功率常量sp、功率常量Ip以及面積常量udh處於其最低可能值而不犧牲電路性能hs。所有這些三個度量值(例如,功率、面積、性能)是相互依存的,因此修改這些值中的一個會影響另外兩個。
圖7是示出根據本揭露的各種實施例的合成ML網表的產生的示例性框圖700。在此實例中,一組文件列表對應於N個模組(例如,文件列表701、文件列表702、文件列表703、文件列表704、文件列表705等)。每一文件列表包含與所述特定模組相關聯的特定行為邏輯。文件列表701描述具有一個字元線和一個位元線的第一模組(例如,模組-1)。文件列表702描述具有兩個字元線和兩個位元線的第二模組(例如,模組-2)。文件列表703描述具有三個字元線和三個位元線的第三模組(例如,模組-3)。文件列表704描述具有至少四個字元線和至少四個位元線的較小RAM。文件列表705描述具有任何數目(例如,N)字元線和任何數目(例如,N)位元線的第N模組。如在圖5中詳細描述, 處理文件列表701、文件列表702、文件列表703、文件列表704、文件列表705,且產生具有包裝的PPA簡檔的對應網表(例如,ML網表721、ML網表722、ML網表723、ML網表724、ML網表725)。
圖8是示出根據本揭露的各種實施例的用於在積體電路上實施的優化電路合成的方法的示例性流程圖800。雖然為易於理解在本文中參考先前描述的結構描述圖8,但應理解,所述方法還適用於許多其它結構。通過轉換模組210輸入電路的邏輯行為的暫存器傳輸級代碼描述(例如,步驟810)。使用轉換模組210將暫存器傳輸級代碼描述轉換成用於多種類型的元件和特徵尺寸技術的結構上界定的電路設計(例如,步驟820)。使用平面佈局圖映射模組220基於結構設計電路產生每一結構上界定的電路設計的平面佈局圖(例如,步驟830)。針對每一平面佈局圖創建實體模擬電路以使用模擬模組230產生實體模擬電路(例如,步驟840)。掃描一系列操作條件以使用分析模組240分析每一實體模擬電路的功率、性能以及面積(例如,步驟850)。
圖9是示出用於實施本文所描述的各種方面的樣本計算裝置架構的示例性框圖900。匯流排904可充當與硬體的其它示出的元件互連的資訊公路。標記為中央處理單元(CPU)的處理系統908(例如,在給定電腦或多個電腦處的一或多個電腦處理器/資料處理器)可進行執行程式所需的計算和邏輯操作。非暫時性處理器可讀儲存媒體,例如唯讀記憶體(read only memory;ROM) 912和隨機存取記憶體(random access memory;RAM)916可與處理系統908通信,且可包含用於此處指定的操作的一或多個程式設計指令。任選地,程式指令可儲存於非暫時性電腦可讀儲存媒體上,例如磁片、光碟、可記錄儲存裝置、快閃記憶體或其它實體儲存媒體。
在一個實例中,磁碟控制卡948可將一或多個可選磁碟機介接到系統匯流排904。這些磁碟機可為外部或內部CD-ROM、CD-R、CD-RW或DVD,或例如952的固態驅動器,或外部或內部硬碟驅動器956。如先前所指示,這些各種磁碟機952、磁碟機956以及磁碟控制卡為任選裝置。系統匯流排904還可包含至少一個通訊連接埠920,以允許與實體連接到計算系統或可通過有線或無線網路從外部獲得的外部裝置進行通信。在一些情況下,通訊連接埠920包含或以其它方式包括網路介面。
為提供與用戶的互動,本文中所描述的主題可在具有顯示裝置940(例如,陰極射線管(cathode ray tube;CRT)或液晶顯示器(liquid crystal display;LCD)監視器)的計算裝置上實施,以用於將從匯流排904獲得的資訊顯示給使用者和使用者可藉以將輸入提供到電腦的輸入裝置932,例如鍵盤936和/或指向裝置(例如滑鼠或導航球)和/或觸控式螢幕。其它種類的輸入裝置932也可用於提供與用戶的互動;例如,提供給用戶的回饋可以是任何形式的感覺回饋(例如視覺回饋、通過麥克風的聽覺回饋或觸覺回饋);且來自用戶的輸入可以任何形式被接收,包含聲波、語 音或觸覺輸入。在輸入裝置932和鍵盤936中可借助於輸入裝置介面928耦合到匯流排904且經由匯流排904傳送資訊。例如專用伺服器的其它計算裝置可省略顯示器940和顯示介面914、輸入裝置932、鍵盤936以及輸入裝置介面928中的一或多個。
另外,可通過包括可由裝置處理子系統執行的程式指令的程式碼在許多不同類型的處理裝置上實施本文中所描述的方法和系統。軟體程式指令可包含可操作以使處理系統執行本文中所描述的方法和操作的原始程式碼、目標代碼、機器代碼或任何其它儲存資料,且可將所述軟體程式指令設置於例如C、C++、JAVA、Perl、Python、Tcl的任何適合的語言或任何其它適合的程式設計語言中。然而,還可使用其它實施,例如經配置以進行本文中所描述的方法和系統的固件或甚至適當設計的硬體。
系統資料和方法資料(例如,關聯、映射、資料登錄、資料輸出、中間資料結果、最終資料結果等)可儲存且實施於一或多個不同類型的電腦實施資料記憶體中,例如不同類型的儲存裝置和程式構建體(例如,RAM、ROM、快閃記憶體、平面檔、資料庫、程式資料結構、程式變數、IF-THEN(或類似類型)表述構建體等)。應注意,資料結構描述用於在資料庫、程式、記憶體或由電腦程式使用的其它電腦可讀媒體中組織和儲存資料的格式。
本文中所描述的電腦元件、軟體模組、功能、資料儲存裝置以及資料結構可彼此直接或間接連接以允許資料由於其操作 所需而流動。還應注意,模組或處理器包含但不限於執行軟體操作的代碼單元,且可例如實施作為代碼的子常式單元,或作為代碼的軟體功能單元,或作為物件(如在物件導向的範式表中),或作為小程式,或實施於電腦指令碼語言中,或作為另一類型的電腦代碼。軟體元件和/或功能性可取決於迫切情況而位於單個電腦上或跨越多個電腦分佈。
本文中所描述的各種製程的使用可提供數個優勢。舉例來說,主題的使用可縮短ASIC開發進度,因為電路是通過設計自動優化的且無需重新設計的工作最少。本文中所描述的模擬還促進裝置驗證,而沒有與產生和手動測試裝置相關聯的時間延遲。
在一個實施例中,一種用於在積體電路上實施的優化電路合成的方法包含輸入電路的邏輯行為的暫存器傳輸級代碼描述。將暫存器傳輸級代碼描述轉換成用於多種類型的元件及特徵尺寸技術的結構上界定的電路設計。產生每一結構上界定的電路設計的平面佈局圖。針對每一平面佈局圖創建實體模擬電路。掃描一系列操作條件以分析每一實體模擬電路的功率、性能以及面積。
在一些實施例中,電腦實施方法更包括按功率、性能以及面積特性來對實體模擬電路進行分類。
在一些實施例中,電腦實施方法更包括在圖形化使用者介面上顯示按功率、性能以及面積特性依次分類的實體模擬電路。
在一些實施例中,電腦實施方法更包括在產生每一結構 上界定的電路設計的平面佈局圖之前,產生文件列表以用於功率、性能以及面積特性的多簡檔配置的合成。
在一些實施例中,電腦實施方法更包括使用設計編譯器將文件列表合成為邏輯閘配置。
在一些實施例中,電腦實施方法更包括產生每一邏輯閘配置的網表。
在一些實施例中,電腦實施方法掃描一系列操作條件是對多個實體模擬電路同時並行進行。
在另一實施例中,一種用於在積體電路上實施的優化電路合成的電腦實施系統包含轉換模組、平面佈局圖映射模組、模擬模組以及分析模組。轉換模組配置成存取電路的行為的暫存器傳輸級代碼描述,並將暫存器傳輸級代碼轉換成用於多種類型的元件和特徵尺寸技術的一組結構上界定的電路設計。模擬模組配置成存取一組結構上界定的電路設計並針對每一平面佈局圖創建實體模擬電路。分析模組配置成存取實體模擬電路並掃描實體模擬電路的一系列操作狀態,以產生實體模擬電路的功率、性能以及面積特性的一組分析。
在一些實施例中,電腦實施系統更包括分類別模組。分類別模組配置成存取分析並產生按功率、性能以及面積特性的所述一組實體模擬電路的分類列表。
在一些實施例中,電腦實施系統更包括顯示模組。顯示模組配置成存取實體模擬電路的分類列表並在圖形化使用者介面 上顯示實體模擬電路的分類列表。
在一些實施例中,電腦實施系統更包括電路設計模組。電路設計模組配置成存取所述一組結構上界定的電路設計並將結構上界定的電路設計轉換成用於功率、性能以及面積特性的多簡檔配置的合成的一組文件列表。
在一些實施例中,電腦實施系統更包括合成模組。合成模組配置成存取所述一組文件列表並使用設計編譯器將所述一組文件列表合成為一組邏輯閘配置。
在一些實施例中,電腦實施系統更包括網表創建模組。網表創建模組配置成存取所述一組邏輯閘配置並將所述一組邏輯閘配置轉換成一組網表。
在一些實施例中,分析模組對多個實體模擬電路同時並行掃描一系列操作條件。
在又一實施例中,一種非暫時性電腦可讀媒體編碼有用於製造積體電路的記憶體儲存指令,所述指令在被執行時引起各種操作,例如產生每一結構上界定的電路設計的平面佈局圖。針對每一平面佈局圖創建實體模擬電路。掃描一系列操作條件以分析每一實體模擬電路的功率、性能以及面積。
在一些實施例中,非暫時性電腦可讀媒體包括按功率、性能以及面積特性來對實體模擬電路進行分類的操作。
在一些實施例中,非暫時性電腦可讀媒體包括在產生每一結構上界定的電路設計的平面佈局圖之前,產生文件列表以用 於功率、性能以及面積特性的多簡檔配置的合成的操作。
在一些實施例中,非暫時性電腦可讀媒體包括使用設計編譯器將文件列表合成為邏輯閘配置的操作。
在一些實施例中,非暫時性電腦可讀媒體包括產生每一邏輯閘配置的網表的操作。
在一些實施例中,所述掃描一系列操作條件是對多個實體模擬電路同時並行進行。
前文概述若干實施例的特徵,使得本領域的技術人員可更好地理解本揭露的各方面。本領域的技術人員應瞭解,其可容易地將本揭露用作設計或修改用於實現本文中所引入的實施例的相同目的和/或達成相同優勢的其它製程和結構的基礎。本領域的技術人員還應認識到,此類等效構造並不脫離本揭露的精神和範圍,且其可在不脫離本揭露的精神和範圍的情況下在本文中進行各種改變、替代以及更改。
800:流程圖
810、820、830、840、850:步驟

Claims (10)

  1. 一種用於在積體電路上實施的優化電路合成的電腦實施方法,所述電腦實施方法包括:輸入電路的邏輯行為的暫存器傳輸級代碼描述;將所述暫存器傳輸級代碼描述轉換成用於多種類型的元件及特徵尺寸技術的結構上界定的電路設計;產生每一結構上界定的電路設計的平面佈局圖;對每一平面佈局圖創建實體模擬電路;以及掃描一系列操作條件以分析所述實體模擬電路的功率、性能以及面積。
  2. 如請求項1所述的電腦實施方法,更包括按功率、性能以及面積特性來對所述實體模擬電路進行分類。
  3. 如請求項2所述的電腦實施方法,更包括在圖形化使用者介面上顯示按功率、性能以及面積特性依次分類的實體模擬電路。
  4. 如請求項1所述的電腦實施方法,更包括在產生每一結構上界定的電路設計的平面佈局圖之前,產生文件列表以用於功率、性能以及面積特性的多簡檔配置的合成。
  5. 如請求項4所述的電腦實施方法,更包括使用設計編譯器將所述文件列表合成為邏輯閘配置。
  6. 一種用於在積體電路上實施的優化電路合成的電腦實施系統,所述電腦實施系統包括: 轉換模組,配置成存取電路的行為的暫存器傳輸級代碼描述,並將所述暫存器傳輸級代碼轉換成用於多種類型的元件及特徵尺寸技術的一組結構上界定的電路設計;模擬模組,配置成存取所述一組結構上界定的電路設計並對每一平面佈局圖創建實體模擬電路;以及分析模組,配置成存取所述實體模擬電路並掃描所述實體模擬電路的一系列操作條件,以產生對於所述實體模擬電路的功率、性能以及面積特性的一組分析。
  7. 如請求項6所述的電腦實施系統,其中所述電腦實施系統更包括分類別模組,所述分類別模組配置成存取所述分析並產生按功率、性能以及面積特性的所述一組實體模擬電路的分類列表。
  8. 如請求項6所述的電腦實施系統,其中所述分析模組對多個實體模擬電路同時並行掃描一系列操作條件。
  9. 一種對用於製造積體電路的記憶體儲存指令進行編碼的非暫時性電腦可讀媒體,所述指令在被執行時引起包括以下各項的操作:產生每一結構上界定的電路設計的平面佈局圖;對每一平面佈局圖創建實體模擬電路;以及掃描一系列操作條件以分析所述實體模擬電路的功率、性能以及面積。
  10. 如請求項9所述的非暫時性電腦可讀媒體,更包括在產生每一結構上界定的電路設計的平面佈局圖之前,產生文件列表以用於功率、性能以及面積特性的多簡檔配置的合成。
TW110108555A 2020-10-21 2021-03-10 電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體 TWI793546B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/075,760 2020-10-21
US17/075,760 US11347920B2 (en) 2020-10-21 2020-10-21 Circuit synthesis optimization for implements on integrated circuit

Publications (2)

Publication Number Publication Date
TW202217638A TW202217638A (zh) 2022-05-01
TWI793546B true TWI793546B (zh) 2023-02-21

Family

ID=78962628

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110108555A TWI793546B (zh) 2020-10-21 2021-03-10 電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體

Country Status (3)

Country Link
US (3) US11347920B2 (zh)
CN (1) CN113836854A (zh)
TW (1) TWI793546B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11347920B2 (en) * 2020-10-21 2022-05-31 Taiwan Semiconductor Manufacturing Company, Ltd. Circuit synthesis optimization for implements on integrated circuit

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836877B1 (en) * 1998-02-20 2004-12-28 Lsi Logic Corporation Automatic synthesis script generation for synopsys design compiler
US8924898B2 (en) * 1999-02-05 2014-12-30 Cadence Design Systems, Inc. System and method of designing instruction extensions to supplement an existing processor instruction set architecture
TW201523309A (zh) * 2013-12-10 2015-06-16 Taiwan Semiconductor Mfg Co Ltd 設計半導體裝置的方法、準備積體電路裝置佈局的方法及電腦可讀取儲存媒體

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224284A (ja) * 1998-02-09 1999-08-17 Fujitsu Ltd 半導体設計資産の流通システム並びに流通装置、および、該流通装置用のソフトウェアを記憶した記憶媒体
US6434733B1 (en) * 1999-03-24 2002-08-13 Synopsys, Inc. System and method for high-level test planning for layout
US20020073388A1 (en) * 1999-12-07 2002-06-13 Orshansky Michael E. Methodology to improve the performance of integrated circuits by exploiting systematic process non-uniformity
US7111269B2 (en) * 2003-10-23 2006-09-19 Lsi Logic Corporation Comparison of two hierarchical netlist to generate change orders for updating an integrated circuit layout
JP2005208473A (ja) * 2004-01-26 2005-08-04 Toshiba Corp 自動設計装置,自動設計方法,及びこれらを用いて製造可能なレチクルセット,半導体集積回路
US7398486B2 (en) * 2004-03-17 2008-07-08 Lsi Corporation Method and apparatus for performing logical transformations for global routing
TWI406146B (zh) * 2009-02-20 2013-08-21 Accton Technology Corp 電路模組化設計方法
US20100217564A1 (en) * 2009-02-26 2010-08-26 Lahner Juergen K Advanced physical simulator
WO2012074533A1 (en) * 2010-12-03 2012-06-07 James Victory Apparatus and method for optimized power cell synthesizer
US8566658B2 (en) * 2011-03-25 2013-10-22 Lsi Corporation Low-power and area-efficient scan cell for integrated circuit testing
US8775993B2 (en) 2012-08-31 2014-07-08 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit design flow with layout-dependent effects
WO2014041403A1 (en) * 2012-09-14 2014-03-20 Freescale Semiconductor, Inc. Method of simulating a semiconductor integrated circuit, computer program product, and device for simulating a semiconductor integrated circuit
US9213789B2 (en) * 2012-12-13 2015-12-15 M31 Technology Corporation Method of generating optimized memory instances using a memory compiler
US10083269B2 (en) * 2013-11-19 2018-09-25 Arm Limited Computer implemented system and method for generating a layout of a cell defining a circuit component
US9779197B1 (en) * 2015-02-13 2017-10-03 Microsemi Solutions (U.S.), Inc. Method and system of merging memory cells into multi-bit registers in an integrated circuit layout
US9830413B2 (en) * 2015-09-15 2017-11-28 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for estimating performance, power, area and cost (PPAC)
US10733350B1 (en) * 2015-12-30 2020-08-04 Sharat C Prasad On-chip and system-area multi-processor interconnection networks in advanced processes for maximizing performance minimizing cost and energy
US20170213847A1 (en) * 2016-01-05 2017-07-27 Bitfury Group Limited Layouts of transmission gates and related systems and techniques
US10437953B2 (en) * 2016-07-08 2019-10-08 efabless corporation Systems for engineering integrated circuit design and development
US10540462B2 (en) * 2016-12-14 2020-01-21 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for speeding up gate-level simulation
CN108446412B (zh) * 2017-02-16 2023-01-24 龙芯中科技术股份有限公司 存储器编译方法、装置及生成的存储器
US10268787B2 (en) * 2017-07-17 2019-04-23 Taiwan Semiconductor Manufacturing Company Ltd. Hybrid timing analysis method and associated system and non-transitory computer readable medium
US10685157B2 (en) * 2017-09-28 2020-06-16 Taiwan Semiconductor Manufacturing Company, Ltd. Power-aware scan partitioning
US11675948B2 (en) * 2017-09-29 2023-06-13 Intel Corporation Methods and apparatus for profile-guided optimization of integrated circuits
US9990455B1 (en) * 2017-12-13 2018-06-05 Tactotek Oy Arrangement and method for facilitating electronics design in connection with 3D structures
US10699053B1 (en) * 2018-01-17 2020-06-30 Xilinx, Inc. Timing optimization of memory blocks in a programmable IC
US10943045B2 (en) * 2018-01-31 2021-03-09 Taiwan Semiconductor Manufacturing Company, Ltd. Semiconductor device including standard-cell-adapted power grid arrangement and method for generating layout diagram of same
US10762259B1 (en) * 2018-06-08 2020-09-01 Diakopto, Inc. Circuit design/layout assistance based on sensitivities to parasitics
US11113444B2 (en) * 2018-06-27 2021-09-07 Taiwan Semiconductor Manufacturing Co., Ltd. Machine-learning based scan design enablement platform
US11392748B2 (en) * 2018-09-28 2022-07-19 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit design using fuzzy machine learning
KR102539066B1 (ko) * 2018-11-09 2023-06-01 삼성전자주식회사 서로 다른 타입의 셀들을 포함하는 집적 회로, 그 설계 방법 및 설계 시스템
US11048837B2 (en) * 2019-05-02 2021-06-29 SiFive, Inc. Generation of dynamic design flows for integrated circuits
US20220012392A1 (en) * 2020-07-10 2022-01-13 Taiwan Semiconductor Manufacturing Company Limited Systems and Methods for Generating Synthesizable Netlists From Register Transfer Level Designs
US11347920B2 (en) * 2020-10-21 2022-05-31 Taiwan Semiconductor Manufacturing Company, Ltd. Circuit synthesis optimization for implements on integrated circuit

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836877B1 (en) * 1998-02-20 2004-12-28 Lsi Logic Corporation Automatic synthesis script generation for synopsys design compiler
US8924898B2 (en) * 1999-02-05 2014-12-30 Cadence Design Systems, Inc. System and method of designing instruction extensions to supplement an existing processor instruction set architecture
TW201523309A (zh) * 2013-12-10 2015-06-16 Taiwan Semiconductor Mfg Co Ltd 設計半導體裝置的方法、準備積體電路裝置佈局的方法及電腦可讀取儲存媒體

Also Published As

Publication number Publication date
US20240135078A1 (en) 2024-04-25
US20220284162A1 (en) 2022-09-08
US20220121798A1 (en) 2022-04-21
TW202321974A (zh) 2023-06-01
US11347920B2 (en) 2022-05-31
TW202217638A (zh) 2022-05-01
CN113836854A (zh) 2021-12-24
US11900037B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
US8799837B2 (en) Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting
US20090307636A1 (en) Solution efficiency of genetic algorithm applications
US20240135078A1 (en) Circuit Synthesis Optimization for Implements on Integrated Circuit
JP5127935B2 (ja) 集積回路設計およびライブラリの最適化
US11036908B1 (en) Techniques for simulation-based timing path labeling for multi-operating condition frequency prediction
EP3937057A1 (en) Systems and methods for generating synthesizable netlists from register transfer level designs
US20120054707A1 (en) Cone-aware spare cell placement using hypergraph connectivity analysis
CN113255258B (zh) 逻辑综合方法、装置、电子设备及存储介质
TW202139046A (zh) 進行積體電路的自動化設計的方法
Gubbi et al. Survey of machine learning for electronic design automation
US6829755B2 (en) Variable detail automatic invocation of transistor level timing for application specific integrated circuit static timing analysis
US20090144671A1 (en) Designing integrated circuits for yield
Harutyunyan et al. Fault awareness for memory BIST architecture shaped by multidimensional prediction mechanism
TWI839084B (zh) 電腦實施方法、電腦實施系統以及非暫時性電腦可讀媒體
KR20220139904A (ko) 누설 전류들의 통계적 변화들을 갖는 동적 랜덤-액세스 메모리 패스 트랜지스터들의 설계
US7493579B2 (en) Method for the generation of static noise check data in the layout hierarchical design of an LSI
JP2007323206A (ja) 動作合成装置、同方法、シミュレーション装置、同方法及び設計装置
US11222154B2 (en) State table complexity reduction in a hierarchical verification flow
US20230016865A1 (en) Diagnosis of inconsistent constraints in a power intent for an integrated circuit design
US20240176943A1 (en) Auto-creation of custom standard cells
US20240169134A1 (en) Transistor-level synthesis
US12014205B2 (en) Advanced register merging
US11847396B1 (en) Integrated circuit design using multi-bit combinational cells
US11416661B2 (en) Automatic derivation of integrated circuit cell mapping rules in an engineering change order flow
US20210264087A1 (en) Automatic test pattern generation (atpg) for parametric faults