Warning: fopen(data/log202007131921.log): failed to open stream: No space left on device in /home/jp321/public_html/header.php on line 106

Warning: flock() expects parameter 1 to be resource, boolean given in /home/jp321/public_html/header.php on line 107

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/jp321/public_html/header.php on line 112
半導体集積回路の設計方法 - エヌイーシーマイクロシステム株式会社
米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> エヌイーシーマイクロシステム株式会社

発明の名称 半導体集積回路の設計方法
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2003−16125(P2003−16125A)
公開日 平成15年1月17日(2003.1.17)
出願番号 特願2001−195435(P2001−195435)
出願日 平成13年6月27日(2001.6.27)
代理人 【識別番号】100082935
【弁理士】
【氏名又は名称】京本 直樹 (外2名)
【テーマコード(参考)】
5B046
5F064
【Fターム(参考)】
5B046 AA08 BA06 JA03 
5F064 BB26 DD02 DD03 DD04 DD14 DD24 EE02 EE03 EE08 EE47 EE54 FF09 HH06 HH10
発明者 小林 隆倉
要約 課題
階層化され直列接続された多段のバッファが挿入された論理回路においても、タイミングエラーの解消を確実に可能とする。

解決手段
タイミング調整ステップS4は、タイミングエラーパス中に存在する直列接続された複数のバッファのいくつかをバイパスさせるバイパス処理ステップS5を有する。バイパス処理ステップS5はエラーレポート読込ステップS51と、エラーパス内にバッファが存在するかを検索し、バイパス処理に必要な始点と終点を検索するバイパス範囲検索ステップS52と、ステップS52の検索結果、バッファが存在すればバイパス処理を実施するバイパス処理実施ステップS53とを有する。
特許請求の範囲
【請求項1】 大規模半導体集積回路(LSI)を構成する論理回路を複数のモジュールに分割して階層化設計を行う半導体集積回路の設計方法において、レイアウト後のタイミング検証において検出したタイミング制約を満足しないタイミングエラーを修正するため、前記タイミングエラーを有するパスであるタイミングエラーパス中に存在し階層化された前記モジュールを接続するための直列接続された複数のバッファのうちのいくつかをバイパスさせることにより、前記タイミングエラーの原因である遅延時間を低減させることを特徴とする半導体集積回路の設計方法。
【請求項2】 大規模半導体集積回路(LSI)を構成する論理回路を複数のモジュールに分割して階層化設計を行う半導体集積回路の設計方法において、レイアウトの対象とする前記論理回路のレイアウトを行うレイアウトステップと、前記レイアウト後にタイミング検証を行う第1のタイミング検証ステップと、タイミング検証ステップの結果、タイミングエラーの有無を判定し有の場合は後述のエラーレポートを出力して、次のタイミング調整ステップに進み、無の場合は検証を終了するタイミングエラー有無判定ステップとを有し、前記タイミング調整ステップが、タイミングエラーを有するパスであるタイミングエラーパス中に存在する直列接続された複数のバッファのいくつかをバイパスさせるバイパス処理ステップと、前記バッファの高駆動セルへの変更を行う高駆動セル変更ステップと、前記バイパス処理ステップと前記高駆動セル変更ステップの処理結果遅延時間が低減されタイミングエラーが解消したかの判定を行う遅延改善判定ステップと、前記遅延改善判定ステップで前記タイミングエラーが解消しない場合、バッファ挿入により遅延改善可能かの判定を行い遅延改善不可の場合は論理回路の再レイアウトを行う再レイアウトステップへ進むバッファ挿入遅延改善可能判定ステップと、前記バッファ挿入遅延改善可能判定ステップで遅延改善可の場合バッファを挿入するバッファ挿入ステップと、前記バッファ挿入ステップの後再度タイミング検証を行う第2のタイミング検証ステップと、前記第2のタイミング検証ステップの結果、タイミングエラーの有無を判定し有の場合は再レイアウトステップへ進み、無の場合は検証を終了するタイミングエラー有無判定ステップとを有することを特徴とする半導体集積回路の設計方法。
【請求項3】 前記バイパス処理ステップが、前記第1のタイミング検証ステップのタイミング検証結果として出力されたエラーレポートを読み込むエラーレポート読込ステップと、読み込んだ前記エラーレポートにおいて、エラーとなっているパス内にバッファが存在するかどうかを検索し、バイパス処理に必要な始点と終点を検索するバイパス範囲検索ステップと、前記バイパス範囲検索ステップの検索結果、バッファが存在すればバイパス処理を実施するバイパス処理実施ステップとを有することを特徴とする請求項2記載の半導体集積回路の設計方法。
【請求項4】 前記バイパス処理実施ステップが、前記エラーレポートに基づき、始点のセルと終点のセル及びそれらの間にあるバッファを含む各セルの座標を抽出するバッファ座標抽出ステップと、始点及び各セルの出力端子から終点の入力端子までの直線距離を算出する直線距離算出ステップと、前記直線距離算出ステップで算出した直線距離が最短となるセル同士を接続する最短セル接続ステップとを有することを特徴とする請求項2記載の半導体集積回路の設計方法。
【請求項5】 前記バイパス範囲検索ステップが、読み込んだ前記エラーレポートに記載されている最初のセルである前段セルのインスタンス名とセルタイプを格納する第1の前段セル情報格納ステップと、前記エラーレポートに記載されている次段セルについて同様にインスタンス名とセルタイプを格納する第1の次段セル情報格納ステップと、前記第1の前段セル情報格納ステップ及び前記第1の次段セル情報格納ステップで格納したセルがバッファであるかどうかを調べる第1のバッファ判定ステップと、前記第1のバッファ判定ステップで、バッファであれば前記前段セルを始点に設定する前段セル始点設定ステップと、前記第1のバッファ判定ステップで、バッファでない場合は最終段かどうかを判定し、最終段であれば終了とし、違う場合は前記第1の前段セル情報格納ステップに戻り、次のセルについて同様に検索していく最終段判定ステップと、前記前段セル始点設定ステップで前記前段セルを始点に設定した後、第2の次段セルを検索する第2の次段セル検索ステップと、前記第2の次段セル検索ステップで検索した前記第2の次段セルがバッファであるかどうかを調べる第2のバッファ判定ステップと、前記第2のバッファ判定ステップでバッファでないセルを検索した場合にそのセルを終点に設定するか、もしくは前記エラーレポートに記載されている最後のセルを終点に設定し、始点と終点の検索を終える現在セル終点設定ステップとを有することを特徴とする請求項3記載の半導体集積回路の設計方法。
【請求項6】 前記バイパス範囲検索ステップが、前記エラーパスの始点である始点セルを抽出しこの始点セルの座標を抽出する始点セル座標抽出ステップと、着目するセルを次段セルに移しこの次段セルを検索する次段セル検索ステップと、前記次段セルの座標を抽出する次段セル座標抽出ステップと、現在着目している現在セルに対する前段のセルである前段セルまでの直線距離を記憶する距離記憶ステップと、前記直線距離が最短であるかの判定を行い最短である最短距離である場合前記前段セルを最短セルとして次の終点判定ステップに進む最短距離判定ステップと、最短距離判定ステップで最短でない場合、前記現在セルの入力端子につながるネットを削除し、前記最短セルの出力ネットをつなげるネット接続変更ステップと、前記現在セルが終点であるかの判定を行う前記終点判定ステップとを有することを特徴とする請求項3記載の半導体集積回路の設計方法。
【請求項7】 前記バイパス範囲検索ステップが、前記エラーパスの始点セルAから終点セルまでの各セル間をバイパスさせた場合の第1の遅延時間とバイパス前の第2の遅延時間とを計算するバイパス時遅延計算ステップと、前記第1及び第2の遅延時間の差を計算し、その差が最も大きいものをバイパスさせるバイパス選択ステップとを有することを特徴とする請求項3記載の半導体集積回路の設計方法。
発明の詳細な説明
【0001】
【発明の属する技術分野】本発明は半導体集積回路の設計方法に関し、特に大規模半導体集積回路を構成する論理回路を複数のモジュールに分割して階層化設計を行う半導体集積回路の設計方法に関する。
【0002】
【従来の技術】大規模半導体集積回路(LSI)を設計する場合は、一般的にに、LSIを構成する論理回路をいくつかのモジュールに分割して階層化設計を行う。この場合、モジュール単位のボトムアップ設計を行うことにより、上位階層と下位階層とがバッファを介して接続される。また、一つのモジュールについても、ある入力信号が、そのモジュール内の多数のセルへ伝達する場合、つまり、その入力端子が、多数のセルと接続関係がある場合は、その入力端子にバッファリングをすることが一般的である。このため、トップ階層から下位階層を見た場合、バッファが直列に多数段挿入されることになる。
【0003】論理回路の階層化設計によるバッファの多段化の一例を部分回路図で示す図13を参照すると、この図に示す論理回路100は、最上位階層(以下第1階層)の下位の階層(以下第2階層)のモジュール110と、モジュール110の下位の階層(以下第3階層)のモジュール111とを有する。
【0004】第1階層の出力用のバッファB1は、第2階層のモジュール110の入力側のバッファB11に接続され、このバッファB11は第3階層のモジュール111の入力側のバッファB111に接続される。このように、3階層から成る論理回路では、第1階層の出力信号は、第3階層の各回路に入力するまで、少なくとも直列接続された3段のバッファB1,B11,B111を経由することになる。
【0005】従来、このようにバッファが直列に多段入っている回路でレイアウトを行い、レイアウト後のタイミング検証においてタイミング制約を満足しないタイミングエラーがあった場合、タイミングエラーを発生したパスを駆動するバッファの駆動能力を高くすることにより該当パスの遅延時間を低減するというものであった。
【0006】例えば、特許第2570595号公報記載の従来の第1の半導体集積回路の設計方法は、タイミングエラーを発生したパスを駆動するバッファを駆動能力の高いものに置換する高駆動能力バッファ置換法を行うというものであった。
【0007】また、特開平3−283665号公報記載の従来の第2の半導体集積回路の設計方法は、タイミングエラーを発生したパスを駆動する第1のバッファに対し予め準備した複数の予備バッファのうちの1つ又は2以上の予備バッファを並列接続するバッファ並列化法により駆動能力を高くするというものであった。
【0008】また、特開平7−311794号公報記載の従来の第3の半導体集積回路の設計方法は、従来の第1の技術の高駆動能力バッファ置換法と、従来の第2の技術のバッファ並列化法に加えて、当該着目セルと全負荷セルとの間にバッファセルを挿入してその出力駆動能力を増大するバッファ挿入法、及び当該着目セルと一部の負荷セルとの間にバッファセルを挿入することにより当該着目セルの負荷をバッファセルに置換して見かけ上の駆動能力を増大する部分負荷バッファ挿入法のいずれかを選択するというものであった。
【0009】しかし、これら従来の第1〜第3の半導体集積回路の設計方法では、タイミングエラーの発生条件によっては、必ずしも対応できるとは限らず、タイミングの改善ができるという目処がたたないという場合がしばしば発生するという問題があった。
【0010】この理由は、LSIの階層化された論理回路では、直列接続された多段のバッファが挿入されているので、信号が通過するセル数が多いことによりセル内部の遅延のみで、パスの始点から終点までのタイミング制約値に近い値になってしまうため、セル数を低減するということをしない限りタイミング制約を満足しない場合が多く発生するということによる。
【0011】しかしながら、厳密にタイミングエラーとなる段数がどれだけかということは分からず、また配線遅延の見積もりも微細化になるにつれ正確にできないため、レイアウト後のタイミング検証結果から判断するしかないのが実情であった。
【0012】
【発明が解決しようとする課題】上述した従来の第1〜第3の半導体集積回路の設計方法は、レイアウト後のタイミング検証においてタイミング制約を満足しないタイミングエラーがあった場合、タイミングエラーを発生したパスを駆動するバッファの駆動能力を高くすることにより該当パスの遅延時間を低減するというものであったが、階層化された論理回路では、直列接続された多段のバッファが挿入されているので、信号が通過するセル数が多くセル内部の遅延のみでタイミング制約値近傍の値となるため、バッファの高駆動能力化のみではタイミングエラー解消が不可能という場合がしばしば発生するという欠点があった。
【0013】本発明の目的は、階層化され直列接続された多段のバッファが挿入された論理回路においても、タイミングエラーの解消を確実に可能とする半導体集積回路の設計方法を提供することにある。
【0014】
【課題を解決するための手段】請求項1記載の発明の半導体集積回路の設計方法は、大規模半導体集積回路(LSI)を構成する論理回路を複数のモジュールに分割して階層化設計を行う半導体集積回路の設計方法において、レイアウト後のタイミング検証において検出したタイミング制約を満足しないタイミングエラーを修正するため、前記タイミングエラーを有するパスであるタイミングエラーパス中に存在し階層化された前記モジュールを接続するための直列接続された複数のバッファのうちのいくつかをバイパスさせることにより、前記タイミングエラーの原因である遅延時間を低減させることを特徴とするものである。
【0015】請求項2記載の発明の半導体集積回路の設計方法は、大規模半導体集積回路(LSI)を構成する論理回路を複数のモジュールに分割して階層化設計を行う半導体集積回路の設計方法において、レイアウトの対象とする前記論理回路のレイアウトを行うレイアウトステップと、前記レイアウト後にタイミング検証を行う第1のタイミング検証ステップと、タイミング検証ステップの結果、タイミングエラーの有無を判定し有の場合は後述のエラーレポートを出力して、次のタイミング調整ステップに進み、無の場合は検証を終了するタイミングエラー有無判定ステップとを有し、前記タイミング調整ステップが、タイミングエラーを有するパスであるタイミングエラーパス中に存在する直列接続された複数のバッファのいくつかをバイパスさせるバイパス処理ステップと、前記バッファの高駆動セルへの変更を行う高駆動セル変更ステップと、前記バイパス処理ステップと前記高駆動セル変更ステップの処理結果遅延時間が低減されタイミングエラーが解消したかの判定を行う遅延改善判定ステップと、前記遅延改善判定ステップで前記タイミングエラーが解消しない場合、バッファ挿入により遅延改善可能かの判定を行い遅延改善不可の場合は論理回路の再レイアウトを行う再レイアウトステップへ進むバッファ挿入遅延改善可能判定ステップと、前記バッファ挿入遅延改善可能判定ステップで遅延改善可の場合バッファを挿入するバッファ挿入ステップと、前記バッファ挿入ステップの後再度タイミング検証を行う第2のタイミング検証ステップと、前記第2のタイミング検証ステップの結果、タイミングエラーの有無を判定し有の場合は再レイアウトステップへ進み、無の場合は検証を終了するタイミングエラー有無判定ステップとを有することを特徴とするものである。
【0016】また、請求項3記載の発明は、請求項2記載の半導体集積回路の設計方法において、前記バイパス処理ステップが、前記第1のタイミング検証ステップのタイミング検証結果として出力されたエラーレポートを読み込むエラーレポート読込ステップと、読み込んだ前記エラーレポートにおいて、エラーとなっているパス内にバッファが存在するかどうかを検索し、バイパス処理に必要な始点と終点を検索するバイパス範囲検索ステップと、前記バイパス範囲検索ステップの検索結果、バッファが存在すればバイパス処理を実施するバイパス処理実施ステップとを有することを特徴とするものである。
【0017】また、請求項4記載の発明は、請求項2記載の半導体集積回路の設計方法において、前記バイパス処理実施ステップが、前記エラーレポートに基づき、始点のセルと終点のセル及びそれらの間にあるバッファを含む各セルの座標を抽出するバッファ座標抽出ステップと、始点及び各セルの出力端子から終点の入力端子までの直線距離を算出する直線距離算出ステップと、前記直線距離算出ステップで算出した直線距離が最短となるセル同士を接続する最短セル接続ステップとを有することを特徴とするものである。
【0018】また、請求項5記載の発明は、請求項3記載の半導体集積回路の設計方法において、前記バイパス範囲検索ステップが、読み込んだ前記エラーレポートに記載されている最初のセルである前段セルのインスタンス名とセルタイプを格納する第1の前段セル情報格納ステップと、前記エラーレポートに記載されている次段セルについて同様にインスタンス名とセルタイプを格納する第1の次段セル情報格納ステップと、前記第1の前段セル情報格納ステップ及び前記第1の次段セル情報格納ステップで格納したセルがバッファであるかどうかを調べる第1のバッファ判定ステップと、前記第1のバッファ判定ステップで、バッファであれば前記前段セルを始点に設定する前段セル始点設定ステップと、前記第1のバッファ判定ステップで、バッファでない場合は最終段かどうかを判定し、最終段であれば終了とし、違う場合は前記第1の前段セル情報格納ステップに戻り、次のセルについて同様に検索していく最終段判定ステップと、前記前段セル始点設定ステップで前記前段セルを始点に設定した後、第2の次段セルを検索する第2の次段セル検索ステップと、前記第2の次段セル検索ステップで検索した前記第2の次段セルがバッファであるかどうかを調べる第2のバッファ判定ステップと、前記第2のバッファ判定ステップでバッファでないセルを検索した場合にそのセルを終点に設定するか、もしくは前記エラーレポートに記載されている最後のセルを終点に設定し、始点と終点の検索を終える現在セル終点設定ステップとを有することを特徴とするものである。
【0019】また、請求項6記載の発明は、請求項3記載の半導体集積回路の設計方法において、前記バイパス範囲検索ステップが、前記エラーパスの始点である始点セルを抽出しこの始点セルの座標を抽出する始点セル座標抽出ステップと、着目するセルを次段セルに移しこの次段セルを検索する次段セル検索ステップと、前記次段セルの座標を抽出する次段セル座標抽出ステップと、現在着目している現在セルに対する前段のセルである前段セルまでの直線距離を記憶する距離記憶ステップと、前記直線距離が最短であるかの判定を行い最短である最短距離である場合前記前段セルを最短セルとして次の終点判定ステップに進む最短距離判定ステップと、最短距離判定ステップで最短でない場合、前記現在セルの入力端子につながるネットを削除し、前記最短セルの出力ネットをつなげるネット接続変更ステップと、前記現在セルが終点であるかの判定を行う前記終点判定ステップとを有することを特徴とするものである。
【0020】また、請求項7記載の発明は、請求項3記載の半導体集積回路の設計方法において、前記バイパス範囲検索ステップが、前記エラーパスの始点セルAから終点セルまでの各セル間をバイパスさせた場合の第1の遅延時間とバイパス前の第2の遅延時間とを計算するバイパス時遅延計算ステップと、前記第1及び第2の遅延時間の差を計算し、その差が最も大きいものをバイパスさせるバイパス選択ステップとを特徴とするものである。
【0021】
【発明の実施の形態】次に、本発明の実施の形態について図面を参照して詳細に説明する。
【0022】本実施の形態の半導体集積回路の設計方法は、大規模半導体集積回路(LSI)を構成する論理回路を複数のモジュールに分割して階層化設計を行う半導体集積回路の設計方法において、レイアウト後のタイミング検証において検出したタイミング制約を満足しないタイミングエラーを修正するため、上記タイミングエラーを有するパスであるタイミングエラーパス中に存在し階層化された上記モジュールを接続するための直列接続された複数のバッファのうちのいくつかをバイパスさせることにより、上記タイミングエラーの原因である遅延時間を低減させることを特徴とするものである。
【0023】これはレイアウト結果に対して、冗長なパスへの接続をカットさせることであり、従って、回路の再合成を行うことなくタイミング調整を容易にするという効果が得られる。
【0024】次に、本発明の実施の形態をフローチャートで示す図1を参照すると、この図に示す本実施の形態の半導体集積回路の設計方法は、レイアウトの対象とする論理回路のレイアウトを行うレイアウトステップS1と、レイアウト後にタイミング検証を行うタイミング検証ステップS2と、タイミング検証ステップS2の結果、タイミングエラーの有無を判定し有の場合は後述のエラーレポートF1を出力し、次のタイミング調整ステップS4に進み、無の場合は検証を終了するタイミングエラー有無判定ステップS3とを有する。
【0025】タイミング調整ステップS4は、本実施の形態を特徴付けるタイミングエラーパス中に存在する直列接続された複数のバッファのいくつかをバイパスさせるバイパス処理ステップS5と、バッファの高駆動セルへの変更を行う高駆動セル変更ステップS41と、ステップS5,S41の処理結果遅延時間が低減されタイミングエラーが解消したかの判定を行う遅延改善判定ステップS42と、遅延改善判定ステップS42でタイミングエラーが解消しない(No)場合、バッファ挿入により遅延改善可能かの判定を行い遅延改善不可(No)の場合は論理回路の再レイアウトを行う再レイアウトステップS47へ進むバッファ挿入遅延改善可能判定ステップS43と、ステップS43で遅延改善可(Yes)の場合バッファを挿入するバッファ挿入ステップS44と、ステップS44の後再度タイミング検証を行うタイミング検証ステップS45と、ステップS45の結果、タイミングエラーの有無を判定し有の場合は再レイアウトステップS47へ進み、無の場合は検証を終了するタイミングエラー有無判定ステップS46とを有する。
【0026】バイパス処理ステップS5の処理をフローチャートで示す図2を参照すると、このバイパス処理ステップS5は、タイミング検証ステップS2のタイミング検証結果として出力されたエラーレポートF1を読み込むエラーレポート読込ステップS51と、読み込んだエラーレポートF1において、エラーとなっているパス内にバッファが存在するかどうかを検索し、バイパス処理に必要な始点と終点を検索するバイパス範囲検索ステップS52と、ステップS52の検索結果、バッファが存在すればバイパス処理を実施するバイパス処理実施ステップS53とを有する。
【0027】エラーレポートF1の内容の一例をテーブル形式で示す図7を参照すると、このエラーレポートF1は、始点セルから終点セルまでの各セル間の遅延時間やトータルの遅延時間を記載したものである。
【0028】バイパス範囲検索ステップS52の詳細フローをフローチャートで示す図3を参照すると、このステップS52は、読み込んだエラーレポートF1に記載されている最初のセルのインスタンス名とセルタイプを格納するセル情報格納ステップS521と、エラーレポートF1に記載されている次段セルについて同様にインスタンス名とセルタイプを格納する次段セル情報格納ステップS522と、ステップS521,S522で格納したセルがバッファであるかどうかを調べるバッファ判定ステップS523と、ステップS523で、バッファであれば前段のセルを始点に設定する前段セル始点設定ステップS525と、ステップS523で、バッファでない場合は最終段かどうかを判定し、最終段であれば終了(END)とし、違う場合はステップS521に戻り、次のセルについて同様に検索していく最終段判定ステップS524と、ステップS525で前段セルを始点に設定した後、次の次段セルを検索する次段セル検索ステップS526と、次段セル検索ステップS526で検索したセルがバッファであるかどうかを調べるバッファ判定ステップS527と、ステップS527でバッファでないセルを検索した場合にそのセルを終点に設定するか、もしくはエラーレポートF1に記載されている最後のセルを終点に設定し、始点と終点の検索を終える現在セル終点設定ステップS528とを有する。
【0029】バイパス処理実施ステップS53の詳細フローをフローチャートで示す図4を参照すると、エラーレポートF1に基づき、始点のセルと終点のセル及びそれらの間にあるバッファを含む各セルの座標を抽出するセル座標抽出ステップS531と、始点及び各セルの出力端子から終点の入力端子までの直線距離を算出する直線距離算出ステップS532と、ステップS532で算出した直線距離が最短となるセル同士を接続する最短セル接続ステップS533とを有する。
【0030】次に、図1、図2、図3及び図4を参照して本実施の形態の動作について説明すると、まず、レイアウトの対象とする論理回路のレイアウトを行い(ステップS1)、このレイアウト後にタイミング検証を行う(ステップS2)。タイミング検証結果、タイミングエラーの有無を判定しタイミングエラーがあった場合はエラーレポートF1を出力し、次のタイミング調整ステップS4に進む。
【0031】タイミング調整ステップS4では、まず、バイパス処理を行う(ステップS5)。
【0032】バイパス処理ステップS5では、まずタイミング検証結果として出力されたエラーレポートF1を読み込む(ステップS51)。次に、読み込んだエラーレポートF1において、エラーとなっているパス内にバッファが存在するかどうかを検索し、バイパス処理に必要な始点と終点を検索する(ステップS52)。そしてバッファが存在すればバイパス処理を実施する(ステップS53)。
【0033】バイパス範囲検索ステップS52では、まず、ステップS521にて読み込んだエラーレポートF1に記載されている最初のセルのインスタンス名とセルタイプを格納する。次に、ステップS522で、エラーレポートF1に記載されている次段セルについて同様にインスタンス名とセルタイプを格納する。ここで格納したセルがバッファであるかどうかを調べ(ステップS523)、バッファであれば前段のセルを始点に設定する(ステップS525)。バッファでない場合は最終段かどうかを判定し(ステップS524)、最終段であれば終了となる。ステップS524で、最終段でない場合は、最初(ステップS521)に戻り、次のセルについて同様に検索していく。一度バッファを検索した場合は、前段セルを始点に設定した後(ステップS525)、次段セルを検索し(ステップS526)、ステップS527でバッファでないセルを検索した場合にそのセルを終点に設定するか、もしくはエラーレポートF1に記載されている最後のセルを終点に設定し(ステップS528)、始点と終点の検索を終える。
【0034】以上のステップS52により検索した始点と終点に基づき、実際のバイパス処理実施ステップS53に進む。
【0035】バイパス処理実施ステップS53は、始点のセルと終点のセル及びそれらの間にある各セルの座標を抽出し(ステップS531)、始点及び各バッファの出力端子から終点の入力端子までの直線距離を算出し(ステップS532)、その距離が最短となるセル同士を接続する(ステップS533)。
【0036】バイパス処理ステップS5の後、さらに、高駆動セルへの変更(高駆動セル変更ステップS41)を経て遅延を改善できたかどうかの判定を行う(遅延改善判定ステップS42)。ステップS42で、遅延改善できたと判定した場合には、再びタイミング検証を行う(タイミング検証ステップS45)。また、ステップS42で、遅延改善ができていないと判定した場合には、バッファ挿入が有効かどうかを判定し(バッファ挿入遅延改善可能判定ステップS43)、有効と判定すればバッファ挿入を行い(バッファ挿入ステップS44)、再度タイミング検証を行う(タイミング検証ステップS45)。バッファ挿入が有効でないと判定した場合や、再度実施したタイミング検証結果においてタイミング検証結果、タイミングエラーが残ってしまった場合には、論理回路の再レイアウトを実施する(再レイアウトステップS47)。
【0037】レイアウト後のタイミング検証結果によりタイミングエラーとして検出されたパスであるエラーパスのレイアウトイメージの例を示す図5を参照すると、この図には最上位の第1階層である論理回路1は、下位の階層である第2階層のモジュール2,3,4を有し、モジュール3はさらに下位の第3階層のモジュール31,32を有する。また、モジュール32は、セルE,Fを有する。
【0038】モジュール2は、出力バッファを含むセルAを有し、セルAの出力は論理回路1内のバッファであるセルBに接続される。セルBの出力は、モジュール4の入力バッファと、モジュール3の入力バッファであるセルCに接続される。セルCの出力はモジュール31と、モジュール32の入力バッファであるセルDに接続される。セルDの出力は、セルE,Fの入力に接続される。
【0039】図5のエラーパスのみを抽出してこのエラーパスを構成する各セルの接続関係及び位置(座標)関係をレイアウト図で示す図6を参照すると、このエラーパスは、セルA、セルB、セルC、セルD、セルE,Fの順に接続されている。
【0040】図5及び図6を併せて参照して本実施の形態のバイパス処理ステップS5の動作を具体的に説明すると、エラーレポートF1の読込(ステップS51)後、バイパス範囲検索ステップS52のフローに従って、まずバイパス可能な範囲を検索する。
【0041】ステップS521で、セルAのセルタイプとインスタンス名を格納し、次段セルBのセルタイプがバッファであるかどうかを調べる(ステップS522、S523)。セルBはバッファであるため、前段セルAを始点に設定し(ステップS525)、さらに次段セルCについてセルタイプがバッファであるかどうかを調べる。セルCはバッファであるため、さらに次段セルDについてセルタイプがバッファであるかどうかを調べる。セルDもバッファであるため、さらに次段のセルEについてセルタイプがバッファであるかどうかを調べる(ステップS526、S527)。セルEはバッファではないため、セルEを終点に設定し(ステップS528)、ここでバッファを通るパスの検索が終了する。
【0042】バイパス範囲抽出ステップS52が終了したため、次にバイパス処理実施ステップS53を行う。バイパス処理実施ステップS53は、まず、セルAからセルEまでの各セルの座標を抽出する(ステップS531)。各セルの座標の抽出後、各セル間の直線距離を算出する(ステップS532)。
【0043】本実施の形態のバイパス処理実施の一例を説明図で示す図8を参照すると、この図に示すように、セルAからセルE、セルBからセルE、セルCからセルE、セルDからセルEまでのそれぞれの直線距離D1,D2,D3,D4をそれぞれ算出する。それらの算出結果より、距離が最短となるのはセルAからセルE間の直線距離D1であり、この結果、セルAとセルEとを接続させ、セルA→セルB→セルC→セルD→セルEという接続関係が、セルA→セルEという接続関係となる(ステップS533)。これでバイパス処理が終了する。
【0044】エラーレポートF1の内容をテーブル形式で示す図7を参照すると、このエラーレポートF1は、対象パスの遅延計算の区分であるステップ、始点から該当ステップまでの全(トータル)遅延(ns)、各ステップの遅延(ns)、各ステップの入力、出力、対応するセル名、セルのタイプの各欄を有する。この例では、ステップ1(始点)のセルA,ステップ2のセルB,ステップ3のセルC,ステップ4のセルD,ステップ5(終点)のセルEを示し、セルA,セルEのタイプはAND、セルB,セルC,セルDのタイプはバッファ、ステップ1,2(セルA,B)間の遅延は1.00ns、ステップ2,3(セルB,C)間の遅延は0.50ns、ステップ3,4(セルC,D)間の遅延は0.50ns、ステップ4,5(セルD,E)間の遅延は1.50ns、ステップ2までの全遅延は1.00ns、ステップ3までの全遅延は1.50ns、ステップ4までの全遅延は2.00ns、ステップ5までの全遅延は3.50nsであること等を示す。
【0045】この場合、信号経路をA→E(=D1)へと短縮することで、このセルA,E間の距離D1はセルA,B間の距離D2よりも明らかに短いので、余裕をみてこのセルA,B間の遅延時間1.00nsを採用すると、セルA,E間の遅延時間が1.00ns+αとなり(αはAの出力側負荷容量の増加分)、バイパス処理前の全遅延3.50nsを1.00ns+αに改善することができる。
【0046】次に、本発明の第2の実施の形態を特徴付けるバイパス範囲抽出ステップS55をフローチャートで示す図9を参照すると、この図に示す本実施の形態の前述の第1の実施の形態のバイパス範囲抽出ステップS52との相違点は、バイパスさせる範囲として終点を基準とせずに、始点セルと終点セルの間に位置する各バッファ間でのバイパスを可能とする工夫をしていることである。
【0047】図9及び本実施の形態のバイパス範囲抽出ステップS55の各ループ処理に対応する処理結果をそれぞれレイアウト図で示す図10を参照して、本実施の形態の動作について説明すると、説明の便宜上、図10(A)においてエラーパスを、セルA→セルB→セルC→セルD→セルG→セルEとする。
【0048】まず、エラーレポートF1から、エラーパスの始点である始点セルAを抽出し、この始点セルAの座標を抽出する(始点セル座標抽出ステップS551)。次に、着目するセルを次段セルBに移し(次段セル検索ステップS552)、そのセルの座標を抽出する(次段セル座標抽出ステップS553)。ここで現在着目しているセルBと、始点セルA以外に座標を抽出したセルがないため、図10(B)に示すように、着目しているセルBに対する前段のセル、つまり始点セルAまでの直線距離が最短となり、始点セルAが最短セルとなる(距離記憶ステップS554,最短距離判定ステップS555)。以上が第1ループの処理である。
【0049】セルBは終点ではないため(終点判定ステップS557)、第2ループの処理として、次段セルCの検索へ移る(ステップS552)。着目するセルをセルCへ移し、セルCの座標を抽出する(ステップS553)。セルCと始点Aとの間の直線距離と、セルCとセルBとの間の直線距離とを比較すると、セルCとセルBとの間の直線距離の方が短く、セルBはセルCにとって前段のセルになるため(ステップS554,S555)、また、セルCが終点ではないため(ステップS557)、第3ループの処理として、次段セルDの検索へ移る(ステップS552)。着目するセルをセルDへ移し、セルDの座標を抽出する(ステップS553)。
【0050】セルDと始点A、セルDとセルB、セルDとセルCのそれぞれの直線距離を求め、それらの内、距離が最短であるのはセルDとセルCの組合わせであり、セルCはセルDにとって前段のセルであるため(ステップS554,S555)、またセルDは終点ではないため(ステップS557)、第4ループの処理として、次段セルGの検索へ移る(ステップS552)。
【0051】着目するセルをセルGへ移し、セルGの座標を抽出する(ステップS553)。セルGと始点A、セルGとセルB、セルGとセルC、セルGとセルDのそれぞれの直線距離D1,D2,D3,D4を求め、それらの内で距離が最短であるのはセルGとセルAの組合わせ対応の直線距離D1であり(図10(C))、セルAはセルGの前段ではない(ステップS554,S555)、従ってセルAが最短セルとなる。
【0052】着目しているセルGの入力端子につながるネットを削除し、最短セルAの出力ネットをつなげる(ネット接続変更ステップS556)。
【0053】これによりバイパスが出来上がる。セルGは終点ではないため(ステップS557)、第5(最終)ループの処理として、次段セルEの検索へ移るが(ステップS552)、図10(D)に示すように、セルEと最短距離D5にあるセルはGであり(ステップS553,S554,S555)、セルEは終点であるため、バイパス範囲抽出ステップS55が終了する。
【0054】次に、本発明の第3の実施の形態を特徴付けるバイパス範囲抽出ステップS56をフローチャートで示す図11を参照すると、この図に示す本実施の形態の前述の第1及び第2の実施の形態の各々のバイパス範囲抽出ステップS52及びS55との相違点は、直線距離を比較する代わりに、遅延時間を比較することである。
【0055】図11を参照して本実施の形態の動作について説明すると、ここでは、説明の便宜上、タイミング検証結果により検出されたエラーパスのレイアウトイメージは図5に示す第1の実施の形態の場合と同一とする。まず、始点セルAから終点セルEまでの各セル間をバイパスさせた場合及びバイパスさせない場合の各遅延時間を計算する(バイパス時遅延計算ステップS561)。すなわち、セルAとセルC間、セルAとセルD間、セルAとセルE間、セルBとセルD間、セルBとセルE間、セルCとセルE間の各遅延時間を見積もる。
【0056】これらについてバイパス前後の差を計算し、その差が最も大きいものをバイパスさせる(バイパス選択ステップS562)。例えばセルAとセルC間のバイパスを考えた場合、バイパス前の遅延はセルAとセルB間の遅延+セルBの内部遅延+セルBとセルC間の遅延であり、バイパス後の遅延はセルAとセルC間の見積もり遅延となる。
【0057】ここで、バイパス後の遅延からバイパス前の遅延を引いた計算結果が正の場合は遅延改善ができていないことになるため、そのバイパスの組合わせについては対象外となる。
【0058】なお、バイパスを行う際に、バイパス実施後の配線の長さが、予め設定した配線長以上になる場合は、バイパス経路にバッファリングさせる。そのため、バイパス後の遅延を見積もる際には、図12に示すように、バッファであるセルHを追加し、このバッファリングを考慮して計算する。
【0059】
【発明の効果】以上説明したように、本発明の半導体集積回路の設計方法は、レイアウト後のタイミング検証において検出したタイミング制約を満足しないタイミングエラーを修正するため、上記タイミングエラーを有するパスであるタイミングエラーパス中に存在し階層化されたモジュールを接続するための直列接続された複数のバッファのうちのいくつかをバイパスさせることにより、冗長なパスへの接続をカットさせるので、論理回路の再レイアウト行うことなくタイミング調整を容易になし得るという効果がある。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013