(57)【要約】  既存の回路のタイミング関係を維持したタイミング調整を可能とすること。  設計対象回路（２）のタイミング検証で所定のタイミング制約条件を満たさないタイミング違反パス（Ｐ１）のうち、当該パスの始点の回路（２Ａ）から終点の回路（２Ｚ）に向かう方向とは異なる方向に向かう回路（２ｂ、２ｃ）を含むパスの区間を抽出する抽出部（１ａ）と、抽出部（１ａ）が抽出したパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して抽出部（１ａ）が抽出した区間のパスに接続し、複製した回路（２ｂ１、２ｃ１）を用いてタイミングを調整する調整部（１ｂ）と、を有する。
2013093998.tif 000002
【特許請求の範囲】
【請求項１】
設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出する抽出部と、
前記抽出部が抽出したパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して前記抽出部が抽出した区間のパスに接続し、複製した回路を用いてタイミングを調整する調整部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記調整部は、複製した回路を、前記異なる方向に向かう回路の配置位置よりも前記抽出部が抽出した区間の始点の回路と終点の回路とを結んだ直線に近い位置に配置することを特徴とする請求の範囲第１項記載の設計支援装置。
【請求項３】
前記抽出部が抽出した区間のうち、パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの迂回区間のマンハッタン長と、前記迂回区間の始点と終点とを直線で結んだ距離のマンハッタン長との差分に配線長あたりの遅延時間を乗じた値が、タイミング制約条件を満たさないパスのタイミング不足時間以上である区間を検出する検出部をさらに有し、
前記調整部は、前記検出部が検出した区間のうち、他のパスへの分岐点がある区間に含まれる回路の少なくとも一部を複製し、複製した回路を、前記タイミング制約条件を満たす位置に配置することを特徴とする請求の範囲第１項記載の設計支援装置。
【請求項４】
前記調整部は、複製した回路を、前記区間の始点と終点とを結んだ直線上に配置することを特徴とする請求の範囲第１項記載の設計支援装置。
【請求項５】
前記調整部は、複製対象の回路の複製に際し、個々の配置面積がより小さくなる回路を用いて回路の論理を複製することを特徴とする請求の範囲第１項記載の設計支援装置。
【請求項６】
前記調整部は、複製した回路を仮配置し、前記他のパスに及ぼす遅延時間が所定時間以内の場合に配置位置を決定することを特徴とする請求の範囲第１項記載の設計支援装置。
【請求項７】
コンピュータが、
設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出し、
抽出されたパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して抽出された区間のパスに接続し、複製した回路を用いてタイミングを調整する、
ことを特徴とする設計支援方法。
【請求項８】
コンピュータに、
設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出し、
抽出されたパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して抽出された区間のパスに接続し、複製した回路を用いてタイミングを調整する、
処理を実行させることを特徴とする設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は設計支援装置、設計支援方法および設計支援プログラムに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）のレイアウト設計時に行うタイミング調整において、２つの順序回路間を接続するデータパスの遅延を小さくすることを目的とするタイミングドリブン配置、タイミング最適化方法を実行することが知られている。タイミングドリブン配置方法は、セル配置時にタイミングの厳しいパス中のセルを近傍配置する方法である。また、レイアウト後のタイミング最適化方法は、レイアウトから得られる配線遅延、配線負荷、配置位置の情報を基にタイミング違反の発生しているパスの最適化（セルのサイジング、バッファ挿入）を行う方法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−９１５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
実際の物理設計において、配置、配線処理後のパスで迂回配線等が存在する場合には、ＳＴＡ（Static Timing Analysis）におけるタイミング検証でセットアップタイミングエラーが発生しても、セル・タイプの変更等ではエラーを修正できない場合がある。この場合、論理回路の再合成やタイミングドリブン配置の再実施を行う等、上流工程に戻る方法が考えられる。【０００５】
しかしながら、論理回路の再合成やタイミングドリブン配置の再実施を行うと、回路構成や順序回路の配置位置が変更されてしまう場合がある。その場合、その時点までのタイミング調整が反映されたレイアウト設計データが活用できず、レイアウト初期状態からのタイミング再調整を行うことになる。【０００６】
１つの側面では、本発明は、既存の回路のタイミング関係を維持したタイミング調整を可能とすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、開示の設計支援装置が提供される。この設計支援装置は、抽出部と調整部とを有している。
抽出部は、設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出する。【０００８】
調整部は、抽出部が抽出したパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して抽出部が抽出した区間のパスに接続し、複製した回路を用いてタイミングを調整する。
【発明の効果】
【０００９】
１態様では、既存の回路のタイミング関係を維持したタイミング調整を可能とする。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態の設計支援装置を示す図である。
【図２】第２の実施の形態の設計支援装置のハードウェア構成を示す図である。
【図３】第２の実施の形態の設計支援装置の機能を示すブロック図である。
【図４】調整区間情報生成部の処理を示すフローチャートである。
【図５】迂回区間抽出処理を示すフローチャートである。
【図６】調整区間決定処理を示すフローチャートである。
【図７】設計対象回路の一例を示す図である。
【図８】迂回区間抽出処理の主進行方向を決定する処理を説明する図である。
【図９】タイミング違反パスの迂回の有無の判定の具体例を説明する図である。
【図１０】タイミング違反パスの迂回の有無の判定の具体例を説明する図である。
【図１１】調整区間決定処理の具体例を説明する図である。
【図１２】回路複製時のセル配置密度の算出の具体例を説明する図である。
【図１３】回路複製時の配線混雑度の算出の具体例を説明する図である。
【図１４】追加情報を算出する具体例を説明する図である。
【図１５】追加情報を算出する具体例を説明する図である。
【図１６】調整区間情報の一例である。
【図１７】タイミング調整部の処理を示すフローチャートである。
【図１８】調整区間情報解析処理を示すフローチャートである。
【図１９】回路複製処理を示すフローチャートである。
【図２０】調整区間情報解析処理の具体例を説明する図である。
【図２１】回路複製処理の具体例を説明する図である。
【図２２】等価回路の仮配置を説明する図である。
【図２３】等価回路を設計対象回路に配置した図である。
【図２４】等価回路の配置位置の決定を説明する図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態の設計支援装置を、図面を参照して詳細に説明する。
＜第１の実施の形態＞
図１は、第１の実施の形態の設計支援装置を示す図である。
【００１２】
第１の実施の形態の設計支援装置（コンピュータ）１は、抽出部１ａと調整部１ｂとを有する。抽出部１ａおよび調整部１ｂは、設計支援装置１が有するＣＰＵ（Central Processing Unit）により実現することができる。
【００１３】
抽出部１ａは、記憶部３に記憶されているタイミング違反パスＰ１に含まれる回路の配置位置関係に基づき、タイミング違反パスＰ１内の迂回区間を抽出する。タイミング違反パスＰ１は、設計対象回路２のタイミング検証で所定のタイミング制約条件を満たさないパスである。タイミング違反パスＰ１は、回路２Ａ、回路２ｂ、回路２ｃ、回路２ｄを経由し、回路２Ｚに接続されている。なお、記憶部３は、ＲＡＭ（Random Access Memory）やハードディスクドライブ（ＨＤＤ:Hard Disk Drive）等により実現することができる。
【００１４】
抽出部１ａは、タイミング違反パスＰ１を構成する始点の回路２Ａから終点の回路２Ｚに向かう方向とは異なる方向に向かう回路を含むパスを迂回区間として抽出する。回路２Ａの座標（３，８）、回路２ｂの座標（１，６）、回路２ｃの座標（２，４）、回路２ｄの座標（５，５）および回路２Ｚの座標（８，２）は、設計対象回路２の所定位置を原点（０，０）としたときの各回路が配置されている相対座標を示している。以下、Ｘ座標において値が増加する方向を「Ｘ＋」と表記し、Ｘ座標において値が減少する方向を「Ｘ−」と表記し、Ｙ座標において値が増加する方向を「Ｙ＋」と表記し、Ｙ座標において値が減少する方向を「Ｙ−」と表記する。
【００１５】
回路２Ａの配置座標（３，８）から回路２Ｚの配置座標（８，２）に向かう方向は、Ｘ座標において値が増加する方向であり、Ｙ座標において値が減少する方向である。このため、抽出部１ａは、タイミング違反パスの主進行方向を、（Ｘ＋／Ｙ−）とする。
【００１６】
抽出部１ａは、まず、回路２Ａの配置座標（３，８）から回路２ｂの配置座標（１，６）への進行方向を確認する。回路２Ａの配置座標（３，８）から回路２ｂの配置座標（１，６）への進行方向は、（Ｘ−／Ｙ−）であり、主進行方向と異なる方向である。このため、抽出部１ａは、回路２Ａと回路２ｂとを結ぶパスの経路が迂回していると判断する。次に、抽出部１ａは、回路２Ａの配置座標（３，８）（回路２ｂの配置座標ではなく）から回路２ｃの配置座標（２，４）への進行方向を確認する。回路２ｂの配置座標は、迂回していると判断した座標であるため、次の座標への進行方向の基準から除外する。
【００１７】
回路２Ａの配置座標（３，８）から回路２ｃの配置座標（２，４）への進行方向は、（Ｘ−／Ｙ−）であり、主進行方向と異なる方向である。このため、抽出部１ａは、回路２Ａと回路２ｃとを結ぶパスの経路が迂回していると判断する。
【００１８】
次に、抽出部１ａは、回路２Ａの配置座標（３，８）（回路２ｃの配置座標ではなく）から回路２ｄの配置座標（５，５）への進行方向を確認する。回路２ｃの配置座標は、迂回していると判断した座標であるため、次の座標への進行方向の基準から除外する。
【００１９】
回路Ａの配置座標（３，８）から回路２ｄの配置座標（５，５）への進行方向は、（Ｘ＋／Ｙ−）であり、主進行方向と同じ方向である。このため、抽出部１ａは、回路２Ａと回路２ｄとを結ぶパスの経路が迂回していないと判断する。
【００２０】
抽出部１ａは、迂回していないと判断したパスの区間に、迂回していると判断したパスの区間が挟まれている場合、その区間を迂回区間であると判断する。図１に示す例では、抽出部１ａは、回路２Ａから回路２ｂおよび回路２ｃを経由して回路２ｄを通過するパスの区間を迂回区間であると判断する。以下の説明では、抽出部１ａが、迂回区間であると判断した回路２Ａから回路２ｂおよび回路２ｃを経由して回路２ｄを通過するパスの区間を「迂回区間２Ａ−２ｂ−２ｃ−２ｄ」のように表記する。
【００２１】
調整部１ｂは、抽出部１ａが抽出した迂回区間２Ａ−２ｂ−２ｃ−２ｄに含まれる回路のうち、他のパスへの分岐点がある回路２ｂ、２ｃを複製して迂回区間２Ａ−２ｂ−２ｃ−２ｄに接続する。調整部１ｂは、複製した回路２ｂ１、２ｃ１を、回路２ｂ、２ｃの配置位置よりも回路２Ａと回路２Ｚとを結んだ直線に近い位置に配置する。具体的には、調整部１ｂは、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線上に回路２ｂ１、２ｃ１を配置したときに配線グリッドに空きがあるか否かを調べる。また、調整部１ｂは、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線上に回路２ｂ１、２ｃ１を配置できる領域が存在するか否かを調べる。そして、両方の条件を満たす場合、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線上に回路２ｂ１、２ｃ１を配置する。両方の条件を満たさない場合、調整部１ｂは、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線の近傍で回路２ｂ１、２ｃ１を配置できる領域を探し、配線グリッドの空きを調べる。複製した回路２ｂ１、２ｃ１を、迂回区間の始点と終点とを結んだ直線になるべく近づけて配置することで、タイミング違反パスＰ１のタイミング違反が解消する可能性を高めることができる。図１では、回路２ｂ１を座標（４，７）に配置し、回路２ｃ１を座標（４，６）に配置する。
【００２２】
図１では、配置後の設計対象回路２ａを示している。
ここで、調整部１ｂは、回路２ｂ１、２ｃ１を複製する際に、個々の配置面積が、複製対象の回路２ｂ、２ｃより小さくなる複数の回路を用いる。具体的には、調整部１ｂは、２入力ＮＡＮＤ回路２ｂ１１およびインバータ回路２ｂ１２を組み合わせて回路２ｂ１を作成する。２入力ＮＡＮＤ回路２ｃ１１、２ｃ１３およびインバータ回路２ｃ１２、２ｃ１４を組み合わせて回路２ｃ１を作成する。この処理により、回路２ｂ１、２ｃ１の等価回路４が作成される。回路２ｃ１１の入力端子は、それぞれ回路２ｃの入力端子に接続される。回路２ｂ１１の入力端子は、それぞれ回路２ｂの入力端子に接続される。なお、図１には図示していないが、等価回路４を作成する際に２入力ＮＯＲ回路を用いてもよい。等価回路４を作成する処理により、タイミングの微調整が可能となる。
【００２３】
この設計支援装置１によれば、抽出部１ａが、タイミング違反パスＰ１から迂回区間２Ａ−２ｂ−２ｃ−２ｄを抽出した。そして、調整部１ｂが迂回区間２Ａ−２ｂ−２ｃ−２ｄに含まれる回路のうち、他のパスへの分岐点がある回路２ｂ、２ｃを複製して迂回区間２Ａ−２ｂ−２ｃ−２ｄに接続した。また、調整部１ｂが、複製した回路２ｂ１、２ｃ１を、回路２ｂ、２ｃの配置位置よりも回路２Ａと回路２Ｚとを結んだ直線に近い位置に配置した。これにより、タイミング違反パスＰ１のタイミング違反が解消する可能性を高めることができる。
【００２４】
また、回路２ｂ、２ｃの位置は変わらないため、修正箇所以外の回路部分に関しては、その時点までタイミング調整実施を行っていたレイアウト設計データがそのまま活用できる。このため、論理回路の再合成やタイミングドリブン再配置を実行するよりも短時間でタイミング違反を解消する可能性を高めることができる。従って、タイミング調整を容易に行うことができる。
【００２５】
以下、第２の実施の形態において、開示の設計支援装置をより具体的に説明する。
＜第２の実施の形態＞
図２は、第２の実施の形態の設計支援装置のハードウェア構成を示す図である。
【００２６】
設計支援装置１０は、ＣＰＵ１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０８を介してＲＡＭ１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、設計支援装置１０の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に使用する各種データが格納される。
【００２７】
バス１０８には、ハードディスクドライブ１０３、グラフィック処理装置１０４、入力インタフェース１０５、ドライブ装置１０６、および通信インタフェース１０７が接続されている。
【００２８】
ハードディスクドライブ１０３は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ハードディスクドライブ１０３は、設計支援装置１０の二次記憶装置として使用される。ハードディスクドライブ１０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリ等の半導体記憶装置を使用することもできる。
【００２９】
グラフィック処理装置１０４には、モニタ１０４ａが接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１０４ａの画面に表示させる。モニタ１０４ａとしては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や、液晶表示装置等が挙げられる。
【００３０】
入力インタフェース１０５には、キーボード１０５ａとマウス１０５ｂとが接続されている。入力インタフェース１０５は、キーボード１０５ａやマウス１０５ｂから送られてくる信号をＣＰＵ１０１に送信する。なお、マウス１０５ｂは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、例えばタッチパネル、タブレット、タッチパッド、トラックボール等が挙げられる。
【００３１】
ドライブ装置１０６は、例えば、光の反射によって読み取り可能なようにデータが記録された光ディスクや、ＵＳＢ（Universal Serial Bus）メモリ等の持ち運び可能な記録媒体に記録されたデータの読み取りを行う。例えば、ドライブ装置１０６が光学ドライブ装置である場合、レーザ光等を利用して、光ディスク２００に記録されたデータの読み取りを行う。光ディスク２００には、Ｂｌｕ−ｒａｙ（登録商標）、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。
【００３２】
通信インタフェース１０７は、ネットワーク７０に接続されている。通信インタフェース１０７は、ネットワーク７０を介して、他のコンピュータまたは通信機器との間でデータを送受信する。
【００３３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
図２に示すようなハードウェア構成の設計支援装置１０内には、以下のような機能が設けられる。
【００３４】
図３は、第２の実施の形態の設計支援装置の機能を示すブロック図である。
設計支援装置１０は、調整区間情報生成部１１と、調整区間情報記憶部１２と、タイミング調整部１４と、論理回路情報記憶部１５と、回路物理情報記憶部１６とを有している。
【００３５】
調整区間情報生成部１１は、設計対象回路のタイミング調整を実行する回路区間（タイミング調整区間）に関する調整区間情報を生成し、調整区間情報記憶部１２に記憶する。この調整区間情報生成部１１は、回路情報解析部１１１と、タイミング評価部１１２と、迂回区間抽出部１１３と、迂回区間記憶部１１４と、調整区間決定部１１５と、調整区間情報生成部１１６とを有している。迂回区間抽出部１１３は、抽出部の一例であり、調整区間決定部１１５は、検出部の一例である。
【００３６】
回路情報解析部１１１は、論理回路情報記憶部２０１、回路物理情報記憶部２０２およびレイアウト用ライブラリ記憶部２０３に記憶されている情報を解析し、回路データベースを作成する。論理回路情報記憶部２０１には、設計対象回路のネットリストが記憶されている、回路物理情報記憶部２０２には、設計対象回路の配置、配線情報が記憶されている。レイアウト用ライブラリ記憶部２０３には、レイアウト用ライブラリが記憶されている。
【００３７】
タイミング評価部１１２は、タイミング評価用ライブラリ記憶部２０４に記憶されているタイミング評価用ライブラリを用いてタイミング制約を満たさないパス（タイミング違反パス）の情報を作成する。具体的には、タイミング評価部１１２は、タイミングドリブン配置や、セルのサイジング処理、バッファ挿入処理、ファンアウト分割処理等のタイミングを調整する最適化処理を適用してもタイミング制約を満たさないパスをタイミング違反パスに決定する。ここでサイジング処理は、同じ論理で駆動能力が大きいセルへ置換する処理である。この処理により、データの波形鈍りを抑制することができる。また、バッファ挿入処理は、距離の離れたセル間にバッファを挿入する処理である。この処理により、データの波形鈍りを抑制することができる。また、ファンアウト分割処理は、ファンアウト数が大きい箇所を複数に分割する処理である。
【００３８】
迂回区間抽出部１１３は、タイミング違反パスに含まれる回路の配置位置関係に基づき、迂回区間を有するか否かを判断する。なお、迂回区間の判断方法は後述する。迂回区間抽出部１１３は、迂回区間が存在すれば、その迂回区間を抽出し、迂回区間記憶部１１４に記憶する。
【００３９】
調整区間決定部１１５は、迂回区間記憶部１１４に記憶されている迂回区間それぞれについてタイミング調整区間であるか否かを判断し、タイミング調整区間を決定する。具体的には、調整区間決定部１１５は、後述する判定式を作成する。判定式の作成に際し、タイミング評価結果記憶部２０５に記憶されている設計対象回路の順序回路間のタイミング評価結果を用いる。そして、調整区間決定部１１５は、判定式を満たす迂回区間をタイミング調整区間に決定する。
【００４０】
調整区間情報生成部１１６は、調整区間決定部１１５が決定したタイミング調整区間についてセルの配置密度や配線の混雑度を算出し、算出したセルの配置密度や配線の混雑度にタイミング調整区間を関連づけた調整区間情報を生成する。調整区間情報生成部１１６は、生成した調整区間情報を調整区間情報記憶部１２に記憶する。
【００４１】
表示部１３は、調整区間情報記憶部１２に記憶されている調整区間情報を所定のフォーマットを用いてモニタ１０４ａに表示する。
設計者は、モニタ１０４ａに表示された調整区間情報を確認することで、タイミング調整をタイミング調整部１４に実行させるタイミング調整区間を決定し、指示することができる。
【００４２】
なお、本実施の形態では、設計者の指示によりタイミング調整部１４にタイミング調整処理を実行させるようにしたが、タイミング調整部１４が調整区間情報を読み込み、処理を実行するようにしてもよい。
【００４３】
タイミング調整部１４は、調整区間情報記憶部１２に記憶されている情報を用いて迂回部分タイミングを調整し、調整した結果を論理回路情報記憶部１５と、回路物理情報記憶部１６に記憶する。タイミング調整部１４は、回路情報解析部１４１と、調整区間情報解析部１４２と、回路調整部１４３とを有している。
【００４４】
回路情報解析部１４１は、論理回路情報記憶部２０１に記憶されているネットリスト、回路物理情報記憶部２０２に記憶されている配置、配線情報、およびレイアウト用ライブラリ記憶部２０３に記憶されているレイアウト用ライブラリを解析し、回路データベースを作成する。
【００４５】
調整区間情報解析部１４２は、タイミング調整区間内の組み合わせ回路が、タイミング違反パス外の順序回路に接続されているか否かを解析する。そして、調整区間情報解析部１４２は、タイミング調整区間内の組み合わせ回路が、タイミング違反パス外の順序回路に接続されている場合、組み合わせ回路の複製指示を回路調整部１４３に通知する。他方、タイミング調整区間内の組み合わせ回路が、タイミング違反パス外の順序回路に接続されていない場合、組み合わせ回路の移動指示を回路調整部１４３に通知する。
【００４６】
組み合わせ回路の複製指示が通知された回路調整部１４３は、タイミング調整区間内の組み合わせ回路からタイミング調整区間外への接続がある場合に組み合わせ回路を複製する。そして、回路調整部１４３は、タイミング調整区間のパスをショートカットする位置で、かつ他のパスへの影響が少ない位置に、複製した回路を配置する。
【００４７】
また、組み合わせ回路の移動指示が通知された回路調整部１４３は、タイミング調整区間内の組み合わせ回路を、タイミング調整区間のパスをショートカットする位置に移動する。
【００４８】
回路調整部１４３は、回路調整部１４３が上述した処理を行った後の設計対象回路のネットリストを論理回路情報記憶部１５に記憶する。また、タイミング調整部１４は、回路調整部１４３が上述した処理を行った後の設計対象回路の配置、配線情報を回路物理情報記憶部１６に記憶する。
【００４９】
次に、設計支援装置１０の処理を、フローチャートを用いて説明する。
図４は、調整区間情報生成部の処理を示すフローチャートである。
［ステップＳ１］  回路情報解析部１１１は、回路情報を解析する。その後、ステップＳ２に遷移する。
【００５０】
［ステップＳ２］  タイミング評価部１１２は、タイミング評価結果が存在するか否かを判断する。タイミング評価結果が存在する場合（ステップＳ２のＹｅｓ）、ステップＳ３に遷移する。タイミング評価結果が存在しない場合（ステップＳ２のＮｏ）、ステップＳ４に遷移する。
【００５１】
［ステップＳ３］  迂回区間抽出部１１３は、タイミング評価結果を読み込むことで、タイミング違反パスを取得する。その後、ステップＳ５に遷移する。
［ステップＳ４］  タイミング評価部１１２は、タイミング調整後の回路に対してタイミングを評価し、タイミング違反が発生しているパス（タイミング違反パス）を抽出する。その後、ステップＳ５に遷移する。
【００５２】
［ステップＳ５］  迂回区間抽出部１１３は、ステップＳ３にて取得したまたはステップＳ４にて抽出したタイミング違反パスを１つ選択する。その後、ステップＳ６に遷移する。
【００５３】
［ステップＳ６］  迂回区間抽出部１１３は、ステップＳ５にて選択したタイミング違反パスに含まれる各回路の座標を抽出する。その後、ステップＳ７に遷移する。
［ステップＳ７］  迂回区間抽出部１１３は、ステップＳ５にて選択したタイミング違反パスについてパスの迂回が発生している区間（迂回区間）を抽出する迂回区間抽出処理を実行する。その後、ステップＳ８に遷移する。なお、迂回区間抽出処理の内容については後に詳述する。
【００５４】
［ステップＳ８］  調整区間決定部１１５は、迂回区間抽出処理によって抽出した迂回区間を１つ選択する。その後、ステップＳ９に遷移する。
［ステップＳ９］  調整区間決定部１１５は、ステップＳ８にて選択した迂回区間が、タイミング調整区間か否かを決定する調整区間決定処理を実行する。その後、ステップＳ１０に遷移する。なお、調整区間決定処理の内容については後に詳述する。
【００５５】
［ステップＳ１０］  調整区間情報生成部１１６は、ステップＳ９にて決定したタイミング調整区間に含まれる回路間のマンハッタン長の距離の和と、タイミング調整区間の両端を結ぶ直線のマンハッタン長の距離の距離差から遅延改善時間を算出する。その後、ステップＳ１１に遷移する。
【００５６】
［ステップＳ１１］  調整区間情報生成部１１６は、ステップＳ９にて決定したタイミング調整区間に含まれる組み合わせ回路を２入力ＮＡＮＤ回路、２入力ＮＯＲ回路、およびインバータ回路を用いて細分化した等価回路のセル面積の和を算出する。そして、調整区間情報生成部１１６は、タイミング調整区間の両端を結ぶ直線を対角線とする長方形内に算出したセル面積の和を配置した場合のセル配置密度を算出する。その後、ステップＳ１２に遷移する。
【００５７】
［ステップＳ１２］  調整区間情報生成部１１６は、タイミング調整区間の両端を結ぶ直線を対角線とする長方形内の配線混雑度を算出する。また、調整区間情報生成部１１６は、タイミング調整区間に含まれる組み合わせ回路を再配置した場合の配線の可否を調べる。その後、ステップＳ１３に遷移する。
【００５８】
［ステップＳ１３］  調整区間情報生成部１１６は、ステップＳ５にて選択したタイミング違反パス外の経路のマンハッタン長の距離の差を算出する。その後、ステップＳ１４に遷移する。
【００５９】
［ステップＳ１４］  調整区間情報生成部１１６は、タイミング調整区間に含まれる組み合わせ回路が多入力回路か否かを判断する。タイミング調整区間に含まれる組み合わせ回路が多入力回路である場合（ステップＳ１４のＹｅｓ）、ステップＳ１５に遷移する。タイミング調整区間に含まれる組み合わせ回路が多入力回路ではない場合（ステップＳ１４のＮｏ）、ステップＳ１６に遷移する。
【００６０】
［ステップＳ１５］  調整区間情報生成部１１６は、追加情報として、タイミング違反パス外から組み合わせ回路に接続されるパスのタイミング余裕度（スラック値）およびマンハッタン長距離ｄを算出する。また、調整区間情報生成部１１６は、組み合わせ回路を迂回区間の両端を結ぶ直線上に配置した際の、タイミング違反パス外から組み合わせ回路へのパスのマンハッタン長距離ｅを算出する。そして、調整区間情報生成部１１６は、マンハッタン長距離ｄ−ｅの距離差を算出する。また、調整区間情報生成部１１６は、組み合わせ回路を迂回区間の両端を結ぶ直線上に配置したときの、タイミング違反パス外から組み合わせ回路への配線混雑度と配線の可否を決定する。その後、ステップＳ１６に遷移する。
【００６１】
［ステップＳ１６］  調整区間情報生成部１１６は、全ての迂回区間についてステップＳ９〜Ｓ１５の処理を実行したか否かを判断する。全ての迂回区間についてステップＳ９〜Ｓ１５の処理を実行した場合（ステップＳ１６のＹｅｓ）、ステップＳ１７に遷移する。全ての迂回区間についてステップＳ９〜Ｓ１５の処理を実行していない場合（ステップＳ１６のＮｏ）、ステップＳ８に遷移し、ステップＳ８以降の処理を引き続き実行する。
【００６２】
［ステップＳ１７］  調整区間決定部１１５は、各迂回区間の情報を調整区間情報記憶部１２に記憶する。その後、ステップＳ１８に遷移する。
［ステップＳ１８］  調整区間決定部１１５は、全てのタイミング違反パスについてステップＳ５〜Ｓ１７の処理を実行したか否かを判断する。全てのタイミング違反パスについてステップＳ５〜Ｓ１７の処理を実行した場合（ステップＳ１８のＹｅｓ）、図４の処理を終了する。全てのタイミング違反パスについてステップＳ５〜Ｓ１７の処理を実行していない場合（ステップＳ１８のＮｏ）、ステップＳ５に遷移し、ステップＳ５以降の処理を引き続き実行する。
【００６３】
次に、ステップＳ７の迂回区間抽出処理を説明する。
図５は、迂回区間抽出処理を示すフローチャートである。
［ステップＳ７ａ］  迂回区間抽出部１１３は、タイミング違反パスの始点の座標と終点の座標を比較することによりパスの主進行方向を決定する。その後、ステップＳ７ｂに遷移する。
【００６４】
［ステップＳ７ｂ］  迂回区間抽出部１１３は、ステップＳ７ａにて決定したパスの主進行方向から見たタイミング違反パスの始点からパス内の回路間毎にチェック対象区間を設定する。その後、ステップＳ７ｃに遷移する。
【００６５】
［ステップＳ７ｃ］  迂回区間抽出部１１３は、ステップＳ７ｂにて設定したチェック対象区間を１つ選択する。初回は、最も始点に近い区間を選択する。その後、ステップＳ７ｄに遷移する。
【００６６】
［ステップＳ７ｄ］  迂回区間抽出部１１３は、回路間のパスにおける信号の進行方向を確認する。その後、ステップＳ７ｅに遷移する。
［ステップＳ７ｅ］  迂回区間抽出部１１３は、回路間のパスにおける信号の進行方向がパスの主進行方向と異なるか否かを判断する。回路間のパス方向がパスの主進行方向と異なる場合（ステップＳ７ｅのＹｅｓ）、ステップＳ７ｆに遷移する。回路間のパス方向がパスの主進行方向と同じ場合（ステップＳ７ｅのＮｏ）、ステップＳ７ｇに遷移する。
【００６７】
［ステップＳ７ｆ］  迂回区間抽出部１１３は、回路間のパスを迂回区間の一部としてスタックする。その後、ステップＳ７ｉに遷移する。
［ステップＳ７ｇ］  迂回区間抽出部１１３は、迂回区間の部分スタックが存在するか否かを判断する。迂回区間の部分スタックが存在する場合（ステップＳ７ｇのＹｅｓ）、ステップＳ７ｈに遷移する。迂回区間の部分スタックが存在しない場合（ステップＳ７ｇのＮｏ）、ステップＳ７ｉに遷移する。
【００６８】
［ステップＳ７ｈ］  迂回区間抽出部１１３は、スタックされている区間を迂回区間記憶部１１４に登録する。その後、ステップＳ７ｉに遷移する。
［ステップＳ７ｉ］  迂回区間抽出部１１３は、チェック対象区間がタイミング違反パスの終点に到達したか否かを判断する。チェック対象区間がタイミング違反パスの終点に到達した場合（ステップＳ７ｉのＹｅｓ）、迂回区間抽出処理を終了する。チェック対象区間がタイミング違反パスの終点に到達していない場合（ステップＳ７ｉのＮｏ）、ステップＳ７ｃに遷移し、新たなチェック対象区間を１つ選択し、ステップＳ７ｄ以降の処理を引き続き実行する。
【００６９】
次に、図４のステップＳ９の調整区間決定処理を説明する。
図６は、調整区間決定処理を示すフローチャートである。
［ステップＳ９ａ］  調整区間決定部１１５は、回路内の全ての配線を対象に配線長あたりの遅延平均値γを算出する。その後、ステップＳ９ｂに遷移する。
【００７０】
［ステップＳ９ｂ］  調整区間決定部１１５は、タイミング違反パスの迂回区間を１つ選択する。その後、ステップＳ９ｃに遷移する。
［ステップＳ９ｃ］  調整区間決定部１１５は、ステップＳ９ｂにて選択した迂回区間のマンハッタン長αを算出する。その後、ステップＳ９ｄに遷移する。
【００７１】
［ステップＳ９ｄ］  調整区間決定部１１５は、ステップＳ９ｂにて選択した迂回区間の終点と始点とを結んだ直線のマンハッタン長βを算出する。その後、ステップＳ９ｅに遷移する。
【００７２】
［ステップＳ９ｅ］  調整区間決定部１１５は、ステップＳ９ａにて算出した遅延平均値γ、並びにステップＳ９ｃおよびステップＳ９ｄにて算出したマンハッタン長αおよびマンハッタン長βを判定式に代入する。そして、判定式（（α−β）×γ≧δ）を満たすか否かを判断する。ここで、δは、タイミング違反パスのタイミング不足時間である。判定式を満たす場合（ステップＳ９ｅのＹｅｓ）、ステップＳ９ｆに遷移する。判定式を満たさない場合（ステップＳ９ｅのＮｏ）、ステップＳ９ｇに遷移する。
【００７３】
［ステップＳ９ｆ］  調整区間決定部１１５は、ステップＳ９ｂにて選択した今回の迂回区間をタイミング調整区間に決定する。調整区間決定部１１５は、決定したタイミング調整区間を調整区間情報記憶部１２に記憶する。その後、ステップＳ９ｇに遷移する。
【００７４】
［ステップＳ９ｇ］  調整区間決定部１１５は、全ての迂回区間についてステップＳ９ｂ〜Ｓ９ｆの処理を実行したか否かを判断する。全ての迂回区間についてステップＳ９ｂ〜Ｓ９ｆの処理を実行した場合（ステップＳ９ｇのＹｅｓ）、調整区間決定処理を終了する。全ての迂回区間についてステップＳ９ｂ〜Ｓ９ｆの処理を実行していない場合（ステップＳ９ｇのＮｏ）、ステップＳ９ｂに遷移し、迂回区間を１つ選択し、ステップＳ９ｃ以降の処理を引き続き実行する。
【００７５】
次に、具体例を用いて調整区間情報生成部１１の処理を説明する。
図７は、設計対象回路の一例を示す図である。
設計対象回路３０の各セルに付したアルファベットは、セルの識別子である。
【００７６】
以下、図７に示す設計対象回路３０を用いて、図４のステップＳ７に示す迂回区間抽出処理の具体例を説明する。
図８は、迂回区間抽出処理の主進行方向を決定する処理を説明する図である。
【００７７】
図８に示すセルＡの座標（３，８）は、設計対象回路３０のある位置を原点（０，０）としたときの設計対象回路３０における始点のセルＡが配置されている相対座標を示している。また、セルＺの座標（８，２）は、設計対象回路３０における終点のセルＺが配置されている相対座標を示している。以下、Ｘ座標において値が増加する方向を「Ｘ＋」と表記し、Ｘ座標において値が減少する方向を「Ｘ−」と表記し、Ｙ座標において値が増加する方向を「Ｙ＋」と表記し、Ｙ座標において値が減少する方向を「Ｙ−」と表記する。
【００７８】
図８におけるセルＡの配置座標（３，８）からセルＺの配置座標（８，２）に向かう方向は、Ｘ座標において値が増加する方向であり、Ｙ座標において値が減少する方向である。このため、迂回区間抽出部１１３は、タイミング違反パスの主進行方向を、（Ｘ＋／Ｙ−）とする。
【００７９】
図９および図１０は、タイミング違反パスの迂回の有無の判定の具体例を説明する図である。
図９に示す具体例では、迂回区間抽出部１１３は、まず、セルＡの配置座標（３，８）から、設計対象回路３０においてセルＡに隣接するセルｂの配置座標（４，６）への進行方向を確認する。セルＡの配置座標（３，８）からセルｂの配置座標（４，６）への進行方向は、（Ｘ＋／Ｙ−）であり、主進行方向と同じ方向である。このため、迂回区間抽出部１１３は、セルＡとセルｂとを結ぶパスの経路が迂回していないと判断する。次に、迂回区間抽出部１１３は、セルｂの配置座標（４，６）から、セルｂに隣接するセルｃの配置座標（５，４）への進行方向を確認する。セルｂの配置座標（４，６）から、セルｃの配置座標（５，４）への進行方向は、（Ｘ＋／Ｙ−）であり、主進行方向と同じ方向である。このため、迂回区間抽出部１１３は、セルｂとセルｃとを結ぶパスの経路が迂回していないと判断する。
【００８０】
図１０に示す具体例では、迂回区間抽出部１１３は、まず、セルＡの配置座標（３，８）からセルｂの配置座標（１，６）への進行方向を確認する。セルＡの配置座標（３，８）からセルｂの配置座標（１，６）への進行方向は、（Ｘ−／Ｙ−）であり、主進行方向と異なる方向である。このため、迂回区間抽出部１１３は、セルＡとセルｂとを結ぶパスの経路が迂回していると判断する。次に、迂回区間抽出部１１３は、セルＡの配置座標（３，８）（セルｂの配置座標ではなく）からセルｃの配置座標（２，４）への進行方向を確認する。セルｂの配置座標は、迂回していると判断した座標であるため、次の座標への進行方向の基準から除外する。
【００８１】
セルＡの配置座標（３，８）からセルｃの配置座標（２，４）への進行方向は、（Ｘ−／Ｙ−）であり、主進行方向と異なる方向である。このため、迂回区間抽出部１１３は、セルＡとセルｃとを結ぶパスの経路が迂回していると判断する。
【００８２】
次に、迂回区間抽出部１１３は、セルＡの配置座標（３，８）（セルｃの配置座標ではなく）からセルｄの配置座標（５，５）への進行方向を確認する。セルｃの配置座標は、迂回していると判断した座標であるため、次の座標への進行方向の基準から除外する。
【００８３】
セルＡの配置座標（３，８）からセルｄの配置座標（５，５）への進行方向は、（Ｘ＋／Ｙ−）であり、主進行方向と同じ方向である。このため、迂回区間抽出部１１３は、セルＡとセルｄとを結ぶパスの経路が迂回していないと判断する。
【００８４】
迂回区間抽出部１１３は、迂回が存在しないと判断したパスの区間に、迂回していると判断したパスの区間が挟まれている場合、その区間を迂回区間であると判断する。図１０に示す例では、迂回区間抽出部１１３は、セルＡからセルｂおよびセルｃを経由してセルｄを通過するパスの区間を迂回区間であると判断する。以下の説明では、迂回区間抽出部１１３が、迂回区間であると判断したセルＡからセルｂおよびセルｃを経由してセルｄを通過するパスの区間を「迂回区間Ａ−ｂ−ｃ−ｄ」のように表記する。
【００８５】
次に、図１０に示す例を用いて図４のステップＳ９に示す調整区間決定処理の具体例を説明する。本具体例では、回路内の全配線を対象にした配線長あたりの遅延平均値γを８０とする。また、迂回区間Ａ−ｂ−ｃ−ｄのタイミング不足時間の絶対値δを２００とする。
【００８６】
迂回区間Ａ−ｂ−ｃ−ｄのマンハッタン長α＝（｜１−３｜＋｜６−８｜）＋（｜２−１｜＋｜４−６｜）＋（｜５−２｜＋｜５−４｜）＝４＋３＋４＝１１となる。
また、セルＡの配置座標からセルｄの配置座標を直線で結ぶパスのマンハッタン長β＝（｜５−３｜＋｜５−８｜）＝５となる。
【００８７】
調整区間決定部１１５は、（α−β）×γ≧δ（判定式）を満たすか否かを判断する。本具体例では、（１１−５）×８０≧２００を満たす。このため、調整区間決定部１１５は、この迂回区間をタイミング調整区間に決定する。
【００８８】
次に、図１０とは異なる迂回区間を用いて調整区間決定処理の具体例を説明する。
図１１は、調整区間決定処理の具体例を説明する図である。
迂回区間Ａ−ｂ−ｃ−ｄのマンハッタン長α＝（｜２−３｜＋｜７−８｜）＋（｜４−２｜＋｜５−７｜）＋（｜５−４｜＋｜５−５｜）＝２＋４＋１＝７となる。
【００８９】
また、セルＡの配置座標からセルｄの配置座標を直線で結ぶパスのマンハッタン長β＝（｜５−３｜＋｜５−８｜）＝５となる。
調整区間決定部１１５は、（α−β）×γ≧δを満たすか否かを判断する。図１１に示す具体例では、（７−５）×８０≧２００を満たさない。このため、調整区間決定部１１５は、この迂回区間をタイミング調整区間には決定しない。
【００９０】
なお、本実施の形態では、判定式を満たさない図１１に示す具体例の迂回区間をタイミング調整区間に決定しなかった。しかし、他のタイミング修正方法によりタイミングの改善が見込める場合等、設計者が決定した他の条件を満たす場合には判定式を満たさない迂回区間をタイミング調整区間に決定するようにしてもよい。また、迂回区間の全てをタイミング調整区間に決定するようにしてもよい。
【００９１】
次に、図４のステップＳ１１に示す回路複製時のセル配置密度の算出の具体例を説明する。
図１２は、回路複製時のセル配置密度の算出の具体例を説明する図である。
【００９２】
調整区間決定部１１５が迂回区間Ａ−ｂ−ｃ−ｄをタイミング調整区間に決定した場合、セルｂの面積は１、セルｃの面積を２とすると、その面積の和は３となる。セルＡの配置座標（３，８）とセルｄの配置座標（５，５）を結ぶ直線を対角線とする長方形のセル面積は３５とし、そのうち２３箇所には既に他のセルが配置されているものとする。セルｂとセルｃを長方形内に配置したと仮定すると、長方形内にセルが配置された箇所は（２３＋３）＝２６箇所となり、セルの配置密度は２６／３５×１００＝７４．３％となる。
【００９３】
次に、図４のステップＳ１２に示す回路複製時の配線混雑度の算出の具体例を説明する。
図１３は、回路複製時の配線混雑度の算出の具体例を説明する図である。
【００９４】
タイミング調整区間がＡ−ｂ−ｃ−ｄである場合、セルＡの配置座標（３，８）とセルｄの配置座標（５，５）を結ぶ直線上にセルｂとセルｃを移動させる場合を考える。調整区間情報生成部１１６は、セルＡの配置座標（３，８）とセルｂの配置座標（１，６）との距離と、セルｂの配置座標（１，６）とセルｃの配置座標（２，４）との距離と、セルｃの配置座標（２，４）とセルｄの配置座標（５，５）との距離の比を取り、この比率に一致するように、セルＡの配置座標（３，８）とセルｄの配置座標（５，５）を結ぶ直線上にセルｂとセルｃを移動させる。移動先にセルｂとセルｃが配置できる空き領域が存在しない場合は、調整区間情報生成部１１６は、最寄りの空き領域にセルｂとセルｃを移動させる。図１３では、セルｂを座標（４，７）に移動し、セルｃを座標（４，６）に移動したものとする。以下、説明の便宜上、移動後のセルｂをセルｂ１、移動後のセルｃをセルｃ１と表記する。
【００９５】
調整区間情報生成部１１６は、セルＡ−ｂ１間、セルｂ１−ｃ１間、およびセルｃ１−ｄ間の全ての配線チャネルに空きが存在するか否かを判断する。セルＡ−ｂ１間、セルｂ１−ｃ１間、およびセルｃ１−ｄ間の全ての配線チャネルに空きが存在する場合、調整区間情報生成部１１６は、移動後のセルに配線可能であると判断する。調整区間情報生成部１１６は、配線混雑度も確認する。
【００９６】
次に、図４のステップＳ１５に示す追加情報を算出する具体例を説明する。
図１４および図１５は、追加情報を算出する具体例を説明する図である。
図１４（ａ）は、移動前の各セルの配置を示している。タイミング調整区間がＡ−ｂ−ｃ−ｄである場合、セルＡの配置座標（３，８）とセルｄの配置座標（５，５）を結ぶ直線上にセルｂおよびセルｃを移動させた場合を考える。図１４（ｂ）は、移動後の各セルの配置を示している。セルｂは、２入力のセルでセルＡとセルｅからのパスが存在し、セルｃは、３入力のセルでセルｂとセルｆとセルｇからのパスが存在するものとする。
【００９７】
調整区間情報生成部１１６は、セルｅからセルｂ、セルｆからセルｃ、およびセルｇからセルｃへのスラック値は、タイミング評価結果から抽出し、その中の最小値をタイミング違反パス外スラックに決定する。
【００９８】
また、調整区間情報生成部１１６は、タイミング違反パス外距離差を算出する。
セルｅ−ｂ間とセルｅ−ｂ１間の距離差ｄ１は、（｜１−１｜＋｜６−８｜）−（｜４−１｜＋｜７−８｜）＝−２となる。
【００９９】
セルｆ−ｃ間とセルｆ−ｃ１間の距離差ｄ２は、（｜２−１｜＋｜４−２｜）−（｜４−１｜＋｜６−２｜）＝−４となる。
セルｇ−ｃ間とセルｇ−ｃ１間の距離差ｄ３は、（｜２−６｜＋｜４−３｜）−（｜４−６｜＋｜６−３｜）＝０となる。調整区間情報生成部１１６は、距離差が最も小さい−４をタイミング違反パス外距離差に決定する。
【０１００】
調整区間情報生成部１１６は、セルｅ−ｂ１間、セルｆ−ｃ１間、およびセルｇ−ｃ１間の配線チャネルに空きがあるか否かを調査する。調整区間情報生成部１１６は、全てのパスの配線チャネルに空きがあれば、配線可能であると判断する。調整区間情報生成部１１６は、配線混雑度も合わせて確認する。
【０１０１】
次に、調整区間情報記憶部１２に記憶されている調整区間情報を説明する。
図１６は、調整区間情報の一例である。
調整区間情報はテーブル化されて記憶されている。
【０１０２】
テーブル１２ａには、タイミング調整区間、遅延改善時間、セル配置密度、タイミング違反パス外スラック、タイミング違反パス外距離差、および配線混雑度の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。これらの情報は、遅延改善時間が大きい順、セル配置密度が小さい順、タイミング違反パス外距離差が大きい順にソートされるのが好ましい。
【０１０３】
また、上位何区間までをモニタ１０４ａに表示するか等が指定されている出力制限情報２０６に基づき、表示部１３が調整区間情報の全てのレコードを表示せず、上位何区間だけをモニタ１０４ａに表示するようにしてもよい。
【０１０４】
また、表示部１３は、セル配置密度が１００％を超えるレコードや、図１６にて説明した移動後のセルに配線不可能であると判断したレコードについては、表示しないようにしてもよい。
【０１０５】
次に、タイミング調整部１４の処理を説明する。
図１７は、タイミング調整部の処理を示すフローチャートである。
［ステップＳ２１］  回路情報解析部１４１は、論理回路情報記憶部２０１に記憶されているネットリスト、回路物理情報記憶部２０２に記憶されている配置、配線情報、およびレイアウト用ライブラリ記憶部２０３に記憶されているレイアウト用ライブラリを解析し、回路データベースを作成する。その後、ステップＳ２２に遷移する。
【０１０６】
［ステップＳ２２］  調整区間情報解析部１４２は、タイミング調整区間内の組み合わせ回路を移動するかまたは複製するかを決定する調整区間情報解析処理を実行する。その後、ステップＳ２３に遷移する。なお、調整区間情報解析処理の詳細は後述する。
【０１０７】
［ステップＳ２３］  回路調整部１４３は、調整区間情報解析部１４２が調整区間解析処理を実行した結果、組み合わせ回路の回路複製指示を受け付けたか否かを判断する。回路複製指示を受け付けた場合（ステップＳ２３のＹｅｓ）、ステップＳ２４に遷移する。回路移動指示を受け付けなかった場合（ステップＳ２３のＮｏ）、ステップＳ２５に遷移する。
【０１０８】
［ステップＳ２４］  回路調整部１４３は、回路複製処理を実行する。その後、ステップＳ２６に遷移する。なお、回路複製処理の詳細は後述する。
［ステップＳ２５］  回路調整部１４３は、タイミング違反を解消する位置に組み合わせ回路を移動する回路移動処理を実行する。その後、ステップＳ２６に遷移する。
【０１０９】
［ステップＳ２６］  回路調整部１４３は、ステップＳ２４にて複製した複製回路または、ステップＳ２５にて移動した回路に最適化処理を施す。その後、ステップＳ２７に遷移する。
【０１１０】
［ステップＳ２７］  回路調整部１４３は、最適化処理を施した設計対象回路の論理回路情報を論理回路情報記憶部１５に記憶する。また、最適化処理を施した設計対象回路の回路物理情報を回路物理情報記憶部１６に記憶する。その後、図１７の処理を終了する。
【０１１１】
次に、ステップＳ２２の調整区間情報解析処理を説明する。
図１８は、調整区間情報解析処理を示すフローチャートである。
［ステップＳ２２ａ］  調整区間情報解析部１４２は、タイミング調整区間内の回路を１つ選択する。その後、ステップＳ２２ｂに遷移する。
【０１１２】
［ステップＳ２２ｂ］  調整区間情報解析部１４２は、ステップＳ２２ａにて選択した回路の入力端子から前段の順序回路までトレースする。その後、ステップＳ２２ｃに遷移する。
【０１１３】
［ステップＳ２２ｃ］  調整区間情報解析部１４２は、到達した順序回路がタイミング違反パスの始点以外のパスを含むか否かを判断する。到達した順序回路がタイミング違反パスの始点以外のパスを含む場合（ステップＳ２２ｃのＹｅｓ）、ステップＳ２２ｈに遷移する。到達した順序回路がタイミング違反パスの始点以外のパスを含まない場合（ステップＳ２２ｃのＮｏ）、ステップＳ２２ｄに遷移する。
【０１１４】
［ステップＳ２２ｄ］  調整区間情報解析部１４２は、ステップＳ２２ａにて選択した回路の出力端子から後段の順序回路までをトレースする。その後、ステップＳ２２ｅに遷移する。
【０１１５】
［ステップＳ２２ｅ］  調整区間情報解析部１４２は、到達した順序回路がタイミング違反パスの終点以外のパスを含むか否かを判断する。到達した順序回路がタイミング違反パスの終点以外のパスを含む場合（ステップＳ２２ｅのＹｅｓ）、ステップＳ２２ｈに遷移する。到達した順序回路がタイミング違反パスの終点以外のパスを含まない場合（ステップＳ２２ｅのＮｏ）、ステップＳ２２ｆに遷移する。
【０１１６】
［ステップＳ２２ｆ］  調整区間情報解析部１４２は、タイミング調整区間内の全ての回路についてステップＳ２２ｂ〜Ｓ２２ｅの処理を実行したか否かを判断する。タイミング調整区間内の全ての回路についてステップＳ２２ｂ〜Ｓ２２ｅの処理を実行した場合（ステップＳ２２ｆのＹｅｓ）、ステップＳ２２ｇに遷移する。タイミング調整区間内の全ての回路についてステップＳ２２ｂ〜Ｓ２２ｅの処理を実行していない場合（ステップＳ２２ｆのＮｏ）、ステップＳ２２ａに遷移し、未処理の回路を１つ選択し、ステップＳ２２ｂ以降の処理を引き続き実行する。
【０１１７】
［ステップＳ２２ｇ］  調整区間情報解析部１４２は、タイミング調整区間内の組み合わせ回路を移動させる回路移動指示を回路調整部１４３に通知する。その後、調整区間情報解析処理を終了する。
【０１１８】
［ステップＳ２２ｈ］  調整区間情報解析部１４２は、タイミング調整区間内の組み合わせ回路を複製させる回路複製指示を回路調整部１４３に通知する。その後、調整区間情報解析処理を終了する。
【０１１９】
以上で調整区間情報解析処理の説明を終了する。
次に、ステップＳ２４の回路複製処理を説明する。
図１９は、回路複製処理を示すフローチャートである。
【０１２０】
［ステップＳ３１］  回路調整部１４３は、タイミング調整区間の先頭部および末尾部以外の回路を複製した複製回路を作成する。その後、ステップＳ３２に遷移する。
［ステップＳ３２］  回路調整部１４３は、ステップＳ３１にて作成した複製回路について回路間の接続関係をコピー元の回路と同じように設定する。その後、ステップＳ３３に遷移する。
【０１２１】
［ステップＳ３３］  回路調整部１４３は、複製回路に多入力回路が含まれるか否かを判断する。複製回路に多入力回路が含まれる場合（ステップＳ３３のＹｅｓ）、ステップＳ３４に遷移する。複製回路に多入力回路が含まれない場合（ステップＳ３３のＮｏ）、ステップＳ３５に遷移する。
【０１２２】
［ステップＳ３４］  回路調整部１４３は、タイミング違反パス以外からの接続関係をコピー元の回路と同じように設定する。その後、ステップＳ３５に遷移する。
［ステップＳ３５］  回路調整部１４３は、タイミング調整区間の最後尾の回路の入力端子の既存の接続を切断し、複製回路の出力端子を接続する。その後、ステップＳ３６に遷移する。
【０１２３】
［ステップＳ３６］  回路調整部１４３は、２入力ＮＡＮＤ回路、２入力ＮＯＲ回路およびインバータ回路を用いて複製回路を細分化する。その後、ステップＳ３７に遷移する。
【０１２４】
［ステップＳ３７］  回路調整部１４３は、複製回路をタイミング調整区間の始点と終点を結ぶ直線上に仮配置する。その後、ステップＳ３８に遷移する。
［ステップＳ３８］  回路調整部１４３は、複製回路に多入力回路が含まれるか否かを判断する。複製回路に多入力回路が含まれる場合（ステップＳ３８のＹｅｓ）、ステップＳ３９に遷移する。複製回路に多入力回路が含まれない場合（ステップＳ３８のＮｏ）、回路複製処理を終了する。
【０１２５】
［ステップＳ３９］  回路調整部１４３は、複製回路に含まれる多入力回路を１つ選択する。その後、ステップＳ４０に遷移する。
［ステップＳ４０］  回路調整部１４３は、タイミング違反パス以外からのパスのタイミング余裕度を確認する。その後、ステップＳ４１に遷移する。
【０１２６】
［ステップＳ４１］  回路調整部１４３は、ステップＳ４０にて確認したタイミング余裕度が不足するか否かを判断する。タイミング余裕度が不足する場合（ステップＳ４１のＹｅｓ）、ステップＳ４２に遷移する。タイミング余裕度が不足しない場合（ステップＳ４１のＮｏ）、ステップＳ４３に遷移する。
【０１２７】
［ステップＳ４２］  回路調整部１４３は、多入力回路の位置を調整する。その後、ステップＳ４０に遷移し、ステップＳ４０以降の処理を繰り返し実行する。
［ステップＳ４３］  回路調整部１４３は、複製回路内の多入力回路を全てチェックしたか否かを判断する。複製回路内の多入力回路を全てチェックした場合（ステップＳ４３のＹｅｓ）、回路複製処理を終了する。複製回路内の多入力回路を全てチェックしていない場合（ステップＳ４３のＮｏ）、ステップＳ３９に遷移し、ステップＳ３９以降の処理を繰り返し実行する。以上で回路複製処理の説明を終了する。
【０１２８】
次に、図１８の調整区間情報解析処理の具体例を説明する。
図２０は、調整区間情報解析処理の具体例を説明する図である。
調整区間情報解析部１４２は、タイミング調整区間５０内の組み合わせ回路に該当するセルｂおよびセルｃが、タイミング違反パス外部の順序回路に接続しているか否かを調べる。図２０に示す具体例には該当しないが、タイミング調整区間５０内の組み合わせ回路が、タイミング違反パス外部の順序回路に接続していなければ、回路情報解析部１４１は、図１３にて求めたセルｂ１およびセルｃ１の配置座標に組み合わせ回路に該当するセルｂおよびセルｃを移動させる回路移動指示を回路調整部１４３に通知する。
【０１２９】
図２０に示すように、タイミング調整区間５０内の組み合わせ回路に該当するセルｂの出力端子は、タイミング違反パス外部の順序回路に該当するセルＷに接続されている。また、セルｃが、タイミング違反パス外部の順序回路に該当するセルｈに接続されている。このため、回路情報解析部１４１は、回路調整部１４３に回路複製指示を回路調整部１４３に通知する。回路調整部１４３は、回路複製指示を受けて回路複製処理を実行する。
【０１３０】
図２１は、回路複製処理の具体例を説明する図である。
回路調整部１４３は、タイミング調整区間５０内の組み合わせ回路に該当するセルｂ、セルｃを複製した複製回路５０ａを作成する。複製回路５０ａは、ＡＮＤ回路のセルｂ２、ｃ２で構成されている。そして、回路調整部１４３は、複製回路５０ａを構成するセルｂ２、ｃ２を細分化する。具体的には、回路調整部１４３は、セルｂ２を２入力ＮＡＮＤ回路のセルｂ２１およびインバータ回路のセルｂ２２を組み合わせて構成する。セルｃ２を２入力ＮＡＮＤ回路のセルｃ２１、ｃ２３およびインバータ回路のセルｃ２２、ｃ２４を組み合わせて構成する。この処理により、セルｂ２、ｃ２の等価回路５０ｂが作成される。セルｃ２１の入力端子は、それぞれセルｆ、セルｇの出力端子に接続されている。セルｂ２１の入力端子は、それぞれセルｅの出力端子と、セルＡの出力端子に接続されている。なお、図２１には図示していないが、等価回路５０ｂを作成する際に２入力ＮＯＲ回路を用いてもよい。等価回路５０ｂを作成する処理により、タイミングの微調整が可能となる。
【０１３１】
次に、回路調整部１４３は、タイミング調整区間５０の両端を結ぶ直線上へ等価回路５０ｂを仮配置する。
図２２は、等価回路の仮配置を説明する図である。
【０１３２】
回路調整部１４３は、セルＡの配置座標とセルｄの配置座標とを結ぶ直線上に、等価回路５０ｂを仮配置する。例えば、セルＡ−ｂ間と、セルｂ−ｃ間と、セルｃ−ｄ間の距離の比が３：２：４である場合、セルＡの配置座標とセルｄの配置座標とを結ぶ直線を９（＝３＋２＋４）等分する。そして、回路調整部１４３は、セルＡの配置座標から座標ｄの配置座標に３つ分移動した位置（移動位置）に、セルｂ２１、ｂ２２を仮配置する。図２２には、セルｂ２１、ｂ２２を仮配置する位置５０ｃを示している。
【０１３３】
回路調整部１４３は、セルＡの配置座標から座標ｄの配置座標に５つ分移動した位置（移動位置）に、セルｃ２１、ｃ２２、ｃ２３、ｃ２４を仮配置する。図２２には、セルｃ２１、ｃ２２、ｃ２３、ｃ２４を仮配置する位置５０ｄを示している。
【０１３４】
回路を配置できる空き領域が移動位置に存在しない場合、回路調整部１４３は、最寄りの空き領域に回路を配置する。
図２３は、等価回路を設計対象回路に配置した図である。
【０１３５】
接続部６１、６２、６３は、既存のセルｅ、ｇ、ｆとの接続部であり、接続部６１、６２、６３にさらに分岐を追加することでパスの長さが長くなると、セルｆ、ｇからセルｃへの信号およびセルｅからセルｂへの信号が遅延する。信号が遅延すると、他のパスのタイミングにも影響を与える。このため、タイミング制約を満たさない場合には、回路の位置を移動させる。以下、図２４に示す例を用いて等価回路の配置位置の決定を説明する。
【０１３６】
図２４は、等価回路の配置位置の決定を説明する図である。
回路調整部１４３は、セルｂ２１、ｃ２１について、タイミング調整区間５０外からセルｂ２１、ｃ２１への接続部６１、６２、６３のタイミング確認を行い、配置位置を決定する。
【０１３７】
仮配置されたセルｂ２１の座標を（３．５，７）、セルｂ２２の座標を（４，７）、セルｃ２１の座標を（５，６．５）、セルｃ２２の座標を（４．５，６）、セルｃ２３の座標を（３．５，６）、セルｃ２４の座標を（４．５，５．５）とする。
【０１３８】
回路調整部１４３は、セルｅ−ｂ間、セルｅ−ｂ２１間、セルｆ−ｃ間、セルｆ−ｃ２１間、セルｇ−ｃ間、およびセルｇ−ｃ２１間のタイミング余裕度（スラック値）の確認のため、その部分を通過するパスのタイミング評価を行う。仮に、セルｆ−ｃ２１間のパスのタイミング余裕度が不足する場合、（１）座標（５，６．５）に配置されているセルｃ２１と座標（３．５，６）に配置されているセルｃ２３を置き換える、（２）セルｃ２３の配置座標の左下の空き領域の座標（３，５．５）にセルｃ２１を移動する等、セルｃ２１をセルｆの配置座標（１，２）に近づく方向に移動させ、再度タイミング評価を実行する。
【０１３９】
回路調整部１４３は、最適な解が求まった位置で、セルｂ２１、ｂ２２、セルｃ２１〜ｃ２４の配置位置を固定する。
そして、回路調整部１４３は、等価回路５０ｂに対し、セルサイジング処理や、バッファ挿入等を行う。
【０１４０】
以上述べたように、設計支援装置１０によれば、調整区間決定部１１５がタイミング調整区間５０を決定した。そして、回路調整部１４３が、他のパスへの分岐点があるタイミング調整区間５０に含まれる回路の少なくとも一部を複製した等価回路５０ｂをタイミング調整区間５０に接続した。そして、等価回路５０ｂを、タイミング制約条件を満たす可能性が高くなる位置に配置した。これにより、タイミング違反の解消が困難なパスに対するタイミングの最適化が実現できる。
【０１４１】
また、レイアウト修正による影響を修正前に抽出することで、手作業で修正を実施した場合の影響範囲の判定ミスを抑制することができる。
また、部分的なレイアウトの修正を行うことにより、修正対象箇所以外の部分に関してはその時点までタイミング調整を行っていたレイアウト設計データをそのまま活用することができる。これにより、タイミング違反を早期に解消する可能性を高めることができる。
【０１４２】
なお、設計支援装置１０が行った処理が、複数の装置によって分散処理されるようにしてもよい。例えば、１つの装置が、調整区間情報を作成し、他の装置が、調整区間情報を用いてタイミングの調整を行うようにしてもよい。
【０１４３】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、設計支援装置１、１０が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【０１４４】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４６】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【０１４７】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１４８】
１、１０  設計支援装置
１ａ  抽出部
１ｂ  調整部
２、２ａ、３０  設計対象回路
２Ａ、２ｂ、２ｃ、２ｄ、２Ｚ、２ｂ１，２ｃ１  回路
３  記憶部
４、５０ｂ  等価回路
１１  調整区間情報生成部
１１１  回路情報解析部
１１２  タイミング評価部
１１３  迂回区間抽出部
１１４  迂回区間記憶部
１１５  調整区間決定部
１１６  調整区間情報生成部
１２  調整区間情報記憶部
１３  表示部
１４  タイミング調整部
１４１  回路情報解析部
１４２  調整区間情報解析部
１４３  回路調整部
１５  論理回路情報記憶部
１６  回路物理情報記憶部
５０  タイミング調整区間
５０ａ  複製回路
Ｐ１  タイミング違反パス
【図１】
2013093998.tif 000003
【図２】
2013093998.tif 000004
【図３】
2013093998.tif 000005
【図４】
2013093998.tif 000006
【図５】
2013093998.tif 000007
【図６】
2013093998.tif 000008
【図７】
2013093998.tif 000009
【図８】
2013093998.tif 000010
【図９】
2013093998.tif 000011
【図１０】
2013093998.tif 000012
【図１１】
2013093998.tif 000013
【図１２】
2013093998.tif 000014
【図１３】
2013093998.tif 000015
【図１４】
2013093998.tif 000016
【図１５】
2013093998.tif 000017
【図１６】
2013093998.tif 000018
【図１７】
2013093998.tif 000019
【図１８】
2013093998.tif 000020
【図１９】
2013093998.tif 000021
【図２０】
2013093998.tif 000022
【図２１】
2013093998.tif 000023
【図２２】
2013093998.tif 000024
【図２３】
2013093998.tif 000025
【図２４】
2013093998.tif 000026
【手続補正書】
【提出日】平成26年6月13日(2014.6.13)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
回路２Ａの配置座標（３，８）から回路２ｄの配置座標（５，５）への進行方向は、（Ｘ＋／Ｙ−）であり、主進行方向と同じ方向である。このため、抽出部１ａは、回路２Ａと回路２ｄとを結ぶパスの経路が迂回していないと判断する。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
調整部１ｂは、抽出部１ａが抽出した迂回区間２Ａ−２ｂ−２ｃ−２ｄに含まれる回路のうち、他のパスへの分岐点がある回路２ｂ、２ｃを複製して迂回区間２Ａ−２ｂ−２ｃ−２ｄに接続する。調整部１ｂは、複製した回路２ｂ１、２ｃ１を、回路２ｂ、２ｃの配置位置よりも回路２Ａと回路２ｄとを結んだ直線に近い位置に配置する。具体的には、調整部１ｂは、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線上に回路２ｂ１、２ｃ１を配置したときに配線グリッドに空きがあるか否かを調べる。また、調整部１ｂは、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線上に回路２ｂ１、２ｃ１を配置できる領域が存在するか否かを調べる。そして、両方の条件を満たす場合、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線上に回路２ｂ１、２ｃ１を配置する。両方の条件を満たさない場合、調整部１ｂは、迂回区間２Ａ−２ｂ−２ｃ−２ｄの始点と終点とを結んだ直線の近傍で回路２ｂ１、２ｃ１を配置できる領域を探し、配線グリッドの空きを調べる。複製した回路２ｂ１、２ｃ１を、迂回区間の始点と終点とを結んだ直線になるべく近づけて配置することで、タイミング違反パスＰ１のタイミング違反が解消する可能性を高めることができる。図１では、回路２ｂ１を座標（４，７）に配置し、回路２ｃ１を座標（４，６）に配置する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
この設計支援装置１によれば、抽出部１ａが、タイミング違反パスＰ１から迂回区間２Ａ−２ｂ−２ｃ−２ｄを抽出した。そして、調整部１ｂが迂回区間２Ａ−２ｂ−２ｃ−２ｄに含まれる回路のうち、他のパスへの分岐点がある回路２ｂ、２ｃを複製して迂回区間２Ａ−２ｂ−２ｃ−２ｄに接続した。また、調整部１ｂが、複製した回路２ｂ１、２ｃ１を、回路２ｂ、２ｃの配置位置よりも回路２Ａと回路２ｄとを結んだ直線に近い位置に配置した。これにより、タイミング違反パスＰ１のタイミング違反が解消する可能性を高めることができる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
図３は、第２の実施の形態の設計支援装置の機能を示すブロック図である。
設計支援装置１０は、調整区間情報生成部１１と、調整区間情報記憶部１２と、表示部１３と、タイミング調整部１４と、論理回路情報記憶部１５と、回路物理情報記憶部１６とを有している。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
調整区間情報生成部１１は、設計対象回路のタイミング調整を実行する回路区間（タイミング調整区間）に関する調整区間情報を生成し、調整区間情報記憶部１２に記憶する。この調整区間情報生成部１１は、回路情報解析部１１１と、タイミング評価部１１２と、迂回区間抽出部１１３と、迂回区間記憶部１１４と、調整区間決定部１１５と、調整区間情報生成部１１６とを有している。迂回区間抽出部１１３は、第１の実施の形態の抽出部の一例であり、調整区間決定部１１５は、第１の実施の形態の調整部の一例である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
回路情報解析部１１１は、論理回路情報記憶部２０１、回路物理情報記憶部２０２およびレイアウト用ライブラリ記憶部２０３に記憶されている情報を解析し、回路データベースを作成する。論理回路情報記憶部２０１には、設計対象回路のネットリストが記憶されている。回路物理情報記憶部２０２には、設計対象回路の配置、配線情報が記憶されている。レイアウト用ライブラリ記憶部２０３には、レイアウト用ライブラリが記憶されている。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
タイミング調整部１４は、調整区間情報記憶部１２に記憶されている情報を用いてタイミング調整区間のタイミングを調整し、調整した結果を論理回路情報記憶部１５と、回路物理情報記憶部１６に記憶する。タイミング調整部１４は、回路情報解析部１４１と、調整区間情報解析部１４２と、回路調整部１４３とを有している。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４６
【補正方法】変更
【補正の内容】
【００４６】
組み合わせ回路の複製指示が通知された回路調整部１４３は、組み合わせ回路を複製する。そして、回路調整部１４３は、タイミング調整区間のパスをショートカットする位置で、かつ他のパスへの影響が少ない位置に、複製した回路を配置する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００６２
【補正方法】変更
【補正の内容】
【００６２】
［ステップＳ１７］  調整区間情報生成部１１６は、各タイミング調整区間の情報を調整区間情報記憶部１２に記憶する。その後、ステップＳ１８に遷移する。
［ステップＳ１８］  調整区間決定部１１５は、全てのタイミング違反パスについてステップＳ５〜Ｓ１７の処理を実行したか否かを判断する。全てのタイミング違反パスについてステップＳ５〜Ｓ１７の処理を実行した場合（ステップＳ１８のＹｅｓ）、図４の処理を終了する。全てのタイミング違反パスについてステップＳ５〜Ｓ１７の処理を実行していない場合（ステップＳ１８のＮｏ）、ステップＳ５に遷移し、ステップＳ５以降の処理を引き続き実行する。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
次に、ステップＳ７の迂回区間抽出処理を説明する。
図５は、迂回区間抽出処理を示すフローチャートである。
［ステップＳ７ａ］  迂回区間抽出部１１３は、タイミング違反パスの始点の座標と終点の座標を比較することによりタイミング違反パスの主進行方向を決定する。その後、ステップＳ７ｂに遷移する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
［ステップＳ７ｂ］  迂回区間抽出部１１３は、ステップＳ７ａにて決定したタイミング違反パスの主進行方向から見たタイミング違反パスの始点からパス内の回路間毎にチェック対象区間を設定する。その後、ステップＳ７ｃに遷移する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６６
【補正方法】変更
【補正の内容】
【００６６】
［ステップＳ７ｄ］  迂回区間抽出部１１３は、選択されたチェック区間の回路間のパスにおける信号の進行方向を確認する。その後、ステップＳ７ｅに遷移する。
［ステップＳ７ｅ］  迂回区間抽出部１１３は、回路間のパスにおける信号の進行方向がタイミング違反パスの主進行方向と異なるか否かを判断する。回路間のパス方向がタイミング違反パスの主進行方向と異なる場合（ステップＳ７ｅのＹｅｓ）、ステップＳ７ｆに遷移する。回路間のパス方向がタイミング違反パスの主進行方向と同じ場合（ステップＳ７ｅのＮｏ）、ステップＳ７ｇに遷移する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
［ステップＳ７ｆ］  迂回区間抽出部１１３は、チェック区間の回路間のパスを迂回区間の一部としてスタックする。その後、ステップＳ７ｉに遷移する。
［ステップＳ７ｇ］  迂回区間抽出部１１３は、迂回区間の部分スタックが存在するか否かを判断する。迂回区間の部分スタックが存在する場合（ステップＳ７ｇのＹｅｓ）、ステップＳ７ｈに遷移する。迂回区間の部分スタックが存在しない場合（ステップＳ７ｇのＮｏ）、ステップＳ７ｉに遷移する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
次に、図４のステップＳ９の調整区間決定処理を説明する。
図６は、調整区間決定処理を示すフローチャートである。
［ステップＳ９ａ］  調整区間決定部１１５は、設計対象の回路内の全ての配線を対象に配線長あたりの遅延平均値γを算出する。その後、ステップＳ９ｂに遷移する。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
［ステップＳ９ｆ］  調整区間決定部１１５は、ステップＳ９ｂにて選択した今回の迂回区間をタイミング調整区間に決定する。調整区間情報生成部１１６は、決定したタイミング調整区間を調整区間情報記憶部１２に記憶する。その後、ステップＳ９ｇに遷移する。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
図８に示すセルＡの座標（３，８）は、設計対象回路３０のある位置を原点（０，０）としたときの設計対象回路３０におけるタイミング違反パスの始点のセルＡが配置されている相対座標を示している。また、セルＺの座標（８，２）は、設計対象回路３０におけるタイミング違反パスの終点のセルＺが配置されている相対座標を示している。以下、Ｘ座標において値が増加する方向を「Ｘ＋」と表記し、Ｘ座標において値が減少する方向を「Ｘ−」と表記し、Ｙ座標において値が増加する方向を「Ｙ＋」と表記し、Ｙ座標において値が減少する方向を「Ｙ−」と表記する。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１２０
【補正方法】変更
【補正の内容】
【０１２０】
［ステップＳ３１］  回路調整部１４３は、タイミング調整区間の始点および終点以外の回路を複製した複製回路を作成する。その後、ステップＳ３２に遷移する。
［ステップＳ３２］  回路調整部１４３は、ステップＳ３１にて作成した複製回路について回路間の接続関係をコピー元の回路と同じように設定する。その後、ステップＳ３３に遷移する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
［ステップＳ３４］  回路調整部１４３は、タイミング違反パス以外からの接続関係をコピー元の回路と同じように設定する。その後、ステップＳ３５に遷移する。
［ステップＳ３５］  回路調整部１４３は、タイミング調整区間の終点の回路の入力端子の既存の接続を切断し、複製回路の出力端子を接続する。その後、ステップＳ３６に遷移する。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０１３４
【補正方法】変更
【補正の内容】
【０１３４】
セルを配置できる空き領域が移動位置に存在しない場合、回路調整部１４３は、最寄りの空き領域にセルを配置する。
図２３は、等価回路を設計対象回路に配置した図である。
【手続補正２０】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出する抽出部と、
前記抽出部が抽出したパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して前記抽出部が抽出した区間のパスに接続し、複製した回路を用いてタイミングを調整する調整部と、
を有することを特徴とする設計支援装置。
【請求項２】
前記調整部は、複製した回路を、前記異なる方向に向かう回路の配置位置よりも前記抽出部が抽出した区間の始点の回路と終点の回路とを結んだ直線に近い位置に配置することを特徴とする請求項１記載の設計支援装置。
【請求項３】
前記抽出部が抽出した区間のうち、パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの迂回区間のマンハッタン長と、前記迂回区間の始点と終点とを直線で結んだ距離のマンハッタン長との差分に配線長あたりの遅延時間を乗じた値が、タイミング制約条件を満たさないパスのタイミング不足時間以上である区間を検出する検出部をさらに有し、
前記調整部は、前記検出部が検出した区間のうち、他のパスへの分岐点がある区間に含まれる回路の少なくとも一部を複製し、複製した回路を、前記タイミング制約条件を満たす位置に配置することを特徴とする請求項１記載の設計支援装置。
【請求項４】
前記調整部は、複製した回路を、前記区間の始点と終点とを結んだ直線上に配置することを特徴とする請求項１記載の設計支援装置。
【請求項５】
前記調整部は、複製対象の回路の複製に際し、個々の配置面積がより小さくなる回路を用いて回路の論理を複製することを特徴とする請求項１記載の設計支援装置。
【請求項６】
前記調整部は、複製した回路を仮配置し、前記他のパスに及ぼす遅延時間が所定時間以内の場合に配置位置を決定することを特徴とする請求項１記載の設計支援装置。
【請求項７】
コンピュータが、
設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出し、
抽出されたパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して抽出された区間のパスに接続し、複製した回路を用いてタイミングを調整する、
ことを特徴とする設計支援方法。
【請求項８】
コンピュータに、
設計対象回路のタイミング検証で所定のタイミング制約条件を満たさないパスのうち、当該パスの始点の回路から終点の回路に向かう方向とは異なる方向に向かう回路を含むパスの区間を抽出し、
抽出されたパスの区間に含まれる他のパスへの分岐点がある回路の少なくとも一部を複製して抽出された区間のパスに接続し、複製した回路を用いてタイミングを調整する、
処理を実行させることを特徴とする設計支援プログラム。
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2013093998.tif 000027
【国際調査報告】
2013093998.tif 000028
2013093998.tif 000029
2013093998.tif 000030