JP2011525261A - Integrated circuit design and library optimization - Google Patents

Integrated circuit design and library optimization Download PDF

Info

Publication number
JP2011525261A
JP2011525261A JP2010546000A JP2010546000A JP2011525261A JP 2011525261 A JP2011525261 A JP 2011525261A JP 2010546000 A JP2010546000 A JP 2010546000A JP 2010546000 A JP2010546000 A JP 2010546000A JP 2011525261 A JP2011525261 A JP 2011525261A
Authority
JP
Japan
Prior art keywords
cells
library
cell
acceptable
design
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2010546000A
Other languages
Japanese (ja)
Other versions
JP5127935B2 (en
JP2011525261A5 (en
Inventor
ライス,アンドレ・イナシオ
ラスムッセン,アンダース・ボ
コレイア,ビニシウス・パズッティ
アンデルセン,オレ・クリスティアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nangate AS
Original Assignee
Nangate AS
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 Nangate AS filed Critical Nangate AS
Publication of JP2011525261A publication Critical patent/JP2011525261A/en
Publication of JP2011525261A5 publication Critical patent/JP2011525261A5/ja
Application granted granted Critical
Publication of JP5127935B2 publication Critical patent/JP5127935B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/06Power analysis or power optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Abstract

方法は、設計を実行するための最良の組のセルを選択するような方法で、設計およびライブラリをともに最適化する。方法は、目標コストを低減し、かつ設計制限を遵守しながら、新しいセルの数を制限するという考え方を考慮する。方法は、最小に近い最適な組のセルを選択し、設計を最適化する。これは、それを実行するために用いられるセルベースの設計およびセルライブラリの同時最適化を含む。本発明は、回路が無視されるときには、特定の用途のために最適化されたライブラリのみを産する。方法は、オリジナルのライブラリとは異なるトランジスタトポロジ、異なるサイズ、異なる論理関数、および/または異なるセルテンプレートを有する可能性のある最終セルまたは仮想セルとして記述される新しいセルの組を考慮する。  The method optimizes both the design and the library in such a way as to select the best set of cells for performing the design. The method takes into account the idea of limiting the number of new cells while reducing the target cost and complying with design constraints. The method selects the optimal set of cells that are close to the minimum and optimizes the design. This includes the simultaneous optimization of the cell-based design and cell library used to implement it. The present invention yields only libraries that are optimized for a particular application when the circuit is ignored. The method considers a new set of cells described as a final cell or virtual cell that may have a different transistor topology, different size, different logic function, and / or different cell template than the original library.

Description

関連する出願の相互参照
本願は、2008年2月5日に出願された米国仮特許出願61/026,222、および2008年6月6日に出願された米国仮特許出願61/059,742、61/059,744、61/059,745、61/059,746の正規出願であり、本願において引用される他の全ての参照とともに、参照により引用される。
Cross-reference to related applications This application is a U.S. provisional patent application 61 / 026,222 filed on Feb. 5, 2008, and U.S. provisional patent application 61 / 059,742, filed June 6, 2008, 61/059, 744, 61/059, 745, 61/059, 746, which are regular applications and are incorporated by reference, along with all other references cited in this application.

2007年2月28日に出願され、2007年9月13日に米国特許出願公報2007/0214439として公開された米国特許出願11/711,828、および2006年3月1日に出願された米国仮特許出願60/777,561は、参照により引用される。   US patent application 11 / 711,828, filed February 28, 2007 and published as US patent application publication 2007/0214439 on September 13, 2007, and US provisional filed March 1, 2006 Patent application 60 / 777,561 is incorporated by reference.

発明の背景
本発明は、電子設計自動化の分野に関し、より特定的には、セルライブラリに基づいた設計を有するデジタル回路の最適化に関する。
The present invention relates to the field of electronic design automation, and more particularly to the optimization of digital circuits having designs based on cell libraries.

集積回路は情報化時代の重要な基本要素であり、経済、銀行、法律、軍事、高度技術、運輸、電信、石油、医療、薬品、食品、農業、教育、およびその他多くに影響を与える、情報化時代にとって重要な意味を持つものである。DSP、増幅器、DRAM、SRAM,EPROM、EEPROM、フラッシュメモリ、マイクロプロセッサ、ASIC,およびプログラマブル論理のような集積回路は、コンピュータ、ネットワーク、遠隔通信、および家電製品などのような多くの用途において用いられる。   Integrated circuits are an important fundamental element of the information age, information that affects the economy, banking, law, military, advanced technology, transportation, telegraph, petroleum, medical, medicine, food, agriculture, education, and many others It has an important meaning for the chemical age. Integrated circuits such as DSPs, amplifiers, DRAMs, SRAMs, EPROMs, EEPROMs, flash memories, microprocessors, ASICs, and programmable logic are used in many applications such as computers, networks, telecommunications, and home appliances. .

消費者は、彼らの電子製品において、より大きな性能を要求し続ける。たとえば、より高速なコンピュータは、マルチメディア用途または開発のためのより高速なグラフィックを提供するであろう。より高速なインターネットウェブサーバは、オンライでの株式取引、書籍販売、オークション、および食料品購入などの例を含む、より大きな電子商取引をもたらすであろう。より高性能な集積回路は、それらが組み込まれた製品の性能を改善するであろう。   Consumers continue to demand greater performance in their electronic products. For example, a faster computer will provide faster graphics for multimedia use or development. A faster Internet web server will result in larger electronic commerce, including examples such as online stock trading, book sales, auctions, and grocery purchases. Higher performance integrated circuits will improve the performance of the products in which they are incorporated.

現代の大型集積回路は、ゲートおよびトランジスタを含む数百万もの機器を有し、非常に複雑である。プロセス技術が改善されるにつれて、ますます多くの機器が単一の集積回路上に作られ、それによって集積回路は、時間とともにより複雑になり続けるであろう。より複雑でかつより高性能な集積回路を製造する要求に合致させるために、ソフトウェアツールが用いられる。これらのツールは、コンピュータ支援設計(Computer Aided Design:CAD)、コンピュータ支援エンジニアリング(Computer Aided Engineering:CAE)、または電子設計自動化(Electronic Design Automation:EDA)と一般に称される領域のものである。集積回路におけるより高集積およびより高性能のための要望に応えるために、これらの電子自動化ツールを改善する一定の要求がある。   Modern large scale integrated circuits are very complex with millions of devices including gates and transistors. As process technology improves, more and more equipment is built on a single integrated circuit, which will continue to become more complex over time. Software tools are used to meet the demands of manufacturing more complex and higher performance integrated circuits. These tools are in the area commonly referred to as Computer Aided Design (CAD), Computer Aided Engineering (CAE), or Electronic Design Automation (EDA). There is a constant need to improve these electronic automation tools to meet the demand for higher integration and higher performance in integrated circuits.

したがって、電子設計自動化のための改善された技術が必要である。   Therefore, there is a need for improved techniques for electronic design automation.

発明の簡単な要約
方法は、設計を実行するための最良の組のセルを選択するような方法で、設計およびライブラリ(またはライブラリの組)をともに最適化する。方法は、設計コストを低減し、かつ設計制限を遵守しながら、新しいセルの数を制限するという考え方を考慮する。方法は、最適に近い最小の組のセルを選択し、設計を最適化する。これは、それを実行するために用いられるセルベースの設計およびセルライブラリの同時最適化を含む。方法は、オリジナルのライブラリとは異なるトランジスタトポロジ、異なるサイズ、異なる論理機能、および/または異なるセルテンプレートを有する可能性のある仮想セルとして記述される新しいセルの組を考慮する。
BRIEF SUMMARY OF THE INVENTION The method optimizes both the design and the library (or set of libraries) in such a way as to select the best set of cells for performing the design. The method considers the idea of limiting the number of new cells while reducing design costs and complying with design constraints. The method selects the smallest set of cells that is close to optimal and optimizes the design. This includes the simultaneous optimization of the cell-based design and cell library used to implement it. The method considers a new set of cells described as virtual cells that may have different transistor topologies, different sizes, different logic functions, and / or different cell templates than the original library.

マッピングプロセスは、入力として、まだ実行されていないが推定コストが利用可能できる可能性のあるセルを記述する特別な方法を採用し、これらのセルは本用途においては仮想セルと称される。設計は、その後実際のセルおよび仮想セルがマッピングされ、初期のセルの最適な組を決定する。再マッピングされた設計は、その後、徐々に再マッピングされて、実行コストを大きくは悪化させずかつ設計制限も遵守しながら、使用されるセルの数を減少する。全体のプロセスは、何回か繰り返され得る。理想的なセルの組が決定された後に、各セルについてのいくつかの特別なサイズが、タイミングクロージャ(timing closure)を保証するために挿入され得る。最終のセルの組の行高さ(row height)は、最終のライブラリについての選択されたセルにもっとよく適するように最適化され得る。   The mapping process takes as input a special way of describing cells that have not yet been executed but whose estimated cost may be available, and these cells are referred to as virtual cells in this application. The design then maps the actual and virtual cells to determine the optimal set of initial cells. The remapped design is then gradually remapped to reduce the number of cells used while not significantly degrading execution cost and complying with design restrictions. The entire process can be repeated several times. After the ideal set of cells has been determined, several special sizes for each cell can be inserted to ensure timing closure. The row height of the final cell set may be optimized to better suit the selected cell for the final library.

1つの実行例においては、回路設計およびライブラリの同時最適化のための方法は、複数のセルまたはブール方程式、あるいはRTLコードのような他の方法で表現され得る初期回路ネットリストを提供すること、(空であり得る)最初から存在するセルの組を提供すること、仮想セルをおそらく含んでいる許容可能な機能/セルの追加的な組を供給すること、実行コストを最小化するために、最初から存在するセルの組と許容可能な機能またはセルの追加的な組とを考慮して回路をマッピングすること、新しく再マッピングしたネットリストを生成すること、そして、再マッピングされたネットリスト内で用いられる先在のセルおよび許容可能な機能から成る新しいセルライブラリ仕様および記述を生成することを含む。   In one implementation, the method for simultaneous circuit design and library optimization provides an initial circuit netlist that can be expressed in multiple ways, such as multiple cells or Boolean equations, or RTL code; To provide a set of existing cells (which can be empty), to supply an additional set of acceptable functions / cells that probably contain virtual cells, to minimize execution costs, Mapping the circuit taking into account the set of cells that exist from the start and the additional set of acceptable functions or cells, generating a new remapped netlist, and within the remapped netlist Generating new cell library specifications and descriptions consisting of pre-existing cells and acceptable functions used in.

許容可能な機能またはセルの追加的な組は、おそらく仮想セルを含む、機能またはセルのリストを通して明示的に定義され得る。追加的に許容可能な論理機能の各々は、異なるトランジスタトポロジ、トランジスタの異なるサイズ、および異なる駆動強度を含む、異なる実行例を含み得る。許容可能な機能またはセルの追加的な組は、いくつかのパラメータを通して非明示的に定義され得る。許容可能な機能の追加的な組は、許可される入力の最大数によって非明示的に定義され得る。許容可能な機能の追加的な組は、直列または並列接続の、直列および並列スイッチの最大数によって非明示的に定義され得る。   Additional sets of acceptable functions or cells can be explicitly defined through a list of functions or cells, possibly including virtual cells. Each of the additionally acceptable logic functions may include different implementations, including different transistor topologies, different transistor sizes, and different drive strengths. The additional set of acceptable functions or cells can be implicitly defined through several parameters. The additional set of allowable functions can be implicitly defined by the maximum number of inputs allowed. The additional set of acceptable functions can be implicitly defined by the maximum number of series and parallel switches in series or parallel connection.

許容可能な機能の追加的な組は、関数のBDD実行例における直列のアーク(arc)の最大数によって非明示的に定義され得る。許容可能な機能の追加的な組は、一般的なトランジスタ実行例における直列のスイッチの最大許容数によって非明示的に定義され得る。許容可能な機能の追加的な組は、組合せ論理機能を実行するための両方のトランジスタ平面における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義される
1つの実行例においては、セルライブラリテンプレートを最適化するための方法は、目標技術情報を受けること、そのライブラリに含まれるべき機能またはセルの組を受けること、各関数のために生成されるべき駆動強度の組を受けること、関数および駆動強度の各対のためのトランジスタトポロジの組を受けまたは導き出すこと、異なる代替的なセルテンプレートのためのセル特性の一次推定を出力すること、および要求されたセルの集合のために推定された特性の関数として、ライブラリのための最終テンプレートを選択することを含む。
An additional set of acceptable functions can be implicitly defined by the maximum number of serial arcs in the BDD implementation of the function. The additional set of allowable functions can be implicitly defined by the maximum allowable number of series switches in a typical transistor implementation. The additional set of allowable functions is implicitly defined by the maximum allowable number of switches within the exact lower bound on the number of switches in series in both transistor planes to perform the combinational logic function 1 In one implementation, a method for optimizing a cell library template receives target technical information, receives a function or set of cells to be included in the library, and a drive to be generated for each function. Receiving a set of strengths, receiving or deriving a set of transistor topologies for each pair of function and drive strength, outputting a primary estimate of cell characteristics for different alternative cell templates, and required Including selecting the final template for the library as a function of the estimated properties for the set of cells .

1つの実行例においては、配置およびルーティング後の回路ネットリストに関連するセルライブラリを最適化するための方法は、配置されかつルーティングされた回路ネットリストを受けること、関連したセルライブラリを受けること、ライブラリから不使用のセルを削除する(あるいは、無視するまたは使用を不許可とする)こと、使用される機能についての不使用の駆動強度を任意的に削除する(あるいは、無視するまたは使用を不許可とする)こと、使用されるセルの各々について、さらなるサイズ調整を可能とするために隣接する駆動強度の組を追加すること、本特許において説明される制限の1つまたは組合せに従って、ライブラリテンプレートを新しいセルの混合に任意的に適合させること、および導入された修正を考慮して新しいライブラリ仕様を出力することを含む。   In one implementation, a method for optimizing a cell library associated with a placed and routed circuit netlist includes receiving a placed and routed circuit netlist, receiving an associated cell library, Remove unused cells from the library (or ignore or disallow usage), and optionally remove unused drive strength for the function used (or ignore or disable use) A library template according to one or a combination of the restrictions described in this patent, adding a set of adjacent drive strengths to allow further size adjustment for each of the cells used To adapt to the new cell mix and to introduce new modifications And outputting the library specifications have.

1つの実行例においては、回路設計における使用のためのライブラリの最適化のための方法は、初期回路ネットリストを提供すること、1つまたはより多くの組の既存セルを提供すること、1つまたはより多くの追加的に許容可能なセルの組を提供すること、初めから存在しているセルの組、および、追加的に許容可能セルの組を考慮して実行コストを低減するセルを検索するために初期回路ネットリストを解析すること、および、潜在的に設計コストを低減する、先在セルのサブセットおよび許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力することを含む。   In one implementation, a method for library optimization for use in circuit design provides an initial circuit netlist, provides one or more sets of existing cells, one Or, provide more additional acceptable cell sets, search for existing cell sets, and cells that reduce execution costs considering additional allowable cell sets One or more new cell library specifications and descriptions, including a subset of pre-existing cells and a subset of acceptable cells, that analyze the initial circuit netlist to potentially reduce design costs Including output.

初期回路ネットリストは、複数のセルの表現またはブール方程式の少なくと1つによって提供され得る。初期回路ネットリストを解析することは、既存セルの組および許容可能セルの追加的な組を考慮しながら回路を再マッピングすることを含む。方法は、新しい再マッピングされたネットリストを出力することを含み得る。   The initial circuit netlist may be provided by at least one of a plurality of cell representations or Boolean equations. Analyzing the initial circuit netlist includes remapping the circuit taking into account an existing set of cells and an additional set of acceptable cells. The method may include outputting a new remapped netlist.

許容可能セルの追加的な組は、追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含み得る。許容可能セルの追加的な組は、追加的に利用可能なセルを列挙する明示的な組を含み、追加的に許容可能な論理関数の各々は異なる実行例を有し得る。許容可能セルの追加的な組は、いくつかのパラメータを通して非明示的に定義された機能またはセルの組を含み得る。   The additional set of acceptable cells may include at least one explicit set that lists additional available functions or cells. The additional set of acceptable cells includes an explicit set that additionally lists the available cells, and each of the additionally acceptable logic functions may have a different implementation. Additional sets of acceptable cells may include functions or sets of cells that are implicitly defined through several parameters.

許容可能セルの追加的な組は、許容される最大の入力数によって非明示的に定義された機能またはセルの組を含み得る。許容可能セルの追加的な組は、直列または並列結合された、直列および並列のスイッチの最大数によって非明示的に定義された機能またはセルの組を含み得る。許容可能セルの追加的な組は、関数のBDD実行例における直列のアークの最大数によって非明示的に定義されたセルの組を含み得る。   Additional sets of acceptable cells may include functions or sets of cells that are implicitly defined by the maximum number of inputs allowed. Additional sets of acceptable cells may include functions or sets of cells that are implicitly defined by the maximum number of series and parallel switches coupled in series or parallel. The additional set of acceptable cells may include a set of cells that are implicitly defined by the maximum number of serial arcs in the BDD implementation of the function.

許容可能セルの追加的な組は、一般的なトランジスタ実行例における直列のスイッチの最大許容数によって非明示的に定義される機能またはセルの組を含み得る。許容可能な機能の追加的な組は、組合せ論理関数を実行するための両方のトランジスタ計画における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義され得る。   Additional sets of acceptable cells may include functions or sets of cells that are implicitly defined by the maximum allowable number of series switches in a typical transistor implementation. The additional set of acceptable functions can be implicitly defined by the maximum allowable number of switches within the exact lower limit for the number of switches in series in both transistor schemes to perform the combinatorial logic function.

1つの実行例においては、セルライブラリテンプレートを最適化するための方法は、目標技術情報を受けること、そのライブラリに含まれるべき関数またはセルの組を受けること、各関数のために生成されるべき駆動強度の組を受けること、関数および駆動強度の各対のためのトランジスタトポロジの組を受けまたは導き出すこと、異なる代替的なセルテンプレートのためのセル特性の一次推定を出力すること、および要求されたセルの集合のために推定された特性の関数として、ライブラリのための最終テンプレートを選択することを含む。   In one implementation, a method for optimizing a cell library template should receive target technical information, receive a function or set of cells to be included in the library, and be generated for each function Receiving a set of drive strengths, receiving or deriving a set of transistor topologies for each pair of function and drive strength, outputting a primary estimate of cell characteristics for different alternative cell templates, and required Selecting a final template for the library as a function of the estimated properties for the set of determined cells.

1つの実行例においては、配置およびルーティング後の回路ネットリストに関連するセルライブラリを最適化するための方法は、配置されかつルーティングされた回路ネットリストを受けること、関連したセルライブラリを受けること、ライブラリから不使用の関数を削除すること、使用される関数についての不使用の駆動強度を任意的に削除すること、使用されるセルの各々について、さらなるサイズ調整を可能とするために隣接する駆動強度の組を追加すること、ライブラリテンプレートを新しいセルの混合に任意的に適合させること、および導入された修正を考慮して新しいライブラリ仕様を出力することを含む。   In one implementation, a method for optimizing a cell library associated with a placed and routed circuit netlist includes receiving a placed and routed circuit netlist, receiving an associated cell library, Remove unused functions from the library, optionally remove unused drive strength for used functions, adjacent drives to allow further size adjustment for each used cell Including adding a set of strengths, optionally adapting the library template to the new cell mix, and outputting a new library specification taking into account the introduced modifications.

ライブラリテンプレートを新しいセルの混合に任意的に適合させることは、目標技術情報を受けること、ライブラリに含まれるべき関数またはセルの組を受けること、各関数のために生成されるべき駆動強度の組を受けること、関数および駆動強度の各対のためのトランジスタトポロジの組を受けまたは導き出すこと、異なる代替的なセルテンプレートのためのセル特性の一次推定を出力すること、要求されたセルの集合のために推定された特性の関数として、ライブラリのための最終テンプレートを選択することを含む。   Optionally adapting the library template to the new cell mix is to receive target technical information, receive a function or set of cells to be included in the library, and set of drive strengths to be generated for each function. Receiving or deriving a set of transistor topologies for each pair of function and drive strength, outputting a primary estimate of cell characteristics for different alternative cell templates, and for a set of requested cells To select a final template for the library as a function of the estimated properties.

1つの実行例においては、回路設計における使用のために、コンピュータ読込可能媒体を用いて統合されるライブラリを最適化するためのコンピュータプログラム製品は、初期回路ネットリストを提供するためのコンピュータ読込可能コードと、1つまたはより多くの組の既存セルを提供するためのコンピュータ読込可能コードと、1つまたはより多くの組の追加的に許容可能なセルの組を提供するためのコンピュータ読込可能コードと、最初から存在するセルの組、および、許容可能セルの追加的な組を考慮して実行コストを低減するセルを検索するように、初期回路ネットリストを解析するためのコンピュータ読込可能コードと、潜在的に設計コストを低減する、既存セルのサブセットおよび許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力するためのコンピュータ読込可能コードとを含む。   In one implementation, a computer program product for optimizing a library integrated with a computer readable medium for use in circuit design includes computer readable code for providing an initial circuit netlist. And computer readable code for providing one or more sets of existing cells, and computer readable code for providing one or more sets of additionally acceptable cell sets Computer readable code for parsing the initial circuit netlist so as to search for a set of existing cells and an additional set of acceptable cells to reduce the cost of execution; Including one subset of existing cells and a subset of acceptable cells, potentially reducing design costs And computer readable code for outputting a larger number of new cell library specifications and descriptions.

コンピュータプログラム製品は、最初から存在するセルの組および記許容可能セルの追加的な組を考慮しながら回路を再マッピングするための、コンピュータ読込可能コードを含み得る。新しい再マッピングされたネットリストを出力するためのコンピュータ読込可能コードを含み得る。   The computer program product may include computer readable code for remapping the circuit while taking into account the existing set of cells and the additional set of acceptable cells. It may include computer readable code for outputting a new remapped netlist.

許容可能セルの追加的な組は、追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含み得る。許容可能セルの追加的な組は、追加的に利用可能なセルを列挙する明示的な組を含み、追加的な許容可能な論理関数の各々は異なる実行例を有し得る。   The additional set of acceptable cells may include at least one explicit set that lists additional available functions or cells. The additional set of acceptable cells includes an explicit set that lists additional available cells, and each of the additional acceptable logic functions may have a different implementation.

1つの実施例においては、方法は、第1の集積回路設計ネットリストを提供すること、コンピュータ読込可能媒体上に記憶された、セルの第1のライブラリにおける1つまたはより多くのセルに対応するように、前記第1の集積回路設計ネットリスト内の要素のグルーピングをマッピングすること、第1のセルへの要素の少なくとも1つのグルーピングを、そのマッピングから除去ることを含み、そのマッピングは第1のセルマッピングを含んでおらず、そして、マッピングにおいて識別されたセルのみを含む第2のライブラリを生成することをさらに含み、第2のライブラリは、第1のセルマッピングを含まず、かつコンピュータ読込可能媒体上に記憶される。   In one embodiment, the method provides a first integrated circuit design netlist, corresponds to one or more cells in a first library of cells stored on a computer readable medium. Mapping a grouping of elements in the first integrated circuit design netlist, removing at least one grouping of elements to the first cell from the mapping, the mapping comprising: And generating a second library that includes only the cells identified in the mapping, wherein the second library does not include the first cell mapping and is computer readable Stored on possible media.

方法は、さらに、第1の集積回路設計ネットリストを、第2のライブラリで使用するが第1のライブラリでは使用しない第2の集積回路設計ネットリストへマッピングすること、および第2の集積回路設計ネットリストをコンピュータ読込可能媒体上に記憶することを含む。方法は、第2のライブラリを生成する前に、第2のセルを第1のライブラリでなく第2のライブラリに追加することをさらに含み、第2の集積回路設計ネットリストは第2のセルへの少なくとも1つの参照を含む。   The method further includes mapping the first integrated circuit design netlist to a second integrated circuit design netlist for use in the second library but not in the first library, and a second integrated circuit design Storing the netlist on a computer readable medium. The method further includes adding the second cell to the second library instead of the first library prior to generating the second library, wherein the second integrated circuit design netlist is to the second cell. At least one reference.

方法は、第2のライブラリを生成した後、第2のライブラリの少なくとも第2のセルを識別するとともに除去すること、第2のセルではないが第2のライブラリのセルを含む第3のライブラリを生成すること、第1の集積回路設計ネットリストを第1または第2のライブラリではないが第3のライブラリへの参照を有する第2の集積回路設計ネットリストへマッピングすること、第2の集積回路設計ネットリストをコンピュータ読込可能媒体上に記憶することを含み得る。第2のライブラリを生成することは、第2のライブラリのためのセルを得るために、論理合成ではなく物理合成を実行することを含み得る。   The method generates a second library and then identifies and removes at least a second cell of the second library, a third library including a cell of the second library but not the second cell. Generating, mapping the first integrated circuit design netlist to a second integrated circuit design netlist that is not the first or second library but has a reference to the third library, the second integrated circuit It may include storing the design netlist on a computer readable medium. Generating the second library may include performing physical synthesis rather than logic synthesis to obtain cells for the second library.

本発明の他の目的、特徴、および利点は、以下の詳細な説明および添付の図面を考慮して、明らかになるであろう。その中で、同じ参照符号は、図を通して同じ特徴を表す。   Other objects, features and advantages of the present invention will become apparent in view of the following detailed description and accompanying drawings. Among them, the same reference numerals represent the same features throughout the drawings.

電子設計自動化のための本発明のシステムを示す図である。1 illustrates a system of the present invention for electronic design automation. 本発明のソフトウェアを実行するために用いられるコンピュータシステムの簡略化されたシステムブロック図である。FIG. 2 is a simplified system block diagram of a computer system used to execute the software of the present invention. ライブラリを設計空間の一部として考えたときの、性能に対するコストトレードオフを示すグラフである。It is a graph which shows the cost tradeoff with respect to performance when a library is considered as a part of design space. デジタル設計およびライブラリの同時最適化のための、入出力データのシステムフローを示す図である。It is a figure which shows the system flow of input-output data for digital design and the simultaneous optimization of a library. プロセスの反復の可能性を示す、デジタル設計およびライブラリの同時最適化のための入出力データのシステムフローを示す図である。FIG. 5 shows a system flow of input and output data for simultaneous optimization of digital design and library, showing the possibility of process iterations. デジタル設計およびライブラリの同時最適化のための、1つの可能な実行例についてのフローを示す図である。FIG. 6 shows a flow for one possible implementation for digital design and library optimization simultaneously. プロセスの反復の可能性を示す、デジタル設計およびライブラリの同時最適化のための、1つの可能な実行例についてのフローを示す図である。FIG. 6 shows a flow for one possible implementation for digital design and library optimization simultaneously showing the possibility of process iterations. 特定の設計のために合成される必要のある効果的な駆動強度を選択するための手段として、マッピングならびに配置およびルーティングの実行のプロセスを示す図である。FIG. 5 shows the process of mapping and placement and routing execution as a means for selecting effective drive strengths that need to be synthesized for a particular design. 配置およびルーティング後のライブラリ仕様を最適化するプロセスを示す図である。FIG. 6 illustrates a process for optimizing library specifications after placement and routing. 最終ライブラリの生成を示す図である。It is a figure which shows the production | generation of a final library. 11個のセルインスタンスから成る回路を示す図である。It is a figure which shows the circuit which consists of 11 cell instances. 4つのセルインスタンスから成る等価回路を示す図である。It is a figure which shows the equivalent circuit which consists of four cell instances. 5つのセルインスタンスから成る等価回路を示す図である。It is a figure which shows the equivalent circuit which consists of five cell instances. 同じセルの9トラックおよび7トラックバージョンの集積回路レイアウトを示す図である。FIG. 9 shows an integrated circuit layout of 9-track and 7-track versions of the same cell. 同じセルの9トラックおよび7トラックバージョンの集積回路レイアウトを示す図である。FIG. 9 shows an integrated circuit layout of 9-track and 7-track versions of the same cell.

発明の詳細な説明
図1は、本発明のシステムを示す。1つの実施形態においては、本発明は、図1に示されるような、コンピュータワークステーション上で実行されるソフトウェアである。図1は、モニタ3と、スクリーン5と、キャビネット7と、キーボード9と、マウス11を含むコンピュータシステム1を示す。マウス11は、マウスボタン13のような、1つまたはより多くのボタンを有し得る。キャビネット7は、そのいくつかは示されないが、(マルチプロセッサおよびグリッディングの可能性を含む)プロセッサ、メモリ、ダイ要領記憶装置17などの、よく知られたコンピュータ要素を収納する。
DETAILED DESCRIPTION OF THE INVENTION FIG. 1 shows the system of the present invention. In one embodiment, the present invention is software running on a computer workstation, as shown in FIG. FIG. 1 shows a computer system 1 including a monitor 3, a screen 5, a cabinet 7, a keyboard 9 and a mouse 11. Mouse 11 may have one or more buttons, such as mouse button 13. The cabinet 7 houses well-known computer elements such as processors (including multiprocessors and gridding possibilities), memory, die storage 17 and the like, some of which are not shown.

大容量記憶装置17は、大容量ディスクドライブ、フロッピディスク、磁気ディスク、光ディスク、磁気光ディスク、固定ディスク、ハードディスク、CD−ROM、記録可能CD、DVD、記録可能DVD(たとえば、DVD−R、DVD+R、DVD−RW、DVD+RW、HD−DVDまたはブルーレイディスク)、フラッシュおよび他の不揮発性半導体記憶装置(たとえば、USBフラッシュドライブ)、バッテリバックアップされた揮発性メモリ、テープ記録装置、リーダ、および他の類似媒体、ならびにこれらの組合せを含み得る。   The mass storage device 17 is a large-capacity disk drive, floppy disk, magnetic disk, optical disk, magnetic optical disk, fixed disk, hard disk, CD-ROM, recordable CD, DVD, recordable DVD (for example, DVD-R, DVD + R, DVD-RW, DVD + RW, HD-DVD or Blu-ray disc), flash and other non-volatile semiconductor storage devices (eg, USB flash drives), battery-backed volatile memory, tape recorders, readers, and other similar media As well as combinations thereof.

本発明の、コンピュータで実現された、またはコンピュータで実行されたバージョンは、コンピュータ読取可能媒体を用いて具現化され、コンピュータ読取可能媒体上に記憶され、またはコンピュータ読取可能媒体に関連する。コンピュータ読取可能媒体は、1つまたはより多くのプロセッサに実行のための指示を提供することに関与するどのような媒体をも含み得る。このような媒体は、限定されないが、不揮発性媒体、揮発性媒体または伝達媒体を含む、多くの形態を採用し得る。不揮発性媒体は、たとえば、フラッシュメモリ、あるいは光または磁気ディスクを含む。揮発性媒体は、キャッシュメモリまたはRAMのような、スタティックメモリまたはダイナミックメモリを含む。伝達媒体は、同軸ケーブル、銅線、光ファイバ線、およびバス内に配列されたワイヤを含む。伝達媒体は、さらに、電波および赤外線データ通信中に生成されるもののような、電磁波、高周波、音波、または光波の形態を採用し得る。   A computer-implemented or computer-implemented version of the invention is embodied using a computer-readable medium, stored on or associated with a computer-readable medium. Computer readable media can include any media that participates in providing instructions to one or more processors for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, or transmission media. Non-volatile media includes, for example, flash memory or optical or magnetic disks. Volatile media includes static or dynamic memory, such as cache memory or RAM. Transmission media includes coaxial cables, copper wire, fiber optic lines, and wires arranged in a bus. The transmission medium may further take the form of electromagnetic waves, high frequencies, sound waves, or light waves, such as those generated during radio wave and infrared data communications.

たとえば、本発明のソフトウェアの、バイナリで機械実行可能なバージョンは、RAMまたはキャッシュメモリ内、あるいは大容量記憶装置17上に記憶され、または具備され得る。本発明のソフトウェアのソースコードもまた、大容量記憶装置17(たとえば、ハードディスク、磁気ディスク、テープまたはCD−ROM)上に記憶され、または具備され得る。さらなる例として、本発明のコードは、ワイヤ、電波、またはインターネットのようなネットワークを介して伝達され得る。   For example, a binary machine-executable version of the software of the present invention may be stored or provided in RAM or cache memory, or on mass storage device 17. The source code of the software of the present invention may also be stored on or provided on a mass storage device 17 (eg, hard disk, magnetic disk, tape or CD-ROM). As a further example, the code of the present invention may be transmitted over a wire, radio wave, or network such as the Internet.

図2は、本発明のソフトウェアを実行するために用いられるコンピュータシステム1のシステムブロック図を示す。図1のように、コンピュータシステム1は、モニタ3と、キーボード9と、大容量記憶装置17とを含む。コンピュータシステム1は、セントラルプロセッサ202、システムメモリ204、入出力(I/O)コントローラ206、ディスプレイアダプタ208、シリアルまたはユニバーサルシリアルバス(USB)ポート212、ネットワークインターフェース218、およびスピーカ220のようなサブシステムを、さらに含む。本発明は、追加のまたはより少ないサブシステムを伴うコンピュータシステムでも用いられ得る。たとえば、コンピュータシステムは、1つより多くのプロセッサ202(すなわち、マルチプロセッサシステム)を含み得、またはシステムはキャッシュメモリを含み得る。   FIG. 2 shows a system block diagram of a computer system 1 used to execute the software of the present invention. As shown in FIG. 1, the computer system 1 includes a monitor 3, a keyboard 9, and a mass storage device 17. Computer system 1 includes subsystems such as central processor 202, system memory 204, input / output (I / O) controller 206, display adapter 208, serial or universal serial bus (USB) port 212, network interface 218, and speaker 220. Is further included. The invention may also be used in computer systems with additional or fewer subsystems. For example, a computer system may include more than one processor 202 (ie, a multiprocessor system) or the system may include a cache memory.

プロセッサは、複数のプロセッサコアが1つの集積回路上にある、デュアルコアまたはマルチコアプロセッサであり得る。システムは、分散型演算環境の一部でもあり得る。分散型演算環境においては、個々の演算システムはネットワークで接続され、必要に応じて、ネットワーク内の他のシステムへ演算リソースを貸し出すことが利用できる。ネットワークは、内部イーサネット(登録商標)ネットワーク、インターネット、または他のネットワークであり得る。   The processor can be a dual-core or multi-core processor with multiple processor cores on one integrated circuit. The system can also be part of a distributed computing environment. In a distributed computing environment, individual computing systems are connected by a network, and it is possible to lend computing resources to other systems in the network as needed. The network can be an internal Ethernet network, the Internet, or other network.

222のような矢印は、コンピュータシステム1のシステムバス構成を表す。しかしながら、これらの矢印は、サブシステムにリンクするように機能する相互接続スキームの例示である。たとえば、スピーカ220は、ポートを通じて他のサブシステムに接続され得、またはセントラルプロセッサ202への内部接続を有し得る。図1に示されるコンピュータシステム1は、本発明を伴う使用に適したコンピュータシステムの例である。本発明を伴う使用に適したサブシステムの他の構成は、当業者には容易に明らかとなるであろう。   An arrow such as 222 represents the system bus configuration of the computer system 1. However, these arrows are illustrative of an interconnection scheme that functions to link to the subsystem. For example, speaker 220 may be connected to other subsystems through a port or may have an internal connection to central processor 202. The computer system 1 shown in FIG. 1 is an example of a computer system suitable for use with the present invention. Other configurations of subsystems suitable for use with the present invention will be readily apparent to those skilled in the art.

コンピュータソフトウェア製品は、C、C++、パスカル(Pascal)、フォートラン(Fortran)、パール(Perl)、(マス・ワーク社(Math Works, Inc.)からの)マトラボ(Matlab)、SAS、SPSS、ジャバ(Java)(登録商標)、ジャバスクリプト(JavaScript)(登録商標)、TCL、およびAJAXのような、様々な適当なプログラム言語で書かれ得る。コンピュータソフトウェア製品は、データ入力モジュールおよびデータ表示モジュールを伴う、個別のアプリケーションであり得る。あるいは、コンピュータソフトウェア製品は、分散化されたオブジェクトとしてインスタンス化され得るクラスであり得る。コンピュータソフトウェア製品は、(サンマイクロシステム社からの)ジャバビーンズ(Java Beans)(登録商標)または(サンマイクロシステム社からのEJBである)エンタープライズジャバビーンズ(Enterprise Java Beans)(登録商標)のようなコンポーネントソフトウェアでもあり得る。   Computer software products include C, C ++, Pascal, Fortlan, Perl, Matlab (from Math Works, Inc.), SAS, SPSS, Java ( It can be written in a variety of suitable programming languages such as Java ™, JavaScript ™, TCL, and AJAX. The computer software product can be a separate application with a data input module and a data display module. Alternatively, a computer software product can be a class that can be instantiated as a distributed object. Computer software products such as Java Beans (registered trademark) (from Sun Microsystems) or Enterprise Java Beans (registered trademark) (EJB from Sun Microsystems) It can also be component software.

システムのためのオペレーティングシステムは、マイクロソフトウィンドウズ(登録商標)オペレーティングシステムのファミリ(たとえば、Windows 95, 98, Me, Windows NT, Windows 2000, Windows XP, Windows XP x64 Edition, Windows Vista, Windows 7, Windows CE, Windows Mobile)、リナックス(Linux)、HP―UX、ユニックス(UNIX)(登録商標)、サンOS(Sun OS)、ソラリス(Solaris)、マックOSX(Mac OS X)、アルファOS(Alpha OS)、AIX、IRIX32、またはIRIX64、あるいはこれらの組合せのうちの1つであり得る。マイクロソフトウィンドウズは、マイクロソフト社の登録商標である。他のオペレーティングシステムも用いられ得る。分散化演算環境におけるコンピュータは、他のコンピュータとは異なったオペレーティングシステムを用い得る。   The operating system for the system is a family of Microsoft Windows operating systems (eg, Windows 95, 98, Me, Windows NT, Windows 2000, Windows XP, Windows XP x64 Edition, Windows Vista, Windows 7, Windows CE , Windows Mobile), Linux (Linux), HP-UX, UNIX (registered trademark), Sun OS (Sun OS), Solaris (Solaris), Mac OSX (Mac OS X), Alpha OS (Alpha OS), It can be one of AIX, IRIX32, or IRIX64, or a combination thereof. Microsoft Windows is a registered trademark of Microsoft Corporation. Other operating systems can also be used. A computer in a distributed computing environment may use a different operating system than other computers.

さらに、コンピュータはネットワークに接続され、このネットワークを用いて他のコンピュータとインターフェースし得る。たとえば、ネットワーク内の各コンピュータは、本発明の多くの一連のステップのタスクの一部を並列に実行し得る。さらに、ネットワークは、イントラネット、インターネット、またはとりわけインターネットであり得る。ネットワークは、(たとえば、銅を用いる)ワイヤネットワーク、電話ネットワーク、パケットネットワーク、(たとえば、光ファイバを用いる)光ネットワーク、または無線ネットワーク、あるいはこれらの組合せであり得る。たとえば、データおよび他の情報は、コンピュータと、Wi−Fi(いくつか例を挙げると、IEEE規格802.11、802.11a、802.11b、802.11e、802.11g、802.Hiおよび802.Hn)のようなプロトコルを用いる無線ネットワークを用いる本発明のシステムの要素(またはステップ)との間を通過し得る。たとえば、コンピュータからの信号は、少なくとも一部は、要素または他のコンピュータへ無線的に伝達され得る。   In addition, the computer may be connected to a network and used to interface with other computers. For example, each computer in the network may perform some of the tasks of the many series of steps of the present invention in parallel. Further, the network can be an intranet, the Internet, or especially the Internet. The network can be a wire network (eg, using copper), a telephone network, a packet network, an optical network (eg, using optical fiber), or a wireless network, or a combination thereof. For example, data and other information can be obtained from a computer and Wi-Fi (IEEE Standard 802.11, 802.11a, 802.11b, 802.11e, 802.11g, 802.Hi and 802, to name a few examples). .Hn) may pass between elements (or steps) of the system of the present invention using a wireless network using a protocol such as. For example, a signal from a computer can be communicated wirelessly, at least in part, to an element or other computer.

この発明は、その設計がセルライブラリに基づいた、デジタル回路の最適化に関する。ほとんどのデジタル設計は、現在はセルライブラリに基づいている。これは、ほとんどの設計フローは、ブール論理方程式が、ライブラリ(またはライブラリの組)からのセルの相互接続された組にマッピングされるステップを有する。ライブラリからのセルは、互いに接続されて完全な回路のための所望の機能を生成するロジックプリミティブ(ブール関数および記憶素子)を実行する。方程式を相互接続されたセルの組に変換するステップは、他のコスト(典型的には領域および電力)を最小化しつつ、いくつかのコスト(典型的には、要求される動作速度)の制限に従うような方法でなされる。このステップは、技術マッピングとして一般的に知られており、技術マッピングを実行するための様々なツールは異なるベンダーまたは大学から利用可能である。このツールへの入力は、典型的には、設計、事前設計されたライブラリ、および最適化目標である。   The present invention relates to optimizing digital circuits whose design is based on cell libraries. Most digital designs are now based on cell libraries. This is because most design flows have a step where a Boolean logic equation is mapped to an interconnected set of cells from a library (or set of libraries). Cells from the library execute logic primitives (Boolean functions and storage elements) that are connected together to produce the desired functionality for the complete circuit. Converting equations to a set of interconnected cells limits some costs (typically required operating speed) while minimizing other costs (typically region and power) Is done in a way that complies with This step is commonly known as technology mapping, and various tools for performing technology mapping are available from different vendors or universities. Input to this tool is typically a design, a pre-designed library, and an optimization goal.

セルベースの設計は、マッピングおよびアンマッピングされた設計、最適化目標、設計制限、目標ライブラリ、ライブラリテンプレートの概念を含み得る。本発明は、強化されたライブラリ、使用されたサブセット、使用のヒストグラム、インスタンスの分配、仮想セル、ほぼ圧縮されたセル(nearly compacted cell)、セル生成ツール、およびセル生成APIの概念を利用する。これらの概念は、以下に簡単に説明される。   A cell-based design may include the concept of mapped and unmapped designs, optimization goals, design constraints, goal libraries, library templates. The present invention takes advantage of the concepts of enhanced libraries, used subsets, usage histograms, instance distribution, virtual cells, nearly compacted cells, cell generation tools, and cell generation APIs. These concepts are briefly described below.

マッピングおよびアンマッピングされた設計。設計(または設計の一部)は、ライブラリからの相互接続されたネットワークとして表わされるときに、マッピングされたと言われる。ライブラリ内の各セルは、多くの回数インスタンス化され得るが、いくつかはあまり(ほんの1回だけも)インスタンス化されないかもしれず、ライブラリ内の利用可能ないくつかのセルは全く使用されないかもしれない。設計(または設計の一部)は、サブ設計としてライブラリからのセルに対する参照(インスタンス化)を作成することなく、より高いレベルにおいて記述されるときに、アンマッピングされたと言われる。アンマッピングされた設計をマッピングされた設計に変換しながら設計コストを最小化するタスクは、通常は、技術マッピング(technology mapping)と呼ばれる。同様に、再マッピングの語句は、マッピングされた設計の異なったマッピングがされた設計への変換のために用いられ、技術独立最適化(technology independent optimization)の語句は、アンマッピングされた設計の異なったアンマッピングがされた設計への変換のために用いられ、そしてアンマッピングの語句は、マッピングされた設計のアンマッピングがされた設計への変換のために用いられる。   Mapping and unmapped design. A design (or part of a design) is said to have been mapped when represented as an interconnected network from the library. Each cell in the library may be instantiated many times, but some may not be instantiated too much (just once) and some of the available cells in the library may not be used at all . A design (or part of a design) is said to be unmapped when it is described at a higher level without creating a reference (instancing) to a cell from the library as a sub-design. The task of minimizing design costs while converting an unmapped design to a mapped design is commonly referred to as technology mapping. Similarly, the remapping phrase is used to convert a mapped design to a different mapped design, and the technology independent optimization phrase is different for an unmapped design. The unmapped term is used to convert the unmapped design to an unmapped design, and the unmapped phrase is used to convert the mapped design to the unmapped design.

最適化目標および設計制限。最適化目標および設計制限は、取り扱われる特定の設計のための設計者の要求が何であるかを、最適化ツールへ記述する。典型的に、最適化ツールは、回路の様々なポイントについて表現され得る最適化目標と設計制限の混合を受ける。例としては、所望の到着時間(arrival times)および頻度を遵守しながら領域および電力を最小化すること、タイミングを低減するとともに最大領域を遵守すること、最大領域を遵守するとともに歩留まりを増加することを含む。設計目標および制限の多くの組合せは、それらの目標を達成するために設計者によって用いられ得る。   Optimization goals and design limits. Optimization goals and design constraints describe to the optimization tool what the designer's requirements are for the particular design being handled. Typically, optimization tools are subject to a mix of optimization goals and design constraints that can be expressed for various points in the circuit. Examples include minimizing territory and power while observing desired arrival times and frequencies, reducing timing and observing maximum territory, observing maximum territory and increasing yield including. Many combinations of design goals and restrictions can be used by the designer to achieve those goals.

目標ライブラリ。マッピングされた設計を生成する最適化ステップのために、ライブラリを参照して、マッピングツールによって用いられ得るセルを含む目標ライブラリを特定することが必要である。利用可能なセルは異なるライブラリに分割され得るので、マッピングツールは1つより多くの目標ライブラリを処理することが可能である。目標ライブラリは、初期回路について用いられる初期ライブラリのいくつかまたは全てを含み得る。   Goal library. For the optimization step of generating a mapped design, it is necessary to refer to the library and identify a target library that contains cells that can be used by the mapping tool. Since the available cells can be split into different libraries, the mapping tool can process more than one target library. The target library may include some or all of the initial library used for the initial circuit.

ライブラリテンプレート。完成した設計の最終レイアウトは、セルを隣り合わせに配置することによってなされるので、セルの設計は、このように配置されるときに、それらがより簡単に組合わされるように制限される。ベンダーは、電力消費や高速度のような異なる設計目標に適合するような、異なるテンプレートを有するライブラリを提供し得る。ベンダーにとって、同じ技術ノード、すなわち汎用、高速および低電力のライブラリバージョンに対して少なくとも3つの異なる標準セルライブラリを提供することは珍しいことではない。いくつかのベンダーは、追加的な他のバージョンを提供し得る。   Library template. Since the final layout of the finished design is done by placing the cells side by side, the design of the cells is limited so that they can be more easily combined when placed in this way. Vendors may provide libraries with different templates to suit different design goals such as power consumption and high speed. It is not uncommon for vendors to provide at least three different standard cell libraries for the same technology node, namely general purpose, high speed and low power library versions. Some vendors may offer other additional versions.

これらのライブラリは、異なるテンプレートを使用し、異なる列高さおよび電力グリッドサイズを有し得る。あるいは、これらのライブラリは、同じテンプレート、または同じ設計において用いられるべき適合可能なテンプレートを用い得る。ライブラリの異なるバージョンが適合可能でないテンプレートを有し、かつ設計ツールが異なるテンプレートの使用をサポートしないときに、設計者は、彼らの設計を達成するために、ライブラリの異なるバージョン(たとえば、汎用、高速、および低電力)の中から選択しなければならないかもしれない。設計者は、ライブラリが同じまたは適合可能なテンプレートを有しているときには、ライブラリの異なるバージョンからのセルを混合することができる。いくつかのテンプレートは、2つの隣接した列を占有する、2倍の高さのセルを適合し得る。   These libraries may use different templates and have different column heights and power grid sizes. Alternatively, these libraries may use the same template, or a compatible template to be used in the same design. When different versions of the library have non-conforming templates and the design tool does not support the use of different templates, designers can use different versions of the library (e.g., generic, fast) to achieve their design. , And low power) may have to be selected. The designer can mix cells from different versions of the library when the library has the same or adaptable templates. Some templates may fit twice the height of a cell that occupies two adjacent columns.

本発明が解決する課題は、新しいセルの追加によって利用可能な目標ライブラリを強化することの可能性を考慮しつつ、設計を最適化するための最小のほぼ最適なセルの組を選択することである。これは、それを実行するために用いられる、セルベースの設計およびセルライブラリの同時最適化を含む。ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。本方法は、ライブラリは、オリジナルのライブラリとはおそらく異なるトランジスタトポロジ、異なるサイズ、異なる論理機能、および/または異なるセルテンプレートを有する新しいセルによって強化され得るという事実を考慮する。   The problem to be solved by the present invention is to select the smallest nearly optimal set of cells to optimize the design, taking into account the possibility of enhancing the target library available by adding new cells. is there. This includes the simultaneous optimization of the cell-based design and cell library used to implement it. Note that the user is only interested in the optimized library, so the circuit can only be used to guide the library optimization process. In this case, the present invention generates a library that is optimized for a particular design without having to output an optimized circuit. The method takes into account the fact that the library can be augmented with new cells that probably have different transistor topologies, different sizes, different logic functions, and / or different cell templates than the original library.

強化されたライブラリ。ライブラリは、設計者が、設計を最適化するために、新しいセルをそれに追加する場合に強化されたと言われる。   Enhanced library. The library is said to be enhanced when the designer adds new cells to it to optimize the design.

使用されたサブセット。設計をマッピングした後、マッピングされた設計は、ライブラリからの特定のセルへの参照を作成し、それは設計においてインスタンス化される。ライブラリからの全てのセルが、設計において必ずしもインスタンス化される必要はない。与えられたマッピングされた設計において少なくとも1回はインスタンス化される全てのセルの組は、その与えられた設計に関するライブラリの使用されたサブセットを構成する。   The subset that was used. After mapping the design, the mapped design creates a reference to a specific cell from the library, which is instantiated in the design. All cells from the library need not be instantiated in the design. All cell sets that are instantiated at least once in a given mapped design constitute a used subset of the library for that given design.

使用のヒストグラム。マッピングされた設計、およびその特定の設計に関するライブラリの使用されたサブセットが与えられると、使用されたサブセット内の各セルは、設計において特定の数のインスタンスを有する。いくつかのセルは、一度だけしか用いられないかもしれないが、その他は多くの回数インスタンス化され得る。ヒストグラムは、(領域、電力、遅延などの)ライブラリまたは各個別のセルからのいくつかの特性に従って重み付けされ得る。   Use histogram. Given a mapped design and a used subset of the library for that particular design, each cell in the used subset has a specific number of instances in the design. Some cells may only be used once, while others can be instantiated many times. The histogram may be weighted according to several characteristics from the library (such as region, power, delay, etc.) or each individual cell.

インスタンスの寄与。設計への各インスタンスの寄与は、設計においてどれだけ多くの回数使用されたか(使用のヒストグラムから利用可能なデータ)、および(回路のタイミングクロージャについてそのセルへの寄与に関連する)低スラックのインスタンスにおいてどれだけ多くの回数そのセルが現れたかによって測定され得る。インスタンスの寄与は、設計の限られた領域、またはサブ設計に関して演算され得る。   Instance contribution. The contribution of each instance to the design is how many times it has been used in the design (data available from the usage histogram), and the low slack instance (related to its contribution to the cell for circuit timing closure) It can be measured by how many times the cell has appeared. Instance contributions can be computed with respect to a limited area of the design, or sub-design.

仮想セル。仮想セルは、セルの最終レイアウト記述からではなく生成されたデータを有するセルである。これらのセルは、(テープアウト(tape out)において用いられるべき)それらの最終形態において、いまだ実行されておらず、または特徴付けられていないが、設計および最適化プロセスにおけるそれらの使用を許容しつつ、利用可能なコストを推定する。推定されたコストは、最終レイアウトとは異なったソースから導き出されるか、あるいはテープアウトのために用いられるものとは異なった精度を伴う最終レイアウトから導き出される。仮想セルまたは推定されたコストが、(テープアウトのために用いられる)最終の物理的実施形態からどれだけ乖離しているかに依存して、仮想セルは、より大きな度合またはより小さな度合だけ仮想であり得る。仮想セルが最終のテープアウトバージョンに近ければ近いほど、仮想度合はより小さくなる。仮想セルが最終のテープアウトバージョンから遠ければ遠いほど、仮想度合はより大きくなる。   Virtual cell. A virtual cell is a cell that has data generated rather than from the final layout description of the cell. These cells are not yet implemented or characterized in their final form (to be used in tape out), but allow their use in the design and optimization process. While estimating the available cost. The estimated cost is derived from a different source than the final layout, or from a final layout with a different accuracy than that used for tape out. Depending on how far the virtual cell or estimated cost deviates from the final physical embodiment (used for tape-out), the virtual cell is virtual to a greater or lesser extent. possible. The closer the virtual cell is to the final tape-out version, the smaller the virtual degree. The farther the virtual cell is from the final tape-out version, the greater the virtual degree.

通常、コンパクション前のトランジスタの配置およびルーティングは、(この記述はしばしばスティック線図と称されるが、)領域および電気的特性を推定するために用いられる。推定がスパイスネットリスト(spice netlist)から純粋になされる場合は、仮想−仮想セル(virtual-virtual cell)または仮想2セル(virtual2 cell)と呼ぶ。本発明において用いられる仮想セルを生成する方法は、中間の駆動強度を得るために既存セルを補間する従前のアプローチとは異なっている。本アプローチにおいては、セルのためのコストが、セル生成器によって提供されるAPI推定を通して導き出される。これらのコストは、すでに事前演算され、追加のセルの組において利用可能であり得る。各セルは、(AND2、OR3、NAND4、AOI22などの)組合関数または(FFD、FFDSRなどの)メモリ要素であり得る、セルの挙動を表わす機能を有することに注意すべきである。1つより多くのセルが、駆動強度、トランジスタトポロジ、論理ファミリ、セルテンプレートなどが異なる、同じ機能を有し得る。   Typically, transistor placement and routing before compaction is used to estimate area and electrical properties (although this description is often referred to as a stick diagram). When the estimation is made purely from a spice netlist, it is called a virtual-virtual cell or a virtual 2 cell. The method of generating virtual cells used in the present invention is different from the previous approach of interpolating existing cells to obtain an intermediate driving strength. In this approach, the cost for the cell is derived through API estimation provided by the cell generator. These costs may already be precomputed and available in additional cell sets. It should be noted that each cell has a function that represents the behavior of the cell, which can be a combination function (such as AND2, OR3, NAND4, AOI22) or a memory element (such as FFD, FFDSR). More than one cell may have the same function with different drive strengths, transistor topologies, logic families, cell templates, etc.

ほぼ圧縮されたセル。ほぼ圧縮されたセルは、いまだにいくつかの設計基準検査(Design Rule Check:DRC)エラーを含んではいるが、領域および電気的特性は非常により精度で得られているセルである。仮想セルもまた、やや精密ではないが得るための時間消費が少ない特性データをもたらす、軽い特性化(light characterization)を実行することによって、完全に圧縮されたセルから導き出され得る。   An almost compressed cell. A nearly compressed cell is one that still contains some Design Rule Check (DRC) errors, but has a much higher accuracy in area and electrical characteristics. Virtual cells can also be derived from fully compressed cells by performing light characterization that results in characterization data that is less accurate but less time consuming to obtain.

セル生成ツール。セル生成ツールは、セルベース設計において用いられるためのセルを生成し得るツールである。ユーザは、生成されるべきセルについての所望の機能を特定しなくてはならない。セル生成ツールは、論理方程式から、あるいは所望のセルを特定するための、スパイスネットリストまたは他の形態から始まるセルを生成し得る。セルの生成は、(目標技術設計基準についての情報を提供する)技術定義(technology definition)およびセルについての所望のセルテンプレートに基づいている。セル生成器の一例は、ナンゲートライブラリクリエータ(登録商標)ツール(Nangate Library CreatorTM tool)であり、そのユーザーズマニュアルは、その他のナンゲートソフトウェアユーザーズマニュアル、ヘルプスクリーンを含むナンゲートソフトウェアスクリーン、および本願において引用される他の全ての参考文献とともに、参照により引用される。セル生成ツールは、その特徴について外部のツールに依存し、またはその特徴を実行するための密接に統合されたツールを有し得る。ライブラリ特性化ツールの一例は、ナンゲートライブラリキャラクタライザ(登録商標)ツール(Nangate Library CharacterizerTM tool)である。 Cell generation tool. A cell generation tool is a tool that can generate cells for use in cell-based design. The user must specify the desired function for the cell to be generated. The cell generation tool may generate cells starting from a logical equation or from a spice netlist or other form to identify the desired cell. Cell generation is based on a technology definition (providing information about the target technology design criteria) and a desired cell template for the cell. An example of a cell generator is the Nangate Library Creator tool, whose user manual includes other Nangate software user manuals, Nangate software screens including help screens, and the present application. Cited by reference with all other references cited in. Cell generation tools may rely on external tools for their features, or may have closely integrated tools for performing the features. An example of a library characterization tool is the Nangate Library Characterizer tool.

登録商標は、それら個別の所有者の財産権である。ナンゲートライブラリクリエータおよびナンゲートライブラリキャラクタライザは、ナンゲートA/S(Nangate A/S)の登録商標である。   Registered trademarks are the property rights of their individual owners. Nangate Library Creator and Nangate Library Characterizer are registered trademarks of Nangate A / S.

セル生成器API。セル生成器APIは、異なる精度を用いることによってセルコスト(領域、遅延、電力など)を推定するためのインターフェースを提供し得る。仮想セルが、(テープアウトのために用いられる)最終的な物理実施形態からどれだけ乖離しているかに依存して、それらは、異なる仮想度合(degree of virtuality)を提示し得る。仮想度合がより低ければ低いほど、仮想セルは、最終のテープアウトバージョンにより近くなる。前の議論から、セルは、仮想2レイアウト、仮想レイアウト、ほぼ圧縮されたレイアウト、および最終レイアウトの4つの異なる精度の選択肢を伴って生成されるコストを有し得る。セル生成器アプリケーションプログラムインターフェース(Application Program Interface:API)は、これら4つの異なる方法を提供し、セルおよびライブラリデータを生成し得る。セル生成器APIは、許容可能な機能についての実際のまたは推定されるコストを導き出すために用いられ、利用可能でないと考えられる機能についての無限コストを返すだろう。   Cell generator API. The cell generator API may provide an interface for estimating cell costs (region, delay, power, etc.) by using different accuracies. Depending on how far the virtual cells deviate from the final physical embodiment (used for tape-out), they can present different degrees of virtuality. The lower the virtual degree, the closer the virtual cell is to the final tape-out version. From the previous discussion, a cell may have a cost that is generated with four different accuracy options: virtual 2 layout, virtual layout, nearly compressed layout, and final layout. The cell generator application program interface (API) provides these four different methods to generate cell and library data. The cell generator API will be used to derive the actual or estimated cost for an acceptable function and will return an infinite cost for a function that is considered unavailable.

本発明は、設計を最適化するための強化されたライブラリを使用するために用いられる。解空間は、ライブラリの強化によって拡大され、それに続くステップにおいて、強化されたライブラリは、追加されたセルの数をユーザによって定められた数に限定するためにフィルタがかけられる。目標は、設計者によって許可されたものより多いセルを追加することなく、ライブラリの強化からの最大ゲインを得ることである。実用的な観点から、このプロセスは、設計およびそれを実行するために用いられるライブラリを、ともに最適化することを可能にする。   The present invention is used to use an enhanced library for optimizing the design. The solution space is expanded by library enhancement, and in subsequent steps, the enhanced library is filtered to limit the number of added cells to the number defined by the user. The goal is to get the maximum gain from library enhancements without adding more cells than allowed by the designer. From a practical point of view, this process allows the design and the library used to execute it to be optimized together.

図3は、ライブラリを設計空間の一部として考えたときの、性能とコストとのトレードオフのグラフを示す。図3は、潜在的なコスト節約を導入するように実行コストを最小化しながら、(点線307の)所望の性能を達成する(星印302として表わされた)ライブラリを見出すための課題決定を図示する。図に提示されたコストは、領域、遅延および電力であることに注意すべきである。これらは、本発明の制限としてではなく、例として引用され、測定され得る利点(領域、電力、遅延、歩留まりなど)の図も、本プロセス中で最適化され得る。   FIG. 3 shows a graph of the trade-off between performance and cost when the library is considered as a part of the design space. FIG. 3 illustrates a task determination to find a library (represented as asterisk 302) that achieves the desired performance (indicated by dotted line 307) while minimizing execution costs to introduce potential cost savings. Illustrated. It should be noted that the costs presented in the figure are area, delay and power. These are cited as examples, not as limitations of the present invention, and diagrams of benefits (region, power, delay, yield, etc.) that can be measured can also be optimized in the process.

提案された方法の利点は、設計空間の一部としてのライブラリの開発を含む。
これまでに、いくつかのアプローチが、詳細な物理的特徴を考慮せずかつそれをフィルタリングしようとしないまま、完全な仮想ライブラリを用いてなされている。これらのアプローチは、ライブラリがいくつかのトポロジカルパラメータによって定義される、純粋に仮想のライブラリを用いる。その唯一の目標は、トランジスタの数を最小化することである。実際の領域および特性は存在せず、かつ考慮されない。セルの数において、アクティブフィルタリングは実行されず、そのため、ライブラリ内の結果のセルの数は、著しく増加し得る。
Advantages of the proposed method include the development of libraries as part of the design space.
To date, several approaches have been made using complete virtual libraries without considering detailed physical features and without trying to filter them. These approaches use purely virtual libraries where the library is defined by several topological parameters. Its only goal is to minimize the number of transistors. There are no actual areas and characteristics and are not considered. No active filtering is performed on the number of cells, so the number of resulting cells in the library can increase significantly.

これらのアプローチは、実際のデータ−特性、領域、セルの詳細データ、またはそれらの構成を考慮せず、トランジスタの数のみが考慮されるので、非常に不正確である。他の不利益は、使用されるセルの数のアクティブな制限がないことである。   These approaches are very inaccurate because they do not take into account actual data-characteristics, regions, cell details, or their configuration, but only the number of transistors. Another disadvantage is that there is no active limit on the number of cells used.

いくつかのアプローチは、強化または拡張することなく、既存のライブラリにフィルタリングをかける。たとえば、1つのアプローチは、以前から存在していたライブラリからのセルをフィルタリングするだけである。強化は全く行なわれない。これらのアプローチは、単に既存の事前に特徴付けられたライブラリをフィルタリングするという主な制限を有し、そのアプローチは、設計を改善し得る特別なセルは見ない。他の制限は、セルのフィルタリングがセルごとになされ、隣接するサイズのセルはタイミングクロージャのためには保存されないということである。   Some approaches filter existing libraries without enhancements or extensions. For example, one approach only filters cells from a library that previously existed. No reinforcement is made. These approaches have the main limitation of simply filtering an existing pre-characterized library, and that approach does not see special cells that can improve the design. Another limitation is that cell filtering is done on a cell-by-cell basis and adjacent sized cells are not preserved for timing closure.

いくつかのアプローチはライブラリを強化するが、その強化は、新しい機能ではなく、新しい駆動強度を追加することに限定される。このように、強化は既存のセルについての新しいサイズのみを考慮する。新しい機能は全く追加されない。強化は、初期ライブラリ上に存在し(かつすでに特徴付けされた)機能に限定される。これは、新しいサイズを生成するために用いられる仮想セルの特徴が、ライブラリ内の既存セルから導き出されるために生じる。   Some approaches enhance the library, but the enhancement is limited to adding new drive strengths, not new features. Thus, enhancement only considers the new size for existing cells. No new features are added. Enhancements are limited to functions that exist (and have already been characterized) on the initial library. This occurs because the characteristics of the virtual cell used to generate the new size are derived from existing cells in the library.

これらのアプローチは、すべてのデータが既存セルから生成されるので、ライブラリに新しい機能を追加せず、かつ新しいトポロジを導き出すことができない。特性がライブラリ内の既存セルから導き出されるので、ライブラリ内にすでに存在するセルのみが用いられ得る。これは、与えられたトポロジを伴うライブラリ内に既に存在する機能について、新しいトポロジ(たとえば、トランジスタネットリスト)の使用を不正確にさせる。精度を確保するために、このアプローチは、ライブラリ内のセルのトポロジが公知であると非明示的に想定し、類似のトポロジ(および、したがって、既存のセルから正しく導き出され得る同様の特性)を伴う新しいセルが生成され得る。   These approaches do not add new functionality to the library and cannot derive new topologies because all data is generated from existing cells. Since the characteristics are derived from existing cells in the library, only cells that already exist in the library can be used. This makes the use of new topologies (eg, transistor netlists) inaccurate for functions that already exist in a library with a given topology. To ensure accuracy, this approach implicitly assumes that the topology of the cells in the library is known, and assumes similar topologies (and therefore similar characteristics that can be correctly derived from existing cells). A new cell with it can be created.

他のアプローチは、特定の設計を最適化するための新しいセルのオンザフライ生成を用いる。このアプローチは、初期(仮想)のライブラリは考慮しない。それは設計を調査し、最適化のための候補点に関する新しいセルを生成する。新しいセルの生成は、既存の回路の一部を置換するために用いられる新しいセルを生成するために用いられる文脈特定情報(context specific information)に基づいてなされる。   Another approach uses on-the-fly generation of new cells to optimize a particular design. This approach does not consider the initial (virtual) library. It examines the design and generates new cells for candidate points for optimization. The creation of a new cell is based on context specific information that is used to create a new cell that is used to replace a portion of an existing circuit.

方法は、設計特定セルを生成する。方法は、特定のセルによる回路の一部(たとえば、サブ回路)を構成する。方法は、設計特定セルの追加プロセスにおいて生成された新しいセルの数を低減する。方法は、この文脈におけるセル特性の事前レイアウト推定を実行する。仮想セルを生成することは、1つの可能性のある方法として見なされ得る。方法は、機能的に冗長なトランジスタネットワークを有する論理回路を生成する。方法は、与えられたセルライブラリにマッピングされた設計を受け、そして、回路の速度アップのためにセルのトランジスタサイズが変更される。このトランジスタサイズの変更は、ライブラリ内への新しいセルの追加をもたらし、ライブラリは新しいセルに適合するように再設計される。   The method generates a design specific cell. The method constitutes part of a circuit (eg, a subcircuit) with a particular cell. The method reduces the number of new cells created in the process of adding design specific cells. The method performs a pre-layout estimation of cell characteristics in this context. Creating a virtual cell can be viewed as one possible method. The method generates a logic circuit having a functionally redundant transistor network. The method receives a design mapped to a given cell library, and the cell transistor size is changed to speed up the circuit. This transistor size change results in the addition of new cells in the library, and the library is redesigned to fit the new cells.

これらのアプローチは、サブ回路の代用として用いられるための設計特定セルの生成を用いて行なわれる。それは、(特徴および性能評価がオンザフライでなされるので、)長時間を要し、結果としてより局部的な調査がなされる。他の不利益は、それがインプレースの最適化に向けられ、セル配置におけるいかなる修正も、セルが生成された環境および境界条件を修正し得ることである。もしこれが生じると、設計特定セルは、もはや有効ではないだろう。この先行技術においては隣接サイズのセルが提供されないので、タイミングクロージャは、この特定の場合において悪影響を与え得る。この意味で、この先行技術は、新しいセルを伴う設計特定ライブラリのずっとより限定された強化を提供する。   These approaches are performed using the generation of design specific cells to be used as a substitute for subcircuits. It takes a long time (since feature and performance evaluation are done on-the-fly), resulting in a more localized investigation. Another disadvantage is that it is directed to in-place optimization and any modification in the cell placement can modify the environment and boundary conditions in which the cell was created. If this happens, the design specific cell will no longer be valid. Timing closure can be detrimental in this particular case, since in this prior art no adjacent sized cells are provided. In this sense, this prior art provides a much more limited enhancement of design specific libraries with new cells.

ライブラリ生成のための方法は、推測的な(a priori)セル記述を有する。そのため、方法は、一旦セルが知られると、包括的なライブラリを作成する。本方法において考慮される設計の特異性はなく、そのため、それは設計特定ライブラリ生成法ではないと言うことができる。これらのアプローチは、特定の設計のためにはライブラリを最適化しない。それは、一旦セルが特定されると、ライブラリを形成するためのセルレイアウトを単に生成するだけである。セルそれ自体を選択することが、設計者の責任であり、方法はこのタスクにおいては設計者を手助けしない。   The method for library generation has a priori cell description. Thus, the method creates a comprehensive library once the cell is known. There is no design specificity considered in this method, so it can be said that it is not a design specific library generation method. These approaches do not optimize the library for a particular design. It simply creates a cell layout to form the library once the cells are identified. It is the designer's responsibility to select the cell itself, and the method does not help the designer in this task.

本特許は、デジタル設計とその実行に用いられるセルライブラリとの同時最適化を実行するための、新しい手法を提供する。図4は、この共同最適化を実行するためのシステムフローを示す。   This patent provides a new approach for performing simultaneous optimization of digital designs and cell libraries used to execute them. FIG. 4 shows the system flow for performing this joint optimization.

図4は、デジタル設計およびライブラリ400の同時最適化のための入出力データのシステムフローを示す。典型的に、方法は、入力として、初期設計403、初期ライブラリ406(任意的)、および追加的に許容可能な機能409の組を採用する。プロセス400からの出力は、再マッピングされた設計413およびライブラリ仕様416である。   FIG. 4 shows the system flow of input / output data for digital design and simultaneous optimization of the library 400. Typically, the method takes as input an initial design 403, an initial library 406 (optional), and a set of additionally acceptable functions 409. The output from process 400 is remapped design 413 and library specification 416.

ライブラリ仕様または最適化されたライブラリは、新しい関数、新しいサイズ、新しいテンプレートを有し、かつ初期ライブラリのサブセットも含み得る。ユーザは最適化されたライブラリ416のみに興味があり、そのため、回路403はライブラリ最適化プロセス400を案内するためだけに用いられ得ることに注意すべきである。この場合において、本技術は、最適化された回路413を出力する必要なく、特定の設計のために最適化されたライブラリ仕様416を生成する。再マッピングされた設計または回路は、この場合においては出力されなくてもよい。   A library specification or optimized library has new functions, new sizes, new templates, and may also include a subset of the initial library. It should be noted that the user is only interested in the optimized library 416, so that the circuit 403 can only be used to guide the library optimization process 400. In this case, the present technique generates an optimized library specification 416 for a particular design without the need to output an optimized circuit 413. The remapped design or circuit may not be output in this case.

3つの入力項目は、最適化されるべき回路または初期設計403、(空であり得る)最初から存在するセルライブラリ406、および明示的または非明示的に定められた追加的に許容可能な論理機能409の組である。設計制限および最適化目標のようなほかの入力項目は、たとえ図面においては明示的に示されていなくとも、本方法によって用いられ得る。設計制限は、回路設計の当業者においてはよく知られており、本説明においては議論されない。   The three input items are the circuit or initial design 403 to be optimized, the existing cell library 406 (which may be empty), and additional acceptable logic functions defined explicitly or implicitly. 409 pairs. Other input items such as design constraints and optimization goals may be used by the method, even if not explicitly shown in the drawings. Design limitations are well known to those skilled in the art of circuit design and are not discussed in this description.

最適化されるべき回路は、ゲートのネットリストまたは方程式の組、あるいはその2つの混合、あるいは他のフォーマットのいずれかとして説明され得る。初期回路または最適化されるべき回路はRTLからも得られ、すでにある程度最適化されたものであってもよい。ゲートのネットリストは、最初から存在するライブラリにおいて記述された、インスタンス化および相互接続ゲートを作成する回路の記述である。回路の機能は、ゲートの記述およびそれらの相互接続から導き出され得る。あるいは、最適化されるべき回路は、ライブラリにおけるゲートを特定するためのインスタンスを作成することなく、その回路の機能を直接的に表現するブール方程式の組として記述され得る。初期回路は、ゲートの機能だけが記述された、包括的なライブラリに対する参照も作成し得る。   The circuit to be optimized can be described as either a netlist of gates or a set of equations, or a mixture of the two, or other formats. The initial circuit or the circuit to be optimized can also be obtained from the RTL and already optimized to some extent. The netlist of gates is a description of the circuit that creates the instantiation and interconnection gates described in the library that exists from the beginning. The function of the circuit can be derived from the description of the gates and their interconnections. Alternatively, the circuit to be optimized can be described as a set of Boolean equations that directly represent the function of the circuit without creating an instance to identify the gate in the library. The initial circuit may also create a reference to a comprehensive library that describes only the function of the gate.

取り扱われるべき機能が記述され得る回路記述は、本発明の範囲において用いられ、ライブラリからのセル参照、および方程式、真偽表、バイナリデシジョンダイアグラム(BDD)または等価な形式を通して記述される回路のマッピングされていない部分を含んでいる混合された記述を含み得ることに注意すべきである。   Circuit descriptions in which the functions to be handled can be described are used within the scope of the present invention and are cell references from libraries and mapping of circuits described through equations, truth tables, binary decision diagrams (BDD) or equivalent forms It should be noted that it may contain mixed descriptions containing parts that have not been done.

最初から存在しているライブラリは、設計のためにすでに利用可能であるセルの組を含む。この組が空であり得ることに注目すべきであり、そして、もしこの組が空でない場合は、ライブラリのサブセットは、不許可とされ、無視され、あるいは「使用しない」としマークが付けられ得る。セルは、最適化されるべき回路の初期の記述において参照されてもよいし参照されなくてもよく、それはマッピングされた回路、マッピングされていない回路、あるいは部分的にマッピングされたまたはマッピングされていない回路、あるいはこれらの組合せであり得る。   An existing library includes a set of cells that are already available for design. It should be noted that this set can be empty, and if this set is not empty, a subset of the library can be disallowed, ignored, or marked as “not used”. . The cell may or may not be referenced in the initial description of the circuit to be optimized; it may be a mapped circuit, an unmapped circuit, or a partially mapped or mapped No circuit, or a combination thereof.

追加的に許容可能なセル(論理機能)の組は、単一のセルとしてみなされ得る、(オリジナルのライブラリに関する)追加のセル機能のリストを定める。この意味で、目標ライブラリは、追加的な許容可能な論理機能の組を伴うオリジナルのライブラリ(ライブラリ達)におけるセルの組の結合として理解され得る。このフローにおいて、新しい許容可能な機能は、ライブラリに追加されるべき候補セルを生成するために用いられ、したがって、利用可能なセルのセットを強化する。追加的に許容可能な機能の組は、非明示的にまたは明示的に、あるいはその2つの組合せ(非明示的および明示的な定義)によっても記述され得る。   The set of additionally permissible cells (logic functions) defines a list of additional cell functions (relative to the original library) that can be considered as a single cell. In this sense, the target library can be understood as a combination of cell sets in the original library (libraries) with an additional set of acceptable logic functions. In this flow, new acceptable functions are used to generate candidate cells to be added to the library, thus enhancing the set of available cells. An additionally acceptable set of functions may be described implicitly or explicitly, or by a combination of the two (implicit and explicit definitions).

ライブラリの非明示的な定義のいくつかの異なる例が以下に与えられる。(以下のおよびその他の)本用途における例は、本発明のいくつかの側面を例示するために提供され、これらの側面は必要に応じて、または特定の用途の要望にあわせて適合および修正され得る。本発明の範囲は、与えられる特定の例についてのいかなる方法においても、限定されまたは制限されるべきではない。   Some different examples of implicit library definitions are given below. Examples in this application (below and others) are provided to illustrate some aspects of the present invention, and these aspects are adapted and modified as needed or to meet the needs of a particular application. obtain. The scope of the present invention should not be limited or limited in any way for the specific examples given.

入力数による(非明示的なライブラリ定義についての)例1。入力数によってライブラリを定義する場合には、機能は、その入力数に従って容認されまたは廃棄され得る。容認および拒否されるべき入力数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 1 (for an implicit library definition) by number of inputs. When defining a library by the number of inputs, functions can be accepted or discarded according to the number of inputs. The specific value for the number of inputs to be accepted and rejected is a parameter that implicitly defines the function in the library.

直列並列の実施形態における直列および並列のトランジスタの数による(非明示的なライブラリ定義についての)例2。直列および並列のトランジスタの数によってライブラリを定義する場合には、機能は、直列および並列のトランジスタの数に従って容認されまたは廃棄され得る。容認および拒否されるべき直列および並列のトランジスタの数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 2 (for an implicit library definition) by the number of series and parallel transistors in a series-parallel embodiment. When defining a library by the number of series and parallel transistors, functions can be accepted or discarded according to the number of series and parallel transistors. The specific value for the number of series and parallel transistors to be accepted and rejected is a parameter that implicitly defines the function in the library.

BDD高さによる(非明示的なライブラリ定義についての)例3。BDD高さによってライブラリを定義する場合には、機能は、その機能を表すBDDの高さに従って容認されまたは廃棄され得る。容認および拒否されるべきBDDの高さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 3 (for implicit library definition) by BDD height. When defining a library by BDD height, functions can be accepted or discarded according to the height of the BDD representing that function. The specific value for the height of the BDD to be accepted and rejected is a parameter that implicitly defines the function in the library.

一般的なスイッチ実行例において達成可能なトランジスタチェーンの最小(最悪の場合)の長さによる(非明示的なライブラリ定義についての)例4。これは、直列トランジスタの数における「下限」である。トランジスタチェーンの最小(最悪の場合)の達成可能な長さによってライブラリを定義する場合には、機能は、トランジスタチェーンの最小(最悪の場合)の達成可能な長さに従って容認されまたは廃棄され得る。容認および拒否されるべきトランジスタチェーンの最小(最悪の場合)の達成可能な長さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 4 (for an implicit library definition) with the minimum (worst case) length of transistor chain achievable in a typical switch implementation. This is the “lower limit” in the number of series transistors. If the library is defined by the minimum (worst case) achievable length of the transistor chain, the function can be accepted or discarded according to the minimum (worst case) achievable length of the transistor chain. The specific value for the minimum (worst case) achievable length of the transistor chain to be accepted and rejected is a parameter that implicitly defines the function in the library.

(オリジナルのライブラリにおいてセルの関連を生成することを含む)オリジナルのライブラリにおいて提示される機能を伴うこれらの例からの機能の組合せを含む、上記4つの方法の組合せの、(非明示的なライブラリ定義についての)例5。非明示的または明示的に定義された各セルの機能について、異なるトランジスタトポロジ、異なるトランジスタのサイズ、および異なる駆動強度を含むセルのバリエーションが生成され得ることに注意すべきである。これらの方法は例示のためだけに提示され、本発明はここで例示された方法を用いる事に制限されないことに注意すべきである。   (Implicit library) of a combination of the above four methods, including a combination of functions from these examples with functions presented in the original library (including generating cell associations in the original library) Example 5 (for definition). It should be noted that cell variations including different transistor topologies, different transistor sizes, and different drive strengths may be generated for each cell function that is implicitly or explicitly defined. It should be noted that these methods are presented for illustration only and the invention is not limited to using the methods illustrated herein.

明示的な定義は、追加的に許容可能な論理機能のセットの明示的なリスティングを行うことである。これは、本方法の実行のために適した形式における追加的に利用可能な機能のリストを明示的に提供することである。   An explicit definition is an explicit listing of a set of additionally permissible logic functions. This is to explicitly provide a list of additionally available functions in a form suitable for execution of the method.

追加的に利用可能な機能を定義するどのような形式も、本発明の内容において有効であることに注目すべきである。リスト化された方法は、例示的な特徴を有するが、制限的な特徴は有しない。   It should be noted that any form of defining additional available functions is valid in the context of the present invention. The listed methods have exemplary features but no restrictive features.

本方法の出力は、マッピングされたネットリスト、および新しいライブラリを構成するセルの組を含む。ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計についての最適化されたライブラリを生成する。マッピングされたネットリストおよび新しいライブラリを構成するセルの組が以下に説明される。   The output of the method includes the mapped netlist and the set of cells that make up the new library. Note that the user is only interested in the optimized library, so the circuit can only be used to guide the library optimization process. In this case, the present invention generates an optimized library for a particular design without having to output an optimized circuit. The set of cells that make up the mapped netlist and the new library is described below.

マッピングされたネットワークは、オリジナルの回路を実現する相互接続されたセルの組であり、おそらく、領域、遅延および電力消費を含むがこれに制限されないコストに関するいくつかの利点を有する。得られるべき特定の利点は、マッピングツールのための設計制限および目標を通して、設計者によって案内される。マッピングされたネットワークにおいて用いられるセルは、本法によってさらに出力される新しいライブラリ内にリスト化される。   A mapped network is a set of interconnected cells that implements the original circuit and probably has several advantages regarding cost, including but not limited to area, delay, and power consumption. The particular benefits to be obtained are guided by the designer through design constraints and goals for the mapping tool. Cells used in the mapped network are listed in a new library that is further output by this method.

本方法によって出力される新しいライブラリは、以下のいずれかを含み得る。
1.既存セルの組合せを意味する、既存ライブラリ自体。
A new library output by the method may include any of the following:
1. The existing library itself, meaning a combination of existing cells.

2.(追加的に利用可能なセルからの)新しいセルが既存ライブラリに追加されたことを意味する、強化されたライブラリ。新しいセルは、既存論理機能のための新しい論理機能または新しい駆動強度を表すことができ、既存機能のための新しいトランジスタトポロジを含む。新しいセルを導入することの目標は、最終設計の領域、遅延および電力を低減することである。得られるべき特定の利点は、マッピングツールのための設計制限および目標を通して、設計者によって案内される。このプロセスの間、強化されたライブラリにおけるより効率的なセルの導入によって、オリジナルのライブラリからのいくつかのセルが削除され、廃棄され、不許可とされ、または使用しないとしてマークされ得ることに注意すべきである。   2. An enhanced library that means new cells (from additionally available cells) have been added to the existing library. The new cell can represent a new logic function or a new drive strength for an existing logic function and includes a new transistor topology for the existing function. The goal of introducing new cells is to reduce the final design area, delay and power. The particular benefits to be obtained are guided by the designer through design constraints and goals for the mapping tool. Note that during this process, with the introduction of more efficient cells in the enhanced library, some cells from the original library may be deleted, discarded, disallowed, or marked as unused. Should.

3.新しいセルライブラリにおいてセルの混合をよりよく適合するように、セルテンプレートを変更したことを意味する、新しいライブラリ。再び、既存セルについての新しい論理機能および新しい駆動強度が、既存ライブラリへ追加され得る。しかしながら、新しいテンプレートが選択されると、オリジナルのセルは、新しいテンプレートに適合するように、おそらく再設計され得る。セルの新しい混合を考慮すると、古いものは最良のものではないので、新しいテンプレートが導入され得る。   3. A new library, meaning that the cell template has been changed to better match the mix of cells in the new cell library. Again, new logic functions and new drive strengths for existing cells can be added to the existing library. However, if a new template is selected, the original cell can possibly be redesigned to match the new template. Considering the new mix of cells, a new template can be introduced because the old is not the best.

4.1より多くのテンプレートにおいて利用可能なセルにより構成される、新しい混合テンプレートライブラリ。原理は上述の「新しいライブラリ」と同様であるが、配置およびルーティングツールが不均一なセルテンプレート、あるいは、異なるテンプレートを用いる回路領域または電力領域またはセルの異なるVtバージョンに対処することができる場合には、セルは異なるテンプレートにおいて利用可能とされ得る。混合テンプレートライブラリは、適合可能でないテンプレートを使用し、異なる列高さおよび電力グリッドサイズを有してもよいし、または同じ設計において用いられるべき適合可能なテンプレートを用いてもよい。このようにして、設計者は、適合可能でないテンプレートの場合について異なる回路テンプレート領域のために用いられるべきセルの異なるテンプレートバージョンの中から選択することができ、または設計者は、テンプレートが適合可能である場合に、回路のどんな領域においてもセルを混合することができる。いくつかのテンプレートは、2つの隣接する列を占有する、2倍高さのセルに適合し得る。   4.1 New mixed template library consisting of cells available in more than one template. The principle is similar to the “new library” described above, but where the placement and routing tools can handle non-uniform cell templates or different Vt versions of circuit or power domains or cells using different templates. The cells can be made available in different templates. The mixed template library may use templates that are not adaptable, may have different column heights and power grid sizes, or may use adaptable templates to be used in the same design. In this way, the designer can choose between different template versions of cells to be used for different circuit template regions for non-conformable templates, or the designer can adapt the template. In some cases, cells can be mixed in any area of the circuit. Some templates may fit a double height cell that occupies two adjacent rows.

本方法によって生成された新しい設計およびライブラリ仕様は、図5に示されるように、最適化プロセスへの入力520として用いられ、繰り返し最適化を生成する。最適化プロセスは、どのような回数(たとえば、2,3,4,5,6または7、あるいはより多くの回数)でも反復され得ることに注意すべきである。これは、最適化ツールによって生成される結果が初期データに依存しており、そのため反復がさらなる改善を提供し得ることがよく知られているので、重要である。反復プロセスのより一般的な観点においては、最適化は設計の前のバージョン、または前の反復において生成されたライブラリを再利用し得る。   New designs and library specifications generated by the method are used as input 520 to the optimization process, as shown in FIG. 5, to generate iterative optimization. It should be noted that the optimization process can be repeated any number of times (eg, 2, 3, 4, 5, 6 or 7, or more times). This is important because it is well known that the results produced by the optimization tool depend on the initial data, so that iteration can provide further improvements. In a more general view of the iterative process, optimization may reuse previous versions of the design or libraries generated in previous iterations.

図5を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。   Referring to FIG. 5, it should be noted that the user is only interested in the optimized library, so the circuit can only be used to guide the library optimization process. In this case, the present invention generates a library that is optimized for a particular design without having to output an optimized circuit. In this case, the circuit cannot be output.

設計およびライブラリの同時最適化のための提案された方法を実現するように適合された、1つの可能なフロー400が図6に示される。フローの特定の実行例のステップは、以下に説明される。   One possible flow 400 adapted to implement the proposed method for simultaneous design and library optimization is shown in FIG. The steps of a specific execution example of the flow are described below.

図6を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。   Referring to FIG. 6, it should be noted that the user is only interested in the optimized library, so that the circuit can only be used to guide the library optimization process. In this case, the present invention generates a library that is optimized for a particular design without having to output an optimized circuit. In this case, the circuit cannot be output.

特定のフローが以下に提示されるが、本発明は提示された特定のフローおよびステップに限定されないことが理解されるべきである。本発明のフローは、(この用途においては必ずしも説明される必要のない)追加のステップ、提示されたステップのいくつかを置換した異なるステップ、より少ないステップまたは提示されたステップのサブセット、あるいは提示されたものと異なる順番のステップ、あるいはこれらの組合せを有し得る。さらに、本発明の他の実行例におけるステップは、提示されたステップと全く同一でなくてもよく、かつ特定の用途に適したようにまたはデータに基づいて、修正されあるいは変更されてもよい。   Although specific flows are presented below, it should be understood that the invention is not limited to the specific flows and steps presented. The flow of the present invention may be presented with additional steps (not necessarily described in this application), different steps replacing some of the presented steps, fewer steps or a subset of presented steps, or There may be a different sequence of steps from the above, or a combination thereof. Further, the steps in other implementations of the invention may not be exactly the same as the steps presented and may be modified or changed as appropriate for a particular application or based on data.

1.ステップ603において、既存ライブラリおよび許容可能な機能を考慮して、設計を最適化するための候補セルを同定する一致(match)を生成する。基本的に、このステップは、(セルとなり得る)許容可能な機能の組において、初期のライブラリまたは機能におけるセルに対応する回路の部分を同定する。このフェーズは、当業者によって、一般的にマッチングと呼ばれている。しかしながら、ここでは、同時に、物理的なセル、仮想セル、および仮想2セルを同定することができるオリジナルの特性を提示する。   1. In step 603, a match is generated that identifies candidate cells for optimizing the design, taking into account existing libraries and acceptable functions. Basically, this step identifies the portion of the circuit that corresponds to the cell in the initial library or function in the set of acceptable functions (which can be cells). This phase is commonly called matching by those skilled in the art. However, here we present the original properties that can simultaneously identify physical cells, virtual cells, and virtual two cells.

2.ステップ606において、回路を実現する候補セルの最良の組を選択する。一旦、回路の異なる部分が、割り当てられた候補セルを有すると、技術は、それらが領域、遅延および電力消費コストについて所望のトレードオフを伴う回路を実現するような、候補のサブセットを選択する。このフェーズにおいて事項された選択は、当業者によって、一般的にカバーリングと呼ばれる。   2. In step 606, the best set of candidate cells that implement the circuit is selected. Once the different parts of the circuit have assigned candidate cells, the technique selects candidate subsets so that they implement the circuit with the desired trade-offs for area, delay and power consumption costs. The choices made in this phase are commonly referred to as covering by those skilled in the art.

3.ステップ610において、コストは許容できるがあまり頻繁に使用されていない候補セルを削除する。このステップは、カバーリングフェーズの結果を調査し、少数のインスタンスのみを有するセルのインスタンスを削除する。回路のこれらの部分は、その後、残りの使用されるセルの組を考慮して再マッピングされる。このステップの目標は、設計実行コストを著しく増加させず、かつ設計制限を遵守しながら、セル候補の全体数(およびライブラリのサイズ)を減少することである。このプロセスは、設計のための使用におけるライブラリから、セルを削除し、無視し、または使用しないようにマーキングし得ることに注意すべきである。   3. In step 610, candidate cells that are acceptable in cost but are not used frequently are deleted. This step examines the results of the covering phase and deletes instances of cells that have only a few instances. These parts of the circuit are then remapped taking into account the remaining set of used cells. The goal of this step is to reduce the overall number of cell candidates (and the size of the library) without significantly increasing the design execution cost and complying with the design restrictions. It should be noted that this process may delete cells from the library in use for design, mark them to be ignored, or not used.

4.ステップ614において、新しいライブラリのためのセルテンプレートを最適化する。新しいセルの混合が生成されるので、最適化されたライブラリに存在するセルの組によりよく適合するように、ライブラリテンプレートが最適化され得る。ライブラリテンプレートは、セル高さ、電源の幅、P型およびN型の拡散などを定義する。   4). In step 614, the cell template for the new library is optimized. As a new mixture of cells is generated, the library template can be optimized to better fit the set of cells present in the optimized library. The library template defines cell height, power supply width, P-type and N-type diffusion, and the like.

5.ステップ619において、再マッピングされた設計および適合したライブラリ仕様を生成する。適合したライブラリ仕様は、再マッピングされた設計において用いられるセルについての駆動強度の多様性を含む。駆動強度のこの多様性の要求は、配置およびルーティング後のクロージングタイムのために必要とされる駆動強度が、推測的に知られていないという事実に由来する。   5. In step 619, a remapped design and a matched library specification is generated. A conforming library specification includes a variety of drive strengths for the cells used in the remapped design. This variety of drive strength requirements stems from the fact that the drive strength required for closing time after placement and routing is not speculatively known.

出力されたライブラリは仮想セルおよび仮想2セルを含んでいるので、図6における出力されたライブラリは、ライブラリ仕様であることに注意すべきである。これは、再マッピングされた設計において用いられる仮想セルおよび仮想2セルは、回路の最終テープアウト前に、物理的セルを生成するための仕様として用いられなければならないことを意味する。ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。   It should be noted that the output library in FIG. 6 is a library specification because the output library includes virtual cells and virtual 2 cells. This means that the virtual cells and virtual 2 cells used in the remapped design must be used as specifications for creating physical cells before the final tape out of the circuit. Note that the user is only interested in the optimized library, so the circuit can only be used to guide the library optimization process. In this case, the present invention generates a library that is optimized for a particular design without having to output an optimized circuit.

再び、読者は、本発明によって生成された新しい設計およびライブラリ仕様が、最適化プロセスへの入力として用いられ、図7に示されるように、繰り返し最適化を生成することに注意すべきである。新しい設計およびライブラリ仕様は、ステップ603または610への入力として用いられ得る。これは、最適化ツールによって生成される結果が初期データに依存しており、そのため反復がさらなる改善を提供し得ることがよく知られているので、重要である。反復プロセスのより一般的な観点においては、最適化は設計の前のバージョン、または前の反復において生成されたライブラリを再利用し得る。   Again, the reader should note that the new design and library specification generated by the present invention is used as an input to the optimization process to generate iterative optimization as shown in FIG. New designs and library specifications can be used as input to step 603 or 610. This is important because it is well known that the results produced by the optimization tool depend on the initial data, so that iteration can provide further improvements. In a more general view of the iterative process, optimization may reuse previous versions of the design or libraries generated in previous iterations.

図7を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。   Referring to FIG. 7, it should be noted that the user is only interested in the optimized library, so the circuit can only be used to guide the library optimization process. In this case, the present invention generates a library that is optimized for a particular design without having to output an optimized circuit. In this case, the circuit cannot be output.

ここで説明される方法は、図8に記載されるように、ポストプロセッシングを通してさらに強化され得る。図8を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。   The method described herein can be further enhanced through post processing, as described in FIG. Referring to FIG. 8, it should be noted that the user is only interested in the optimized library, so the circuit can only be used to guide the library optimization process. In this case, the present invention generates a library that is optimized for a particular design without having to output an optimized circuit. In this case, the circuit cannot be output.

このポストプロセッシングステップは、配置およびルーティング818を実行することによって設計の新しいバージョンを導き出すための、本方法によって生成されたマッピングされたネットリスト810の出力および強化されたライブラリ815の出力から構成される。この配置されかつルーティングされた設計のバージョン822によって、初期のセルライブラリからのどのセルおよびサイズが、回路の物理的実行例において効果的に用いられるかを検証することができる。このように、効果的に使用されるセルおよびサイズを考慮しつつ、ライブラリ仕様のさらなる最適化826を実行することができる。   This post-processing step consists of the output of the mapped netlist 810 generated by the method and the output of the enhanced library 815 to derive a new version of the design by performing placement and routing 818. . This deployed and routed design version 822 can verify which cells and sizes from the initial cell library are effectively used in the physical implementation of the circuit. In this way, further optimization of the library specification 826 can be performed while taking into account effectively used cells and sizes.

配置およびルーティング後にライブラリ仕様を最適化するプロセス(826)は、図9においてより詳細に説明される。このプロセスは、いくつかのレベルの配置保護を採用することができ、既存セルは、同じ場所に残るかあるいは著しくは置換されない。最適化を通して行なわれる基本的な動作が、以下で説明される。   The process (826) of optimizing the library specification after placement and routing is described in more detail in FIG. This process can employ several levels of placement protection, with existing cells remaining in place or not significantly replaced. The basic operations performed through optimization are described below.

1.ステップ933において、どのようなサイズにおいても使用されていないセル機能を削除する。ライブラリ内にあるがどのサイズにおいても使用されないセルは、生成されなければならないセルの数を最小化するために、ライブラリから削除され得る。   1. In step 933, cell functions that are not used in any size are deleted. Cells that are in the library but are not used at any size can be deleted from the library to minimize the number of cells that must be generated.

2.ステップ935において、使用されているセルについて、使用されていないサイズを削除する。使用されていないサイズもまた、ライブラリをシンプルにするために削除され得る。   2. In step 935, the unused size of the used cell is deleted. Unused sizes can also be deleted to simplify the library.

3.ステップ937において、使用されているセルおよびサイズについて、タイミングクロージャのために既存のサイズを調整させるような追加的なサイズを追加する。回路は配置およびルーティングされ、かつタイミングが閉鎖されておりまたは閉鎖されそうであるので、セルは使用される最終サイズに近づく。すべての使用されるセル/サイズについて、近接のサイズの組が、ライブラリに導入されて、最終タイミングを確定させる。   3. In step 937, for the cell and size being used, an additional size is added that causes the existing size to be adjusted for timing closure. Since the circuit is placed and routed and the timing is or is likely to be closed, the cell approaches the final size used. For all used cells / sizes, a set of adjacent sizes is introduced into the library to determine the final timing.

4.ステップ939において、最適化された設計におけるセルの新しい混合を最適化するためにライブラリテンプレートを調整する。セルの新しい混合が生成されるので、ライブラリテンプレートは、最適化されたライブラリにおいて存在するセルの組によりよく適合するように最適化され得る。ライブラリテンプレートは、セル高さ、電力の幅、P型およびN型の拡散などを定義する。   4). In step 939, the library template is adjusted to optimize the new mix of cells in the optimized design. As a new mix of cells is generated, the library template can be optimized to better fit the set of cells present in the optimized library. The library template defines cell height, power width, P-type and N-type diffusion, and the like.

最適化されたライブラリ仕様948が生成された後、技術は、図10に示されるように、対応する最適化された物理ライブラリの合成1052へ進む。これは、(物理的合成を通して)仮想セルおよび仮想2セルの物理的実行例への変換に相当する。そして、セルの物理的実行例は、テープアウトのための最終設計クロージャ(closure)を実行するために用いられる最適化された物理ライブラリ1054を構成する。設計は、(再マッピングされた設計1056によって示されるように、)物理合成後に、新しいライブラリを反映するように更新されなくてはならないことに注目すべきである。このステップは、本発明の範囲において自動的に実行され得る。   After the optimized library specification 948 is generated, the technique proceeds to synthesis 1052 of the corresponding optimized physical library, as shown in FIG. This corresponds to the conversion of a virtual cell and a virtual two cell into a physical implementation (through physical synthesis). The physical implementation of the cell then constitutes an optimized physical library 1054 that is used to perform the final design closure for tape out. It should be noted that the design must be updated to reflect the new library after physical synthesis (as shown by the remapped design 1056). This step can be performed automatically within the scope of the present invention.

現在の発明は、先行技術に対して利点を提供する。本発明は、領域および性能(電力、遅延、歩留まりおよびその他)に関して、より現実的なデータを用いる。それによって、新しく生成された機能のタイプおよび数を制御することもできる。   The present invention provides advantages over the prior art. The present invention uses more realistic data regarding area and performance (power, delay, yield and others). Thereby, the type and number of newly created functions can also be controlled.

本発明は、設計を最適化するために有用であり得る新しいセルを追加することの利点を有する。さらに、本発明は、最終的なタイミングクロージャおよび最適化を可能とするための、隣接したサイズのセルを追加するステップを有する。   The present invention has the advantage of adding new cells that may be useful for optimizing the design. Furthermore, the present invention has the step of adding adjacent sized cells to allow final timing closure and optimization.

本発明は、新しい機能、異なるトランジスタトポロジ、異なるサイズ、およびセルテンプレートのバリエーションを開発する利点を有する。他のアプローチにおける異なるサイズが、既存セルサイズの補間によって生成され、それは、異なるサイズが異なるトポロジを有するときに多くの不正確さを追加し得る。本明細書に記載される本発明はこの課題を有しておらず、かつ同じ駆動強度を伴う1つより多くのトポロジの使用もサポートする。   The present invention has the advantage of developing new features, different transistor topologies, different sizes, and cell template variations. Different sizes in other approaches are generated by interpolation of existing cell sizes, which can add a lot of inaccuracy when different sizes have different topologies. The invention described herein does not have this problem and also supports the use of more than one topology with the same drive strength.

本発明は、セルが最初にライブラリに追加され、その後マッピングツールが、どのセルが使用されるのが興味深いかを決定するので、より強力である。本明細書で提示される発明は、仮想セルについての事前演算されたデータ(初期特性および領域のプレビュー)を用いる可能性を有することによって大きな組のセルを開発し、それは本明細書で提示される発明をより高速にする。   The present invention is more powerful because the cells are first added to the library and then the mapping tool determines which cells are interesting to use. The invention presented here develops a large set of cells by having the possibility to use pre-computed data (initial characteristics and region previews) about the virtual cell, which is presented here. Make the invention faster.

その他のポイントは、ライブラリ内にセルを挿入するときに、同一性(セルの固有化(uniquify))によって、セルをグループ化する必要がないことであり、セルは仮想ライブラリ(追加的な利用可能な機能の組)において、状態が類似の場合にマッピングツールが同じセルサイズを選択できるというサイズの選択とともにすでに利用可能であるが、この発明の文脈においては、これは取るに足らない問題である。本明細書で提示される発明は、ライブラリに異なる特色の新しいセルを追加することによって推測的に生成される新しい機能のタイプを制御できるようにし、そして後続のステップにおいてセルの量を制御する。これは、セルが状況を満足するように生成され、類似のすでに存在するセルが代わりに使用され得るかどうかを理解するための検証ステップを有するようなアプローチとは、基本的に異なる。   The other point is that when inserting cells into the library, the cells do not have to be grouped due to identity (uniquify), and the cells are virtual libraries (additional availability) In the context of the present invention, this is a trivial issue, although it is already available with the choice of size that the mapping tool can select the same cell size when the states are similar) . The invention presented herein allows control of the type of new function that is speculatively generated by adding new cells with different features to the library, and controls the amount of cells in subsequent steps. This is fundamentally different from an approach where cells are generated to satisfy the situation and have a verification step to understand if similar already existing cells can be used instead.

その他のアプローチは、新しく生成されたセルの数を制御するような特徴を有していない。本発明の他の利点は、セルの使用の状況(たとえば、配置)が若干変化した場合に、最終のタイミングクロージャおよび最適化を可能とする隣接するサイズのセルを追加するステップである。   Other approaches do not have features that control the number of newly created cells. Another advantage of the present invention is the step of adding contiguous sized cells that allow final timing closure and optimization if the cell usage situation (eg, placement) changes slightly.

本発明は、設計を考慮し、設計を最適化するための所望のセル仕様を自動的に生成する。他のアプローチは、設計者が自分自身でセル仕様を生成するように要求されるので、このタスクを達成するために設計者に何の援助も提供しない。   The present invention takes into account the design and automatically generates the desired cell specifications for optimizing the design. Other approaches do not provide any assistance to the designer to accomplish this task, as the designer is required to generate the cell specification himself.

ここで提示された発明の用途例として、図11に示される回路を考える。それは通常の標準的なセルライブラリを用いることによって生成された回路である。そのため、この回路は、反転器1100と、NOR2(U27)と、1つの反転された入力を有するNOR3(U26)と、1つの反転された入力を有するNAND3(U24)と、OAI21(U22)と、OAI31(U18)と、AOI21(U20)と、OAI22(U19)とを含む、図に列挙されたセルを用いる。OAIは、オア−アンド−反転ゲート(OR-AND-INVERT gate)である。AOIは、アンド−オア−反転ゲート(AND-OR-INVERT)である。これらは、最も一般的なライブラリにおいて見出され得るセルである。回路が11のセルインスタンスを有していることに注意することが重要である。   As an example of application of the invention presented here, consider the circuit shown in FIG. It is a circuit generated by using an ordinary standard cell library. Therefore, this circuit includes an inverter 1100, NOR2 (U27), NOR3 (U26) having one inverted input, NAND3 (U24) having one inverted input, and OAI21 (U22). The cells listed in the figure are used, including OAI31 (U18), AOI21 (U20), and OAI22 (U19). OAI is an OR-AND-INVERT gate. AOI is an AND-OR-INVERT. These are the cells that can be found in the most common libraries. It is important to note that the circuit has 11 cell instances.

この特定の例について、たとえばトランジスタの直列および並列接続から成る論理ゲートにおいて、制限された数の直列的に接続されたPMOSおよびNMOSトランジスタを有する組合セルを用いることによって生じるライブラリのように、強化されたライブラリが用いられ得る。このアプローチにおいて、仮想ライブラリまたは物理的ライブラリが利用可能であり、またはセル生成器ツールが追加されるべきセルのためのコスト推定を提供し得る。   For this particular example, it is enhanced, for example in a logic gate consisting of series and parallel connections of transistors, like a library that results from using a combined cell with a limited number of series connected PMOS and NMOS transistors Different libraries can be used. In this approach, a virtual or physical library is available, or a cell generator tool may provide a cost estimate for the cell to be added.

最大4つの直列のトランジスタである、トランジスタの直列および並列の組合せを用い、かつセルの入出力の取り消し(negation)を許容することによって、図12の回路が得られる。トランジスタの数が4つまで低減されていることに注目すべきである。たとえ、図12のセルが図11のものより大きいという可能性があったとしても、より少ない数のセルインスタンスが、より大きいセルの使用を補償することに気づくことが重要である。確かに、図12の回路は、実現のためにより少ないトランジスタを要求する。   The circuit of FIG. 12 is obtained by using a series and parallel combination of transistors, up to four series transistors, and allowing cell input / output negation. Note that the number of transistors has been reduced to four. It is important to realize that a smaller number of cell instances compensate for the use of larger cells, even though the cells of FIG. 12 may be larger than those of FIG. Indeed, the circuit of FIG. 12 requires fewer transistors for implementation.

さらに、図12の回路は、より少ないセルの出力がバッファリングされる必要があるので、より効率的なサイズとされ得る。このステップにおける追加的で許容可能な機能の組は、前述されそして以降で繰り返されるように、明示的または非明示的に定義され得ることに注意すべきである。   Further, the circuit of FIG. 12 can be sized more efficiently because fewer cell outputs need to be buffered. It should be noted that the set of additional acceptable functions in this step can be explicitly or implicitly defined as described above and repeated hereinafter.

追加的に許容可能な論理機能の組は、単一のセルとしてみなされ得る機能のリストを定義する。このフローにおいて、新しい許容可能な機能は、ライブラリに追加されるべき候補セルを生成するために用いられ、したがって、利用可能なセルの組を強化する。追加的に許容可能な機能の組は、非明示的または明示的に、あるいはその2つの組合せ(非明示的および明示的定義)によってでさえも記述され得る。   The additionally acceptable set of logic functions defines a list of functions that can be considered as a single cell. In this flow, new acceptable functions are used to generate candidate cells to be added to the library, thus enhancing the set of available cells. The additionally acceptable set of functions can be described implicitly or explicitly, or even by a combination of the two (implicit and explicit definitions).

ライブラリの非明示的定義のいくつかの異なる例が以下に与えられる。(以下およびその他のところでの)本用途における例は、本発明のいくつかの側面を例示するために提供され、これらの側面は、必要に応じてまたは特定の用途のための要求に応じて、適合および修正され得る。本発明の広さは、与えられた特定の例に多少なりとも限定または制限されるべきではない。   Several different examples of implicit library definitions are given below. Examples in this application (below and elsewhere) are provided to illustrate some aspects of the present invention, and these aspects can be used as needed or as required for a particular application. Can be adapted and modified. The breadth of the present invention should not be limited or limited in any way to the specific examples given.

入力数による(非明示的なライブラリ定義についての)例1。入力数によってライブラリを定義する場合には、機能は、その入力数に従って容認されまたは廃棄され得る。容認および拒否されるべき入力数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 1 (for an implicit library definition) by number of inputs. When defining a library by the number of inputs, functions can be accepted or discarded according to the number of inputs. The specific value for the number of inputs to be accepted and rejected is a parameter that implicitly defines the function in the library.

直列並列の実施形態における直列および並列のトランジスタの数による(非明示的なライブラリ定義についての)例2。直列および並列のトランジスタの数によってライブラリを定義する場合には、機能は、直列および並列のトランジスタの数に従って容認されまたは廃棄され得る。容認および拒否されるべき直列および並列のトランジスタの数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 2 (for an implicit library definition) by the number of series and parallel transistors in a series-parallel embodiment. When defining a library by the number of series and parallel transistors, functions can be accepted or discarded according to the number of series and parallel transistors. The specific value for the number of series and parallel transistors to be accepted and rejected is a parameter that implicitly defines the function in the library.

BDD高さによる(非明示的なライブラリ定義についての)例3。BDD高さによってライブラリを定義する場合には、機能は、その機能を表すBDDの高さに従って容認されまたは廃棄され得る。容認および拒否されるべきBDDの高さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 3 (for implicit library definition) by BDD height. When defining a library by BDD height, functions can be accepted or discarded according to the height of the BDD representing that function. The specific value for the height of the BDD to be accepted and rejected is a parameter that implicitly defines the function in the library.

一般的なスイッチ実行例において達成可能なトランジスタチェーンの最小(最悪の場合)の長さによる(非明示的なライブラリ定義についての)例4。これは、直列トランジスタの数における「下限」である。トランジスタチェーンの最小(最悪の場合)の達成可能な長さによってライブラリを定義する場合には、機能は、トランジスタチェーンの最小(最悪の場合)の達成可能な長さに従って容認されまたは廃棄され得る。容認および拒否されるべきトランジスタチェーンの最小(最悪の場合)の達成可能な長さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。   Example 4 (for an implicit library definition) with the minimum (worst case) length of transistor chain achievable in a typical switch implementation. This is the “lower limit” in the number of series transistors. If the library is defined by the minimum (worst case) achievable length of the transistor chain, the function can be accepted or discarded according to the minimum (worst case) achievable length of the transistor chain. The specific value for the minimum (worst case) achievable length of the transistor chain to be accepted and rejected is a parameter that implicitly defines the function in the library.

(オリジナルのライブラリにおいてセルの関連を生成することを含む)オリジナルのライブラリにおいて提示される機能を伴うこれらの例からの機能の組合せを含む、上記4つの方法の組合せの、(非明示的なライブラリ定義についての)例5。非明示的または明示的に定義された各セルの機能について、異なるトランジスタトポロジ、異なるトランジスタのサイズ、および異なる駆動強度を含むセルのバリエーションが生成され得ることに注意すべきである。これらの方法は例示のためだけに提示され、本発明はここで例示された方法を用いる事に制限されないことに注意すべきである。   (Implicit library) of a combination of the above four methods, including a combination of functions from these examples with functions presented in the original library (including generating cell associations in the original library) Example 5 (for definition). It should be noted that cell variations including different transistor topologies, different transistor sizes, and different drive strengths may be generated for each cell function that is implicitly or explicitly defined. It should be noted that these methods are presented for illustration only and the invention is not limited to using the methods illustrated herein.

明示的な定義は、追加的に許容可能な論理機能のセットの明示的なリスティングを行うことである。これは、本方法の実行のために適した形式における追加的に利用可能な機能のリストを明示的に提供することである。   An explicit definition is an explicit listing of a set of additionally permissible logic functions. This is to explicitly provide a list of additionally available functions in a form suitable for execution of the method.

セルを減少するためにライブラリをフィルタリングするステップが、このステップからもたらされる回路を提示する図13に図示される。ここで提示された例はより大きな回路の一部であり、図12の出力信号n0を生成するセルは、より大きな回路の範囲における非常にわずかなインスタンスしか有していないことを考慮すべきである。そして、この特定のセルは、ライブラリにおいて禁止され、より多くの数のインスタンスを有するセルに再マッピングされ得る。   The step of filtering the library to reduce cells is illustrated in FIG. 13 which presents the circuitry resulting from this step. The example presented here is part of a larger circuit and it should be considered that the cell producing the output signal n0 of FIG. 12 has very few instances in the larger circuit range. is there. This particular cell is then banned in the library and can be remapped to a cell with a larger number of instances.

これは、n0を生成するセルが図13の回路をもたらし、範囲を定義するより大きな回路の他のサブ回路における多数のインスタンスを有する2つのインスタンスに置換される。このプロセスは、各セルが最初のマッピングにおいて有するインスタンスの数の情報を考慮するとともに、ライブラリから削除されるときに顕著なコスト増加を意味することのないわずかなインスタンスを伴うセルを削除する目標を有する。   This is because the cell that generates n0 results in the circuit of FIG. 13 and is replaced with two instances with multiple instances in other subcircuits of the larger circuit defining the range. This process takes into account the information on the number of instances each cell has in the initial mapping and has the goal of deleting cells with few instances that do not mean a significant cost increase when deleted from the library. Have.

ライブラリ強化プロセスのための次のステップは、使用される各セルが、十分な数のサイズにおいて利用可能でなくてはならないことを考慮する。このように、(X1、X1.5、X2、X4などの)サイズ変形体が、ライブラリを構成するための選択された各セルのために、ライブラリに追加される。これは、配置およびルーティングツールが効果的に最終のタイミングクロージャおよび最適化を実行できるように用いられる。   The next step for the library enrichment process takes into account that each cell used must be available in a sufficient number of sizes. Thus, size variants (such as X1, X1.5, X2, X4) are added to the library for each selected cell to make up the library. This is used so that placement and routing tools can effectively perform final timing closure and optimization.

一旦サイズが追加されると、新しいテンプレートがライブラリのために定義され得る。セルおよびインスタンスの数が既知であるので、全体の実行コストを低減するテンプレートを選択するために、ライブラリ生成ツールAPIを用いて、異なるテンプレートのためのセルの特性について調べることが可能である。   Once the size is added, a new template can be defined for the library. Since the number of cells and instances is known, the library generation tool API can be used to examine the characteristics of the cells for different templates in order to select a template that reduces the overall execution cost.

図14Aおよび14Bは、同じ論理機能についての2つの異なるテンプレートの用途を例示する。セルは、9つのトラックのテンプレート(図14A)および7つのトラックのテンプレート(図14B)に対して、異なるように適合することに注目すべきである。この特定の場合において、7つのトラックテンプレートがより小さな領域をもたらすことに気づくことができる。この状態はセルごとに変化し、重み付けされた決定がセルインスタンスの数または他の基準に基づいて採用される。いくつかのセルサイズはこのプロセスの間に変化され使用のヒストグラムを変化するので、このステップは、最終のタイミングクロージャの後に再び適用され得る。   14A and 14B illustrate the use of two different templates for the same logic function. Note that the cells fit differently for the 9-track template (FIG. 14A) and the 7-track template (FIG. 14B). It can be noticed that in this particular case, seven track templates result in a smaller area. This state changes from cell to cell, and weighted decisions are taken based on the number of cell instances or other criteria. This step can be reapplied after the final timing closure, as some cell sizes will change during this process and change the usage histogram.

本発明のこの説明は、例示および説明の目的のために提示された。それは、網羅的または説明された詳細な形式に本発明を限定することを意図したものではなく、多くの修正およびバリエーションが、上記の教示の範囲において可能である。実施形態は、本発明の原理およびその実質的な用途を最もよく説明するために選択され、かつ説明された。この説明は、他の当業者が、様々な実施形態においておよび特定の使用に対して適合するような様々な修正とともに本発明を最もよく利用しかつ実現できるようにする。本発明の範囲は、以下の特許請求の範囲によって定義される。   This description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the detailed form described, but many modifications and variations are possible within the scope of the above teachings. The embodiments have been chosen and described in order to best explain the principles of the invention and its substantial application. This description will enable others skilled in the art to best utilize and implement the present invention in various embodiments and with various modifications that will be suitable for a particular use. The scope of the invention is defined by the following claims.

Claims (25)

回路設計における使用のためのライブラリの最適化のための方法であって、
初期回路ネットリストを提供するステップと、
1つまたはより多くの既存セルの組を提供するステップと、
1つまたはより多くの追加的に許容可能なセルの組を提供するステップと、
最初から存在するセルの組、および、許容可能セルの追加的な組を考慮して実行コストを低減するセルを検索するために、前記初期回路ネットリストを解析するステップと、
潜在的に設計コストを低減する、前記既存セルのサブセットおよび前記許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力するステップとを備える、方法。
A method for optimizing a library for use in circuit design comprising:
Providing an initial circuit netlist; and
Providing one or more sets of existing cells;
Providing one or more additional acceptable sets of cells;
Analyzing the initial circuit netlist to find a set of existing cells and an additional set of acceptable cells to search for cells that reduce execution costs;
Outputting one or more new cell library specifications and descriptions, including the subset of existing cells and the subset of acceptable cells, potentially reducing design costs.
前記初期回路ネットリストは、複数のセルまたはブール方程式の表現の少なくとも1つによって提供される、請求項1に記載の方法。   The method of claim 1, wherein the initial circuit netlist is provided by at least one of a plurality of cells or a representation of a Boolean equation. 前記初期回路ネットリストを解析するステップは、
前記最初から存在するセルの組および前記許容可能セルの追加的な組を考慮しながら、前記回路を再マッピングするステップを備える、請求項1に記載の方法。
Analyzing the initial circuit netlist comprises:
The method of claim 1, comprising remapping the circuit while taking into account the initially existing set of cells and the additional set of acceptable cells.
新しい再マッピングされたネットリストを出力するステップを備える、請求項3に記載の方法。   The method of claim 3, comprising outputting a new remapped netlist. 前記許容可能セルの追加的な組は、
追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含む、請求項4に記載の方法。
The additional set of acceptable cells is:
5. The method of claim 4, comprising at least one explicit set that lists additional available functions or cells.
前記許容可能セルの追加的な組は、
追加的に利用可能なセルを列挙する明示的な組を含み、
追加的な許容可能な論理関数の各々は異なる実行例を有し得る、請求項4に記載の方法。
The additional set of acceptable cells is:
Including an explicit set of additional enumerated cells,
The method of claim 4, wherein each additional acceptable logic function may have a different implementation.
前記許容可能セルの追加的な組は、
いくつかのパラメータを通して非明示的に定義された機能またはセルの組を含む、請求項4に記載の方法。
The additional set of acceptable cells is:
5. The method of claim 4, comprising an implicitly defined function or set of cells through a number of parameters.
前記許容可能セルの追加的な組は、
許容される最大の入力数によって非明示的に定義された機能またはセルの組を含む、請求項4に記載の方法。
The additional set of acceptable cells is:
5. The method of claim 4, comprising a set of functions or cells that are implicitly defined by the maximum number of inputs allowed.
前記許容可能セルの追加的な組は、
直列または並列結合された、直列および並列のスイッチの最大数によって非明示的に定義された機能またはセルの組を含む、請求項4に記載の方法。
The additional set of acceptable cells is:
5. The method of claim 4, comprising a set of functions or cells implicitly defined by a maximum number of series and parallel switches coupled in series or in parallel.
前記許容可能セルの追加的な組は、
前記関数のバイナリデシジョンダイアグラム(BDD)実行例における直列のアークの最大数によって非明示的に定義されたセルの組を含む、請求項4に記載の方法。
The additional set of acceptable cells is:
5. The method of claim 4, comprising a set of cells implicitly defined by a maximum number of serial arcs in a binary decision diagram (BDD) implementation of the function.
前記許容可能セルの追加的な組は、
一般的なトランジスタ実行例における直列のスイッチの最大許容数によって非明示的に定義される機能またはセルの組を含む、請求項4に記載の方法。
The additional set of acceptable cells is:
5. The method of claim 4, comprising a set of functions or cells that are implicitly defined by the maximum allowable number of series switches in a typical transistor implementation.
前記許容可能な関数の追加的な組は、組合せ論理関数を実行するための両方のトランジスタ計画における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義される、請求項4に記載の方法。   The additional set of acceptable functions is implicitly defined by the maximum allowable number of switches within the exact lower limit for the number of switches in series in both transistor schemes to implement the combinational logic function The method according to claim 4. セルライブラリテンプレートを最適化するための方法であって、
目標技術情報を受けるステップと、
前記ライブラリに含まれるべき関数またはセルの組を受けるステップと、
各関数のために生成されるべき駆動強度のセットを受けるステップと、
関数および駆動強度の各々の対についてのトランジスタトポロジの組を受けまたは導き出すステップと、
異なる代替的なセルテンプレートについてのセル特性の一次推定を出力するステップと、
要求されたセルの集合のために推定された前記特性の関数として、前記ライブラリのための最終テンプレートを選択するステップとを備える、方法。
A method for optimizing a cell library template,
Receiving target technical information;
Receiving a set of functions or cells to be included in the library;
Receiving a set of drive strengths to be generated for each function;
Receiving or deriving a set of transistor topologies for each pair of function and drive strength;
Outputting a primary estimate of cell characteristics for different alternative cell templates;
Selecting a final template for the library as a function of the estimated properties for the requested set of cells.
配置およびルーティング後の回路ネットリストに関連するセルライブラリを最適化するための方法であって、
配置されかつルーティングされた回路ネットリストを受けるステップと、
前記関連したセルライブラリを受けるステップと、
前記ライブラリから不使用の関数を削除するステップと、
使用関数についての不使用の駆動強度を任意的に削除するステップと、
使用セルの各々について、さらなるサイズ調整を可能とするために、隣接する駆動強度の組を追加するステップと、
前記ライブラリテンプレートを新しいセルの混合に任意的に適合させるステップと、
導入された修正を考慮して新しいライブラリ仕様を出力するステップとを備える、方法。
A method for optimizing a cell library associated with a circuit netlist after placement and routing, comprising:
Receiving a placed and routed circuit netlist; and
Receiving the associated cell library;
Removing unused functions from the library;
Optionally removing unused drive strength for the used function;
Adding an adjacent set of drive strengths to allow further size adjustment for each of the used cells;
Optionally adapting the library template to a mix of new cells;
Outputting a new library specification taking into account the introduced modifications.
前記ライブラリテンプレートを新しいセルの混合に任意的に適合させるステップは、
目標技術情報を受けるステップと、
前記ライブラリに含まれるべき関数またはセルの組を受けるステップと、
各関数のために生成されるべき駆動強度のセットを受けるステップと、
関数および駆動強度の各々の対についてのトランジスタトポロジの組を受けまたは導き出すステップと、
異なる代替的なセルテンプレートについてのセル特性の一次推定を出力するステップと、
要求されたセルの集合のために推定された前記特性の関数として、前記ライブラリのための最終テンプレートを選択するステップとを備える、請求項14に記載の方法。
Optionally adapting the library template to a new cell mix,
Receiving target technical information;
Receiving a set of functions or cells to be included in the library;
Receiving a set of drive strengths to be generated for each function;
Receiving or deriving a set of transistor topologies for each pair of function and drive strength;
Outputting a primary estimate of cell characteristics for different alternative cell templates;
15. The method of claim 14, comprising selecting a final template for the library as a function of the estimated property for a requested set of cells.
回路設計における使用のために、コンピュータ読込可能媒体を用いて統合されるライブラリを最適化するためのコンピュータプログラム製品であって、
初期回路ネットリストを提供するためのコンピュータ読込可能コードと、
1つまたはより多くの組の既存セルを提供するためのコンピュータ読込可能コードと、
1つまたはより多くの組の追加的な許容可能セルの組を提供するためのコンピュータ読込可能コードと、
最初から存在するセルの組、および、許容可能セルの追加的な組を考慮して実行コストを低減するセルを検索するように、前記初期回路ネットリストを解析するためのコンピュータ読込可能コードと、
潜在的に設計コストを低減する、前記既存セルのサブセットおよび前記許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力するためのコンピュータ読込可能コードとを備える、コンピュータプログラム製品。
A computer program product for optimizing a library integrated with a computer readable medium for use in circuit design comprising:
Computer readable code for providing an initial circuit netlist; and
Computer readable code for providing one or more sets of existing cells;
Computer readable code for providing one or more sets of additional acceptable cell sets;
Computer readable code for parsing the initial circuit netlist to search for a set of existing cells and an additional set of acceptable cells to search for cells that reduce execution costs;
Computer readable code for outputting one or more new cell library specifications and descriptions, including the subset of existing cells and the subset of acceptable cells, potentially reducing design costs Program product.
前記最初から存在するセルの組および前記許容可能セルの追加的な組を考慮しながら、前記回路を再マッピングするためのコンピュータ読込可能コードを備える、請求項16に記載のコンピュータプログラム製品。   The computer program product of claim 16, comprising computer readable code for remapping the circuit while taking into account the originally existing set of cells and the additional set of acceptable cells. 新しい再マッピングされたネットリストを出力するためのコンピュータ読込可能コードを備える、請求項17に記載のコンピュータプログラム製品。   The computer program product of claim 17, comprising computer readable code for outputting a new remapped netlist. 前記許容可能セルの追加的な組は、
追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含む、請求項18に記載のコンピュータプログラム製品。
The additional set of acceptable cells is:
The computer program product of claim 18, comprising at least one explicit set enumerating additional available functions or cells.
前記許容可能セルの追加的な組は、
追加的に利用可能なセルを列挙する明示的な組を含み、
追加的に許容可能な論理関数の各々は異なる実行例を有し得る、請求項18に記載のコンピュータプログラム製品。
The additional set of acceptable cells is:
Including an explicit set of additional enumerated cells,
The computer program product of claim 18, wherein each additionally acceptable logic function may have a different implementation.
方法であって、
第1の集積回路設計ネットリストを提供するステップと、
コンピュータ読込可能媒体上に記憶された、セルの第1のライブラリにおける1つまたはより多くのセルに対応するように、前記第1の集積回路設計ネットリスト内の要素のグルーピングをマッピングするステップと、
第1のセルへの少なくとも1つの要素のグルーピングを、前記マッピングから除去するステップとを備え、
前記マッピングは、第1のセルマッピングを含んでおらず、
前記方法は、
前記マッピングにおいて識別されたセルのみを含む第2のライブラリを生成するステップをさらに備え、
前記第2のライブラリは、第1のセルマッピングを含まず、かつコンピュータ読込可能媒体上に記憶される、方法。
A method,
Providing a first integrated circuit design netlist;
Mapping a grouping of elements in the first integrated circuit design netlist to correspond to one or more cells in a first library of cells stored on a computer readable medium;
Removing a grouping of at least one element into a first cell from the mapping;
The mapping does not include the first cell mapping,
The method
Generating a second library that includes only the cells identified in the mapping;
The method wherein the second library does not include a first cell mapping and is stored on a computer readable medium.
前記第1の集積回路設計ネットリストを、前記第2のライブラリで使用するが前記第1のライブラリでは使用しない第2の集積回路設計ネットリストへマッピングするステップと、
前記第2の集積回路設計ネットリストを、コンピュータ読込可能媒体上に記憶するステップとを備える、請求項21に記載の方法。
Mapping the first integrated circuit design netlist to a second integrated circuit design netlist that is used in the second library but not in the first library;
22. The method of claim 21, comprising storing the second integrated circuit design netlist on a computer readable medium.
前記第2のライブラリを生成する前に、第2のセルを前記第1のライブラリでなく前記第2のライブラリに追加するステップを備え、
前記第2の集積回路設計ネットリストは、前記第2のセルへの少なくとも1つの参照を含む、請求項23に記載の方法。
Adding a second cell to the second library instead of the first library before generating the second library;
24. The method of claim 23, wherein the second integrated circuit design netlist includes at least one reference to the second cell.
前記第2のライブラリを生成した後、前記第2のライブラリの少なくとも第2のセルを識別するとともに除去するステップと、
前記第2のセルではないが、前記第2のライブラリのセルを含む第3のライブラリを生成するステップと、
前記第1の集積回路設計ネットリストを、第1または第2のライブラリではないが前記第3のライブラリへの参照を有する第2の集積回路設計ネットリストへマッピングするステップと、
前記第2の集積回路設計ネットリストを、コンピュータ読込可能媒体上に記憶するステップとを備える、請求項21に記載の方法。
Identifying and removing at least a second cell of the second library after generating the second library;
Generating a third library that is not the second cell but includes a cell of the second library;
Mapping the first integrated circuit design netlist to a second integrated circuit design netlist that is not a first or second library but has a reference to the third library;
22. The method of claim 21, comprising storing the second integrated circuit design netlist on a computer readable medium.
前記第2のライブラリを生成するステップは、
前記第2のライブラリのためのセルを得るために、論理合成ではなく物理合成を実行するステップを含む、請求項21に記載の方法。
Generating the second library comprises:
The method of claim 21, comprising performing physical synthesis instead of logical synthesis to obtain cells for the second library.
JP2010546000A 2008-02-05 2009-02-05 Integrated circuit design and library optimization Expired - Fee Related JP5127935B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2622208P 2008-02-05 2008-02-05
US61/026,222 2008-02-05
PCT/US2009/033243 WO2009100237A2 (en) 2008-02-05 2009-02-05 Optimization of integrated circuit design and library

Publications (3)

Publication Number Publication Date
JP2011525261A true JP2011525261A (en) 2011-09-15
JP2011525261A5 JP2011525261A5 (en) 2012-03-22
JP5127935B2 JP5127935B2 (en) 2013-01-23

Family

ID=40952683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010546000A Expired - Fee Related JP5127935B2 (en) 2008-02-05 2009-02-05 Integrated circuit design and library optimization

Country Status (4)

Country Link
EP (1) EP2257900A4 (en)
JP (1) JP5127935B2 (en)
CN (1) CN101990671A (en)
WO (1) WO2009100237A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101904417B1 (en) * 2012-03-30 2018-10-08 삼성전자주식회사 Semiconductor integrated circuit and method of designing the same

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279899B (en) * 2011-04-01 2013-05-01 无锡中科微电子工业技术研究院有限责任公司 Method for optimizing simplified standard unit library
CN102663175B (en) * 2012-03-27 2013-11-06 苏州芯禾电子科技有限公司 System and method for constructing three-dimensional model of radio-frequency passive device
US10650110B2 (en) 2015-07-08 2020-05-12 Hewlett Packard Enterprise Development Lp Photonic circuit design systems
WO2017151681A1 (en) * 2016-02-29 2017-09-08 Synopsys, Inc. Creating and reusing customizable structured interconnects
US10572615B2 (en) * 2017-04-28 2020-02-25 Synopsys, Inc. Placement and routing of cells using cell-level layout-dependent stress effects
CN107610569A (en) * 2017-10-23 2018-01-19 宜宾学院 The determination method of analogous circuit experiment equipment and its required electronic component
CN108846160B (en) * 2018-05-03 2023-03-10 上海华虹宏力半导体制造有限公司 Standard cell library circuit design method
TWI761750B (en) * 2020-01-08 2022-04-21 國立雲林科技大學 Automatic performance analysis system and method thereof for analog circuits

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120372A (en) * 1991-10-25 1993-05-18 Nec Corp Designing system for gate array
JP2001265842A (en) * 2000-03-21 2001-09-28 Katsumi Hashimoto Composite gate synthesis device, recording medium with composite gate synthesis program stored thereon, and semiconductor device
JP2003036280A (en) * 2001-07-23 2003-02-07 Hitachi Ltd Design data library, design method and manufacturing method of semiconductor integrated circuit
US6539536B1 (en) * 2000-02-02 2003-03-25 Synopsys, Inc. Electronic design automation system and methods utilizing groups of multiple cells having loop-back connections for modeling port electrical characteristics
US6735742B2 (en) * 2000-05-24 2004-05-11 Infineon Technologies Ag Method for optimizing a cell layout using parameterizable cells and cell configuration data
US20080244474A1 (en) * 2007-04-02 2008-10-02 Lsi Logic Corporation Cell library management for power optimization

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956257A (en) * 1993-03-31 1999-09-21 Vlsi Technology, Inc. Automated optimization of hierarchical netlists
US6286128B1 (en) * 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
US6327552B2 (en) * 1999-12-28 2001-12-04 Intel Corporation Method and system for determining optimal delay allocation to datapath blocks based on area-delay and power-delay curves

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120372A (en) * 1991-10-25 1993-05-18 Nec Corp Designing system for gate array
US6539536B1 (en) * 2000-02-02 2003-03-25 Synopsys, Inc. Electronic design automation system and methods utilizing groups of multiple cells having loop-back connections for modeling port electrical characteristics
JP2001265842A (en) * 2000-03-21 2001-09-28 Katsumi Hashimoto Composite gate synthesis device, recording medium with composite gate synthesis program stored thereon, and semiconductor device
US6735742B2 (en) * 2000-05-24 2004-05-11 Infineon Technologies Ag Method for optimizing a cell layout using parameterizable cells and cell configuration data
JP2003036280A (en) * 2001-07-23 2003-02-07 Hitachi Ltd Design data library, design method and manufacturing method of semiconductor integrated circuit
US20080244474A1 (en) * 2007-04-02 2008-10-02 Lsi Logic Corporation Cell library management for power optimization

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101904417B1 (en) * 2012-03-30 2018-10-08 삼성전자주식회사 Semiconductor integrated circuit and method of designing the same

Also Published As

Publication number Publication date
JP5127935B2 (en) 2013-01-23
WO2009100237A3 (en) 2009-11-05
EP2257900A4 (en) 2012-10-17
EP2257900A2 (en) 2010-12-08
WO2009100237A2 (en) 2009-08-13
CN101990671A (en) 2011-03-23

Similar Documents

Publication Publication Date Title
US8484601B2 (en) Optimizing cell libraries for integrated circuit design
JP5127935B2 (en) Integrated circuit design and library optimization
US6080201A (en) Integrated placement and synthesis for timing closure of microprocessors
US8141016B2 (en) Integrated design for manufacturing for 1×N VLSI design
US20020194575A1 (en) Hierarchical layout method for integrated circuits
US8799837B2 (en) Optimizing a netlist circuit representation by leveraging binary decision diagrams to perform rewriting
Han et al. A global-local optimization framework for simultaneous multi-mode multi-corner clock skew variation reduction
US8713506B2 (en) System and method for employing signoff-quality timing analysis information concurrently in multiple scenarios to reduce dynamic power in an electronic circuit and an apparatus incorporating the same
US11010511B2 (en) Scalable boolean methods in a modern synthesis flow
US9443050B2 (en) Low-voltage swing circuit modifications
KR20080072028A (en) Method and program product for protecting information in eda tool design views
Kravets et al. Implicit enumeration of structural changes in circuit optimization
Witschen et al. CIRCA: Towards a modular and extensible framework for approximate circuit generation
Gubbi et al. Survey of machine learning for electronic design automation
US20220300688A1 (en) Fast synthesis of logical circuit design with predictive timing
Papa et al. RUMBLE: an incremental, timing-driven, physical-synthesis optimization algorithm
US8015532B2 (en) Optimal timing-driven cloning under linear delay model
US7284212B2 (en) Minimizing computational complexity in cell-level noise characterization
Modi et al. ECO-map: Technology remapping for post-mask ECO using simulated annealing
US9177090B1 (en) In-hierarchy circuit analysis and modification for circuit instances
Lienig et al. Methodologies for Physical Design: Models, Styles, Tasks, and Flows
Zhou et al. How much can logic perturbation help from netlist to final routing for FPGAs
US20220318480A1 (en) Pruning redundant buffering solutions using fast timing models
CN107918694B (en) Method for reducing delay on an integrated circuit
Papa et al. Multi-Objective Optimization in Physical Synthesis of Integrated Circuits

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120202

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120202

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20120202

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20120306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121009

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121030

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees