JP2011107769A - 半導体集積回路のレイアウト装置及びクロックゲーティング方法 - Google Patents

半導体集積回路のレイアウト装置及びクロックゲーティング方法 Download PDF

Info

Publication number
JP2011107769A
JP2011107769A JP2009259093A JP2009259093A JP2011107769A JP 2011107769 A JP2011107769 A JP 2011107769A JP 2009259093 A JP2009259093 A JP 2009259093A JP 2009259093 A JP2009259093 A JP 2009259093A JP 2011107769 A JP2011107769 A JP 2011107769A
Authority
JP
Japan
Prior art keywords
circuit
clock
clock gating
branch point
gating circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009259093A
Other languages
English (en)
Inventor
Yusuke Ito
祐輔 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009259093A priority Critical patent/JP2011107769A/ja
Publication of JP2011107769A publication Critical patent/JP2011107769A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】スイッチング時におけるセルによる消費電力を削減することができる半導体集積回路のレイアウト装置及びクロックゲーティング方法を提供すること。
【解決手段】本発明にかかるレイアウト装置51は、イネーブル信号生成処理部55と、クロックゲーティング回路追加処理部56とを備えている。イネーブル信号生成処理部55は、第1の分岐点よりも後段に位置する第1のクロックゲーティング回路に入力される第1の制御信号と、第1の分岐点よりも後段に位置する同期回路の位置とに基づいて、第2のクロックゲーティング回路に入力する第2の制御信号を生成する。クロックゲーティング回路追加処理部56は、第2の制御信号と、第2のクロックゲーティング回路よりも後段に位置する回路素子数と、に基づいて、第2のクロックゲーティング回路を配置する。
【選択図】図1

Description

本発明は半導体集積回路のレイアウト装置及びクロックゲーティング方法に関し、特にクロックゲーティング回路を有する半導体集積回路のレイアウト装置及びクロックゲーティング方法に関する。
論理回路設計分野において、クロックライン以外の他のロジック部や同期回路における消費電力が問題とされてきた。さらに、半導体プロセスの微細化により論理回路の高集積化および高速化が進んでおり、論理回路での消費電力がますます大きくなってきた。
そのため、近年、クロックゲーティング回路(以降、ICGと呼ぶ)を用いることで、論理回路ブロックにおけるパワーマネージメントがなされてきたが、論理回路の規模増大と高速化によってそれらICGがスタンバイ状態時における、クロックのルートからICGまでの、クロックツリーを構成するセルによる消費電力が無視できなくなってきた。
図20は、特許文献1に記載された自動配置配線工程を実施するレイアウト装置の構成例を示す機能ブロック図である。図19において、レイアウト装置1は、デザインルール、ライブラリ、RTL/ネットリスト、タイミング制約等の情報を読み込む情報読込部2と、読み込んだ情報に基づいてフロアプランを実施するフロアプラン実施部3と、回路部分の配置、クロックツリー構築(CTS:Clock Tree Synthesis)、配置の最適化を行う配置・CTS・最適化部4と、DFT(Design For Testability)のために挿入されるLOCKUPセルの削除もしくは挿入を行うLOCKUPセル削除/挿入部5と、タイミングの最適化を行うタイミング最適化部6と、信号配線を行う信号配線部7とを備えている。
また、配置・CTS・最適化部4は、クロックラインの認識を行うクロックライン認識部41と、クロックラインに挿入されたICGの認識を行うクロックゲーティング回路認識部42と、ICGをいったん削除するクロックゲーティング回路削除部43と、ICG以外の回路部分の配置・最適化を行う他回路配置・最適化部44と、ICGをまとめ、あるいは分割するクロックゲーティング回路まとめ/分割部45と、いったん削除したICGを配置してクロックツリー構築を行うクロックゲーティング回路配置/CTS実施部46とを備えている。
図18は自動配置配線の処理例を示すフローチャートである。図18において、まず、デザインルール、ライブラリ、RTLもしくはネットリスト、タイミング制約を読み込む(ステップS401、S402)。次に、フロアプランを実施し、I/O(Input/Output)位置、チップサイズ、ハードマクロの配置位置を決定する(ステップS403)。次に、作成する回路内のクロックラインを認識する(ステップS404)。ここで、クロックラインは、既に読み込んだタイミング制約を元に認識してもよいし、同期回路(フリップフロップ、ラッチ等) のクロックラインよりトレースして認識してもよい。
次に、認識したクロックラインにICGに相当する組み合わせ回路が存在しているかどうかをチェックする(ステップS405)。ここで、組み合わせ回路がICGであるか否かの判断は、その回路の後段にクロック信号が無条件に伝わるか、イネーブル信号等によって停止されるかによって判断する。なお、ICGのようなマクロ化されたセルにあっては、セル名から判断することもできる。
そして、ICGが存在せず、直接に同期回路のクロック入力へのみクロックが到達している場合には、配置・CTS ・最適化を実施する(ステップS406)。クロックラインにICGが存在している場合、そのICGを初期配置対象から除外する(ステップS407)。これは、クロックラインに挿入されたICGは、通常のレイアウト時にはタイミング制約の効かない箇所であり、タイミング制約が効かないセルに関してはそのセルの接続情報を元にセル配置が実行されてしまい、同期回路に引き寄せられてしまってクロックラインの消費電力を最適に考慮したレイアウトとならない場合があるからである。
次に、クロックラインのICG以外のセルを配置する(ステップS408)。クロックラインのICGを初期配置させないことにより、本来タイミング調整が必要なセルに対して最適な配置結果を得ることが可能となる。なお、このステージでクロックツリー構築を行う前のオプティマイズ(最適化)も実行する。
次に、クロックラインのICGのまとめもしくは分割を行う(ステップS409)。すなわち、同期回路の配置を認識し、クロックスキューが調整可能であれば、複数のICGを一つにまとめる。なお、まとめることができるICGは、同じクロックに基づくものであり、同一条件でクロック供給・停止がされることが前提となる。ICGをまとめることで、消費電力および配置エリアを削減することができる。また、同期回路の配置を認識し、クロックスキューが調整不可能であれば、一つのICGを複数に分割する。いずれの場合も、レイアウト時において同期回路の配置後であってクロックツリー構築前に、同期回路の配置を考慮してICGをまとめる、または分割する点がポイントである。
すなわち、レイアウト前のネットリストにてICGをまとめることは既存技術にも存在するが、同期回路の配置が考慮できないため、クロック調整に手間取ることが考えられる。しかし、このようにクロックツリー構築前にまとめることでそのような問題がなくなる。また、ICGを配置してしまった後にまとめたり分割したりする場合、一旦配置してしまっているため調整は難しいが、このようにICGを配置する前に行うものであるため、そのような問題がない。
次に、クロックラインのICGの配置およびクロックツリー構築を、低消費電力化を考慮した上でクロックスキューを調整しつつ実施する(ステップS410)。
図19はクロックツリーを構築した状態の配置の例を示す図である。クロックのルートのバッファ110に近い位置にICG117、118を配置し、既に最適位置に配置したフリップフロップ111〜116との間にクロックツリーのバッファ119〜124を配置する。ICGをクロックルートに近い初段に配置してやることにより、その手前にクロックツリーを構築する必要はなくなり、クロックツリーを構成するセルによる消費電力を削減することができる。
次に、図18に戻り、LOCKUPセルの処理を行う(ステップS411〜S414)。LOCKUPセルは前述したようにDFTのために挿入されるものであり、異なるクロックラインに存在するフリップフロップ等の同期回路のスキャンチェーンの間に、スキュー調整のために挿入されるものである。
図18においては、異なるクロックラインにおけるクロックスキューが十分であるか否かチェックし(ステップS411)、十分である場合には、続いてLOCKUPセルが挿入されているか否かチェックし(ステップS412)、挿入されている場合にはそのLOCKUPセルを削除する(ステップS413)。また、異なるクロックラインにおけるクロックスキューが十分でない場合は、LOCKUPセルの挿入を行う(ステップS414)。
このように、自動配置配線時にクロックツリーを実施した後、LOCKUPセルについて最適な処理が行われる。次に、クロックツリー構築後のタイミング最適化を実施し(ステップS415)、信号配線を実施し(ステップS416)、レイアウト完了となる。
一方、特許文献2には、クロックゲート論理と論理階層の組換えを行い、クロックゲーティング回路を配置することで、クロックゲーティング回路及びバッファの個数を削減する技術が開示されている。また、特許文献3には、複数のゲーテッドクロックが存在するときに、そのクロック同士をORしたクロックを供給する技術が開示されており、特許文献4には、階層的にゲーテッドクロックを設けた回路が開示されている。
特開2007−72995号公報 特開2007−164590号公報 特開2006−155533号公報 特開2007−300290号公報
特許文献1に記載の技術では、図18のステップS410にて、ICGをクロックルートに近い初段に配置する。しかし、複数のICGが存在した場合、クロックのルートのバッファからICGまでの配線容量が増大し、ICGの数だけクロックが接続される入力端子の容量が増えるため、クロックのルートのバッファのスイッチング電力が大きくなる。さらに、クロックの電力制御を細かくするほどICGの数が増大するため、単一のクロックのルートのバッファでは駆動しきれない負荷となった場合には、クロックのルートからICGまでの間の負荷を適切に分割するためのセルが挿入され、さらに電力消費の増大を招くという問題があった。
また、特許文献2に記載の技術では、同一のイネーブル信号により制御される論理階層に対しては効果があるが、異なるイネーブル信号により制御される論理階層に対しては効果が発揮できないという問題点があった。
本発明にかかるレイアウト装置は、クロックツリー構造を有する論理回路において、複数の第1のクロックゲーティング回路が共通に接続された第1の分岐点の前段に第2のクロックゲーティング回路を挿入するか否かを決定するレイアウト装置であって、前記複数の前記第1のクロックゲーティング回路に入力される複数の第1の制御信号と、前記第1の分岐点よりも後段に位置する同期回路の位置とに基づいて、前記第2のクロックゲーティング回路に入力する第2の制御信号を生成する制御信号生成手段と、前記第2の制御信号と、前記第2のクロックゲーティング回路よりも後段に位置する回路素子数と、に基づいて、前記第2のクロックゲーティング回路を挿入するか否かを判定するクロックゲーティング回路追加手段と、を備えるものである。このような構成によって、スイッチング時において、動作の必要がないセルにはクロック信号が供給されないため、消費電力の削減を図った半導体集積回路のレイアウトを行うことができる。
本発明にかかるクロックゲーティング方法は、クロックツリー構造を有する論理回路において、複数の第1のクロックゲーティング回路が共通に接続された第1の分岐点に供給されるクロック信号の通過または遮断を制御するか否かを決定するクロックゲーティング方法であって、前記複数の前記第1のクロックゲーティング回路に入力される複数の第1の制御信号と、前記第1の分岐点よりも後段に位置する同期回路の位置とに基づいて、前記クロック信号の通過または遮断を制御に用いられる第2の制御信号を生成し、前記第2の制御信号と、前記クロック信号の通過または遮断を制御される回路素子数とに基づいて、前記第1の分岐点に供給される前記クロック信号の通過または遮断を制御するか否かを決定するものである。これにより、消費電力を削減するクロックゲーティングを行うことができる。
本発明により、スイッチング時におけるセルによる消費電力を削減することができる半導体集積回路のレイアウト装置及びクロックゲーティング方法を提供することができる。
実施の形態1にかかるレイアウト装置のブロック図である。 実施の形態1にかかるレイアウト装置の動作を示すフローチャートである。 実施の形態1にかかるブランチ順序生成処理のフローチャートである。 実施の形態1にかかるイネーブル信号生成処理のフローチャートである。 実施の形態1にかかるイネーブル信号生成処理の説明のための図である。 実施の形態1にかかるイネーブル信号生成処理の説明のための図である。 実施の形態1にかかるイネーブル信号生成処理の説明のための図である。 実施の形態1にかかるクロックゲーティング回路追加処理のフローチャートである。 実施の形態1にかかるクロックゲーティング回路追加処理の説明のための図である。 実施の形態1にかかるクロックゲーティング回路追加処理の説明のための図である。 実施の形態1にかかるクロックゲーティング回路追加処理の説明のための図である。 実施の形態1にかかるクロックゲーティング回路追加処理の説明のための図である。 実施の形態1にかかるクロックツリーを示す回路図である。 関連する回路にかかるバッファ及び既存のICGの出力波形を示すタイミングチャートである。 実施の形態1にかかるバッファ及び既存のICGの出力波形を示すタイミングチャートである。 実施の形態2にかかるクロックゲーティング回路追加処理のフローチャートである。 実施の形態3にかかるクロックゲーティング回路追加処理のフローチャートである。 関連するレイアウト装置の制御フローチャートである。 関連するクロックツリーを示す回路図である。 関連するレイアウト装置のブロック図である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。図1に示したレイアウト装置51は、図20に示したレイアウト装置の構成に加えて、さらにレイアウトデータ入力部53、ブランチ順序生成処理部54、信号生成・回路追加処理部58、レイアウトデータ出力部57を備えている。また、信号生成・回路追加処理部58は、イネーブル信号生成処理部55とクロックゲーティング回路追加処理部56を有している。なお、図20と同じ構成については同様の動作をするので、説明を省略する。
レイアウトデータ入力部53は、ゲーテッドクロックツリーを含んだレイアウトデータを読み込む。ブランチ順序生成処理部54でクロックツリーの分岐点(以降、ブランチと呼ぶ)をボトムアップに辿る順序を生成する。
信号生成・回路追加処理部58は、ブランチ順序生成処理部54で生成されたブランチ順序に基づいて、それぞれのブランチに対して追加するICGのイネーブル信号の生成およびICGの追加を行う。追加するICGのイネーブル信号生成をイネーブル信号生成処理部55(制御信号生成手段)にて行い、ICGの追加をクロックゲーティング回路追加処理部56にて行う。レイアウトデータ出力部57は、ICG追加後のレイアウトデータを出力する。
つまり、本発明は、既に設計された半導体集積回路のレイアウトデータについて、さらに消費電力を削減できるように新たなクロックゲーティング回路を追加するものである。そのため、図1に示した情報読込部2のデザインルール、ライブラリ、RTL/ネットリスト、タイミング制約等の情報を読み込みから信号配線部7の信号配線までの処理を再度行うことなく、当該半導体集積回路の消費電力の削減を図ることができる。
続いて、図2を用いて、実施の形態1にかかるレイアウト装置の動作例について説明する。まず、動作が開始するとレイアウトデータ入力部53は、ブランチ順序を格納するため空のスタックst1を準備する(ステップS300)。なお、レイアウトデータ入力以前の動作は、図18の説明と同様なので説明を省略する。
次に、レイアウト装置51が、信号配線部から得たゲーテッドクロックツリーを含んだレイアウトデータを、レイアウトデータ入力部53から入力する(ステップS301)。
すると、ブランチ順序生成処理部54(判定順序決定手段)は、クロックツリーの末端に存在するフリップフロップやラッチなどのクロックを使用する同期回路(以降、リーフと呼ぶ)の側からクロックのルート側に向かってブランチを辿り、クロックゲーティング回路追加処理部56がICGを追加していくために、ブランチ順序生成処理を行う(ステップS302)。前記ブランチ順序生成処理により、ブランチを辿る順序(以降、ブランチデータと呼ぶ)を構成し、当該順序をスタックst1に格納する。
ブランチデータがスタックst1に格納されると、信号生成・回路追加処理部58は、スタックst1に格納された前記ブランチデータが空になるまでループ処理を行う(ステップS303〜ステップS307)。
ループの先頭においてスタックst1が空かを判断し、スタックst1が空の場合はループを終了する(ステップS303、S307)。
スタックst1が空でない場合は、スタックst1から先頭の1つのブランチを取り出し(以降、popと呼ぶ)、前記取り出したデータ(以降、処理対象ブランチと呼ぶ)を、変数branchに格納する(ステップS304)。
次に、信号生成・回路追加処理部58のイネーブル信号生成処理部55において、変数branchに対しイネーブル信号生成処理を行う(ステップS305)。そして、信号生成・回路追加処理部58のクロックゲーティング回路追加処理部56において、クロックゲーティング回路追加処理を行う(ステップS306)。前記ループ処理が終了したら、信号生成・回路追加処理部58のレイアウトデータ出力部57において、レイアウトデータを出力(ステップS308)し、処理を終了する。
続いて、図3を用いて、ブランチ順序生成処理部54の動作(ステップS302)について詳細に説明する。まず、ブランチ順序生成処理部54が、スタックst1とは別に空のスタックst0を準備する(ステップS500)。スタックst0には一時的にブランチが格納される。
次に、クロックのルートに位置するブランチをスタックst0、st1の両方の先頭に格納(以降、pushと呼ぶ)する(ステップS501)。そして、スタックst0が空かどうかの判定を行い(ステップS502)、空であれば処理を終了する。
一方、スタックst0が空でない場合、スタックst0に対してpopを行い、変数temp_brに一つのブランチを取り出す(ステップS503)。次に、変数temp_brのリーフ側の隣のブランチ(以降、子ブランチと呼ぶ)を全て配列childrenに格納する(ステップS504)。そして、配列childrenが空かどうかの判定を行い(ステップS505)、空であればスタックst0が空かどうかの判定(ステップS502)に戻る。
一方、配列childrenが空でなければ、スタックst0、st1の両方に配列childrenに含まれる全ての子ブランチをpushする(ステップS506)。以上の処理により、スタックst1には辿る順番にブランチが格納される。
続いて、イネーブル信号生成処理部55の動作(ステップS305)について説明する。イネーブル信号生成処理部55は、処理対象ブランチ(第1の分岐点に対応)よりもリーフ側(ツリー構造の後段側)に既に配置された複数のICG(第1のクロックゲーティング回路)にそれぞれ入力される複数のイネーブル信号(第1の制御信号)と、処理対象ブランチよりもリーフ側に配置された同期回路の位置とに基づいて、新たに挿入するICG(第2のクロックゲーティング回路)に入力するイネーブル信号(第2の制御信号)を生成する。
図4を用いて、イネーブル信号生成処理部55の動作(ステップS305)について詳細に説明する。まず、イネーブル信号生成処理部55において、レイアウト装置51がステップS304によってブランチデータから得た処理対象ブランチを、変数branchに格納し、それを信号生成・回路追加処理部58が受け取る。そして、イネーブル信号生成処理部55が変数branchを信号生成・回路追加処理部58から受け取ることによって、処理対象ブランチを格納した変数branchを用意する(ステップS600)。
イネーブル信号生成処理部55は、変数branchの全ての子ブランチおよび変数branchに接続するリーフに対して、ループ(ステップS601〜ステップS610)内の処理を行う。
ここでは、変数branchの全ての子ブランチ及び変数branchに接続するリーフに一時的な固有の変数temp, 変数temp_clを用意する。変数tempは、新たに追加するICGのイネーブル信号を生成するために使われる。temp_clは、新たにICGが追加された場合にクロックゲーティングされるセルの個数を算出するために使われる。ループ内の処理では、変数branchから子ブランチもしくはリーフまでの間にICGがあるかどうかを判定する(ステップS602)。
ICGがある場合、ICGのイネーブル信号CENを変数tempに格納する(ステップS606)。変数branchからそのICGまでの間にあるバッファ、インバータなどのセル数+1を変数temp_clに格納する(ステップS609)。ここで"+1"は、ICGの分である。
一方、ICGがなかった場合、現在処理している対象が子ブランチなのかリーフなのかを判定する(ステップS603)。リーフであった場合、リーフ固有の変数tempに"1"を格納する(ステップS605)。また、イネーブル信号生成処理部55は、(変数branchからそのリーフまでの間にあるセル数)+1を変数temp_clに格納する(ステップS608)。ここで、変数branchにICGを介さずにリーフが接続している場合、新たなICGの追加により接続しているリーフをクロックゲーティングすることになり、当該ICGは常にクロック信号を通過させるため有効ではない。変数tempに"1"を格納しているのは、後のクロックゲーティング回路追加処理で新たなICGを追加するかどうかを判定できるようにするためである。
現在処理している対象が子ブランチであった場合、変数tempに子ブランチが持つクロックゲーティングイネーブル論理が格納されている変数SIGの内容が格納される(ステップS604)。ブランチデータは、クロックツリーをボトムアップに辿るブランチの順序であるため、リーフに近いブランチからイネーブル信号生成処理(ステップS305)が実行される。ステップS604は、変数branchの子ブランチに対してのみ行われる処理であり、変数branchの子ブランチは既にイネーブル信号生成処理(ステップS305)が行われたものであるため、ステップS604の実行においては変数branchの子ブランチが持つ変数SIGに、必ずクロックゲーティングイネーブル論理が格納されている。
ここで、変数CELは、子ブランチにICGが設けられることによりクロックゲーティングされるセルの個数が格納される変数であり、(子ブランチが持つ変数CEL)+(変数branchから子ブランチまでのセル数)が、変数temp_clに格納される(ステップS607)。変数CELも変数SIG同様に、変数branchの子ブランチの変数CELには、必ずセル個数が保持されている。
イネーブル信号生成処理部55は、変数branchに格納されている処理対象ブランチが持つ変数SIGに、変数branchの全ての子ブランチおよび変数branchに接続するリーフが持つ変数tempのORを取ったものを格納する(ステップS611)。
すなわち、イネーブル信号生成処理部55は、処理対象ブランチよりもリーフ側に位置する全てのICGに入力されるイネーブル信号の論理和と、リーフの位置(つまり、変数branchとリーフが接続されているか否か)とに基づいて、新たに挿入されるICGに入力するイネーブル信号を生成する。
イネーブル信号生成処理部55は、変数branchに格納されている処理対象ブランチが持つ変数CELに、変数branchの全ての子ブランチおよび変数branchに接続するリーフが持つ変数temp_clの総和を格納する(ステップS612)。
イネーブル信号生成処理部55は、変数branchに格納されている処理対象ブランチに変数SIGおよび変数CELを保存して処理を終了する(ステップS613)。
このとき、変数branchに格納されている処理対象ブランチに保存している変数SIGは、新たに追加されるICGのイネーブル信号となり、変数CELは新たに追加されるICGによりゲーティングされる。つまり、クロック信号の通過または遮断の制御が行われる(変数branchよりもリーフ側の)セル数を表している。
ここで、図4に示したフローチャートのループ(ステップS601〜ステップS610)内のそれぞれの処理について、回路例を用いて説明する。図5は、変数branchに格納されている処理対象ブランチと子ブランチの間にICGがある場合のクロックツリーの一部を示す回路図であり、変数branchから子ブランチもしくはリーフまでの間にICGがある場合(ステップS602の"Yes")の例を示す図である。
図5に示した回路図は、処理対象ブランチ201と子ブランチ205の間にICG203が存在している回路になっており、子ブランチに固有の一時的な変数tempにはICG203のイネーブル信号CENが格納され、子ブランチに固有の一時的な変数temp_clには処理対象ブランチ201とICG203の間にあるバッファの個数が格納され、図5ではバッファ202のみが存在するため、1+1=2が格納される。
次に、変数branchに格納されている処理対象ブランチとリーフの間にブランチおよびICGがない場合のクロックツリーの一部を示す回路図であり、変数branchから他のブランチを経由せずにリーフに接続している場合(ステップS603の"Yes")の例を図6に示す。
図6に示した回路図は、処理対象ブランチ206とリーフ208の間にICG存在していない回路であり、リーフに固有の一時的な変数tempには"1"が格納され、リーフに固有の一時的な変数temp_clには処理対象ブランチ206とリーフ208の間にあるバッファの個数が格納され、図6ではバッファ207のみであるため、1+1=2が格納される。
さらに、図7は、変数branchに格納されている処理対象ブランチと子ブランチの間にICGが無い場合のクロックツリーの一部を示す回路図であり、変数branchが子ブランチに接続している場合(ステップS603の"No")の例を示す図である。
図7に示した回路図は、処理対象ブランチ209と子ブランチ212の間にICGが存在していない回路であり、子ブランチに固有の一時的な変数tempには、子ブランチ212が持つ変数SIGの内容が格納され、子ブランチに固有の一時的な変数temp_clには子ブランチ212が持つ変数CELの値+処理対象ブランチ209から子ブランチ212までのセル数であるバッファ210とバッファ211が格納され、2が格納される。
続いて、クロックゲーティング回路追加処理部56の動作(ステップS306)について説明する。クロックゲーティング回路追加処理部56は、イネーブル信号生成処理部55が生成したイネーブル信号と、新たに挿入されるICGの後段に位置するセル数(つまり、新たに挿入されるICGによってクロック信号の通過または遮断を制御されるセル数)と、に基づいて、処理対象ブランチのルート側(ツリー構造の前段側)に新たなICG挿入するか否かを判定する。図8は、クロックゲーティング回路追加処理(ステップS306)の詳細なフローチャートであり、クロックゲーティング回路が追加可能かどうかを判定し、可能な場合に適切な位置に追加挿入するための詳細な処理である。
まず、クロックゲーティング回路追加処理部56が、イネーブル信号生成処理部55より変数branchを受け取ることによって、処理対象ブランチを格納した変数branchを用意し、変数branchに格納されている処理対象ブランチ固有の変数CELおよび変数SIGと合わせて、変数THを準備する(ステップS700)。変数THは予め設定しておく閾値であり、新たなICGを追加するか否かを判断するときに、新たなICG追加によりクロックゲーティングされるセルの総数との比較を行う。クロックゲーティングされるセルの総数が、変数THの値を超えた場合にのみ、新たなICGが追加される。
次に、変数SIGが"1"か否かを判定する(ステップS701)。つまり、ステップS701においては、新たに挿入されるICGがイネーブル信号に応じてクロック信号を遮断するか否かを判定する。変数SIGが"1"の場合は、新たなICGを追加するとリーフをクロックゲーティングすることになり、ICG追加したとしても常にクロックを通すことになるため、ICGの追加が不可能と判断し、ICGを追加することなく、処理を終了する。
一方、変数SIGが"1"でない場合(新たに挿入されるICGが入力されたクロック信号を遮断する場合)には、変数branchからルート側に辿り、最初に到達するブランチ(以降、親ブランチと呼ぶ)もしくはクロックのルートもしくはICGに到達するまでセル数をカウントした値と変数CELの値を加算したものを、新たなICGを追加した場合にクロックゲーティングされるセルの総数を表している変数whole_clに格納する(ステップS702)。
そして、変数whole_clが閾値である変数TH以下の場合には、ICGを追加するに値するほどの、新たにクロックゲーティングされるセル数がないと判断し、ICGの追加は行わず終了する(ステップS703)。
ステップS703においてICGの追加を行うと判断した場合には、変数branchから親ブランチ(第2の分岐点)もしくはクロックのルートまでの間に、既にICG(第3のクロックゲーティング回路)が存在しているかどうかを判定する(ステップS704)。既にICGが存在している場合には、ICGのリーフ側に新たなICGを挿入し(ステップS706)、追加したICGのイネーブル入力の変数CENに変数SIGが表す信号を接続する(ステップS707)。
一方、ステップS704において変数branchから親ブランチもしくはクロックのルートまでの間にICGが存在していない場合、親ブランチのリーフ側に、新たなICGを挿入する(ステップS705)。そして、追加したICGのイネーブル入力の変数CENに変数SIGが表す信号を接続する(ステップS707)。
ここで、クロックゲーティング回路追加処理部56の動作において、親ブランチと処理対象ブランチとの間にICGがある場合とない場合における動作について回路例を示して説明する。図9および図10は、親ブランチと変数branchに格納されている処理対象ブランチの間にICGがある場合のクロックツリーの一部示す回路図であり、親ブランチと変数branchの間にICGがある場合(ステップS704の"Yes")の例を示す図である。
図9は、新たなICGが追加される前のクロックツリーの一部を表しており、処理対象ブランチ303と親ブランチ300の間にステップS704で発見した既存のICG301が存在する。したがって、クロックゲーティング回路追加処理部56は、ICGの出力直後に新たなICGを挿入する(ステップS706)。
図10は、新たなICG追加後を表している。上述した動作の通り、ICG311は既存のICG301のリーフ側にバッファを介さず追加され、ICG308とICG309の出力がOR回路310経由でイネーブル信号として接続されている。
図11および図12は、親ブランチと変数branchに格納されている処理対象ブランチの間にICGがない場合のクロックツリーの一部を示す回路図であり、親ブランチと変数branchの間にICGがない場合(ステップS704の"No")の例を示す図である。
図11は、新たなICGが追加される前のクロックツリーの一部を表しており、処理対象ブランチ402と親ブランチ400にはICGが存在していない。したがって、クロックゲーティング回路追加処理部56は、親ブランチ手前(変数branch側)に新たなICGを挿入する(ステップS705)。
図12は、新たなICG追加後を表している。上述した通り、追加したICG411は親ブランチ400の直後にバッファを介さず追加され、ICG408とICG409のイネーブル信号の出力がOR回路410経由でイネーブル入力信号として接続されている。
図11において、バッファ401はクロックゲーティングされていないため、バッファ出力407の波形は図12のバッファ出力407に示すとおり常にクロックCLKが供給される。上記のように、ステップS704〜706を備えることにより、親ブランチから処理対象ブランチまでのセルに対してクロックを遮断できるため、消費電力削減を図ることができ、かつ論理回路の動作には影響を及ぼさない。
一方、図12では、OR回路410によりICG408とICG409のイネーブル入力CEN_aおよびCEN_bのORをとっているため、OR回路410の出力であるイネーブル入力413の波形は図15のイネーブル入力413のようになる。このため、ICG411はICG408とICG409の両方がクロックゲーティング期間であるときに限りクロックゲーティングが行われる。追加されたICGの出力412は図15の追加されたICGの出力412のようになり、ICG408とICG409の両方がクロックゲーティング期間である開始時刻から時刻T0までと、時刻T1からT2、時刻T3からT4、時刻T5から終了時刻までの間には信号の立ち上がりが存在しない。追加されたICG411の出力412はバッファ401の入力であるため、バッファ出力407の波形は追加されたICGの出力412と同じになる(図15バッファ出力407参照)。
以上のように、本発明実施前(図11参照)である図14のバッファ出力407の波形と、本発明実施後である図15のバッファ出力407の波形を比べると、開始時刻から時刻T0までと、時刻T1からT2、時刻T3からT4、時刻T5から終了時刻までの間で、図15の出力407の信号の立ち上がりがなくなっている。その結果、スイッチング電力を抑えることができる。
また、図13に本発明を適用した回路例を示す。図19に示した回路に対して本発明を実施することにより、図13に示すゲーテッドクロックツリーを含んだレイアウトデータが得られる。論理回路ブロックのパワーマネージメントを行う既存のICG127およびICG128のイネーブル入力AおよびBが、追加されたOR回路126に入力されており、その出力が追加されたICG129のイネーブル入力となる。このような回路となるため、ICG127およびICG128の両方がクロックゲーティング中、つまりクロック信号を遮断して論理回路ブロックをスタンバイ状態にしているときには、追加されたICG129の出力は変化せず、この期間におけるクロックのルートのバッファ110、ICG127およびICG128によるスイッチング電力を抑えることができる。
さらに、本発明にかかるレイアウト装置によれば、リーフを直接クロックゲーティングする位置には新たなICGは挿入されないため、新たなICGは、ICG129のように、複数の異なるICGに送られる複数の異なるイネーブル信号によって制御される。したがって、新たに挿入されたICG129がクロック信号を通過させる場合であっても、そのリーフ側に位置するICG127とICG128は異なるイネーブル信号AとBにより別々に制御されるため、より詳細にクロック制御でき、スイッチング電力を抑えることができる。
以下では、本発明によりクロックゲーティング期間中のクロックラインの消費電力が削減できる理由を定量的に示す。図12のバッファ401、403、404それぞれが、クロック入力の立ち上がりによって消費するエネルギーをp_buf[J]とする。また、ICG411、405、406、408、409それぞれが、クロックの立ち上がりによって消費するエネルギーをp_gc[J]とする。さらに、ICG405、408のイネーブル入力CEN_aが"0"である確率をP(CEN_a)、ICG406、409のイネーブル入力CEN_bが"0"である確率をP(CEN_b)とする。
このとき、新たに追加されたICG411のイネーブル入力413が"0"である確率は、
P(CEN_a)×P(CEN_b) (1)
となる。
一方、クロック周波数をf[Hz]とすると、新たなICG追加により低減できたスイッチング電力をPsw[W]と表すと、
Psw=(a×p_buf+b×p_gc)×f×P(CEN_a)×P(CEN_b)−p_gc×f (2)
となる。
例えば、変数a=3(クロックゲーティングされるバッファ数)、変数b=2(クロックゲーティングされるICG数)、1MHzにおけるバッファのスイッチング電力:0.2[μW]、1MHzにおけるICGのスイッチング電力:0.1[μW]、クロック周波数:400[MHz]、P(CEN_a)=70[%]、P(CEN_b)=60[%]とすると、クロック入力の一回の立ち上がりにより消費するエネルギーは、バッファのスイッチング電力÷1MHzであるため、
p_buf = 0.2[pJ] (3)
p_gc = 0.1[pJ] (4)
であるので、式(1)より、Psw = 94.4[μW]の電力が削減できる。
実施の形態2
本発明にかかる実施の形態2について説明する。実施の形態2にかかるレイアウト装置は、構成は実施の形態1と同様であるが、クロックゲーティング回路追加処理部56の動作が異なる。
図16に本実施の形態にかかるクロックゲーティング回路追加処理部56の動作のフローチャートを示す。図16に示したフローチャートは、実施の形態1において説明した図8のフローチャートにおけるステップS705とステップS706を、ステップS800とステップS801に置き換え、新たにステップS802を追加し、その他のステップに関しては実施の形態1と同じ処理である。
実施の形態1では新たなICGを挿入していたが(図8のステップS705およびステップS706参照)、実施の形態2では挿入するのではなく、ステップS704で"Yes"と判定された場合、クロックライン上の変数branchからICGまでの区間において既存のバッファを探索し、バッファの有無を判定する(ステップS801)。
既存のバッファが発見された場合は、そのバッファを同じ内部遅延値を持った新たなICGに置き換える(ステップS802)。そして、追加したICGのイネーブル入力に変数SIGに格納されているクロックゲーティングイネーブル論理を入力として接続する(ステップS707)。なお、ステップS802にてバッファがない場合には、フローを終了する。
一方、ステップS704で"No"と判定された場合、クロックライン上の変数branchから親ブランチまでの区間において既存のバッファを探索し、バッファの有無を判定する(ステップS800)。
既存のバッファが発見された場合、そのバッファを同じ内部遅延値を持った新たなICGに置き換える(ステップS802)。つまり、バッファが有する遅延値と同じ遅延時間をかけてクロック信号の通過または遮断の制御を行う。そして、追加したICGのイネーブル入力に変数SIGに格納されているクロックゲーティングイネーブル論理を入力として接続する(ステップS707)。なお、ステップS802にてバッファがない場合には、フローを終了する。また、ステップS700〜704までの処理は、図8の説明と同様であるため説明を省略する。
このような構成により、クロック遅延値に影響を与えることなくクロックライン上にICGを設けることができるので、論理回路ブロックがスタンバイ状態となったときの、クロックのルートから論理回路ブロックのICGまでの、クロックツリーを構成するセルによるスイッチング電力を抑えることができる。
実施の形態3
本発明にかかる実施の形態3について説明する。実施の形態3にかかるレイアウト装置は、実施の形態1の構成に加えて、さらに遅延調整部を備える。
図17に本実施の形態にかかるクロックゲーティング回路追加処理部56の動作のフローを示す。図17に示したフローチャートは、図8に示したフローチャートの処理に加えて、さらに遅延値調整ステップ(ステップS900)を備えている。
遅延調整部の処理は、追加したICGのイネーブル入力に変数SIGに格納されているクロックゲーティングイネーブル論理を入力として接続する(ステップS707)処理の後に行われる。追加したICGをルートとする部分クロックツリーの遅延値は増加するので、遅延調整部は、増加した分のクロック遅延値を調整するために、クロックゲーティング回路追加処理部56はバッファを適量除去し、追加したICGを挿入後の遅延値を調整する(ステップS900)。
本実施の形態によって、クロック遅延値に影響を与えることなくクロックライン上にICGを設けることができ、クロックライン上のバッファ数を減らすことができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
1 レイアウト装置
2 情報読込部
3 フロアプラン実施部
4 配置・CTS・最適化部
5 LOCKUPセル削除/挿入部
6 タイミング最適化部
7 信号配線部
41 クロックライン認識部
42 クロックゲーティング回路認識部
43 クロックゲーティング回路削除部
44 他回路配置・最適化部
45 クロックゲーティング回路まとめ/分割部
46 クロックゲーティング回路配置/CTS実施部
51 レイアウト装置
53 レイアウトデータ入力部
54 ブランチ順序生成処理部
55 イネーブル信号生成処理部
56 クロックゲーティング回路追加処理部
57 レイアウトデータ出力部
58 信号生成・回路追加処理部
110 クロックのルートのバッファ
111〜116 フリップフロップ
117 、118 ICG
119〜124 バッファ
126 追加されたOR回路
127 ICG
128 ICG
129 追加されたICG
201 処理対象ブランチ
202 バッファ
203 ICG
204 バッファ
205 子ブランチ
206 処理対象ブランチ
207 バッファ
208 リーフ
209 処理対象ブランチ
210 バッファ
211 バッファ
212 子ブランチ
300 親ブランチ
301 ICG
302 バッファ
303 処理対象ブランチ
304 バッファ
305 バッファ
306 ICG
307 ICG
308 ICG
309 ICG
310 追加されたOR回路
311 追加されたICG
400 親ブランチ
401 バッファ
402 処理対象ブランチ
403 バッファ
404 バッファ
405 ICG
406 ICG
407 バッファの出力
408 ICG
409 ICG
410 追加されたOR回路
411 追加されたICG
412 追加されたICGの出力
413 追加されたICGのイネーブル入力信号

Claims (20)

  1. クロックツリー構造を有する論理回路において、複数の第1のクロックゲーティング回路が共通に接続された第1の分岐点の前段に第2のクロックゲーティング回路を挿入するか否かを決定するレイアウト装置であって、
    前記複数の前記第1のクロックゲーティング回路に入力される複数の第1の制御信号と、前記第1の分岐点よりも後段に位置する同期回路の位置とに基づいて、前記第2のクロックゲーティング回路に入力する第2の制御信号を生成する制御信号生成手段と、
    前記第2の制御信号と、前記第2のクロックゲーティング回路よりも後段に位置する回路素子数と、に基づいて、前記第2のクロックゲーティング回路を挿入するか否かを判定するクロックゲーティング回路追加手段と、
    を備えるレイアウト装置。
  2. 前記制御信号生成手段は、前記第1の分岐点よりも後段に位置する全ての前記第1のクロックゲーティング回路に入力される前記第1の制御信号の論理和と、前記第1の分岐点よりも後段に位置する前記同期回路の位置とに基づいて、前記第2のクロックゲーティング回路に入力する前記第2の制御信号を生成する請求項1に記載のレイアウト装置。
  3. 前記制御信号生成手段は、前記第1の分岐点と前記第1の分岐点よりも後段に位置する前記同期回路とが、前記第1のクロックゲーティング回路を介さずに接続されている場合には、クロック信号を常に通過させる前記第2の制御信号を生成する請求項1または2に記載のレイアウト装置。
  4. 前記クロックゲーティング回路追加手段は、前記第2のクロックゲーティング回路が前記第2の制御信号に応じて前記クロック信号を遮断する場合、かつ、前記回路素子数が所定の数を超えた場合に、前記第2のクロックゲーティング回路を挿入する請求項1〜3のいずれか一項に記載のレイアウト装置。
  5. 前記クロックゲーティング回路追加手段は、前記第2の制御信号が前記第2のクロックゲーティング回路に入力される前記クロック信号を常に通過させる制御信号である場合には、前記第2のクロックゲーティング回路を配置しない請求項1〜4のいずれか一項に記載のレイアウト装置。
  6. 前記クロックゲーティング回路追加手段は、前記第2の制御信号と、前記第1の分岐点の後段に位置する回路素子数に加えて、前記第1の分岐点よりも前段の回路素子の位置に基づいて、前記第2のクロックゲーティング回路を配置し、
    前記第2のクロックゲーティング回路が前記クロック信号を遮断する場合、かつ、前記回路素子数が所定の数を超えた場合であって、
    前記第1の分岐点と前記第1の分岐点から前段側に辿って最初に到達する第2の分岐点との間に第3のクロックゲーティング回路が配置されている場合は、前記第3のクロックゲーティング回路と前記第2のクロックゲーティング回路との間に回路素子を介さずに、当該第3のクロックゲーティング回路の後段に、前記第2のクロックゲーティング回路を配置し、
    前記第1の分岐点と前記第2の分岐点との間に前記第3のクロックゲーティング回路が配置されていない場合は、前記第2の分岐点と前記第2のクロックゲーティング回路との間に前記回路素子を介さずに、前記第2の分岐点の後段に前記第2のクロックゲーティング回路を配置する請求項1〜3のいずれか一項に記載のレイアウト装置。
  7. 前記クロックゲーティング回路追加手段は、前記第2の制御信号と、前記第2のクロックゲーティング回路の後段に位置する回路素子数に加えて、前記第1の分岐点よりも前段に位置する回路素子の位置に基づいて、前記第2のクロックゲーティング回路を配置し、
    前記第2のクロックゲーティング回路が前記クロック信号を遮断する場合、かつ、前記回路素子数が所定の数を超えた場合であって、
    前記第1の分岐点と前記第1の分岐点から前段側に辿って最初に到達する第2の分岐点との間に第3のクロックゲーティング回路が配置されており、かつ、当該第3のクロックゲーティング回路と前記第1の分岐点との間にバッファが配置されている場合、または、
    前記第1の分岐点と前記第2の分岐点との間に前記第3のクロックゲーティング回路が配置されておらず、かつ、前記第1の分岐点と前記第2の分岐点との間にバッファが配置されている場合には、前記バッファに替えて当該バッファと同じ内部遅延を有する前記第2のクロックゲーティング回路を配置する請求項1〜3のいずれか一項に記載のレイアウト装置。
  8. 前記クロックゲーティング回路追加手段が配置した前記第2のクロックゲーティング回路により生じるクロック信号の遅延を調整する遅延調整手段をさらに備える請求項1〜6のいずれか一項に記載のレイアウト装置。
  9. 前記ツリー構造が有する全ての分岐点に対して、前記クロックゲーティング回路追加手段が、前記論理回路の後段から前段に向かって、前記第2のクロックゲーティング回路が配置可能か否かを判定するように、判定順序を決定する判定順序決定手段をさらに備える請求項1〜8のいずれか一項に記載のレイアウト装置。
  10. 前記クロックツリー構造を有する前記論理回路のレイアウトデータを読み込むレイアウトデータ入力手段をさらに備える請求項1〜9のいずれか一項に記載のレイアウト装置。
  11. クロックツリー構造を有する論理回路において、複数の第1のクロックゲーティング回路が共通に接続された第1の分岐点に供給されるクロック信号の通過または遮断を制御するか否かを決定するクロックゲーティング方法であって、
    前記複数の前記第1のクロックゲーティング回路に入力される複数の第1の制御信号と、前記第1の分岐点よりも後段に位置する同期回路の位置とに基づいて、前記クロック信号の通過または遮断を制御に用いられる第2の制御信号を生成し、
    前記第2の制御信号と、前記クロック信号の通過または遮断を制御される回路素子数とに基づいて、前記第1の分岐点に供給される前記クロック信号の通過または遮断を制御するか否かを決定するクロックゲーティング方法。
  12. 前記第2の制御信号の生成は、前記第1の分岐点よりも後段に位置する全ての前記第1のクロックゲーティング回路に入力される前記第1の制御信号の論理和と、前記第1の分岐点よりも後段に位置する前記同期回路の位置とに基づいて、前記第2の制御信号を生成する請求項11に記載のクロックゲーティング方法。
  13. 前記第2の制御信号の生成は、前記第1の分岐点と前記第1の分岐点よりも後段に位置する前記同期回路とが、前記第1のクロックゲーティング回路を介さずに接続されている場合には、前記クロック信号を常に通過させる前記第2の制御信号を生成する請求項11または12に記載のクロックゲーティング方法。
  14. 前記クロック信号の通過または遮断の制御は、前記クロックゲーティング回路追加手段は、前記第2のクロックゲーティング回路が前記第2の制御信号に応じて前記クロック信号を遮断する場合、かつ、前記回路素子数が所定の数を超えた場合に、前記クロック信号の通過または遮断を制御する請求項11〜13のいずれか一項に記載のクロックゲーティング方法。
  15. 前記クロック信号の通過または遮断の制御は、前記第2の制御信号が前記クロック信号を常に通過させる制御信号である場合には、前記クロック信号の通過または遮断を制御しない請求項11〜14のいずれか一項に記載のクロックゲーティング方法。
  16. 前記クロック信号の通過または遮断の制御は、前記第2の制御信号と、前記第1の分岐点の後段に位置する前記回路素子数に加えて、前記第1の分岐点よりも前段の回路素子の位置に基づいて、前記クロック信号の通過または遮断を制御し、
    前記第2の制御信号に応じて前記クロック信号を遮断する場合、かつ、前記回路素子数が所定の数を超えた場合であって、
    前記第1の分岐点と前記第1の分岐点から前段側に辿って最初に到達する第2の分岐点との間に第3のクロックゲーティング回路が配置されている場合は、前記第3のクロックゲーティング回路の出力直後の前記クロック信号の通過または遮断を制御し、
    前記第1の分岐点と前記第2の分岐点との間に前記第3のクロックゲーティング回路が配置されていない場合は、前記第2の分岐点の直後の前記クロック信号の通過または遮断を制御する請求項11〜13に記載のクロックゲーティング方法。
  17. 前記クロック信号の通過または遮断の制御は、前記第2の制御信号と、前記第1の分岐点の後段に位置する前記回路素子数とに加えて、前記第1の分岐点よりも前段の回路素子の位置に基づいて、前記クロック信号の通過または遮断を制御し、
    前記第2の制御信号に応じて前記クロック信号を遮断する場合、かつ、前記回路素子数が所定の数を超えた場合であって、
    前記第1の分岐点と前記第1の分岐点から前段側に辿って最初に到達する第2の分岐点との間に第3のクロックゲーティング回路が配置されており、かつ、当該第3のクロックゲーティング回路と前記第1の分岐点との間に前記回路素子が配置されている場合、または、
    前記第1の分岐点と前記第2の分岐点との間に前記第3のクロックゲーティング回路が配置されておらず、かつ、前記第1の分岐点と前記第2の分岐点との間に前記回路素子が配置されている場合には、前記回路素子を取り除き、当該回路素子に供給されていた前記クロック信号を、当該回路素子が有する内部遅延と同じ遅延時間をかけて通過または遮断を制御する請求項11〜13のいずれか一項に記載のクロックゲーティング方法。
  18. 前記クロックゲーティング方法は、さらに前記クロック信号の通過または遮断の制御により生じる前記クロック信号の遅延を調整する請求項11〜16のいずれか一項に記載のクロックゲーティング方法。
  19. 前記クロックゲーティング方法は、さらに前記ツリー構造が有する全ての分岐点に対して、前記論理回路の後段から前段に向かって、前記クロック信号の通過または遮断の制御が可能か否かを判定するように、判定順序を生成する請求項11〜18に記載のクロックゲーティング方法。
  20. 前記クロックゲーティング方法は、さらに前記クロックゲーティング回路を含む前記ツリー構造を有する論理回路のレイアウトデータを読み込む請求項11〜19に記載のクロックゲーティング方法。
JP2009259093A 2009-11-12 2009-11-12 半導体集積回路のレイアウト装置及びクロックゲーティング方法 Pending JP2011107769A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009259093A JP2011107769A (ja) 2009-11-12 2009-11-12 半導体集積回路のレイアウト装置及びクロックゲーティング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009259093A JP2011107769A (ja) 2009-11-12 2009-11-12 半導体集積回路のレイアウト装置及びクロックゲーティング方法

Publications (1)

Publication Number Publication Date
JP2011107769A true JP2011107769A (ja) 2011-06-02

Family

ID=44231203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009259093A Pending JP2011107769A (ja) 2009-11-12 2009-11-12 半導体集積回路のレイアウト装置及びクロックゲーティング方法

Country Status (1)

Country Link
JP (1) JP2011107769A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013092915A (ja) * 2011-10-26 2013-05-16 Fujitsu Ltd 半導体装置、半導体装置の消費電力制御方法
US10404255B1 (en) 2018-02-27 2019-09-03 Kabushiki Kaisha Toshiba Device for automatic configuration of semiconductor integrated circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013092915A (ja) * 2011-10-26 2013-05-16 Fujitsu Ltd 半導体装置、半導体装置の消費電力制御方法
US10404255B1 (en) 2018-02-27 2019-09-03 Kabushiki Kaisha Toshiba Device for automatic configuration of semiconductor integrated circuit

Similar Documents

Publication Publication Date Title
US8205182B1 (en) Automatic synthesis of clock distribution networks
US7701255B2 (en) Variability-aware scheme for asynchronous circuit initialization
US5751596A (en) Automated system and method for identifying critical timing paths in integrated circuit layouts for use with automated circuit layout system
US9141739B2 (en) LSI design method
US8806413B2 (en) Gradient AOCV methodology enabling graph-based timing closure with AOCV timing models
JP4918934B2 (ja) 半導体集積回路の遅延解析装置及び遅延解析方法並びにそのプログラム
US8527925B2 (en) Estimating clock skew
JP2011107769A (ja) 半導体集積回路のレイアウト装置及びクロックゲーティング方法
JP2005136286A (ja) 半導体集積回路の設計方法、及びその装置
Wu et al. Asynchronous circuit placement by lagrangian relaxation
JP2007072995A (ja) レイアウト装置、自動配置配線方法および半導体集積回路製造方法
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
JP4901702B2 (ja) 回路設計方法
Vij Algorithms and methodology to design asynchronous circuits using synchronous CAD tools and flows
JP5929367B2 (ja) 半導体設計装置および半導体設計方法
JP5533564B2 (ja) クロックツリー生成装置及びクロックツリー生成方法
Balboni et al. Clock skew reduction in ASIC logic design: A methodology for clock tree management
JP5531479B2 (ja) 回路設計方法、及び回路設計プログラム
Naidu Geometric programming formulation for gate sizing with pipelining constraints
JP6325846B2 (ja) 半導体集積回路のフロアプラン作成方法
JP2015127847A (ja) 論理合成装置、論理合成方法および半導体集積回路の製造方法
Balboni et al. Automatic clock tree generation in ASIC designs
JP2008040735A (ja) 論理回路の設計方法および設計支援装置
JP2006049638A (ja) 半導体装置の設計方法および半導体装置
JP2000305965A (ja) クロックツリーシンセシス方法及び装置