(57)【要約】【課題】  半導体集積回路チップ内の回路の自動配置を行うレイアウト装置において、クロックゲーティング回路の配置位置等を制御することで低消費電力化を図る。【解決手段】  回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行うレイアウト装置であって、クロックラインに挿入されているクロックゲーティング回路を認識する手段と、認識されたクロックゲーティング回路以外の回路部分の配置を行う手段と、クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する手段とを備える。【選択図】  図７
2007072995.tif 000002
【特許請求の範囲】
【請求項１】
回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行うレイアウト装置であって、
クロックラインに挿入されているクロックゲーティング回路を認識する手段と、
認識されたクロックゲーティング回路以外の回路部分の配置を行う手段と、
クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する手段とを備えたことを特徴とするレイアウト装置。
【請求項２】
回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行うレイアウト装置であって、
クロックラインに挿入され既に配置されているクロックゲーティング回路を認識する手段と、
認識されたクロックゲーティング回路の再配置およびクロックツリー再構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する手段とを備えたことを特徴とするレイアウト装置。
【請求項３】
請求項１または２のいずれか一項に記載のレイアウト装置において、
認識された複数のクロックゲーティング回路を論理的に一つにまとめることが可能であるかを認識する手段と、
一つにまとめることが可能であると認識された場合に複数のクロックゲーティング回路を論理的に一つにまとめる手段とを備えたことを特徴とするレイアウト装置。
【請求項４】
請求項１乃至３のいずれか一項に記載のレイアウト装置において、
認識されたクロックゲーティング回路を論理的に複数に分割すべきであるかを認識する手段と、
複数に分割すべきであると認識された場合にクロックゲーティング回路を論理的に複数に分割する手段とを備えたことを特徴とするレイアウト装置。
【請求項５】
請求項１乃至４のいずれか一項に記載のレイアウト装置において、
ＬＯＣＫＵＰセルを認識する手段と、
認識されたＬＯＣＫＵＰセルにより連結されるスキャンチェーンのクロックスキューが調整可能であるかを認識する手段と、
クロックスキューが調整可能であると認識された場合にＬＯＣＫＵＰセルを削除する手段とを備えたことを特徴とするレイアウト装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のレイアウト装置において、
スキャンチェーンのクロックスキューが調整可能であるかを認識する手段と、
クロックスキューが調整可能でないと認識された場合にＬＯＣＫＵＰセルを挿入する手段とを備えたことを特徴とするレイアウト装置。
【請求項７】
回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行う自動配置配線方法であって、
クロックラインに挿入されているクロックゲーティング回路を認識する工程と、
認識されたクロックゲーティング回路以外の回路部分の配置を行う工程と、
クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する工程とを備えたことを特徴とする自動配置配線方法。
【請求項８】
回路情報に基づいて自動的に配置・配線を行う自動配置配線工程と、配置・配線の結果に基づいてマスクを作成するマスク作成工程と、作成されたマスクによりウェハの製造およびチップの組み立てを行うウェハ製造・チップ組立工程とを含む半導体集積回路製造方法であって、
クロックラインに挿入されているクロックゲーティング回路を認識する工程と、
認識されたクロックゲーティング回路以外の回路部分の配置を行う工程と、
クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する工程とを、
自動配置配線工程に含むことを特徴とする半導体集積回路製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＬＳＩ（Large Scale Integrated Circuit）等の半導体集積回路チップ内の回路の自動配置を行うレイアウト装置、自動配置配線方法および半導体集積回路製造方法に関する。
【背景技術】
【０００２】
ＬＳＩ等の半導体集積回路にあっては、近年のプロセスの微細化、チップの大規模化が進むことにより消費電力の増大が問題となり、低消費電力化が求められている。
【０００３】
図１は消費電力を考慮しない回路構成例を示す図であり、フリップフロップ１０１のデータ入力Ｄと入力データ信号Ｄ_ＩＮの間にマルチプレクサ１０２を配置し、イネーブル信号ＥＮにより入力データ信号Ｄ_ＩＮの通過を制御するようにしたものである。この場合、イネーブル信号ＥＮがＦＡＬＳＥ（０）の時は入力データ信号Ｄ_ＩＮはフリップフロップ１０１のデータ入力Ｄに与えられず、出力データ信号Ｄ_ＯＵＴを保持するのみであるため、フリップフロップとしての動作は必要ないが、フリップフロップ１０１のクロック入力ＣＫにはクロック信号ＣＬＫが与えられ続けるため、フリップフロップ１０１はその度にトグル動作し、電力を消費する。
【０００４】
図２は消費電力を考慮した回路構成例を示す図であり、フリップフロップ１０１のデータ入力Ｄに入力データ信号Ｄ_ＩＮを直接に与える一方、フリップフロップ１０１のクロック入力ＣＫとクロック信号ＣＬＫの間にクロックゲーティング回路を構成するＩＣＧ（Integrated Clock Gating Cell）１０３を配置することで、イネーブル信号ＥＮによりクロック信号ＣＬＫの通過を制御するようにしている。なお、ＩＣＧ１０３はラッチ１０４とＡＮＤゲート１０５から構成され、マクロ化（配置対象としては１回路として扱われる）されたものであるが、個別のラッチ１０４とＡＮＤゲート１０５によりクロックゲーティング回路を構成するようにしてもよい。これにより、イネーブル信号ＥＮがＦＡＬＳＥ（０）の時はフリップフロップ１０１のクロック入力ＣＫにクロック信号ＣＬＫが与えられなくなるため、不要な消費電力を削減することができる。なお、ここではフリップフロップを例にしたが、ラッチ等を含む同期回路一般についていえることである。
【０００５】
一方、特許文献１には同様な技術についての開示があり、低消費電力用にモジュールを準備し、必要最低限にクロック入力を制限する技術が開示されている。
【特許文献１】特開２００５−５００３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したように、図１に示したような回路部分を図２に示したような回路部分に置き換えることで、低消費電力化を図ることができる。また、近年のＥＤＡ（Electronic Design Automation）ツールにおいては、ＲＴＬ（Register Transfer Level）やネットリストを参照することで、そのような置き換えを自動に行う機能も搭載されつつある（例えば、Synopsys社のPower Compiler等）。
【０００７】
しかしながら、このようなクロックラインにクロックゲーティング回路が挿入された回路情報に基づいてレイアウト装置において自動配置配線を行う場合、次のような問題があった。
【０００８】
すなわち、レイアウト装置における自動配置配線にあっては、先ず回路部分の配置が行われ、その後にクロックスキューを考慮したクロックツリーの構築が行われる。この回路部分の配置にあっては、クロックラインに挿入されたクロックゲーティング回路にはタイミング制約は効かないため、回路間の接続情報に基づいて配置が行われることとなり、配置位置を制御することはできず、クロックゲーティング回路はフリップフロップ等の同期回路の近くに配置されてしまうこととなる。図３はクロックツリーを構築する前の配置の例を示す図であり、チップあるいはブロックの枠１００に対し、クロックのルートがバッファ１１０であるとすると、フリップフロップ１１１〜１１３の近傍にＩＣＧ１１７が配置され、フリップフロップ１１４〜１１６の近傍にＩＣＧ１１８が配置されることとなり、ＩＣＧ１１７、１１８はいずれもクロックのルートとなるバッファ１１０から遠い位置に配置される。
【０００９】
その後、クロックツリーの構築が行われるが、クロックルートから離れた回路部分に対してクロックツリー構築を行うと、クロックスキュー調整およびクロック信号の鈍り防止のために複数のバッファが挿入される。図４はクロックツリーを構築した状態の配置の例を示す図であり、クロックのルートとなるバッファ１１０とＩＣＧ１１７、１１８の間にバッファ１１９〜１２２が挿入されている。
【００１０】
ここで問題となるのは、クロックツリー構築により挿入されたバッファ１１９〜１２２による消費電力である。すなわち、フリップフロップ１１１〜１１６についてはＩＣＧ１１７、１１８により必要最低限の消費電力に抑えられるものの、ＩＣＧ１１７、１１８の手前に配置されるバッファ１１９〜１２２についてはクロック信号が与えられ続けてトグル動作するため電力を消費することになるからである。
【００１１】
なお、ＥＤＡツールによってはクロックゲーティング回路の前段にクロックツリーを構築するか、クロックゲーティング回路の後段にクロックツリーを構築するかを切り替えられるようにしたものもある。しかしながら、クロックゲーティング回路の前段にクロックツリーを構築する場合は、クロックスキューの調整が容易になるという利点はあるものの、図４で説明したのと同じ状態となり、消費電力の増大は避けられない。一方、クロックゲーティング回路の後段にクロックツリーを構築する場合は、一見すると消費電力の増大を避けられるように思えるが、既にクロックゲーティング回路がフリップフロップ等の同期回路の近くに配置されてしまっているため、クロックスキューの調整が困難ないしは不可能となる。なお、クロックゲーティング回路は大規模な半導体集積回路になると数千〜数万のオーダとなるため、マニュアル操作によってクロックルートの近傍に配置変更することは実質的に不可能である。
【００１２】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、クロックゲーティング回路の配置位置等を制御することで低消費電力化を図ることのできるレイアウト装置、自動配置配線方法および半導体集積回路製造方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行うレイアウト装置であって、クロックラインに挿入されているクロックゲーティング回路を認識する手段と、認識されたクロックゲーティング回路以外の回路部分の配置を行う手段と、クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する手段とを備えるレイアウト装置を要旨としている。
【００１４】
また、請求項２に記載されるように、回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行うレイアウト装置であって、クロックラインに挿入され既に配置されているクロックゲーティング回路を認識する手段と、認識されたクロックゲーティング回路の再配置およびクロックツリー再構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する手段とを備えるものとすることができる。
【００１５】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載のレイアウト装置において、認識された複数のクロックゲーティング回路を論理的に一つにまとめることが可能であるかを認識する手段と、一つにまとめることが可能であると認識された場合に複数のクロックゲーティング回路を論理的に一つにまとめる手段とを備えるものとすることができる。
【００１６】
また、請求項４に記載されるように、請求項１乃至３のいずれか一項に記載のレイアウト装置において、認識されたクロックゲーティング回路を論理的に複数に分割すべきであるかを認識する手段と、複数に分割すべきであると認識された場合にクロックゲーティング回路を論理的に複数に分割する手段とを備えるものとすることができる。
【００１７】
また、請求項５に記載されるように、請求項１乃至４のいずれか一項に記載のレイアウト装置において、ＬＯＣＫＵＰセルを認識する手段と、認識されたＬＯＣＫＵＰセルにより連結されるスキャンチェーンのクロックスキューが調整可能であるかを認識する手段と、クロックスキューが調整可能であると認識された場合にＬＯＣＫＵＰセルを削除する手段とを備えるものとすることができる。
【００１８】
また、請求項６に記載されるように、請求項１乃至５のいずれか一項に記載のレイアウト装置において、スキャンチェーンのクロックスキューが調整可能であるかを認識する手段と、クロックスキューが調整可能でないと認識された場合にＬＯＣＫＵＰセルを挿入する手段とを備えるものとすることができる。
【００１９】
また、請求項７に記載されるように、回路情報に基づいて半導体集積回路内の回路部分の配置・配線を行う自動配置配線方法であって、クロックラインに挿入されているクロックゲーティング回路を認識する工程と、認識されたクロックゲーティング回路以外の回路部分の配置を行う工程と、クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する工程とを備える自動配置配線方法として構成することができる。
【００２０】
また、請求項８に記載されるように、回路情報に基づいて自動的に配置・配線を行う自動配置配線工程と、配置・配線の結果に基づいてマスクを作成するマスク作成工程と、作成されたマスクによりウェハの製造およびチップの組み立てを行うウェハ製造・チップ組立工程とを含む半導体集積回路製造方法であって、クロックラインに挿入されているクロックゲーティング回路を認識する工程と、認識されたクロックゲーティング回路以外の回路部分の配置を行う工程と、クロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する工程とを、自動配置配線工程に含む半導体集積回路製造方法として構成することができる。
【発明の効果】
【００２１】
本発明のレイアウト装置、自動配置配線方法および半導体集積回路製造方法にあっては、クロックゲーティング回路の配置位置等を制御することで低消費電力化を図ることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な実施形態につき説明する。
【００２３】
図５は本発明の一実施形態にかかる半導体集積回路の製造工程の例を示す図である。図５において、半導体集積回路の製造工程は、実現したい回路をＳｙｓｔｅｍＣなどのシステム設計言語を用いて記述することで設計を行う工程（ステップＳ１）と、システム設計言語のプログラムに基づいてＲＴＬによる表現を生成（動作合成）する工程（ステップＳ２）と、生成されたＲＴＬに基づいて論理合成を行う工程（ステップＳ３）と、論理合成の結果に基づいて自動的に配置・配線を行う工程（ステップＳ４）と、配置・配線の結果に基づいてマスクを作成する工程（ステップＳ５）と、作成されたマスクによりウェハの製造およびチップの組み立てを行う工程（ステップＳ６）とを備えている。
【００２４】
図６は自動配置配線工程を実施するレイアウト装置の構成例を示す機能ブロック図である。図６において、レイアウト装置１は、デザインルール、ライブラリ、ＲＴＬ／ネットリスト、タイミング制約等の情報を読み込む情報読込部２と、読み込んだ情報に基づいてフロアプランを実施するフロアプラン実施部３と、回路部分の配置、クロックツリー構築（ＣＴＳ：Clock Tree Synthesis）、配置の最適化を行う配置・ＣＴＳ・最適化部４と、ＤＦＴ（Design For Testability）のために挿入されるＬＯＣＫＵＰセルの削除もしくは挿入を行うＬＯＣＫＵＰセル削除／挿入部５と、タイミングの最適化を行うタイミング最適化部６と、信号配線を行う信号配線部７とを備えている。また、配置・ＣＴＳ・最適化部４は、クロックラインの認識を行うクロックライン認識部４１と、クロックラインに挿入されたクロックゲーティング回路の認識を行うクロックゲーティング回路認識部４２と、クロックゲーティング回路をいったん削除するクロックゲーティング回路削除部４３と、クロックゲーティング回路以外の回路部分の配置・最適化を行う他回路配置・最適化部４４と、クロックゲーティング回路をまとめあるいは分割するクロックゲーティング回路まとめ／分割部４５と、いったん削除したクロックゲーティング回路を配置してクロックツリー構築を行うクロックゲーティング回路配置／ＣＴＳ実施部４６とを備えている。
【００２５】
図７は自動配置配線の処理例を示すフローチャートである。
【００２６】
図７において、先ず、デザインルール、ライブラリ、ＲＴＬもしくはネットリスト、タイミング制約を読み込む（ステップＳ４０１、Ｓ４０２）。
【００２７】
次に、フロアプランを実施し、Ｉ／Ｏ（Input/Output）位置、チップサイズ、ハードマクロの配置位置を決定する（ステップＳ４０３）。
【００２８】
次に、作成する回路内のクロックラインを認識する（ステップＳ４０４）。ここで、クロックラインは、既に読み込んだタイミング制約を元に認識してもよいし、同期回路（フリップフロップ、ラッチ等）のクロックラインよりトレースして認識してもよい。
【００２９】
次に、認識したクロックラインにクロックゲーティング回路に相当する組み合わせ回路が存在しているかどうかをチェックする（ステップＳ４０５）。ここで、組み合わせ回路がクロックゲーティング回路であるか否かの判断は、その回路の後段にクロック信号が無条件に伝わるか、イネーブル信号等によって停止されるかによって判断する。なお、ＩＣＧのようなマクロ化されたセルにあっては、セル名から判断することもできる。
【００３０】
そして、クロックゲーティング回路が存在せず、直接に同期回路のクロック入力へのみクロックが到達している場合には、配置・ＣＴＳ・最適化を実施する（ステップＳ４０６）。
【００３１】
クロックラインにクロックゲーティング回路が存在している場合、そのクロックゲーティング回路を初期配置対象から除外する（ステップＳ４０７）。これは、クロックラインに挿入されたクロックゲーティング回路は、通常のレイアウト時にはタイミング制約の効かない箇所であり、タイミング制約が効かないセルに関してはそのセルの接続情報を元にセル配置が実行されてしまい、同期回路に引き寄せられてしまって消費電力を最適に考慮したレイアウトとならない場合があるからである。
【００３２】
次に、クロックラインのクロックゲーティング回路以外のセルを配置する（ステップＳ４０８）。クロックラインのクロックゲーティング回路を初期配置させないことにより、本来タイミング調整が必要なセルに対して最適な配置結果を得ることが可能となる。なお、このステージでクロックツリー構築を行う前のオプティマイズ（最適化）も実行する。
【００３３】
次に、クロックラインのクロックゲーティング回路のまとめもしくは分割を行う（ステップＳ４０９）。すなわち、同期回路の配置を認識し、クロックスキューが調整可能であれば、複数のクロックゲーティング回路を一つにまとめる。なお、まとめることができるクロックゲーティング回路は、同じクロックに基づくものであり、同一条件で供給・停止がされることが前提となる。クロックゲーティング回路をまとめることで、消費電力および配置エリアを削減することができる。また、同期回路の配置を認識し、クロックスキューが調整不可能であれば、一つのクロックゲーティング回路を複数に分割する。いずれの場合も、レイアウト時において同期回路の配置後であってクロックツリー構築前に、同期回路の配置を考慮してクロックゲーティング回路をまとめるまたは分割する点がポイントである。すなわち、レイアウト前のネットリストにてクロックゲーティング回路をまとめることは既存技術にも存在するが、同期回路の配置が考慮できないため、クロック調整に手間取ることが考えられる。しかし、このようにクロックツリー構築前にまとめることでそのような問題がなくなる。また、クロックゲーティング回路を配置してしまった後にまとめたり分割したりする場合、一旦配置してしまっているため調整は難しいが、このようにクロックゲーティング回路を配置する前に行うものであるため、そのような問題がない。
【００３４】
次に、クロックラインのクロックゲーティング回路の配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する（ステップＳ４１０）。図８はクロックツリーを構築した状態の配置の例を示す図であり、クロックのルートのバッファ１１０に近い位置にＩＣＧ１１７、１１８を配置し、既に最適位置に配置したフリップフロップ１１１〜１１６との間にクロックツリーのバッファ１１９〜１２４を配置する。クロックゲーティング回路をクロックルートに近い初段に配置してやることにより、その手前にクロックツリーを構築する必要はなくなり、クロックツリーを構成するセルによる消費電力を削減することができる。
【００３５】
次に、図７に戻り、ＬＯＣＫＵＰセルの処理を行う（ステップＳ４１１〜Ｓ４１４）。ＬＯＣＫＵＰセルは前述したようにＤＦＴのために挿入されるものであり、異なるクロックラインに存在するフリップフロップ等の同期回路のスキャンチェーンの間に、スキュー調整のために挿入されるものである。図９はＬＯＣＫＵＰセルが挿入されたクロックツリーの構成例を示す図であり、フリップフロップ１１１〜１１３とフリップフロップ１１４〜１１６は別々のクロックツリーが構築されているため、それぞれスキャンチェーン（図示せず）が組まれ、フリップフロップ１１３の出力とフリップフロップ１１４のスキャンイン入力の間にＬＯＣＫＵＰセル１２５が挿入されている。ここで、双方のスキャンチェーンにおけるクロックスキューが悪い場合にはＬＯＣＫＵＰセル１２５が必要となるが、同じルートからのクロックに基づくＩＣＧ１１７、１１８からクロックツリーが構築される場合はクロックスキューに問題がない場合が多く、そのような場合はＬＯＣＫＵＰセル１２５を削除しても問題はない。ＬＯＣＫＵＰセル１２５を削除することで消費電力および配置エリアを削減することができる。
【００３６】
そこで、図７においては、異なるクロックラインにおけるクロックスキューが十分であるか否かチェックし（ステップＳ４１１）、十分である場合には、続いてＬＯＣＫＵＰセルが挿入されているか否かチェックし（ステップＳ４１２）、挿入されている場合にはそのＬＯＣＫＵＰセルを削除する（ステップＳ４１３）。また、異なるクロックラインにおけるクロックスキューが十分でない場合は、ＬＯＣＫＵＰセルの挿入を行う（ステップＳ４１４）。このように、自動配置配線時にクロックツリーを実施した後、ＬＯＣＫＵＰセルについて最適な処理が行われる。
【００３７】
次に、クロックツリー構築後のタイミング最適化を実施し（ステップＳ４１５）、信号配線を実施し（ステップＳ４１６）、レイアウト完了となる。
【００３８】
以上の処理により、消費電力を考慮に入れた最適なレイアウト結果を得ることができる。
【００３９】
なお、上記の実施形態では、説明を分かりやすくするため、クロックラインに繋がるクロックゲーティング回路を初期配置時に配置対象から取り除いているが、既に配置されてしまったクロックゲーティング回路を、クロックツリー構築時に完全に再配置し、クロックルートに近づけるようにすることも可能である。
【００４０】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【図面の簡単な説明】
【００４１】
【図１】消費電力を考慮しない回路構成例を示す図である。
【図２】消費電力を考慮した回路構成例を示す図である。
【図３】クロックツリーを構築する前の配置の例を示す図である。
【図４】クロックツリーを構築した状態の配置の例を示す図である。
【図５】本発明の一実施形態にかかる半導体集積回路の製造工程の例を示す図である。
【図６】自動配置配線工程を実施するレイアウト装置の構成例を示す機能ブロック図である。
【図７】自動配置配線の処理例を示すフローチャートである。
【図８】クロックツリーを構築した状態の配置の例を示す図である。
【図９】ＬＯＣＫＵＰセルが挿入されたクロックツリーの構成例を示す図である。
【符号の説明】
【００４２】
１      レイアウト装置
２      情報読込部
３      フロアプラン実施部
４      配置・ＣＴＳ・最適化部
４１    クロックライン認識部
４２    クロックゲーティング回路認識部
４３    クロックゲーティング回路削除部
４４    他回路配置・最適化部
４５    クロックゲーティング回路まとめ／分割部
４６    クロックゲーティング回路配置／ＣＴＳ実施部
５      ＬＯＣＫＵＰセル削除／挿入部
６      タイミング最適化部
７      信号配線部
【図１】
2007072995.tif 000003
【図２】
2007072995.tif 000004
【図３】
2007072995.tif 000005
【図４】
2007072995.tif 000006
【図５】
2007072995.tif 000007
【図６】
2007072995.tif 000008
【図７】
2007072995.tif 000009
【図８】
2007072995.tif 000010
【図９】
2007072995.tif 000011