(57)【要約】【課題】半導体集積回路のクロックスキューを悪化させないでサイジングを実施するゲートリサイズ装置を提供する。【解決手段】ＦＦリサイズ仮実行手段１０は、ゲートリサイズしたインスタンスについて配置移動情報１１４と、その変更内容についてＥＣＯ情報１１３を出力する。前記配置位置チェック手段１０２は、クロックドライバーカバーマップ１１２からのカバー矩形リストと配置移動情報１１４を順次読み込み、リサイズ後配置位置が当該カバー領域外となっていないかチェックして、領域外となっていた場合はリサイズ不可インスタンスリストに登録し、次にＥＣＯ情報１１３を順次読み込み、インスタンス名がリサイズ不可インスタンスリストに存在しなければ、ＥＣＯ’情報１１５として出力する。ＥＣＯ実行手段１０３は、ＥＣＯ’１１５とレイアウトデータ１１１を入力してゲートリサイズ本処理を実行し、レイアウトデータ１１６を出力する。【選択図】図４
2005284826.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のゲートサイジングにおけるゲートリサイズ装置であって、
ゲートリサイズしたインスタンスについての配置移動情報と、ゲートリサイズの変更内容についてのＥＣＯ情報とを記憶装置に出力する機能を有するゲートリサイズ仮実行手段と、
前記配置移動情報とＥＣＯ情報に基づき配置位置をチェックする配置位置チェック手段と、
前記配置位置チェック手段によってクロックドライバーのカバー範囲から突出しないゲートリサイズのみに編集されたＥＣＯ’情報とリサイズ前レイアウトデータを入力して、ゲートリサイズ本処理を実行し、リサイズ後レイアウトデータを記憶装置に出力するＥＣＯ実行手段とを備え、
前記配置位置チェック手段は、クロックドライバーカバーマップから最終段クロックドライバーの最大分配カバー領域矩形座標情報を順次読み込み、カバー矩形リストとして記憶し、
次に前記配置移動情報を順次読み込み、リサイズ前配置位置から前記カバー矩形リストを検索して該当カバー領域を特定して、リサイズ後配置位置が当該カバー領域外となっていないかチェックし、領域外となっていた場合は、当該インスタンス名をリサイズ不可インスタンスリストに登録する処理を、前記配置移動情報が終了するまで繰り返し、
次に前記ＥＣＯ情報を順次読み込み、インスタンス名が前記リサイズ不可インスタンスリストに存在しなければ、前記ＥＣＯ’情報として記憶装置に出力する処理を、前記ＥＣＯ情報が終了するまで繰り返すことを特徴とする半導体集積回路のゲートリサイズ装置。
【請求項２】
リサイズする前記ゲートがフリップフロップであることを特徴とする請求項１記載の半導体集積回路のゲートリサイズ装置。
【請求項３】
半導体集積回路のゲートサイジングにおけるゲートリサイズ方法であって、
ゲートリサイズしたインスタンスについての配置移動情報と、ゲートリサイズの変更内容についてのＥＣＯ情報とを記憶装置に出力するステップと、
クロックドライバーカバーマップから最終段クロックドライバーの最大分配カバー領域矩形座標情報を順次読み込み、カバー矩形リストとして記憶するステップと、
前記配置移動情報を順次読み込み、リサイズ前配置位置から前記カバー矩形リストを検索して該当カバー領域を特定して、リサイズ後配置位置が当該カバー領域外となっていないかチェックし、領域外となっていた場合は、当該インスタンス名をリサイズ不可インスタンスリストに登録する処理を、前記配置移動情報が終了するまで繰り返すステップと、
前記ＥＣＯ情報を順次読み込み、インスタンス名が前記リサイズ不可インスタンスリストに存在しなければ、ＥＣＯ’情報として記憶装置に出力する処理を、前記ＥＣＯ情報が終了するまで繰り返すステップと、
クロックドライバーのカバー範囲から突出しないゲートリサイズのみに編集された前記ＥＣＯ’情報とリサイズ前レイアウトデータを入力して、ゲートリサイズ本処理を実行し、リサイズ後レイアウトデータを記憶装置に出力するステップとを含むことを特徴とする半導体集積回路のゲートリサイズ方法。
【請求項４】
リサイズする前記ゲートがフリップフロップであることを特徴とする請求項３記載の半導体集積回路のゲートリサイズ方法。
【請求項５】
半導体集積回路のゲートサイジングにおけるゲートリサイズを実行するプログラムであって、
ゲートリサイズしたインスタンスについての配置移動情報と、ゲートリサイズの変更内容についてのＥＣＯ情報とを記憶装置に出力するステップと、
クロックドライバーカバーマップから最終段クロックドライバーの最大分配カバー領域矩形座標情報を順次読み込み、カバー矩形リストとして記憶するステップと、
前記配置移動情報を順次読み込み、リサイズ前配置位置から前記カバー矩形リストを検索して該当カバー領域を特定して、リサイズ後配置位置が当該カバー領域外となっていないかチェックし、領域外となっていた場合は、当該インスタンス名をリサイズ不可インスタンスリストに登録する処理を、前記配置移動情報が終了するまで繰り返すステップと、
前記ＥＣＯ情報を順次読み込み、インスタンス名が前記リサイズ不可インスタンスリストに存在しなければ、ＥＣＯ’情報として記憶装置に出力する処理を、前記ＥＣＯ情報が終了するまで繰り返すステップと、
クロックドライバーのカバー範囲から突出しないゲートリサイズのみに編集された前記ＥＣＯ’情報とリサイズ前レイアウトデータを入力して、ゲートリサイズ本処理を実行し、リサイズ後レイアウトデータを記憶装置に出力するステップとをコンピュータに実行させることを特徴とする半導体集積回路のゲートリサイズ・プログラム。
【請求項６】
リサイズする前記ゲートがフリップフロップであることを特徴とする請求項５記載の半導体集積回路のゲートリサイズ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のＣＴＳ(Clock Tree Synthesis)完了後のレイアウト実行内におけるＦＦ(Flip Flop)ゲートサイジングに関する。
【背景技術】
【０００２】
従来、半導体集積回路のレイアウト実行内でのゲートサイジング（ｕｐ−ｓｉｚｉｎｇ）では、一般にサイジング対象ゲートの既存配置領域が密集していると元の配置位置から移動したところに配置されることがある。とりわけＣＴＳ完了後のＦＦのｕｐ−ｓｉｚｉｎｇでは、最終段ドライバーからＦＦの分配範囲が確定しているため、クロックスキューの観点から大きく配置位置が移動することは好ましくない。サイジングされ配置移動されたＦＦのみならず、当該ＦＦと同一クロック分配ネットに接続される他のＦＦも含めたスキューが悪化することとなる。
【０００３】
例えば、従来のゲートサイジング装置では、消費電流の変化率が最少のものを選出し、この選出した変化率が零以下の場合は対応する能動素子のサイズを増加させたときの消費電流の変化率を演算して、その変化率が零を越えた場合は各パスの信号遅延を演算して、クリティカルパスが存在する場合は遅延改善率を演算しかつ選択された能動素子のサイズを増加させたときの信号遅延を計算する（例えば、特許文献１参照）。
【０００４】
図１は、ゲートサイジング前のレイアウトイメージにおいて、クロックドライバーのターゲットスキューを満たすことの出来るカバー範囲１１を示す。
【特許文献１】特開平８−３１４９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＦＦ１２やＦＦ１３の既存配置領域は密集しており、従来のゲートサイジングを実行すると、図２に示すゲートサイジング後のレイアウトイメージのＦＦ２１、ＦＦ２２のように元の配置位置から大きく離れた所に配置され、クロックドライバーのカバー範囲１１外に飛び出ることがあった。これは、ＦＦ２１、ＦＦ２２のみのスキューが悪化するだけでなく、当該カバー範囲１１に含まれる全ＦＦのスキュー悪化を招くこととなり問題であった。
【０００６】
そこで本発明は、半導体集積回路のクロックスキューを悪化させないでサイジングを実施するゲートリサイズ装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明では、ゲートサイジング時に配置移動情報とＥＣＯ(Engineering Change Order)情報をレポートさせる。ＥＣＯ情報とは、元来、ゲートサイジングやリピータ挿入などのようにネットリスト変更を伴うタイミング最適化を施した場合に、その変更履歴を残しておき、後にそのタイミング最適化に入力した設計データに対して論理修正を加えた際に、当時のタイミング最適化を忠実かつ高速に復元するために利用される情報である。
【０００８】
そしてクロック分配構造から来る最終段ドライバーのカバー範囲マップを予め準備しておき、配置移動情報の元配置位置からクロック供給されているドライバーのカバー範囲マップを特定して、リサイズ後の配置座標がカバー範囲内にあるかをチェックし、範囲外であれば当該リサイズを実施するＥＣＯ情報を削除する。これを全てのＦＦリサイズに対して繰り返し、最後にリサイズ前レイアウトデータに編集後のＥＣＯ情報を適用することで、クロックスキューを悪化させないＦＦゲートサイジングのみを実施可能にする。
【０００９】
従来問題となっていた図２のレイアウトイメージに対して、図３のレイアウトイメージに示すようにＦＦ３２、ＦＦ３３のリサイズはキャンセルして、ＦＦ３４、ＦＦ３５、ＦＦ３６、ＦＦ３７のみをリサイズし、全てのＦＦがクロックドライバーのカバー範囲１１のエリア内に収まった結果となる。
【発明の効果】
【００１０】
本発明による効果は、ＣＴＳが完了したレイアウトにおいてクロックスキューを悪化させることなくＦＦのゲートサイジングができることにある。その理由は、配置位置チェック手段によりクロックスキューを悪化させるＦＦゲートサイジングを抑止できるためである。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の最良の形態について図面を参照して説明する。
【実施例】
【００１２】
図４は、本発明の実施例の構成を示す。プログラム制御により動作するコンピュータ（データ処理装置）１００と、情報を永続的に記憶するハードディスク（記憶装置）１１０とから構成されている。コンピュータ（データ処理装置）１００は、メモリに格納された制御プログラムによって、ＦＦリサイズ仮実行手段１０１、配置位置チェック手段１０２、ＥＣＯ実行手段１０３として機能する。これらの手段はそれぞれ概略つぎのように動作する。
【００１３】
ＦＦリサイズ仮実行手段１０１は、一般的なゲートサイジング実行手段である。但し、次の２つの機能も有することとする。１つは、ゲートリサイズしたインスタンスについて、インスタンス名、リサイズ前配置位置、リサイズ後配置位置を組とする配置移動情報１１４をレポートする機能であり、もう１つは、ゲートリサイズの変更内容について、インスタンス名、元ゲート名（セル名）、リサイズ後ゲート名（セル名）を組とするＥＣＯ情報１１３を出力する機能である。
【００１４】
配置位置チェック手段１０２は、先ず最終段クロックドライバーの最大分配カバー領域矩形座標情報をクロックドライバーカバーマップ１１２から順次読み込みカバー矩形リストとして記憶しておく。
【００１５】
次に配置移動情報１１４を順次読み込み、以下を繰り返す。リサイズ前配置位置から、カバー矩形リストを検索して該当カバー領域を特定して、リサイズ後配置位置が当該カバー領域外となっていないかチェックする。領域外となっていた場合は、当該インスタンス名をリサイズ不可インスタンスリストに登録する。
【００１６】
次にＥＣＯ情報１１３を順次読み込み、インスタンス名がリサイズ不可インスタンスリストに存在しなければ、ＥＣＯ’情報１１５として出力する。
【００１７】
ＥＣＯ実行手段１０３は、配置位置チェック手段１０２によってクロックドライバーのカバー範囲から突出しないＦＦリサイズのみに編集されたＥＣＯ’情報１１５と（リサイズ前）レイアウトデータ１１１を入力して、ＦＦリサイズ本処理を実行し、配置を確定し、（リサイズ後）レイアウトデータ１１６を出力する。
【００１８】
次に、図５のフローチャートを参照して本実施例の動作について詳細に説明する。今、ＦＦリサイズ仮実行手段１０１にレイアウトデータ１１１が入力されて、ＦＦリサイズが仮実行され、以下のＥＣＯ情報と配置移動情報が出力されたとする。
【００１９】
［ＥＣＯ情報］
# ECO情報
# SWAPGATE  インスタンス名  リサイズ前ゲート名  リサイズ後ゲート名
#
SWAPGATE  A/B/C  DFFX1  DFFX4
SWAPGATE  A/B/D  DFFX2  DFFX3
…
【００２０】
［配置移動情報］
# 配置移動情報
# インスタンス名  ORG:(リサイズ前配置座標)  NOW:(リサイズ後配置座標)
#
A/B/C  ORG:(50.0,50.0)  NOW:(110.0,120.0)
A/B/D  ORG:(10.0,10.0)  NOW:(10.0,10.0)
…
【００２１】
本実施例のＦＦリサイズ仮実行手段１０１、ＥＣＯ実行手段１０３における配置処理は、既配置インスタンスは不動にして、サイジングされたインスタンスのみを適切な場所へ移動させて配置させるものとする。ここで、ＥＣＯ情報ファイルフォーマットは、１行に１つのゲートリサイズ過程を示し、先頭はゲートリサイズを示すキーワードSWAPGATE、第２カラムがリサイズされたインスタンス名、第３カラムがリサイズ前ゲート名、第４カラムがリサイズ後ゲート名をそれぞれ示している。また、配置移動情報ファイルフォーマットは、１行に１つのゲートサイジングの配置移動情報を示し、第１カラムがリサイズされたインスタンス名、第２カラムがリサイズ前配置座標、第３カラムがリサイズ後配置座標をそれぞれ示している。
【００２２】
まず、配置位置チェック手段がクロックドライバーカバーマップを読み込み、カバー矩形リストを記憶する（ステップＳ１，Ｓ２）。クロックドライバーカバーマップは、以下に示すようなファイルであり、１行に１ドライバーのカバー範囲を示し、左カラムから順に矩形領域の左下Ｘ座標、左下Ｙ座標、右上Ｘ座標、右上Ｙ座標を表している。
【００２３】
［クロックドライバーカバーマップ］
# クロックドライバーカバーマップ
# 矩形領域 左下X座標 左下Y座標 右上X座標 右上Y座標
#
0.0 0.0 100.0 100.0
0.0 0.0 100.0 -100.0
…
【００２４】
次に、上記配置移動情報を１行毎に読み込み以下のステップを繰り返す（ステップＳ３〜Ｓ７）。一行目では、インスタンス名がＡ／Ｂ／Ｃ、リサイズ前座標が（５０．０，５０．０）、リサイズ後座標が（１１０．０，１２０．０）である。リサイズ前座標から既に記憶してあるカバー矩形リストを検索してカバー矩形領域は、０．０  ０．０  １００．０  １００．０であることを得る（ステップＳ４）。次ぎに、リサイズ後座標が当該矩形領域外となっていないかチェックすると（ステップＳ５）、領域外となっているので、リサイズ不可リストにインスタンス名を登録する（ステップＳ６）。ステップＳ３に戻り２行目も同様にステップＳ５まで繰り返すと、今度はカバー矩形領域外ではないためステップＳ５からステップＳ３に戻る。以下３行目以降も同様に繰り返す。
【００２５】
次ぎに、上記ＥＣＯ情報を１行毎に読み込み以下のステップを繰り返す（ステップＳ８〜Ｓ１２）。一行目では、インスタンス名がＡ／Ｂ／Ｃである。当該インスタンスについてリサイズ不可リストを検索すると（ステップＳ９）、リストに該当するためステップＳ１０からステップＳ８に戻る。二行目では、インスタンス名がＡ／Ｂ／Ｄであり、同様に繰り返すと（ステップＳ９〜Ｓ１０）、リサイズ不可リストに該当しないので、ＥＣＯ’ファイルとして入力行を出力する（ステップＳ１１）。以下３行目以降も同様に繰り返す。全ての行について処理が施された例が、以下に示すＥＣＯ’情報である。
【００２６】
［ＥＣＯ’情報］
# 編集後ECO'情報
# SWAPGATE  インスタンス名  リサイズ前ゲート名  リサイズ後ゲート名
# A/B/Cリサイズを抑止
#
SWAPGATE  A/B/D  DFFX2  DFFX3
…
【００２７】
最後に、ＥＣＯ実行手段１０３にレイアウトデータ１１１と配置位置チェック手段により編集されたＥＣＯ’ファイル１１５を入力して、ＦＦリサイズ本処理を実行し、配置を確定し、レイアウトデータ１１６を出力する。
【図面の簡単な説明】
【００２８】
【図１】ゲートサイジング前のレイアウトイメージを表す図である。
【図２】従来のゲートサイジング後のレイアウトイメージを表す図である。
【図３】本発明によるゲートサイジング後のレイアウトイメージを表す図である。
【図４】本発明の実施例の構成を示す図である。
【図５】本発明の実施例の動作を説明するフローチャートである。
【符号の説明】
【００２９】
１００  コンピュータ（データ処理装置）
１０１  ＦＦリサイズ仮実行手段
１０２  配置位置チェック手段
１０３  ＥＣＯ実行手段
１１０  ハードディスク（記憶装置）
１１１  （リサイズ前）レイアウトデータ
１１２  クロックドライバーカバーマップ
１１３  ＥＣＯ情報
１１４  配置移動情報
１１５  ＥＣＯ’情報
１１６  （リサイズ後）レイアウトデータ
【図１】
2005284826.tif 000003
【図２】
2005284826.tif 000004
【図３】
2005284826.tif 000005
【図４】
2005284826.tif 000006
【図５】
2005284826.tif 000007