(57)【要約】【課題】消費電力を一層低減することができる自動配置配線方法およびレイアウト装置を提供する。【解決手段】クロックゲーティングセルを用いてクロックツリーを構成する際に、イネーブル信号が共通のクロックゲーティングセルを１つにまとめた後に、フリップフロップの配置位置に基づいて、クロックゲーティングセルを分割、再配置し、その後にクロックツリー配線を行い、クロックドライバを挿入する。【選択図】図２
2009053830.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路における回路素子の配置および配線を行う自動配置配線方法において、
前記半導体集積回路を形成するための回路素子である複数種のセル情報を含むセルライブラリを読み込む第１の工程と、
前記半導体集積回路の回路情報が記述されたネットリストを読み込む第２の工程と、
前記セルライブラリに基づいて前記ネットリストに使用されているセルの配置を行う第３の工程と、
イネーブル信号線が共通であるクロックゲーティングセルを抽出する第４の工程と、
前記第３の工程で配置されたセルのうちフリップフロップの配置位置を認識する第５の工程と、
前記第５の工程で認識した前記フリップフロップの配置位置に応じて前記クロックゲーティングセルの再配置または前記クロックゲーティングセルの配線変更を行う第６の工程と、
前記フリップフロップおよびクロックゲーティングセルに対してクロックツリーを構築する第７の工程と、
を順次有していることを特徴とする自動配置配線方法。
【請求項２】
前記第６の工程では、前記イネーブル信号線が共通であるクロックゲーティングセルを一つにまとめた後、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルを分割して再配置を行うことを特徴とする請求項１に記載の自動配置配線方法。
【請求項３】
前記第６の工程では、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルの出力端子に接続されている配線を変更することを特徴とする請求項１に記載の自動配置配線方法。
【請求項４】
半導体集積回路における回路素子の配置および配線を行うレイアウト装置において、
半導体集積回路を形成するための回路素子である複数種のセル情報を含むセルライブラリを読み込むセルライブラリ読み込み手段と、
前記半導体集積回路の回路情報が記述されたネットリストを読み込むネットリスト読み込み手段と、
前記セルライブラリに基づいて前記ネットリストに使用されているセルの配置を行う配置手段と、
イネーブル信号線が共通であるクロックゲーティングセルを抽出する抽出手段と、
前記配置手段によって配置されたセルのうちフリップフロップの配置位置を認識する配置位置認識手段と、
前記配置位置認識手段が認識した前記フリップフロップの配置位置に応じて前記クロックゲーティングセルの再配置または前記クロックゲーティングセルの配線変更を行う変更手段と、
前記フリップフロップおよびクロックゲーティングセルに対してクロックツリーを構築するクロックツリー構築手段と、
を有していることを特徴とするレイアウト装置。
【請求項５】
前記変更手段が、前記イネーブル信号線が共通であるクロックゲーティングセルを一つにまとめた後、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルを分割して再配置を行うように設定されていることを特徴とする請求項４に記載のレイアウト装置。
【請求項６】
前記変更手段が、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルの出力端子に接続されている配線を変更するように設定されていることを特徴とする請求項４に記載のレイアウト装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＬＳＩ（Large Scale Integrated circuit）等の半導体集積回路における回路の自動配置および配線を行う自動配置配線方法およびレイアウト装置に関する。
【背景技術】
【０００２】
近年のＬＳＩ設計では、低消費電力設計の重要性が増してきている。その中でもダイナミック電流の削減は重要であり、動作が必要な回路にのみクロック信号を供給するクロックゲーティングの技術は必須となってきている。
【０００３】
図７にクロックゲーティングの回路例を示す。図７に示した回路は、フリップフロップ１０１のクロック信号線クロックゲーティングセル（ＩＣＧセル：Insert Clock Gatingセル）１０２を挿入する。クロックゲーティングセル１０２はラッチ１０３とＡＮＤゲート１０４とから構成され、マクロ化（配置対象としては１回路として扱われる）されたものであるが、個別のラッチとＡＮＤゲートにより構成するようにしてもよい。
【０００４】
図７に示した回路では、ＥＮＡＢＬＥ信号がＬｏｗのときはＣＬＫがフリップフロップ１０１のクロック入力端子にされないので、フリップフロップ１０１の動作を停止させることができ、低消費電力化を図ることが可能となる。
【０００５】
上述したようなクロックゲーティングセルの挿入は、ＥＤＡ（Electronic Design Automation）ツールによる自動化が可能となり、例えば図８に示すようなＲＴＬ（Register Transfer Level）記述やネットリストを参照することで、クロックゲーティングセルの挿入が自動的に行われる（例えば、Synopsys社のPower Compiler等）。
【０００６】
ただし、このようなクロックゲーティング方法はレイアウトを考慮しておらず、クロックゲーティングセルの先に繋がるフリップフロップの配置位置を考慮していないため、クロックゲーティングセルの配置位置によっては消費電力を低減できないという問題があった。
【０００７】
クロックゲーティングの低消費電力化に関しては、例えば特許文献１に記載の半導体集積回路が提案されている。特許文献１に記載の半導体集積回路はクロックゲーティングセルの先に遅延回路を付加することにより、イネーブル信号によりクロックを止めると、遅延回路も止まるため、低消費電力化が図れるというものである。
【特許文献１】特開２００６−９３３９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の半導体集積回路においても、フリップフロップの配置位置は考慮されていないため、最適な場所にクロックゲーティングセルが置かれるとは限らない。したがって、クロックゲーティングセルの配置位置によっては消費電力を低減できないという問題は依然として解決できない。
【０００９】
よって、本発明は、消費電力を一層低減することができる自動配置配線方法およびレイアウト装置を提供することを課題とする。
【課題を解決するための手段】
【００１０】
請求項１に記載の自動配置配線方法は、半導体集積回路における回路素子の配置および配線を行う自動配置配線方法において、前記半導体集積回路を形成するための回路素子である複数種のセル情報を含むセルライブラリを読み込む第１の工程と、前記半導体集積回路の回路情報が記述されたネットリストを読み込む第２の工程と、前記セルライブラリに基づいて前記ネットリストに使用されているセルの配置を行う第３の工程と、イネーブル信号線が共通であるクロックゲーティングセルを抽出する第４の工程と、前記第３の工程で配置されたセルのうちフリップフロップの配置位置を認識する第５の工程と、前記第５の工程で認識した前記フリップフロップの配置位置に応じて前記クロックゲーティングセルの再配置または前記クロックゲーティングセルの配線変更を行う第６の工程と、前記フリップフロップおよびクロックゲーティングセルに対してクロックツリーを構築する第７の工程と、を順次有していることを特徴としている。
【００１１】
請求項２に記載の自動配置配線方法は、請求項１に記載の自動配置配線方法において、前記第６の工程では、前記イネーブル信号線が共通であるクロックゲーティングセルを一つにまとめた後、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルを分割して再配置を行うことを特徴としている。
【００１２】
請求項３に記載の自動配置配線方法は、請求項１に記載の自動配置配線方法において、前記第６の工程では、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルの出力端子に接続されている配線を変更することを特徴としている。
【００１３】
請求項４に記載のレイアウト装置は、半導体集積回路における回路素子の配置および配線を行うレイアウト装置において、半導体集積回路を形成するための回路素子である複数種のセル情報を含むセルライブラリを読み込むセルライブラリ読み込み手段と、前記半導体集積回路の回路情報が記述されたネットリストを読み込むネットリスト読み込み手段と、前記セルライブラリに基づいて前記ネットリストに使用されているセルの配置を行う配置手段と、イネーブル信号線が共通であるクロックゲーティングセルを抽出する抽出手段と、前記配置手段によって配置されたセルのうちフリップフロップの配置位置を認識する配置位置認識手段と、前記配置位置認識手段が認識した前記フリップフロップの配置位置に応じて前記クロックゲーティングセルの再配置または前記クロックゲーティングセルの配線変更を行う変更手段と、前記フリップフロップおよびクロックゲーティングセルに対してクロックツリーを構築するクロックツリー構築手段と、を有していることを特徴としている。
【００１４】
請求項５に記載のレイアウト装置は、請求項４に記載のレイアウト装置において、前記変更手段が、前記イネーブル信号線が共通であるクロックゲーティングセルを一つにまとめた後、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルを分割して再配置を行うように設定されていることを特徴としている。
【００１５】
請求項６に記載のレイアウト装置は、請求項４に記載のレイアウト装置において、前記変更手段が、前記フリップフロップの配置位置に基づいて前記クロックゲーティングセルの出力端子に接続されている配線を変更するように設定されていることを特徴としている。
【発明の効果】
【００１６】
請求項１に記載の自動配置配線方法によれば、フリップフロップの配置位置に基づいてイネーブル信号が共通のクロックゲーティングセルを再配置または配線変更を行うためにフリップフロップとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するので消費電力をより一層低減することができる。
【００１７】
請求項２に記載の自動配置配線方法によれば、一旦クロックゲーティングセルを１つにまとめた後に、フリップフロップの配置位置に基づいてクロックゲーティングセルを分割配置することで、フリップフロップとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するので消費電力をより一層低減することができる。
【００１８】
請求項３に記載の自動配置配線方法によれば、フリップフロップの配置位置に基づいてクロックゲーティングセルの出力端子に接続されている配線を変更するので、フリップフロップの配置近くのクロックゲーティングセルへ繋ぎかえることでフリップフロップとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するにことよる消費電力の削減ができるために消費電力をより一層低減することができる。
【００１９】
請求項４に記載のレイアウト装置によれば、変更手段によって、フリップフロップの配置位置に基づいてイネーブル信号が共通のクロックゲーティングセルを再配置または配線変更を行うためにフリップフロップとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するために消費電力をより一層低減することができる。
【００２０】
請求項５に記載のレイアウト装置によれば、変更手段が、一旦クロックゲーティングセルを１つにまとめた後に、フリップフロップの配置位置に基づいてクロックゲーティングセルを分割配置することで、フリップフロップとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するために消費電力をより一層低減することができる。
【００２１】
請求項６に記載のレイアウト装置によれば、変更手段が、フリップフロップの配置位置に基づいてクロックゲーティングセルの出力端子に接続されている配線を変更するので、フリップフロップの配置近くのクロックゲーティングセルへ繋ぎかえることでフリップフロップとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するために消費電力をより一層低減することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の一実施形態を、図１ないし図５を参照して説明する。図１は、本発明の一実施形態にかかるレイアウト装置のブロック図である。図２は、図１に示されたレイアウト装置の動作を示すフローチャートである。図３は、消費電力を考慮していないクロックツリー構成例を示す回路図である。図４は、図３の構成においてクロックゲーティングセルを１つにまとめた回路図である。図５は、図４の回路図からクロックゲーティングセルを最適化した回路図である。
【００２３】
図１に示したレイアウト装置１は、情報読み込み部２と、フロアプラン部３と、セル配置部４と、クロックツリー部５と、信号配線部６と、から構成されている。レイアウト装置１は半導体集積回路におけるセルなどの回路素子を自動配置配線する装置である。
【００２４】
セルライブラリ読み込み手段、ネットリスト読み込み手段としての情報読み込み部２は、使用するプロセスのデザインルールや半導体集積回路を形成するための回路素子である複数種のセル情報を含むセルライブラリ、回路情報が記述されたネットリストやタイミング制約を読み込む。
【００２５】
フロアプラン部３は、情報読み込み部２が読み込んだ情報に基づいてチップサイズ、Ｉ／Ｏ配置位置、ハードマクロの配置位置などを決定する。
【００２６】
配置手段としてのセル配置部４は、情報読み込み部２が読み込んだ情報に基づいてセルの配置を行う。
【００２７】
抽出手段、配置位置認識手段、変更手段、クロックツリー構築手段としてのクロックツリー部５は、セル配置部４で配置されたセル（特にフリップフロップ）の配置を考慮してクロックゲーティングセルの配置やクロックドライバの挿入およびクロックツリー配線の構築を行う。
【００２８】
信号配線部６は、クロックツリー部５においてクロックツリー配線が終了した回路の各セルやハードマクロおよびＩ／Ｏなどへの信号線の配線を行う。
【００２９】
上述した構成のレイアウト装置１は、各機能ブロックをプログラムで実現してパーソナルコンピュータなどのコンピュータ機器に搭載してもよい。その場合、使用者はコンピュータに取り付けられたキーボードやマウスおよびディスプレイなどを用いて操作および結果の確認等を行うことができる。
【００３０】
次に、上述した構成のレイアウト装置１の動作を図２を参照して説明する。
【００３１】
まず、第１の工程としてのステップＳ１において、デザインルール、セルライブラリを情報読み込み部２が読み込みステップＳ２に進む。
【００３２】
次に、第２の工程としてのステップＳ２において、ネットリスト、タイミング制約を情報読み込み部２が読み込みステップＳ３に進む。
【００３３】
次に、ステップＳ３において、ステップＳ１およびＳ２で読み込んだ情報を基に、フロアプラン部３がフロアプランを実施し、チップサイズ、Ｉ／Ｏ配置位置、ハードマクロの配置位置などを決定し、ステップＳ４に進む。
【００３４】
次に、第３の工程としてのステップＳ４において、ステップＳ２で読み込んだタイミング制約に基づいてセル配置部４がセルの配置を行いステップＳ５に進む。この処理によりフリップフロップの配置位置が決定される。
【００３５】
次に、第４の工程としてのステップＳ５において、クロックツリー部５が、イネーブル信号が共通であるクロックゲーティングセルを抽出し、ステップＳ６に進む。
【００３６】
次に、第５の工程としてのステップＳ６において、クロックツリー部５が、クロックゲーティングセルの先に接続されるフリップフロップの配置位置を認識、抽出しステップＳ７に進む。
【００３７】
次に、第６の工程としてのステップＳ７において、ステップＳ５で抽出したイネーブル信号が共通であるクロックゲーティングセルの情報と、ステップＳ６で抽出したフリップフロップの配置位置に基づいて、クロックツリー部５がクロックゲーティングセルの最適化を行いステップＳ８に進む。
【００３８】
ここで、ステップＳ７における最適化について詳細に説明する。図３は、本発明を適用しないクロックツリー構成の回路である。図３の回路は６個のフリップフロップ（ＦＦ）１１，１２，１３，１４，１５，１６と、クロックゲーティングセルとしてのＩＣＧ１７，１８と、ルートドライバ１９と、クロックドライバ２０，２１，２２，２３，２４，２５，２６，２７，２８，２９，３０とから構成されている。図３は各セルの配置関係を意図して記載している。
【００３９】
図３の回路は、クロック信号が入力されるルートドライバ１９の後段にクロックドライバ２４が接続され、そこから分岐して、一方はクロックドライバ２３、２２を経由してＩＣＧ１７に接続されて、他方はクロックドライバ２５、２６を経由してＩＣＧ１８に接続されている。ＩＣＧ１７、１８は同じイネーブル信号であるＥＮが入力され、ＩＣＧ１７の出力は、フリップフロップ１１、１２、１４のクロック端子にクロックドライバ２０、２１、２８をそれぞれ経由して接続されている。ＩＣＧ１８の出力は、フリップフロップ１３、１５、１６のクロック端子にクロックドライバ２７、２９、３０をそれぞれ経由して接続されている。
【００４０】
図３において、ＩＣＧ１７の出力が、クロックドライバ２８を経由してフリップフロップ１４に接続されている。また、ＩＣＧ１８の出力が、クロックドライバ２７を経由してフリップフロップ１３に接続されている。これらは配線が長大となってしまい、配線容量が大きくなることから消費電力が増大してしまう。
【００４１】
また、ＩＣＧ１７、１８の配置位置がクロックドライバ２４から離れているため、クロックドライバ２４とＩＣＧ１７、１８との間にクロックドライバを２個ずつ挿入していることから、クロックドライバ分の消費電力が増大してしまう。
【００４２】
そこで、図４に示すように、まず、イネーブル信号ＥＮが共通であるＩＣＧ１７とＩＣＧ１８とを１つのＩＣＧ３１にまとめる。そして、フリップフロップの配置位置を確認して、最適な数のＩＣＧに分割し最適な位置に配置する。図４の場合は図５に示すように２つのＩＣＧ３２、３３に分割し配置している。最適な位置や最適な数とは、消費電力が最も少なくなる位置であり数である。すなわち、イネーブル信号線が共通であるクロックゲーティングセルを一つにまとめ、そして、フリップフロップの配置位置に基づいてクロックゲーティングセルを分割配置することで再配置を行っている。
【００４３】
次に、第７の工程としてのステップＳ８において、クロックツリー部５がクロックツリー構築を実施する。つまり、ステップＳ７において最適化されたクロックゲーティングセルとフリップフロップに対してクロックツリー配線を行う。
【００４４】
次に、ステップＳ９において、クロックツリー部５が、クロックツリー遅延を考慮に入れたタイミングの最適化を行いステップＳ１０に進む。ステップＳ８で配線したクロックツリーに対してクロックスキューなどのタイミングが最適になるようにクロックドライバを挿入する。ここで図５のクロックドライバ３４〜４０を挿入してクロックツリーを完成させる。
【００４５】
次に、ステップＳ１０において、信号配線部６が各セルやハードマクロおよびＩ／Ｏなどへの信号線の配線を実施し処理を完了する。
【００４６】
本実施形態によれば、クロックゲーティングセルを用いてクロックツリーを構成する際に、イネーブル信号が共通のクロックゲーティングセルを１つにまとめた後に、フリップフロップの配置位置に基づいて、クロックゲーティングセルを分割、再配置し、その後にクロックツリー配線を行い、クロックドライバを挿入するために、フリップフロップとクロックゲーティングセルとの配線やルートドライバとクロックゲーティングセルとの配線を短くすることができる。したがってクロックバッファの削減や配線容量が減少するので消費電力をより一層低減することができる。
【００４７】
なお、上述した実施形態ではクロックゲーティングセルを一旦まとめてから分割していたが、例えば、図６に示すように、フリップフロップ１３と１４の配線をそれぞれのフリップフロップの近辺にあるクロックゲーティングセル（ＩＣＧ）に接続するように配線を変更し、最適化によって不用なクロックドライバがあれば削除するようにしても良い。消費電力は図５の回路の方が低くできるが、図６の回路でも図４の回路よりは消費電力が低減できるため、例えば信号線の配線後に、クロックツリーのみを修正したい場合は、ＩＣＧの再配置が困難な場合があるので、図６に示すような配線変更を適用すると良い。
【００４８】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施形態にかかるレイアウト装置のブロック図である。
【図２】図１に示されたレイアウト装置の動作を示すフローチャートである。
【図３】消費電力を考慮していないクロックツリー構成例を示す回路図である。
【図４】図３の構成においてクロックゲーティングセルを１つにまとめた回路図である。
【図５】図４の回路図からクロックゲーティングセルを最適化した回路図である。
【図６】クロックゲーティングセルを最適化した変形例を示す回路図である。
【図７】クロックゲーティング回路の説明図である。
【図８】クロックゲーティング回路のＲＴＬ記述の例である。
【符号の説明】
【００５０】
１      レイアウト装置
２      情報読み込み部（ネットリスト読み込み手段、セルライブラリ読み込み手段）
４      セル配置部（配置手段）
５      クロックツリー部（抽出手段、配置位置認識手段、変更手段、クロックツリー構築手段）
１１〜１６    フリップフロップ
１７、１８    ＩＣＧ（クロックゲーティングセル）
Ｓ１    デザインルール、ライブラリ読み込み（第１の工程）
Ｓ２    ネットリスト、タイミング制約読み込み（第２の工程）
Ｓ４    セル配置実施（第３の工程）
Ｓ５    クロックゲーティングセル抽出（第４の工程）
Ｓ６    フリップフロップ配置位置抽出（第５の工程）
Ｓ７    クロックゲーティングセル最適化（第６の工程）
Ｓ８    クロックツリー実施（第７の工程）
【図１】
2009053830.tif 000003
【図２】
2009053830.tif 000004
【図３】
2009053830.tif 000005
【図４】
2009053830.tif 000006
【図５】
2009053830.tif 000007
【図６】
2009053830.tif 000008
【図７】
2009053830.tif 000009
【図８】
2009053830.tif 000010