(57)【要約】【課題】レイアウト設計の効率化を図ること。【解決手段】設計支援装置１００は、ドライバセルとドライバセルの出力端子に接続される配線との組み合わせ１０２を示す回路モデル情報１０１に基づいて、配線の各長さについての組み合わせ１０２の動作のシミュレーションを実行することにより、配線の各長さについての組み合わせ１０２の遅延時間を取得する。設計支援装置１００は、対象回路１０３に含まれるブロック１０４と、ブロック１０４の接続先であるブロック１０５とを接続するパスの長さの指定を受け付ける。設計支援装置１００は、配線の各長さについて導出した組み合わせの遅延時間と、受け付けた長さと、に基づいて、パスに設けるドライバセルの数別に、受け付けた長さにおけるパスの遅延時間を算出する。設計支援装置１００は、算出したパスの遅延時間が閾値ｄｔｈ以下のドライバセルの数を特定する。【選択図】図１
2018067066.tif 000002
【特許請求の範囲】
【請求項１】
特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得する実行部と、
設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、前記配線の各長さについて前記実行部によって取得された前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出する算出部と、
前記算出部によって算出された前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する特定部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記各長さについて取得された前記組み合わせの性能値に基づいて、前記配線の長さを与えると、与えた前記配線の長さに応じた前記組み合わせの性能値が得られる関数を生成する生成部を有し、
前記算出部は、
前記生成部によって生成された前記関数と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、前記パスに設けるドライバセルの１段あたりの性能値を算出し、
前記パスに設けるドライバセルの数別に、算出した前記１段あたりの性能値に基づいて前記パスの性能値を算出する、
ことを特徴とする請求項１に記載の設計支援装置。
【請求項３】
前記実行部は、
前記配線の特性および前記特定のドライバセルの特性に関する各条件について、前記組み合わせの動作のシミュレーションを実行することにより、前記組み合わせの性能値を取得し、
前記算出部は、
前記各条件について、前記実行部によって取得された前記組み合わせの性能値に基づいて、前記パスの性能値を算出し、
前記特定部は、
前記各条件について、前記パスに設けるドライバセルの数を特定することを特徴とする請求項１または２に記載の設計支援装置。
【請求項４】
前記特定部は、
さらに、前記各条件について特定した前記ドライバセルの数における前記パスの性能値に基づいて、前記各条件から、前記パスの配線の特性および前記パスに設けるドライバセルの特性に関する条件を特定することを特徴とする請求項３に記載の設計支援装置。
【請求項５】
前記実行部は、
前記回路モデル情報に基づいて、前記組み合わせの動作のシミュレーションを実行することにより、前記組み合わせの第１性能値と前記組み合わせの第２性能値とを取得し、
前記算出部は、
前記パスに設けるドライバセルの数別に、前記実行部によって取得された前記組み合わせの第１性能値に基づいて前記パスの第１性能値と、前記実行部によって取得された前記組み合わせの第２性能値に基づいて前記パスの第２性能値とを算出し、
前記特定部は、
前記算出部によって算出された前記パスの第１性能値と、前記算出部によって算出された前記パスの第２性能値と、が前記所定の制約を満たす前記パスに設けるドライバセルの数を特定することを特徴とする請求項１〜４のいずれか一つに記載の設計支援装置。
【請求項６】
前記組み合わせの第１性能値は、前記組み合わせに含まれる前記特定のドライバセルの入力端子と、前記特定のドライバセルの出力端子に接続される配線の該出力端子と異なる末端との間の遅延時間であり、
前記組み合わせの第２性能値は、前記組み合わせの消費電力であり、
前記パスの第１性能値は、前記部分回路と前記部分回路の接続先との間の前記パスの遅延時間であり、
前記パスの第２性能値は、前記パスの消費電力であることを特徴とする請求項５に記載の設計支援装置。
【請求項７】
コンピュータに、
特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得し、
設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、
前記配線の各長さについて取得した前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出し、
算出した前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する、
処理を実行させることを特徴とする設計支援プログラム。
【請求項８】
コンピュータが、
特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得し、
設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、
前記配線の各長さについて取得した前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出し、
算出した前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する、
処理を実行することを特徴とする設計支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援プログラム、および設計支援方法に関する。
【背景技術】
【０００２】
従来、半導体集積回路のレイアウト設計フローでは、回路の配置および簡易のタイミング検証を行う。つぎに、レイアウト設計フローでは、配置後のタイミング検証に問題がなければ、配線が行われる。つづいて、レイアウト設計フローでは、配線終了後にタイミング検証を行う。そして、レイアウト設計フローでは、配線終了後のタイミング検証に問題がなければ、設計終了である。しかし、レイアウト設計フローでは、配線終了後のタイミング検証に問題があると、回路の配置または配線接続をやり直す。
【０００３】
また、従来、配置終了後のタイミング検証では、例えば、回路間の仮想の配線に抵抗や容量の仮値を設定する。そして、配置終了後のタイミング検証では、例えば、回路に含まれるゲートの遅延時間および配線の遅延時間をそれぞれ求めることにより各パスのタイミング違反を検証する。ここでのゲートとは、論理回路を構成するトランジスタを含む（マクロ）セルであり、ゲートの遅延時間とは、ゲートの入力端子へ信号が入力してから、その信号に応じてゲートの出力端子で出力信号が遷移するまでの時間である。また、配線の遅延時間とは、例えば、ゲートの出力端子から信号が出力されてから、出力端子の接続先のゲートの入力端子に信号が入力されるまでの時間である。
【０００４】
先行技術としては、自動配置配線終了後に、レイアウトデータから得られた配線抵抗や配線容量成分を含んだ回路接続情報とその回路接続情報から得られた実配線遅延情報を用いて論理遅延シミュレーションを行う技術がある（例えば、以下特許文献１参照。）。また、先行技術としては、自動配置配線終了後に、レイアウト図形情報に基づいて、計測対象の論理ゲートの組をトランジスタレベルの接続情報に変換し、指定された計測点における遅延情報を計測してトランジスタレベルのシミュレーションを行う技術がある（例えば、以下特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−１４２９１６号公報
【特許文献２】特開平５−１３５１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、配線抵抗はドライバセルの抵抗と比較して小さいものとなっている。このため、従来技術では、配置終了後のタイミング検証において、配線抵抗を考慮せずにドライバセルの抵抗に基づきドライバセルの遅延時間を計算し、配線抵抗および配線容量に基づき配線の遅延時間を計算する。しかしながら、近年、配線の微細化による配線抵抗の高抵抗化が進んでいる。したがって、配線抵抗の高抵抗化により、配置終了後のタイミング検証において、配線抵抗を考慮せずにドライバセルの抵抗によりドライバセルの遅延時間を計算すると、配線終了後のタイミング検証の検証結果と配置終了後のタイミング検証の検証結果との乖離が大きくなる場合がある。この乖離が大きいと、配置や配線を変更するなどレイアウト設計において手戻りが生じるという問題点がある。
【０００７】
１つの側面では、本発明は、レイアウト設計の効率化を図ることができる設計支援装置、設計支援プログラム、および設計支援方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得する実行部と、設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、前記配線の各長さについて前記実行部によって取得された前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出する算出部と、前記算出部によって算出された前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する特定部と、を有する設計支援装置、設計支援プログラム、および設計支援方法が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、レイアウト設計の効率化を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、設計支援装置による一動作例を示す説明図である。
【図２】図２は、対象回路の設計手順例を示すフローチャートである。
【図３】図３は、レイアウト設計例を示す説明図である。
【図４】図４は、ドライバ部および配線部の配線の長さによる遅延時間の影響例を示す説明図である。
【図５】図５は、設計支援装置のハードウェア構成例を示す説明図である。
【図６】図６は、設計支援装置の機能的構成例を示すブロック図である。
【図７】図７は、回路モデル情報例を示す説明図である。
【図８】図８は、シミュレーション条件情報例を示す説明図である。
【図９】図９は、関数の算出例を示す説明図である。
【図１０】図１０は、ゲート段数別のパスの遅延時間例を示す説明図である。
【図１１】図１１は、設計制約を満たす最速な設計段数の特定例を示す説明図である。
【図１２】図１２は、ゲート段数別に遅延時間が異なる例を示す説明図である。
【図１３】図１３は、設計の対象回路例を示す説明図である。
【図１４】図１４は、遅延時間と消費電力との関係に基づき最適解が決定される例を示す説明図である。
【図１５】図１５は、従来技術における設計構成および最適解に対応する設計構成例を示す説明図である。
【図１６】図１６は、設計支援装置による設計支援処理手順例を示すフローチャート（その１）である。
【図１７】図１７は、設計支援装置による設計支援処理手順例を示すフローチャート（その２）である。
【図１８】図１８は、設計支援装置による設計支援処理手順例を示すフローチャート（その３）である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる設計支援装置、設計支援プログラム、および設計支援方法の実施の形態を詳細に説明する。
【００１２】
図１は、設計支援装置による一動作例を示す説明図である。設計支援装置１００は、半導体集積回路のレイアウト設計を支援するコンピュータである。設計支援装置１００については、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）やサーバなどであり、特に限定しない。
【００１３】
従来、論理設計後に行われる半導体集積回路のレイアウト設計フローでは、配置、配置終了後のタイミング検証、配線、配線終了後のタイミング検証が行われる。簡単な設計フローについては図２を用いて後述する。
【００１４】
また、従来、配置終了後のタイミング検証では、例えば、回路間の仮想の配線に抵抗や容量の仮値を設定する。そして、配置終了後のタイミング検証では、例えば、ゲートの遅延時間および配線の遅延時間をそれぞれ求めることにより各パスのタイミング違反を検証する。簡単なタイミング検証については図３を用いて後述する。
【００１５】
ここでのゲートとは、上述したように、論理回路を構成するトランジスタを含む（マクロ）セルである。ゲートとしては、ＮＯＲゲート、ＯＲゲート、インバータゲート、バッファゲート、データ保持素子などが挙げられる。データ保持素子としては、例えば、フリップフロップなどが挙げられる。また、パスとは、例えば、データ保持素子間の経路、入力端子からデータ保持素子までの経路、データ保持素子から出力端子までの経路である。また、ブロック間のパスとは、第１のブロックから第２のブロックへ信号が受け渡される場合に、第１のブロックの出力元のゲートから第２のブロックの入力先のゲートまでの経路である。
【００１６】
また、ゲートの遅延時間とは、上述したように、ゲートの入力端子へ信号が出力されてから、その信号に応じてゲートの出力端子で出力信号が遷移するまでの時間である。また、配線の遅延時間とは、例えば、ゲートの出力端子から信号が出力されてから、出力端子の接続先であるゲートの入力端子に信号が入力されるまでの時間である。
【００１７】
レイアウト設計フローでは、配置終了後のタイミング検証で問題があれば、配置がやり直される。一方、レイアウト設計フローでは、配置終了後のタイミング検証で問題がなければ、配線が行われる。また、レイアウト設計フローでは、配線終了後、タイミング検証が行われる。配線終了後のタイミング検証で問題がなければ、レイアウト設計終了になる。一方、配線終了後のタイミング検証で問題があれば、配置または配線がやり直される。
【００１８】
従来、配線抵抗はドライバセルの抵抗と比較して小さいものとなっている。ドライバセルとは、インバータセルやバッファセルなどである。従来技術では、配置終了後のタイミング検証において、配線抵抗を考慮せずにゲートの遅延時間を計算する。ここで、配線抵抗は、例えば、配線の長さ、配線の幅、配線のシート抵抗などによって定まる。
【００１９】
しかしながら、近年、配線の微細化による配線抵抗の高抵抗化により、配線抵抗を考慮せずにドライバ部の遅延時間を計算すると、配置終了後のタイミング検証の精度が低くなる。このため、例えば、配線終了後のタイミング検証におけるドライバ部の遅延時間が、配置終了後のタイミング検証の検証結果におけるドライバ部の遅延時間よりも大幅に大きくなる場合がある。このような場合、配置や配線を変更するなどレイアウト設計において設計者の手戻りが生じるという問題点がある。
【００２０】
そこで、本実施の形態では、設計支援装置１００は、ドライバセルおよび配線のセット回路の各配線長でのシミュレーションで得られた該回路の性能値に基づいて、ブロックからの指定長さのパスの性能値をパスに設けるドライバの数別に求める。そして、設計支援装置１００は、ドライバセルの数別に求めたパスの性能値に基づいて、性能値が設計制約を満たすドライバセルの数を特定する。これにより、利用者に、設計制約を満たすパス上のドライバの数を提示することができる。また、ドライバセルと配線とのセット回路についてのアナログ動作のシミュレーションによって得られた性能値に基づいて、各設計構成におけるパスの性能値を見積もることができる。このため、配線後の検証によるパスの性能値と、見積もり時のパスの性能値と、の乖離を抑制することができる。したがって、レイアウト設計の効率化を図ることができる。レイアウト設計の効率化とは、例えば、レイアウト設計の手戻りを減らすことを示す。また、レイアウト設計の効率化とは、レイアウト設計の手戻りを減らすことにより、レイアウト設計に要する時間の短縮化を示す。また、レイアウト設計に要する時間を短縮し、ひいては、レイアウト設計にかかる費用の低廉化を図る。なお、本実施の形態では、配線の特性およびドライバセルの特性に関する条件とゲート段数との組み合わせについては設計構成とも称する。
【００２１】
回路モデル情報１０１は、特定のドライバセルと特定のドライバセルの出力端子に接続される配線との組み合わせ１０２を示す。ドライバセルとは、信号の立ち上がりや立ち下がりを急峻にするために、パス上に設けられる。ドライバセルとしては、例えば、インバータやバッファなどが挙げられる。ここでの特定のドライバセルは、予め定められた種類や機能のドライバセルである。回路モデル情報１０１は、例えば、ＳＰＩＣＥ（Ｓｉｍｕｌａｔｉｏｎ  Ｐｒｏｇｒａｍ  ｗｉｔｈ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｅｍｐｈａｓｉｓ）記述形式によって記述される。
【００２２】
図１（１）に示すように、設計支援装置１００は、例えば、回路モデル情報１０１に基づいて、配線の各長さについての組み合わせ１０２の動作のシミュレーションを実行することにより、配線の各長さについての組み合わせ１０２の性能値を取得する。配線の各長さとは、組み合わせ１０２に含まれる配線の長さであり、予め設定された長さである。また、組み合わせ１０２の動作のシミュレーションには、例えば、ＳＰＩＣＥシミュレータなどの回路シミュレータが用いられる。
【００２３】
動作のシミュレーションにおいて、設計支援装置１００は、所定の条件に基づいて行う。所定の条件とは、ドライバセルの特性および配線の特性に関する条件などが挙げられる。ドライバセルの特性に関する条件とは、例えば、ドライバセルの駆動能力に関する条件である。また、配線の特性に関する条件とは、例えば、配線のシート抵抗値、配線の層、配線の幅などの条件である。また、ドライバセルの特性および配線の特性に関する条件は、複数通りあってもよい。このため、設計支援装置１００は、複数通りの条件の各々について、回路モデル情報１０１に基づくシミュレーションを行ってもよい。また、所定の条件には、例えば、組み合わせ１０２の周辺の温度などが含まれていてもよい。
【００２４】
また、図１の例では、組み合わせ１０２の性能値は、組み合わせに含まれる前記特定のドライバセルの入力端子と、前記特定のドライバセルの出力端子に接続される配線の該出力端子と異なる末端との間の遅延時間である。また、図１において省略するが、組み合わせ１０２の性能値は、組み合わせの消費電力や消費電流であってもよい。図１では、組み合わせ１０２の性能値は、組み合わせ１０２の遅延時間の１種類を例に挙げるが、これに限らず、複数種類の性能値であってもよい。
【００２５】
つぎに、設計支援装置１００は、設計の対象回路１０３に含まれる部分回路と部分回路の接続先とを接続するパスの長さの指定を受け付ける。部分回路については、例えば、ブロックとも称する。ブロックは、セル単体またはセルの集合である。図１（２）に示すように、例えば、設計支援装置１００は、対象回路１０３に含まれるブロック１０４と、ブロック１０４の接続先であるブロック１０５とを接続するパスの長さの指定を受け付ける。図１の例では、ブロック１０４の接続先がブロック１０５のように回路であるが、各ブロックの接続先は、例えば、対象回路１０３の外部と接続するための出力端子となる場合もある。パスの長さについては、設計距離とも称する。
【００２６】
図１（３）に示すように、設計支援装置１００は、配線の各長さについて導出した組み合わせの性能値と、受け付けた長さと、に基づいて、パスに設けるドライバセルの数別に、受け付けた長さにおけるパスの性能値を算出する。ここで、ドライバセルの数については、ゲート段数とも称する。
【００２７】
パスの性能値を算出する処理では、設計支援装置１００は、配線の各長さについて導出した組み合わせの遅延時間を含む算出結果１０６に基づいて、設計距離における組み合わせ１０２の遅延時間を求める。そして、設計支援装置１００は、設計距離における組み合わせ１０２の遅延時間に基づいて、パスのゲート段数別にパスの遅延時間を算出する。
【００２８】
グラフ１０７には、ドライバセルに接続される配線の長さと、組み合わせ１０２の遅延時間との関係を示す。グラフ１０７に示すように、ドライバセルに接続される配線の長さによって遅延時間が異なる。このため、パスのゲート段数ごとにパスの遅延時間が異なる。このため、上述のように、設計支援装置１００は、パスのゲート段数別にパスの遅延時間を算出する。パスのゲート段数が１段の場合、遅延時間ｄ１はＴ１１である。パスのゲート段数が２段の場合、遅延時間ｄ２はＴ２１×２である。Ｔ２１は、設計距離／２についての遅延時間である。パスのゲート段数が３段の場合、遅延時間ｄ３はＴ３１×３である。Ｔ３１は、設計距離／３についての遅延時間である。このように、設計支援装置１００は、パスのゲート段数がｎ段まで遅延時間を算出する。ｎは２以上の整数である。また、図１の例では、設計支援装置１００は、１段、２段、３段のように１段ずつ順に遅延時間を算出しているが、これに限らず、予め定められた段数についての遅延時間を算出すればよい。このため、設計支援装置１００は、例えば、２段、４段、６段のように２段ずつ順に遅延時間を算出してもよい。
【００２９】
また、例えば、２段の場合、Ｔ２１は、「Ｔ１１／２」であるとは限らない。例えば、３段の場合、Ｔ３１は、「Ｔ１１／３」であるとは限らない。したがって、いずれのゲート段数での遅延時間が短いかは、設計距離によって異なる。
【００３０】
そして、図１（４）に示すように、設計支援装置１００は、算出したパスの性能値が所定の制約を満たすパスに設けるドライバセルの数を特定する。図１に示すように、パスの性能値が遅延時間の場合、例えば、所定の制約とは、例えば、パスの遅延時間に関する閾値である。具体的には、設計支援装置１００は、例えば、算出した遅延時間が閾値ｄｔｈ以下であるパスのゲート段数を特定する。図１の例では、設計支援装置１００は、２段と３段とを特定する。そして、設計支援装置１００は、特定したパスのゲート段数を出力してもよい。
【００３１】
上述したように、パスの長さに応じてドライバセルおよびパスの配線の組み合わせ１０２の遅延時間は異なる。このため、図１に示すように、設計支援装置１００が、組み合わせ１０２の遅延時間を配線の長さごとにシミュレーションして、パスのゲート段数別にパスの遅延時間を算出する。これにより、パスに設けるドライバセルの最適なゲート段数を利用者に提供することができる。ここでの利用者は、設計者または検証者である。したがって、レイアウト設計の手戻りを抑制することができる。また、設計支援装置１００は、配線の特性およびドライバセルの特性に関する複数の条件の各々について、最適なゲート段数を特定してもよい。これにより、設計支援装置１００は、最適な配線の特性およびドライバセルの特性に関する条件およびゲート段数を利用者に提供することができる。
【００３２】
図２は、対象回路の設計手順例を示すフローチャートである。論理設計およびレイアウト設計を行う設計装置は、論理設計を行う（ステップＳ２０１）。論理設計により設計の対象回路に含まれるセルとセル間の接続関係を示す設計情報が得られる。ここでの設計情報とは、Ｖｅｒｉｌｏｇ  ＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｉｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）やＶＨＤＬなどによって記述されたネットリストである。つぎに、設計装置は、論理検証を行う（ステップＳ２０２）。論理検証では、設計情報が示すセルとセル間の接続関係が、対象回路の機能仕様を満たすか否かをシミュレーションする。
【００３３】
そして、設計装置は、論理検証結果に問題があるか否かを判断する（ステップＳ２０３）。論理検証結果に問題がある場合（ステップＳ２０３：Ｙｅｓ）、設計装置は、ステップＳ２０１へ戻る。一方、論理検証結果に問題がない場合（ステップＳ２０３：Ｎｏ）、設計装置は、対象回路に含まれる複数のブロックを設計領域内に配置する（ステップＳ２０４）。そして、設計装置は、配置後に、タイミングの簡易検証を行う（ステップＳ２０５）。ここでの回路配置後の簡易検証については、図３を用いて説明する。
【００３４】
設計装置は、簡易検証結果に問題があるか否かを判断する（ステップＳ２０６）。簡易検証結果に問題がある場合（ステップＳ２０６：Ｙｅｓ）、設計装置は、ステップＳ２０４へ戻る。一方、簡易検証結果に問題がない場合（ステップＳ２０６：Ｎｏ）、設計装置は、回路間の配線を行う（ステップＳ２０７）。そして、設計装置は、実配線検証を行う（ステップＳ２０８）。実配線検証結果に問題があるか否かを判断する（ステップＳ２０９）。実配線検証結果に問題がある場合（ステップＳ２０９：Ｙｅｓ）、設計装置は、ステップＳ２０７またはステップＳ２０４へ戻る。一方、実配線検証結果に問題がない場合（ステップＳ２０９：Ｎｏ）、設計装置は、一連の処理を終了する。
【００３５】
図３は、レイアウト設計例を示す説明図である。図３（１）に示すように、まず、レイアウト設計では、設計の対象回路に含まれる各ブロックを配置する。図３（１）の例では、ブロックＡとブロックＢとが配置される。
【００３６】
つぎに、図３（２）に示すように、レイアウト設計では、配置後にブロック間のパスのタイミング検証を行う。ここでは、ブロックＡの出力端子ＸとブロックＢの入力端子Ｙとが接続される。配置後の検証では、例えば、ブロック間を繋ぐパスとなる配線の特性を表す値に仮値を割り当てる。配線の特性とは、配線の容量や抵抗などが挙げられる。配線の容量値や抵抗値は、例えば、配線の層に応じたシート抵抗値、配線の層に応じた容量値、配線の幅、配線の長さなどによって異なる。
【００３７】
そこで、配置後の検証では、ブロックの出力端子とその出力端子の接続先となるブロックの入力端子との間の距離またはブロック間の簡易な距離、ブロック間の配線の配線層などに基づいて、配線の容量値や配線の抵抗値を割り当てる。ここで、配線の層に応じたシート抵抗値、配線の層に応じた容量値などは、図３（２）に示すように、予めテーブル化されてある。ここで、ブロック間の配線の層は、利用者がブロックの配置の状況を想定して決定する。ブロックの配置の状況とは、例えば、ブロックの配置が混雑しているか、ブロックの配置が空いているかなどの状況である。設計領域のうちブロックの配置が混雑しているような領域については、配線の混雑が予想され、利用者は、このような領域に設けられる配線の層は幅が狭い層によって実現されると想定する。
【００３８】
利用者が、ブロックＡの出力端子からブロックＢの入力端子までを接続する配線の配線層をＭ２とし、この配線の長さを１０［μｍ］に決定する。そして、レイアウト設計では、テーブルから配線層Ｍ２に対応する抵抗値および容量値と、配線の長さと、に基づいてこの配線の抵抗値および容量値を割り当てる。
【００３９】
このように、配置後の検証では、各配線に容量値や抵抗値の仮値を割り当てる。つぎに、配置後の検証では、割り当てた仮値やゲートの抵抗値などに基づいて、ゲートの遅延時間や配線の遅延時間の値を求める。そして、配置後の検証では、求めた遅延時間に基づいて、ブロック間のパスの遅延時間などについてのタイミング検証を行う。配置後の検証では、ブロック間のパスの遅延時間などが設計の対象回路に供給されるクロック信号の周期を満たすか否かなどを判定する。
【００４０】
図３（３）に示すように、配置後の検証に問題がなければ、レイアウト設計では、配線接続を行う。そして、レイアウト設計では、配線後に検証を行う。配線後の検証では、レイアウト情報に基づいて、対象回路が、所望の周期のクロック信号を満たすように動作できるか否かを判断する。レイアウト設計では、図２に示したように、配線後の検証結果に問題があれば、配線接続を再度行う。また、配線後の検証結果に問題があり、物理的にブロック間の距離が離れている等の場合、レイアウト設計では、配置を再度行う。
【００４１】
図４は、ドライバ部および配線部の配線の長さによる遅延時間の影響例を示す説明図である。図４（１）に示すグラフ４０１は、ドライバ部の出力端子に接続される配線の長さと、ドライバ部の遅延時間と、の関係を示す。ドライバ部の遅延時間とは、ドライバセルの入力端子に信号が入力されてから、ドライバセルの出力端子から信号が出力されるまでの時間である。また、図４（２）に示すグラフ４０２は、ドライバ部の出力端子に接続される配線の長さと、配線部の遅延時間と、の関係を示す。配線部とは、ドライバセルの出力端子に接続される配線の一端から配線の他端までを示す。配線部の遅延時間は、ドライバセルの出力端子に接続される配線の一端を信号が通過してから、ドライバセルの出力端子に接続される配線の他端を信号が通過するまでの時間である。
【００４２】
近年は、従来と比較して、下層の配線の幅が小さくなるなど、抵抗値が大きくなる。このため、グラフ４０１およびグラフ４０２に示すように、近年は従来と比較して、配線の長さが長くなるほど、ドライバ部の遅延時間と配線部の遅延時間の両方が大きくなるなど、両方について抵抗値の影響が大きい。
【００４３】
このように、近年では、従来と比較して、ドライバ部および配線部のいずれも抵抗値の影響が大きい。このため、配置後の検証において、配線部の抵抗を含めずにドライバ部の抵抗によって遅延時間を計算していたため、実際の配線後の検証におけるドライバ部の遅延時間が、配置後の検証におけるドライバ部の遅延時間よりも大幅に大きくなるなど、乖離が大きい。
【００４４】
また、配線部の遅延時間は、配線部の抵抗および容量で定まる。しかし、実際に配線処理において使用される配線層が、配置後の検証時に想定された配線層よりも配線幅の小さい層に変更されると、配線後の検証における配線部の遅延時間は、配置後の検証における配線部の遅延時間よりも大幅に大きくなるなど、乖離が大きい。
【００４５】
（設計支援装置１００のハードウェア構成例）
図５は、設計支援装置のハードウェア構成例を示す説明図である。設計支援装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）５０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）５０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）５０３と、ディスクドライブ５０４と、ディスク５０５と、を有する。設計支援装置１００は、Ｉ／Ｆ（Ｉｎｔｅｒ  Ｆａｃｅ）５０６と、キーボード５０７と、マウス５０８と、ディスプレイ５０９と、を有する。また、ＣＰＵ５０１と、ＲＯＭ５０２と、ＲＡＭ５０３と、ディスクドライブ５０４と、Ｉ／Ｆ５０６と、キーボード５０７と、マウス５０８と、ディスプレイ５０９とは、バス５００によってそれぞれ接続される。
【００４６】
ここで、ＣＰＵ５０１は、設計支援装置１００の全体の制御を司る。ＲＯＭ５０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ５０３は、ＣＰＵ５０１のワークエリアとして使用される。ディスクドライブ５０４は、ＣＰＵ５０１の制御にしたがってディスク５０５に対するデータのリード／ライトを制御する。ディスク５０５は、ディスクドライブ５０４の制御で書き込まれたデータを記憶する。ディスク５０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００４７】
Ｉ／Ｆ５０６は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク５１０に接続され、このネットワーク５１０を介して他の装置に接続される。そして、Ｉ／Ｆ５０６は、ネットワーク５１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ５０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００４８】
キーボード５０７やマウス５０８は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ５０９は、ＣＰＵ５０１の指示により、データを出力するインターフェースである。
【００４９】
また、図示を省略するが、設計支援装置１００には、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、設計支援装置１００には、プリンタなどの出力装置が設けられていてもよい。
【００５０】
また、本実施の形態では、設計支援装置１００のハードウェア構成として、パーソナル・コンピュータを例に挙げているが、これに限らず、サーバなどであってもよい。設計支援装置１００がサーバである場合、設計支援装置１００と、利用者が操作可能な装置やディスプレイ５０９などと、がネットワーク５１０を介して接続されてもよい。
【００５１】
（設計支援装置１００の機能的構成例）
図６は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置１００は、実行部６０１と、生成部６０２と、算出部６０３と、受付部６０４と、特定部６０５と、配置処理部６０６と、配線処理部６０７と、出力部６０８と、検証部６０９と、記憶部６１０と、を有する。
【００５２】
実行部６０１から検証部６０９までの制御部６００の処理は、例えば、図５に示すＣＰＵ５０１がアクセス可能なＲＯＭ５０２、ＲＡＭ５０３、ディスク５０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ５０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部６００の処理が実現される。また、制御部６００の処理結果は、例えば、ＲＯＭ５０２、ＲＡＭ５０３、ディスク５０５などの記憶装置に記憶される。
【００５３】
記憶部６１０は、ＲＯＭ５０２、ＲＡＭ５０３、ディスク５０５などの記憶装置によって実現される。記憶部６１０は、シミュレーション条件情報６２１、回路モデル情報６２２、設計情報６２３、レイアウト情報６２４、制御部６００による処理結果などが記憶される。
【００５４】
シミュレーション条件情報６２１は、後述するシミュレーションにおける各種変更可能な条件が記述されてある。シミュレーションにおける条件としては、ドライバセルのドライバ種類条件、配線層の条件、配線幅の条件などが挙げられる。なお、シミュレーション条件情報６２１の詳細例については、図８を用いて後述する。
【００５５】
回路モデル情報６２２は、シミュレーションに用いる回路モデルを表す。回路モデル情報６２２は、例えば、ＳＰＩＣＥ記述形式によって記述される。回路モデル情報６２２は、ドライバセルとドライバセルの出力端子に接続される配線とのセット回路が繰り返し接続されたセット回路モデルを示す。本実施の形態では、セット回路モデルに含まれる一部のセット回路の性能値がシミュレーションによって取得される。なお、回路モデル情報６２２が表す回路モデルの一例については、図７を用いて後述する。
【００５６】
設計情報６２３は、論理設計によって得られる対象回路のセルおよびセル間の接続関係を示す。設計情報６２３は、例えば、Ｖｅｒｉｌｏｇ  ＨＤＬやＶＨＤＬなどによって記述されたネットリストである。
【００５７】
レイアウト情報６２４は、対象回路に含まれる各セルの配置およびセル間の配線を示す。レイアウト情報６２４は、例えば、レイアウト設計における配置処理後や配線処理後に得られる。
【００５８】
つぎに、制御部６００に含まれる実行部６０１から検証部６０９までの処理について説明する。まず、実行部６０１は、回路モデル情報６２２に基づいて、セット回路の配線の各長さについての組み合わせの動作のシミュレーションを実行することにより、セット回路の配線の各長さについての組み合わせの性能値を取得する。
【００５９】
具体的には、実行部６０１は、例えば、複数の条件の各々について、回路モデル情報６２２に基づいて、配線の長さごとに、セット回路が複数接続されたセット回路モデルのアナログ動作のシミュレーションを実行する。そして、実行部６０１は、例えば、シミュレーションの実行結果として、セット回路モデルに含まれるセット回路の遅延時間および消費電力を取得する。なお、回路モデル情報６２２には、予め遅延時間や消費電力を回路シミュレータに導出させる指示が記述されてある。
【００６０】
複数の条件は、配線の特性およびドライバセルの特性に関する複数の条件である。複数の条件については、シミュレーション条件情報６２１に基づいて設計者が決定してもよいし、実行部６０１が決定してもよい。配線の特性に関する条件は、例えば、配線幅の条件や配線層の条件などが挙げられる。ドライバセルの特性に関する条件は、例えば、ドライバセルのドライバ種類の条件などが挙げられる。後述する図８の例では、温度条件が３種類、ドライバセルの条件が３種類、配線層の条件が４種類、配線幅の条件が３種類である。このため、各条件の組み合わせは３×３×４×３の１０８通りあるため、シミュレーションの実行は例えば１０８通り行われる。
【００６１】
実行部６０１による動作のシミュレーションの実行は、回路モデル情報６２２に基づいて、ＳＰＩＣＥなどの回路シミュレータにシミュレーションを実行させることによって実現される。回路シミュレータについては、設計支援装置１００上で動作させてもよいし、設計支援装置１００と異なるサーバなどのコンピュータ上で動作させてもよい。設計支援装置１００上で回路シミュレータが動作する場合、実行部６０１は、回路シミュレータによってシミュレーションを実行することにより性能値を取得する。また、設計支援装置１００と異なるコンピュータ上で回路シミュレータが動作する場合、実行部６０１は、例えば、そのコンピュータに対してシミュレーションの実行を指示する。そして、実行部６０１は、回路シミュレーションによって得られる性能値をそのコンピュータから取得する。
【００６２】
つぎに、受付部６０４は、設計の対象回路に含まれるブロックとブロックの接続先とを接続するパスの長さの指定を受け付ける。ここでのパスの長さは、上述したように設計距離とも称する。具体的には、受付部６０４は、例えば、キーボード５０７やマウス５０８などに対する設計者のパスの長さの操作入力を受け付ける。
【００６３】
そして、算出部６０３は、セット回路の配線の各長さについて導出したセット回路の性能値と、受付部６０４が受け付けた長さと、に基づいて、パスに設けるドライバセルの数別に、受け付けた長さにおけるパスの性能値を算出する。
【００６４】
パスの性能値を算出する処理について詳細に説明する。ここでは、生成部６０２と算出部６０３とによって、パスに設けるドライバセルの数別に、受け付けた長さにおけるパスの性能値が算出される。
【００６５】
まず、生成部６０２の処理について説明する。生成部６０２は、各長さについての算出したセット回路の性能値に基づいて、配線の長さを与えると、与えた配線の長さに応じたセット回路の性能値が得られる関数を生成する。具体的には、生成部６０２は、例えば、複数通りの条件の各々について、配線の長さごとに導出した遅延時間に基づいて、配線の長さを与えると、遅延時間が得られる関数を算出する。また、生成部６０２は、例えば、複数通りの条件の各々について、配線の長さごとに導出した遅延時間に基づいて、配線の長さを与えると、電力が得られる関数を算出する。電力に限らず、消費電流であってもよい。ここでの関数としては、２次近似式が挙げられる。
【００６６】
ここで、複数の条件はｃ１〜ｃｘと表す。例えば、条件ｃ１について、配線の長さごとに算出した遅延時間に基づいて配線の長さに応じたセット回路の遅延時間が得られる関数をＹｄ１と表す。関数Ｙｄ1は、「ａ1ｘ2＋ｂ1ｘ＋ｃ1」と表す。ａ1、ｂ1、ｃ1は、係数であり、生成部６０２によって算出される数値である。ｘは、配線の長さを表す変数である。また、生成部６０２は、条件ｃ２〜ｃｘのそれぞれについて関数Ｙｄ2〜Ｙｄ4を算出する。また、生成部６０２は、消費電力が得られる関数についても同様に生成する。なお、生成される関数例については、図９を用いて後述する。
【００６７】
つぎに、算出部６０３は、生成部６０２によって生成された関数と、受付部６０４によって受け付けられた設計距離と、に基づいて、パスのゲート段数別に、パスのゲート１段あたりの性能値を算出する。そして、算出部６０３は、パスに設けるドライバセルの数別に、算出した１段あたりの性能値に基づいてパスの性能値を算出する。
【００６８】
ここでは、パスの性能値として遅延時間を挙げて説明する。具体的には、算出部６０３は、例えば、複数通りの条件の各々について、設計距離と、算出した関数と、に基づいて、パスに設けるドライバセルの数別に、設計距離におけるパス上のドライバセルの１段当たりの遅延時間を算出する。パスに設けるドライバセルの数は、パスのゲート段数とも称する。
【００６９】
そして、算出部６０３は、例えば、パスのゲート段数別に、算出した１段当たりの遅延時間に基づいて、設計距離におけるパスの遅延時間を算出する。例えば、設計距離をＢ［μｍ］と表す。設計距離Ｂのパスを２段で伝送させる場合について説明する。１段あたりの長さは、Ｂ／２［μｍ］である。関数Ｙｄ1によれば、条件ｃ１における１段あたりの遅延時間は、「（ａ1・（Ｂ／２）2＋ｂ1・（Ｂ／２）＋ｃ1）」である。設計距離Ｂ［μｍ］のパスを２段で伝送させる場合の条件ｃ１におけるパスの遅延時間は、「２・（ａ1・（Ｂ／２）2＋ｂ1・（Ｂ／２）＋ｃ1）」である。また、算出部６０３は、２段と同様に、４段、６段などのように予め決められたパスの段数別に、設計距離におけるパスの遅延時間を算出する。すなわち、算出部６０３は、パスのゲート段数別に、受け付けた設計距離をゲート１段あたりの駆動する設計距離に分割して近似式に代入することによりゲート１段あたりの遅延時間を算出する。そして、算出部６０３は、パスのゲート段数別に、１段あたりの遅延時間に基づいてパスの遅延時間を算出する。なお、ゲート段数別のパスの遅延時間の詳細例は図１０を用いて後述する。
【００７０】
つぎに、特定部６０５は、算出部６０３によって算出されたパスの性能値が所定の制約を満たすパスに設けるドライバセルの数を特定する。所定の制約とは、例えば、設計制約または／および設計方針である。設計制約とは、例えば、対象回路の設計仕様に基づいて定められる閾値などが挙げられる。より具体的な設計制約としては、例えば、パスの遅延時間に対する閾値やパスの消費電力に対する閾値などが挙げられる。パスの遅延時間に対する閾値は、例えば、クロックの周波数などに基づいて定まる。設計方針とは、例えば、設計仕様を満たす回路構成および設計段数の中で、どのような回路構成および設計段数とするかの方針である。設計方針としては、「可能な限り早く動作させる」、「消費電力が最も少ないようにする」などが挙げられる。
【００７１】
また、所定の制約を満たすパスのゲート段数を特定するための処理としては、以下の通りである。
【００７２】
まず、受付部６０４は、設計制約または／および設計方針の入力を受け付ける。つぎに、特定部６０５は、複数通りの条件の各々について、算出部６０３によって算出された性能値が受付部６０４によって受け付けた設計制約を満たすパスのゲート段数を特定する。そして、特定部６０５は、複数通りの条件の各々について、特定したゲート段数の中で、受付部６０４によって受け付けた設計方針を満たすゲート段数を特定する。なお、設計制約を満たすゲート段数を特定する例については、図１１を用いて後述する。
【００７３】
そして、出力部６０８は、例えば、複数通りの条件の各々について、特定部６０５によって特定されたゲート段数を出力する。出力形式としては、出力部６０８は、例えば、条件と、特定されたゲート段数および性能値を関連付けた出力情報をディスプレイ５０９などに表示してもよい。また、出力形式としては、この出力情報を記憶部６１０に格納してもよい。また、出力形式としては、ネットワーク５１０を介して、この出力情報を外部の装置に出力してもよい。
【００７４】
また、特定部６０５によってゲート段数が特定できない条件がある場合、出力部６０８は、その条件においてパスを配線できないことを出力する。出力形式としては、パスを配線できないことを示す出力情報をディスプレイ５０９へ出力、記憶部６１０へ格納、ネットワーク５１０を介して外部の装置へ出力などが挙げられる。
【００７５】
また、特定部６０５は、さらに、複数通りの条件のうち、特定部６０５によって特定されたゲート段数における性能値が設計方針を満たす条件を特定する。ここでは、説明の簡単化のために、条件がＹ１とＹ２と２つの場合を例に挙げて説明する。例えば、条件Ｙ１において特定されたゲート段数が４段であり、かつ４段における遅延時間がｄ１である。また、例えば、条件Ｙ２において特定されたゲート段数が６段であり、かつ６段における遅延時間がｄ２である。特定部６０５は、ｄ１＞ｄ２であれば、条件Ｙ１を特定する。特定部６０５は、ｄ２＞ｄ１であれば、条件Ｙ２を特定する。また、特定部６０５は、ｄ１＝ｄ２であれば、条件Ｙ１と条件Ｙ２とを特定する。
【００７６】
そして、出力部６０８は、特定部６０５によって特定された条件と、特定された条件におけるゲート段数と、ゲート段数および性能値と、を関連付けた出力情報を出力する。出力形式については、上述例と同じであるため、詳細な説明を省略する。これにより、設計制約および設計方針を満たす設計条件およびゲート段数を利用者に提示することができる。したがって、レイアウト設計の効率化を図ることができる。
【００７７】
つぎに、配置処理部６０６は、設計の対象回路に含まれる複数のブロックのすべてにおいて設計構成が決定した後に、複数のブロックの各々について、ブロックと、そのブロックとそのブロックの接続先とを接続するパスの長さと、に基づいて配置処理を行う。配置処理部６０６は、配置処理を行うことにより、ブロックとブロックの位置を示すレイアウト情報６２４を生成する。
【００７８】
配置処理部６０６については、自動配置配線ツールによって実現されてもよいし、利用者の操作入力によって実現されてもよい。自動配置配線ツールについては、回路シミュレータと同様に、設計支援装置１００上で動作してもよいし、設計支援装置１００と異なるサーバなどのコンピュータ上で動作してもよい。自動配置配線ツールが設計支援装置１００と異なるコンピュータ上で動作する場合、設計支援装置１００は、そのコンピュータに対して配置処理の実行を指示することにより配置処理によって得られるレイアウト情報６２４をそのコンピュータから取得してもよい。
【００７９】
そして、配線処理部６０７は、配置処理後に、ブロックの各々について決定した設計構成に基づいてブロック間を接続する配線処理を行う。配線処理部６０７は、配置処理部６０６によって生成されたレイアウト情報６２４に基づいて、対象回路に含まれるブロックとブロックの位置とブロック間の配線を示すレイアウト情報６２４を生成する。
【００８０】
配線処理部６０７は、例えば、自動配置配線ツールによって実現されてもよいし、利用者の操作入力によって実現されてもよい。自動配置配線ツールが設計支援装置１００と異なるコンピュータ上で動作する場合、設計支援装置１００は、そのコンピュータに対して配線処理の実行を指示することにより配線処理によって得られるレイアウト情報６２４をそのコンピュータから取得してもよい。
【００８１】
そして、検証部６０９は、配線処理部６０７によって生成されたレイアウト情報６２４に基づいて、対象回路のタイミングの検証を行う。検証部６０９によるタイミングの検証については、既存の検証方法を用いればよいため、詳細な説明を省略する。
【００８２】
つぎに、消費電力や遅延時間などのように複数種類の性能値に基づいて、ゲート段数や各種条件を決定する例について説明する。
【００８３】
実行部６０１は、回路モデル情報６２２に基づいて、セット回路の動作のシミュレーションを実行することにより、セット回路の第１性能値とセット回路の第２性能値とを取得する。回路モデル情報６２２には、上述したように、セット回路の第１性能値および第２性能値を回路シミュレータに導出させる指示が記述されてある。シミュレーションの実行については、性能値が１種類の場合と同じである。例えば、セット回路の第１性能値は、セット回路に含まれるドライバセルの入力端子と、ドライバセルの出力端子に接続される配線の該出力端子と異なる末端との間の遅延時間である。より具体的には、この遅延時間は、所定の信号がセット回路に含まれるドライバセルの入力端子に入力されてからドライバセルの出力端子に接続される配線の該出力端子と異なる末端を通過するまでに要する時間である。信号については、立ち上がり動作の信号であってもよいし、立ち下り動作の信号であってもよい。また、セット回路の第２性能値は、セット回路の消費電力である。
【００８４】
そして、算出部６０３は、実行部６０１によって取得されたセット回路の第１性能値および第２性能値に基づいて、パスのゲート段数別に、パスの第１性能値と、パスの第２性能値とを算出する。例えば、パスの第１性能値は、対象回路に含まれるブロックから出力された信号がブロックの接続先に到達するまでの時間である。パスの第２性能値は、パスの消費電力である。パスの第１性能値やパスの第２性能値を得るための生成部６０２および算出部６０３の詳細な処理については、性能値が１種類の場合の例と同じであるため、詳細な説明を省略する。
【００８５】
そして、特定部６０５は、算出部６０３によって算出されたパスの第１性能値と、算出部６０３によって算出されたパスの第２性能値と、が所定の制約を満たすパスのゲート段数を特定する。
【００８６】
特定部６０５は、パスの第１性能値と、パスの第２性能値と、が所定の制約を満たすパスのゲート段数を特定する。所定の制約は、上述した設計制約である。所定の制約は、例えば、パスの第１性能値とパスの第２性能値とのそれぞれについての閾値であってもよい。
【００８７】
例えば、第１性能値は遅延時間であり、第２性能値は消費電力である場合、条件ｃ１において、受け付けた長さにおける各ゲート段数別のパスの遅延時間および消費電力が以下とする。パスの遅延時間に対する閾値を６０５［ｐｓ］とし、パスの消費電力に対する閾値を１．１５［Ｗ］とする。
・２段：遅延時間６５０［ｐｓ］、消費電力０．９［Ｗ］
・３段：遅延時間６００［ｐｓ］、消費電力１．１［Ｗ］
・４段：遅延時間６００［ｐｓ］、消費電力１．２［Ｗ］
・５段：遅延時間６１０［ｐｓ］、消費電力１．５［Ｗ］
【００８８】
特定部６０５は、条件ｃ１について、パスの遅延時間に対する閾値以下であり、かつパスの消費電力に対する閾値以下であるゲート段数として、３段とを特定する。
【００８９】
また、特定部６０５は、例えば、パスの第１性能値と、パスの第２性能値と、の両方が優れたゲート段数を特定してもよい。パスの第１性能値と、パスの第２性能値と、の両方が優れたゲート段数とは、２つの性能値が他のゲート段数に優越されないゲート段数である。例えば、第１性能値は遅延時間であり、第２性能値は消費電力である場合、特定部６０５は、パスの遅延時間とパスの消費電力との両方が小さいようなゲート段数がないゲート段数を特定する。
【００９０】
条件ｃ１において、受け付けた長さにおける各ゲート段数別のパスの遅延時間および消費電力が以下とする。
・２段：遅延時間６５０［ｐｓ］、消費電力０．９［Ｗ］
・３段：遅延時間６００［ｐｓ］、消費電力１．１［Ｗ］
・４段：遅延時間６００［ｐｓ］、消費電力１．２［Ｗ］
・５段：遅延時間６１０［ｐｓ］、消費電力１．５［Ｗ］
【００９１】
このような場合、特定部６０５は、条件ｃ１について、２段および３段を特定する。
【００９２】
また、上述したように、特定部６０５は、条件ｃ１について、さらに、設計方針に基づいて、特定したゲート段数からいずれかのゲート段数を特定してもよい。例えば、設計方針が「最速な構成」であれば、特定部６０５は、３段を特定する。一方、設計方針が「低消費電力」であれば、特定部６０５は、２段を特定する。
【００９３】
これにより、性能値が第１性能値と第２性能値のように複数種類ある場合に、設計支援装置１００は、複数の性能値のトレードオフを考慮して最適な設計構成を特定することができる。
【００９４】
図７は、回路モデル情報例を示す説明図である。回路モデル情報６２２は、セット回路モデル７００を表し、図１で説明した回路モデル情報１０１のより詳細な例である。回路モデル情報６２２は、例えば、ＳＰＩＣＥ記述形式によって記述される。セット回路モデル７００は、ドライバセルと、ドライバセルの出力端子に接続される配線と、のセット回路が繰り返し接続されたモデルである。上述したシミュレーションでは、セット回路モデル７００内の一部のセット回路７０１の遅延時間および消費電力が導出される。ここで、セット回路モデル７００には、シミュレーションの対象となるセット回路７０１の前段や後段に複数のセット回路が設けられる。これにより、セット回路７０１の遅延時間および消費電力の精度の向上を図る。
【００９５】
各セット回路の配線の長さは、設定可能とする。本実施の形態では、配線の長さには、複数通りの長さが設定される。上述したように、実行部６０１は、例えば、複数通りの長さについて、回路モデル情報６２２に基づいて、セット回路モデル７００の動作のシミュレーションを実行することにより、セット回路７０１の遅延時間および消費電力を取得する。
【００９６】
図８は、シミュレーション条件情報例を示す説明図である。シミュレーション条件情報６２１には、上述したシミュレーションを行う際の条件が記載されてある。シミュレーションの条件としては、例えば、配線の特性に関する条件、ドライバセルの特性に関する条件、セット回路の周辺の温度の条件、セット回路に供給される電源電圧の条件（図示省略）などが挙げられる。
【００９７】
配線の特性に関する条件としては、例えば、配線の配線幅や配線層などの条件が挙げられる。配線層の変更に応じて、配線層に応じたシート抵抗値や容量値などの特性に関する値がシミュレーション時に変更される。配線幅の条件は、例えば、最小幅、最小幅の２倍幅や最小幅の３倍幅などのように変更可能である。配線層の条件は、例えば、Ｍ２、Ｍ３、Ｍ４、Ｍ５などのように変更可能である。
【００９８】
ドライバセルの特性に関する条件は、ドライバセルのドライバ種類などが挙げられる。ドライバ種類が異なることは、機能が同じドライバセルにおいて駆動能力が異なることを示す。駆動能力が異なれば、ドライバセルを流れる電流やドライバセルの抵抗値などが異なる。ドライバセルのドライバ種類の条件は、デフォルト、デフォルトに対して駆動力２倍、駆動力４倍、駆動力８倍などのように変更可能である。また、セット回路の周辺の温度の条件は、例えば、０℃、５０℃、１００℃のように変更可能である。
【００９９】
図９は、関数の算出例を示す説明図である。図９では、生成部６０２による関数の生成例の詳細について説明する。
【０１００】
図９において条件は、ｃ１〜ｃｘとも表す。ｘは１以上の整数である。生成部６０２は、例えば、条件ｃ１について、配線の長さごとに算出した遅延時間に基づいて、配線の長さを与えると、配線の長さに応じたセット回路７０１の遅延時間が得られる関数Ｙｄ1を算出する。遅延時間算出結果９０１は、条件ごとにセット回路７０１の配線の各長さについての算出された遅延時間を含む。グラフ９１１は、例えば、条件ｃ１について、配線の長さと遅延時間との関係を示す。
【０１０１】
関数Ｙｄ1は、「ａ1ｘ2＋ｂ1ｘ＋ｃ1」である。ａ1、ｂ1、ｃ1は、係数であり、生成部６０２によって算出される数値である。ｘは、配線の長さを表す変数である。Ｙｄは、遅延時間を表す。また、関数Ｙｄ2〜Ｙｄ4などのように、生成部６０２は、条件ごとに関数Ｙｄを生成する。
【０１０２】
また、生成部６０２は、条件ｃ１について、配線の長さごとに算出した消費電力に基づいて、配線の長さを与えると、消費電力が得られる関数Ｙｐ1を生成する。消費電力算出結果９０２は、条件ごとにセット回路７０１の配線の各長さについての算出された消費電力を含む。グラフ９１２は、例えば、条件ｃ１について、配線の長さと消費電力との関係を示す。
【０１０３】
関数Ｙｐ1は、「ｄ1ｘ2＋ｅ1ｘ＋ｆ1」である。ｄ1、ｅ1、ｆ1は、係数であり、生成部６０２によって算出される数値である。ｘは、配線の長さを表す変数である。Ｙｐは、消費電力である。また、関数Ｙｐ2〜Ｙｐ4などのように、生成部６０２は、条件ごとに関数Ｙｐを生成する。
【０１０４】
図１０は、ゲート段数別のパスの遅延時間例を示す説明図である。テーブル１０００は、パスのゲート段数別の条件ｃ１におけるパスの遅延時間を示す。テーブル１０００では、関数のままで表されているが、実際には一意に遅延時間が定まる。ここで設計距離は、ｄｉｎである。
【０１０５】
グラフ１００１には、パスのゲート段数別に、パスの配線の長さと、遅延時間と、の関係を示す。グラフ１００１では、配線の長さが短い場合、ゲート段数が少ないほど、遅延時間が小さい。一方、グラフ１００１では、配線の長さが長い場合、ゲート段数が多いほど、遅延時間が小さくなる。また、設計距離ｄｉｎの場合、ゲート段数が２段、６段、４段の順に遅延時間が大きい。このように、配線の長さとゲート段数に応じて、遅延時間が異なる。また、算出部６０３は、条件ｃ２〜条件ｃｘについてもゲート段数別の遅延時間を算出する。
【０１０６】
図１１は、設計制約を満たす最速な設計段数の特定例を示す説明図である。設計制約として、遅延時間についての閾値を例に挙げる。また、設計方針としては、「最速な構成とすること」とする。
【０１０７】
図１１では、条件ｃ１を例に挙げて説明する。特定部６０５は、例えば、条件ｃ１において、設計距離における遅延時間が、設計制約である閾値以下となるゲート段数として４段および６段を特定する。パスのゲート段数が４段と６段とで遅延時間を比較すると、４段における遅延時間が、６段における遅延時間よりも短い。このため、特定部６０５は、例えば、条件ｃ１において、条件ｃ１において、設計方針である「最速な構成とすること」に対応するゲート段数として４段を特定する。
【０１０８】
図１２は、ゲート段数別に遅延時間が異なる例を示す説明図である。従来技術では、例えば、ドライバ部の遅延時間と、配線部の遅延時間と、の合計によって、パスの遅延時間が算出される。ドライバ部とは、ドライバセルの入力端子からドライバセルの出力端子までを示す。このため、従来技術では、異なるパス上のゲート段数においても配線部の遅延時間は同じとなっている。このため、従来技術では、単にゲート段数が多いほど、パスの遅延時間が長くなる。
【０１０９】
これに対して、本実施の形態では、ゲート１段あたりの配線部の遅延時間に基づいて、パスの配線部の遅延時間が算出される。グラフ１２０１は、配線の長さと遅延時間との関係を示す。グラフ１２０１に示すように、ゲート段数が多くとも、パスの遅延時間が長くなるとは限らない。
【０１１０】
図１２の例では、理解の容易化のために、配線部の遅延時間とドライバ部の遅延時間とを区別して、ゲート１段あたりの遅延時間とゲート段数との積算によって総ドライバ部の遅延時間を求めている。ただし、本実施の形態では、設計支援装置１００は、ＳＰＩＣＥシミュレーションを用いることにより、ドライバセルとドライバセルに接続される配線との合成抵抗によってドライバセルおよび配線の組み合わせの遅延時間を算出する。
【０１１１】
ここで、図１３〜図１５を用いて、対象回路内のブロック間のパスのゲート段数およびパスの配線の特性に関する条件およびパスのドライバセルの特定に関する条件を決定する例を説明する。
【０１１２】
図１３は、設計の対象回路例を示す説明図である。対象回路１３００は、ブロック１３０１と、ブロック１３０２と、ブロック１３０３と、を有する。ブロック１３０１の各出力端子は、ブロック１３０２の各入力端子に接続される。ブロック１３０１とブロック１３０２との間のパスは、３本である。ブロック１３０２の各出力端子は、ブロック１３０３の各入力端子に接続される。ブロック１３０２とブロック１３０３との間のパスは、６本である。ブロック１３０１の出力端子からブロック１３０３の入力端子までの距離は、１２００［μｍ］とする。また、説明の簡単化のために、図１３におけるブロック１３０２の横方向の長さについては無視する。また、ブロック１３０１とブロック１３０３との配置は、固定とする。
【０１１３】
まず、実行部６０１は、上述したように、各条件について、ドライバセルと配線とのセット回路モデルに基づいて、各配線の長さにおけるシミュレーションを行うことにより、各配線の長さにおけるセット回路モデルの遅延時間および消費電力を導出する。
【０１１４】
つぎに、生成部６０２は、各条件について、各配線の長さにおけるセット回路モデルの遅延時間および消費電力に基づいて、遅延時間を算出可能な関数および消費電力を算出可能な関数を生成する。
【０１１５】
そして、受付部６０４は、ブロック間の長さである設計距離の入力を受け付ける。例えば、利用者は、各ブロック間の距離を以下のように決定する。
・例１）ブロック１３０１とブロック１３０２との間の距離：９００、
ブロック１３０２とブロック１３０３との間の距離：３００
・例２）ブロック１３０１とブロック１３０２との間の距離：８００、
ブロック１３０２とブロック１３０３との間の距離：４００
・例３）ブロック１３０１とブロック１３０２との間の距離：７００、
ブロック１３０２とブロック１３０３との間の距離：５００
・例４）ブロック１３０１とブロック１３０２との間の距離：６００、
ブロック１３０２とブロック１３０３との間の距離：６００
・例５）ブロック１３０１とブロック１３０２との間の距離：５００、
ブロック１３０２とブロック１３０３との間の距離：７００
【０１１６】
このため、受付部６０４は、ブロック間の距離が設計距離として入力されると、その設計距離を受け付ける。設計距離としては、３００、４００、５００、６００、７００、８００、９００のように複数通り入力されてもよい。
【０１１７】
そして、算出部６０３は、各条件について、設計距離および各関数に基づいて、ゲート段数ごとに、パスの遅延時間および消費電力を算出する。
【０１１８】
つぎに、特定部６０５は、各条件について、ゲート段数の組み別に、ブロック１３０１とブロック１３０２間の遅延時間およびブロック１３０２とブロック１３０３間の遅延時間の合計の遅延時間を求める。ゲート段数の組とは、ブロック１３０１とブロック１３０２間のゲート段数と、ブロック１３０２とブロック１３０３間のゲート段数と、の組み合わせである。また、特定部６０５は、各条件について、ゲート段数の組み別に、ブロック１３０１とブロック１３０２間の消費電力およびブロック１３０２とブロック１３０３間の消費電力の合計の消費電力を求める。
【０１１９】
そして、特定部６０５は、各条件について、合計の遅延時間および合計の消費電力が、設計制約および設計方針を満たすゲート段数の組を特定する。設計制約および設計方針は、例えば、以下の通りである。
・設計制約：「５００ｐｓｅｃ以内で伝送する」
・設計方針：「電力は可能な限り低くする」
【０１２０】
つぎに、出力部６０８は、各条件について、特定したゲート段数の組を出力する。
【０１２１】
図１４は、遅延時間と消費電力との関係に基づき最適解が決定される例を示す説明図である。グラフ１４００は、条件およびゲート段数の組についての遅延時間と消費電力との関係を示す。三角形および正方形のプロットが、本実施の形態における条件およびゲート段数の組を示す。このように、本実施の形態では、出力部６０８によってグラフ化して設計構成をプロットすることにより、利用者は、設計制約を満たすゲート段数および条件を簡単に特定することができる。
【０１２２】
また、グラフ１４００は、さらに、従来技術において最速となる構成についての遅延時間と消費電力との関係、従来技術において最速となる構成からドライバの種類を変更した構成についての遅延時間と消費電力との関係を示す。最速となる構成とは、ゲート段数および配線の特性およびドライバの特性に関する各条件における遅延時間が最も早いと推定される構成である。グラフ１４００においてひし形のプロットが、最速となる構成および最速となる構成からドライバの種類を変更した構成を示す。
【０１２３】
従来技術での最速となる構成では、遅延時間が規定された設計制約を満たす。このため、設計制約を満たしていれば、設計を変更することはない。また、ゲート段数や配線の特性に関する条件などを変更することにより設計制約を満たさなくなると、設計のやり直しが発生し、設計の手間がかかる。
【０１２４】
そこで、従来技術では、設計のやり直しを避けるために、設計構成を変更する場合、利用者は、例えば、ドライバセルの種類を中速や低速なドライバセルに変更または駆動能力を１段階弱いドライバセルに変更する。これにより、最速な構成からドライバセルの種類を変更した構成とすることにより、遅延時間は大きくなるが、消費電力を若干削減することができる。
【０１２５】
一方、本実施の形態における最適解は、様々な設計構成から利用者によって以下のように特定される。三角形のプロットは、「５００ｐｓｅｃ以内で伝送する」という設計制約を満たさない。正方形のプロットは、「５００ｐｓｅｃ以内で伝送する」という設計制約を満たす。利用者は、三角形のプロットを最適解の候補から除外し、正方形のプロットを最適解の候補とする。そして、利用者は、「電力は可能な限り低くする」という設計方針に基づいて、正方形のプロットから、最も消費電力が小さいプロットｐ１を最適解として特定する。
【０１２６】
図１５は、従来技術における設計構成および最適解に対応する設計構成例を示す説明図である。図１５（１）には、従来技術における最速となる構成を示す。図１５（２）には、図１４のグラフ１４００における最適解に対応する設計構成を示す。
【０１２７】
図１５（１）に示すように、従来技術での最速となる構成におけるブロック１３０１とブロック１３０２との間については、パスの長さが６００［μｍ］であり、パス上のドライバセルの種類は駆動力が１２倍の高速なドライバセルであり、パスのゲート段数は８段である。また、ブロック１３０２とブロック１３０３との間については、パスの長さが６００［μｍ］であり、パス上のドライバセルの種類は、駆動能力が１２倍の高速なドライバセルであり、パスのゲート段数は、８段である。
【０１２８】
上述したように、図１５（１）に示すように、設計のやり直しを避けつつ、消費電力を下げるように設計構成を変更する場合、利用者は、パス上のドライバセルの種類を、駆動能力が１２倍のドライバセルから１０倍のドライバセルに変更する。駆動能力が１０倍のドライバセルに変更後の構成では、駆動能力が１２倍のドライバセルである従来技術での最速な構成と比較して２０［％］程度削減することができる。
【０１２９】
また、図１５（２）に示すように、最適解に対応する構成におけるブロック１３０１とブロック１３０２との間については、パスの長さが９００［μｍ］であり、パス上のドライバセルの種類は駆動能力が１０倍の高速なドライバセルであり、パスのゲート段数は１０段である。また、ブロック１３０２とブロック１３０３との間については、パスの長さが３００［μｍ］であり、パス上のドライバセルの種類は、駆動能力が２倍の高速なドライバセルであり、パスのゲート段数は、４段である。また、最適解に対応する構成は、図１４に示す正方形の他のプロットにおける設計構成と比較して消費電力を４５［％］削減させることができる。また、最適解に対応する設計構成では、従来技術での最速な構成と比較して消費電力を２３０［％］削減させることができる。
【０１３０】
図１４において、例えば、三角形のプロットで示すゲート段数および条件は、設計制約を満たしていない。そして、出力部６０８は、設計制約を満たすゲート段数および条件を図１４のように表示する。これにより、利用者は、設計制約および設計方針を満たすようなゲート段数および条件を簡単に見つけることができる。したがって、レイアウト設計の効率化を図ることができる。
【０１３１】
つぎに、配置処理部６０６は、上述のように、設計の対象回路に含まれる複数のブロックの各々について設計構成が決定した後に、複数のブロックの各々について、ブロックと、ブロックの接続先とブロックとを接続するパスの長さと、に基づいて配置処理を行う。
【０１３２】
そして、配線処理部６０７は、上述のように、配置処理後に、複数のブロックの各々について決定した設計構成に基づいてブロック間を接続する配線処理を行う。
【０１３３】
そして、検証部６０９は、上述したように、配線処理部６０７によって生成されたレイアウト情報６２４に基づいて、レイアウト情報６２４が示す対象回路のタイミングの検証を行う。
【０１３４】
（設計支援装置１００による設計支援処理手順例）
図１６〜図１８は、設計支援装置による設計支援処理手順例を示すフローチャートである。まず、実行部６０１は、条件ごとに、回路モデル情報６２２に基づいて、セット回路モデル７００内のセット回路７０１のアナログ動作をシミュレーションすることによりセット回路７０１の遅延時間および消費電力を取得する（ステップＳ１６０１）。
【０１３５】
つぎに、生成部６０２は、条件ごとに、配線長さにより遅延時間を求める関数を生成する（ステップＳ１６０２）。また、生成部６０２は、条件ごとに、配線長さにより消費電力を求める関数を生成する（ステップＳ１６０３）。
【０１３６】
ステップＳ１６０２およびステップＳ１６０３のつぎに、受付部６０４は、設計距離の入力を受け付ける（ステップＳ１６０４）。そして、算出部６０３は、受け付けた各設計距離について、条件ごとに１段当たりの遅延時間および消費電力を算出する（ステップＳ１６０５）。算出部６０３は、受け付けた各設計距離について、条件ごとにゲート段数別の遅延時間および消費電力を算出する（ステップＳ１６０６）。
【０１３７】
そして、特定部６０５は、設計情報６２３に基づいて、設計の対象領域に配置される未対象のブロックからいずれかのブロックを選択する（ステップＳ１７０１）。選択されたブロックを対象ブロックとする。つぎに、特定部６０５は、対象ブロックを配置決定可能か否かを受付部６０４による利用者の操作入力に応じて判断する（ステップＳ１７０２）。利用者は、過去のレイアウト設計によるレイアウト情報などに基づいて対象ブロックについて設計構成や配置を決定済みの場合、対象ブロックの配置を決定可能であることを示す情報をマウス５０８やキーボード５０７の入力装置によって入力する。一方、利用者は、対象ブロックについて設計構成や配置を決定していない場合、対象ブロックの配置を決定可能でないことを示す情報をマウス５０８やキーボード５０７の入力装置によって入力する。
【０１３８】
特定部６０５は、対象ブロックを配置決定可能であると判断した場合（ステップＳ１７０２：Ｙｅｓ）、対象ブロックの配置を決定し（ステップＳ１７０３）、ステップＳ１７０９へ移行する。ここでの対象ブロックの配置とは、対象ブロックと、対象ブロックの接続先とを接続するパスの長さである設計距離および設計構成を示す。
【０１３９】
また、特定部６０５は、対象ブロックの配置決定可能でないと判断した場合（ステップＳ１７０２：Ｎｏ）、受付部６０４は、対象ブロックについて、設計距離の入力を受け付ける（ステップＳ１７０４）。また、受付部６０４は、対象ブロックについての設計制約および設計方針に関する情報の入力を受け付ける（ステップＳ１７０５）。
【０１４０】
特定部６０５は、設計距離における各条件についてゲート段数別に算出した遅延時間および消費電力を取得する（ステップＳ１７０６）。各設計距離における条件についてゲート段数別に算出した遅延時間および消費電力については、ステップＳ１６０５およびステップＳ１６０６において算出済である。このため、特定部６０５は、ステップＳ１７０７では、各設計距離における各条件についてのゲート段数別の遅延時間および消費電力から、受け付けた設計距離における各条件についてのゲート段数別の算出済の遅延時間および消費電力を取得する。
【０１４１】
そして、特定部６０５は、設計制約および設計方針と、取得した遅延時間および消費電力に基づいて、対象ブロックについての設計構成を特定する（ステップＳ１７０７）。特定部６０５は、決定した設計構成が、設計制約および設計方針を満たすか否かを判断する（ステップＳ１７０８）。特定部６０５は、特定した設計構成が、設計制約および設計方針を満たさないと判断した場合（ステップＳ１７０８：Ｎｏ）、ステップＳ１７０４に戻る。
【０１４２】
特定部６０５は、決定した設計構成が、設計制約および設計方針を満たすと判断した場合（ステップＳ１７０８：Ｙｅｓ）、未対象のブロックがあるか否かを判断する（ステップＳ１７０９）。特定部６０５は、未対象のブロックがあると判断した場合（ステップＳ１７０９：Ｙｅｓ）、ステップＳ１７０１へ戻る。一方、特定部６０５は、未対象のブロックがないと判断した場合（ステップＳ１７０９：Ｎｏ）、配置処理部６０６は、各ブロックについて決定した設計構成に基づき配置処理を行う（ステップＳ１８０１）。
【０１４３】
つぎに、配線処理部６０７は、配線接続処理を行う（ステップＳ１８０２）。そして、検証部６０９は、配線接続処理によって得られたレイアウト情報６２４に基づいて、検証を行う（ステップＳ１８０３）。つづいて、検証部６０９は、検証結果に問題があるか否かを判断する（ステップＳ１８０４）。検証部６０９は、検証結果に問題があると判断した場合（ステップＳ１８０４：Ｙｅｓ）、ステップＳ１７０１へ戻る。これにより、各ブロックについて再度設計構成が決定される。一方、検証部６０９は、検証結果に問題がないと判断した場合（ステップＳ１８０４：Ｎｏ）、一連の処理を終了する。
【０１４４】
以上説明したように、設計支援装置１００は、ドライバセルおよび配線の回路の各配線長でのシミュレーションで得た該回路の性能値に基づき、ブロックからの指定長さのパスの性能値を該パスのゲート段数別に求め、性能値が設計制約を満たすゲート段数を特定する。これにより、利用者に、設計制約を満たす設計構成を提示することができる。ドライバセルと配線とのセット回路についてのアナログ動作のシミュレーションによって得られた性能値に基づいて、各設計構成におけるパスの性能値を見積もる。このため、配線後の検証によるパスの性能値と、見積もり時のパスの性能値と、の乖離を抑制することができる。したがって、レイアウト設計における手戻りを減らすことができる。
【０１４５】
また、設計支援装置１００は、各長さについての算出した組み合わせの性能値に基づいて、配線の長さに応じた組み合わせの性能値が得られる関数を生成する。そして、設計支援装置１００は、生成した関数と、指定された長さと、に基づいて、パスに設けるドライバセルの数別に、パスに設けるドライバセルの１段あたりの性能値を算出することにより、ドライバセルの数別にパスの性能値を算出する。これにより、ドライバセルの数別にパスの性能値を容易に見積もることができる。
【０１４６】
また、設計支援装置１００は、配線の特性および特定のドライバセルの特性に関する各条件ごとにパスの性能値を算出する。これにより、配線の特性および特定のドライバセルの特性に関する各条件とゲート段数との各設計構成から最適な設計構成を容易に特定することができる。したがって、設計支援装置１００は、設計の容易化を図ることができる。
【０１４７】
また、設計支援装置１００は、各条件について特定したドライバセルの数におけるパスの性能値に基づいて、パスの配線の特性およびパスのドライバセルの特性に関する条件を特定する。これにより、設計支援装置１００は、各設計構成から最適な設計構成を提示することができ、設計の容易化を図ることができる。
【０１４８】
また、性能値が第１性能値と第２性能値のように複数種類ある場合に、設計支援装置１００は、第１性能値と第２性能値とが所定の制約を満たすパス上のドライバセルの数を特定する。例えば、第１性能値は遅延時間であり、第２性能値は消費電力である。これにより、設計支援装置１００は、複数の性能値のトレードオフを考慮して最適な設計構成を特定することができる。
【０１４９】
また、設計支援装置１００は、例えば、パスの第１性能値と、パスの第２性能値と、の両方が優れたパス上のドライバセルの数を特定する。これにより、パスの複数の性能に関して設計制約や設計方針があっても、設計支援装置１００は、最適な設計構成を提示することができ、設計の容易化を図ることができる。
【０１５０】
なお、本実施の形態で説明した設計支援方法は、予め用意された設計支援プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、設計支援プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１５１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１５２】
（付記１）特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得する実行部と、
設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、前記配線の各長さについて前記実行部によって取得された前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出する算出部と、
前記算出部によって算出された前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する特定部と、
を有することを特徴とする設計支援装置。
【０１５３】
（付記２）前記各長さについて取得された前記組み合わせの性能値に基づいて、前記配線の長さを与えると、与えた前記配線の長さに応じた前記組み合わせの性能値が得られる関数を生成する生成部を有し、
前記算出部は、
前記生成部によって生成された前記関数と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、前記パスに設けるドライバセルの１段あたりの性能値を算出し、
前記パスに設けるドライバセルの数別に、算出した前記１段あたりの性能値に基づいて前記パスの性能値を算出する、
ことを特徴とする付記１に記載の設計支援装置。
【０１５４】
（付記３）前記実行部は、
前記配線の特性および前記特定のドライバセルの特性に関する各条件について、前記組み合わせの動作のシミュレーションを実行することにより、前記組み合わせの性能値を取得し、
前記算出部は、
前記各条件について、前記実行部によって取得された前記組み合わせの性能値に基づいて、前記パスの性能値を算出し、
前記特定部は、
前記各条件について、前記パスに設けるドライバセルの数を特定することを特徴とする付記１または２に記載の設計支援装置。
【０１５５】
（付記４）前記特定部は、
さらに、前記各条件について特定した前記ドライバセルの数における前記パスの性能値に基づいて、前記各条件から、前記パスの配線の特性および前記パスに設けるドライバセルの特性に関する条件を特定することを特徴とする付記３に記載の設計支援装置。
【０１５６】
（付記５）前記実行部は、
前記回路モデル情報に基づいて、前記組み合わせの動作のシミュレーションを実行することにより、前記組み合わせの第１性能値と前記組み合わせの第２性能値とを取得し、
前記算出部は、
前記パスに設けるドライバセルの数別に、前記実行部によって取得された前記組み合わせの第１性能値に基づいて前記パスの第１性能値と、前記実行部によって取得された前記組み合わせの第２性能値に基づいて前記パスの第２性能値とを算出し、
前記特定部は、
前記算出部によって算出された前記パスの第１性能値と、前記算出部によって算出された前記パスの第２性能値と、が前記所定の制約を満たす前記パスに設けるドライバセルの数を特定することを特徴とする付記１〜４のいずれか一つに記載の設計支援装置。
【０１５７】
（付記６）前記特定部は、
前記算出部によって算出された前記パスの第１性能値と、前記算出部によって算出された前記パスの第２性能値と、の両方が優れた前記パスに設けるドライバセルの数を特定することを特徴とする付記５に記載の設計支援装置。
【０１５８】
（付記７）前記組み合わせの第１性能値は、前記組み合わせに含まれる前記特定のドライバセルの入力端子と、前記特定のドライバセルの出力端子に接続される配線の該出力端子と異なる末端との間の遅延時間であり、
前記組み合わせの第２性能値は、前記組み合わせの消費電力であり、
前記パスの第１性能値は、前記部分回路と前記部分回路の接続先との間の前記パスの遅延時間であり、
前記パスの第２性能値は、前記パスの消費電力であることを特徴とする付記５または付記６に記載の設計支援装置。
【０１５９】
（付記８）コンピュータに、
特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得し、
設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、
前記配線の各長さについて取得した前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出し、
算出した前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する、
処理を実行させることを特徴とする設計支援プログラム。
【０１６０】
（付記９）コンピュータが、
特定のドライバセルと前記特定のドライバセルの出力端子に接続される配線との組み合わせを示す回路モデル情報に基づいて、前記配線の各長さについての前記組み合わせの動作のシミュレーションを実行することにより、前記配線の各長さについての前記組み合わせの性能値を取得し、
設計の対象回路に含まれる部分回路と前記部分回路の接続先とを接続するパスの長さの指定を受け付け、
前記配線の各長さについて取得した前記組み合わせの性能値と、受け付けた前記長さと、に基づいて、前記パスに設けるドライバセルの数別に、受け付けた前記長さにおける前記パスの性能値を算出し、
算出した前記パスの性能値が所定の制約を満たす前記パスに設けるドライバセルの数を特定する、
処理を実行することを特徴とする設計支援方法。
【符号の説明】
【０１６１】
１００  設計支援装置
１０１，６２２  回路モデル情報
１０３，１３００  対象回路
１０４，１０５，１３０１，１３０２，１３０３  ブロック
１０６  算出結果
１０７，４０１，４０２，９１１，９１２，１００１，１２０１，１４００  グラフ
６０１  実行部
６０２  生成部
６０３  算出部
６０４  受付部
６０５  特定部
６０８  出力部
６１０  記憶部
６２１  シミュレーション条件情報
７０１  セット回路
９０１  遅延時間算出結果
９０２  消費電力算出結果
【図１】
2018067066.tif 000003
【図２】
2018067066.tif 000004
【図３】
2018067066.tif 000005
【図４】
2018067066.tif 000006
【図５】
2018067066.tif 000007
【図６】
2018067066.tif 000008
【図７】
2018067066.tif 000009
【図８】
2018067066.tif 000010
【図９】
2018067066.tif 000011
【図１０】
2018067066.tif 000012
【図１１】
2018067066.tif 000013
【図１２】
2018067066.tif 000014
【図１３】
2018067066.tif 000015
【図１４】
2018067066.tif 000016
【図１５】
2018067066.tif 000017
【図１６】
2018067066.tif 000018
【図１７】
2018067066.tif 000019
【図１８】
2018067066.tif 000020