(57)【要約】【課題】複数のセルを含む回路の設計において消費電力を効率良く削減する。【解決手段】記憶部３１１は、回路に含まれる複数のセルの接続関係を示す接続情報を記憶する。生成部３１２は、接続情報に基づき、信号パスの分岐を含む回路トポロジに従って、複数のセルの置換順序を決定する。そして、生成部３１２は、置換順序に基づいてそれらのセルから置換対象セルを選択し、置換対象セルをそれよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する。【選択図】図３
2015201139.tif 000002
【特許請求の範囲】
【請求項１】
回路に含まれる複数のセルの接続関係を示す接続情報を記憶する記憶部と、
前記接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数のセルの置換順序を決定し、前記置換順序に基づいて前記複数のセルから置換対象セルを選択し、前記置換対象セルを前記置換対象セルよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する生成部と、
を備えることを特徴とする設計支援装置。
【請求項２】
前記生成部は、前記置換順序の上位に含まれるセルの個数が下位に含まれるセルの個数より多くなるように、前記置換順序を決定することを特徴とする請求項１記載の設計支援装置。
【請求項３】
前記生成部は、前記信号パス上において所定の入力ノードから前記複数のセルのうち１つのセルまでの間に存在するセルの個数に基づいて、前記置換順序を決定することを特徴とする請求項１又は２記載の設計支援装置。
【請求項４】
前記生成部は、前記信号パスを含む１つ以上の信号パスが前記複数のセルのうち１つのセルを通過する回数に基づいて、前記置換順序を決定することを特徴とする請求項１又は２記載の設計支援装置。
【請求項５】
前記生成部は、前記複数のセルのうち１つのセルの入力ノードにおいて前記信号パスが分岐している場合、前記入力ノードから信号が入力されるセルの個数に基づいて、前記置換順序を決定することを特徴とする請求項１又は２記載の設計支援装置。
【請求項６】
前記生成部は、複数のコーナー条件のうち第１のコーナー条件に基づいて複数の置換対象セルを複数の置換候補セルに置換することを示す第１の置換情報を生成し、前記複数の置換対象セルの接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数の置換対象セルの置換順序を決定し、前記複数の置換対象セルの前記置換順序に基づいて前記複数の置換対象セルからある置換対象セルを選択し、前記複数のコーナー条件のうち第２のコーナー条件に基づいて前記ある置換対象セルを置換候補セルに置換することを示す第２の置換情報を生成することを特徴とする請求項１乃至５のいずれか１項に記載の設計支援装置。
【請求項７】
コンピュータによって実行される設計支援方法であって、
回路に含まれる複数のセルの接続関係を示す接続情報を記憶する記憶部を参照し、
前記接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数のセルの置換順序を決定し、
前記置換順序に基づいて前記複数のセルから置換対象セルを選択し、
前記置換対象セルを前記置換対象セルよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する、
ことを特徴とする設計支援方法。
【請求項８】
回路に含まれる複数のセルの接続関係を示す接続情報を記憶する記憶部を参照し、
前記接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数のセルの置換順序を決定し、
前記置換順序に基づいて前記複数のセルから置換対象セルを選択し、
前記置換対象セルを前記置換対象セルよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する、
処理をコンピュータに実行させる設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援方法、及び設計支援プログラムに関する。
【背景技術】
【０００２】
近年、大規模集積回路（ＬＳＩ）の設計において、回路の消費電力の増大が非常に大きな問題となってきている。一方、駆動能力が小さい低電力セルを用いた低電力設計を行うと、遅延増加によるタイミングエラーが誘発されるという問題がある。
【０００３】
そこで、タイミング収束と低電力化の両立を実現するＬＳＩの自動設計方法が知られている（例えば、特許文献１を参照）。この自動設計方法では、まず、ＬＳＩの初期設計である機能設計の結果に基づき、タイミング規格を満足するように、駆動能力が大きく高電力の第１のセルを用いて論理合成が行われる。
【０００４】
次に、論理合成の結果生成された回路接続情報である第１のネットについて、タイミング収束の確認後に、第１のセルの配置配線である第１のレイアウトが実行される。そして、第１のレイアウトの検証後に、タイミング規格を考慮しながら、第１のセルを第１のセルより駆動能力が小さく低電力の第２のセルに置換する、第１のネットの修正が行われ、低電力化した第２のネットが生成される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３４２４００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のＬＳＩの自動設計方法には、以下のような問題がある。
ＬＳＩ内に多数のフリップフロップ（ＦＦ）間パスが存在する場合、ＦＦ間パス毎に、セルを置換したときのタイミングマージンと消費電力とを計算しながら置換を行うと、第１のネットの修正に膨大な処理時間がかかる。また、ＦＦ間パスが分岐したり合流したりすることにより、複数のＦＦ間パスが共有するセルが多数存在する場合は、処理時間がさらに増大する。
【０００７】
なお、かかる問題は、回路内のＦＦ間パス毎にセルを置換する場合に限らず、他のパス毎にセルを置換する場合においても生ずるものである。
【０００８】
１つの側面において、本発明は、複数のセルを含む回路の設計において消費電力を効率良く削減することを目的とする。
【課題を解決するための手段】
【０００９】
１つの案では、設計支援装置は、記憶部及び生成部を含む。記憶部は、回路に含まれる複数のセルの接続関係を示す接続情報を記憶する。生成部は、接続情報に基づき、信号パスの分岐を含む回路トポロジに従って、複数のセルの置換順序を決定する。そして、生成部は、置換順序に基づいてそれらのセルから置換対象セルを選択し、置換対象セルをそれよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する。
【発明の効果】
【００１０】
実施形態によれば、複数のセルを含む回路の設計において消費電力を効率良く削減することができる。
【図面の簡単な説明】
【００１１】
【図１】直列に接続された複数のＡＮＤゲートを含む回路を示す図である。
【図２】並列に接続された複数のＡＮＤゲートを含む回路を示す図である。
【図３】設計支援装置の機能的構成図である。
【図４】置換情報生成処理のフローチャートである。
【図５】設計支援装置の具体例を示す図である。
【図６】回路設計処理のフローチャートである。
【図７】置換情報生成処理の第１の具体例を示すフローチャート（その１）である。
【図８】置換情報生成処理の第１の具体例を示すフローチャート（その２）である。
【図９】セルの段数に基づく置換順序の第１の例を示す図である。
【図１０】セルの段数に基づく置換順序の第２の例を示す図である。
【図１１】パス通過回数に基づく置換順序を示す図である。
【図１２】セルの段数を示す図である。
【図１３】パス通過回数を示す図である。
【図１４】ファンアウト数を示す図である。
【図１５】置換候補テーブルｔｂｌＣのエントリを示す図である。
【図１６】置換対象テーブルｔｂｌＸのエントリを示す図である。
【図１７】ｔｂｌＣとｔｂｌＤを示す図である。
【図１８】置換情報テーブルｔｂｌＺのエントリを示す図である。
【図１９】タイミング余裕値が波及するセルを示す図である。
【図２０】複数のコーナー条件を用いた置換情報生成処理を示す図である。
【図２１】置換情報生成処理の第２の具体例を示すフローチャート（その１）である。
【図２２】置換情報生成処理の第２の具体例を示すフローチャート（その２）である。
【図２３】ｔｂｌＺとｔｂｌＣとｔｂｌＤを示す図である。
【図２４】複数のコーナー条件に基づくセルの置換を示す図である。
【図２５】情報処理装置の構成図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、実施形態を詳細に説明する。
回路内の比較的消費電力の大きなセルを置換対象セルとして選択し、置換対象セルをそれよりも消費電力の小さな置換候補セルに置換する操作を繰り返すことで、回路の消費電力を削減することができる。このとき、タイミング余裕値（slack）の大きなセルから順に置換対象セルとして選択すると、ある程度の個数のセルを置換したところで手詰まりとなり、消費電力がさらに削減される可能性があるにもかかわらず、置換処理が終了してしまうことがある。
【００１３】
例えば、あるセルについてタイミング余裕値を０にするような置換を行うと、その時点で置換処理が終了してしまう。しかし、タイミング余裕値をすべて使い切って消費電力の削減量を最大にするのではなく、削減量が多少小さくてもタイミング余裕値が残るようなセルに置換することにより、さらに他のセルを置換することが可能になる。その結果として、回路全体の消費電力がより大きく削減される場合がある。
【００１４】
図１は、直列に接続された複数のＡＮＤゲートを含む回路の例を示している。図１では、バッファと同様の機能を有する１入力１出力のＡＮＤゲートが用いられている。ここで、置換候補セルとして使用できるＡＮＤゲートが下記の３種類である場合を考える。
ＡＮＤ１  遅延：１０  消費電力：３０
ＡＮＤ２  遅延：２０  消費電力：２０
ＡＮＤ３  遅延：４０  消費電力：１０
【００１５】
図１（ａ）は、置換前の回路を示しており、ＡＮＤゲート１０１〜ＡＮＤゲート１０５はすべてＡＮＤ１である。この場合、ＡＮＤゲート１０１〜ＡＮＤゲート１０５を含む信号パスの総遅延は５０であり、タイミング余裕値は３０であり、総消費電力は１５０である。
【００１６】
図１（ｂ）は、タイミング余裕値３０をＡＮＤゲート１０２のみの置換に使用し、ＡＮＤゲート１０２をＡＮＤ１からＡＮＤ３へ置換した場合の回路を示している。この場合、信号パスの総遅延は８０となり、タイミング余裕値は０となり、総消費電力は１３０となる。この置換により、消費電力は２０だけ削減される。
【００１７】
図１（ｃ）は、タイミング余裕値３０をＡＮＤゲート１０２〜ＡＮＤゲート１０４の置換に使用し、３個のＡＮＤゲートをＡＮＤ１からＡＮＤ２へ置換した場合の回路を示している。この場合、信号パスの総遅延は８０となり、タイミング余裕値は０となり、総消費電力は１２０となる。この置換により、図１（ｂ）の場合よりもさらに消費電力が削減される。
【００１８】
また、ドライバセルが複数のレシーバセルへ信号を出力する場合、１個のドライバセルを置換するよりも複数のレシーバセルを置換した方が、回路全体の消費電力がより大きく削減されることもある。
【００１９】
図２は、ＡＮＤゲートの出力ノードに並列に接続された複数のＡＮＤゲートを含む回路の例を示している。
【００２０】
図２（ａ）は、置換前の回路を示しており、ＡＮＤゲート２０１〜ＡＮＤゲート２０８はすべてＡＮＤ１である。ドライバセルであるＡＮＤゲート２０２の出力ノードには、レシーバセルであるＡＮＤゲート２０３、ＡＮＤゲート２０５、及びＡＮＤゲート２０７が接続されており、この出力ノードのネットのファンアウト数は３である。
【００２１】
この場合、ＡＮＤゲート２０１〜ＡＮＤゲート２０４を含む信号パスの総遅延は４０であり、ＡＮＤゲート２０１、ＡＮＤゲート２０２、ＡＮＤゲート２０５、及びＡＮＤゲート２０６を含む信号パスの総遅延も４０である。同様に、ＡＮＤゲート２０１、ＡＮＤゲート２０２、ＡＮＤゲート２０７、及びＡＮＤゲート２０８を含む信号パスの総遅延も４０である。各信号パスのタイミング余裕値は３０であり、回路の総消費電力は２４０である。
【００２２】
図２（ｂ）は、タイミング余裕値３０をＡＮＤゲート２０２のみの置換に使用し、ＡＮＤゲート２０２をＡＮＤ１からＡＮＤ３へ置換した場合の回路を示している。この場合、各信号パスの総遅延は７０となり、タイミング余裕値は０となり、総消費電力は２２０となる。この置換により、消費電力は２０だけ削減される。
【００２３】
図２（ｃ）は、タイミング余裕値３０をＡＮＤゲート２０３、ＡＮＤゲート２０５、及びＡＮＤゲート２０７の置換に使用し、３個のＡＮＤゲートをＡＮＤ１からＡＮＤ２へ置換した場合の回路を示している。この場合、各信号パスの総遅延は５０となり、タイミング余裕値は０となり、総消費電力は２１０となる。この置換により、図２（ｂ）の場合よりもさらに消費電力が削減される。
【００２４】
このようにセルを置換する置換順序により置換結果が異なり、消費電力の削減量も異なってくる。そこで、タイミング規格を満足する範囲内でなるべく多くのセルを低消費電力のセルに置換するために、置換順序の上位に含まれるセルの個数が下位に含まれるセルの個数より多くなるように、置換順序を決定することが望ましい。
【００２５】
図３は、実施形態の設計支援装置の機能的構成例を示している。図３の設計支援装置３０１は、記憶部３１１及び生成部３１２を含む。
【００２６】
記憶部３１１は、回路に含まれる複数のセルの接続関係を示す接続情報を記憶する。生成部３１２は、記憶部３１１が記憶する接続情報を用いて、回路の消費電力を削減するための置換情報を生成する。
【００２７】
図４は、図３の設計支援装置３０１が行う置換情報生成処理の例を示すフローチャートである。まず、生成部３１２は、記憶部３１１の接続情報を参照し、信号パスの分岐を含む回路トポロジに従って、複数のセルの置換順序を決定する（ステップ４０１）。次に、生成部３１２は、置換順序に基づいてそれらのセルから置換対象セルを選択する（ステップ４０２）。そして、生成部３１２は、置換対象セルをそれよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する（ステップ４０３）。
【００２８】
このような設計支援装置３０１によれば、複数のセルを含む回路の設計において消費電力を効率良く削減することができる。
【００２９】
図５は、図３の設計支援装置３０１の具体例を示している。図５の設計支援装置３０１は、記憶部３１１、生成部３１２、及び処理部５０１を含む。処理部５０１は、生成部３１２により生成される置換情報を用いて回路設計処理を行い、回路情報を生成する。
【００３０】
図６は、図３の設計支援装置３０１が行う回路設計処理の例を示すフローチャートである。まず、処理部５０１は、設計者であるユーザにより入力される指示に従って、複数のセルを含む回路の論理設計を行い、それらのセルの論理的な接続関係を示す接続情報を生成して、記憶部３１１に格納する（ステップ６０１）。セルとしては、例えば、ゲート素子、ＦＦ等の回路素子を用いることができる。
【００３１】
次に、処理部５０１は、ユーザにより入力される指示に従って、接続情報を用いて回路の実装設計を行い、セルの配置を示す回路情報を生成して、記憶部３１１に格納する（ステップ６０２）。
【００３２】
次に、処理部５０１は、回路情報を用いて遅延計算を行い、各信号パスのタイミング余裕値を求め、各セルにタイミング余裕値を設定したタイミング情報を生成して、記憶部３１１に格納する（ステップ６０３）。信号パスのタイミング余裕値としては、例えば、ＦＦのセットアップ時間及びホールド時間に対する余裕値を用いることができる。
【００３３】
次に、処理部５０１は、タイミング情報が適切か否かをチェックする（ステップ６０４）。例えば、すべてのセルのタイミング余裕値が０以上であれば、タイミング情報は適切であると判定され、いずれかのセルのタイミング余裕値が０未満であれば、タイミング情報は不適切であると判定される。
【００３４】
タイミング情報が不適切である場合（ステップ６０４，ＮＯ）、処理部５０１は、論理設計の結果又は実装設計の結果のいずれを変更するかをユーザに問い合わせる（ステップ６０９）。論理設計の結果を変更する指示が入力された場合（ステップ６０９，ＹＥＳ）、処理部５０１は、ステップ６０１以降の処理を繰り返す。一方、実装設計の結果を変更する指示が入力された場合（ステップ６０９，ＮＯ）、処理部５０１は、ステップ６０２以降の処理を繰り返す。
【００３５】
タイミング情報が適切である場合（ステップ６０４，ＹＥＳ）、処理部５０１は、消費電力削減を行うか否かをユーザに問い合わせる（ステップ６０５）。消費電力削減を行う指示が入力された場合（ステップ６０５，ＹＥＳ）、処理部５０１は、置換情報の生成を生成部３１２へ指示する（ステップ６１０）。生成部３１２は、接続情報を用いて図４の置換情報生成処理を行うことで置換情報を生成し、記憶部３１１に格納する。そして、処理部５０１は、置換情報に従って置換対象セルを置換候補セルに置換することで、論理設計の結果を変更し（ステップ６０１）、ステップ６０２以降の処理を繰り返す。
【００３６】
消費電力削減を行わない指示が入力された場合（ステップ６０５，ＮＯ）、処理部５０１は、各セルの入力信号の波形が適切か否かをチェックする（ステップ６０６）。例えば、入力信号の立ち上がり時間又は立ち下がり時間（slew）が閾値以下であれば、波形は適切であると判定され、立ち上がり時間又は立ち下がり時間が閾値を超えていれば、波形は不適切であると判定される。
【００３７】
波形が不適切である場合（ステップ６０６，ＮＯ）、処理部５０１は、ステップ６０９以降の処理を繰り返す。一方、波形が適切である場合（ステップ６０６，ＹＥＳ）、処理部５０１は、各信号のノイズレベルが適切か否かをチェックする（ステップ６０７）。例えば、信号のノイズレベルが閾値以下であれば、ノイズレベルは適切であると判定され、ノイズレベルが閾値を超えていれば、ノイズレベルは不適切であると判定される。
【００３８】
ノイズレベルが不適切である場合（ステップ６０７，ＮＯ）、処理部５０１は、ステップ６０９以降の処理を繰り返す。一方、ノイズレベルが適切である場合（ステップ６０７，ＹＥＳ）、処理部５０１は、回路情報を出力する（ステップ６０８）。
【００３９】
図７及び図８は、図６のステップ６１０で生成部３１２が行う置換情報生成処理の第１の具体例を示すフローチャートである。まず、生成部３１２は、ユーザにより選択されるオプションを解釈する（ステップ７０１）。置換候補セルを指定するオプションとしては、例えば、以下のようなものを設けることができる。
（ａ）セルの置換を行う際に、タイミング余裕値が許す範囲内で、可能な限り消費電力を削減できる置換候補セルを選択する。
（ｂ）セルの置換を行う際に、タイミング余裕値を残しながら消費電力をある程度削減できる置換候補セルを選択する。
【００４０】
また、置換順序を指定するオプションとしては、回路内における信号パスの分岐を含む回路トポロジに基づく情報を用いることができる。回路トポロジに基づく情報としては、例えば、以下のようなパラメータを用いることができる。
（ｃ）段数
信号パス上において所定の入力ノードから１つのセルまでの間に存在するセルの個数に応じて計算される。
（ｄ）パス通過回数
１つ以上の信号パスが１つのセルを通過する回数を表す。
（ｅ）ファンアウト数
１つのセルの入力ノードから信号が入力されているセルの個数を表す。
【００４１】
図９は、セルの段数に基づく置換順序の第１の例を示している。図９のセル９０１〜セル９０５の段数は、それぞれ、１、２、３、４、及び５である。置換順序をセルの段数の昇順に決定した場合、セル９０１から順に置換対象セルとして選択される。
【００４２】
図１０は、セルの段数に基づく置換順序の第２の例を示している。図１０のセル９０１〜セル９０５の置換順序をセルの段数の降順に決定した場合、セル９０５から順に置換対象セルとして選択される。
【００４３】
図１１は、パス通過回数に基づく置換順序の例を示している。図１１のセル１１０１〜セル１１０４及びセル１１１０〜セル１１１３のパス通過回数は４であり、セル１１０５、セル１１０６、セル１１０８、及びセル１１０９のパス通過回数は８である。また、セル１１０７のパス通過回数は１６である。置換順序をパス通過回数の昇順に決定した場合、回路の外周付近に配置されたセル１１０１〜セル１１０４及びセル１１１０〜セル１１１３から順に置換対象セルとして選択される。
【００４４】
このように、タイミング余裕値だけでなく、回路トポロジに基づいて置換順序を指定するオプションを設けることで、様々な回路に対応した置換が可能になる。
【００４５】
次に、生成部３１２は、パストレースを行って、選択された置換順序のオプションに応じたパラメータを各セルに設定する（ステップ７０２）。
【００４６】
図１２は、パラメータとして設定されたセルの段数の例を示している。この例では、パストレースの起点に対して段数１が付与され、起点から信号パスに沿ってセルを通過する度に、１ずつインクリメントされた段数がそのセルに付与される。例えば、回路の入力端子１２０１が起点として選択された場合、入力端子１２０１、セル１２０２、及びセル１２０３の段数は、それぞれ、１、２、及び３となる。また、回路の入力端子１２１６が起点として選択された場合、入力端子１２１６、セル１２１７、及びセル１２１８の段数は、それぞれ、１、２、及び３となる。
【００４７】
次に、ＦＦ１２０４のクロック入力端子が起点として選択された場合、ＦＦ１２０４の段数は１となる。ＦＦ１２０４の出力ノードで信号パスが２つに分岐し、ＦＦ１２０４にはセル１２０５及びセル１２１３が接続されているため、これらのセルの段数は２となる。さらに、セル１２０５の出力ノードで信号パスが２つに分岐し、セル１２０５にはセル１２０６及びセル１２１１が接続されているため、これらのセルの段数は３となる。セル１２１３に接続されているセル１２１４の段数も３となる。
【００４８】
また、ＦＦ１２１９のクロック入力端子が起点として選択された場合、ＦＦ１２１９の段数は１となり、セル１２２０及びセル１２２５の段数は２となり、セル１２２１、セル１２２３、及びセル１２２６の段数は３となる。
【００４９】
次に、ＦＦ１２０７のクロック入力端子が起点として選択された場合、ＦＦ１２０７、セル１２０８、及びセル１２０９の段数は、それぞれ、１、２、及び３となる。回路の出力端子１２１０には、段数は付与されない。また、ＦＦ１２１２、ＦＦ１２１５、ＦＦ１２２２、ＦＦ１２２４、及びＦＦ１２２７のクロック入力端子が起点として選択された場合、これらのＦＦの段数は１となる。
【００５０】
ここで、置換順序をセルの段数の降順に決定した場合、最も個数が多い段数３のセルから順に置換対象セルとして選択されるため、多数のセルが置換されることが期待できる。
【００５１】
図１３は、パラメータとして設定されたパス通過回数の例を示している。図１３のセル１３０１〜セル１３１７のうち、セル１３０１、セル１３０６、セル１３０７、セル１３１２、セル１３１３、及びセル１３１７はＦＦである。この例では、各セルのパス通過回数が初期値０に設定された後にパストレースが開始され、起点から信号パスに沿ってセルを通過する度に、通過したセルのパス通過回数が１ずつインクリメントされる。
【００５２】
まず、図１３（ａ）に示すように、セル１３０１を起点してパストレースが行われ、信号パス１３２１に含まれるセル１３０１〜セル１３０６のパス通過回数が１となる。
【００５３】
次に、図１３（ｂ）に示すように、セル１３０７を起点としてパストレースが行われる。この場合、セル１３０８〜セル１３１０の出力ノードで信号パスが２つ又は３つに分岐しているため、５つの信号パス１３２２〜信号パス１３２６に沿ってパストレースが行われる。その結果、セル１３１１及びセル１３１２のパス通過回数が１となり、セル１３０３、セル１３０４、セル１３１６、及びセル１３１７のパス通過回数が２となる。また、セル１３０５、セル１３０６、及びセル１３１０のパス通過回数が３となり、セル１３０９のパス通過回数が４となり、セル１３０７及びセル１３０８のパス通過回数が５となる。
【００５４】
次に、図１３（ｃ）に示すように、セル１３１３を起点としてパストレースが行われる。この場合、セル１３０９及びセル１３１０の出力ノードで信号パスが２つ又は３つに分岐しているため、４つの信号パス１３２７〜信号パス１３３０に沿ってパストレースが行われる。その結果、セル１３１１及びセル１３１２のパス通過回数が２となり、セル１３０５、セル１３０６、セル１３１３、セル１３１４、セル１３１６、及びセル１３１７のパス通過回数が４となる。また、セル１３１０のパス通過回数が６となり、セル１３０９のパス通過回数が８となる。
【００５５】
ここで、置換順序をパス通過回数の昇順に決定した場合、回路の外周付近のセルから順に置換対象セルとして選択される。このため、回路の中央付近の最も多く信号が通過するセルは、消費電力が大きくても遅延が小さいセルのままで残しておき、外周付近のあまり信号が通過しないセルを優先的に置換することができる。セルの消費電力はリーク電流の影響を受けるため、セルが動作しているか否かにかかわらず、電力が消費される。そこで、外周付近のあまり動作しないセルを優先的に置換することで、消費電力を効率良く削減することができる。
【００５６】
図１４は、パラメータとして設定されたファンアウト数の例を示している。この例では、各セルの入力ノードから信号が入力されているセルの個数が、そのセルのファンアウト数として設定される。
【００５７】
例えば、セル１４０１の入力ノードからはセル１４０１のみに信号が入力されるため、セル１４０１のファンアウト数は１となる。また、セル１４０２の入力ノードでは信号パスが２つに分岐しており、その入力ノードからセル１４０２及びセル１４０４に信号が入力されるため、セル１４０２及びセル１４０４のファンアウト数は２となる。セル１４０３の入力ノードでは信号パスが３つに分岐しており、その入力ノードからセル１４０３、セル１４０５、及びセル１４０６に信号が入力されるため、セル１４０３、セル１４０５、及びセル１４０６のファンアウト数は３となる。
【００５８】
ここで、置換順序をファンアウト数の降順に決定した場合、少数のドライバセルではなく、多数のレシーバセルから順に置換対象セルとして選択されるため、多数のセルが置換されることが期待できる。
【００５９】
次に、生成部３１２は、置換候補セルを登録した置換候補テーブルｔｂｌＣを生成し、記憶部３１１に格納する（ステップ７０３）。
【００６０】
図１５は、置換候補テーブルｔｂｌＣのエントリの例を示している。図１５のエントリは、セル名、セルグループＩＤ、及び消費電力を含む。セル名は、個々のセルを識別するための識別情報であり、セルグループＩＤは、論理の異なるセルを識別するための識別情報である。消費電力は、セルの消費電力を表す。
【００６１】
各セルグループＩＤに対応するセルグループとして、論理が同じで遅延時間、負荷駆動能力、消費電力等が異なる複数種類のセルを用いることができる。同じ論理のセルであれば、消費電力が大きいほど遅延時間が小さくなり、消費電力が小さいほど遅延時間が大きくなることが多い。
【００６２】
次に、生成部３１２は、回路内の１つのセルを選択し、選択したセルが置換可能か否かをチェックする（ステップ７０４）。例えば、選択したセルが以下の条件を満足する場合、選択したセルは置換可能と判定される。
（１）選択したセルのタイミング余裕値が０よりも大きい。
（２）置換候補テーブルｔｂｌＣにおいて、選択したセルと同じセルグループＩＤを有し、選択したセルよりも消費電力の小さいセルが登録されている。
【００６３】
選択したセルのタイミング余裕値が０である場合、又は選択したセルよりも消費電力の小さいセルが置換候補テーブルｔｂｌＣに登録されていない場合、選択したセルは置換不可能と判定される。
【００６４】
選択したセルが置換可能である場合（ステップ７０４，ＹＥＳ）、生成部３１２は、そのセルを置換対象セルとして置換対象テーブルｔｂｌＸに登録し、置換対象テーブルｔｂｌＸを記憶部３１１に格納する（ステップ７０５）。一方、選択したセルが置換不可能である場合（ステップ７０４，ＮＯ）、生成部３１２は、そのセルを置換対象テーブルｔｂｌＸに登録しない。ステップ７０４及びステップ７０５の処理は、回路内のすべてのセルに対して行われる。
【００６５】
図１６は、置換対象テーブルｔｂｌＸのエントリの例を示している。図１６のエントリは、セル名、セルインスタンス名、第１キー、第２キー、及び置換候補セル名を含む。セルインスタンス名は、回路内の全てのセルを識別するための識別情報であり、第１キー及び第２キーは、置換対象セルの置換順序を決定するための情報であり、置換候補セル名は、置換対象セルを置換する置換候補セルのセル名である。置換対象セルの登録時には、第１キー、第２キー、及び置換候補セル名は初期化されている。
【００６６】
次に、生成部３１２は、記憶部３１１内のタイミング情報を読み込み（ステップ７０６）、タイミング情報に含まれる各セルのタイミング余裕値を、置換対象テーブルｔｂｌＸの対応する置換対象セルの第２キーとして設定する（ステップ７０７）。また、生成部３１２は、記憶部３１１内の接続情報に基づいて、指定された置換順序のオプションに対応する各セルのパラメータを、対応する置換対象セルの第１キーとして設定する。これにより、例えば、セルの段数、パス通過回数、又はファンアウト数が第１キーとして設定される。
【００６７】
次に、生成部３１２は、置換順序を決定するために、まず、置換対象テーブルｔｂｌＸ内のエントリを第１キーに基づいてソートし、次に、第２キーに基づいてソートする（ステップ７０８）。
【００６８】
例えば、第１キーがセルの段数である場合、第１キーの降順又は昇順にエントリがソートされる。図１２の例では、降順にソートを行うと、回路の出力側から入力側へ向かって置換対象セルがソートされる。第１キーがパス通過回数である場合、第１キーの昇順にエントリがソートされる。図１３の例では、昇順にソートを行うと、回路の外周付近から中央付近へ向かって置換対象セルがソートされる。第１キーがファンアウト数である場合、第１キーの降順にエントリがソートされる。図１４の例では、降順にソートを行うと、多数のレシーバセルからドライバセルへ向かって置換対象セルがソートされる。
【００６９】
ユーザは、第１キーの降順又は昇順のいずれでエントリをソートするかを、置換順序のオプションとして指定することができる。
【００７０】
また、第２キーがタイミング余裕値である場合、第２キーの降順にエントリがソートされる。これにより、同じ第１キーを有する複数のエントリが、タイミング余裕値の大きい順にソートされる。
【００７１】
次に、生成部３１２は、置換対象テーブルｔｂｌＸの最上位エントリから順に１つの置換対象セルを抽出し、置換対象セルＸに設定する（ステップ８０１）。次に、生成部３１２は、置換候補テーブルｔｂｌＣから置換対象セルＸを検索し、置換対象セルＸと同じセルグループＩＤを有し、置換対象セルＸよりも消費電力の小さいセルのセル名を抽出する（ステップ８０２）。そして、生成部３１２は、抽出したセル名を置換候補セルとして置換候補テーブルｔｂｌＤに登録し、置換候補テーブルｔｂｌＤを記憶部３１１に格納する。
【００７２】
置換候補セルが複数存在する場合、生成部３１２は、指定された置換候補セルのオプションに応じて１つ又は複数の置換候補セルを選択して、置換候補テーブルｔｂｌＤに登録する。
【００７３】
例えば、タイミング余裕値が許す範囲内で可能な限り消費電力を削減するオプションが指定された場合、すべての置換候補セルが置換候補テーブルｔｂｌＤに登録される。また、タイミング余裕値を残しながら消費電力をある程度削減するオプションが指定された場合、消費電力の大きい順に１つ又はｎ個（ｎは２以上の整数）の置換候補セルが置換候補テーブルｔｂｌＤに登録される。
【００７４】
後者の場合、置換対象セルよりも消費電力が１ランク小さいセルのみを置換候補セルとして登録すると、残りのタイミング余裕値を使用するために置換情報生成処理が繰り返される可能性が高くなる。そこで、置換対象セルよりも消費電力が２ランク以上小さいセルをあらかじめ置換候補セルとして追加しておくことで、処理の繰り返しを抑止することが可能になる。例えば、消費電力が１ランク小さいセルからｎランク小さいセルまでを置換候補セルとして登録してもよい。
【００７５】
置換候補テーブルｔｂｌＤに登録される置換候補セルの数を限定することで、セルの置換による遅延時間の増加量が小さくなり、タイミング余裕値を残しながら置換を行うことができる。したがって、あるセルの置換を行った後も、同じ信号パス上の他のセルを置換しやすくなり、広く浅く置換を行うことが可能になる。
【００７６】
図１７は、置換候補テーブルｔｂｌＣと置換候補テーブルｔｂｌＤの例を示している。図１７の置換候補テーブルｔｂｌＣにおいて、ＡＮＤ０１及びＡＮＤ０２は、セルグループＩＤが１のセルグループに属する。また、ＩＮＶ０１〜ＩＮＶ０５は、セルグループＩＤが２のセルグループに属し、ＯＲ０１は、セルグループＩＤが３のセルグループに属する。
【００７７】
置換対象セルＸがＩＮＶ０２である場合、ＩＮＶ０２よりも消費電力が小さいセルは、ＩＮＶ０３、ＩＮＶ０４、及びＩＮＶ０５である。そこで、ＩＮＶ０３、ＩＮＶ０４、及びＩＮＶ０５が置換候補テーブルｔｂｌＤに登録される。
【００７８】
次に、生成部３１２は、置換候補テーブルｔｂｌＤから１つの置換候補セルを抽出し、置換候補セルＣに設定する（ステップ８０３）。次に、生成部３１２は、置換対象セルＸを置換候補セルＣに置換した場合の遅延計算を行って、対応する信号パスの遅延増加量ΔＴを求め（ステップ８０４）、ΔＴをタイミング余裕値と比較する（ステップ８０５）。ステップ８０４の遅延計算には、図６のステップ６０３の遅延計算よりも処理量の少ない簡易計算を用いることができる。
【００７９】
ΔＴがタイミング余裕値以下である場合（ステップ８０５，ＹＥＳ）、生成部３１２は、置換対象セルＸを置換候補セルＣに置換した場合の各セルの入力信号の波形と各信号のノイズレベルとを計算する（ステップ８０６）。そして、生成部３１２は、波形及びノイズレベルが適切か否かをチェックする（ステップ８０７）。ステップ８０６の波形及びノイズレベルの計算には、図６のステップ６０６及びステップ６０７の計算よりも処理量の少ない簡易計算を用いることができる。
【００８０】
波形及びノイズレベルが適切である場合（ステップ８０７，ＹＥＳ）、生成部３１２は、置換候補セルＣを、置換対象テーブルｔｂｌＸの置換対象セルＸに対応する置換候補セル名として登録する（ステップ８０８）。一方、ΔＴがタイミング余裕値より大きい場合（ステップ８０５，ＮＯ）、あるいは波形又はノイズレベルが不適切である場合（ステップ８０７，ＮＯ）、生成部３１２は、置換候補セルＣを置換対象テーブルｔｂｌＸに登録しない。ステップ８０３〜ステップ８０８の処理は、置換候補テーブルｔｂｌＤ内のすべての置換候補セルに対して行われる。
【００８１】
図６のステップ６０１で置換情報に基づいてセルを置換すると、入力信号の立ち上がり時間又は立ち下がり時間が閾値を超えたり、クロストークによりシグナルインテグリティが低下したり、タイミング余裕値が負値になったりする可能性がある。
【００８２】
これらの可能性を事前にチェックするために、ステップ６０３、ステップ６０４、ステップ６０６、及びステップ６０７の処理とは独立に、ステップ８０４〜ステップ８０７のチェックが行われる。これにより、セルの置換後に行われるステップ６０４、ステップ６０６、及びステップ６０７のチェックにおいて、チェック結果がＯＫとなる可能性が高くなり、論理設計及び実装設計の繰り返しを抑制することができる。
【００８３】
次に、生成部３１２は、置換対象テーブルｔｂｌＸの置換対象セルＸのエントリに置換候補セル名が登録されているか否かをチェックする（ステップ８０９）。置換対象セルＸの置換候補セル名が登録されている場合（ステップ８０９，ＹＥＳ）、生成部３１２は、置換対象セルＸを置換情報テーブルｔｂｌＺに登録し、置換情報テーブルｔｂｌＺを記憶部３１１に格納する（ステップ８１０）。
【００８４】
そして、生成部３１２は、置換対象セルＸを置換候補セルに置換した場合の遅延計算を再度行って、対応する信号パスのタイミング余裕値を求め、波及する周辺のセルのタイミング余裕値を書き換える。
【００８５】
一方、置換対象セルＸの置換候補セル名が登録されていない場合（ステップ８０９，ＮＯ）、生成部３１２は、置換対象セルＸを置換情報テーブルｔｂｌＺに登録しない。ステップ８０１〜ステップ８１０の処理は、置換対象テーブルｔｂｌＸ内のすべての置換対象セルに対して行われる。
【００８６】
図１８は、置換情報テーブルｔｂｌＺのエントリの例を示している。図１８のエントリは、置換対象セル名、置換対象セルインスタンス名、及び置換候補セル名を含む。置換対象セル名は、置換対象セルＸのセル名であり、置換対象セルインスタンス名は、置換対象セルＸのセルインスタンス名である。置換候補セル名は、置換対象セルＸを置換する置換候補セルのセル名である。
【００８７】
図１９は、タイミング余裕値が波及するセルの例を示している。図１９のセル１９０１〜セル１９０９のうち、セル１９０１、セル１９０３、セル１９０７、及びセル１９０９はＦＦである。セル１９０５を置換候補セルに置換することで、セル１９０５のタイミング余裕値がΔＴだけ減少した場合、その減少量がセル１９０５を含む信号パス上で前後にＦＦに到達するまで伝播される。これにより、セル１９０１〜セル１９０４及びセル１９０６〜セル１９０９のタイミング余裕値がΔＴだけ削減される。
【００８８】
生成された置換情報テーブルｔｂｌＺに登録された置換対象セルに対して、図７及び図８の置換情報生成処理を繰り返すことにより、さらに多数のセルが置換されることが期待できる。
【００８９】
ところで、ＬＳＩのタイミング検証には、温度、電圧、プロセスばらつき等が異なる複数のコーナー条件が用いられることが多い。コーナー条件が異なれば、セル及び配線の遅延時間も異なり、信号パスのタイミング余裕値も異なってくる。しかし、遅延時間が最大になる最悪のコーナー条件が一律に決まるわけではないので、想定される複数のコーナー条件についてセルの置換後のタイミング余裕値を評価することが望ましい。
【００９０】
このとき、コーナー条件毎に別々に置換情報生成処理を行うと、それぞれのコーナー条件に応じて生成される置換情報に含まれる置換対象セル又は置換候補セルが一致せず、置換情報が互いに矛盾する可能性がある。この場合、どの置換情報に基づいてセルを置換すればよいのかが分からなくなる。そこで、すべてのコーナー条件において同じ置換対象セルを同じ置換候補セルに置換することが望ましい。
【００９１】
図２０は、複数のコーナー条件を用いた置換情報生成処理の例を示している。まず、生成部３１２は、コーナー条件ＣＮ１に基づく置換情報生成処理２００１を行って、置換情報２０１１を生成する。次に、生成部３１２は、置換情報２０１１に含まれる置換対象セルのみを置換対象として、コーナー条件ＣＮ２に基づく置換情報生成処理２００２を行って、置換情報２０１２を生成する。次に、生成部３１２は、置換情報２０１２に含まれる置換対象セルのみを置換対象として、コーナー条件ＣＮ３に基づく置換情報生成処理２００３を行って、置換情報２０１３を生成する。
【００９２】
コーナー条件ＣＮ１〜コーナー条件ＣＮ３としては、例えば、以下のような条件の組み合わせが用いられる。
ＣＮ１：  温度Ｔ１，電圧Ｖ１，プロセスばらつきＰ１
ＣＮ２：  温度Ｔ２，電圧Ｖ２，プロセスばらつきＰ２
ＣＮ３：  温度Ｔ３，電圧Ｖ３，プロセスばらつきＰ３
【００９３】
置換情報２０１２の置換候補セルは、置換情報２０１１の置換候補セル又はその置換候補セルよりも消費電力の大きいセルの中から選択される。また、置換情報２０１３の置換候補セルは、置換情報２０１２の置換候補セル又はその置換候補セルよりも消費電力の大きいセルの中から選択される。したがって、置換情報２０１２の置換による消費電力の削減量は、置換情報２０１１の置換による消費電力の削減量以下であり、置換情報２０１３の置換による消費電力の削減量は、置換情報２０１２の置換による消費電力の削減量以下である。
【００９４】
このような処理をコーナー条件の数だけ繰り返すことで、複数のコーナー条件についてタイミング余裕値を評価できるとともに、置換情報同士の不整合を解消することも可能になる。これにより、複数のコーナー条件に共通の置換情報を生成することができる。
【００９５】
図２１及び図２２は、置換情報生成処理の第２の具体例を示すフローチャートである。第２の具体例は、ｍ個（ｍは２以上の整数）のコーナー条件のうち、ｉ番目（ｉ＝２，．．．，ｍ）のコーナー条件に基づく置換情報生成処理に対応する。１番目のコーナー条件に基づく置換情報生成処理については、図７及び図８の第１の具体例と同様である。
【００９６】
図２１のステップ２１０１〜ステップ２１０３及びステップ２１０５〜ステップ２１０７の処理は、図７のステップ７０１〜ステップ７０３及びステップ７０６〜ステップ７０８の処理と同様である。また、図２２のステップ２２０１〜ステップ２２１０の処理は、図８のステップ８０１〜ステップ８１０の処理と同様である。
【００９７】
生成部３１２は、置換候補テーブルｔｂｌＣを生成した後、ｉ−１番目のコーナー条件に基づく置換情報生成処理により生成された置換情報テーブルｔｂｌＺを参照する（ステップ２１０４）。そして、生成部３１２は、その置換情報テーブルｔｂｌＺに登録された置換対象セルを置換対象テーブルｔｂｌＸに登録し、置換対象テーブルｔｂｌＸを記憶部３１１に格納する。これにより、ｉ−１番目のコーナー条件に基づく置換対象セルのみが置換対象テーブルｔｂｌＸに登録され、ｉ−１番目のコーナー条件に基づく置換対象セルとｉ番目のコーナー条件に基づく置換対象セルとの整合を図ることができる。
【００９８】
ステップ２２０２において、生成部３１２は、ｉ−１番目のコーナー条件に基づく置換情報生成処理により生成された置換情報テーブルｔｂｌＺを再び参照し、置換対象セルＸに対応する置換候補セルＹを抽出する。そして、生成部３１２は、置換候補テーブルｔｂｌＣ内の置換対象セルＸよりも消費電力の小さいセルのうち、置換候補セルＹよりも消費電力の大きいセルと置換候補セルＹと同じ消費電力のセルとを、置換候補テーブルｔｂｌＤに登録する。
【００９９】
このように、置換候補セルＹよりも消費電力の小さいセルを置換候補から除外することで、ｉ−１番目のコーナー条件に基づく置換候補セルとｉ番目のコーナー条件に基づく置換候補セルとの整合を図ることができる。
【０１００】
図２３は、ステップ２２０２において生成される置換候補テーブルｔｂｌＤの例を示している。ｉ−１番目のコーナー条件に基づく置換情報生成処理により図２３の置換情報テーブルｔｂｌＺが生成された場合、置換対象セルＸはＩＮＶ０２となり、対応する置換候補セルＹはＩＮＶ０４となる。図２３の置換候補テーブルｔｂｌＣにおいて、セルグループＩＤが２のセルグループに属するＩＮＶ０１〜ＩＮＶ０５のうち、ＩＮＶ０２よりも消費電力が小さいセルは、ＩＮＶ０３、ＩＮＶ０４、及びＩＮＶ０５である。このうち、ＩＮＶ０４よりも消費電力の小さいＩＮＶ０５は除外され、ＩＮＶ０３及びＩＮＶ０４が置換候補テーブルｔｂｌＤに登録される。
【０１０１】
図２４は、図２３の置換候補テーブルｔｂｌＣを用いた場合の複数のコーナー条件に基づくセルの置換の例を示している。まず、セル名がＩＮＶ０１であるセルＡ〜セルＥを含む回路２４０１に対して、コーナー条件ＣＮ１に基づく置換情報生成処理が行われる。
【０１０２】
そして、置換対象セルＢ、置換対象セルＣ、及び置換対象セルＤをＩＮＶ０１からＩＮＶ０３、ＩＮＶ０４、及びＩＮＶ０５にそれぞれ置換する置換情報テーブルｔｂｌＺが生成される。置換前の回路２４０１の総消費電力は５００であり、置換後の回路２４０２の総消費電力は４００である。
【０１０３】
次に、コーナー条件ＣＮ１に基づく置換情報テーブルｔｂｌＺに登録された置換対象セルＢ、置換対象セルＣ、及び置換対象セルＤのみを置換対象として、コーナー条件ＣＮ２に基づく置換情報生成処理が行われる。このとき、置換対象セルＢの置換候補テーブルｔｂｌＤには、ＩＮＶ０２及びＩＮＶ０３が登録され、置換対象セルＣの置換候補テーブルｔｂｌＤには、ＩＮＶ０２〜ＩＮＶ０４が登録される。また、置換対象セルＤの置換候補テーブルｔｂｌＤには、ＩＮＶ０２〜ＩＮＶ０５が登録される。
【０１０４】
そして、置換対象セルＢを置換せず、置換対象セルＣをＩＮＶ０１からＩＮＶ０３に置換し、置換対象セルＤをＩＮＶ０１からＩＮＶ０４に置換する置換情報テーブルｔｂｌＺが生成される。置換後の回路２４０３の総消費電力は４５０である。
【０１０５】
次に、コーナー条件ＣＮ２に基づく置換情報テーブルｔｂｌＺに登録された置換対象セルＣ及び置換対象セルＤのみを置換対象として、コーナー条件ＣＮ３に基づく置換情報生成処理が行われる。このとき、置換対象セルＣの置換候補テーブルｔｂｌＤには、ＩＮＶ０２及びＩＮＶ０３が登録され、置換対象セルＤの置換候補テーブルｔｂｌＤには、ＩＮＶ０２〜ＩＮＶ０４が登録される。
【０１０６】
そして、置換対象セルＣ及び置換対象セルＤをＩＮＶ０１からＩＮＶ０３に置換する置換情報テーブルｔｂｌＺが生成される。置換後の回路２４０４の総消費電力は４６０である。
【０１０７】
このように、複数のコーナー条件を用いた場合、すべてのコーナー条件においてタイミング規格を満足するような置換情報が生成されるため、複数の置換後の回路の中で最後に得られた回路の総消費電力が最も大きくなることがある。
【０１０８】
図１、図２、図９〜図１４、図１９、及び図２４に示した回路は一例に過ぎず、図６の回路設計処理は、他の構成を有する回路に対しても適用可能である。
【０１０９】
図３及び図５の設計支援装置３０１の構成は一例に過ぎず、設計支援装置の用途や条件に応じて一部の構成要素を省略又は変更してもよい。例えば、設計支援装置が回路設計処理のうち置換情報生成処理のみを行う場合、図５の処理部５０１を省略することができる。
【０１１０】
図４、図６、図７、図８、図２１、及び図２２のフローチャートは一例に過ぎず、設計支援装置の構成や条件に応じて一部の処理を省略又は変更してもよい。例えば、図６の回路設計処理において、処理部５０１は、置換情報に基づいて論理設計の結果を変更する代わりに、実装設計の結果を変更してもよい。また、設計支援装置が回路設計処理のうち置換情報生成処理のみを行う場合、ステップ６０１〜ステップ６０９の処理を省略することができる。
【０１１１】
図７及び図８の置換情報生成処理において、置換候補セル及び置換順序のオプションがあらかじめ決められている場合、ステップ７０１の処理を省略することができる。
【０１１２】
ステップ７０１において、ユーザは、セルの段数、パス通過回数、又はファンアウト数以外の置換順序のオプションを指定することもできる。この場合、ステップ７０７において、生成部３１２は、指定されたオプションに対応する、回路トポロジに基づくパラメータを置換対象セルの第１キーとして設定する。
【０１１３】
ステップ７０３において、生成部３１２は、消費電力の代わりにリーク電流値を置換候補テーブルｔｂｌＣに登録してもよい。セルのリーク電流値が大きくなるほど消費電力も大きくなるため、置換対象セルをそれよりもリーク電流値が小さいセルに置換することで、消費電力がより小さいセルに置換することができる。
【０１１４】
セルが置換可能か否かをチェックする必要がない場合、ステップ７０４の処理を省略することができる。この場合、ステップ７０５において、生成部３１２は、回路内のすべてのセルを置換対象テーブルｔｂｌＸに登録する。
【０１１５】
タイミング余裕値の大きいセルから順に置換する必要がない場合、ステップ７０８において、生成部３１２は、第２キーに基づくソートを省略することができる。この場合、ステップ７０７において、生成部３１２は、第２キーを置換対象テーブルｔｂｌＸに設定しなくてもよい。
【０１１６】
タイミング余裕値、波形、及びノイズレベルの事前チェックを行う必要がない場合、ステップ８０３〜ステップ８０７の処理を省略することができる。この場合、ステップ８０８において、生成部３１２は、置換候補テーブルｔｂｌＤ内のいずれか１つの置換候補セルを置換対象テーブルｔｂｌＸに登録する。
【０１１７】
図２１及び図２２の置換情報生成処理についても、図７及び図８の置換情報生成処理と同様の変更を行うことが可能である。
【０１１８】
図１５〜図１８及び図２３に示したテーブルは一例に過ぎず、設計支援装置の構成や条件に応じて一部の情報を省略又は変更してもよい。例えば、消費電力の代わりにリーク電流値を用いる場合、図１５、図１７、及び図２３の消費電力がリーク電流値に変更される。また、第２キーに基づくソートを省略する場合、図１６の第２キーが省略される。
【０１１９】
図３及び図５の設計支援装置３０１は、例えば、図２５に示すような情報処理装置を用いて実現可能である。
【０１２０】
図２５の情報処理装置は、Central Processing Unit（ＣＰＵ）２５０１、メモリ２５０２、入力装置２５０３、出力装置２５０４、補助記憶装置２５０５、媒体駆動装置２５０６、及びネットワーク接続装置２５０７を備える。これらの構成要素はバス２５０８により互いに接続されている。
【０１２１】
メモリ２５０２は、例えば、Read Only Memory（ＲＯＭ）、Random Access Memory（ＲＡＭ）、フラッシュメモリ等の半導体メモリであり、処理に用いられる設計支援プログラム及びデータを格納する。メモリ２５０２は、記憶部３１１として用いることができる。
【０１２２】
ＣＰＵ２５０１（プロセッサ）は、例えば、メモリ２５０２を利用して設計支援プログラムを実行することにより、図３及び図５の生成部３１２及び処理部５０１として動作し、回路設計処理又は置換情報生成処理を行う。
【０１２３】
入力装置２５０３は、例えば、キーボード、ポインティングデバイス等であり、ユーザ又はオペレータからの指示や情報の入力に用いられる。出力装置２５０４は、例えば、表示装置、プリンタ、スピーカ等であり、ユーザ又はオペレータへの問い合わせや処理結果の出力に用いられる。回路設計処理の処理結果には回路情報が含まれ、置換情報生成処理の処理結果には置換情報が含まれる。
【０１２４】
補助記憶装置２５０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置２５０５は、ハードディスクドライブであってもよい。情報処理装置は、補助記憶装置２５０５に設計支援プログラム及びデータを格納しておき、それらをメモリ２５０２にロードして使用することができる。補助記憶装置２５０５は、記憶部３１１として用いることができる。
【０１２５】
媒体駆動装置２５０６は、可搬型記録媒体２５０９を駆動し、その記録内容にアクセスする。可搬型記録媒体２５０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体２５０９は、Compact Disk Read Only Memory（ＣＤ−ＲＯＭ）、Digital Versatile Disk（ＤＶＤ）、Universal Serial Bus（ＵＳＢ）メモリ等であってもよい。ユーザ又はオペレータは、この可搬型記録媒体２５０９に設計支援プログラム及びデータを格納しておき、それらをメモリ２５０２にロードして使用することができる。
【０１２６】
このように、処理に用いられる設計支援プログラム及びデータを格納するコンピュータ読み取り可能な記録媒体には、メモリ２５０２、補助記憶装置２５０５、及び可搬型記録媒体２５０９のような、物理的な（非一時的な）記録媒体が含まれる。
【０１２７】
ネットワーク接続装置２５０７は、Local Area Network（ＬＡＮ）、インターネット等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェースである。情報処理装置は、ネットワーク接続装置２５０７を介して、ユーザ端末から処理要求を受信し、処理結果をユーザ端末へ送信することができる。情報処理装置は、設計支援プログラム及びデータを外部の装置からネットワーク接続装置２５０７を介して受け取り、それらをメモリ２５０２にロードして使用することもできる。
【０１２８】
なお、情報処理装置が図２５のすべての構成要素を含む必要はなく、用途や条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から通信ネットワーク経由で処理要求を受信する場合は、入力装置２５０３及び出力装置２５０４を省略してもよい。また、情報処理装置が可搬型記録媒体２５０９にアクセスしない場合は、媒体駆動装置２５０６を省略してもよく、情報処理装置が通信ネットワークに接続されない場合は、ネットワーク接続装置２５０７を省略してもよい。
【０１２９】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１３０】
図１乃至図２５を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
回路に含まれる複数のセルの接続関係を示す接続情報を記憶する記憶部と、
前記接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数のセルの置換順序を決定し、前記置換順序に基づいて前記複数のセルから置換対象セルを選択し、前記置換対象セルを前記置換対象セルよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する生成部と、
を備えることを特徴とする設計支援装置。
（付記２）
前記生成部は、前記置換順序の上位に含まれるセルの個数が下位に含まれるセルの個数より多くなるように、前記置換順序を決定することを特徴とする付記１記載の設計支援装置。
（付記３）
前記生成部は、前記信号パス上において所定の入力ノードから前記複数のセルのうち１つのセルまでの間に存在するセルの個数に基づいて、前記置換順序を決定することを特徴とする付記１又は２記載の設計支援装置。
（付記４）
前記生成部は、前記信号パスを含む１つ以上の信号パスが前記複数のセルのうち１つのセルを通過する回数に基づいて、前記置換順序を決定することを特徴とする付記１又は２記載の設計支援装置。
（付記５）
前記生成部は、前記複数のセルのうち１つのセルの入力ノードにおいて前記信号パスが分岐している場合、前記入力ノードから信号が入力されるセルの個数に基づいて、前記置換順序を決定することを特徴とする付記１又は２記載の設計支援装置。
（付記６）
前記生成部は、複数のコーナー条件のうち第１のコーナー条件に基づいて複数の置換対象セルを複数の置換候補セルに置換することを示す第１の置換情報を生成し、前記複数の置換対象セルの接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数の置換対象セルの置換順序を決定し、前記複数の置換対象セルの前記置換順序に基づいて前記複数の置換対象セルからある置換対象セルを選択し、前記複数のコーナー条件のうち第２のコーナー条件に基づいて前記ある置換対象セルを置換候補セルに置換することを示す第２の置換情報を生成することを特徴とする付記１乃至５のいずれか１項に記載の設計支援装置。
（付記７）
コンピュータによって実行される設計支援方法であって、
回路に含まれる複数のセルの接続関係を示す接続情報を記憶する記憶部を参照し、
前記接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数のセルの置換順序を決定し、
前記置換順序に基づいて前記複数のセルから置換対象セルを選択し、
前記置換対象セルを前記置換対象セルよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する、
ことを特徴とする設計支援方法。
（付記８）
前記コンピュータは、前記置換順序の上位に含まれるセルの個数が下位に含まれるセルの個数より多くなるように、前記置換順序を決定することを特徴とする付記７記載の設計支援方法。
（付記９）
回路に含まれる複数のセルの接続関係を示す接続情報を記憶する記憶部を参照し、
前記接続情報に基づき信号パスの分岐を含む回路トポロジに従って前記複数のセルの置換順序を決定し、
前記置換順序に基づいて前記複数のセルから置換対象セルを選択し、
前記置換対象セルを前記置換対象セルよりも消費電力の小さな置換候補セルに置換することを示す置換情報を生成して出力する、
処理をコンピュータに実行させる設計支援プログラム。
（付記１０）
前記コンピュータは、前記置換順序の上位に含まれるセルの個数が下位に含まれるセルの個数より多くなるように、前記置換順序を決定することを特徴とする付記９記載の設計支援プログラム。
【符号の説明】
【０１３１】
１０１〜１０５、２０１〜２０８  ＡＮＤゲート
３０１  設計支援装置
３１１  記憶部
３１２  生成部
５０１  処理部
９０１〜９０５、１１０１〜１１１３、１２０２、１２０３、１２０５、１２０６、１２０８、１２０９、１２１１、１２１３、１２１４、１２１７、１２１８、１２２０、１２２１、１２２３、１２２５、１２２６、１３０１〜１３１７、１４０１〜１４０６、１９０１〜１９０９  セル
１２０１、１２１６  入力端子
１２０４、１２０７、１２１２、１２１５、１２１９、１２２２、１２２４、１２２７  ＦＦ
１２１０  出力端子
１３２１〜１３３０  信号パス
２００１〜２００３  置換情報生成処理
２０１１〜２０１３  置換情報
２４０１〜２４０４  回路
２５０１  ＣＰＵ
２５０２  メモリ
２５０３  入力装置
２５０４  出力装置
２５０５  補助記憶装置
２５０６  媒体駆動装置
２５０７  ネットワーク接続装置
２５０８  バス
２５０９  可搬型記録媒体
【図３】
2015201139.tif 000003
【図４】
2015201139.tif 000004
【図５】
2015201139.tif 000005
【図６】
2015201139.tif 000006
【図７】
2015201139.tif 000007
【図８】
2015201139.tif 000008
【図９】
2015201139.tif 000009
【図１０】
2015201139.tif 000010
【図１１】
2015201139.tif 000011
【図１２】
2015201139.tif 000012
【図１３】
2015201139.tif 000013
【図１４】
2015201139.tif 000014
【図１５】
2015201139.tif 000015
【図１６】
2015201139.tif 000016
【図１７】
2015201139.tif 000017
【図１８】
2015201139.tif 000018
【図２０】
2015201139.tif 000019
【図２１】
2015201139.tif 000020
【図２２】
2015201139.tif 000021
【図２３】
2015201139.tif 000022
【図２５】
2015201139.tif 000023
【図１】
2015201139.tif 000024
【図２】
2015201139.tif 000025
【図１９】
2015201139.tif 000026
【図２４】
2015201139.tif 000027