(57)【要約】論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善する。まず電子回路設計におけるタイミング検証結果から得られた遅延不足及び遅延オーバーの余裕を表すスラック情報を入力する。次に、タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを置き換えても、置き換えたセルを通る他の経路がタイミングエラーを起さないセルを対象候補として検索する。そして対象候補として検索されたセルをタイミング制約を満たすセルに置き換え、タイミングエラーを解消する。更にエラーパス上のネットから複数の指定条件で絞り込んだネットを候補として検索し、太線化してタイミングを改善する。
2004046975.tif 000002
【特許請求の範囲】
【請求項１】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング改善方法に於いて、
入力部により、前記電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する入力ステップと、
セル検索部により、タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起さないセルを交換候補として検索するセル検索ステップと、
セル置換部により、交換候補として検索されたセルをタイミング制約を満たすセルに置き換えるセル置換ステップと、
を備えたことを特徴とするタイミング改善方法。
【請求項２】
請求の範囲１のタイミング改善方法に於いて、
前記入力ステップは、電子回路設計におけるタイミング検証結果から得られたセットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
前記セル検索ステップは、遅延オーバーによるセットアップタイムエラーを起こしている経路について、全てのピンのホールドタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
前記セル交換ステップは、交換候補として検索されたセルを遅延時間の小さなセルに置き換えることを特徴とするタイミング改善方法。
【請求項３】
請求の範囲１のタイミング改善方法に於いて、
前記入力ステップは、セットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
前記セル検索ステップは、遅延不足によるホールドタイムエラーを起こしている経路について、全てのピンのセットアップタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
前記セル交換ステップは、交換候補として検索されたセルを遅延時間の大きなセルに置き換えることを特徴とするタイミング改善方法。
【請求項４】
請求の範囲１のタイミング改善方法に於いて、前記ネット検索ステップは、交換候補として検索されたセルの遅延パラメータを交換後のセルの値に変更した後にネットディレイを仮計算してタイミングエラーを判定し、タイミングエラーを起こさない場合に交換候補に決定することを特徴とするタイミング改善方法。
【請求項５】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング改善方法に於いて、
入力部により、前記電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
ネット検索部により、遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、前記スラック値が正となるピンをもち且つ所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化部により、太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を備えたことを特徴とするタイミング改善方法。
【請求項６】
請求の範囲５のタイミング改善方法に於いて、前記ネット検索ステップは、前記指定条件を満たすネットとして、ネット配線長とドライバ駆動能力が指定された値以上のネットを太線化候補として検索することを特徴とするタイミング改善方法。
【請求項７】
請求の範囲５のタイミング改善方法に於いて、前記ネット検索ステップは、太線化候補として検索したネットの線路容量と線路抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、セットアップタイムエラーが解消されたネットを太線化候補に決定することを特徴とするタイミング改善方法。
【請求項８】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング改善方法に於いて、
入力部により、前記電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
ネット検索部により、遅延オーバーによるセットアップタイムエラーを起こしているパス上の全てのネットの中から、所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化部により、太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を備えたことを特徴とするタイミング改善方法。
【請求項９】
請求の範囲８のタイミング改善方法に於いて、前記ネット検索ステップは、セットアップタイムエラーを起こしているネットの中から、ネット配線長、ドライバ駆動能力、ネットディレイ、レシーバ側の波形鈍り及びファンアウト数が指定された値より大きいネットを太線化候補として検索することを特徴とするタイミング改善方法。
【請求項１０】
請求の範囲８のタイミング改善方法に於いて、前記ネット検索ステップは、セットアップタイムエラーを起こしているネットの中から、遅延時間の大きな上位のワーストパスを所定数選択して太線化候補の検索を繰り返すことを特徴とするタイミング改善方法。
【請求項１１】
請求の範囲８のタイミング改善方法に於いて、前記ネット検索ステップは、太線化候補として検索されたネットの線路容量と線路抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、セットアップタイムエラーが解消されたネットを太線化候補に決定することを特徴とするタイミング改善方法。
【請求項１２】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善するプログラムに於いて、コンピュータに、
前記電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する入力ステップと。
タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起さないセルを交換候補として検索するセル検索ステップと、
交換候補として検索されたセルをタイミング制約を満たすセルに置き換えるセル置換ステップと、
を実行させることを特徴とするプログラム。
【請求項１３】
請求の範囲１２のプログラムに於いて、
前記入力ステップは、電子回路設計におけるタイミング検証結果から得られたセットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
前記セル検索ステップは、遅延オーバーによるセットアップタイムエラーを起こしている経路について、全てのピンのホールドタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
前記セル交換ステップは、交換候補として検索されたセルを遅延時間の大きなセルに置き換えることを特徴とするプログラム。
【請求項１４】
請求の範囲１２のプログラムに於いて、
前記入力ステップは、セットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
前記セル検索ステップは、遅延不足によるホールドタイムエラーを起こしている経路について、全てのピンのセットアップタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
前記セル交換ステップは、交換候補として検索されたセルを遅延時間の小さなセルに置き換えることを特徴とするプログラム。
【請求項１５】
請求の範囲１２のプログラムに於いて、前記ネット検索ステップは、交換候補として検索されたセルの遅延パラメータを交換後のセルの値に変更した後にネットおよびゲートのディレイを仮計算してタイミングエラーを判定し、タイミングエラーを起こさない場合に交換候補に決定することを特徴とするプログラム。
【請求項１６】
論理設計、セル配置及び配線が済んだ電子回路設計のタイミングを改善するプログラムに於いて、コンピュータに、
前記電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、前記スラック値が正となるピンをもち且つ所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を実行させることを特徴とするプログラム。
【請求項１７】
請求の範囲１６のプログラムに於いて、前記ネット検索ステップは、前記指定条件を満たすネットとして、ネット配線長とドライバ駆動能力が指定された値以上のネットを太線化候補として検索することを特徴とするプログラム。
【請求項１８】
請求の範囲１６のプログラムに於いて、前記ネット検索ステップは、太線化候補として検索したネットの配線容量と配線抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、セットアップタイムエラーが解消されたネットを太線化候補に決定することを特徴とするプログラム。
【請求項１９】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善するプログラムに於いて、コンピュータに、
前記電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
遅延オーバーによるセットアップタイムエラーを起こしているパス上の全てのネットの中から、所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を備えたことを特徴とするプログラム。
【請求項２０】
請求の範囲１９のプログラムに於いて、前記ネット検索ステップは、セットアップタイムエラーを起こしているネットの中から、ネット配線長、ドライバ駆動能力、ネットディレイ、レシーバ側の波形鈍り及びファンアウト数が指定された値より小さいネットを太線化候補として検索することを特徴とするプログラム。
【請求項２１】
請求の範囲１９のプログラムに於いて、前記ネット検索ステップは、セットアップタイムエラーを起こしているネットの中から、遅延時間の大きな上位のワーストパスを所定数選択して太線化候補の検索を繰り返すことを特徴とするプログラム。
【請求項２２】
請求の範囲１９のプログラムに於いて、前記ネット検索ステップは、太線化候補として検索されたネットの配線容量と配線抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、セットアップタイムエラーが解消されたネットを太線化候補に決定することを特徴とするプログラム。
【請求項２３】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善するための装置に於いて、
、前記電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する入力部と、
タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起さないセルを交換候補として検索するセル検索プと、
交換候補として検索されたセルをタイミング制約を満たすセルに置き換えるセル置換部と、
を備えたことを特徴とする装置。
【請求項２４】
請求の範囲２３の装置に於いて、
前記入力部は、電子回路設計におけるタイミング検証結果から得られたセットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
前記セル検索部は、遅延オーバーによるセットアップタイムエラーを起こしている経路について、全てのピンのホールドタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
前記セル交換部は、交換候補として検索されたセルを遅延時間の小さなセルに置き換えることを特徴とする装置。
【請求項２５】
請求の範囲２３の装置に於いて、
前記入力部は、セットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
前記セル検索部は、遅延不足によるホールドタイムエラーを起こしている経路について、全てのピンのセットアップタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
前記セル交換部は、交換候補として検索されたセルを遅延時間の大きなセルに置き換えることを特徴とする装置。
【請求項２６】
請求の範囲２３の装置に於いて、前記ネット検索部は、交換候補として検索されたセルの遅延パラメータを交換後のセルの値に変更した後にネットディレイを仮計算してタイミングエラーを判定し、タイミングエラーを起こさない場合に交換候補に決定することを特徴とする装置。
【請求項２７】
論理設計、セル配置及び配線が済んだ電子回路設計のタイミングを改善する装置に於いて、
前記電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力部と、
遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、前記スラック値が負となるピンをもち且つ所定の指定条件を満たすネットを太線化候補として検索するネット検索部と、
太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化部と、
を備えたことを特徴とする装置。
【請求項２８】
請求の範囲２７の装置に於いて、前記ネット検索ステップは、前記指定条件を満たすネットとして、ネット配線長とドライバ駆動能力が指定された値以上のネットを太線化候補として検索することを特徴とする装置。
【請求項２９】
請求の範囲２７の装置に於いて、前記ネット検索ステップは、太線化候補として検索したネットの線路容量と線路抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、セットアップタイムエラーが解消されたネットを太線化候補に決定することを特徴とする装置。
【請求項３０】
論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善する装置に於いて、
前記電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力部と、
遅延オーバーによるセットアップタイムエラーを起こしているパス上の全てのネットの中から、所定の指定条件を満たすネットを太線化候補として検索するネット検索部と、
太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化部と、
を備えたことを特徴とする装置。
【請求項３１】
請求の範囲３０の装置に於いて、前記ネット検索部は、セットアップタイムエラーを起こしているネットの中から、ネット配線長、ドライバ駆動能力、ネットディレイ、レシーバ側の波形鈍り及びファンアウト数が指定された値より大きいネットを太線化候補として検索することを特徴とする装置。
【請求項３２】
請求の範囲３０の装置に於いて、前記ネット検索部は、セットアップタイムエラーを起こしているネットの中から、遅延時間の大きな上位のワーストパスを所定数選択して太線化候補の検索を繰り返すことを特徴とする装置。
【請求項３３】
請求の範囲３０の装置に於いて、前記ネット検索部は、太線化候補として検索されたネットの配線容量と配線抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、セットアップタイムエラーが解消されたネットを太線化候補に決定することを特徴とする装置。
【発明の詳細な説明】
【技術分野】  本発明は、コンピュータ支援により自動設計されたＬＳＩやＶＬＳＩの電子回路設計のタイミング改善方法、プログラム及び装置に関し、特に、論理設計、セル配置及び配線処理の済んだ電子回路設計に対しタイミングエラーをチェックして改善する電子回路設計のタイミング改善方法、プログラム及び装置に関する。
【背景技術】  従来、ＬＳＩやＶＬＳＩのコンピュータ支援による自動電子回路設計にあっては、論理設計、セル配置及び配線処理が済んだ段階で、自動作成された電子回路設計のタイミング解析を行い、解析結果を分析している。
このタイミング解析結果の分析にあっては、タイミング条件を満たしていない経路、例えばレーシングエラーもしくはオーバーディレイエラーを起こしている経路が見つかった場合、その経路上に存在するセルの中のエラー原因となっているセルを特定し、タイミング条件を満たすようセルを交換する必要がある。
しかしながら、従来のタイミング解析結果の分析にあっては、タイミング条件を満たしていない経路上に存在するセルを特定することはできるが、その経路上のどのセルを交換すればタイミングを改善できるかがわからないという問題がある。このためタイミング条件を満たしていない経路上のセルを無作為に選択して交換することになるが、交換したセルを通過する別の経路がタイミングエラーを起こすことがあり、回路全体のタイミング制約を満たすまでに何回もセル交換とタイミング解析の試行を繰り返す必要があり、タイミング改善の処理負担が大きく時間もかかる問題があった。
【発明の開示】
本発明は、タイミング検証の結果として得られるセルのスラック情報を利用してタイミング条件を満たしていないセルやネットを特定して変更することで効率良くタイミングエラーを解消可能なタイミング改善方法、プログラム及び装置を提供することを目的とする。
（セル最適化）
本発明は、論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング改善方法に於いて、
入力部により、電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する入力ステップと、
セル検索部により、タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起さないセルを交換候補として検索するセル検索ステップと、
セル置換部により、交換候補として検索されたセルをタイミング制約を満たすセルに置き換えるセル置換ステップと、
を備えたことを特徴とする。
このように本発明は、タイミング制約を満たさない経路上のセルのピンのスラック情報に着目してセルを置き換えることで、セルの置き換えによって最初に着目したタイミング制約を満たさない経路のタイミングエラーが改善され、且つ置き換えたセルを通る他の経路についてもタイミングエラーを起こすことがなく、電子回路設計の最終段階でのタイミングエラーを効率よく改善することができる。
ここでレーシングエラーに含まれるホールドタイムエラーを改善するセル最適化のため、
入力ステップは、電子回路設計におけるタイミング検証結果から得られたセットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
セル検索ステップは、遅延不足によるホールドタイムエラーを起こしている経路について、全てのピンのセットアップタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
セル交換ステップは、交換候補として検索されたセルを遅延時間の大きなセルに置き換える。
またオーバーディレイエラーに含まれるセットアップタイムエラーを改善するセル最適化のため、
入力ステップは、セットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力し、
セル検索ステップは、遅延オーバーによるセットアップタイムエラーを起こしている経路について、全てのピンのホールドタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索し、
セル交換ステップは、交換候補として検索されたセルを遅延時間の小さなセルに置き換えることを特徴とする。
またネット検索ステップは、交換候補として検索されたセルの遅延パラメータを交換後のセルの値に変更した後にネットディレイを仮計算してタイミングエラーを判定し、タイミングエラーを起こさない場合に交換候補に決定する。
このように候補として検索されたセルに対し検証を繰り返すことで、最も必要とされる回路のみを改善することが可能となる。またセル置き換えの検証を、論理が同じで遅延の異なるセルパラメータのライブラリを用意することで、実際にセルを置き換えることなくディレイ計算を可能とし、同時に出力される変更マクロ情報を基に、最終的に論理変更、セル配置及び配線処理を行う。
（ネット太線化その１）
本発明は、論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング改善方法に於いて、
入力部により、電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
ネット検索部により、遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、スラック値が正となるピンをもち且つ所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化部により、太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を備えたことを特徴とする。
ここでネット検索ステップは、指定条件を満たすネットとして、ネット配線長とドライバ駆動能力が指定された値以上のネットを太線化候補として検索する。
このように遅延オーバーとなるセットアップタイムエラーをネットの太線化による遅延削減で改善する場合、本発明によれば、ネットの配線長及びドライバ駆動能力により対象ネットを制限することにより、パス全体としてみた時にあまり効果的でないネットを数多く対象とし、結果的に配線チャネルの不足を招いたり、太線化に伴う配線容量の増加により駆動能力の小さドライバでは結果としてディレイが増加してしまう不都合を解消することが可能となる。
またネット検索ステップは、太線化候補として検索したネットの線路容量と線路抵抗を太線化した値に変更した後にネットディレイを仮計算してセットアップタイムエラーを判定し、エラーを解消可能なネットを太線化候補に決定する。このように候補として検索されたネットに対し検証を繰り返すことで、最も必要とされるネットのみを改善することが可能となる。またネット太線化の検証として、候補となったネットの配線抵抗と配線容量を太線化した値に変更することで、実際にネットを太線化することなくディレイ計算を可能し、同時に出力される太線化ネット情報と基に、最終的に論理変更、セル配置及び配線処理を行う。
（ネット太線化その２）
本発明は、論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング改善方法に於いて、
入力部により、電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
ネット検索部により、遅延オーバーによるセットアップタイムエラーを起こしているパス上の全てのネットの中から、所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化部により、太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を備えたことを特徴とする。
ここで、ネット検索ステップは、セットアップタイムエラーを起こしているネットの中から、
ネット配線長、ドライバ駆動能力、ネットディレイ、レシーバ側の波形鈍り及びファンアウト数が指定された値より大きいネットを太線化候補として検索する。このためタイミングエラーを起こしているパスの中から、配線長、ドライバ駆動能力、ネットディレイ、レシーバ側の波形鈍り及びファンアウト数の指定条件により、選択されたエラーパス内で最も改善の効果が期待できるネットを１つ決定することが可能となる。
またネット検索ステップは、セットアップタイムエラーを起こしているネットの中から、遅延時間の大きな上位のワーストパスを所定数選択して太線化候補の検索を繰り返す。このため改善効果の大きなパスからネットの太線化を行うことで、必要最小限のネットの太線化でタイミングエラーが改善できる。
（プログラム）
本発明は、論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善するプログラムを提供する。
まずセル最適化によりタイミングを改善する本発明のプログラムは、コンピュータに、
電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する入力ステップと、
タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起さないセルを交換候補として検索するセル検索ステップと、
交換候補として検索されたセルをタイミング制約を満たすセルに置き換えるセル置換ステップと、
とを実行させる。
またネット太線化によりタイミングを改善する本発明のプログラムは、コンピュータに、
電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、前記スラック値が正となるピンをもち且つ所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を実行させる。
またネット太線化によりタイミングを改善する他の形態となる本発明のプログラムは、コンピュータに、
電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力ステップと、
遅延オーバーによるセットアップタイムエラーを起こしているパス上の全てのネットの中から、所定の指定条件を満たすネットを太線化候補として検索するネット検索ステップと、
太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化ステップと、
を実行させることを特徴とする。なお、本発明のプログラムの詳細はタイミング改善方法と基本的に同じになる。
（装置）
本発明は、論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミングを改善するための装置を提供する。
まずセル最適化によりタイミングを改善する本発明の装置は、電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する入力部と、タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起さないセルを置き換え候補として検索するセル検索部と、置き換え候補として検索されたセルをタイミング制約を満たすセルに置き換えるセル置換部とを備えたことを特徴とする。
またネット太線化によりタイミングを改善する本発明の装置は、電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力部と、遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、スラック値が正となるピンをもち且つ所定の指定条件を満たすネットを太線化候補として検索するネット検索部と、太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化部とを備えたことを特徴とする。
またネット太線化によりタイミングを改善する他の形態としての本発明の装置は、電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力する入力部と、遅延オーバーによるセットアップタイムエラーを起こしているパス上の全てのネットの中から、所定の指定条件を満たすネットを太線化候補として検索するネット検索部と、太線化候補として検索されたネットの配線を遅延時間の小さい太線に置き換える太線化部とを備えたことを特徴とする。
なお、本発明の装置の詳細はタイミング改善方法と基本的に同じになる。
【図面の簡単な説明】図１は本発明の実施形態を示した機能構成のブロック図；
図２は本発明が適用される電子回路設計のフローチャート；
図３は図１の実施形態が適用されるコンピュータのハードウェア資源の説明図；
図４は図２のセルサイズ最適化部のブロック図；
図５は電子回路設計で生成される基本的なセルネットの回路図；
図６は図５の回路におけるセットアップタイムチェックの説明図；
図７は図５の回路におけるホールドタイムチェックの説明図；
図８は図４のセルサイズ最適化処理が適用される電子回路部とスラック値の説明図；
図９は図８におけるセットアップスラック値の計算方法の説明図；
図１０は図８におけるホールドスラック値の計算方法の説明図；
図１１は本発明によるセルサイズ最適化処理のフローチャート；
図１２は図１１に続くセルサイズ最適化処理のフローチャート；
図１３は図２のネット太線化部のブロック図；
図１４は本発明によるネット太線化処理のフローチャート；
図１５は図１４に続くネット太線化処理のフローチャート；
図１６は本発明によるネット太線化処理の他の実施形態のフローチャート；
図１７は図１６に続くネット太線化処理のフローチャート；
【発明を実施するための最良の形態】  図１は、本発明のタイミング改善方法が適用される電子回路設計システムの機能構成のブロック図である。図１において、電子回路設計システムは、論理設計部１０、セル配置部１１、配線処理部１２、タイミング解析部１４及びタイミング解析結果分析部１６を備えており、これに加えて本発明にあっては更に、セルサイズ最適化部１８とネット太線化部２０を新たに設けている。セルサイズ最適化部１８に対しては、セルパラメータライブラリ２４とセル置き換え情報ファイル２２が設けられる。またネット太線化部２０には、太線ネット情報ファイル２６が設けられる。更に論理設計部１０には、作成の済んだ電子回路設計データを格納する出力ファイル２８が設けられている。
図２は、図１の電子回路設計システムにおける処理手順の概略的なフローチャートである。図２において、ステップＳ１で入力された設計情報に基づいた論理設計が行われ、ステップＳ２でセル配置が行われ、更にステップＳ３で配線処理が行われる。このステップＳ１〜Ｓ３が、通常行われる電子回路設計の基本的な処理である。次にステップＳ４で、作成された電子回路設計を対象にタイミング解析を行った後、ステップＳ５でタイミング解析結果の分析を行い、レーシングエラーやオーバーディレイエラーなどが生じた場合には、ステップＳ６でセルの配置調整に伴う処理の一環として、本発明にあっては、ステップＳ７でスラックベースのセル最適化処理と、ステップＳ８におけるワーストパス上のネットの太線化処理を行って、タイミングエラーの改善を図る。ステップＳ７における本発明によるスラックベースのセル最適化処理は、電子回路設計におけるタイミングの検証結果から得られたスラック情報を入力し、タイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起こさない場合に、このセルを交換候補として検索し、交換候補として検索されたセルを、タイミング制約を満たすセルに置き換える。具体的に、遅延不足となるホールドタイムエラーを起こしている経路についてスラック情報に基づいて交換するセル候補を検索し、検索されたセルを遅延時間の大きなセルに置き換える。また、遅延オーバーによるセットアップタイムエラーを起こしている経路について交換候補としてのセルを検索し、検索されたセルを遅延時間の小さなセルに置き換える。
一方、ステップＳ８におけるワーストパス上のネットの太線化処理にあっては、電子回路設計におけるタイミング検証結果から得られたホールドタイムチェックの余裕値であるスラック値を入力し、遅延オーバーによるセットアップタイムエラーを起こしているパス上のネットの中から、遅延時間を小さくするための太線化の対象となるネットを太線化候補として検索し、検索されたネットの配線を遅延時間の小さい太線に置き換える。更に、ステップＳ７，Ｓ８におけるセル交換及びネットの太線化にあっては、実際にセルを交換したりネットを太線化せずに、セルのパラメータの変更、及びネットの太線化に伴う容量と抵抗値の変更によりディレイ仮計算を行って、セル交換及びネット太線化によりタイミングエラーが解消できるか否かチェックし、タイミングエラーが解消できる場合にセル交換あるいは太線化の候補に決定している。ステップＳ７，Ｓ８において、セルの交換候補及びネットの太線化候補が決定されると、セル変更マクロ情報と太線化ネット情報に基づいて、最終的にステップＳ９，Ｓ１０，Ｓ１１で論理設計、セル配置及び配線処理を行い、ステップＳ１２でタイミング解析を行った後に、ステップＳ１３でタイミング解析結果を分析し、ステップＳ１４ディレイシングエラーもしくはオーバーディレイエラーが改善されてなくなっていれば、一連の処理を終了する。万一、ステップＳ１４でタイミングエラーが判別された場合には、再びステップＳ６のセル配置調整に戻って、ステップＳ７からの処理を繰り返す。
図１における本発明のシステムは、例えば図３のようなコンピュータのハードウェア資源により実現される。図３のコンピュータにおいて、ＣＰＵ１００のバス１０１にはＲＡＭ１０２、ハードディスクドコントローラ（ソフト）１０４、フロッピィディスクドライバ（ソフト）１１０、ＣＤ−ＲＯＭドライバ（ソフト）１１４、マウスコントローラ１１８、キーボードコントローラ１２２、ディスプレイコントローラ１２６、通信用ボード１３０が接続される。ハードディスクコントローラ１０４はハードディスクドライブ１０６を接続し、本発明の電子回路設計を実行するアプリケーションプログラムをローディングしており、コンピュータの起動時にハードディスクドライブ１０６から必要なプログラムを呼び出して、ＲＡＭ１０２上に展開し、ＣＰＵ１００により実行する。フロッピィディスクドライバ１１０にはフロッピィディスクドライブ（ハード）１１２が接続され、フロッピィディスク（Ｒ）に対する読み書きができる。ＣＤ−ＲＯＭドライバ１１４に対しては、ＣＤドライブ（ハード）１１６が接続され、ＣＤに記憶されたデータやプログラムを読み込むことができる。マウスコントローラ１１８はマウス１２０の入力操作をＣＰＵ１００に伝える。キーボードコントローラ１２２はキーボード１２４の入力操作をＣＰＵ１００に伝える。ディスプレイコントローラ１２６は表示部１２８に対して表示を行う。通信用ボード１３０は無線を含む通信回線１３２を使用し、インターネット等のネットワークを介して他のコンピュータやサーバとの間で通信を行う。
図４は、図１の電子回路設計システムに設けている本発明のセルサイズ最適化部１８の機能構成のブロック図である。このセルサイズ最適化部１８は、入力部３６、セル検索部３８及びセル置き換え部４０を備える。入力部３６は、電子回路設計におけるタイミング検証結果から得られたスラック情報を入力する。セル検索部３８はタイミング制約を満たさない経路上のセルのピンにおけるスラック情報に着目し、タイミング改善のためにセルを交換しても、交換したセルを通る他の経路がタイミングエラーを起こさないことを条件に、セルを交換候補として検索する。セル置き換え部４０は、交換候補として検索されたセルをタイミング制約を満たすセルに置き換える。更にセル置き換え部４０に対しては、セル交換候補についてディレイ仮計算を行うため、セルパラメータライブラリ２４とセル置き換え情報ファイル２２が設けられている。このような本発明のセルサイズ最適化部１８にあっては、スラック情報を用いてホールドタイムエラーを解消するためのセル置き換えと、セットアップタイムエラーを解消するためのセル置き換えを行う。
セットアップタイムエラーを解消するためのセル最適化の処理は次の手順で行われる。
（１）電子回路設計におけるタイミング検証結果から得られたセットアップタイムチェックの余裕値であるスラック値と、ホールドタイムチェックの余裕値であるスラック値を入力する。
（２）遅延オーバーによるセットアップタイムエラーを起こしている経路について、全てのピンのホールドタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索する。
（３）交換候補として検索されたセルを遅延時間の小さなセルに置き換える。
また、ホールドタイムエラーを解消するためのセル最適化処理は次の手順で行われる。
（１）セットアップタイムチェックの余裕値であるスラック値とホールドタイムチェックの余裕地であるスラック値を入力する。
（２）遅延不足によるホールドタイムエラーを起こしている経路について、全てのピンのセットアップタイムチェックのスラック値が所定値以上の正の値を持つセルを交換候補として検索する。
（３）交換候補として検索されたセルを遅延時間の大きなセルに置き換える。
そこで、まずディレイ不足によるホールドタイムエラーを改善する場合について説明する。図２のフローチャートに示したように、ステップＳ７でセル最適化処理を行う段階では、既に処理の済んだ電子回路設計に対する現時点でのタイミング検証が行われており、セルにおける各ピンのスラック情報（タイミング検証における余裕値）が求められている。ここで言うスラック情報は、セットアップタイムチェックではＭＡＸディレイを基に計算され、ホールドタイムチェックではＭＩＮディレイを基に計算され、どちらの場合も、余裕のある場合にスラック値は正の値を持つ。ここで、セットアップタイムチェック及びホールドタイムチェックにおけるそれぞれのスラック情報を説明する。
図５は、電子回路設計で生成された基本的な回路の一例であり、セルとなるＤＦＦ３０，３２を２段接続している。図５において、前段のＤＦＦ３０においてクロック端子ＣＫ１からクロック入力端子ＣＫのネットの遅延時間がＴｃ１であり、前段のＤＦＦ３０の入力Ｄから後段の入力Ｄの間のネットの遅延時間がＴｄであり、更に後段のＤＦＦ３２におけるクロック端子ＣＫ２からクロック入力端子ＣＫの遅延時間がＴｃ２であるとする。この場合のセットアップタイムチェックの対象となるパラメータは、図６（Ａ）〜（Ｄ）のようになる。即ち、図６（Ａ）の基本クロックに対し図６（Ｂ）のＣＫ１は遅延時間Ｔｃ１を持つ。また図６（Ｃ）の後段のＤＦＦ３２の入力Ｄに対する信号変化は、クロックＣＫ１の立ち上がりから遅延時間Ｔｄを持つ。更に図６（Ｄ）のクロックＣＫ２は、遅延時間Ｔｃ２をもってＤＦＦ３２のクロック端子ＣＫに入力される。ここで図６（Ｄ）におけるクロックＣＫ２のセットアップタイムＴｓｅｔｕｐは、クロックエッジに対しデータを用意する時間として定義されており、このセットアップタイムＴｓｅｔｕｐがこれより短い時間となるタイミングでデータが到達しても、ＤＦＦ３２は動作しないことになる。ここで、このセットアップタイムチェックにおける各時間の間には図６（Ｅ）のような条件が成立していれば、セットアップエラーを生ずることなく正常に図５の回路は動作する。また図６（Ｅ）の条件から、次式で与えられるセットアップタイムチェックにおけるマージンが求まる。
2004046975.tif 000003
図７は、図５の回路におけるホールドタイムチェックのための時間を表わしたタイムチャートであり、図７（Ａ）〜（Ｄ）の波形は図６（Ａ）〜（Ｄ）と同じである。この場合、図６（Ｄ）のように、クロックＣＫ２についてＤＦＦ３２のクロック入力端子ＣＫにおけるクロック立ち上がりに対しホールドタイムＴｈｏｌｄが設定される。このホールドタイムＴｈｏｌｄは、クロックエッジに対しデータを保持する時間である。このホールドタイムチェックにあっては、図７（Ｅ）のような条件が成立すれば、図５の回路は正常に動作することができる。また図７（Ｅ）の条件から、ホールドタイムチェックにおけるマージンは次式で与えられる。
2004046975.tif 000004
図８は本発明のホールドタイムエラーを改善するセル最適化及びセットアップタイムエラーを改善するセル最適化が適用される回路の具体例である。なお、説明を簡単にするため、ネットのディレイは０としている。図８において、回路の始点４８と終点５０の間に８個のセルＡ〜Ｈが配置されている。セルＡ〜Ｈのそれぞれは左下のブロック５２に示したパラメータを表示している。即ち、セルＡ〜Ｈの内部にセル名Ｘとセル自身のディレイｄを示している。またセルＡ〜Ｈの出力ラインの上部にセットアップスラック値ｓｘの値を示し、出力ラインの下側にホールドスラック値ｓｎを示している。更に終点５０には、この回路におけるセットアップ制約値及びホールド制約値を示している。このセットアップ制約値は、図６のタイミングチャートに示したように、ＭＡＸディレイを基に計算される。またホールド制約値は、図７のタイミングチャートに示したように、ＭＩＮディレイを基に計算される。この例ではセットアップ制約値を１２とし、ホールド制約値を８としている。また図８における各数値は時間の単位を持ち、例えばマイクロ秒の単位を持つことになる。図８の回路にあっては、始点４８と終点５０の間に次の３つのパスを持っている。
パス１（Ａ，Ｂ，Ｅ，Ｇ，Ｈ）
パス２（Ａ，Ｃ，Ｆ，Ｇ，Ｈ）
パス３（Ａ，Ｄ，Ｇ，Ｈ）
また、パスのディレイ時間を見ると
パス１＝９
パス２＝１０
パス３＝７
となる。したがって、パスディレイについて、パス２がＭＡＸパスでパスディレイが１０であり、パス３がＭＩＮパスでパスディレイが７となっている。
図９は、図８におけるセットアップスラックｓｘの計算手順の説明図である。このセットアップスラックｓｘは次式で算出される。
ｓｘ＝｛（セットアップ制約値−（終点側積算ディレイ））
−（始点側積算ディレイ）      （１）
ここで図９のセルＡ〜Ｈには、左下のボックス５４に示すパラメータを数値で示している。即ち、セルＡ〜Ｈにはセル名Ｘとセルのディレイｄが示され、セルの出力ラインの上側にはセットアップスラックｓｘを示し、出力ラインの下側には始点４８からの積算ディレイを示している。
遅延オーバーによるセットアップエラーを判断するためのセットアップスラックの計算にあっては、パスディレイが最大となる矢印５６で示すパス２が問題になる。そこで、パス２を構成するセルＡ，Ｃ，Ｆ，Ｇ，Ｈについてセットアップスラックの具体的な計算例を見ると次のようになる。セットアップスラックは終点５０側から計算していくほうが分かり易い。いまセルＨに着目すると、
セットアップ制約値＝１２、
終点側積算ディレイ＝０
始点側積算ディレイ＝１０
であることから、スラック値は
ｓｘ＝１２−１０＝２
として算出される。
次のセルＧにあっては、
セットアップ制約値＝１２、
終点側積算ディレイ＝２
始点側積算ディレイ＝８
であることから、セットアップスラック値は
ｓｘ＝（１２−２）−８＝２
となる。
次のセルＦにあっては、
セットアップ制約値＝１２、
終点側積算ディレイ＝２＋１
始点側積算ディレイ＝７
であることから、セットアップスラック値は
ｓｘ＝（１２−２−１）−７＝２
となる。
次のセルＣは
セットアップ制約値＝１２、
終点側積算ディレイ＝２＋１＋２
始点側積算ディレイ＝５
であることから、セットアップスラック値は
ｓｘ＝（１２−２−１−２）−５＝２
となる。更にセルＡにあっては、
セットアップ制約値＝１２、
終点側積算ディレイ＝２＋１＋２＋３
始点側積算ディレイ＝２
であることから、セットアップスラック値は
ｓｘ＝（１２−２−１−２−３）−２＝２
となる。同様にして、残りのセルＢ，Ｅ，Ｄについてもセットアップスラックを計算することができる。
図１０は、図８の回路におけるホールドスラックの計算手順の説明図である。ホールドスラックはホールド制約値より大きい場合に余裕があることになるため、セットアップスラックとは計算が逆になる。即ち、ホールドスラックは次式で計算される。
Ｈｘ＝（始点側積算ディレイ）−｛（ホールド制約値）−（終点側積算ディレイ）｝
（２）
図１０のセルＡ〜Ｈにあっては、左下のボックス５８のように、セル内にセル名Ｘとセルのディレイｄを示し、出力ラインの上側にホールドスラックｈｘを示し、出力ラインの下側に始点４８からの積算ディレイＴｄを示している。またホールドスラックを利用するホールドタイムチェックにおけるホールドタイムエラーは、パスディレイが最小となる矢印６０で示すパス３（Ａ，Ｄ，Ｇ，Ｈ）について問題となる。そこで、パス６０のセルＡ，Ｄ，Ｇ，Ｈについてホールドスラックの具体的な計算例を示すと次のようになる。このホールドスラックの計算は、終点５０側から計算していくと分かり易い。まずセルＨにあっては
ホールド制約値＝８
始点側積算ディレイ＝７
終点側積算ディレイ＝０
であることから、この場合のセットアップスラックは
ｈｘ＝７−８＝−１
となる。
次のセルＧにあっては、
ホールド制約値＝８
始点側積算ディレイ＝５
終点側積算ディレイ＝２
であることから、ホールドスラックは
ｈｘ＝５−（８−２）＝−１
となる。
次のセルＤにあっては、
ホールド制約値＝８
始点側積算ディレイ＝４
終点側積算ディレイ＝２＋１
であることから、ホールドスラックは
ｈｘ＝４−（８−２−１）＝−１
となる。
更にセルＡにあっては
ホールド制約値＝８
始点終点側積算ディレイ＝２
終点側積算ディレイ＝２＋１＋２
であることから、ホールドスラックは
ｈｘ＝（２−８−２−１−２）＝−１
となる。
再び図８を参照するに、このようにしてセットアップタイムチェックにおいてＭＡＸディレイを基に計算されたセットアップスラック情報及びホールドタイムチェックにおいて、ＭＩＮディレイを基に計算されたホールドスラック情報が入力されたならば、ホールドタイムエラーを起こしている経路を対象にセル交換によるタイミング改善を行う。ホールドタイムエラーを起こしている経路については、その経路の遅延時間を大きくすることでタイミングを改善することができる。即ち、ホールドタイムエラーを起こしている経路に存在するセルを遅延時間の大きなセルに置き換えることにより、ホールドタイムエラーを解消することができる。この場合、セルの置き換えを行うと、置き換えを行ったセルを通過する別の経路についても遅延が変化する。したがって、置き換えるセルの選択を誤ると、ホールドタイムエラーを改善しようとした経路のホールドタイムエラーを改善することができても、セルの置き換えによって遅延が変化した別の経路に新たなタイミングエラーを生ずることがある。そこで本発明にあっては、セルのスラック情報を使用して置き換えることで、新たなタイミングエラーを生じさせない最適な置き換えセルを求める。具体的には、ホールドタイムエラーを起こしている経路に存在するセルのピンについて、セットアップタイムチェックで求められたセットアップスラックをチェックし、このセットアップスラックが所定値以上の正の値を持つセルを置き換え対象とする。このようにセットアップタイムスラックの大きなセル、即ち遅延時間の増加に対しディレイオーバーとなるセットアップタイムエラーに余裕のあるセルを置き換え対象とすることによって、遅延不足により生じていたホールドタイムエラーが改善され、一方、セットアップタイムチェックでは遅延時間の増加によりタイミング制約に対し厳しくなるが、セットアップタイムチェックにおいて、もともと余裕のあったセル、即ちセットアップタイムチェックのスラック値が正であったセルを対象としているため、セルの交換により遅延時間が増加しても、遅延オーバーによるセットアップタイムエラーを起こすことはない。
このホールドタイムエラーを改善するセル最適化処理を図８について具体的に説明すると、次のようになる。図８におけるパス１（Ａ，Ｂ，Ｅ，Ｇ，Ｈ）、パス２（Ａ，Ｃ，Ｆ，Ｇ，Ｈ）、及びパス３（Ａ，Ｄ，Ｇ，Ｈ）のうち、パスディレイが最小となるＭＩＮパスはパス３（Ａ，Ｄ，Ｇ，Ｈ）であり、トータルディレイが７となっている。このトータルディレイ＝７はホールド制約値＝８より小さいことから、ホールドエラーを起こしていることが判定される。そこで、ホールドエラーを起こしているパス３（Ａ，Ｄ，Ｇ，Ｈ）において、これを改善するための最適なセルとして、ホールドスラックｓｈが最小でセットアップスラックｓｘが最大となるセルを検索する。この場合、パス３（Ａ，Ｄ，Ｇ，Ｈ）にあっては、セルＡ〜Ｈの出力側のネットに示すホールドスラックｈｘは全て−１である。これに対しセットアップスラックｓｘはセルＤのネットが５と最大であり、最も余裕のあるネットであることが分かる。このため、ホールドエラーを解消するためにセルＤのディレイｄを１つ大きくしてＤ＝２＋１＝３とすると、セットアップスラックｓｘは１つ減って、ｓｘ＝５−１＝４となる。このようなセルＤのディレイｄを１つ増やした場合のパスのトータルディレイは８となり、ホールド制約値を満足することでホールドエラーが解消できる。同時に、トータルディレイ８はセットアップ制約値＝１２を超えないことから、セットアップエラーを生ずることはない。
次に、オーバーディレイによるセットアップタイムエラーを改善する場合について説明する。セットアップタイムエラーを改善するためのセルの交換についても、ホールドタイムエラーの改善とほぼ同様、セットアップスラック及びホールドスラックを計算した後にトータルディレイが最大となるＭＡＸパスについてトータルディレイがセットアップ制約値を超えている場合にセットアップタイムエラーを判定し、このセットアップタイムエラーを発生しているパス上のセルを対象に、セットアップスラックが最小でホールドスラックが最大となるセルを検索する。このようにして検索したセルについて、遅延時間の小さなセルに置き換えることによってトータルディレイを減らすことで、セットアップエラーを解消することができる。同時に、トータルディレイが減ることでホールド制約値に近づくが、ホールドスラック値が最大のネットを持つセルを交換していることから、ホールドタイムエラーを発生することはない。
図１１及び図１２は、図４のセルサイズ最適化部１８によるセルサイズ最適化処理の手順を示したフローチャートであり、このフローチャートが本発明によるセルサイズ最適化処理のためのプログラムを同時に表している。
図１１において、まずステップＳ１で全てのネットのホールドスラック値とセットアップスラック値を計算してファイルに保存する。続いてステップＳ２〜Ｓ７においてホールドタイムエラーを改善するセルサイズ最適化処理を行う。即ちステップＳ２でパスを選択して遅延時間を計算し、ステップＳ３でパス遅延時間とホールド制約値を比較し、ホールドタイムエラーを判定する。パス遅延時間がホールド制約値未満であればホールドタイムエラーとなり、ステップＳ４でホールドスラック値が最小で、セットアップスラック値が最大となるセルを仮候補に決定する。続いてステップＳ５で実際にセル交換を行わずにディレイ仮計算を行う。即ち仮候補となったセルについてそれより大きな遅延時間を持つセルの遅延パラメータをセルパラメータライブラリ２４から取得し、セルのディレイを変えることで、ディレイ仮計算を行い、セル交換後のパスのトータルディレイを求める。続いてディレイ仮計算の結果に基づいてステップＳ６でホールドタイムエラーが解消され、且つセットアップタイムエラーを起こさず、タイミング制約を満足するか否かチェックする。ステップＳ６でタイミング制約を満足すれば、ステップＳ７でステップＳ４で決定した仮候補を遅延時間増加の候補セルに決定する。ステップＳ６でタイミング制約条件を満たさない場合にはステップＳ１３で全パスの終了を判別するまで、ステップＳ２からの処理を繰り返す。尚、ステップＳ６でタイミング制約条件を満たさなかった場合にはステップＳ５において可能範囲で、更に仮候補セルの遅延時間を増加させてディレイ仮計算を行い、これによってタイミング制約を満たした場合にはステップＳ７で遅延時間を増加させるための候補セルに決定する。
一方、ステップＳ３でホールドタイムエラーが判定されなかった場合には図１２のステップＳ８〜Ｓ１２のセットアップタイムエラーを改善するセルサイズ最適化処理を行う。即ち、ステップＳ８でパス遅延時間とセットアップ制約値を比較し、セットアップ制約値を超えた場合にはセットアップタイムエラーと判定し、ステップＳ９に進む。ステップＳ９にあってはセットアップタイムエラーを起こしたパスに存在するセルを対象に、セットアップスラック値が最小で、ホールドスラック値が最大となるセルを仮候補に決定する。続いてステップＳ１０でセルパラメータライブラリ２４の参照で小さな遅延時間を持つ仮候補セルのパラメータを取得し、ディレイ仮計算を行う。このディレイ仮計算によるトータルディレイがセットアップ制約値による両方のタイミング制約を満たすか否かをステップＳ１１で判断し、タイミング制約を満たす場合にはステップＳ１２で遅延時間を減少される候補セルに決定する。またステップＳ１１でタイミング制約を満たさない場合にはステップＳ１３で全パスを終了するまでステップＳ２に戻って次のパスについて同様の処理を繰り返す。またステップＳ１１でタイミング制約を満たさない場合にはステップＳ１０に戻り、仮候補セルのさらに小さな遅延時間のパラメータに変更してディレイ仮計算を行って、タイミング制約を満たすかどうか判定する処理を繰り返しても良い。
図１３は、図１のネット太線化部２０の機能構成のブロック図である。このネット太線化部２０は、入力部４２、ネット検索部４４及び太線化部４６を備えている。入力部４２は電子回路設計におけるタイミング検証結果から得られたホールドタイムのスラック値を入力する。ネット検索部４４は遅延オーバーによりセットアップタイムエラーを起こしているパス上のネットの中からスラック値が正となるピンを持ち、且つ所定の指定条件を満たすネットを太線化候補として検索する。
このネット検索の指定条件としては
（１）ネット配線長
（２）ドライバの駆動能力
の２つを設定している。
太線化部４６はネット検索部４４で太線化候補として検索されたネットの配線を遅延時間を小さくするために太線に置き換える。
このような図１３のネット太線化におけるセットアップタイムエラーの改善はセットアップタイムエラーを生じたパスにおける正のホールドスラックを持つネットを対象に太線化して遅延時間を減少させる改善を図る。しかしながら、ホールドスラックが正となるネットを対象による太線化による遅延時間を増やすタイミング改善を行った場合、パス全体として見た時にあまり効果的でないネットを数多く改善対象としており、結果的に配線チャンネルの不足を招いたり、ディレイ削減を意図して太線行った事で配線容量の増加するため、駆動能力の小さいドライバではタイミング改善が適切に図れなくなる場合がある。
そこで図１３の実施形態にあっては太線化により遅延時間を削減させるネットとしてネットの配線長が所定値以上で、ドライバの駆動能力も所定値以上となるネットに制限することでホールドスラックのみにより改善ネットを検索した場合の問題を解消している。
図１４及び図１５は、図１３のネット太線化部によるネット太線化処理の手順を示したフローチャートであり、このフローチャートが同時にネット太線化処理のプログラムを表している。図１４において、ステップＳ１で全てのネットのホールドスラック値とセットアップスラック値を計算してファイルに保存する。続いてステップＳ２でパスを選択し遅延時間、即ちパスのトータルディレイを計算する。続いてステップＳ３でパス遅延時間をセットアップ制約値と比較し、セットアップ制約値以上であればセットアップタイムエラーと判定し、ステップＳ４でエラーパスとしてファイルに格納する。このようなステップＳ２〜Ｓ４のエラーパスの判定をステップＳ５で全パスが終了するまで繰り返す。次にステップＳ６でファイルに格納されたエラーパスをひとつ選択し、ステップＳ７でエラーパス上のネットをひとつ選択し、ステップＳ８でネットのホールドスラック値が正の値か否かチェックする。正であればステップＳ９でネット配線長が所定値Ｌｎより大きいかチェックし、大きければステップＳ１０でドライバ駆動能力が所定値Ｄｎ以上か否かチェックする。ドライバ駆動能力が所定値Ｄｎ以上であればステップＳ１１ですでに処理済みの同一ネットが存在するか否かの重複チェックを行った後、ステップＳ１２で太線化の仮候補ネットに決定する。
続いて図１５のステップＳ１３に進み、太線ネット情報ファイル２６から仮定した配線の太さによる配線容量Ｃと配線抵抗Ｒの値を取得し、仮候補ネットの太線化した値を変更してディレイ仮計算を行う。このディレイ仮計算により改善ネットが決定した時点で太線化を行うために配線処理まで戻って実際に配線をすることなく、ネット太線化後のタイミング状態を解析できる。続いてステップＳ１４でディレイ仮計算から得られたネット太線化後のパスのトータルディレイについてセットアップタイムチェックを行い、ステップＳ１５でパスのトータルディレイがホールド制約値以下となってセットアップタイムエラーが解消されたか否かチェックする。セットアップタイムエラーが解消されていれば、ステップＳ１６で現在の仮候補を太線化の候補ネットに決定する。セットアップタイムエラーが解消されていなければ仮候補は破棄し、ステップＳ１７でパス上の全ネットの終了の有無をチェックした後、図１４のステップＳ７に戻り、エラーパス上の次のネットについて同様の処理を繰り返す。図１５のステップＳ１７でパス上の全てのネットの処理が終了したならば、ステップＳ１８で全てパスについての処理の終了の有無をチェックし、終了していなければ図１４のステップＳ６に戻り次のエラーパスを選択し同様の処理を繰り返す。ステップＳ１８で全てのエラーパスについて処理が終了すると、ステップＳ１９で決定された候補ネットを対象にネットの太線化処理を行う。このネットの太線化処理は実際には図２のフローチャートに示したようにステップＳ９〜Ｓ１４における論理設計、セル配置、配線、タイミング解析、タイミング解析結果分析の処理を通じて行われる。
図１６及び図１７は、本発明におけるネット太線化処理の他の実施形態を示したフローチャートである。この実施形態にあっても基本的な構成は図１２のネット太線化部２０と同様、入力部４２、ネット検索部４４及び太線化部４６で構成されるが、ネット検索部４４における太線化するネットを絞り込む条件が異なっている。即ち、この実施形態にあってはセットアップタイムエラーが判定されたワーストパスの中から上位所定数のワーストパスを選択して、ネット太線化処理を行い、ワーストパスにおけるネット太線化の対象となるネットの絞込みの条件として
（１）ネット長
（２）ドライバ駆動能力
（３）ネットディレイ
（４）レシーバ側の波形鈍り
（５）ファンアウト数
の５つの条件を満足するネットを太線化候補ネットして太線化を行う。これによってひとつのエラーパスの中から、ひとつのネットのみが太線化候補として選択できる。これに対し図１４，図１５のネット太線化処理にあっては、エラーパス上のホールドタイムスラックの値が正となるネットが選択されることから、ひとつのエラーパスについて複数のネットが太線化される点で相違することになる。
そこで図１６及び図１７のフローチャートについてネット太線化処理を説明すると次のようになる。まずステップＳ１で全てのネットのホールドスラック値とセットアップスラック値を計算してファイルに保存した後、ステップＳ２でパスを選択して遅延時間、即ちパスのトータルディレイを計算した後、ステップＳ３でセットアップタイムエラーをパス遅延時間とセットアップ制約値の比較により判定する。セットアップタイムエラーが判定されると、ステップＳ４でこれをワーストパスとしてファイルに格納する。このステップＳ２〜Ｓ４の処理をステップＳ５で全パスが終了するまで繰り返す。次にステップＳ６でファイルに格納されたワーストパスの中からセットアップ制約値に対するパス遅延時間の差が大きい順にワーストパスをひとつ選択する。次にステップＳ７で選択したワーストパス上のネットをひとつ選択し、ステップＳ８でネット長が所定値Ｌｎより大きければステップＳ９に進む。ここでドライバ駆動能力が所定値Ｄｎより大きければステップＳ１０に進む。ここではネットディレイが所定値Ｔｎより大きければステップＳ１１に進む。ここではレシーバ側波形鈍りが所定値（Ｔｓｉｎ）ｎより大きければステップＳ１２に進む。ここではファンアウト数が所定値Ｆｎ以上であれば太線化をネットとし、ステップＳ１３で同一ネットが対象となっているかの重複チェックを行った後、ステップＳ１４で太線化仮候補ネットとして登録する。次に図１７のステップＳ１５で太線ネット情報２４から仮候補ネットについて仮定した配線の太さによる配線容量Ｃと配線抵抗Ｒを太線ネット情報ファイル２６から取得して、太線化した値に変更した後にディレイ仮計算を行う。次にステップＳ１６でディレイ仮計算の結果を用いたセットアップタイムチェックを行い、ステップＳ１７でセットアップタイムエラーが解消されればステップＳ１８で仮候補を太線化の候補ネットに決定する。続いてステップＳ１９でパス上の全ネットが終了するまで、図１６のステップＳ７に戻って同様の処理を繰り返す。ステップＳ１９でパス上の全ネットが終了すると、ステップＳ２０で所定数の上位ワーストパスが終了したか否かチェックし、終了していない場合には図１６のステップＳ６に戻り次の順位のワーストパスを選択して同様の処理を繰り返す。ステップＳ２０で所定数の上位ワーストパスの終了が判別されると、ステップＳ２１に進み決定された候補ネットを太線化する。このネット太線化は実際には図２のフローチャートに示したようにステップＳ９〜Ｓ１３に示す論理設計、セル配置、配線、タイミング解析及びタイミング解析結果分析を通じて処理されることになる。
尚、上記の実施形態にあっては図２のタイムチャートのようにステップＳ７とステップＳ８でセル最適化処理とネット太線化処理を順次行うようにしているが、セル最適化処理と太線化処理のいずれか一方を行うようにしても良い。また本発明は上記の実施形態に限定されず、その目的と利点を損なうことのない適宜の変形を含む。更に本発明は上記の実施形態に示した数値による限定は受けない。
【産業上の利用の可能性】
以上説明してきたように本発明によれば、論理設計、セル配置及び配線処理が済んだ電子回路設計のタイミング解析の結果から、レーシングエラーとなるホールドタイムエラーもしくはオーバーディレイエラーとなるセットアップエラーを判別した際にタイミング検証結果から得られた比較情報を用いてエラーパス上のタイミング回線のために置き換えるセルを決定することで効率よくタイミングエラーを解消することができる。
またタイミングエラーを起こしている経路上のセルを無作為に選択して置き換えた場合には、タイミングエラーを改善したつもりが別の経路上のタイミングエラーを引き起こしてエラーが収束しないことが起きるが、本発明にあってはセル交換におけるタイミングエラーの改善が別の経路上のタイミングエラーを引き起こさないように最適なセルを選んで置き換えるため、効率よくタイミングエラーを解消することができる。
またネットの配線を太線化するための遅延時間の減少でオーバーディレイエラーとなるセットアップタイムエラーを解消するが、その際に必要最小限で最も効果のあるネットを対象に太線化することで配線チャンネルの不足を起こすことなくネット太線化によりタイミングエラーを解消することができる。
また置き換え対象となるセルまたはネットを決定した際に、実際にセル交換やネット太線化を行わずに改善後のセル及びネットのパラメータを使用したディレイ仮計算によってタイミングエラーが解消されるかどうかの検証を行った後に実際のセルの置き換えやネットの太線化を行っているため、セルの置き換え及びネット太線化とタイミング検証の繰り返しを必要最小限に抑え、処理時間を短縮することができる。
【図１】
2004046975.tif 000005
【図２】
2004046975.tif 000006
【図３】
2004046975.tif 000007
【図４】
2004046975.tif 000008
【図５】
2004046975.tif 000009
【図６】
2004046975.tif 000010
【図７】
2004046975.tif 000011
【図８】
2004046975.tif 000012
【図９】
2004046975.tif 000013
【図１０】
2004046975.tif 000014
【図１１】
2004046975.tif 000015
【図１２】
2004046975.tif 000016
【図１３】
2004046975.tif 000017
【図１４】
2004046975.tif 000018
【図１５】
2004046975.tif 000019
【図１６】
2004046975.tif 000020
【図１７】
2004046975.tif 000021
【国際調査報告】
2004046975.tif 000022
2004046975.tif 000023
2004046975.tif 000024
2004046975.tif 000025
2004046975.tif 000026
2004046975.tif 000027