(57)【要約】【課題】クロック配線のレイアウト後における回路の設計変更（ＥＣＯ）に対して、タイミング収束を容易にして設計所要時間を短縮する。【解決手段】レイアウト工程Ｓ２において、ドライバ２０を含むライブラリＬＩＢ１を用いてレイアウトする。レイアウト工程Ｓ５において、出力端子Ｙ２が配線禁止に設定されたドライバ３０Ａを含むライブラリＬＩＢ２を用いて、最終段のドライバ２０をドライバ３０Ａで置き換える。その後、レイアウト工程Ｓ７において、出力端子Ｙ２が配線許可に設定されたドライバ３０Ｂを含むライブラリＬＩＢ３を用いて、最終段のドライバ３０Ａをドライバ３０Ｂで置き換える。このように、２種類の生きるＬＩＢ２，ＬＩＢ３を用意しておき、ＥＣＯ等の目的に応じて生きるＬＩＢ２，ＬＩＢ３の読み込みを切り替えることにより、クロック配線のレイアウトを行っている。【選択図】図１
2007034668.tif 000002
【特許請求の範囲】
【請求項１】
レイアウト・ソフトウェアによりクロック配線を行うレイアウト方法において、
第１の入力端子及び第１の出力端子を有し、前記第１の入力端子から入力したクロック信号を駆動して一定時間ｔだけ遅れた被駆動クロック信号を前記第１の出力端子から出力する第１のドライバと、
前記第１の入力端子に対応する第２の入力端子、前記第１の出力端子に対応する第２の出力端子、及び前記第２の出力端子に対応する１つ又は複数の第３の出力端子を有し、前記第２の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第２の出力端子及び前記第３の出力端子からそれぞれ出力する第２のドライバと、
が含まれたレイアウト用ライブラリデータを用意し、
第１の回路図データに基づき、前記第１のドライバを複数箇所に配置し、前記複数の第１のドライバにおける前記各第１の入力端子及び前記各第１の出力端子を用いて木構造状に前記クロック配線を行って第２の回路図データを作成する第１のレイアウト工程と、
前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍における最終段の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いて木構造状に前記クロック配線を行って第４の回路図データを作成する第２のレイアウト工程と、
前記素子の追加の必要が生じたときには、前記素子の近傍に位置する前記第２のドライバを検索し、この第２のドライバの前記第３の出力端子から修正クロック配線を引き出して前記素子に接続する修正工程と、
を有することを特徴とするレイアウト方法。
【請求項２】
レイアウト・ソフトウェアによりクロック配線を行うレイアウト方法において、
第１の入力端子及び第１の出力端子を有し、前記第１の入力端子から入力したクロック信号を駆動して一定時間ｔだけ遅れた被駆動クロック信号を前記第１の出力端子から出力する第１のドライバと、
前記第１の入力端子に対応する第２の入力端子、前記第１の出力端子に対応する第２の出力端子、及び前記第２の出力端子に対応し且つ配線禁止に設定された１つ又は複数の第３の出力端子を有し、前記第２の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第２の出力端子及び前記第３の出力端子にそれぞれ与える第２のドライバと、
前記第２の入力端子に対応する第３の入力端子、前記第２の出力端子に対応する第４の出力端子、及び前記第３の出力端子に対応し且つ配線許可に設定された１つ又は複数の第５の出力端子を有し、前記第３の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第４の出力端子及び前記第５の出力端子からそれぞれ出力する第３のドライバと、
が含まれたレイアウト用ライブラリデータを用意し、
第１の回路図データに基づき、前記第１のドライバを複数箇所に配置し、前記複数の第１のドライバにおける前記各第１の入力端子及び前記各第１の出力端子を用いて木構造状に前記クロック配線を行って第２の回路図データを作成する第１のレイアウト工程と、
前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍における最終段の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いて木構造状に前記クロック配線を行って第４の回路図データを作成する第２のレイアウト工程と、
設計変更の必要があるか否かの判定を行い、必要無しの判定結果のときには、レイアウト処理を終了し、必要有りの判定結果のときには、前記第４の回路図データにおける前記第２のドライバを前記第３のドライバにより置換した第５の回路図データに基づき、前記素子の追加があるか否かの判定を行い、追加無しの判定結果のときには、レイアウト処理を終了し、追加有りの判定結果のときには、前記第３のドライバにおける前記第３の入力端子及び前記第４の出力端子を用いて木構造状に前記クロック配線を行うと共に、前記素子の近傍に位置する前記第３のドライバを検索し、この第３のドライバの前記第５の出力端子から修正クロック配線を引き出して前記素子に接続した第６の回路図データを作成する第３のレイアウト工程と、
を有することを特徴とするレイアウト方法。
【請求項３】
前記第２のドライバは、１入力２出力型のドライバであって、面積が、前記第１のドライバと同一面積であり、且つ、前記第２の出力端子が、前記第１のドライバの前記第１の出力端子と同位置に配置されていることを特徴とする請求項１又は２記載のレイアウト方法。
【請求項４】
レイアウト・ソフトウェアによりクロック配線を行うレイアウト方法において、
第１の入力端子及び第１の出力端子を有し、前記第１の入力端子から入力したクロック信号を駆動して一定時間ｔだけ遅れた被駆動クロック信号を前記第１の出力端子から出力する第１のドライバと、
前記第１の入力端子に対応する第２の入力端子、前記第１の出力端子に対応する第２の出力端子、及び前記第２の出力端子に対応する１つ又は複数の第３の出力端子を有し、前記第２の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第２の出力端子及び前記第３の出力端子からそれぞれ出力する第２のドライバと、
が含まれたレイアウト用ライブラリデータを用意し、
第１の回路図データに基づき、前記第１のドライバを複数箇所に配置し、前記複数の第１のドライバにおける前記各第１の入力端子及び前記各第１の出力端子を用いて木構造状に前記クロック配線を行って第２の回路図データを作成する第１のレイアウト工程と、
前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いて木構造状に前記クロック配線を行って第４の回路図データを作成する第２のレイアウト工程と、
前記素子の追加の必要が生じたときには、前記素子の近傍に位置する前記第２のドライバを検索し、この第２のドライバの前記第３の出力端子から修正クロック配線を引き出して前記素子に接続する修正工程と、
を有することを特徴とするレイアウト方法。
【請求項５】
レイアウト・ソフトウェアによりクロック配線を行うレイアウト方法において、
第１の入力端子及び第１の出力端子を有し、前記第１の入力端子から入力したクロック信号を駆動して一定時間ｔだけ遅れた被駆動クロック信号を前記第１の出力端子から出力する第１のドライバと、
前記第１の入力端子に対応する第２の入力端子、前記第１の出力端子に対応する第２の出力端子、及び前記第２の出力端子に対応し且つ配線禁止に設定された１つ又は複数の第３の出力端子を有し、前記第２の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第２の出力端子及び前記第３の出力端子にそれぞれ与える第２のドライバと、
前記第２の入力端子に対応する第３の入力端子、前記第２の出力端子に対応する第４の出力端子、及び前記第３の出力端子に対応し且つ配線許可に設定された１つ又は複数の第５の出力端子を有し、前記第３の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第４の出力端子及び前記第５の出力端子からそれぞれ出力する第３のドライバと、
が含まれたレイアウト用ライブラリデータを用意し、
第１の回路図データに基づき、前記第１のドライバを複数箇所に配置し、前記複数の第１のドライバにおける前記各第１の入力端子及び前記各第１の出力端子を用いて木構造状に前記クロック配線を行って第２の回路図データを作成する第１のレイアウト工程と、
前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いて木構造状に前記クロック配線を行って第４の回路図データを作成する第２のレイアウト工程と、
設計変更の必要があるか否かの判定を行い、必要無しの判定結果のときには、レイアウト処理を終了し、必要有りの判定結果のときには、前記第４の回路図データにおける前記第２のドライバを前記第３のドライバにより置換した第５の回路図データに基づき、前記素子の追加があるか否かの判定を行い、追加無しの判定結果のときには、レイアウト処理を終了し、追加有りの判定結果のときには、前記第３のドライバにおける前記第３の入力端子及び前記第４の出力端子を用いて木構造状に前記クロック配線を行うと共に、前記素子の近傍に位置する前記第３のドライバを検索し、この第３のドライバの前記第５の出力端子から修正クロック配線を引き出して前記素子に接続した第６の回路図データを作成する第３のレイアウト工程と、
を有することを特徴とするレイアウト方法。
【請求項６】
前記第２のドライバは、１入力２出力型のドライバであって、面積が、前記第１のドライバと同一面積であり、且つ、前記第２の出力端子が、前記第１のドライバの前記第１の出力端子と同位置に配置され、
前記第３のドライバは、１入力２出力型のドライバであって、面積が、前記第２のドライバと同一面積であり、且つ、前記第４及び第５の出力端子が、前記第２のドライバの前記第２及び第３の出力端子と同位置に配置されていることを特徴とする請求項４又は５記載のレイアウト方法。
【請求項７】
前記修正クロック配線に接続される前記素子までのクロック信号伝送遅延時間を算出し、この算出値に対して遅延調整を行う調整手段を設けたことを特徴とする請求項１〜６のいずれか１項に記載のレイアウト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイアウト・ソフトウェアを用いて大規模半導体集積回路（以下「ＬＳＩ」という。）等の半導体集積回路におけるクロック配線をレイアウト（配置配線）するレイアウト方法、特に、レイアウト後に回路の設計変更（Engineering Change Order、以下「ＥＣＯ」という。）を実施する際に可能な限り修正範囲を小さくして既存のタイミング関係を維持しながら所望の修正を行うようにしたクロック配線のレイアウト方法に関するものである。
【背景技術】
【０００２】
例えば、ＬＳＩのレイアウト設計において、クロック配線はタイミングを左右する重要なレイアウト工程である。クロック配線方法も多様な手法が検討されているが、最近はレイアウト・ソフトウェアが用意するクロック・ツリー・シンセシス（Clock Tree Synthesis、クロック・木構造・合成、以下「ＣＴＳ」という。）を使用するのが主流となっている。
【０００３】
図１３は、従来のＣＴＳ後のクロック接続状態の一例を示す回路図である。
ＣＴＳは、図１３に示すように、例えば、クロック信号CLKをクロック用ドライバ１，２，３により駆動しながら、末端のフリップ・フロップ回路（以下「Ｆ／Ｆ」という。）４−１〜４−４のクロック端子まで木構造状（ツリー状）にクロック用ドライバ１，２，３を配置し、Ｆ／Ｆ４−１〜４−４間のクロックスキュー（Clockskew、位相ずれ）を最小にするように配線するものである。なお、図１３の末端のＦ／Ｆ４−１〜４−４を駆動するドライバ３のファンアウト（Fanout、以下「Ｆ／Ｏ」という。）の数は、４である。
【０００４】
この工程はレイアウト・ソフトウェアにより最適化され、レイアウト後に発生したＦ／Ｆ追加等のＥＣＯを行う場合に、レイアウト・ソフトウェアによる自動配線を行うか、人手による配線修正を行う必要がある。軽微な修正内容であればＥＣＯの実施が可能だが、クロック配線に関するＥＣＯを実施する場合は、タイミング収束が難しくなり、全面レイアウトをやり直す場合もあり、設計工数や費用に大きく影響していた。
【０００５】
このようなレイアウト方法に関する技術として、例えば、次のような文献に記載されるものがあった。
【０００６】
【特許文献１】特開２００１−３０８１８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図１３に示すような従来のレイアウト方法では、図１４に示すような課題があった。
図１４は、図１３のＥＣＯ後のクロック接続状態の一例を示す回路図である。
【０００８】
従来のレイアウト方法では、例えば、図１４に示すように、レイアウト後のＦ／Ｆ追加等のＥＣＯを行う場合に、レイアウト・ソフトウェアにより自動配線、若しくは人手による配線修正を行う必要がある。特に、追加されたＦ／Ｆ４−５へ配線を行う際には、近くのクロック用ドライバ３から修正クロック配線５を新たに引き伸ばして接続するために、これまで合格（ＯＫ）となっていたタイミングが、Ｆ／Ｆ４−５の追加によるドライバ３のＦ／Ｏ増加（４＋１）により、不合格（ＮＧ）になるケースが出てくる場合があった。そうなると、追加したＦ／Ｆ４−５の周辺での人手による微妙なタイミング調整が必要になったり、関連するドライバ３のドライブ能力の調整等、ＣＴＳの再実行や最悪レイアウトをやり直す必要があり、設計所要時間（Turn Around Time、以下「ＴＡＴ」という。）に大きな影響を与えていた。
【課題を解決するための手段】
【０００９】
本発明は、レイアウト・ソフトウェアによりクロック配線を行うレイアウト方法において、第１のドライバと第２のドライバとが含まれたレイアウト用ライブラリデータを用意し、第１のレイアウト工程と、第２のレイアウト工程と、修正工程とを行うようにしている。
【００１０】
ここで、前記第１のドライバは、第１の入力端子及び第１の出力端子を有し、前記第１の入力端子から入力したクロック信号を駆動して一定時間ｔだけ遅れた被駆動クロック信号を前記第１の出力端子から出力するものである。前記第２のドライバは、前記第１の入力端子に対応する第２の入力端子、前記第１の出力端子に対応する第２の出力端子、及び前記第２の出力端子に対応する１つ又は複数の第３の出力端子を有し、前記第２の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第２の出力端子及び前記第３の出力端子からそれぞれ出力するものである。
【００１１】
そして、前記第１のレイアウト工程において、第１の回路図データに基づき、前記第１のドライバを複数箇所に配置し、前記複数の第１のドライバにおける前記各第１の入力端子及び前記各第１の出力端子を用いてツリー状に前記クロック配線を行って第２の回路図データを作成する。前記第２のレイアウト工程において、前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍における最終段の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いてツリー状に前記クロック配線を行って第４の回路図データを作成する。その後、前記修正工程において、前記素子の追加の必要が生じたときには、前記素子の近傍に位置する前記第２のドライバを検索し、この第２のドライバの前記第３の出力端子から修正クロック配線を引き出して前記素子に接続する。
【００１２】
本発明の他のレイアウト方法では、前記第２のレイアウト工程及び前記修正工程において、次のような処理を行うようにしている。即ち、前記第２のレイアウト工程では、前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いてツリー状に前記クロック配線を行って第４の回路図データを作成する。その後、修正工程において、前記素子の追加の必要が生じたときには、前記素子の近傍に位置する前記第２のドライバを検索し、この第２のドライバの前記第３の出力端子から修正クロック配線を引き出して前記素子に接続する。
【発明の効果】
【００１３】
本発明のレイアウト方法によれば、素子の追加の必要が生じたときには、この素子の近傍に位置する最終段の第２のドライバを検索し、この第２のドライバの第３の出力端子から修正クロック配線を引き出して素子に接続するようにしている。そのため、レイアウト完了後に、必要になった修正で、クロック配線に関連する修正を行う場合、短ＴＡＴでタイミング収束を実現することが可能になる。
【００１４】
本発明の他のレイアウト方法によれば、素子の追加の必要が生じたときには、この素子の近傍に位置する任意の段の第２のドライバを検索し、この第２のドライバの第３の出力端子から修正クロック配線を引き出して素子に接続するようにしている。そのため、レイアウト完了後に、必要になった修正で、クロック配線に関連する修正がある場合、最終段の第２のドライバを使用するのではなく、追加の素子の近傍に配置された任意の段（例えば、最終段より上位の段）に位置する第２のドライバを使用して、クロック配線を実施するので、遅延時間の短縮化を図りつつ、短ＴＡＴでタイミング収束を実現することが可能になる。
【発明を実施するための最良の形態】
【００１５】
本発明を実施するための最良の形態は、レイアウト・ソフトウェアによりクロック配線を行うレイアウト方法において、第１のドライバと第２のドライバとが含まれたレイアウト用ライブラリデータを用意しておく。ここで、前記第１のドライバは、第１の入力端子及び第１の出力端子を有し、前記第１の入力端子から入力したクロック信号を駆動して一定時間ｔだけ遅れた被駆動クロック信号を前記第１の出力端子から出力するものである。又、前記第２のドライバは、前記第１の入力端子に対応する第２の入力端子、前記第１の出力端子に対応する第２の出力端子、及び前記第２の出力端子に対応する１つ又は複数の第３の出力端子を有し、前記第２の入力端子から入力した前記クロック信号を駆動して前記一定時間ｔだけ遅れた複数の前記被駆動クロック信号を前記第２の出力端子及び前記第３の出力端子からそれぞれ出力するものである。
【００１６】
そして、先ず、第１のレイアウト工程では、第１の回路図データに基づき、前記第１のドライバを複数箇所に配置し、前記複数の第１のドライバにおける前記各第１の入力端子及び前記各第１の出力端子を用いて木構造状に前記クロック配線を行って第２の回路図データを作成する。次に、第２のレイアウト工程では、前記第２の回路図データにおいて、前記クロック信号により動作する素子の追加が予想される箇所の近傍の前記第１のドライバを、前記第２のドライバにより置換した第３の回路図データに基づき、前記第２のドライバにおける前記第２の入力端子及び前記第２の出力端子を用いてツリー状に前記クロック配線を行って第４の回路図データを作成する。その後、修正工程において、前記素子の追加の必要が生じたときには、前記素子の近傍に位置する前記第２のドライバを検索し、この第２のドライバの前記第３の出力端子から修正クロック配線を引き出して前記素子に接続している。
【実施例１】
【００１７】
（実施例１の装置）
図３は、本発明の実施例１で使用するレイアウト装置を示す概略の構成図である。
【００１８】
このレイアウト装置１０は、ＣＴＳが含まれたレイアウト・ソフトウェアを実行する中央処理装置（以下「ＣＰＵ」という。）等で構成されたレイアウト装置本体１１を有している。このレイアウト装置本体１１には、レイアウト用ライブラリデータを格納するハードディスク（以下「ＨＤ」という。）等のライブラリ格納手段１２、回路図データであるネットリスト（Netlist）を格納するＨＤ等のネットリスト格納手段１３、データ入力等を行うキーボードやマウス等の入力装置１４、及び、データを表示する表示装置１５等が接続されている。
【００１９】
図４（ａ）〜（ｃ）は、本発明の実施例１で使用するクロック用ドライバを示す概略の回路図である。
【００２０】
図４（ａ）に示すクロック用の第１のドライバ２０は、第１の入力端子Ａ及び第１の出力端子Ｙ１を有し、この入力端子Ａと出力端子Ｂとの間に、２個の信号反転用のインバータ２１，２２が直列に接続されている。このドライバ２０は、入力端子Ａから入力したクロック信号CLKをインバータ２１で反転駆動し、更にこれをインバータ２２で反転駆動して一定時間ｔだけ遅れた被駆動クロック信号を出力端子Ｙ１から出力する回路であり、この回路のレイアウト用ライブラリデータが図３のライブラリ格納手段１２に格納される。
【００２１】
図４（ｂ）に示すクロック用の第２のドライバ３０Ａは、第２の入力端子Ａ、第２の出力端子Ｙ１、及び配線禁止に設定された第３の出力端子Ｙ２を有し、この入力端子Ａと出力端子Ｙ１との間に、２個の信号反転用のインバータ３１，３２が直列に接続され、更に、インバータ３１の出力端子と出力端子Ｙ２との間に、信号反転用のインバータ３３が接続された１入力２出力のドライバである。このドライバ３０Ａは、入力端子Ａから入力したクロック信号CLKをインバータ３１で反転駆動し、更にこれを各インバータ３２，３３で反転駆動してそれぞれ一定時間ｔだけ遅れた被駆動クロック信号を各出力端子Ｙ１，Ｙ２に与える回路であり、この回路のレイアウト用ライブラリデータが図３のライブラリ格納手段１２に格納される。
【００２２】
ドライバ３０Ａにおいて、入力端子Ａから出力端子Ｙ１へのクロック信号CLKの伝送遅延時間ｔと、入力端子Ａから出力端子Ｙ２へのクロック信号CLKの伝送遅延時間ｔとは、ドライバ２０における入力端子Ａから出力端子Ｙ１へのクロック信号CLKの伝送遅延時間ｔと同一になるように設計されている。レイアウトにおけるドライバ３０Ａの出力端子Ｙ１の位置は、ドライバ２０の出力端子Ｙ１と同一の位置になるように設計されている。又、レイアウトにおけるドライバ３０Ａの面積も、ドライバ２０の面積と同一になるように設計されている。配線禁止に設定された出力端子Ｙ２は、例えば、この出力端子Ｙ２部分を覆い隠すように配線禁止オブジェクトが設定されていて、誤配線等を防止するためにレイアウト・ツールがそこへの配線を実行できないようになっている。
【００２３】
図４（ｃ）に示すクロック用の第３のドライバ３０Ｂは、第３の入力端子Ａ、第４の出力端子Ｙ１、及び配線許可に設定された第５の出力端子Ｙ２を有し、この入力端子Ａと出力端子Ｙ１との間に、２個の信号反転用のインバータ３１，３２が直列に接続され、更に、インバータ３１の出力端子と出力端子Ｙ２との間に、信号反転用のインバータ３３が接続された１入力２出力のドライバである。このドライバ３０Ｂは、ドライバ３０Ａと同様の回路構成であるが、出力端子Ｙ２が配線許可に設定されている点のみがドライバ３０Ａと異なり、この回路のレイアウト用ライブラリデータが図３のライブラリ格納手段１２に格納される。ドライバ３０Ｂにおける配線許可に設定された出力端子Ｙ２は、例えば、ドライバ３０Ａにおける出力端子Ｙ２部分を覆い隠す配線禁止オブジェクトが除去されたものであり、レイアウト・ツールによってそこへの配線を実行できるようになっている。
【００２４】
本実施例１の特徴は、ドライバ２０，３０Ａ，３０Ｂを用意し、通常のレイアウトではドライバ２０，３０Ａの各出力端子Ｙ１を使用し、タイミング確定したレイアウト後に発生する素子（例えば、Ｆ／Ｆ）の追加による修正に対しては、ドライバ３０Ｂの出力端子Ｙ２を使用して追加Ｆ／Ｆへの修正クロック配線をレイアウト・ソフトウェアによる自動修正、若しくは、人手修正を行えるようにし、又、これまで確定していた他のタイミングへ影響を与えることなく修正を行えるようにしている。これにより、ドライバ３０Ａ，３０Ｂの構成上、面積は増加するが、クロック配線に関連するＥＣＯがある場合にはタイミング収束が容易になり、設計ＴＡＴが短くなるという利点がある。
【００２５】
（実施例１のレイアウト方法）
図１は、本発明の実施例１のクロック配線のレイアウト方法を示すフローチャートである。図５は、図１中のネットリストNet2の一例を示す回路図、図６は、図１中のネットリストNet3の一例を示す回路図、図７は、図１中のネットリストNet5の一例を示す回路図である。
【００２６】
本実施例１におけるクロック配線のレイアウト方法では、レイアウト・ソフトウェアを実行するレイアウト装置本体１１の制御により、レイアウト処理（ステップＳ１〜Ｓ８）が行われる。
【００２７】
レイアウト処理が開始されると、レイアウト装置本体１１により、ネットリスト格納手段１３に格納された回路図データである第１のネットリストNet1が読み出されると共に（ステップＳ１）、ライブラリ格納手段１３に格納された図４のドライバ２０からなるレイアウト用ライブラリLIB1が読み出され、第１のレイアウト工程Ｓ２が行われる。このレイアウト工程Ｓ２では、ネットリストNet1に従って配置が実行され（ステップＳ２−１）、次にＣＴＳが実施される（ステップＳ２−２）。ＣＴＳ実施結果は、これが反映された図５のような回路図データの一例である第２のネットリストNet2として出力され（ステップＳ３）、ネットリスト格納手段１３に格納される。
【００２８】
図５のネットリストNet2では、クロック信号CLKを駆動する初段のドライバ２０の出力端子Ｙ１に、２段目の複数のドライバ２０の入力端子Ａが接続され、これらの２段目の各ドライバ２０の出力端子Ｙ１に、３段目の複数のドライバ２０の入力端子Ａが接続されるといった、クロック配線がツリー状に形成されている。一点鎖線で囲まれた最終段ＥＮ１の複数のドライバ２０の出力端子Ｙ１には、クロック信号CLKにより動作する複数の素子（例えば、Ｆ／Ｆ）４０−１〜４０−４，・・・がそれぞれ接続されている。例えば、図５の４つのＦ／Ｆ４０−１〜４０−４にクロック信号CLKを供給する最終段のドライバ２０のＦ／０の数は、４である。
【００２９】
レイアウト装置本体１１により、図５のネットリストNet2に示す最終段ＥＮ１の複数のドライバ２０を、ドライバ３０Ａに置換するように、ＣＴＳの構造情報を参考にしてネットリストNet2が図６のように修正され（ステップＳ４）、この修正された図６の第３のネットリストNet3がネットリスト格納手段１３に格納される。ネットリストNet3は、レイアウト工程（ステップＳ２）からの出力であるネットリストNet2を、最終段のドライバ２０からドライバ３０Ａに置換修正したレイアウト用回路図データである。最終段のドライバ２０のみを置換しているのは、レイアウト完了後に使用される可能性が高いためである。過去の経験等で、他のＣＴＳレベルに適用したい場合でも、同様なネット修正を必要なＣＴＳレベルで行うことは可能である。
【００３０】
次に、第２のレイアウト工程（ステップＳ５）において、レイアウト装置本体１１により、ライブラリ格納手段１２に格納された図４のドライバ２０及び３０Ａを含むライブラリLIB2と、ネットリスト格納手段１３に格納されたネットリストNet3とが読み込まれ（ステップＳ５−１）、詳細配線まで行われる（ステップＳ５−２）。ここで追加されたドライバ３０Ａは、出力端子Ｙ２が配線禁止になっているため、出力端子Ｙ１からＦ／Ｆ４０−１〜４０−４，・・・への配線が行われる。出力端子Ｙ１は、置換されたドライバ２０の出力端子Ｙ１と同一の位置にあるため、レイアウトにおける詳細配線計画に違いはないので、タイミングの違いが生じることもない。このレイアウト工程（ステップＳ５）の配線結果は、第４のネットリストNet4として出力され、ネットリスト格納手段１３に格納される（ステップＳ６）。
【００３１】
ネットリストNet4が格納された後、レイアウト装置本体１１により、第３のレイアウト工程（ステップＳ７）が行われる。このレイアウト工程（ステップＳ７）において、オペレータにより入力装置１４からＥＣＯ処理の要求があったか否かがレイアウト装置本体１１で判定される（ステップＳ７−１）。判定結果が要求無しのときには、タイミング情報である標準遅延フォーマット（Standard Delay Format、以下「ＳＤＦ」という。）が出力され、レイアウト装置本体１１によるレイアウト処理が終了する。
【００３２】
ステップＳ７−１での判定結果が要求有りのときには、レイアウト装置本体１１により、ネットリストNet4内に記述されているドライバ３０Ａが、ＥＣＯを考慮したドライバ３０Ｂに置換され（ステップＳ７−２）、この置換された図７のような第５のネットリストNet5がネットリスト格納手段１３に格納される。ドライバ３０Ａとドライバ３０Ｂの違いは、ドライバ３０Ａでは出力端子Ｙ２の配線属性を禁止にし、ドライバ３０Ｂでは出力端子Ｙ２の配線属性を許可にしている点である。これは、レイアウト完了後の修正時に、ドライバ３０Ｂの出力端子Ｙ２を新たなドライバ出力として使用するためである。
【００３３】
オペレータにより入力装置１４からＦ／Ｆの追加があったか否かがレイアウト装置本体１１で判定される（ステップＳ７−３）。判定結果が追加無しのときには、タイミング情報であるＳＤＦデータが出力され、レイアウト装置本体１１によるレイアウト処理が終了する。
【００３４】
ステップＳ７−３での判定結果が追加有りのときには、レイアウト装置本体１１により、ライブラリ格納手段１３に格納されたドライバ２０及びドライバ３０Ｂを含むライブラリLIB3と、ネットリスト格納手段１３に格納されたネットリストNet5とが読み込まれ、修正工程であるＥＣＯ処理が行われる（ステップＳ７−４）。このＥＣＯ処理では、レイアウト構造において同一であるドライバ３０Ａがドライバ３０Ｂに置換されると共に、修正処理が行われる。ドライバ３０Ａをドライバ３０Ｂに置換する際には、他のレイアウトデータに影響がない。最終レイアウト結果として、第６のネットリストNet6と、タイミング情報であるＳＤＦデータとが出力され（ステップＳ８）、レイアウト処理が終了する。
【００３５】
図２は、図１中のＥＣＯ処理を示すフローチャート、図８は、図１中のＥＣＯ処理のタイミング調整を示す図である。なお、図２中のステップＳ１４，Ｓ１５や、図８中の遅延調整素子５０により、遅延調整手段が構成されている。
【００３６】
図２のＥＣＯ処理（ステップＳ７−４）が開始されると、レイアウト装置本体１１により、ライブラリ格納手段１３に格納されたライブラリLIB3と、ネットリスト格納手段１３に格納されたネットリストNet5とが読み込まれ、レイアウト構造において同一であるドライバ３０Ａがドライバ３０Ｂに置換される（ステップＳ１０）。新規Ｆ／Ｆ追加の必要が生じた場合、レイアウト装置本体１１により、その修正箇所近傍に予め埋め込まれた図８に示すＥＣＯ用予備Ｆ／Ｆ４０−５を検索（サーチ）すると共に、同系統のクロック信号CLKを使用しているＣＴＳドライバ３０Ｂをサーチする（ステップＳ１２）。レイアウト装置本体１１により、見つけたＣＴＳドライバ３０ＢのＥＣＯ用出力端子Ｙ２を利用して、ＥＣＯで追加したＦ／Ｆ４０−５を接続した場合の遅延時間を算出し、この算出値がタイミング制約を満足しているか否かを確認する（ステップＳ１２，Ｓ１３）。タイミング制約を満足しているときには（ステップＳ１３）、ＥＣＯ処理を終了する。
【００３７】
タイミング制約を満足していないときには（ステップＳ１３）、遅延時間が許容値より大きいか否かを判定し（ステップＳ１４）、判定結果が大きいときには、ステップＳ１１の処理へ戻る。判定結果が小さいときには、予め埋め込まれた近くのドライバ、インバータ等の予備セルを遅延調整素子５０として利用して遅延調整を行い（ステップＳ１５）、ステップＳ１３へ戻ってタイミング制約を満足しているか否かを判定する。タンミング制約が満足されると、ＥＣＯ処理が終了する。
【００３８】
このように、ＣＴＳ構成図のＦ／Ｆ接続周辺で、新規Ｆ／Ｆ追加の必要が生じた場合には、この近傍のドライバ３０Ｂの出力端子Ｙ２から修正クロック配線３５を引き出して追加Ｆ／Ｆ４０−５のクロック端子に接続する。この際に遅延調整を行う場合は、この配線のみで実施可能なので、既にタイミングが確定している他のＦ／Ｆ４０−１〜４０−４，・・・へ影響を与えることがない。
【００３９】
（実施例１の効果）
本実施例１によれば、次の（ａ）〜（ｄ）のような効果がある。
【００４０】
（ａ）  レイアウト完了後におけるクロック配線に関連するＦ／Ｆ追加の修正は、置換した最終段のドライバ３０Ｂの出力端子Ｙ２を使用して追加のＦ／Ｆ４０−５に接続するようにしたので、既にタイミングが確定している他のＦ／Ｆ４０−１〜４０−４，・・・へ影響を与えることなく、短ＴＡＴでタイミング収束を実現することが可能である。
【００４１】
（ｂ）  ＥＣＯ処理時の遅延調整は、ＥＣＯ修正箇所近傍に予め埋め込まれたドライバ、インバータ等の予備セルを遅延調整素子５０として利用して遅延調整を行うので、遅延調整を容易に行うことができる。
【００４２】
（ｃ）  ドライバ２０を含むライブラリLIB1を用いてレイアウトし、出力端子Ｙ２が配線禁止に設定されたドライバ３０Ａを含むライブラリLIB2を用いて、最終段のドライバ２０をドライバ３０Ａで置換した後、出力端子Ｙ２が配線許可に設定されたドライバ３０Ｂを含むライブラリLIB3を用いて、最終段のドライバ３０Ａをドライバ３０Ｂで置換しているので、出力端子Ｙ２における誤配線等を防止できる。しかも、出力端子Ｙ２が配線禁止に設定されたドライバ３０Ａを含むライブラリLIB2と、出力端子Ｙ２が配線許可に設定されたドライバ３０Ｂを含むライブラリLIB3とを２種類用意しておき、目的に応じてライブラリLIB2，LIB3の読み込みを切り替えることにより、クロック配線のレイアウトを行っているので、構成の簡単なレイアウト・ソフトウェアを用いて容易にドライバ３０Ａ，３０Ｂの置き換えが可能になる。
【００４３】
（ｄ）  本実施例１の他の方法として、ドライバ３０Ａの出力端子Ｙ２に対して配線禁止設定と配線許可設定とをレイアウト・ソフトウェア等により切り替える構成にしておけば、１種類のドライバ３０Ａを用いて最終段のドライバ２０の置き換えが可能になるので、レイアウト工程数を削減できる。
【実施例２】
【００４４】
（実施例２の装置）
本発明の実施例２は、実施例１のレイアウト装置１０及びライブラリLIB1，LIB2，LIB3を使用し、実施例１とは異なるレイアウト・ソフトウェアを実行してクロック配線のレイアウト方法を行うようにしている。
【００４５】
即ち、実施例１では、ＣＴＳの最終段の図４（ａ）のドライバ２０を、図４（ｂ）のドライバ３０Ａで置換しているが、本実施例２では、ＣＴＳの任意のレベルのドライバ２０をドライバ３０Ａで置換し、遅延調整をさらに容易にしている。
【００４６】
（実施例２のレイアウト方法）
図９は、本発明の実施例２の図１中のネットリストNet3の一例を示す回路図、図１０は、本発明の実施例２の図１中のネットリストNet5の一例を示す回路図である。
【００４７】
本実施例２のレイアウト方法では、図１のフローチャートにおいて、第１のレイアウト工程Ｓ２のＣＴＳ結果を示す図５のネットリストNet2に対して、２段目と最終段のドライバ２０のうちの任意のドライバ２０を、図９に示すようにドライバ３０Ａに置換してネットリストNet3を作成する。
【００４８】
次に、実施例１と同様に、第２のレイアウト工程Ｓ５を実施し、この結果出力されるネットリストNet4に対して、第３のレイアウト工程Ｓ７においてＥＣＯ処理が必要か否かを判定し（ステップＳ７−１）、ＥＣＯ処理が必要なときには、図１０に示すように、ドライバ３０Ａをドライバ３０Ｂに置換してネットリストNet5を作成する（ステップＳ７−２）。その後、Ｆ／Ｆ追加有りか否かを判定し（ステップＳ７−３）、追加有りのときにはＥＣＯ処理を行う（ステップＳ７−４）。
【００４９】
図１１は、本発明の実施例２の図１中のＥＣＯ処理（ステップＳ７−４）を示すフローチャートであり、実施例１の図２中の要素と共通の要素には共通の符号が付されている。図１２は、本発明の実施例２の図１中のＥＣＯ処理（ステップＳ７−４）のタイミング調整を示す図である。なお、図１１中のステップＳ１４，Ｓ１５，Ｓ２０や、図１２中の遅延調整素子５１により、遅延調整手段が構成されている。
【００５０】
本実施例２の図１１のＥＣＯ処理（ステップＳ７−４）では、実施例１の図２にステップＳ２０を追加した点のみが異なる。
【００５１】
即ち、図１１のＥＣＯ処理（ステップＳ７−４）が開始されると、図２と同様に、レイアウト装置本体１１により、ライブラリ格納手段１３に格納されたライブラリLIB3と、ネットリスト格納手段１３に格納されたネットリストNet5とが読み込まれ、レイアウト構造において同一であるドライバ３０Ａがドライバ３０Ｂに置換される（ステップＳ１０）。新規Ｆ／Ｆ追加の必要が生じた場合、レイアウト装置本体１１により、その修正箇所近傍に予め埋め込まれた図１２に示す最終段付近のＥＣＯ用予備Ｆ／Ｆ４０−５をサーチすると共に、同系統のクロック信号CLKを使用しているＣＴＳドライバ３０Ｂをサーチする（ステップＳ１２）。レイアウト装置本体１１により、見つけたＣＴＳドライバ３０ＢのＥＣＯ用出力端子Ｙ２を利用して、ＥＣＯで追加したＦ／Ｆ４０−５を接続した場合の遅延時間を算出し、この算出値がタイミング制約を満足しているか否かを確認する（ステップＳ１２，Ｓ１３）。タイミング制約を満足しているときには（ステップＳ１３）、ＥＣＯ処理を終了する。
【００５２】
タイミング制約を満足していないときには（ステップＳ１３）、遅延時間が許容値より大きいか否かを判定し（ステップＳ１４）、判定結果が大きいときには、修正箇所近傍で、１レベル上位のＣＴＳドライバ３０Ｂをサーチし、ステップＳ１１の処理へ戻る。判定結果が小さいときには、予め埋め込まれた近くのドライバ、インバータ等の予備セルを遅延調整素子５１として利用して遅延調整を行い（ステップＳ１５）、ステップＳ１３へ戻ってタイミング制約を満足しているか否かを判定する。タンミング制約が満足されると、ＥＣＯ処理が終了する。
【００５３】
このように、本実施例２では、ＥＣＯ修正時の遅延が大きい場合に、最終段のＣＴＳドライバ３０Ｂを使用するのではなく、最終段のＣＴＳドライバ３０Ｂの１レベル上位のＣＴＳドライバ３０Ｂを利用し、この出力端子Ｙ２から追加のＦ／Ｆ４０−５のクロック端子へ修正クロック配線３６を接続している。
【００５４】
（実施例２の効果）
本実施例２によれば、次の（ａ）〜（ｃ）のような効果がある。
【００５５】
（ａ）  実施例１では、レイアウト完了後におけるクロック配線に関連するＦ／Ｆ追加の修正は、置換した最終段のドライバ３０Ｂの出力端子Ｙ２を使用して追加のＦ／Ｆ４０−５に接続している。ところが、最終段のドライバ３０Ｂの出力を使用すると、従来の末端までのクロック遅延より短くすることが難しい場合がある。理由は追加するＦ／Ｆ４０−５が修正箇所の近くにない場合には、遠く離れた場所にあるＦ／Ｆを使用することになるため、最終段のドライバ３０Ｂからの遅延が大きくなるからである。この場合に、本実施例２のように、最終段より１レベル上位のドライバ３０Ｂから修正クロック配線３６を接続すれば、最終段ではできなかった遅延の短縮化を図ることができ、短ＴＡＴでタイミング収束を実現することが可能となる。
【００５６】
（ｂ）  本実施例２の他の方法として、最終段より１レベル上位のドライバ３０Ｂに代えて、任意のレベルのドライバ３０Ｂから修正クロック配線３６を接続すれば、より効果が大きい。
【００５７】
（ｃ）  本実施例２の他の方法として、実施例１と同様に、ドライバ３０Ａの出力端子Ｙ２に対して配線禁止設定と配線許可設定とをレイアウト・ソフトウェア等により切り替える構成にしておけば、１種類のドライバ３０Ａを用いてドライバ２０の置き換えが可能になるので、レイアウト工程数を削減できる。
【００５８】
なお、本発明は、上記実施例１、２に限定されず、種々の変形が可能である。この変形例としては、例えば、次の（１）〜（３）のようなものがある。
【００５９】
（１）  ドライバ３０Ａ，３０Ｂは、１入力２出力型のものに限定されず、１入力で３以上の出力を行う構造のものを使用しても良く、これにより設計の自由度等がより向上する。又、ドライバ２０，３０Ａ，３０Ｂの構成は、インバータ２段に限定されず、他の段数にしたり、或いは、バッファゲート等の他の素子を用いて構成しても良い。
（２）  クロック信号CLKで駆動される素子は、Ｆ／Ｆ以外の他の素子でも良い。
（３）  図１、図２、図１１の処理は、他の処理内容に変更しても良い。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施例１のクロック配線のレイアウト方法を示すフローチャートである。
【図２】図１中のＥＣＯ処理を示すフローチャートである。
【図３】本発明の実施例１で使用するレイアウト装置を示す概略の構成図である。
【図４】本発明の実施例１で使用するクロック用ドライバを示す概略の回路図である。
【図５】図１中のネットリストNet2の一例を示す回路図である。
【図６】図１中のネットリストNet3の一例を示す回路図である。
【図７】図１中のネットリストNet5の一例を示す回路図である。
【図８】図１中のＥＣＯ処理のタイミング調整を示す図である。
【図９】本発明の実施例２の図１中のネットリストNet3の一例を示す回路図である。
【図１０】本発明の実施例２の図１中のネットリストNet5の一例を示す回路図である。
【図１１】本発明の実施例２の図１中のＥＣＯ処理を示すフローチャートである。
【図１２】本発明の実施例２の図１中のＥＣＯ処理のタイミング調整を示す図である。
【図１３】従来のＣＴＳ後のクロック接続状態の一例を示す回路図である。
【図１４】図１３のＥＣＯ後のクロック接続状態の一例を示す回路図である。
【符号の説明】
【００６１】
１０    レイアウト装置
１１    レイアウト装置本体
１２    ライブラリ格納手段
１３    ネットリスト格納手段
１４    入力装置
１５    表示装置
２０，３０Ａ，３０Ｂ    ドライバ
４０−１〜４０−５    Ｆ／Ｆ
【図１】
2007034668.tif 000003
【図２】
2007034668.tif 000004
【図３】
2007034668.tif 000005
【図４】
2007034668.tif 000006
【図５】
2007034668.tif 000007
【図６】
2007034668.tif 000008
【図７】
2007034668.tif 000009
【図８】
2007034668.tif 000010
【図９】
2007034668.tif 000011
【図１０】
2007034668.tif 000012
【図１１】
2007034668.tif 000013
【図１２】
2007034668.tif 000014
【図１３】
2007034668.tif 000015
【図１４】
2007034668.tif 000016