(57)【要約】【課題】論理ゲートの面積が必要以上に大きくなることを防止可能にした半導体集積回路の設計支援装置を提供する。【解決手段】所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートおよび複数種の論理ゲート毎に上記サイズの可変範囲の情報が属性値として登録されたライブラリと、特性値に関する制約条件とを記憶する記憶部と、予め定められた機能仕様に基づいて複数種の論理ゲートから１つの論理ゲートを選択し、選択した論理ゲートの上記サイズを可変範囲で変化させ、特性値が制約条件を満たす最小値にサイズを設定する制御部と、を有する。【選択図】図１
2014052857.tif 000002
【特許請求の範囲】
【請求項１】
所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートならびに該複数種の論理ゲート毎に前記サイズの可変範囲を示す最大値および最小値が属性値として登録されたライブラリと、前記特性値に関する制約条件とを記憶する記憶部と、
予め定められた機能仕様に基づいて前記複数種の論理ゲートから１つの論理ゲートを選択し、選択した論理ゲートの前記サイズを前記可変範囲で変化させ、前記特性値が前記制約条件を満たす最小値に前記サイズを設定する制御部と、
を有する半導体集積回路の設計支援装置。
【請求項２】
請求項１記載の半導体集積回路の設計支援装置において、
前記ライブラリに、前記複数種の論理ゲート毎に前記属性値の最大値および最小値に対応して、前記機能仕様に基づく境界条件をパラメータとして前記特性値に相当する第１および第２の値をそれぞれ求めるための第１および第２のテーブルが予め登録され、
前記制御部は、
前記選択した論理ゲートについて、前記境界条件にしたがって前記第１のテーブルで求まる前記第１の値と前記第２のテーブルで求まる前記第２の値との間で前記特性値を変化させ、該変化に対応して前記サイズを前記可変範囲で変化させ、該特性値が前記制約条件を満たす該サイズの最小値を探索する、半導体集積回路の設計支援装置。
【請求項３】
請求項１記載の半導体集積回路の設計支援装置において、
前記ライブラリに、前記複数種の論理ゲート毎に前記機能仕様に基づく境界条件および前記サイズを入力パラメータとして前記特性値を算出する近似多項式が予め登録され、
前記制御部は、
前記選択した論理ゲートに対応する前記近似多項式に前記境界条件を代入し、該近似多項式に代入する前記サイズを前記可変範囲で変化させ、該近似多項式から算出される特性値が前記制約条件を満たす該サイズの最小値を探索する、半導体集積回路の設計支援装置。
【請求項４】
請求項１から３のいずれか１項記載の設計支援装置において、
前記特性値が遅延値であり、前記サイズが前記論理ゲートに含まれる電界効果トランジスタのゲート電極の長手方向の寸法である、設計支援装置。
【請求項５】
記憶部を有する設計支援装置による半導体集積回路の設計方法であって、
前記記憶部に、所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートならびに該複数種の論理ゲート毎に前記サイズの可変範囲を示す最大値および最小値が属性値として登録されたライブラリと、前記特性値に関する制約条件とを格納し、
予め定められた機能仕様に基づいて前記複数種の論理ゲートから１つの論理ゲートを選択し、
選択した論理ゲートの前記サイズを前記可変範囲で変化させ、前記特性値が前記制約条件を満たす最小値に前記サイズを設定する、半導体集積回路の設計方法。
【請求項６】
コンピュータに、
所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートならびに該複数種の論理ゲート毎に前記サイズの可変範囲を示す最大値および最小値が属性値として登録されたライブラリと、前記特性値に関する制約条件とを格納する手順と、
予め定められた機能仕様に基づいて前記複数種の論理ゲートから１つの論理ゲートを選択する手順と、
選択した論理ゲートの前記サイズを前記可変範囲で変化させ、前記特性値が前記制約条件を満たす最小値に前記サイズを設定する手順を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計支援装置および設計方法、ならびにその方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integrated Circuit）の設計は、機能仕様および設計制約からなる設計仕様に基づいて行われる。機能仕様はＬＳＩに実現させる機能に関する仕様である。設計制約は、トランジスタの占める面積等の物理的な制約条件と、消費電力等の特性に関する制約条件とを含む。図７はＬＳＩの設計仕様から製造までの大まかな手順を示すフロー図である。図７に示すように、ＬＳＩの設計は論理設計および物理設計に大きく２つに分けられる。
【０００３】
ＬＳＩには膨大な数のトランジスタが用いられており、設計者の作業負担を軽減するために、設計作業の一部を情報処理装置に実行させることが行われている。ＬＳＩ設計を支援するためのレイアウト装置の一例が特許文献１に開示されている。
【０００４】
ＬＳＩ設計を効率的に行うための手法の一例として、セルベース合成設計手法を簡単に説明する。以下では、論理合成および物理合成の処理を実行可能な情報処理装置を自動合成ツールと称する。
【０００５】
図８は関連するセルベース合成設計手法による論理合成および物理合成の一例を示すフロー図である。図８は、図７に示した設計仕様が決まった後のＬＳＩ設計におけるフローを示す。図７に示した論理設計の手順の一例が図８に示す論理合成フローに相当し、図７に示した物理設計の手順の一例が図８に示す物理合成フローに相当する。
【０００６】
セルベース合成設計手法は、トランジスタの能力を離散的に設定したセル毎にレイアウトおよびセルの特性を現す指標をキャラクタライズして予めライブラリ化し、ライブラリ化した複数種のセルを論理合成および物理合成に用いるものである。セルの特性とは、タイミング、パワー、入力容量等である。また、各セルでは、レイアウトが固定されているので、トランジスタの能力も固定されている。
【０００７】
トランジスタの能力に影響があるパターンのサイズとして、例えば、ゲート幅（Ｗ値）がある。ゲート幅はゲート電極の長手方向の寸法に相当する。トランジスタのゲート幅はチャネル幅と呼ばれることもある。
【０００８】
トランジスタのゲート幅は、複数のトランジスタで構成される論理ゲートのドライバ能力に関係している。ここで言う「ドライバ能力」は、論理ゲートの出力側に接続される他の論理ゲートに対する駆動能力を意味する。ゲート幅とドライバ能力は、ゲート幅が大きいほどドライバ能力が大きくなるという関係にある。
【０００９】
図８に示すライブラリ、ＲＴＬ（Register Transfer Level）およびタイミング制約の情報は、自動合成ツールの記憶部に予め登録される。ライブラリには、上述の複数種のセルが登録されている。ＲＴＬは、図７に示した機能仕様に対応する回路をハードウェア記述言語（ＨＤＬ）で表現したものである。タイミング制約は図７に示した設計制約に基づくものである。
【００１０】
図９Ａは図８に示したライブラリを説明するための図である。以下では、論理ゲートがインバータセルの場合で説明する。
【００１１】
ドライバ能力の異なる複数種のインバータセル毎にそのレイアウトが予めライブラリに登録されている。図９Ａは、インバータセルＩＮＶ＿１ｘ、ＩＮＶ＿２ｘ、・・・、ＩＮＶ＿ｎｘ（ｎは２以上の整数）の複数種のセルがライブラリに登録されている様子を模式的に示す。各インバータセルについて、セルのレイアウトの他に、特性テーブルがライブラリに登録されている。特性テーブルは、セルの出力ピン毎に登録され、さらに、出力の遷移（立ち上がり、立ち下がり）毎に登録されていてもよい。説明を簡単にするために、各インバータセルの出力ピンに対応して１つの特性テーブルが登録されている場合で説明する。
【００１２】
図９Ｂは図９Ａに示した特性テーブルの一例を示す図である。
【００１３】
図９Ｂは、入力信号の傾き（Slew）と出力の負荷容量をパラメータとしてインバータセルの特性値を求めるためのテーブルを示す。ここでは、特性値を遅延（ディレイ）としている。図９Ｂに示す特性テーブルには、入力信号の傾きとして、ａ、ｂ、ｃ等の異なる値が最左列に縦方向に順に記述され、出力の負荷容量として、Ａ、Ｂ、Ｃ等の異なる値が最上段に横方向に順に記述されている。そして、図９Ｂに示すように、入力信号の傾きおよび出力の負荷容量に対応して、遅延Ｄ１、Ｄ２、・・・が記述されている。
【００１４】
ここで、入力信号の傾きと出力の負荷容量が遅延に影響を及ぼす理由を説明する。
【００１５】
入力信号の傾きは、ライブラリ上で予め決められた信号のＬｏｗとＨｉｇｈを認識するための電位の閾値間を遷移するのに要する時間(transition time)で定義されている。入力信号の傾きは、例えば、信号がＬｏｗからＨｉｇｈに遷移する場合、電源電圧の２５％から７５％への変化に要する時間で定義される。
【００１６】
あるセルの出力が駆動するセルの数（ファンアウト数）が大きいと、充放電しなければならない入力ゲート容量の総和が大きくなる。その結果、ドライブする信号の傾きが大きくなり、信号がＬｏｗからＨｉｇｈ(またはＨｉｇｈからＬｏｗ)に遷移する時間が長くなる。これがドライブされるセルの遅延を大きくする。
【００１７】
出力の負荷容量はセルの出力側に接続されるファンアウト数に比例して大きくなる。ドライバ能力が一定の場合、負荷容量が大きいほど充放電する時間が長くなり、遅延が大きくなる。このように、出力の負荷容量はドライブするセルの遅延に影響する。
【００１８】
ドライバ能力が高ければ容量を充放電する時間が短くなり、遅延が小さくなる。その反対に、ドライバ能力が低ければ容量を充放電する時間が長くなり、遅延が大きくなる。つまり、遅延を小さくするにはセルのドライブ能力を大きくする必要があり、ドライブ能力を大きくするにはゲート幅の大きいセルを選択すればよい。
【００１９】
入力信号の傾きおよび出力の負荷容量は、選択対象のセルの前段および後段の境界において、複数種のセルから１つのセルを選択するための条件であることから、以下では、境界条件と称する。
【００２０】
このように、インバータセルＩＮＶ＿ｓｘ（ｓは１〜ｎの整数）に対応して、境界条件から遅延値を求めるためのテーブル参照形式のデータがライブラリに登録されている。
【００２１】
図１０は図８に示したライブラリに予め登録されたセルのレイアウトの一例を示す図である。図１０は、ゲート幅の異なる２種類のインバータセルＩＮＶ＿１ｘ、ＩＮＶ＿２ｘのレイアウトを示す。図１０の左右方向をＸ軸方向とし、図１０の上下方向をＹ軸方向とする。
【００２２】
図１０に示す２種類のセルを参照すると、セルの上端および下端には、Ｘ軸方向に平行に電源配線５１および接地配線５２が配置されている。セル内に、ＰチャネルＭＯＳ（Metal Oxide Semiconductor）（以下では、ＰＭＯＳと表記する）トランジスタ６１と、ＮチャネルＭＯＳ（以下では、ＮＭＯＳと表記する）トランジスタ６２とが設けられている。
【００２３】
電源配線５１の近傍にＰＭＯＳトランジスタ６１が配置され、ＰＭＯＳトランジスタ６１のソース電極が電源配線５１とコンタクト（不図示）および配線を介して接続されている。接地配線５２の近傍にＮＭＯＳトランジスタ６２が配置され、ＮＭＯＳトランジスタ６２のソース電極が接地配線５２とコンタクト（不図示）および配線を介して接続されている。ＰＭＯＳトランジスタ６１およびＮＭＯＳトランジスタ６２のそれぞれのゲート電極がコンタクト（不図示）および配線を介して接続され、それぞれのドレイン電極がコンタクト（不図示）および配線を介して接続されている。
【００２４】
なお、ＰＭＯＳトランジスタ６１とＮＭＯＳトランジスタ６２の間には配線用トラック領域が設けられており、この領域に自動設計で配線が配置されるが、ここでは、その詳細な説明を省略する。
【００２５】
説明を簡単にするために、インバータセルＩＮＶ＿１ｘのゲート幅を１．０μｍとし、インバータセルＩＮＶ＿２ｘのゲート幅を２．０μｍとする。これらのインバータセルＩＮＶ＿１ｘ、ＩＮＶ＿２ｘのレイアウトは、レイアウトを変更できない「固定レイアウト」である。つまり、ゲート幅が１．０μｍの次に大きいゲート幅が２．０μｍである。キャラクタライズ工数の制約により、このように、通常、離散的なドライバ能力のセル群がライブラリとして用意されている。
【００２６】
次に、図８を参照して、情報処理装置が実行する論理合成の手順を説明する。
【００２７】
情報処理装置は、ＲＴＬからゲート論理への落とし込みを行う（ステップＬ１０１）。続いて、情報処理装置は、クリティカルパス上のゲートに対し、入力信号の傾きと出力の負荷容量とから最適なドライバ能力のセルを選択する（ステップＬ１０２）。その後、情報処理装置は、タイミング制約を満たすまでロジックの組み換えや論理ゲートのサイズ換えで最適化を行う（ステップＬ１０３）。このようにして、論理合成フローでは、ライブラリ、ＲＴＬおよびタイミング制約に基づいて、ＲＴＬがゲートレベルのネットリストに変換される。
【００２８】
ここで、ステップＬ１０３における動作の具体例を説明する。
【００２９】
図１１は、合成された論理中のクリティカルパスに配置する論理ゲートのセルを決定する方法を説明するための図である。この論理ゲートにおいて、タイミング制約で要求される遅延（以下では、要求遅延と称する）が０．３ｎｓ以下であるものとする。
【００３０】
情報処理装置は、ステップＬ１０２において、はじめにインバータセルＩＮＶ＿１ｘを選択する。そして、情報処理装置は、インバータセルＩＮＶ＿１ｘの特性テーブルを参照して機能仕様に基づく境界条件から遅延を求める。インバータセルＩＮＶ＿１ｘの遅延が０．４ｎｓであるとすると、０．４ｎｓ＞０．３ｎｓなので、ステップＬ１０３において、情報処理装置は、インバータセルＩＮＶ＿１ｘが要求遅延を満たさないと判定する。
【００３１】
続いて、情報処理装置は、インバータセルＩＮＶ＿２ｘを選択し、インバータセルＩＮＶ＿２ｘの特性テーブルを参照して境界条件から遅延を求める。インバータセルＩＮＶ＿２ｘの遅延が０．１ｎｓであるとすると、０．１ｎｓ＜０．３ｎｓなので、情報処理装置は、インバータセルＩＮＶ＿１ｘが要求遅延を満たすと判定する。
【００３２】
判定の結果、情報処理装置は、上記のクリティカルパスにインバータセルＩＮＶ＿２ｘを配置したネットリストを作成する。この場合、遅延に０．２ｎｓの余裕があるが、ゲート幅Ｗ＝２．０μｍがタイミング制約を満たすインバータセルのＷ値の最小サイズとなる。
【００３３】
次に、図８を参照して、情報処理装置が実行する物理合成の手順を説明する。
【００３４】
情報処理装置は、論理合成フローで決定したネットリストと、ライブラリとを参照して、配置・簡易配線（負荷抽出）を行う（ステップＰ１０１）。続いて、情報処理装置は、クリティカルパス上の論理ゲートに対し、入力信号の傾きと出力の負荷容量とから最適なドライバ能力のセルを選択し（ステップＰ１０２）、配置・詳細配線（負荷抽出）を行う（ステップＰ１０３）。その後、情報処理装置は、タイミング制約を満たすまで配置調整・ゲートのサイズ換え・バッファ挿入で最適化を行う（ステップＰ１０４）。ステップＰ１０４において、情報処理装置は、ステップＬ１０３と同様にセル選択の処理を行う。このようにして、物理合成フローでは、論理合成フローで決定されたネットリストと、ライブラリおよびタイミング制約とに基づいて、論理ゲートおよび配線の配置が決まる。
【先行技術文献】
【特許文献】
【００３５】
【特許文献１】特開平０５−２４２１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００３６】
自動合成ツールは、限られたセルレパートリー内でのタイミング調整を強いられるため、時として仕様を過剰に上回るドライバ能力のセルを使用することにより、面積または消費電力等に無駄が生じるという問題があった。例えば、図８を参照して説明したＬＳＩ設計フローでは、要求遅延の条件を満たすためには、ゲート幅が２．０μｍのインバータセルを選択せざるを得ず、この場合、面積が必要以上に大きくなってしまう。
【００３７】
この問題に対して、ライブラリに予め登録するセルの数を増やすことも考えられる。しかし、セルのキャラクタライズには、多くの回路シミュレーションを行う必要があり、セルの数に比例して多大な工数を要する。さらに、製造プロセスの変更による設計基準の更新等、セルの特性に影響を及ぼす変更が生じる度に、キャラクタライズを行わなければならず、限られたセル群に限定せざるを得ない。このような現実的なキャラクタライズ工数との兼ね合いにより、どうしても離散的で、限られたドライバ能力のセルレパートリーしか準備できず、その範囲内で設計しなければならない。
【課題を解決するための手段】
【００３８】
本発明の半導体集積回路の設計支援装置は、
所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートならびに該複数種の論理ゲート毎に前記サイズの可変範囲を示す最大値および最小値が属性値として登録されたライブラリと、前記特性値に関する制約条件とを記憶する記憶部と、
予め定められた機能仕様に基づいて前記複数種の論理ゲートから１つの論理ゲートを選択し、選択した論理ゲートの前記サイズを前記可変範囲で変化させ、前記特性値が前記制約条件を満たす最小値に前記サイズを設定する制御部と、
を有する構成である。
【００３９】
本発明によれば、予めライブラリに登録した可変範囲で特性値に関連するパターンのサイズを変化させることで、サイズ選択の幅を広げることが可能となり、特性値が制約条件を満たす上記サイズの最小値を論理ゲートに設定することで、論理ゲートのレイアウトが必要以上に大きくなることを防ぐことが可能となる。
【００４０】
また、本発明の半導体集積回路の設計方法は、記憶部を有する設計支援装置による半導体集積回路の設計方法であって、
前記記憶部に、所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートならびに該複数種の論理ゲート毎に前記サイズの可変範囲を示す最大値および最小値が属性値として登録されたライブラリと、前記特性値に関する制約条件とを格納し、
予め定められた機能仕様に基づいて前記複数種の論理ゲートから１つの論理ゲートを選択し、
選択した論理ゲートの前記サイズを前記可変範囲で変化させ、前記特性値が前記制約条件を満たす最小値に前記サイズを設定するものである。
【００４１】
さらに、本発明のプログラムは、コンピュータに、
所定の特性値に関連するパターンのサイズが離散的に設定された複数種の論理ゲートならびに該複数種の論理ゲート毎に前記サイズの可変範囲を示す最大値および最小値が属性値として登録されたライブラリと、前記特性値に関する制約条件とを格納する手順と、
予め定められた機能仕様に基づいて前記複数種の論理ゲートから１つの論理ゲートを選択する手順と、
選択した論理ゲートの前記サイズを前記可変範囲で変化させ、前記特性値が前記制約条件を満たす最小値に前記サイズを設定する手順を実行させるものである。
【発明の効果】
【００４２】
本発明によれば、キャラクタライズ工数を増加させることなく、論理ゲートの選択の幅を広げることができ、論理ゲートの面積が過剰に大きくなることを防止できる。
【図面の簡単な説明】
【００４３】
【図１】第１の実施形態における設計支援装置の一構成例を示すブロック図である。
【図２】第１の実施形態におけるライブラリを説明するための図である。
【図３】第１の実施形態におけるライブラリに予め登録されたセルの一例を示す図である。
【図４】第１の実施形態の設計支援装置による設計方法の動作手順を示すフローチャートである。
【図５】第２の実施形態におけるライブラリを説明するための図である。
【図６】第２の実施形態の設計支援装置による設計方法の動作手順を示すフローチャートである。
【図７】ＬＳＩの設計仕様から製造までの手順を示すフロー図である。
【図８】関連するセルベース合成設計手法による論理合成および物理合成の一例を示すフロー図である。
【図９Ａ】図８に示したライブラリを説明するための図である。
【図９Ｂ】図９Ａに示した特性テーブルの一例を示す図である。
【図１０】図８に示したライブラリに予め登録されたセルのレイアウトの一例を示す図である。
【図１１】クリティカルパスに配置する論理ゲートのセルを決定する方法を説明するための図である。
【発明を実施するための形態】
【００４４】
（第１の実施形態）
本実施形態の設計方法を実行する設計支援装置の構成を説明する。図１は本実施形態における設計支援装置の一構成例を示すブロック図である。
【００４５】
図１に示すように、設計支援装置１０は、記憶部１２と、論理合成および物理合成の結果を表示する表示部１３と、設計者が指示を入力するための操作部１４と、制御部１５とを有する。
【００４６】
記憶部１２には、ライブラリ、ＲＴＬおよびタイミング制約の情報が予め登録されている。制御部１５は、プログラムにしたがって処理を実行するＣＰＵ（Central Processing Unit）（不図示）と、プログラムを記憶するメモリ（不図示）とを有する。
【００４７】
図２は本実施形態におけるライブラリを説明するための図である。本実施形態においても、論理ゲートがインバータセルの場合で説明する。
【００４８】
図１に示すライブラリには、ドライバ能力の異なる複数種のインバータセル毎にそのレイアウトが登録されている。図２は、インバータセルＩＮＶ＿１ｘ、ＩＮＶ＿２ｘ、・・・、ＩＮＶ＿ｎｘ（ｎは２以上の整数）の複数種のセルがライブラリに登録されている様子を模式的に示す。後述するが、本実施形態におけるインバータセルはゲート幅が変更可能な「可変レイアウト」である。本実施形態のライブラリには、セルＩＮＶ＿ｓｘ（ｓは１〜ｎの整数）毎にゲート幅の可変範囲を示す最大値Ｗｓｍａｘおよび最小値Ｗｓｍｉｎの情報が属性値として登録されている。
【００４９】
ＮＭＯＳトランジスタのゲート幅をＷｎと表し、ＰＭＯＳトランジスタのゲート幅をＷｐと表すと、実際には、ゲート幅Ｗｎ、Ｗｐのそれぞれについて最大値と最小値が属性値として登録されているが、説明を簡単にするために、ゲート幅Ｗｎ、Ｗｐを区別しないで説明する。
【００５０】
各インバータセルＩＮＶ＿ｓｘについて、セルのレイアウトの他に、図９Ｂを参照して説明したテーブルと同様な特性テーブルが登録されている。特性テーブルは、セルの出力ピン毎に限らず、本実施形態では、最大値Ｗｓｍａｘおよび最小値Ｗｓｍｉｎに対応して登録されている。
【００５１】
なお、特性テーブルは、ピン毎や、ゲート幅の最大値および最小値毎に限らず、さらに、出力の遷移毎に登録されていてもよい。また、特性テーブルは図９Ｂに示したような２次元テーブルの場合に限らず、１次元テーブルであってもよい。１次元テーブルとして、例えば、入力信号の傾きを境界条件として消費電力を求めるための特性テーブルが考えられる。
【００５２】
ゲート幅の大きさの関係は、ＩＮＶ＿ｓｘ＜ＩＮＶ＿（ｓ＋１）ｘになっている。ＩＮＶ＿ｓｘにおいて、ゲート幅はＷｓｍｉｎ〜Ｗｓｍａｘの範囲で可変である。ゲート幅の変更方法の詳細は後述する。
【００５３】
図３は本実施形態におけるライブラリに予め登録されたセルの一例を示す図である。
【００５４】
図３に示すように、本実施形態のセルは、電源配線５１、接地配線５２、ＰＭＯＳトランジスタ６１およびＮＭＯＳトランジスタ６２の配置が図１０に示したレイアウトと同様である。そのため、本実施形態では、これらの構成の配置と接続に関する詳細な説明を省略する。
【００５５】
インバータセルのＹ軸方向の長さである高さは図１０に示したレイアウトと同様に固定されているが、本実施形態のセルのレイアウトは、ゲート幅の可変範囲をＷｓｍｉｎ〜Ｗｓｍａｘとしているが、次のような条件がある。
【００５６】
各セルはドライバ能力が一段階下のセルの最大値以下にならないように最小値が設定されている。つまり、インバータセルＩＮＶ＿（ｓ＋１）ｘの最小ゲート幅Ｗ（ｓ＋１）ｍｉｎは、インバータセルＩＮＶ＿ｓｘの最大ゲート幅Ｗｓｍａｘ以下にならないように設定されている。これはドライバ能力のカバー範囲の重複をなくすためである。
【００５７】
また、セルのＹ軸方向の長さのうち、配線用トラック領域を除く範囲をＭＯＳトランジスタのゲート幅のとり得る最大長とする。
【００５８】
制御部１５は、論理合成および物理合成の処理において、機能仕様に基づいて複数種のインバータセルのうち、１つのインバータセルＩＮＶ＿ｓｘを選択する。そして、制御部１５は、選択したインバータセルＩＮＶ＿ｓｘのレイアウトを予め決められた可変範囲内で変更し、要求遅延を満たすようにインバータセルＩＮＶ＿ｓｘのレイアウトを設定する。その際、制御部１５は、可変対象をセル内のトランジスタのゲート幅のみとし、可変範囲をそのセルの属性値として登録されたＷｓｍｉｎとＷｓｍａｘの間の範囲とする。そして、制御部１５は、予め決められたＰ／Ｎレシオを保ちながらレイアウトを変更し、セルの遅延が要求遅延を満たすレイアウトのうち、ゲート幅を上記の可変範囲で最小値に設定する。Ｐ／Ｎレシオとは、ＰＭＯＳトランジスタとＮＭＯＳトランジスタのサイズの比を意味する。
【００５９】
ここまで、設計支援装置１０の構成について説明してきたが、図３に一例を示した「可変レイアウト」のセルについて詳しく説明する。
【００６０】
大手ＥＤＡ（Electronic Design Automation）ベンダーのレイアウトツールには、パラメタライズドセルという機能を備えているものがある。パラメタライズドセルとは、設計者がレイアウトツールを操作して、与えられたパラメータ値に応じたレイアウトを生成できる「可変レイアウト」の機能である。通常、パラメタライズドセルの可変部分はレイアウトツールに備えられたプログラミング言語によって実装される。
【００６１】
本実施形態は、このパラメタライズドセルの概念を論理合成および物理合成の自動レイアウトに導入するものであるが、パラメタライズドセルをそのまま適用するのではなく、可変部分を所定の特性値に関連するパターンに限定することで自動化を可能にしている。
【００６２】
図３に示したセルは、可変レイアウトセルの一例である。セル構造として、ＰＭＯＳトランジスタ／ＮＭＯＳトランジスタに固定した形式を想定している。配線用トラック領域を除いた部分にて、各ＭＯＳはセルの外形サイズを変えることなく、ゲート幅(＝ドライバ能力)を調整することを可能としている。
【００６３】
本実施形態では、例えば、ゲート幅が離散的に設定された２種類のセルについて、これらのセルのゲート幅の範囲を細分化してキャラクタライズを行う代わりに、パラメタライズドセルでゲート幅を可変にすることを可能にしている。
【００６４】
次に、本実施形態の設計支援装置による設計方法の手順を説明する。
【００６５】
図４は本実施形態の設計支援装置による設計方法の動作手順を示すフローチャートである。図４に示すフローは、図８に示した論理合成フローのステップＬ１０２〜Ｌ１０３における処理と、物理合成フローのステップＰ１０２およびＰ１０４における処理に相当する。
【００６６】
制御部１５は、予め決められた選択アルゴリズムにしたがって初期セルとしてインバータセルＩＮＶ＿１ｘを選択する（ステップ２０１）。初期セルの選択アルゴリズムは自動合成ツールによって異なり、本実施形態では、ライブラリに登録されているセルのうち、ゲート幅の最も小さいセルを初期セルとして選択するように設定されているものとする。
【００６７】
制御部１５は、ステップ２０１で選択したインバータセルＩＮＶ＿１ｘの特性テーブル（Ｗ１ｍａｘ）を参照し、機能仕様に基づく境界条件から遅延を求め、求めた遅延が要求遅延を満たすか否かを判定する（ステップ２０２）。制御部１５は、インバータセルＩＮＶ＿１ｘの遅延が要求遅延を満たす場合、ステップ２０４の処理に進む。その反対に、インバータセルＩＮＶ＿１ｘの遅延が要求遅延を満たさない場合、制御部１５は、次のインバータセルＩＮＶ＿２ｘを選択し（ステップ２０３、ステップ２０１）、インバータセルＩＮＶ＿２ｘについてステップ２０２の判定を行う。
【００６８】
ここでは、要求遅延が０．３ｎｓであり、インバータセルＩＮＶ＿１ｘ（Ｗ＝Ｗ１ｍａｘ）の遅延が０．４ｎｓであり、インバータセルＩＮＶ＿２ｘ（Ｗ＝Ｗ２ｍａｘ）の遅延が０．１ｎｓであるものとする。この場合、制御部１５は、インバータセルＩＮＶ＿２ｘを選択してステップ２０４の処理に進む。
【００６９】
ステップ２０４において、制御部１５は、インバータセルＩＮＶ＿２ｘのＷ２ｍａｘの特性テーブルとＷ２ｍｉｎの特性テーブルを参照し、これらの特性テーブルの遅延値を用いてテーブル間のデータを補いながらゲート幅のサイズを調整し、要求遅延を満たすゲート幅の最小値を探索する。このとき、制御部１５は、Ｐ／Ｎレシオを保ちながらゲート幅Ｗｎ、Ｗｐのサイズを変更する。以下に、テーブル間のデータを補うための補間計算処理の具体例を説明する。
【００７０】
インバータセルＩＮＶ＿２ｘのＷ２ｍａｘの特性テーブルにおける遅延値をＤ２ｘｍｉｎとし、インバータセルＩＮＶ＿２ｘのＷ２ｍｉｎの特性テーブルにおける遅延値をＤ２ｘｍａｘとする。上記のことから、Ｄ２ｘｍｉｎ＝０．１ｎｓであり、０．１ｎｓ＜Ｄ２ｘｍａｘ＜０．４ｎｓである。遅延値はＤ２ｘｍｉｎとＤ２ｘｍａｘとの間で、ゲート幅の可変範囲の変化に対してリニアーに変化するものと仮定する。この仮定の下で、要求遅延に対応するゲート幅を求める合成ツールエンジンが制御部１５のメモリ（不図示）内のプログラムに予め登録されている。
【００７１】
制御部１５が上記の合成ツールエンジンを実行することで、要求遅延を満たすゲート幅の最小値を求める。このとき、制御部１５は、プロセス上許容される、ゲート幅調整のグリッド精度のステップでゲート幅のサイズを変化させる。最適なゲート幅を見つけるための探索方法として、線形探索法を用いてもよく、より効率的な二分探索法を用いてもよい。
【００７２】
ステップ２０４の処理の後、制御部１５は、選択したインバータセルＩＮＶ＿２ｘにステップ２０４で求めたＷｎおよびＷｐの情報を反映させたネットリストを生成する。このようにして、論理合成では、ステップＬ１０３で最適化されたゲート幅の情報を含むネットリストが記憶部１２に格納される。
【００７３】
その後、図８に示した物理合成フローにおけるステップＰ１０４において、制御部１５は、図４を参照して説明した処理と同様に行い、本実施形態では、その詳細な説明を省略する。以下に、物理合成フローにおける設計支援装置１０の動作を簡単に説明する。
【００７４】
物理合成フローにおいて、制御部１５は、ネットリストに含まれる、ゲート幅の値を元に実際のセルレイアウトをパラメタライズドセルをベースにして生成し、配置と配線を行う。図８に示したステップＰ１０４においても、制御部１５は、図４に示した手順にしたがって、必要に応じてゲート幅の微調整を行う。
【００７５】
なお、多くの場合、制御部１５は、ネットリストに基づいてステップＰ１０１の処理およびステップＰ１０３を行う際、予め決められた簡易ビュー生成ルールにしたがって、配置配線に必要なレイヤーのみを示す簡易ビューを生成して表示部１３に表示させる。
【００７６】
簡易ビューについて簡単に説明する。物理合成における、自動配置配線処理では、セルレイアウトの全ての情報を必要としない。そのため、表示するパターンとして、配置配線に関わらない層を含まず、配置配線に関わる層に限定した「簡易ビュー」を、設計者が使用するのが一般的である。つまり簡易ビューには、配置配線に関わる層の図形情報しか含まれていない。
【００７７】
配置配線に関わらない層とは、ＭＯＳトランジスタ以下の層であり、例えば、ＭＯＳトランジスタのゲート電極が形成されている導電性層や、ＭＯＳトランジスタのソース電極およびドレイン電極が形成されている拡散層などである。配置配線に関わる層とは、ＭＯＳトランジスタの上に形成される層間絶縁膜よりも上層に設けられる金属配線層であり、最下配線層となる第１配線層を含む配線層である。
【００７８】
簡易ビューは、通常、セルのキャラクタライズに対応してライブラリのコンポーネントとして予め準備されているが、本実施形態では、制御部１５が可変範囲で設定したゲート幅の値に応じて簡易ビューを生成する。
【００７９】
本発明の課題の欄で説明したように、ゲート幅が固定されたレイアウトをベースにキャラクタライズを行う場合、ゲート幅の選択の幅を広げようとすると、キャラクタライズ工数が増加するという問題があった。
【００８０】
これに対して、本実施形態では、セル毎にゲート幅の可変範囲を示す最大値および最小値を属性値として予めライブラリに登録し、可変範囲の任意のゲート幅に対応する遅延値を補間計算処理で算出可能にしている。そのため、キャラクタライズ工数を増加させることなく、ドライバ能力に関してバラエティに富んだセルライブラリを使用可能にしたのと同じ効果を得ることができる。その結果、細かなドライバ能力の調整が可能となり、自動合成された設計の無駄をなくすことができる。さらに、算出される遅延値が要求遅延を満たすゲート幅のうち、ゲート幅が最小値に設定されるので、レイアウトの無駄をなくし、セルの面積が過剰に大きくなることを防げるだけでなく、タイミング収束容易性が高まり、設計のＴＡＴ（Turn Around Time）の削減につながる。
【００８１】
本実施形態では、論理合成および物理合成の自動レイアウトにパラメタライズドセルの概念をそのまま導入するのではなく、可変部分を所定の特性値に関連するパターンに限定している。そして、これに対応して、ライブラリのフォーマットを変更し、テーブル間のデータを補間するための合成ツールエンジンを設けている。ライブラリフォーマットに拡張を施し、合成ツールエンジンを追加することにより、少ないキャラクタライズ労力で離散的なセルレパートリーの隙間を埋めることを可能にしている。
【００８２】
（第２の実施形態）
第１の実施形態では、ゲート幅を最大値と最小値の２点間で可変にすることでキャラクタライズを行い、その２点間の任意のゲート幅における遅延値は合成ツールエンジンの補間処理により求めるものであった。
【００８３】
本実施形態は、ライブラリのフォーマットをテーブル参照方式ではなく、ゲート幅および境界条件を引数とした数次の近似多項式の形で表し、その近似多項式を計算することにより遅延を求めるものである。
【００８４】
本実施形態の設計支援装置の構成を、図１および図５を参照して説明する。本実施形態においても、論理ゲートがインバータセルの場合で説明する。
【００８５】
図５は本実施形態におけるライブラリを説明するための図である。本実施形態では、第１の実施形態と異なる構成を詳しく説明し、第１の実施形態と同様な構成についての詳細な説明を省略する。
【００８６】
図５に示すライブラリには、第１の実施形態と同様に、ドライバ能力の異なる複数種のインバータセルセルＩＮＶ＿ｓｘ（ｓは１〜ｎの整数）毎に、そのレイアウトと、ゲート幅の可変範囲を示す最大値Ｗｓｍａｘおよび最小値Ｗｓｍｉｎの情報が属性値として登録されている。そして、本実施形態では、第１の実施形態で説明したテーブル参照形式のデータの代わりに、近似多項式がセル毎にライブラリに登録されている。近似多項式は、上述したように、境界条件とゲート幅を入力パラメータとし、遅延値を出力する。
【００８７】
近似多項式はキャラクタライズの際に求められ、ライブラリに予め登録される。例えば、１つのセルに関する近似多項式は、２〜３点の境界条件と、そのセルで取り得るゲート幅の最大値、最小値および中央値（最大値と最小値の平均値）とを用いて、近似多項式の係数を事前に算出しておけばよい。ライブラリに登録されるデータとしては、近似多項式と、上記のようにして求めた係数とを含む形になる。２〜３点の境界条件は、第１の実施形態で説明したような、キャラクタライズの際に作成される特性テーブルを参照すればよい。
【００８８】
次に、本実施形態の設計支援装置による設計方法を説明する。
【００８９】
図６は本実施形態の設計支援装置による設計方法の動作手順を示すフローチャートである。図６に示すフローは、図８に示した論理合成フローのステップＬ１０２〜Ｌ１０３における処理と、物理合成フローのステップＰ１０２およびＰ１０４における処理に相当する。
【００９０】
制御部１５は、予め決められた選択アルゴリズムにしたがって初期セルとしてインバータセルＩＮＶ＿１ｘを選択すると、ライブラリからインバータセルＩＮＶ＿１ｘの近似多項式を読み出し、機能仕様に基づく境界条件を近似多項式に代入する（ステップ２５１）。続いて、制御部１５は、インバータセルＩＮＶ＿１ｘのライブラリからゲート幅の最大値Ｗ１ｍａｘを読み出して近似多項式に代入する（ステップ２５２）。
【００９１】
そして、制御部１５は、近似多項式で算出される遅延値が要求遅延を満たすか否かを判定する（ステップ２５３）。制御部１５は、インバータセルＩＮＶ＿１ｘの遅延が要求遅延を満たす場合、ステップ２５５の処理に進む。その反対に、インバータセルＩＮＶ＿１ｘの遅延が要求遅延を満たさない場合、制御部１５は、次のインバータセルＩＮＶ＿２ｘを選択し（ステップ２５４、ステップ２５１〜２５２）、インバータセルＩＮＶ＿２ｘについてステップ２５３の判定を行う。
【００９２】
ここでは、第１の実施形態と同様に、ステップ２５３の判定の結果、インバータセルＩＮＶ＿２ｘの遅延が要求遅延を満たすものとし、制御部１５は、インバータセルＩＮＶ＿２ｘを選択してステップ２５５の処理に進む。
【００９３】
ステップ２５５において、制御部１５は、インバータセルＩＮＶ＿２ｘの近似多項式において代入するゲート幅の値を最小値Ｗ２ｍｉｎから最大値Ｗ２ｍａｘまでの範囲で変化させ、近似多項式から算出される遅延値が要求遅延を満たすゲート幅のうち、ゲート幅の最小値を探索する。探索により、制御部１５が、要求遅延を満たすゲート幅の最小値を求めると、選択したインバータセルＩＮＶ＿２ｘに、探索で求めたゲート幅の情報を反映させたネットリストを生成する。以降の処理は、第１の実施形態と同様になるため、その説明を省略する。
【００９４】
本実施形態によれば、１つの近似多項式を得るために２〜３点以上の複数点におけるキャラクタライズが必要となるため、第１の実施形態に比べて、キャラクタライズ工数が増加してしまうが、遅延の見積もりの精度が高くなることが期待できる。
【００９５】
なお、第１および第２の実施形態では、セルの特性値が遅延値の場合で説明したが、最適化のための特性項目は遅延に限らない。セルの特性項目には、例えば、境界条件に応じた遅延、消費電力、リーク消費電流および出力信号の傾きや、境界条件には依らない入力のゲート容量がある。セルの特性項目に対応して、第１の実施形態で説明した特性テーブルまたは第２の実施形態で説明した近似多項式を予め準備すればよい。
【００９６】
上記の第１および第２の実施形態によれば、キャラクタライズ工数を増加させることなく、論理ゲートの選択の幅を広げることができ、論理ゲートの面積が過剰に大きくなることを防止できる。
【符号の説明】
【００９７】
１０    設計支援装置
１２    記憶部
１５    制御部
【図１】
2014052857.tif 000003
【図２】
2014052857.tif 000004
【図３】
2014052857.tif 000005
【図４】
2014052857.tif 000006
【図５】
2014052857.tif 000007
【図６】
2014052857.tif 000008
【図７】
2014052857.tif 000009
【図８】
2014052857.tif 000010
【図９Ａ】
2014052857.tif 000011
【図９Ｂ】
2014052857.tif 000012
【図１０】
2014052857.tif 000013
【図１１】
2014052857.tif 000014