(57)【特許請求の範囲】
【請求項１】
半導体集積回路の設計を支援する設計支援装置であって、
前記半導体集積回路を構成する素子の接続情報を示すネットリストおよび前記回路上の所定の素子を始点または終点とする経路であるパスの回路上の位置を示す配置情報を記憶する記憶手段と、
前記記憶手段に記憶されているネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するパス段数抽出手段と、
前記記憶手段に記憶されている前記パスの始点および終点となった素子の回路上の位置を示す配置情報に基づいて、前記パスのパス長を算出するパス長算出手段と、
前記パス段数抽出手段が抽出した段数と、前記パス長算出手段が算出したパス長とに基づいて、前記パスの遅延時間の改善の難しさを示す遅延難易度を算出する遅延難易度算出手段と、
修正前のネットリストおよび該ネットリストでの初期配置の配置情報を用いて前記遅延難易度算出手段によって算出された修正前のパスの遅延難易度と、修正後のネットリストおよび該ネットリストでの初期配置の配置情報を用いて前記遅延難易度算出手段によって算出された修正後の前記パスの遅延難易度との差分を、遅延劣化を示す指標として出力する出力手段とを備え、
前記遅延難易度算出手段は、前記半導体集積回路における平均的な段数で正規化された前記段数の大きさを表す値に、前記半導体集積回路における平均的なパス長に対する前記パス長の大きさを表す値を加算または減算することによって、遅延難易度を算出する
ことを特徴とする設計支援装置。
【請求項２】
半導体集積回路の設計を支援する設計支援方法であって、
半導体集積回路を構成する素子の接続情報を示すネットリストであって修正前のネットリストおよび前記回路上の所定の素子を始点または終点とする経路であるパスの回路上の位置を示す配置情報であって該ネットリストでの初期配置の配置情報を用いて、前記ネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するとともに、前記パスの始点および終点となった素子の回路上の位置を示す配置情報に基づいて前記パスのパス長を算出し、抽出した前記段数と前記算出したパス長とに基づいて、前記半導体集積回路における平均的な段数で正規化された前記段数の大きさを表す値に前記半導体集積回路における平均的なパス長に対する前記パス長の大きさを表す値を加算または減算することによって、修正前のパスの遅延時間の改善の難しさを示す遅延難易度を算出し、
修正後のネットリストおよび該ネットリストでの初期配置の配置情報を用いて、前記ネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するとともに、前記パスの始点および終点となった素子の回路上の位置を示す配置情報に基づいて前記パスのパス長を算出し、抽出した前記段数と前記算出したパス長とに基づいて、修正後のパスの遅延時間の改善の難しさを示す遅延難易度を算出し、
算出された修正前のパスの遅延難易度と修正後のパスの遅延難易度との差分を、遅延劣化を示す指標として出力する
ことを特徴とする設計支援方法。
【請求項３】
半導体集積回路の設計を支援するための設計支援プログラムであって、
半導体集積回路を構成する素子の接続情報を示すネットリストおよび前記回路上の所定の素子を始点または終点とする経路であるパスの回路上の位置を示す配置情報を記憶する記憶手段を有するコンピュータに、
前記記憶手段に記憶されているネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するパス段数抽出処理、
前記記憶手段に記憶されている前記パスの始点および終点となった素子の回路上の位置を示す配置情報に基づいて、前記パスのパス長を算出するパス長算出処理、
前記パス段数抽出手段が抽出した段数と、前記パス長算出手段が算出したパス長とに基づいて、前記半導体集積回路における平均的な段数で正規化された前記段数の大きさを表す値に、前記半導体集積回路における平均的なパス長に対する前記パス長の大きさを表す値を加算または減算することによって、前記パスの遅延時間の改善の難しさを示す遅延難易度を算出する遅延難易度算出処理、および
修正前のネットリストおよび該ネットリストでの初期配置の配置情報を用いて前記遅延難易度算出手段によって算出された修正前のパスの遅延難易度と、修正後のネットリストおよび該ネットリストでの初期配置の配置情報を用いて前記遅延難易度算出手段によって算出された修正後の前記パスの遅延難易度との差分を、遅延劣化を示す指標として出力する出力処理
を実行させるための設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の設計を支援する設計支援装置、設計支援方法および設計支援プログラムに関し、特に、半導体集積回路におけるパスの遅延劣化を検証する設計支援装置、設計支援方法および設計支援プログラムに関する。
【背景技術】
【０００２】
半導体集積回路の設計動作の一例として、システムＬＳＩの設計フローが非特許文献１に示されている。図９は、非特許文献１に記載されている設計フローを概略化したフローチャートである。図９に示すように、一般的には、半導体集積回路の設計は次のように行われる。まず、ＬＳＩの仕様に基づいて、ＲＴＬ（Register Transfer Level ）記述を作成する（ステップＳ９０１）。次に、作成したＲＴＬ記述と、タイミング制約やセルの内部情報等に基づいて論理合成を行い、ネットリストを生成する（ステップＳ９０２）。ネットリストとは、ゲートレベルの設計情報であって、回線接続に関する情報である。
【０００３】
次に、作成したネットリストに基づいて、ｗｉｒｅ  ｌｏａｄ  ｍｏｄｅｌ等を用いた仮の配線負荷による遅延検証を行う（ステップＳ９０３）。以下、仮の配線負荷による遅延検証を仮負荷遅延検証という。仮負荷遅延検証の結果、問題が発見された場合には、遅延が改善されるようネットリストを修正する。ここでいう”問題”とは、遅延によって入出力信号の転送タイミングが制限時間内に収まらない（またはその可能性が高い）ことをいう。ネットリストの修正は、例えば、論理合成の制約を変更することによって行う（ステップＳ９０２に戻る）。また、例えば、順序回路素子間の段数が減るようＲＴＬ記述を修正することによって行う（ステップＳ９０１に戻る）。
【０００４】
また、問題が発見されなかった場合やネットリストを修正して問題がなくなった場合には、生成したネットリストに基づいて、セルの配置やセル間の配線を行うレイアウト設計を行う（ステップＳ９０４）。レイアウト後は、ネットリスト及びレイアウト情報から抽出される配線の抵抗及び容量に基づく配線遅延およびセル遅延を用いた実負荷による遅延検証を行う（ステップＳ９０５）。以下、レイアウト後の実負荷による遅延検証を実負荷遅延検証という。
【０００５】
実負荷遅延検証の結果、問題が発見された場合には、遅延が改善されるようレイアウトを修正するか（ステップＳ９０４に戻る）、レイアウトを修正しても遅延が改善されない場合などには、再度ネットリストを修正する（ステップＳ９０１またはステップＳ９０２に戻る）。
【０００６】
このように、従来の設計フローにおいて、レイアウト後の実負荷遅延検証で問題が発見された場合には、遅延の改善をレイアウト修正またはネットリスト修正によって行っている。しかし、近年、プロセスの微細化が進み、遅延時間に占める配線遅延の割合が増しているのに対して、レイアウト前の仮負荷遅延検証の段階で実負荷遅延検証で発見される問題を予見できるケースは多くない。従って、プロセスの微細化が進むにつれて、レイアウトを開始して以後に発生する実負荷遅延検証で発見された問題による工程の後戻り回数が増え、遅延時間を目標値に納める遅延収束のために多くの工数がかかっている。
【０００７】
ここで、レイアウト後の遅延収束の過程を見てみると、まず、レイアウトを開始した初期の段階では、極端に遅延が悪いエラーを修正することが行われる。例えば、論理回路の段数が多く配線遅延をゼロとしても遅延時間が制限時間に近いもの、または、段数は少ないが経路が非常に長距離でリピータを入れても遅延時間が制限時間を超えているもの等が挙げられる。このようなエラーは、改善すべき遅延量が大きいので、レジスタの追加・除去等の論理構成の変更や、フロアプラン単位の変更等の大きな変更を伴う。
【０００８】
こうして極端に遅延が悪いエラーを修正していくと、段数と距離、またはそのいずれかに少し問題があるエラーが顕在化してくる。この段階では、改善すべき遅延量も少なくなってきているので、レジスタ間の段数の削減や、フロアプランの微調整、配置の移動、リピータの最適化等の小さな変更で対処できることが多い。
【０００９】
ここで、レジスタ間の段数の削減は、ネットリストを修正することによって実現される。しかし、システムＬＳＩ、特にＡＳＩＣ（オーダーメイドＬＳＩ）と呼ばれる回路においては、ＲＴＬ記述から論理合成を行うことによってネットリストを生成することが多い。そのために、ネットリストの修正にかかる工数は少ないが、段数をきめ細かくコントロールすることが難しく、また、実際に合成してみないと結果が分からない。
【００１０】
また、フロアプランの調整、配置の移動、リピータの最適化などのレイアウト修正は、人手によって行われるので、工数を要するが、時間をかければ改善の見込みが大きい。ただし、遅延収束の工程が進み、エラーの数も改善すべき遅延量も少なくなってくると、これまでの修正によって目標値を達成した経路を悪化させないように修正しなけらばならず、より工数がかかってしまう。
【００１１】
また、遅延収束の最終段階になって、ネットリスト修正が必要となった場合には、レイアウトのやり直しとなる。従って、修正したネットリストに対して、前回のレイアウト時に作成したフロアプランを用いて初期配置を行い、修正個所以外で前回と同じ遅延値に達するよう、配置の移動やリピータの最適化などを繰り返して、やっと修正箇所の改善有無を確認することになり、設計工程に与える影響は大きい。
【００１２】
また、既に説明したように、ネットリスト修正は、論理合成によって行うことが多く、ゲートレベルの論理の変更範囲を完全には把握できないため、段数を減らしたい経路以外の箇所で段数の増加が起こっているかもしれず、さらには、接続関係の構造が変化した場合には、前回作成したフロアプランを適用しても配置変動が生じ、前回と同じ遅延値を達成することが難しくなる、またはできなくなる可能性も含まれている。
【００１３】
特許文献１には、ディレイ不良による設計の後戻りや無駄な繰り返しを低減するために、論理合成や配置配線をしなくてもパスディレイが目標パスディレイ以内に収束可能かを診断する半導体集積回路の設計方法が記載されている。特許文献１に記載の設計方法は、まず、ブロック同士の接続情報を含むレジスタ転送レベル論理情報とフロアプラン情報とに基づいて、パスの論理段数とブロック間距離とを算出する。次に、パスの論理段数とゲート単価ディレイからブロック内ディレイを算出し、ブロック間距離と配線単価ディレイからブロック間ディレイを算出する。特許文献１には、ブロック内ディレイおよびブロック間ディレイを用いてパスディレイが目標パスディレイ以内に収束可能かを判断することができると記載されている。
【００１４】
また、特許文献２には、早い段階で論理設計の不具合のチェックを可能にするための回路設計装置が記載されている。特許文献２に記載の回路設計装置は、論理設計後に、設計対象の全てのセルに単位ディレイ値を割り付けた状態で、論理設計結果に対してパストレースを行いながら積算ディレイ値の最大値または最小値を算出する。そして、算出した積算ディレイ値の最大値または最小値に基づいて、設計対象回路における順序回路セル間もしくは入出力ピンと順序回路セル間のゲート段数を算出する。
【００１５】
特許文献２には、算出したゲート段数をチェックすることで、早い時点で論理設計の不具合をチェックすることができ、大規模化したＬＳＩ等の設計初期段階で設計回路におけるタイミング的に問題のあるパスを早期に発見することができると記載されている。
【００１６】
【特許文献１】特開２００３−２８１２１５号公報（段落００１５、図１）
【特許文献２】特開２００３−２２３４７９号公報（段落００３９−００４２、図１）
【非特許文献１】鈴木五郎、「システムＬＳＩ設計入門」、コロナ社、２００３年３月２０日、ｐ．２２−２８，３２−３４
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、特許文献１に記載の設計方法では、ブロック内ディレイとブロック間ディレイとに分けて算出した予測ディレイを用いて遅延検証を行っているため、ブロック内での配置変動が予測ディレイに反映されないという問題点がある。なお、特許文献１においてブロック内ディレイは、論理段数とゲート単価遅延とを用いて、ブロック間ディレイ値は、ブロック間距離と配線単価遅延とを用いて算出されている。例えば、ある制限によってブロック内の配置が変化しブロック内距離が長くなったことによる遅延悪化の可能性を検出することができない。特に、ブロックが大きければ大きいほど、配置変動も大きく予測ディレイの算出精度は悪くなる。
【００１８】
予測ディレイの算出精度によっては、背景技術で示したような遅延収束の最終段階まで残るような問題が検出されない。その結果、レイアウト後の実負荷遅延検証によって発見されてしまい、遅延収束に工数がかかってしまう可能性がある。
【００１９】
また、例えば、特許文献２に記載の回路設計装置を、修正前と修正後のネットリストに適用することによって、論理段数の増減から遅延値の増減が予測できる。しかし、特許文献２に記載の回路設計装置は、論理段数の変化のみによる遅延値の劣化判断であるので、例えば、論理合成によって修正したい箇所以外で論理段数が増えたことによる遅延劣化を検出することはできても、接続関係の構造が変化したことによる遅延劣化を検出することができない。このため、接続関係の構造変化によって、例えば、レイアウト時に配置変動が生じ、遅延が劣化する可能性を見つけられない。結果、このような遅延劣化は、初期配置後に配置の移動やリピータの挿入などレイアウトをある程度進めてから実負荷遅延検証を行って発見されることになる。
【００２０】
そこで、本発明は、ネットリスト修正による遅延劣化の有無、特に、一度レイアウト設計を行った後のネットリスト修正による遅延劣化の有無を早期に発見できる設計支援装置、設計支援方法および設計支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明による設計支援装置は、半導体集積回路の設計を支援する設計支援装置であって、半導体集積回路を構成する素子の接続情報を示すネットリストおよび回路上の所定の素子を始点または終点とする経路であるパスの回路上の位置を示す配置情報を記憶する記憶手段（例えば、ネットリスト記憶部３１および配置情報記憶部３２）と、記憶手段に記憶されているネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するパス段数抽出手段（例えば、パス段数抽出手段２１）と、記憶手段に記憶されているパスの始点および終点となった素子の回路上の位置を示す配置情報に基づいて、パスのパス長を算出するパス長算出手段（例えば、パス長抽出手段２２）と、パス段数抽出手段が抽出した段数と、パス長算出手段が算出したパス長とに基づいて、パスの遅延時間の改善の難しさを示す遅延難易度を算出する遅延難易度算出手段（例えば、遅延難易度算出手段２３）と、修正前のネットリストおよび該ネットリストでの初期配置の配置情報を用いて遅延難易度算出手段によって算出された修正前のパスの遅延難易度と、修正後のネットリストおよび該ネットリストでの初期配置の配置情報を用いて遅延難易度算出手段によって算出された修正後のパスの遅延難易度との差分を、遅延劣化を示す指標として出力する出力手段（例えば、レポート出力手段２５）とを備え、遅延難易度算出手段は、半導体集積回路における平均的な段数で正規化された段数の大きさを表す値に、半導体集積回路における平均的なパス長に対するパス長の大きさを表す値を加算または減算することによって、遅延難易度を算出することを特徴とする。
【００２７】
また、本発明による設計支援方法は、半導体集積回路の設計を支援する設計支援方法であって、半導体集積回路を構成する素子の接続情報を示すネットリストであって修正前のネットリストおよび回路上の所定の素子を始点または終点とする経路であるパスの回路上の位置を示す配置情報であって該ネットリストでの初期配置の配置情報を用いて、ネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するとともに、パスの始点および終点となった素子の回路上の位置を示す配置情報に基づいてパスのパス長を算出し、抽出した段数と算出したパス長とに基づいて、半導体集積回路における平均的な段数で正規化された段数の大きさを表す値に半導体集積回路における平均的なパス長に対するパス長の大きさを表す値を加算または減算することによって、修正前のパスの遅延時間の改善の難しさを示す遅延難易度を算出し、修正後のネットリストおよび該ネットリストでの初期配置の配置情報を用いて、ネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するとともに、パスの始点および終点となった素子の回路上の位置を示す配置情報に基づいてパスのパス長を算出し、抽出した段数と算出したパス長とに基づいて、修正後のパスの遅延時間の改善の難しさを示す遅延難易度を算出し、算出された修正前のパスの遅延難易度と修正後のパスの遅延難易度との差分を、遅延劣化を示す指標として出力することを特徴とする。
【００２９】
また、本発明による設計支援プログラムは、半導体集積回路の設計を支援するための設計支援プログラムであって、半導体集積回路を構成する素子の接続情報を示すネットリストおよび回路上の所定の素子を始点または終点とする経路であるパスの回路上の位置を示す配置情報を記憶する記憶手段を有するコンピュータに、記憶手段に記憶されているネットリストからパスの始終点を抽出し、抽出した始点と終点との間の最大段数を該パスの段数として抽出するパス段数抽出処理、記憶手段に記憶されているパスの始点および終点となった素子の回路上の位置を示す配置情報に基づいて、パスのパス長を算出するパス長算出処理、パス段数抽出手段が抽出した段数と、パス長算出手段が算出したパス長とに基づいて、半導体集積回路における平均的な段数で正規化された段数の大きさを表す値に、半導体集積回路における平均的なパス長に対するパス長の大きさを表す値を加算または減算することによって、パスの遅延時間の改善の難しさを示す遅延難易度を算出する遅延難易度算出処理、および修正前のネットリストおよび該ネットリストでの初期配置の配置情報を用いて遅延難易度算出手段によって算出された修正前のパスの遅延難易度と、修正後のネットリストおよび該ネットリストでの初期配置の配置情報を用いて遅延難易度算出手段によって算出された修正後のパスの遅延難易度との差分を、遅延劣化を示す指標として出力する出力処理を実行させることを特徴とする。
【発明の効果】
【００３０】
本発明によれば、パスの段数およびパス長に基づいて修正前のパスの遅延難易度および修正後のパスの遅延難易度を算出し、算出した修正前の遅延難易度と修正後の遅延難易度の差分を遅延劣化を示す指標を出力するので、レイアウト結果のフィードバックによる検証よりも早期に、また、論理段数のみを用いて検証する場合よりも精度よく、ネットリスト修正による遅延劣化の可能性を検出することができる。従って、ネットリスト修正による遅延劣化の有無、特に、一度レイアウト設計を行った後のネットリスト修正による遅延遅延劣化の有無を早期に発見することができる。
【発明を実施するための最良の形態】
【００３１】
まず、本発明の概要を説明する。本発明による設計支援装置は、修正前のネットリストおよび修正後のネットリストに対して、ネットリストから抽出されるパスの段数とパス長とを求め、求めた段数とパス長とに基づいて、遅延改善の難しさを示す遅延難易度を算出する。そして、修正前のネットリストにおけるパスの遅延難易度と修正後のネットリストにおけるパスの遅延難易度とを比較することによって実負荷遅延検証での遅延時間の増減を予測する。本発明において、パスとは、フリップフロップなどの順序回路素子または端子を始点とし論理回路網を通過して次の順序回路素子または端子に至る経路であって、回路設計において遅延検証の単位となる経路をいう。また、段数とは、パス上にある素子数をいう。
【００３２】
なお、以下、評価対象とする修正後のネットリストを評価対象ネットリストといい、評価対象ネットリストとの比較対象のネットリストであって、評価対象ネットリストよりも前の版数のネットリストを試行ネットリストという。
【００３３】
本発明によれば、例えば、試行ネットリストの初期配置時の配置情報を与えることによって、評価対象ネットリストの初期配置を行った段階で、段数変化による遅延劣化だけでなく、パス長変化による遅延劣化の可能性も検出することが可能である。
【００３４】
以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明による設計支援装置の構成例を示すブロック図である。図１に示す設計支援装置は、キーボード等の入出力装置１と、プログラムに従って動作するＣＰＵ等のデータ処理装置２と、情報を記憶するメモリやハードディスク装置等の記憶装置３と、ディスプレイ装置等の出力装置４とを備える。
【００３５】
また、データ処理装置２は、パス段数抽出手段２１と、パス長抽出手段２２と、遅延難易度算出手段２３と、遅延予測手段２４と、レポート出力手段２５とを備える。また、記憶装置３は、ネットリスト記憶部３１と、配置記憶部３２と、パス情報記憶部３３とを備える。なお、図示していないが、データ処理装置２には、入力装置１を用いてデータを入力させる入力手段を備える。
【００３６】
入力手段は、入力装置１を用いて、評価対象ネットリストとその配置情報、および試行ネットリストとその配置情報と遅延実績値とを入力する。本実施の形態において、ネットリストとは、回路上のセルの接続状態を示す情報であって、少なくとも、回路を構成する全セルについて、セルの種類と、識別子と、接続先を示す情報とを含む情報である。ここで、セルの種類とは、セルがフリップフロップ（以下、ＦＦという。）等の順序回路素子か、端子等の論理回路素子か、またはそのいずれでもないかを示す情報である。また、セルの識別子とは、セルを識別するために用いるＩＤ等のセル固有の情報である。また、接続先を示す情報は、例えば、当該セルと接続されるセルの識別子である。
【００３７】
また、配置情報は、ネットリストに含まれるセルの座標や反転等の回路上の位置を示す情報である。なお、ネットリストは、例えば、論理合成ツールや回路図エディタ等により作成され、配置情報は、例えば、ネットリストの自動配置ツールやレイアウトエディタ等により作成される。
【００３８】
ネットリスト記憶部３１は、入力装置１より入力されたネットリストを記憶する。また、配置記憶部３２は、入力装置１より入力された配置情報を記憶する。パス情報記憶部３３は、評価対象ネットリストおよび試行ネットリストのパスに関する情報であるパス情報を記憶する。パス情報は、ネットリストから抽出されるパスについて、パスの始終点情報と、段数と、パス長と、遅延難易度とを含む情報である。なお、試行ネットリストのパス情報には、遅延実績値を含んでいてもよい。
【００３９】
ここで、パスの始終点情報には、パスの始点および終点となるセルを示す情報であるとともに、評価対象ネットリストと試行ネットリストとで同一のパスであることを認識可能とするパス固有の識別子情報としての意味合いも持つものとする。また、パスの遅延実績値とは、評価対象ネットリストにおけるパスの予測遅延値の基準とする遅延値であって、例えば、試行ネットリストのレイアウト後の実負荷遅延値であってもよい。ここで、実負荷遅延値とは、ネットリストのレイアウトが完了した後に、レイアウトから寄生容量抵抗を抽出して遅延計算を行うことによって算出される値をいう。
【００４０】
パス段数抽出手段２１は、ネットリスト記憶部３１に記憶されているネットリストからパスとなる始終点および始終点間の最大段数を抽出し、パス長としてパスの始終点情報とともにパス情報記憶部３３に記憶する。パス長抽出手段２２は、パス段数抽出手段２１が抽出した全パスについて、配置記憶部３２に記憶されているパスの始終点情報および始終点となるセルの配置情報に基づいて、始終点間の距離を算出し、パス長としてパス情報記憶部３３に記憶する。遅延難易度算出手段２３は、パス段数抽出手段２１が抽出した全パスについて、最大段数およびパス長に基づいて遅延難易度を算出し、パス情報記憶部３３に記憶する。
【００４１】
遅延予測手段２４は、評価対象ネットリストと試行ネットリストとで同一の始終点を持つパスについて、試行ネットリストにおける遅延難易度と評価対象ネットリストにおける遅延難易度との差分から、評価対象ネットリストにおけるパスの遅延値の増減を予測する。なお、評価ネットリストにおける遅延実績値が入力されている場合には、予測した増減に基づいて、評価対象ネットリストにおける予測遅延値を算出してもよい。
【００４２】
レポート出力手段２５は、遅延難易度算出手段２３が算出した遅延難易度や、遅延予測手段２４が予測した遅延値の増減、予測遅延値等、評価対象ネットリストにおけるパスの遅延劣化の有無を検証するための検証材料となる情報を出力装置４に出力する。
【００４３】
次に、図２のフローチャートを参照して本実施の形態における設計支援装置の動作について説明する。図２は、本実施の形態における設計支援装置の動作例を示すフローチャートである。本実施の形態の動作を始める前に、予め、試行ネットリストに対してレイアウト設計および実負荷遅延検証を行い、遅延改善のための配置変更やリピータ挿入などのレイアウト修正後の配線および寄生容量抵抗に基づく遅延実績値を求めておく。ここで、例えば、パスの始終点を結ぶ経路が複数ある場合には、パスの遅延実績値として、遅延時間が最も長い値を用いるものとする。
【００４４】
まず、入力手段は、劣化判断の基準とする試行ネットリストのネットリストおよび配置情報を入力する（ステップＳ１）。入力手段は、例えば、ファイルとして用意されているネットリストおよび配置情報を、利用者の入力装置１からの指示に従って、フィル入力装置から読み込み、試行ネットリストのネットリストおよび配置情報として、ネットリスト記憶部３１と配置記憶部３２とに格納する。ここで、入力手段が入力する試行ネットリストの配置情報は、遅延改善のための配置改善を行う前の初期配置の状態を示す情報を用いる。
【００４５】
なお、入力手段は、設計支援装置がネットリストや配置情報を生成する各種ツール（例えば、論理合成ツールや回路図エディタ、自動配置ツール、レイアウトエディタ等）と組み合わされ、一つの装置として構成されている場合には、設計支援装置が備える各種ツールが出力したネットリストおよび配置情報を直接受け取ってもよい。
【００４６】
次に、ステップＳ２からＳ４までの手順で、入力された試行ネットリストの各パスについて、段数とパス長とに基づく遅延難易度を算出する。まず、パス段数抽出手段２１は、ネットリスト記憶部３１から試行ネットリストのネットリストを読み込み、フリップフロップまたは端子を始点または終点とし、始点から終点までの経路を追跡しながら経路上のセル数を数えあげる。パス段数抽出手段は、ネットリストから接続先が示されているフリップフロップまたは端子を始点とし、接続先情報を追跡しながらフリップフロップまたは端子を終点とする経路をパスとして抽出するとともに、経路上のセル数を段数として抽出する（ステップＳ２）。
【００４７】
パス段数抽出手段２１は、抽出したパスの始終点情報と最大段数とをパス情報記憶部３３に格納する。なお、最大段数には、抽出したパスがとりうる経路においてセル数が最も多かった経路上のセル数を登録する。
【００４８】
次に、パス長抽出手段２２は、パス情報記憶部３３から各パスの始終点情報を読み取り、読み取った始終点情報に基づいて、パスの始点および終点となったセルの配置情報を配置情報記憶部３２から読み込む。パス長抽出手段２２は、読み込んだパスの始点および終点の配置情報に基づいて、２点間の距離を求める。パス長抽出手段２２は、例えば、始終点の配置情報として各セルの座標（例えば、フリップフロップの原点座標や、端子図形の原点座標）を読み込み、２点間のマンハッタン長を求める（ステップＳ３）。
【００４９】
また、パス長抽出手段は、始終点間のマンハッタン長の代わりに、経路上の全セル間のマンハッタン長や直線距離からの最長経路長を求めてもよい。パス長抽出手段２２は、求めたパス長を、パスの始終点情報に対応付けてパス情報記憶部３３に格納する。
【００５０】
次に、遅延難易度算出手段２３は、パス情報記憶部３３から各パスの段数とパス長とを読み取り、予め定義しておいた遅延難易度算出式ｆ（段数，パス長）に代入して遅延難易度を算出する（ステップＳ４）。遅延難易度算出手段２３は、算出した遅延難易度を、パスの始終点情報と対応付けてパス情報記憶部３３に格納する。以下に遅延難易度算出式ｆ（段数，パス長）の一例を示す。なお、式（１）において、α＝１または−１とする。
【００５１】
ｆ（段数，パス長）＝（段数／平均段数）＋α×（パス長／平均パス長）    式（１）
【００５２】
ここで、αは、パス長の増加もしくは減少による遅延難易度の変化の方向を示すパラメータである。α、平均段数、平均パス長は全パスに共通の値を設定しても、個別に設定してもよく、また、予め設計支援装置の記憶装置に記憶しておいても、利用者に設定させてもよい。
【００５３】
また、入力手段は、劣化判断の対象とする評価対象ネットリストのネットリストおよび配置情報を入力する（ステップＳ５）。入力手段は、試行ネットリストのネットリストおよび配置情報と同様にして、評価対象ネットリストのネットリストおよび配置情報を入力する。ここで、入力手段が入力する評価対象ネットリストの配置情報は、試行ネットリストと同じフロアプランで初期配置を行った状態を示す情報を用いる。
【００５４】
次に、ステップＳ６からＳ８までの手順で、入力された評価対象ネットリストの各パスについて、段数とパス長とに基づく遅延難易度を算出する。ここで、ステップＳ６からＳ８までの手順は、ステップＳ２からＳ４までで示した試行ネットリストの遅延難易度を算出する手順と同様のため、説明省略する。なお、パス段数抽出手段２１が抽出した評価対象ネットリストの各パスの始終点情報と段数、パス長抽出手段２２が抽出した各パスのパス長および遅延難易度算出手段２３が算出した各パスの遅延難易度は、それぞれ評価対象ネットリストのパス情報として、パスの始終点情報と対応づけてパス情報記憶部３３に記憶される。
【００５５】
また、入力手段は、予測遅延値の基準とする試行ネットリストの遅延実績値を入力する（ステップＳ９）。入力手段は、例えば、ファイルとして用意されているネットリストの遅延検証結果である遅延実績値を、利用者の指示に従って、ファイル入力装置から読み込み、パスの始終点情報と対応づけてパス情報記憶部３３に格納する。また、入力手段は、例えば、パス情報記憶部３３に格納されているパスの始終点情報を表示し、表示したパスの遅延実績値を入力させる入力画面を用意して、利用者にキーボード等の入力装置１から入力させてもよい。また、設計支援装置が遅延検証を行い遅延実績値を出力するツール（例えば、検証機能付き自動レイアウトツール）と組み合わされ、１つの装置として構成されている場合には、設計支援装置が備えるツールが出力した遅延実績値を直接受け取ってもよい。
【００５６】
次に、遅延予測手段２４は、試行ネットリストのパスの遅延難易度と、評価対象ネットリストのパスの遅延難易度とに基づいて、予測遅延増減値および予測遅延値を算出する。遅延予測手段２４は、例えば、パス情報記憶部３３に記憶されているパスの始終点情報に基づいて、試行ネットリストと評価対象ネットリストとで同一パスを検出し、該パスの試行ネットリストにおける遅延難易度と評価対象ネットリストにおける遅延難易度を読み込む。遅延予測手段２４は、読み込んだ２つの遅延難易度から差分を求め、求めた差分に対し、予め定義しておいた係数をかけて予測遅延増減値を算出する。次に、遅延予測手段２４は、算出した予測遅延増減値に試行ネットリストにおける遅延実績値を加算して予測遅延値を算出する。つまり、遅延予測手段２４は、式（２）を用いて予測遅延増減値および予測遅延値を算出する。
【００５７】
予測遅延値＝試行ネットリストにおける遅延実績値＋予測遅延増減値
予測遅延増減値＝（遅延難易度差分）×係数                          式（２）
【００５８】
ここで、予測遅延増減値を求めるための係数は、遅延難易度の尺度を実レイアウト後の遅延時間の増減値に変換するために用いる係数でる。その係数は、例えば、評価対象ネットリストよりも前の版数等を用いて、予測遅延値を求めた後にレイアウト後の遅延実績値を求め、予測遅延値と遅延実績値とが概ね合うように調整すること等によって、予め設定されているものとする。また、係数は、全パスに共通の値を設定することも、個別に設定することも可能である。なお、予測遅延増減値を遅延時間の増減値と解釈せずに、遅延の劣化を示す指標として利用するだけの場合には、係数を用いる必要はない。このような場合には、予測遅延値の算出処理は省略される。
【００５９】
遅延予測手段２４は、算出した予測遅延増減値および予測遅延値を、パスの始終点情報と対応づけてパス情報記憶部３３に格納する。次に、レポート出力手段２５は、パス情報記憶部３３に記憶されているパス情報を読み取り、出力装置４に出力する（ステップＳ１０）。
【００６０】
なお、試行ネットリストの入力動作および遅延難易度算出動作（ステップＳ１〜Ｓ４）、評価対象ネットリストの入力動作および遅延難易度算出動作（ステップＳ５〜Ｓ８）、試行ネットリストの遅延実績値の入力動作（ステップＳ９）は、独立して動作させることが可能であり、各動作を行う順序は任意である。例えば、試行ネットリストの遅延実績値の入力動作を行った後で、試行ネットリストの入力動作および遅延難易度算出動作を行ってもよいし、評価対象ネットリストの入力動作および遅延難易度算出動作を先に行うことも可能である。
【００６１】
以上のように、本実施の形態によれば、従来のレイアウト結果のフィードバックによる検証よりも早期に、また、従来の論理段数のみによる検証よりも精度よく、ネットリスト修正による遅延劣化の可能性を検出することができる。つまり、配置の変化をパス長の変化によって検出し、遅延劣化を予測するための指標を段数とパス長とに基づいて算出するので、段数の変化のみでは見つけられなかった遅延劣化の可能性を指摘することができる。また、修正したネットリストの遅延劣化の可能性を、初期配置直後に、レイアウト完了後の予測遅延値とともに提供することができるため、従来のレイアウトを進めてからの実遅延検証によるフィードバックよりも早い時点で見直しをすることができる。
【００６２】
図３は、本発明を適用した場合のシステムＬＳＩの設計フローを示すフローチャートである。図３に示すように、本発明による設計支援方法を設計フローに組み込むことによって、早期にネットリストの遅延上の問題点を洗い出すことができる。つまり、ステップＳ１０３においてレイアウト設計のうち、初期の配置工程のみを独立して行い、レイアウト設計の残りの工程（ステップＳ１０５）に進む前に、本発明による遅延劣化の有無の検証を行うことによって、レイアウト設計（ステップＳ１０５）からのネットリスト修正を伴う後戻り（ステップＳ１０１，Ｓ１０２への戻り）の発生を少なくし、結果、遅延収束にかかる期間を短縮することができる。特に、初期の大きなエラーを改善した後に、ネットリストの修正が段数変更にとどまるようになった時点以降の設計期間を短縮できる。
【００６３】
また、仮負荷遅延検証を終えてすぐのような初期の版数のネットリストに対して、初期配置段階で遅延難易度を求めることによって、例えば、パス長が短くて遅延難易度が高いようなレイアウト後に段数の削減が必要になりそうなエラーの可能性を早期に発見できるため、遅延収束の最終段階においてレイアウト修正を行う事態を防ぐことができる。
【００６４】
なお、本実施の形態では、初期配置の状態の配置情報を入力する場合を例にとって説明したが、例えば、より精度を上げるために、大きなエラーを取り除くまでのレイアウト修正（例えば、リピータの最適化等）を行った後、小さなエラーを取り除くための人手によるレイアウト設計の前に実施することも可能である。
【実施例】
【００６５】
次に、具体的な実施例を用いて本発明を実施するための形態の動作を説明する。図４は、本実施例における半導体集積回路の試行ネットリストに対して初期配置を行った結果を示すレイアウト模式図である。Ａ，Ｂは、それぞれフロアプランの配置領域を示している。また、Ａ１，Ａ２，Ａ３，Ａ４は、フロアプランでの配置領域Ａに所属するフリップフロップを示し、Ｂ１，Ｂ２は、フロアプランでの配置領域Ｂに所属するフリップフロップを示している。なお、各フリップフロップは、パスの始終点となる要素である。また、図４では、経路上の論理回路は雲形で示され記載省略されている。また、２点間に経路が存在するフリップフロップを線分（間に雲形を含む）で接続している。図４では、Ａ１−Ａ４，Ａ２−Ａ４，Ａ３−Ａ４，Ａ４−Ｂ１，Ｂ１−Ｂ２が経路を持つ。
【００６６】
また、図５は、本実施例における半導体集積回路の評価対象ネットリストに対して初期配置を行った結果を示すレイアウト模式図である。ここでは、評価対象ネットリストは、試行ネットリストから段数の減少を試みて修正されたネットリストとする。図５では、評価対象ネットリストに対して、試行ネットリストと同じフロアプランを用いて初期配置した結果、セルＡ３，Ｂ１の配置が少し変動したことを示している。
【００６７】
まず、入力手段は、入力装置１を用いて、図４に示すような試行ネットリストのネットリストおよび配置情報を入力し（ステップＳ１）、それぞれネットリスト記憶部３１と配置記憶部３２に格納する。また、入力手段は、試行ネットリストのレイアウト完了後の実負荷遅延検証を行った結果を入力し、実負荷遅延検証の結果に基づいて、遅延実績値をパスの始終点情報と対応づけてパス情報記憶部３３に格納する（ステップＳ９）。また、入力手段は、図５に示すような評価対象ネットリストのネットリストおよび配置情報を入力し（ステップＳ５）、それぞれネットリスト記憶部３１と配置記憶部３２に格納する。
【００６８】
次に、パス段数抽出手段２１は、ネットリスト記憶部３１から試行ネットリストのネットリストを読み込み、セルの種別に基づいてフリップフロップと端子とを認識し、パスの始終点候補としてＡ１，Ａ２，Ａ３，Ａ４，Ｂ１，Ｂ２を抽出する。また、パス段数抽出手段２１は、抽出した各セルを始点として、段数を元に最長経路探索の方法で終点までの最大段数の経路を得る（ステップＳ２）。ここで、同時に終点も判明するので、パスの始終点名に対応づけて、抽出した最大段数をパス情報記憶部３３の試行ネットリストのパス情報に格納する。
【００６９】
図６は、試行ネットリスト上のパスの始終点間の経路を示す説明図である。例えば、始終点上の経路が、図６に示すように、Ｐ１〜Ｐ３の３つの経路を持つ場合には、パス段数抽出手段２１は、ネットリスト上の素子数に基づいて、Ｐ２の１３段を段数として抽出する。なお、段数の抽出は、Ｐ１の素子数（１０）、Ｐ２の素子数（１３）、Ｐ１の素子数（１１）に基づく。ここで、レイアウト時に長配線の遅延値を抑えるために挿入されたバッファ等（例えば、リピータ素子）は、数え上げ対象外とする。パス段数抽出手段２１は、例えば、レイアウト時にネットリストに新たに追加されるセルの種類によって認識する。
【００７０】
次に、パス長抽出手段２２は、パス情報記憶部３３から１つのパス始終点名、例えばＡ１−Ａ４を読み取り、また、配置記憶部３２から試行ネットリストの始終点の配置情報を読み取り、図７に示すように、始点セルの原点の配置座標と、終点セルの原点の配置座標とから、マンハッタン長＝ｄｘ＋ｄｙを求める（ステップＳ３）。パス長抽出手段２２は、求めたマンハッタン長をパス長として、パスの始終点情報と対応づけて、パス情報記憶部３３の試行ネットリストのパス情報に格納する。また、パス長抽出手段２２は、パス情報記憶部３３に登録されているパスに対して、同様の処理を行う。
【００７１】
図７は、パス情報記憶部３３に記憶するパス情報のデータ構造の一例を示す説明図である。パス情報は、例えば、図７に示すように、パスの始終点情報に対応づけて、試行ネットリストのパス情報（段数と、パス長と、遅延実績値と、遅延難易度）と、評価対象ネットリストのパス情報（段数と、パス長と、遅延難易度）とを含んでいてもよい。なお、本実施例では、パス始終点情報として、パスの始終点をなすセルの識別子を結んで表現したパスの始終点名（例えば、Ａ１−Ａ４）を用いるものとする。
【００７２】
次に、遅延難易度算出手段２３は、パス情報記憶部３３から１つのパス始終点名、例えば、Ａ１−Ａ４について、段数＝２０段とパス長＝２ｍｍとを読み出し、予め定義されている遅延難易度算出式に代入して、遅延難易度を求める（ステップＳ４）。ここで、例えば、遅延難易度算出式において、α＝１，平均段数＝２０，平均パス長＝２ｍｍと定義されていた場合、Ａ１−Ａ４の遅延難易度は、段数＝２０段，パス長＝２．０ｍｍを代入して、２となる。また、遅延難易度算出手段２３は、パス情報記憶部３３に登録されているパスに対して、同様の処理を行う。
【００７３】
なお、平均段数および平均パス長の値は、例えば、これまでの試行ネットリストにおける平均的な段数（リピータ挿入前の段数）、パス長を統計的に求めた値を設定し、さらに、レイアウトでの遅延対策が難しいと思われるパスについては、統計的に求めた段数よりも小さめに設定する。また、αの値は、例えば、パス長が試行ネットリストのレイアウト時よりも長くなると遅延難易度が高くなるパスに対しては＋１を、逆に、パス長が長くなると遅延難易度が低くなるパスに対しては−１を設定する。
【００７４】
本実施例では、全パスに対して平均段数＝２０、平均パス長＝２ｍｍが設定され、また、パス長が長くなると遅延難易度が高くなると考えられるが、図７に示すように、Ａ３−４は段数に対してパス長が相対的に短いのでパス長が長くなると遅延難易度が低くなると考えられ、Ａ３−Ａ４を除くパスに対してα＝１、Ａ３−Ａ４に対してのみα＝−１が設定されているものとする。図７には、このような設定の元、全パスに対して算出された遅延難易度が示されている。
【００７５】
次に、評価対象ネットリストのパスの遅延難易度を算出する。パス段数抽出手段２１は、ネットリスト記憶部３１から評価対象ネットリストのネットリストを読み込み、試行ネットリストと同様にして、全パスの始終点と最大段数を抽出する（ステップＳ６）。パス段数抽出手段２１は、抽出した最大段数を、パスの始終点名に対応づけてパス情報記憶部３３の評価対象ネットリストのパス情報に格納する。なお、ここでは、試行ネットリストと同一のパスの始終点が抽出されるものとする。また、抽出した結果、図７に示すように、Ａ４−Ｂ１の段数の減少（１０から５）、Ａ２−Ａ４の段数の増加（２０から２２）が起きていたものとする。
【００７６】
次に、パス長抽出手段２２は、パス情報記憶部３３から１つのパス始終点名、例えばＡ１−Ａ４を読み取り、また、配置記憶部３２から評価対象ネットリストの始終点の配置情報を読み取り、試行ネットリストの場合と同様にして、始終点間のマンハッタン長を求める（ステップＳ７）。パス長抽出手段２２は、求めたマンハッタン長をパス長として、パスの始終点名に対応づけて、パス情報記憶部３３の評価対象ネットリストのパス情報に格納する。また、パス長抽出手段２２は、パス情報記憶部３３に登録されているパスに対して、同様の処理を行う。
【００７７】
なお、ここでは、既に説明したように、ネットリストの修正によってセルＡ３，Ｂ１の配置が変動したことにより、図７に示すように、Ａ３−Ａ４、Ａ４−Ｂ１、およびＢ１−Ｂ２のパス長が変化したものとする。
【００７８】
次に、遅延難易度算出手段２３は、パス情報記憶部３３から１つのパス始終点名、例えば、Ａ１−Ａ４について、段数＝２０段とパス長＝２ｍｍとを読み出し、予め定義されている遅延難易度算出式に代入して、遅延難易度を求める（ステップＳ４）。ここで、例えば、遅延難易度算出式において、α＝１，平均段数＝２０，平均パス長＝２ｍｍと定義されていた場合、Ａ１−Ａ４の遅延難易度は、２となる。また、遅延難易度算出手段２３は、パス情報記憶部３３にに登録されているパスに対して、同様の処理を行う。
【００７９】
なお、遅延難易度算出手段２３は、試行ネットリストのパス情報と比較し、段数またはパス長に変化のあった始終点に対してのみ、遅延難易度を求めてもよい。
【００８０】
これまでの処理によって、パス情報記憶部３３には、図７に示すような情報が得られる。即ち、始終点Ａ１−Ａ４については、試行ネットリストにおける段数＝２０段，パス長＝２．０ｍｍに基づく遅延難易度＝２．０、および評価対象ネットリストにおける段数＝２０段，パス長＝２．０ｍｍに基づく遅延難易度＝２．０が得られる。また、始終点Ａ２−Ａ４については、試行ネットリストにおける段数＝２０段，パス長＝２．０ｍｍに基づく遅延難易度＝２．０、および評価対象ネットリストにおける段数＝２２段，パス長＝２．０ｍｍに基づく遅延難易度＝２．１が得られる。また、始終点Ａ３−Ａ４については、試行ネットリストにおける段数＝３０段，パス長＝２．０ｍｍに基づく遅延難易度＝０．５、および評価対象ネットリストにおける段数＝３０段，パス長＝１．８ｍｍに基づく遅延難易度＝２．６が得られる。また、始終点Ａ４−Ｂ１については、試行ネットリストにおける段数＝１０段，パス長＝５．０ｍｍに基づく遅延難易度＝３．０、および評価対象ネットリストにおける段数＝５段，パス長＝３．５ｍｍに基づく遅延難易度＝−０．５が得られる。
【００８１】
次に、遅延予測手段２４は、パス情報記憶部３３からパス情報を１つずつ読み込み、試行ネットリストにおける遅延難易度と評価対象ネットリストにおける遅延難易度との差分を求める。また、遅延予測手段２４は、求めた差分に対し、予め定義された係数、本実施例においては０．５を掛けた値を予測遅延増減値としてパス情報記憶部３３に格納する。ここで求めた予測遅延増減値とは、試行ネットリストにおける遅延実績値からの遅延時間の増減値を予測した値である。また、遅延予測手段２４は、求めた予測遅延増減値に、試行ネットリストの遅延実績値を加算して、予測遅延値を求める。遅延予測手段２４は、求めた予測遅延値もパス情報記憶部３３に格納する。
【００８２】
次に、レポート出力手段２５は、パス情報記憶部３３に格納された各パスの予測結果を出力装置４に出力する（ステップＳ１０）。レポート出力手段２５は、予測結果だけでなく、各パスの試行ネットリストのパス情報と、評価対象ネットリストのパス情報とを含め、段数の変化やパス長の変化等がわかるように出力してもよい。また、各パスのα値や平均段数や、平均パス長、係数等、予測結果を求める際に用いたパラメータも合わせて出力してもよい。図８は、レポート出力手段２５の出力例を示す説明図である。図８では、試作ネットリストがネットリスト版数Ｒ１、評価対象ネットリストがネットリスト版数Ｒ２である場合の出力例を示している。なお、遅延予測手段２４は、遅延劣化の可能性のある始終点がわかるよう、予測遅延値が増加した場合には色分けして表示するようにしてもよい。
【００８３】
本実施例の出力結果によって、例えば、始終点Ａ４−Ｂ１の段数を変更しようとネットリストを修正したことによって、始終点Ａ４−Ｂ１の遅延が改善される可能性があることがわかるが、合わせて、始終点Ａ２−Ａ４の段数が増加したことによる遅延劣化の可能性、始終点Ａ３−Ａ４のパス長が短縮したことによる遅延劣化の可能性、および始終点Ｂ１−Ｂ２のパス長が伸びたことによる遅延劣化の可能性があることがわかる。
【産業上の利用可能性】
【００８４】
本発明によれば、半導体集積回路の設計を情報処理装置を用いて行う設計支援装置に適用できる。
【図面の簡単な説明】
【００８５】
【図１】本発明による設計支援装置の構成例を示すブロック図。
【図２】本実施の形態における設計支援装置の動作例を示すフローチャート。
【図３】本発明を適用した場合のシステムＬＳＩの設計フローを示すフローチャート。
【図４】本実施例における試行ネットリストに対して初期配置を行った結果を示すレイアウト模式図。
【図５】本実施例における評価対象ネットリストに対して初期配置を行った結果を示すレイアウト模式図
【図６】試行ネットリスト上のパスの始終点間の経路を示す説明図。
【図７】パス情報記憶部３３に記憶するパス情報のデータ構造の一例を示す説明図。
【図８】レポート出力手段２５の出力例を示す説明図。
【図９】従来のシステムＬＳＩの設計フローを示すフローチャート。
【符号の説明】
【００８６】
１  入力装置
２  データ処理装置
２１  パス段数抽出手段
２２  パス長抽出手段
２３  遅延難易度算出手段
２４  遅延予測手段
３  記憶装置
３１  ネットリスト記憶部
３２  配置記憶部
３３  パス情報記憶部
４  出力装置
【図１】
0004736822.tif 000002
【図２】
0004736822.tif 000003
【図３】
0004736822.tif 000004
【図４】
0004736822.tif 000005
【図５】
0004736822.tif 000006
【図６】
0004736822.tif 000007
【図７】
0004736822.tif 000008
【図８】
0004736822.tif 000009
【図９】
0004736822.tif 000010