JP5127935B2 - 集積回路設計およびライブラリの最適化 - Google Patents

集積回路設計およびライブラリの最適化 Download PDF

Info

Publication number
JP5127935B2
JP5127935B2 JP2010546000A JP2010546000A JP5127935B2 JP 5127935 B2 JP5127935 B2 JP 5127935B2 JP 2010546000 A JP2010546000 A JP 2010546000A JP 2010546000 A JP2010546000 A JP 2010546000A JP 5127935 B2 JP5127935 B2 JP 5127935B2
Authority
JP
Japan
Prior art keywords
cells
library
cell
acceptable
additional
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.)
Expired - Fee Related
Application number
JP2010546000A
Other languages
English (en)
Other versions
JP2011525261A (ja
JP2011525261A5 (ja
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/ja
Publication of JP2011525261A5 publication Critical patent/JP2011525261A5/ja
Application granted granted Critical
Publication of JP5127935B2 publication Critical patent/JP5127935B2/ja
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

関連する出願の相互参照
本願は、2008年2月5日に出願された米国仮特許出願61/026,222、および2008年6月6日に出願された米国仮特許出願61/059,742、61/059,744、61/059,745、61/059,746の正規出願であり、本願において引用される他の全ての参照とともに、参照により引用される。
2007年2月28日に出願され、2007年9月13日に米国特許出願公報2007/0214439として公開された米国特許出願11/711,828、および2006年3月1日に出願された米国仮特許出願60/777,561は、参照により引用される。
発明の背景
本発明は、電子設計自動化の分野に関し、より特定的には、セルライブラリに基づいた設計を有するデジタル回路の最適化に関する。
集積回路は情報化時代の重要な基本要素であり、経済、銀行、法律、軍事、高度技術、運輸、電信、石油、医療、薬品、食品、農業、教育、およびその他多くに影響を与える、情報化時代にとって重要な意味を持つものである。DSP、増幅器、DRAM、SRAM,EPROM、EEPROM、フラッシュメモリ、マイクロプロセッサ、ASIC,およびプログラマブル論理のような集積回路は、コンピュータ、ネットワーク、遠隔通信、および家電製品などのような多くの用途において用いられる。
消費者は、彼らの電子製品において、より大きな性能を要求し続ける。たとえば、より高速なコンピュータは、マルチメディア用途または開発のためのより高速なグラフィックを提供するであろう。より高速なインターネットウェブサーバは、オンライでの株式取引、書籍販売、オークション、および食料品購入などの例を含む、より大きな電子商取引をもたらすであろう。より高性能な集積回路は、それらが組み込まれた製品の性能を改善するであろう。
現代の大型集積回路は、ゲートおよびトランジスタを含む数百万もの機器を有し、非常に複雑である。プロセス技術が改善されるにつれて、ますます多くの機器が単一の集積回路上に作られ、それによって集積回路は、時間とともにより複雑になり続けるであろう。より複雑でかつより高性能な集積回路を製造する要求に合致させるために、ソフトウェアツールが用いられる。これらのツールは、コンピュータ支援設計(Computer Aided Design:CAD)、コンピュータ支援エンジニアリング(Computer Aided Engineering:CAE)、または電子設計自動化(Electronic Design Automation:EDA)と一般に称される領域のものである。集積回路におけるより高集積およびより高性能のための要望に応えるために、これらの電子自動化ツールを改善する一定の要求がある。
したがって、電子設計自動化のための改善された技術が必要である。
発明の簡単な要約
方法は、設計を実行するための最良の組のセルを選択するような方法で、設計およびライブラリ(またはライブラリの組)をともに最適化する。方法は、設計コストを低減し、かつ設計制限を遵守しながら、新しいセルの数を制限するという考え方を考慮する。方法は、最適に近い最小の組のセルを選択し、設計を最適化する。これは、それを実行するために用いられるセルベースの設計およびセルライブラリの同時最適化を含む。方法は、オリジナルのライブラリとは異なるトランジスタトポロジ、異なるサイズ、異なる論理機能、および/または異なるセルテンプレートを有する可能性のある仮想セルとして記述される新しいセルの組を考慮する。
マッピングプロセスは、入力として、まだ実行されていないが推定コストが利用可能できる可能性のあるセルを記述する特別な方法を採用し、これらのセルは本用途においては仮想セルと称される。設計は、その後実際のセルおよび仮想セルがマッピングされ、初期のセルの最適な組を決定する。再マッピングされた設計は、その後、徐々に再マッピングされて、実行コストを大きくは悪化させずかつ設計制限も遵守しながら、使用されるセルの数を減少する。全体のプロセスは、何回か繰り返され得る。理想的なセルの組が決定された後に、各セルについてのいくつかの特別なサイズが、タイミングクロージャ(timing closure)を保証するために挿入され得る。最終のセルの組の行高さ(row height)は、最終のライブラリについての選択されたセルにもっとよく適するように最適化され得る。
1つの実行例においては、回路設計およびライブラリの同時最適化のための方法は、複数のセルまたはブール方程式、あるいはRTLコードのような他の方法で表現され得る初期回路ネットリストを提供すること、(空であり得る)最初から存在するセルの組を提供すること、仮想セルをおそらく含んでいる許容可能な機能/セルの追加的な組を供給すること、実行コストを最小化するために、最初から存在するセルの組と許容可能な機能またはセルの追加的な組とを考慮して回路をマッピングすること、新しく再マッピングしたネットリストを生成すること、そして、再マッピングされたネットリスト内で用いられる先在のセルおよび許容可能な機能から成る新しいセルライブラリ仕様および記述を生成することを含む。
許容可能な機能またはセルの追加的な組は、おそらく仮想セルを含む、機能またはセルのリストを通して明示的に定義され得る。追加的に許容可能な論理機能の各々は、異なるトランジスタトポロジ、トランジスタの異なるサイズ、および異なる駆動強度を含む、異なる実行例を含み得る。許容可能な機能またはセルの追加的な組は、いくつかのパラメータを通して非明示的に定義され得る。許容可能な機能の追加的な組は、許可される入力の最大数によって非明示的に定義され得る。許容可能な機能の追加的な組は、直列または並列接続の、直列および並列スイッチの最大数によって非明示的に定義され得る。
許容可能な機能の追加的な組は、関数のBDD実行例における直列のアーク(arc)の最大数によって非明示的に定義され得る。許容可能な機能の追加的な組は、一般的なトランジスタ実行例における直列のスイッチの最大許容数によって非明示的に定義され得る。許容可能な機能の追加的な組は、組合せ論理機能を実行するための両方のトランジスタ平面における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義される
1つの実行例においては、セルライブラリテンプレートを最適化するための方法は、目標技術情報を受けること、そのライブラリに含まれるべき機能またはセルの組を受けること、各関数のために生成されるべき駆動強度の組を受けること、関数および駆動強度の各対のためのトランジスタトポロジの組を受けまたは導き出すこと、異なる代替的なセルテンプレートのためのセル特性の一次推定を出力すること、および要求されたセルの集合のために推定された特性の関数として、ライブラリのための最終テンプレートを選択することを含む。
1つの実行例においては、配置およびルーティング後の回路ネットリストに関連するセルライブラリを最適化するための方法は、配置されかつルーティングされた回路ネットリストを受けること、関連したセルライブラリを受けること、ライブラリから不使用のセルを削除する(あるいは、無視するまたは使用を不許可とする)こと、使用される機能についての不使用の駆動強度を任意的に削除する(あるいは、無視するまたは使用を不許可とする)こと、使用されるセルの各々について、さらなるサイズ調整を可能とするために隣接する駆動強度の組を追加すること、本特許において説明される制限の1つまたは組合せに従って、ライブラリテンプレートを新しいセルの混合に任意的に適合させること、および導入された修正を考慮して新しいライブラリ仕様を出力することを含む。
1つの実行例においては、回路設計における使用のためのライブラリの最適化のための方法は、初期回路ネットリストを提供すること、1つまたはより多くの組の既存セルを提供すること、1つまたはより多くの追加的に許容可能なセルの組を提供すること、初めから存在しているセルの組、および、追加的に許容可能セルの組を考慮して実行コストを低減するセルを検索するために初期回路ネットリストを解析すること、および、潜在的に設計コストを低減する、先在セルのサブセットおよび許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力することを含む。
初期回路ネットリストは、複数のセルの表現またはブール方程式の少なくと1つによって提供され得る。初期回路ネットリストを解析することは、既存セルの組および許容可能セルの追加的な組を考慮しながら回路を再マッピングすることを含む。方法は、新しい再マッピングされたネットリストを出力することを含み得る。
許容可能セルの追加的な組は、追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含み得る。許容可能セルの追加的な組は、追加的に利用可能なセルを列挙する明示的な組を含み、追加的に許容可能な論理関数の各々は異なる実行例を有し得る。許容可能セルの追加的な組は、いくつかのパラメータを通して非明示的に定義された機能またはセルの組を含み得る。
許容可能セルの追加的な組は、許容される最大の入力数によって非明示的に定義された機能またはセルの組を含み得る。許容可能セルの追加的な組は、直列または並列結合された、直列および並列のスイッチの最大数によって非明示的に定義された機能またはセルの組を含み得る。許容可能セルの追加的な組は、関数のBDD実行例における直列のアークの最大数によって非明示的に定義されたセルの組を含み得る。
許容可能セルの追加的な組は、一般的なトランジスタ実行例における直列のスイッチの最大許容数によって非明示的に定義される機能またはセルの組を含み得る。許容可能な機能の追加的な組は、組合せ論理関数を実行するための両方のトランジスタ計画における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義され得る。
1つの実行例においては、セルライブラリテンプレートを最適化するための方法は、目標技術情報を受けること、そのライブラリに含まれるべき関数またはセルの組を受けること、各関数のために生成されるべき駆動強度の組を受けること、関数および駆動強度の各対のためのトランジスタトポロジの組を受けまたは導き出すこと、異なる代替的なセルテンプレートのためのセル特性の一次推定を出力すること、および要求されたセルの集合のために推定された特性の関数として、ライブラリのための最終テンプレートを選択することを含む。
1つの実行例においては、配置およびルーティング後の回路ネットリストに関連するセルライブラリを最適化するための方法は、配置されかつルーティングされた回路ネットリストを受けること、関連したセルライブラリを受けること、ライブラリから不使用の関数を削除すること、使用される関数についての不使用の駆動強度を任意的に削除すること、使用されるセルの各々について、さらなるサイズ調整を可能とするために隣接する駆動強度の組を追加すること、ライブラリテンプレートを新しいセルの混合に任意的に適合させること、および導入された修正を考慮して新しいライブラリ仕様を出力することを含む。
ライブラリテンプレートを新しいセルの混合に任意的に適合させることは、目標技術情報を受けること、ライブラリに含まれるべき関数またはセルの組を受けること、各関数のために生成されるべき駆動強度の組を受けること、関数および駆動強度の各対のためのトランジスタトポロジの組を受けまたは導き出すこと、異なる代替的なセルテンプレートのためのセル特性の一次推定を出力すること、要求されたセルの集合のために推定された特性の関数として、ライブラリのための最終テンプレートを選択することを含む。
1つの実行例においては、回路設計における使用のために、コンピュータ読込可能媒体を用いて統合されるライブラリを最適化するためのコンピュータプログラム製品は、初期回路ネットリストを提供するためのコンピュータ読込可能コードと、1つまたはより多くの組の既存セルを提供するためのコンピュータ読込可能コードと、1つまたはより多くの組の追加的に許容可能なセルの組を提供するためのコンピュータ読込可能コードと、最初から存在するセルの組、および、許容可能セルの追加的な組を考慮して実行コストを低減するセルを検索するように、初期回路ネットリストを解析するためのコンピュータ読込可能コードと、潜在的に設計コストを低減する、既存セルのサブセットおよび許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力するためのコンピュータ読込可能コードとを含む。
コンピュータプログラム製品は、最初から存在するセルの組および記許容可能セルの追加的な組を考慮しながら回路を再マッピングするための、コンピュータ読込可能コードを含み得る。新しい再マッピングされたネットリストを出力するためのコンピュータ読込可能コードを含み得る。
許容可能セルの追加的な組は、追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含み得る。許容可能セルの追加的な組は、追加的に利用可能なセルを列挙する明示的な組を含み、追加的な許容可能な論理関数の各々は異なる実行例を有し得る。
1つの実施例においては、方法は、第1の集積回路設計ネットリストを提供すること、コンピュータ読込可能媒体上に記憶された、セルの第1のライブラリにおける1つまたはより多くのセルに対応するように、前記第1の集積回路設計ネットリスト内の要素のグルーピングをマッピングすること、第1のセルへの要素の少なくとも1つのグルーピングを、そのマッピングから除去ることを含み、そのマッピングは第1のセルマッピングを含んでおらず、そして、マッピングにおいて識別されたセルのみを含む第2のライブラリを生成することをさらに含み、第2のライブラリは、第1のセルマッピングを含まず、かつコンピュータ読込可能媒体上に記憶される。
方法は、さらに、第1の集積回路設計ネットリストを、第2のライブラリで使用するが第1のライブラリでは使用しない第2の集積回路設計ネットリストへマッピングすること、および第2の集積回路設計ネットリストをコンピュータ読込可能媒体上に記憶することを含む。方法は、第2のライブラリを生成する前に、第2のセルを第1のライブラリでなく第2のライブラリに追加することをさらに含み、第2の集積回路設計ネットリストは第2のセルへの少なくとも1つの参照を含む。
方法は、第2のライブラリを生成した後、第2のライブラリの少なくとも第2のセルを識別するとともに除去すること、第2のセルではないが第2のライブラリのセルを含む第3のライブラリを生成すること、第1の集積回路設計ネットリストを第1または第2のライブラリではないが第3のライブラリへの参照を有する第2の集積回路設計ネットリストへマッピングすること、第2の集積回路設計ネットリストをコンピュータ読込可能媒体上に記憶することを含み得る。第2のライブラリを生成することは、第2のライブラリのためのセルを得るために、論理合成ではなく物理合成を実行することを含み得る。
本発明の他の目的、特徴、および利点は、以下の詳細な説明および添付の図面を考慮して、明らかになるであろう。その中で、同じ参照符号は、図を通して同じ特徴を表す。
電子設計自動化のための本発明のシステムを示す図である。 本発明のソフトウェアを実行するために用いられるコンピュータシステムの簡略化されたシステムブロック図である。 ライブラリを設計空間の一部として考えたときの、性能に対するコストトレードオフを示すグラフである。 デジタル設計およびライブラリの同時最適化のための、入出力データのシステムフローを示す図である。 プロセスの反復の可能性を示す、デジタル設計およびライブラリの同時最適化のための入出力データのシステムフローを示す図である。 デジタル設計およびライブラリの同時最適化のための、1つの可能な実行例についてのフローを示す図である。 プロセスの反復の可能性を示す、デジタル設計およびライブラリの同時最適化のための、1つの可能な実行例についてのフローを示す図である。 特定の設計のために合成される必要のある効果的な駆動強度を選択するための手段として、マッピングならびに配置およびルーティングの実行のプロセスを示す図である。 配置およびルーティング後のライブラリ仕様を最適化するプロセスを示す図である。 最終ライブラリの生成を示す図である。 11個のセルインスタンスから成る回路を示す図である。 4つのセルインスタンスから成る等価回路を示す図である。 5つのセルインスタンスから成る等価回路を示す図である。 同じセルの9トラックおよび7トラックバージョンの集積回路レイアウトを示す図である。 同じセルの9トラックおよび7トラックバージョンの集積回路レイアウトを示す図である。
発明の詳細な説明
図1は、本発明のシステムを示す。1つの実施形態においては、本発明は、図1に示されるような、コンピュータワークステーション上で実行されるソフトウェアである。図1は、モニタ3と、スクリーン5と、キャビネット7と、キーボード9と、マウス11を含むコンピュータシステム1を示す。マウス11は、マウスボタン13のような、1つまたはより多くのボタンを有し得る。キャビネット7は、そのいくつかは示されないが、(マルチプロセッサおよびグリッディングの可能性を含む)プロセッサ、メモリ、ダイ要領記憶装置17などの、よく知られたコンピュータ要素を収納する。
大容量記憶装置17は、大容量ディスクドライブ、フロッピディスク、磁気ディスク、光ディスク、磁気光ディスク、固定ディスク、ハードディスク、CD−ROM、記録可能CD、DVD、記録可能DVD(たとえば、DVD−R、DVD+R、DVD−RW、DVD+RW、HD−DVDまたはブルーレイディスク)、フラッシュおよび他の不揮発性半導体記憶装置(たとえば、USBフラッシュドライブ)、バッテリバックアップされた揮発性メモリ、テープ記録装置、リーダ、および他の類似媒体、ならびにこれらの組合せを含み得る。
本発明の、コンピュータで実現された、またはコンピュータで実行されたバージョンは、コンピュータ読取可能媒体を用いて具現化され、コンピュータ読取可能媒体上に記憶され、またはコンピュータ読取可能媒体に関連する。コンピュータ読取可能媒体は、1つまたはより多くのプロセッサに実行のための指示を提供することに関与するどのような媒体をも含み得る。このような媒体は、限定されないが、不揮発性媒体、揮発性媒体または伝達媒体を含む、多くの形態を採用し得る。不揮発性媒体は、たとえば、フラッシュメモリ、あるいは光または磁気ディスクを含む。揮発性媒体は、キャッシュメモリまたはRAMのような、スタティックメモリまたはダイナミックメモリを含む。伝達媒体は、同軸ケーブル、銅線、光ファイバ線、およびバス内に配列されたワイヤを含む。伝達媒体は、さらに、電波および赤外線データ通信中に生成されるもののような、電磁波、高周波、音波、または光波の形態を採用し得る。
たとえば、本発明のソフトウェアの、バイナリで機械実行可能なバージョンは、RAMまたはキャッシュメモリ内、あるいは大容量記憶装置17上に記憶され、または具備され得る。本発明のソフトウェアのソースコードもまた、大容量記憶装置17(たとえば、ハードディスク、磁気ディスク、テープまたはCD−ROM)上に記憶され、または具備され得る。さらなる例として、本発明のコードは、ワイヤ、電波、またはインターネットのようなネットワークを介して伝達され得る。
図2は、本発明のソフトウェアを実行するために用いられるコンピュータシステム1のシステムブロック図を示す。図1のように、コンピュータシステム1は、モニタ3と、キーボード9と、大容量記憶装置17とを含む。コンピュータシステム1は、セントラルプロセッサ202、システムメモリ204、入出力(I/O)コントローラ206、ディスプレイアダプタ208、シリアルまたはユニバーサルシリアルバス(USB)ポート212、ネットワークインターフェース218、およびスピーカ220のようなサブシステムを、さらに含む。本発明は、追加のまたはより少ないサブシステムを伴うコンピュータシステムでも用いられ得る。たとえば、コンピュータシステムは、1つより多くのプロセッサ202(すなわち、マルチプロセッサシステム)を含み得、またはシステムはキャッシュメモリを含み得る。
プロセッサは、複数のプロセッサコアが1つの集積回路上にある、デュアルコアまたはマルチコアプロセッサであり得る。システムは、分散型演算環境の一部でもあり得る。分散型演算環境においては、個々の演算システムはネットワークで接続され、必要に応じて、ネットワーク内の他のシステムへ演算リソースを貸し出すことが利用できる。ネットワークは、内部イーサネット(登録商標)ネットワーク、インターネット、または他のネットワークであり得る。
222のような矢印は、コンピュータシステム1のシステムバス構成を表す。しかしながら、これらの矢印は、サブシステムにリンクするように機能する相互接続スキームの例示である。たとえば、スピーカ220は、ポートを通じて他のサブシステムに接続され得、またはセントラルプロセッサ202への内部接続を有し得る。図1に示されるコンピュータシステム1は、本発明を伴う使用に適したコンピュータシステムの例である。本発明を伴う使用に適したサブシステムの他の構成は、当業者には容易に明らかとなるであろう。
コンピュータソフトウェア製品は、C、C++、パスカル(Pascal)、フォートラン(Fortran)、パール(Perl)、(マス・ワーク社(Math Works, Inc.)からの)マトラボ(Matlab)、SAS、SPSS、ジャバ(Java)(登録商標)、ジャバスクリプト(JavaScript)(登録商標)、TCL、およびAJAXのような、様々な適当なプログラム言語で書かれ得る。コンピュータソフトウェア製品は、データ入力モジュールおよびデータ表示モジュールを伴う、個別のアプリケーションであり得る。あるいは、コンピュータソフトウェア製品は、分散化されたオブジェクトとしてインスタンス化され得るクラスであり得る。コンピュータソフトウェア製品は、(サンマイクロシステム社からの)ジャバビーンズ(Java Beans)(登録商標)または(サンマイクロシステム社からのEJBである)エンタープライズジャバビーンズ(Enterprise Java Beans)(登録商標)のようなコンポーネントソフトウェアでもあり得る。
システムのためのオペレーティングシステムは、マイクロソフトウィンドウズ(登録商標)オペレーティングシステムのファミリ(たとえば、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つであり得る。マイクロソフトウィンドウズは、マイクロソフト社の登録商標である。他のオペレーティングシステムも用いられ得る。分散化演算環境におけるコンピュータは、他のコンピュータとは異なったオペレーティングシステムを用い得る。
さらに、コンピュータはネットワークに接続され、このネットワークを用いて他のコンピュータとインターフェースし得る。たとえば、ネットワーク内の各コンピュータは、本発明の多くの一連のステップのタスクの一部を並列に実行し得る。さらに、ネットワークは、イントラネット、インターネット、またはとりわけインターネットであり得る。ネットワークは、(たとえば、銅を用いる)ワイヤネットワーク、電話ネットワーク、パケットネットワーク、(たとえば、光ファイバを用いる)光ネットワーク、または無線ネットワーク、あるいはこれらの組合せであり得る。たとえば、データおよび他の情報は、コンピュータと、Wi−Fi(いくつか例を挙げると、IEEE規格802.11、802.11a、802.11b、802.11e、802.11g、802.Hiおよび802.Hn)のようなプロトコルを用いる無線ネットワークを用いる本発明のシステムの要素(またはステップ)との間を通過し得る。たとえば、コンピュータからの信号は、少なくとも一部は、要素または他のコンピュータへ無線的に伝達され得る。
この発明は、その設計がセルライブラリに基づいた、デジタル回路の最適化に関する。ほとんどのデジタル設計は、現在はセルライブラリに基づいている。これは、ほとんどの設計フローは、ブール論理方程式が、ライブラリ(またはライブラリの組)からのセルの相互接続された組にマッピングされるステップを有する。ライブラリからのセルは、互いに接続されて完全な回路のための所望の機能を生成するロジックプリミティブ(ブール関数および記憶素子)を実行する。方程式を相互接続されたセルの組に変換するステップは、他のコスト(典型的には領域および電力)を最小化しつつ、いくつかのコスト(典型的には、要求される動作速度)の制限に従うような方法でなされる。このステップは、技術マッピングとして一般的に知られており、技術マッピングを実行するための様々なツールは異なるベンダーまたは大学から利用可能である。このツールへの入力は、典型的には、設計、事前設計されたライブラリ、および最適化目標である。
セルベースの設計は、マッピングおよびアンマッピングされた設計、最適化目標、設計制限、目標ライブラリ、ライブラリテンプレートの概念を含み得る。本発明は、強化されたライブラリ、使用されたサブセット、使用のヒストグラム、インスタンスの分配、仮想セル、ほぼ圧縮されたセル(nearly compacted cell)、セル生成ツール、およびセル生成APIの概念を利用する。これらの概念は、以下に簡単に説明される。
マッピングおよびアンマッピングされた設計。設計(または設計の一部)は、ライブラリからの相互接続されたネットワークとして表わされるときに、マッピングされたと言われる。ライブラリ内の各セルは、多くの回数インスタンス化され得るが、いくつかはあまり(ほんの1回だけも)インスタンス化されないかもしれず、ライブラリ内の利用可能ないくつかのセルは全く使用されないかもしれない。設計(または設計の一部)は、サブ設計としてライブラリからのセルに対する参照(インスタンス化)を作成することなく、より高いレベルにおいて記述されるときに、アンマッピングされたと言われる。アンマッピングされた設計をマッピングされた設計に変換しながら設計コストを最小化するタスクは、通常は、技術マッピング(technology mapping)と呼ばれる。同様に、再マッピングの語句は、マッピングされた設計の異なったマッピングがされた設計への変換のために用いられ、技術独立最適化(technology independent optimization)の語句は、アンマッピングされた設計の異なったアンマッピングがされた設計への変換のために用いられ、そしてアンマッピングの語句は、マッピングされた設計のアンマッピングがされた設計への変換のために用いられる。
最適化目標および設計制限。最適化目標および設計制限は、取り扱われる特定の設計のための設計者の要求が何であるかを、最適化ツールへ記述する。典型的に、最適化ツールは、回路の様々なポイントについて表現され得る最適化目標と設計制限の混合を受ける。例としては、所望の到着時間(arrival times)および頻度を遵守しながら領域および電力を最小化すること、タイミングを低減するとともに最大領域を遵守すること、最大領域を遵守するとともに歩留まりを増加することを含む。設計目標および制限の多くの組合せは、それらの目標を達成するために設計者によって用いられ得る。
目標ライブラリ。マッピングされた設計を生成する最適化ステップのために、ライブラリを参照して、マッピングツールによって用いられ得るセルを含む目標ライブラリを特定することが必要である。利用可能なセルは異なるライブラリに分割され得るので、マッピングツールは1つより多くの目標ライブラリを処理することが可能である。目標ライブラリは、初期回路について用いられる初期ライブラリのいくつかまたは全てを含み得る。
ライブラリテンプレート。完成した設計の最終レイアウトは、セルを隣り合わせに配置することによってなされるので、セルの設計は、このように配置されるときに、それらがより簡単に組合わされるように制限される。ベンダーは、電力消費や高速度のような異なる設計目標に適合するような、異なるテンプレートを有するライブラリを提供し得る。ベンダーにとって、同じ技術ノード、すなわち汎用、高速および低電力のライブラリバージョンに対して少なくとも3つの異なる標準セルライブラリを提供することは珍しいことではない。いくつかのベンダーは、追加的な他のバージョンを提供し得る。
これらのライブラリは、異なるテンプレートを使用し、異なる列高さおよび電力グリッドサイズを有し得る。あるいは、これらのライブラリは、同じテンプレート、または同じ設計において用いられるべき適合可能なテンプレートを用い得る。ライブラリの異なるバージョンが適合可能でないテンプレートを有し、かつ設計ツールが異なるテンプレートの使用をサポートしないときに、設計者は、彼らの設計を達成するために、ライブラリの異なるバージョン(たとえば、汎用、高速、および低電力)の中から選択しなければならないかもしれない。設計者は、ライブラリが同じまたは適合可能なテンプレートを有しているときには、ライブラリの異なるバージョンからのセルを混合することができる。いくつかのテンプレートは、2つの隣接した列を占有する、2倍の高さのセルを適合し得る。
本発明が解決する課題は、新しいセルの追加によって利用可能な目標ライブラリを強化することの可能性を考慮しつつ、設計を最適化するための最小のほぼ最適なセルの組を選択することである。これは、それを実行するために用いられる、セルベースの設計およびセルライブラリの同時最適化を含む。ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。本方法は、ライブラリは、オリジナルのライブラリとはおそらく異なるトランジスタトポロジ、異なるサイズ、異なる論理機能、および/または異なるセルテンプレートを有する新しいセルによって強化され得るという事実を考慮する。
強化されたライブラリ。ライブラリは、設計者が、設計を最適化するために、新しいセルをそれに追加する場合に強化されたと言われる。
使用されたサブセット。設計をマッピングした後、マッピングされた設計は、ライブラリからの特定のセルへの参照を作成し、それは設計においてインスタンス化される。ライブラリからの全てのセルが、設計において必ずしもインスタンス化される必要はない。与えられたマッピングされた設計において少なくとも1回はインスタンス化される全てのセルの組は、その与えられた設計に関するライブラリの使用されたサブセットを構成する。
使用のヒストグラム。マッピングされた設計、およびその特定の設計に関するライブラリの使用されたサブセットが与えられると、使用されたサブセット内の各セルは、設計において特定の数のインスタンスを有する。いくつかのセルは、一度だけしか用いられないかもしれないが、その他は多くの回数インスタンス化され得る。ヒストグラムは、(領域、電力、遅延などの)ライブラリまたは各個別のセルからのいくつかの特性に従って重み付けされ得る。
インスタンスの寄与。設計への各インスタンスの寄与は、設計においてどれだけ多くの回数使用されたか(使用のヒストグラムから利用可能なデータ)、および(回路のタイミングクロージャについてそのセルへの寄与に関連する)低スラックのインスタンスにおいてどれだけ多くの回数そのセルが現れたかによって測定され得る。インスタンスの寄与は、設計の限られた領域、またはサブ設計に関して演算され得る。
仮想セル。仮想セルは、セルの最終レイアウト記述からではなく生成されたデータを有するセルである。これらのセルは、(テープアウト(tape out)において用いられるべき)それらの最終形態において、いまだ実行されておらず、または特徴付けられていないが、設計および最適化プロセスにおけるそれらの使用を許容しつつ、利用可能なコストを推定する。推定されたコストは、最終レイアウトとは異なったソースから導き出されるか、あるいはテープアウトのために用いられるものとは異なった精度を伴う最終レイアウトから導き出される。仮想セルまたは推定されたコストが、(テープアウトのために用いられる)最終の物理的実施形態からどれだけ乖離しているかに依存して、仮想セルは、より大きな度合またはより小さな度合だけ仮想であり得る。仮想セルが最終のテープアウトバージョンに近ければ近いほど、仮想度合はより小さくなる。仮想セルが最終のテープアウトバージョンから遠ければ遠いほど、仮想度合はより大きくなる。
通常、コンパクション前のトランジスタの配置およびルーティングは、(この記述はしばしばスティック線図と称されるが、)領域および電気的特性を推定するために用いられる。推定がスパイスネットリスト(spice netlist)から純粋になされる場合は、仮想−仮想セル(virtual-virtual cell)または仮想2セル(virtual2 cell)と呼ぶ。本発明において用いられる仮想セルを生成する方法は、中間の駆動強度を得るために既存セルを補間する従前のアプローチとは異なっている。本アプローチにおいては、セルのためのコストが、セル生成器によって提供されるAPI推定を通して導き出される。これらのコストは、すでに事前演算され、追加のセルの組において利用可能であり得る。各セルは、(AND2、OR3、NAND4、AOI22などの)組合関数または(FFD、FFDSRなどの)メモリ要素であり得る、セルの挙動を表わす機能を有することに注意すべきである。1つより多くのセルが、駆動強度、トランジスタトポロジ、論理ファミリ、セルテンプレートなどが異なる、同じ機能を有し得る。
ほぼ圧縮されたセル。ほぼ圧縮されたセルは、いまだにいくつかの設計基準検査(Design Rule Check:DRC)エラーを含んではいるが、領域および電気的特性は非常により精度で得られているセルである。仮想セルもまた、やや精密ではないが得るための時間消費が少ない特性データをもたらす、軽い特性化(light characterization)を実行することによって、完全に圧縮されたセルから導き出され得る。
セル生成ツール。セル生成ツールは、セルベース設計において用いられるためのセルを生成し得るツールである。ユーザは、生成されるべきセルについての所望の機能を特定しなくてはならない。セル生成ツールは、論理方程式から、あるいは所望のセルを特定するための、スパイスネットリストまたは他の形態から始まるセルを生成し得る。セルの生成は、(目標技術設計基準についての情報を提供する)技術定義(technology definition)およびセルについての所望のセルテンプレートに基づいている。セル生成器の一例は、ナンゲートライブラリクリエータ(登録商標)ツール(Nangate Library CreatorTM tool)であり、そのユーザーズマニュアルは、その他のナンゲートソフトウェアユーザーズマニュアル、ヘルプスクリーンを含むナンゲートソフトウェアスクリーン、および本願において引用される他の全ての参考文献とともに、参照により引用される。セル生成ツールは、その特徴について外部のツールに依存し、またはその特徴を実行するための密接に統合されたツールを有し得る。ライブラリ特性化ツールの一例は、ナンゲートライブラリキャラクタライザ(登録商標)ツール(Nangate Library CharacterizerTM tool)である。
登録商標は、それら個別の所有者の財産権である。ナンゲートライブラリクリエータおよびナンゲートライブラリキャラクタライザは、ナンゲートA/S(Nangate A/S)の登録商標である。
セル生成器API。セル生成器APIは、異なる精度を用いることによってセルコスト(領域、遅延、電力など)を推定するためのインターフェースを提供し得る。仮想セルが、(テープアウトのために用いられる)最終的な物理実施形態からどれだけ乖離しているかに依存して、それらは、異なる仮想度合(degree of virtuality)を提示し得る。仮想度合がより低ければ低いほど、仮想セルは、最終のテープアウトバージョンにより近くなる。前の議論から、セルは、仮想2レイアウト、仮想レイアウト、ほぼ圧縮されたレイアウト、および最終レイアウトの4つの異なる精度の選択肢を伴って生成されるコストを有し得る。セル生成器アプリケーションプログラムインターフェース(Application Program Interface:API)は、これら4つの異なる方法を提供し、セルおよびライブラリデータを生成し得る。セル生成器APIは、許容可能な機能についての実際のまたは推定されるコストを導き出すために用いられ、利用可能でないと考えられる機能についての無限コストを返すだろう。
本発明は、設計を最適化するための強化されたライブラリを使用するために用いられる。解空間は、ライブラリの強化によって拡大され、それに続くステップにおいて、強化されたライブラリは、追加されたセルの数をユーザによって定められた数に限定するためにフィルタがかけられる。目標は、設計者によって許可されたものより多いセルを追加することなく、ライブラリの強化からの最大ゲインを得ることである。実用的な観点から、このプロセスは、設計およびそれを実行するために用いられるライブラリを、ともに最適化することを可能にする。
図3は、ライブラリを設計空間の一部として考えたときの、性能とコストとのトレードオフのグラフを示す。図3は、潜在的なコスト節約を導入するように実行コストを最小化しながら、(点線307の)所望の性能を達成する(星印302として表わされた)ライブラリを見出すための課題決定を図示する。図に提示されたコストは、領域、遅延および電力であることに注意すべきである。これらは、本発明の制限としてではなく、例として引用され、測定され得る利点(領域、電力、遅延、歩留まりなど)の図も、本プロセス中で最適化され得る。
提案された方法の利点は、設計空間の一部としてのライブラリの開発を含む。
これまでに、いくつかのアプローチが、詳細な物理的特徴を考慮せずかつそれをフィルタリングしようとしないまま、完全な仮想ライブラリを用いてなされている。これらのアプローチは、ライブラリがいくつかのトポロジカルパラメータによって定義される、純粋に仮想のライブラリを用いる。その唯一の目標は、トランジスタの数を最小化することである。実際の領域および特性は存在せず、かつ考慮されない。セルの数において、アクティブフィルタリングは実行されず、そのため、ライブラリ内の結果のセルの数は、著しく増加し得る。
これらのアプローチは、実際のデータ−特性、領域、セルの詳細データ、またはそれらの構成を考慮せず、トランジスタの数のみが考慮されるので、非常に不正確である。他の不利益は、使用されるセルの数のアクティブな制限がないことである。
いくつかのアプローチは、強化または拡張することなく、既存のライブラリにフィルタリングをかける。たとえば、1つのアプローチは、以前から存在していたライブラリからのセルをフィルタリングするだけである。強化は全く行なわれない。これらのアプローチは、単に既存の事前に特徴付けられたライブラリをフィルタリングするという主な制限を有し、そのアプローチは、設計を改善し得る特別なセルは見ない。他の制限は、セルのフィルタリングがセルごとになされ、隣接するサイズのセルはタイミングクロージャのためには保存されないということである。
いくつかのアプローチはライブラリを強化するが、その強化は、新しい機能ではなく、新しい駆動強度を追加することに限定される。このように、強化は既存のセルについての新しいサイズのみを考慮する。新しい機能は全く追加されない。強化は、初期ライブラリ上に存在し(かつすでに特徴付けされた)機能に限定される。これは、新しいサイズを生成するために用いられる仮想セルの特徴が、ライブラリ内の既存セルから導き出されるために生じる。
これらのアプローチは、すべてのデータが既存セルから生成されるので、ライブラリに新しい機能を追加せず、かつ新しいトポロジを導き出すことができない。特性がライブラリ内の既存セルから導き出されるので、ライブラリ内にすでに存在するセルのみが用いられ得る。これは、与えられたトポロジを伴うライブラリ内に既に存在する機能について、新しいトポロジ(たとえば、トランジスタネットリスト)の使用を不正確にさせる。精度を確保するために、このアプローチは、ライブラリ内のセルのトポロジが公知であると非明示的に想定し、類似のトポロジ(および、したがって、既存のセルから正しく導き出され得る同様の特性)を伴う新しいセルが生成され得る。
他のアプローチは、特定の設計を最適化するための新しいセルのオンザフライ生成を用いる。このアプローチは、初期(仮想)のライブラリは考慮しない。それは設計を調査し、最適化のための候補点に関する新しいセルを生成する。新しいセルの生成は、既存の回路の一部を置換するために用いられる新しいセルを生成するために用いられる文脈特定情報(context specific information)に基づいてなされる。
方法は、設計特定セルを生成する。方法は、特定のセルによる回路の一部(たとえば、サブ回路)を構成する。方法は、設計特定セルの追加プロセスにおいて生成された新しいセルの数を低減する。方法は、この文脈におけるセル特性の事前レイアウト推定を実行する。仮想セルを生成することは、1つの可能性のある方法として見なされ得る。方法は、機能的に冗長なトランジスタネットワークを有する論理回路を生成する。方法は、与えられたセルライブラリにマッピングされた設計を受け、そして、回路の速度アップのためにセルのトランジスタサイズが変更される。このトランジスタサイズの変更は、ライブラリ内への新しいセルの追加をもたらし、ライブラリは新しいセルに適合するように再設計される。
これらのアプローチは、サブ回路の代用として用いられるための設計特定セルの生成を用いて行なわれる。それは、(特徴および性能評価がオンザフライでなされるので、)長時間を要し、結果としてより局部的な調査がなされる。他の不利益は、それがインプレースの最適化に向けられ、セル配置におけるいかなる修正も、セルが生成された環境および境界条件を修正し得ることである。もしこれが生じると、設計特定セルは、もはや有効ではないだろう。この先行技術においては隣接サイズのセルが提供されないので、タイミングクロージャは、この特定の場合において悪影響を与え得る。この意味で、この先行技術は、新しいセルを伴う設計特定ライブラリのずっとより限定された強化を提供する。
ライブラリ生成のための方法は、推測的な(a priori)セル記述を有する。そのため、方法は、一旦セルが知られると、包括的なライブラリを作成する。本方法において考慮される設計の特異性はなく、そのため、それは設計特定ライブラリ生成法ではないと言うことができる。これらのアプローチは、特定の設計のためにはライブラリを最適化しない。それは、一旦セルが特定されると、ライブラリを形成するためのセルレイアウトを単に生成するだけである。セルそれ自体を選択することが、設計者の責任であり、方法はこのタスクにおいては設計者を手助けしない。
本特許は、デジタル設計とその実行に用いられるセルライブラリとの同時最適化を実行するための、新しい手法を提供する。図4は、この共同最適化を実行するためのシステムフローを示す。
図4は、デジタル設計およびライブラリ400の同時最適化のための入出力データのシステムフローを示す。典型的に、方法は、入力として、初期設計403、初期ライブラリ406(任意的)、および追加的に許容可能な機能409の組を採用する。プロセス400からの出力は、再マッピングされた設計413およびライブラリ仕様416である。
ライブラリ仕様または最適化されたライブラリは、新しい関数、新しいサイズ、新しいテンプレートを有し、かつ初期ライブラリのサブセットも含み得る。ユーザは最適化されたライブラリ416のみに興味があり、そのため、回路403はライブラリ最適化プロセス400を案内するためだけに用いられ得ることに注意すべきである。この場合において、本技術は、最適化された回路413を出力する必要なく、特定の設計のために最適化されたライブラリ仕様416を生成する。再マッピングされた設計または回路は、この場合においては出力されなくてもよい。
3つの入力項目は、最適化されるべき回路または初期設計403、(空であり得る)最初から存在するセルライブラリ406、および明示的または非明示的に定められた追加的に許容可能な論理機能409の組である。設計制限および最適化目標のようなほかの入力項目は、たとえ図面においては明示的に示されていなくとも、本方法によって用いられ得る。設計制限は、回路設計の当業者においてはよく知られており、本説明においては議論されない。
最適化されるべき回路は、ゲートのネットリストまたは方程式の組、あるいはその2つの混合、あるいは他のフォーマットのいずれかとして説明され得る。初期回路または最適化されるべき回路はRTLからも得られ、すでにある程度最適化されたものであってもよい。ゲートのネットリストは、最初から存在するライブラリにおいて記述された、インスタンス化および相互接続ゲートを作成する回路の記述である。回路の機能は、ゲートの記述およびそれらの相互接続から導き出され得る。あるいは、最適化されるべき回路は、ライブラリにおけるゲートを特定するためのインスタンスを作成することなく、その回路の機能を直接的に表現するブール方程式の組として記述され得る。初期回路は、ゲートの機能だけが記述された、包括的なライブラリに対する参照も作成し得る。
取り扱われるべき機能が記述され得る回路記述は、本発明の範囲において用いられ、ライブラリからのセル参照、および方程式、真偽表、バイナリデシジョンダイアグラム(BDD)または等価な形式を通して記述される回路のマッピングされていない部分を含んでいる混合された記述を含み得ることに注意すべきである。
最初から存在しているライブラリは、設計のためにすでに利用可能であるセルの組を含む。この組が空であり得ることに注目すべきであり、そして、もしこの組が空でない場合は、ライブラリのサブセットは、不許可とされ、無視され、あるいは「使用しない」としマークが付けられ得る。セルは、最適化されるべき回路の初期の記述において参照されてもよいし参照されなくてもよく、それはマッピングされた回路、マッピングされていない回路、あるいは部分的にマッピングされたまたはマッピングされていない回路、あるいはこれらの組合せであり得る。
追加的に許容可能なセル(論理機能)の組は、単一のセルとしてみなされ得る、(オリジナルのライブラリに関する)追加のセル機能のリストを定める。この意味で、目標ライブラリは、追加的な許容可能な論理機能の組を伴うオリジナルのライブラリ(ライブラリ達)におけるセルの組の結合として理解され得る。このフローにおいて、新しい許容可能な機能は、ライブラリに追加されるべき候補セルを生成するために用いられ、したがって、利用可能なセルのセットを強化する。追加的に許容可能な機能の組は、非明示的にまたは明示的に、あるいはその2つの組合せ(非明示的および明示的な定義)によっても記述され得る。
ライブラリの非明示的な定義のいくつかの異なる例が以下に与えられる。(以下のおよびその他の)本用途における例は、本発明のいくつかの側面を例示するために提供され、これらの側面は必要に応じて、または特定の用途の要望にあわせて適合および修正され得る。本発明の範囲は、与えられる特定の例についてのいかなる方法においても、限定されまたは制限されるべきではない。
入力数による(非明示的なライブラリ定義についての)例1。入力数によってライブラリを定義する場合には、機能は、その入力数に従って容認されまたは廃棄され得る。容認および拒否されるべき入力数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
直列並列の実施形態における直列および並列のトランジスタの数による(非明示的なライブラリ定義についての)例2。直列および並列のトランジスタの数によってライブラリを定義する場合には、機能は、直列および並列のトランジスタの数に従って容認されまたは廃棄され得る。容認および拒否されるべき直列および並列のトランジスタの数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
BDD高さによる(非明示的なライブラリ定義についての)例3。BDD高さによってライブラリを定義する場合には、機能は、その機能を表すBDDの高さに従って容認されまたは廃棄され得る。容認および拒否されるべきBDDの高さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
一般的なスイッチ実行例において達成可能なトランジスタチェーンの最小(最悪の場合)の長さによる(非明示的なライブラリ定義についての)例4。これは、直列トランジスタの数における「下限」である。トランジスタチェーンの最小(最悪の場合)の達成可能な長さによってライブラリを定義する場合には、機能は、トランジスタチェーンの最小(最悪の場合)の達成可能な長さに従って容認されまたは廃棄され得る。容認および拒否されるべきトランジスタチェーンの最小(最悪の場合)の達成可能な長さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
(オリジナルのライブラリにおいてセルの関連を生成することを含む)オリジナルのライブラリにおいて提示される機能を伴うこれらの例からの機能の組合せを含む、上記4つの方法の組合せの、(非明示的なライブラリ定義についての)例5。非明示的または明示的に定義された各セルの機能について、異なるトランジスタトポロジ、異なるトランジスタのサイズ、および異なる駆動強度を含むセルのバリエーションが生成され得ることに注意すべきである。これらの方法は例示のためだけに提示され、本発明はここで例示された方法を用いる事に制限されないことに注意すべきである。
明示的な定義は、追加的に許容可能な論理機能のセットの明示的なリスティングを行うことである。これは、本方法の実行のために適した形式における追加的に利用可能な機能のリストを明示的に提供することである。
追加的に利用可能な機能を定義するどのような形式も、本発明の内容において有効であることに注目すべきである。リスト化された方法は、例示的な特徴を有するが、制限的な特徴は有しない。
本方法の出力は、マッピングされたネットリスト、および新しいライブラリを構成するセルの組を含む。ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計についての最適化されたライブラリを生成する。マッピングされたネットリストおよび新しいライブラリを構成するセルの組が以下に説明される。
マッピングされたネットワークは、オリジナルの回路を実現する相互接続されたセルの組であり、おそらく、領域、遅延および電力消費を含むがこれに制限されないコストに関するいくつかの利点を有する。得られるべき特定の利点は、マッピングツールのための設計制限および目標を通して、設計者によって案内される。マッピングされたネットワークにおいて用いられるセルは、本法によってさらに出力される新しいライブラリ内にリスト化される。
本方法によって出力される新しいライブラリは、以下のいずれかを含み得る。
1.既存セルの組合せを意味する、既存ライブラリ自体。
2.(追加的に利用可能なセルからの)新しいセルが既存ライブラリに追加されたことを意味する、強化されたライブラリ。新しいセルは、既存論理機能のための新しい論理機能または新しい駆動強度を表すことができ、既存機能のための新しいトランジスタトポロジを含む。新しいセルを導入することの目標は、最終設計の領域、遅延および電力を低減することである。得られるべき特定の利点は、マッピングツールのための設計制限および目標を通して、設計者によって案内される。このプロセスの間、強化されたライブラリにおけるより効率的なセルの導入によって、オリジナルのライブラリからのいくつかのセルが削除され、廃棄され、不許可とされ、または使用しないとしてマークされ得ることに注意すべきである。
3.新しいセルライブラリにおいてセルの混合をよりよく適合するように、セルテンプレートを変更したことを意味する、新しいライブラリ。再び、既存セルについての新しい論理機能および新しい駆動強度が、既存ライブラリへ追加され得る。しかしながら、新しいテンプレートが選択されると、オリジナルのセルは、新しいテンプレートに適合するように、おそらく再設計され得る。セルの新しい混合を考慮すると、古いものは最良のものではないので、新しいテンプレートが導入され得る。
4.1より多くのテンプレートにおいて利用可能なセルにより構成される、新しい混合テンプレートライブラリ。原理は上述の「新しいライブラリ」と同様であるが、配置およびルーティングツールが不均一なセルテンプレート、あるいは、異なるテンプレートを用いる回路領域または電力領域またはセルの異なるVtバージョンに対処することができる場合には、セルは異なるテンプレートにおいて利用可能とされ得る。混合テンプレートライブラリは、適合可能でないテンプレートを使用し、異なる列高さおよび電力グリッドサイズを有してもよいし、または同じ設計において用いられるべき適合可能なテンプレートを用いてもよい。このようにして、設計者は、適合可能でないテンプレートの場合について異なる回路テンプレート領域のために用いられるべきセルの異なるテンプレートバージョンの中から選択することができ、または設計者は、テンプレートが適合可能である場合に、回路のどんな領域においてもセルを混合することができる。いくつかのテンプレートは、2つの隣接する列を占有する、2倍高さのセルに適合し得る。
本方法によって生成された新しい設計およびライブラリ仕様は、図5に示されるように、最適化プロセスへの入力520として用いられ、繰り返し最適化を生成する。最適化プロセスは、どのような回数(たとえば、2,3,4,5,6または7、あるいはより多くの回数)でも反復され得ることに注意すべきである。これは、最適化ツールによって生成される結果が初期データに依存しており、そのため反復がさらなる改善を提供し得ることがよく知られているので、重要である。反復プロセスのより一般的な観点においては、最適化は設計の前のバージョン、または前の反復において生成されたライブラリを再利用し得る。
図5を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。
設計およびライブラリの同時最適化のための提案された方法を実現するように適合された、1つの可能なフロー400が図6に示される。フローの特定の実行例のステップは、以下に説明される。
図6を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。
特定のフローが以下に提示されるが、本発明は提示された特定のフローおよびステップに限定されないことが理解されるべきである。本発明のフローは、(この用途においては必ずしも説明される必要のない)追加のステップ、提示されたステップのいくつかを置換した異なるステップ、より少ないステップまたは提示されたステップのサブセット、あるいは提示されたものと異なる順番のステップ、あるいはこれらの組合せを有し得る。さらに、本発明の他の実行例におけるステップは、提示されたステップと全く同一でなくてもよく、かつ特定の用途に適したようにまたはデータに基づいて、修正されあるいは変更されてもよい。
1.ステップ603において、既存ライブラリおよび許容可能な機能を考慮して、設計を最適化するための候補セルを同定する一致(match)を生成する。基本的に、このステップは、(セルとなり得る)許容可能な機能の組において、初期のライブラリまたは機能におけるセルに対応する回路の部分を同定する。このフェーズは、当業者によって、一般的にマッチングと呼ばれている。しかしながら、ここでは、同時に、物理的なセル、仮想セル、および仮想2セルを同定することができるオリジナルの特性を提示する。
2.ステップ606において、回路を実現する候補セルの最良の組を選択する。一旦、回路の異なる部分が、割り当てられた候補セルを有すると、技術は、それらが領域、遅延および電力消費コストについて所望のトレードオフを伴う回路を実現するような、候補のサブセットを選択する。このフェーズにおいて事項された選択は、当業者によって、一般的にカバーリングと呼ばれる。
3.ステップ610において、コストは許容できるがあまり頻繁に使用されていない候補セルを削除する。このステップは、カバーリングフェーズの結果を調査し、少数のインスタンスのみを有するセルのインスタンスを削除する。回路のこれらの部分は、その後、残りの使用されるセルの組を考慮して再マッピングされる。このステップの目標は、設計実行コストを著しく増加させず、かつ設計制限を遵守しながら、セル候補の全体数(およびライブラリのサイズ)を減少することである。このプロセスは、設計のための使用におけるライブラリから、セルを削除し、無視し、または使用しないようにマーキングし得ることに注意すべきである。
4.ステップ614において、新しいライブラリのためのセルテンプレートを最適化する。新しいセルの混合が生成されるので、最適化されたライブラリに存在するセルの組によりよく適合するように、ライブラリテンプレートが最適化され得る。ライブラリテンプレートは、セル高さ、電源の幅、P型およびN型の拡散などを定義する。
5.ステップ619において、再マッピングされた設計および適合したライブラリ仕様を生成する。適合したライブラリ仕様は、再マッピングされた設計において用いられるセルについての駆動強度の多様性を含む。駆動強度のこの多様性の要求は、配置およびルーティング後のクロージングタイムのために必要とされる駆動強度が、推測的に知られていないという事実に由来する。
出力されたライブラリは仮想セルおよび仮想2セルを含んでいるので、図6における出力されたライブラリは、ライブラリ仕様であることに注意すべきである。これは、再マッピングされた設計において用いられる仮想セルおよび仮想2セルは、回路の最終テープアウト前に、物理的セルを生成するための仕様として用いられなければならないことを意味する。ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。
再び、読者は、本発明によって生成された新しい設計およびライブラリ仕様が、最適化プロセスへの入力として用いられ、図7に示されるように、繰り返し最適化を生成することに注意すべきである。新しい設計およびライブラリ仕様は、ステップ603または610への入力として用いられ得る。これは、最適化ツールによって生成される結果が初期データに依存しており、そのため反復がさらなる改善を提供し得ることがよく知られているので、重要である。反復プロセスのより一般的な観点においては、最適化は設計の前のバージョン、または前の反復において生成されたライブラリを再利用し得る。
図7を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。
ここで説明される方法は、図8に記載されるように、ポストプロセッシングを通してさらに強化され得る。図8を参照して、ユーザは最適化されたライブラリのみに興味を示し、そのため、回路はライブラリ最適化プロセスを案内するためだけに用いられ得ることに注意すべきである。この場合において、本発明は、最適化された回路を出力する必要なく、特定の設計のために最適化されるライブラリを生成する。この場合には、回路は出力され得ない。
このポストプロセッシングステップは、配置およびルーティング818を実行することによって設計の新しいバージョンを導き出すための、本方法によって生成されたマッピングされたネットリスト810の出力および強化されたライブラリ815の出力から構成される。この配置されかつルーティングされた設計のバージョン822によって、初期のセルライブラリからのどのセルおよびサイズが、回路の物理的実行例において効果的に用いられるかを検証することができる。このように、効果的に使用されるセルおよびサイズを考慮しつつ、ライブラリ仕様のさらなる最適化826を実行することができる。
配置およびルーティング後にライブラリ仕様を最適化するプロセス(826)は、図9においてより詳細に説明される。このプロセスは、いくつかのレベルの配置保護を採用することができ、既存セルは、同じ場所に残るかあるいは著しくは置換されない。最適化を通して行なわれる基本的な動作が、以下で説明される。
1.ステップ933において、どのようなサイズにおいても使用されていないセル機能を削除する。ライブラリ内にあるがどのサイズにおいても使用されないセルは、生成されなければならないセルの数を最小化するために、ライブラリから削除され得る。
2.ステップ935において、使用されているセルについて、使用されていないサイズを削除する。使用されていないサイズもまた、ライブラリをシンプルにするために削除され得る。
3.ステップ937において、使用されているセルおよびサイズについて、タイミングクロージャのために既存のサイズを調整させるような追加的なサイズを追加する。回路は配置およびルーティングされ、かつタイミングが閉鎖されておりまたは閉鎖されそうであるので、セルは使用される最終サイズに近づく。すべての使用されるセル/サイズについて、近接のサイズの組が、ライブラリに導入されて、最終タイミングを確定させる。
4.ステップ939において、最適化された設計におけるセルの新しい混合を最適化するためにライブラリテンプレートを調整する。セルの新しい混合が生成されるので、ライブラリテンプレートは、最適化されたライブラリにおいて存在するセルの組によりよく適合するように最適化され得る。ライブラリテンプレートは、セル高さ、電力の幅、P型およびN型の拡散などを定義する。
最適化されたライブラリ仕様948が生成された後、技術は、図10に示されるように、対応する最適化された物理ライブラリの合成1052へ進む。これは、(物理的合成を通して)仮想セルおよび仮想2セルの物理的実行例への変換に相当する。そして、セルの物理的実行例は、テープアウトのための最終設計クロージャ(closure)を実行するために用いられる最適化された物理ライブラリ1054を構成する。設計は、(再マッピングされた設計1056によって示されるように、)物理合成後に、新しいライブラリを反映するように更新されなくてはならないことに注目すべきである。このステップは、本発明の範囲において自動的に実行され得る。
現在の発明は、先行技術に対して利点を提供する。本発明は、領域および性能(電力、遅延、歩留まりおよびその他)に関して、より現実的なデータを用いる。それによって、新しく生成された機能のタイプおよび数を制御することもできる。
本発明は、設計を最適化するために有用であり得る新しいセルを追加することの利点を有する。さらに、本発明は、最終的なタイミングクロージャおよび最適化を可能とするための、隣接したサイズのセルを追加するステップを有する。
本発明は、新しい機能、異なるトランジスタトポロジ、異なるサイズ、およびセルテンプレートのバリエーションを開発する利点を有する。他のアプローチにおける異なるサイズが、既存セルサイズの補間によって生成され、それは、異なるサイズが異なるトポロジを有するときに多くの不正確さを追加し得る。本明細書に記載される本発明はこの課題を有しておらず、かつ同じ駆動強度を伴う1つより多くのトポロジの使用もサポートする。
本発明は、セルが最初にライブラリに追加され、その後マッピングツールが、どのセルが使用されるのが興味深いかを決定するので、より強力である。本明細書で提示される発明は、仮想セルについての事前演算されたデータ(初期特性および領域のプレビュー)を用いる可能性を有することによって大きな組のセルを開発し、それは本明細書で提示される発明をより高速にする。
その他のポイントは、ライブラリ内にセルを挿入するときに、同一性(セルの固有化(uniquify))によって、セルをグループ化する必要がないことであり、セルは仮想ライブラリ(追加的な利用可能な機能の組)において、状態が類似の場合にマッピングツールが同じセルサイズを選択できるというサイズの選択とともにすでに利用可能であるが、この発明の文脈においては、これは取るに足らない問題である。本明細書で提示される発明は、ライブラリに異なる特色の新しいセルを追加することによって推測的に生成される新しい機能のタイプを制御できるようにし、そして後続のステップにおいてセルの量を制御する。これは、セルが状況を満足するように生成され、類似のすでに存在するセルが代わりに使用され得るかどうかを理解するための検証ステップを有するようなアプローチとは、基本的に異なる。
その他のアプローチは、新しく生成されたセルの数を制御するような特徴を有していない。本発明の他の利点は、セルの使用の状況(たとえば、配置)が若干変化した場合に、最終のタイミングクロージャおよび最適化を可能とする隣接するサイズのセルを追加するステップである。
本発明は、設計を考慮し、設計を最適化するための所望のセル仕様を自動的に生成する。他のアプローチは、設計者が自分自身でセル仕様を生成するように要求されるので、このタスクを達成するために設計者に何の援助も提供しない。
ここで提示された発明の用途例として、図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のセルインスタンスを有していることに注意することが重要である。
この特定の例について、たとえばトランジスタの直列および並列接続から成る論理ゲートにおいて、制限された数の直列的に接続されたPMOSおよびNMOSトランジスタを有する組合セルを用いることによって生じるライブラリのように、強化されたライブラリが用いられ得る。このアプローチにおいて、仮想ライブラリまたは物理的ライブラリが利用可能であり、またはセル生成器ツールが追加されるべきセルのためのコスト推定を提供し得る。
最大4つの直列のトランジスタである、トランジスタの直列および並列の組合せを用い、かつセルの入出力の取り消し(negation)を許容することによって、図12の回路が得られる。トランジスタの数が4つまで低減されていることに注目すべきである。たとえ、図12のセルが図11のものより大きいという可能性があったとしても、より少ない数のセルインスタンスが、より大きいセルの使用を補償することに気づくことが重要である。確かに、図12の回路は、実現のためにより少ないトランジスタを要求する。
さらに、図12の回路は、より少ないセルの出力がバッファリングされる必要があるので、より効率的なサイズとされ得る。このステップにおける追加的で許容可能な機能の組は、前述されそして以降で繰り返されるように、明示的または非明示的に定義され得ることに注意すべきである。
追加的に許容可能な論理機能の組は、単一のセルとしてみなされ得る機能のリストを定義する。このフローにおいて、新しい許容可能な機能は、ライブラリに追加されるべき候補セルを生成するために用いられ、したがって、利用可能なセルの組を強化する。追加的に許容可能な機能の組は、非明示的または明示的に、あるいはその2つの組合せ(非明示的および明示的定義)によってでさえも記述され得る。
ライブラリの非明示的定義のいくつかの異なる例が以下に与えられる。(以下およびその他のところでの)本用途における例は、本発明のいくつかの側面を例示するために提供され、これらの側面は、必要に応じてまたは特定の用途のための要求に応じて、適合および修正され得る。本発明の広さは、与えられた特定の例に多少なりとも限定または制限されるべきではない。
入力数による(非明示的なライブラリ定義についての)例1。入力数によってライブラリを定義する場合には、機能は、その入力数に従って容認されまたは廃棄され得る。容認および拒否されるべき入力数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
直列並列の実施形態における直列および並列のトランジスタの数による(非明示的なライブラリ定義についての)例2。直列および並列のトランジスタの数によってライブラリを定義する場合には、機能は、直列および並列のトランジスタの数に従って容認されまたは廃棄され得る。容認および拒否されるべき直列および並列のトランジスタの数についての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
BDD高さによる(非明示的なライブラリ定義についての)例3。BDD高さによってライブラリを定義する場合には、機能は、その機能を表すBDDの高さに従って容認されまたは廃棄され得る。容認および拒否されるべきBDDの高さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
一般的なスイッチ実行例において達成可能なトランジスタチェーンの最小(最悪の場合)の長さによる(非明示的なライブラリ定義についての)例4。これは、直列トランジスタの数における「下限」である。トランジスタチェーンの最小(最悪の場合)の達成可能な長さによってライブラリを定義する場合には、機能は、トランジスタチェーンの最小(最悪の場合)の達成可能な長さに従って容認されまたは廃棄され得る。容認および拒否されるべきトランジスタチェーンの最小(最悪の場合)の達成可能な長さについての特定値は、ライブラリにおける機能を非明示的に定めるパラメータである。
(オリジナルのライブラリにおいてセルの関連を生成することを含む)オリジナルのライブラリにおいて提示される機能を伴うこれらの例からの機能の組合せを含む、上記4つの方法の組合せの、(非明示的なライブラリ定義についての)例5。非明示的または明示的に定義された各セルの機能について、異なるトランジスタトポロジ、異なるトランジスタのサイズ、および異なる駆動強度を含むセルのバリエーションが生成され得ることに注意すべきである。これらの方法は例示のためだけに提示され、本発明はここで例示された方法を用いる事に制限されないことに注意すべきである。
明示的な定義は、追加的に許容可能な論理機能のセットの明示的なリスティングを行うことである。これは、本方法の実行のために適した形式における追加的に利用可能な機能のリストを明示的に提供することである。
セルを減少するためにライブラリをフィルタリングするステップが、このステップからもたらされる回路を提示する図13に図示される。ここで提示された例はより大きな回路の一部であり、図12の出力信号n0を生成するセルは、より大きな回路の範囲における非常にわずかなインスタンスしか有していないことを考慮すべきである。そして、この特定のセルは、ライブラリにおいて禁止され、より多くの数のインスタンスを有するセルに再マッピングされ得る。
これは、n0を生成するセルが図13の回路をもたらし、範囲を定義するより大きな回路の他のサブ回路における多数のインスタンスを有する2つのインスタンスに置換される。このプロセスは、各セルが最初のマッピングにおいて有するインスタンスの数の情報を考慮するとともに、ライブラリから削除されるときに顕著なコスト増加を意味することのないわずかなインスタンスを伴うセルを削除する目標を有する。
ライブラリ強化プロセスのための次のステップは、使用される各セルが、十分な数のサイズにおいて利用可能でなくてはならないことを考慮する。このように、(X1、X1.5、X2、X4などの)サイズ変形体が、ライブラリを構成するための選択された各セルのために、ライブラリに追加される。これは、配置およびルーティングツールが効果的に最終のタイミングクロージャおよび最適化を実行できるように用いられる。
一旦サイズが追加されると、新しいテンプレートがライブラリのために定義され得る。セルおよびインスタンスの数が既知であるので、全体の実行コストを低減するテンプレートを選択するために、ライブラリ生成ツールAPIを用いて、異なるテンプレートのためのセルの特性について調べることが可能である。
図14Aおよび14Bは、同じ論理機能についての2つの異なるテンプレートの用途を例示する。セルは、9つのトラックのテンプレート(図14A)および7つのトラックのテンプレート(図14B)に対して、異なるように適合することに注目すべきである。この特定の場合において、7つのトラックテンプレートがより小さな領域をもたらすことに気づくことができる。この状態はセルごとに変化し、重み付けされた決定がセルインスタンスの数または他の基準に基づいて採用される。いくつかのセルサイズはこのプロセスの間に変化され使用のヒストグラムを変化するので、このステップは、最終のタイミングクロージャの後に再び適用され得る。
本発明のこの説明は、例示および説明の目的のために提示された。それは、網羅的または説明された詳細な形式に本発明を限定することを意図したものではなく、多くの修正およびバリエーションが、上記の教示の範囲において可能である。実施形態は、本発明の原理およびその実質的な用途を最もよく説明するために選択され、かつ説明された。この説明は、他の当業者が、様々な実施形態においておよび特定の使用に対して適合するような様々な修正とともに本発明を最もよく利用しかつ実現できるようにする。本発明の範囲は、以下の特許請求の範囲によって定義される。

Claims (25)

  1. 回路設計における使用のためのライブラリの最適化のための方法であって、
    初期回路ネットリストを提供するステップと、
    1つまたはより多くの既存セルの組を提供するステップと、
    前記1つまたはより多くの既存セルの組に加えて、1つまたはより多くの追加的に許容可能なセルの組を提供するステップと、
    少なくとも1つのコンピュータプロセッサを用いて、最初から存在するセルの組、および、許容可能セルの追加的な組を考慮して実行コストを低減するセルを検索するために、前記初期回路ネットリストを解析するステップとを備え、
    前記解析するステップは、前記最初から存在するセルの組および前記許容可能セルの追加的な組を考慮しながら、前記回路を再マッピングするステップを含み、
    前記方法は、
    潜在的に設計コストを低減する、前記既存セルのサブセットおよび前記許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力するステップと、
    新しい再マッピングされたネットリストを出力するステップとを備え、
    前記許容可能機能の追加的な組は、組合せ論理機能を実現するために、両方のトランジスタ平面における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義される、方法。
  2. 前記初期回路ネットリストは、複数のセルまたはブール方程式の表現の少なくとも1つによって提供される、請求項1に記載の方法。
  3. 前記許容可能セルの追加的な組は、
    追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含む、請求項1に記載の方法。
  4. 前記許容可能セルの追加的な組は、
    追加的に利用可能なセルを列挙する明示的な組を含み、
    追加的な許容可能な論理関数の各々は異なる実行例を有し得る、請求項1に記載の方法。
  5. 前記許容可能セルの追加的な組は、
    いくつかのパラメータを通して非明示的に定義された機能またはセルの組を含む、請求項1記載の方法。
  6. 前記許容可能セルの追加的な組は、
    許容される最大の入力数によって非明示的に定義された機能またはセルの組を含む、請求項1に記載の方法。
  7. 前記許容可能セルの追加的な組は、
    直列または並列結合された、直列および並列のスイッチの最大数によって非明示的に定義された機能またはセルの組を含む、請求項1に記載の方法。
  8. 前記許容可能セルの追加的な組は、
    前記関数のバイナリデシジョンダイアグラム(BDD)実行例における直列のアークの最大数によって非明示的に定義されたセルの組を含む、請求項1に記載の方法。
  9. 前記許容可能セルの追加的な組は、
    一般的なトランジスタ実行例における直列のスイッチの最大許容数によって非明示的に定義される機能またはセルの組を含む、請求項1に記載の方法。
  10. 前記1つまたはより多くの既存セルの組は、空の組を含む、請求項1に記載の方法。
  11. 前記1つまたはより多くの既存セルの組は、許容されない組を含む、請求項1に記載の方法。
  12. 前記1つまたはより多くの追加的に許容可能なセルの組は、非明示的に記述された組を含む、請求項1に記載の方法。
  13. 前記1つまたはより多くの追加的に許容可能なセルの組は、前記非明示的に記述された組を含むとともに、さらに明示的な記述も含む、請求項12に記載の方法。
  14. 回路設計における使用のためにライブラリを最適化するための方法をコンピュータに実現させるためのプログラムであって、前記プログラムは、前記コンピュータに、
    初期回路ネットリストを準備するステップと、
    1つまたはより多くの組の既存セルを準備するステップと、
    前記1つまたはより多くの既存セルの組に加えて、1つまたはより多くの組の追加的な許容可能セルの組を準備するステップと、
    最初から存在するセルの組、および、許容可能セルの追加的な組を考慮して実行コストを低減するセルを検索するように、前記初期回路ネットリストを解析するステップと、
    潜在的に設計コストを低減する、前記既存セルのサブセットおよび前記許容可能セルのサブセットを含む、1つまたはより多くの新しいセルライブラリ仕様および記述を出力するステップとを実行させ
    前記許容可能機能の追加的な組は、組合せ論理機能を実現するために、両方のトランジスタ平面における直列のスイッチの数についての正確な下限内のスイッチの最大許容数によって非明示的に定義される、プログラム
  15. 前記プログラムは、前記コンピュータに、前記最初から存在するセルの組および前記許容可能セルの追加的な組を考慮しながら、前記回路を再マッピングするステップをさらに実行させる、請求項14に記載のプログラム
  16. 前記プログラムは、前記コンピュータに、新しい再マッピングされたネットリストを出力するステップをさらに実行させる、請求項15に記載のプログラム
  17. 前記許容可能セルの追加的な組は、
    追加的に利用可能な機能またはセルを列挙する、少なくとも1つの明示的な組を含む、請求項16に記載のプログラム
  18. 前記許容可能セルの追加的な組は、
    追加的に利用可能なセルを列挙する明示的な組を含み、
    追加的に許容可能な論理関数の各々は異なる実行例を有し得る、請求項16に記載のプログラム
  19. 前記1つまたはより多くの追加的に許容可能なセルの組は、入によって記述される、請求項14に記載のプログラム
  20. 前記1つまたはより多くの追加的に許容可能なセルの組は、直列−並列の実行例における、直列および並列のトランジスタの数によって記述される、請求項14に記載のプログラム
  21. 前記1つまたはより多くの追加的に許容可能なセルの組は、バイナリデシジョンダイアグラム(BDD)の高さによって記述される、請求項14に記載のプログラム
  22. 前記1つまたはより多くの追加的に許容可能なセルの組は、一般的なスイッチ実行例において達成可能な最小長さのトランジスタチェーンによって記述される、請求項14に記載のプログラム
  23. 前記1つまたはより多くの既存セルの組は、空の組を含む、請求項14に記載のプログラム
  24. 前記1つまたはより多くの既存セルの組の少なくとも一部分は、「使用不可」と示されるようにマーキングされる、請求項14に記載のプログラム
  25. 前記初期回路ネットリストは、レジスタ転送レベル(RTL)記述から取得される、請求項14に記載のプログラム
JP2010546000A 2008-02-05 2009-02-05 集積回路設計およびライブラリの最適化 Expired - Fee Related JP5127935B2 (ja)

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 JP2011525261A (ja) 2011-09-15
JP2011525261A5 JP2011525261A5 (ja) 2012-03-22
JP5127935B2 true JP5127935B2 (ja) 2013-01-23

Family

ID=40952683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010546000A Expired - Fee Related JP5127935B2 (ja) 2008-02-05 2009-02-05 集積回路設計およびライブラリの最適化

Country Status (4)

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

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102279899B (zh) * 2011-04-01 2013-05-01 无锡中科微电子工业技术研究院有限责任公司 对精简标准单元库进行优化的方法
CN102663175B (zh) * 2012-03-27 2013-11-06 苏州芯禾电子科技有限公司 一种射频无源器件三维模型的构建系统以及构建方法
KR101904417B1 (ko) * 2012-03-30 2018-10-08 삼성전자주식회사 반도체 집적 회로 및 그 설계 방법
CN107567622B (zh) * 2015-07-08 2021-06-25 慧与发展有限责任合伙企业 光子电路设计系统和计算机可读介质
US10528696B2 (en) * 2016-02-29 2020-01-07 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 (zh) * 2017-10-23 2018-01-19 宜宾学院 模拟电路实验设备及其所需电子元件的确定方法
CN108846160B (zh) * 2018-05-03 2023-03-10 上海华虹宏力半导体制造有限公司 标准单元库电路设计方法
TWI761750B (zh) * 2020-01-08 2022-04-21 國立雲林科技大學 類比電路效能自動化分析系統及其方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120372A (ja) * 1991-10-25 1993-05-18 Nec Corp ゲートアレイの設計方式
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
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 (ja) * 2000-03-21 2001-09-28 Katsumi Hashimoto 複合ゲート合成装置、複合ゲート合成プログラムを格納した記録媒体および半導体装置
DE10025583A1 (de) * 2000-05-24 2001-12-06 Infineon Technologies Ag Verfahren zur Optimierung integrierter Schaltungen, Vorrichtung zum Entwurf von Halbleitern und Programmobjekt zum Entwerfen integrierter Schaltungen
JP2003036280A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 設計用データライブラリ、半導体集積回路の設計方法、及び半導体集積回路の製造方法
US7496867B2 (en) * 2007-04-02 2009-02-24 Lsi Corporation Cell library management for power optimization

Also Published As

Publication number Publication date
EP2257900A4 (en) 2012-10-17
WO2009100237A3 (en) 2009-11-05
JP2011525261A (ja) 2011-09-15
EP2257900A2 (en) 2010-12-08
WO2009100237A2 (en) 2009-08-13
CN101990671A (zh) 2011-03-23

Similar Documents

Publication Publication Date Title
US8484601B2 (en) Optimizing cell libraries for integrated circuit design
JP5127935B2 (ja) 集積回路設計およびライブラリの最適化
US6080201A (en) Integrated placement and synthesis for timing closure of microprocessors
CN107918694B (zh) 用于减少集成电路上的延迟的方法
KR101336516B1 (ko) Eda 툴 설계 뷰들에서 정보를 보호하기 위한 방법 및프로그램 제품
US11010511B2 (en) Scalable boolean methods in a modern synthesis flow
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
US9443050B2 (en) Low-voltage swing circuit modifications
Kravets et al. Implicit enumeration of structural changes in circuit optimization
Gubbi et al. Survey of machine learning for electronic design automation
Witschen et al. CIRCA: Towards a modular and extensible framework for approximate circuit generation
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
US20140075401A1 (en) Bit slice elements utilizing through device routing
Modi et al. ECO-map: Technology remapping for post-mask ECO using simulated annealing
Chen et al. Simultaneous placement with clustering and duplication
US9177090B1 (en) In-hierarchy circuit analysis and modification for circuit instances
Wang et al. Dual-output LUT merging during FPGA technology mapping
Reis et al. Physical awareness starting at technology-independent logic synthesis
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
Chang et al. SafeResynth: A new technique for physical synthesis

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