(57)【要約】【課題】半導体集積回路のレイアウトに際し、クロックゲーティングされたＦＦ群とクロックゲーティングされないＦＦ群が混在した場合においても、少ない処理量でレイアウトすることができる半導体集積回路およびそのレイアウト方法を提供する。【解決手段】少なくとも一部のＦＦの直前にゲーティング回路を有するネットリストを入力とし、クロックが直接接続されたＦＦの直前にダミー回路を挿入するネットリスト変更工程と、前記ネットリスト変更工程から出力されたネットリストを用いてセルを配置するセル配置工程と、セル配置後に前記ゲーティング回路の入力、及び前記ダミー回路の入力までにクロックツリーを形成するＣＴＳ工程と、ＣＴＳ後に前記ダミー回路を集約し間引きを行うダミー回路集約工程と、ダミー回路集約後に詳細配線を行う詳細配線工程とを実行する。【選択図】図１
2006195757.tif 000002
【特許請求の範囲】
【請求項１】
半導体上に形成される半導体素子へのクロック供給に対してゲーティング機能を有する半導体集積回路のレイアウト方法であって、クロックラインを通じてクロック供給される複数のフリップフロップのうち、少なくとも一部のフリップフロップの直前のクロックラインにクロックをゲーティングするゲーティング回路を有する回路構成を示すネットリストに対して、前記クロックが直接接続されたフリップフロップの直前のクロックラインにダミー回路を挿入して、前記ネットリストを変更するネットリスト変更工程と、前記ネットリスト変更工程により変更されたネットリストを用いてセルを配置するセル配置工程と、前記セル配置工程によるセル配置後に前記ゲーティング回路の入力及び前記ダミー回路の入力までにクロックツリーを形成するＣＴＳ工程と、前記ＣＴＳ工程によるＣＴＳ後に前記ダミー回路を集約して間引きを行うダミー回路集約工程と、前記ダミー回路集約工程によるダミー回路集約後に詳細配線を行う詳細配線工程とからなる半導体集積回路のレイアウト方法。
【請求項２】
請求項１に記載の半導体集積回路のレイアウト方法であって、前記ネットリスト変更工程は、前記クロックラインに挿入するダミー回路を、前記ゲーティング回路と同等の駆動能力および遅延値を有するものとすることを特徴とする半導体集積回路のレイアウト方法。
【請求項３】
請求項１または請求項２に記載の半導体集積回路のレイアウト方法であって、前記セル配置工程は、前記ゲーティング回路と前記ゲーティング回路に駆動されるフリップフロップとを近傍に配置することを特徴とする半導体集積回路のレイアウト方法。
【請求項４】
請求項１から請求項３のいずれかに記載の半導体集積回路のレイアウト方法であって、前記セル配置工程は、前記ダミー回路と前記ダミー回路に駆動されるフリップフロップとを近傍に配置することを特徴とする半導体集積回路のレイアウト方法。
【請求項５】
請求項１から請求項４のいずれかに記載の半導体集積回路のレイアウト方法であって、前記ＣＴＳ工程は、前記ＣＴＳのソースポイントセルまたはツリーを構成するセルをゲーティング回路とすることを特徴とする半導体集積回路のレイアウト方法。
【請求項６】
請求項１から請求項５のいずれかに記載の半導体集積回路のレイアウト方法であって、前記ダミー回路集約工程は、近傍に存在する同一クロック系統に接続されるダミー回路の中でファンアウトが予め設定された値以下のものを、予め設定された値を超えない範囲で集約するようにネットリストを変更することを特徴とする半導体集積回路のレイアウト方法。
【請求項７】
請求項１〜請求項６のいずれかに記載の半導体集積回路のレイアウト方法を用いて生成した半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体上に形成されるトランジスタ等の半導体素子へのクロック供給に対してゲーティング機能を有する半導体集積回路及びそのレイアウト方法に関するものである。
【背景技術】
【０００２】
近年、半導体集積回路は大規模化及び高速化が加速し、それに伴い消費電力も増大の一途を辿っている。消費電力を削減するための手法の一つとして、クロックをゲーティングすることが一般によく知られているが、クロックゲーティング機構を含む回路をレイアウトする場合、従来通りの手法で行っていては、クロックスキューが大きくなる等の問題がある。
【０００３】
これを解決する半導体集積回路のレイアウト方法について、図面を参照しながら以下に説明する。
図８は従来例１（例えば、特許文献１を参照）の半導体集積回路のレイアウト方法を示すフローチャートである。図８に示す手法は、クロックソースに直接接続されるフリップフロップ（ＦＦ）群に対してセルを加えるネットリスト変更工程１０１と、ネットリスト変更工程１０１により変更されたネットリストに従ってセルを再配置する配置工程１０８と、セルの駆動能力を選択し遅延値が均等となるようにゲーティッド回路の分割数とセルの駆動能力を割り当てるゲーティッド回路分割情報生成工程１０２と、各ゲーティッド回路を分割等するゲーティッド回路分割工程１０３と、分割されたクラスタと同数のゲーティッドセルを割り当てるゲーティッドセル分割工程１０４と、ゲーティッドセル前段ＣＴＳ工程１０５とを含むことを特徴としている。
【０００４】
図９は従来例２（例えば、特許文献２を参照）の半導体集積回路のレイアウト方法を示すフローチャートである。図９に示す手法は、複数のクロックゲーティング回路と、それぞれが１つのクロックゲーティング回路から供給されるクロックに同期して動作する複数群のゲーティッド回路とを含むネットリストをコンピュータに入力する工程１１１と、ゲーティッド回路がそれぞれ１つのクロックゲーティング回路から所定の距離内に配置されるように、回路の配置を行う工程１１２と、所定の条件の下で複数のクロックゲーティング回路に対してＣＴＳバッファの初期配置を行う工程１１３と、ＣＴＳ（クロックツリー回路の生成）を行う工程１１４と、工程１１４で生成されたクロックツリー回路を配線する工程１１５と、工程１１５による配線が可能であったか否かを判断する工程１１６と、工程１１６にて配線が不可能と判断された場合に回路またはＣＴＳバッファの一方の配置を変更する工程１１７とを含むことを特徴としている。
【０００５】
なお、工程１１１に入力されるネットリストの回路図を図１０に示す。
【特許文献１】特開２００１−２２８１６号公報
【特許文献２】特開２００４−２０７５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら上記のような特許文献１のレイアウト方法は、各セルの配置後にゲーティングセルの分割等の処理を行い、ＣＴＳを行う手法であり、ゲーティングセル分割はゲーティッド回路の総負荷容量を考慮して計算を行うようになっており、通常のレイアウトに比べて処理量が増大してしまう。また、ＣＴＳによって目標とするクロックスキューが満たせなかった場合には、再度各セルの配置まで戻る必要があり、レイアウトＴＡＴが長くなるという問題点を有していた。
【０００７】
さらに、予め挿入されていたゲーティング回路をレイアウト的に最適となるように分割するだけなので、分割されたゲーティング回路のイネーブル信号は共通であり、分割されたクラスタ毎にクロックゲーティング制御を行うことができないという問題点も有していた。
【０００８】
また、上記の特許文献２には、半導体集積回路のレイアウト方法として、ゲーティング回路からゲーティッド回路を所定の距離内に配置するレイアウト方法が記載されている。しかし、このレイアウト方法においては、図１０に示すように、入力されるネットリストには、ＦＦに接続されるクロックライン上でＦＦの直前にゲーティング回路としてＡＮＤゲートＡ０１、Ａ０２が挿入配置されているが、クロックがクロックラインを通じて直接接続されるＦＦは存在しておらず、ゲーティング回路が挿入されていないクロックラインがある場合についての方法開示が不明瞭であり、もしクロックに直接接続されるＦＦが存在した場合には、クロックスキューが大きくなるという問題点を有していた。
【０００９】
本発明は、上記従来の問題点を解決するもので、半導体集積回路のレイアウトに際し、クロックゲーティングされたＦＦ群とクロックゲーティングされないＦＦ群が混在した場合においても、少ない処理量でレイアウトすることができ、レイアウトＴＡＴを短縮することができるとともに、クラスタ毎にクロックゲーティングを制御することができる半導体集積回路及びそのレイアウト方法を提供する。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明の請求項１に記載の半導体集積回路のレイアウト方法は、半導体上に形成される半導体素子へのクロック供給に対してゲーティング機能を有する半導体集積回路のレイアウト方法であって、クロックラインを通じてクロック供給される複数のフリップフロップのうち、少なくとも一部のフリップフロップの直前のクロックラインにクロックをゲーティングするゲーティング回路を有する回路構成を示すネットリストに対して、前記クロックが直接接続されたフリップフロップの直前のクロックラインにダミー回路を挿入して、前記ネットリストを変更するネットリスト変更工程と、前記ネットリスト変更工程により変更されたネットリストを用いてセルを配置するセル配置工程と、前記セル配置工程によるセル配置後に前記ゲーティング回路の入力及び前記ダミー回路の入力までにクロックツリーを形成するＣＴＳ工程と、前記ＣＴＳ工程によるＣＴＳ後に前記ダミー回路を集約して間引きを行うダミー回路集約工程と、前記ダミー回路集約工程によるダミー回路集約後に詳細配線を行う詳細配線工程とからなる方法としたことを特徴とする。
【００１１】
また、本発明の請求項２に記載の半導体集積回路のレイアウト方法は、請求項１に記載の半導体集積回路のレイアウト方法であって、前記ネットリスト変更工程は、前記クロックラインに挿入するダミー回路を、前記ゲーティング回路と同等の駆動能力および遅延値を有するものとする方法としたことを特徴とする。
【００１２】
また、本発明の請求項３に記載の半導体集積回路のレイアウト方法は、請求項１または請求項２に記載の半導体集積回路のレイアウト方法であって、前記セル配置工程は、前記ゲーティング回路と前記ゲーティング回路に駆動されるフリップフロップとを近傍に配置する方法としたことを特徴とする。
【００１３】
また、本発明の請求項４に記載の半導体集積回路のレイアウト方法は、請求項１から請求項３のいずれかに記載の半導体集積回路のレイアウト方法であって、前記セル配置工程は、前記ダミー回路と前記ダミー回路に駆動されるフリップフロップとを近傍に配置する方法としたことを特徴とする。
【００１４】
以上のように、フリップフロップに直接接続されるクロックラインにダミー回路を用いることと、ゲーティング回路とフリップフロップとを近傍配置することにより、スキューを低減することができるとともに、予めレイアウト前ネットリストにリーフ単位でクロックゲーティング回路が挿入されているため、リーフ単位でクロックゲーティングを制御することができる。
【００１５】
また、本発明の請求項５に記載の半導体集積回路のレイアウト方法は、請求項１から請求項４のいずれかに記載の半導体集積回路のレイアウト方法であって、前記ＣＴＳ工程は、前記ＣＴＳのソースポイントセルまたはツリーを構成するセルをゲーティング回路とする方法としたことを特徴とする。
【００１６】
以上のように、ＣＴＳのソースポイントをクロックゲーティング回路にすることにより、ＣＴＳ毎にクロックゲーティングを制御することができる。
また、本発明の請求項６に記載の半導体集積回路のレイアウト方法は、請求項１から請求項５のいずれかに記載の半導体集積回路のレイアウト方法であって、前記ダミー回路集約工程は、近傍に存在する同一クロック系統に接続されるダミー回路の中でファンアウトが予め設定された値以下のものを、予め設定された値を超えない範囲で集約するようにネットリストを変更する方法としたことを特徴とする。
【００１７】
以上により、フリップフロップに直接接続されるクロックラインに挿入されたダミー回路が冗長に挿入されていた場合は、近傍配置のダミー回路を集約することができる。
【発明の効果】
【００１８】
本発明によれば、フリップフロップに直接接続されるクロックラインにダミー回路を用いることと、ゲーティング回路とフリップフロップとを近傍配置することにより、スキューを低減することができ、従来のレイアウト手法に比べても少ない処理量で実現することが可能となるので、レイアウトＴＡＴを短縮することができる。
【００１９】
また、予めレイアウト前ネットリストにリーフ単位でクロックゲーティング回路が挿入されているため、リーフ単位でのクロックゲーティング制御が可能となるので、従来のレイアウト手法で実現できる回路構成に比べても、より消費電力を削減することができる。
【００２０】
また、ＣＴＳのソースポイントをクロックゲーティング回路にすることにより、ＣＴＳ毎のクロックゲーティング制御を可能とし、ＣＴＳバッファで消費される電力を削減することができる。
【００２１】
また、フリップフロップに直接接続されるクロックラインに挿入されたダミー回路が冗長に挿入されていた場合は、近傍配置のダミー回路を集約することにより、さらに消費電力を削減することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を示す半導体集積回路及びそのレイアウト方法について、図面を参照しながら具体的に説明する。
図１は本実施の形態の半導体集積回路及びそのレイアウト方法を説明するフロー図である。図１において、１１はクロックラインを通じてクロック供給される複数のフリップフロップ（以下、ＦＦと略す）のうち、少なくとも一部のＦＦの直前のクロックラインにクロックをゲーティングするゲーティング回路を有する回路構成を示すネットリストに対して、クロックが直接接続されたＦＦの直前のクロックラインにダミー回路を挿入して、ネットリストを変更するネットリスト変更工程、１２はネットリスト変更工程１１により変更されたネットリストを用いてセルを配置するセル配置工程、１３はセル配置工程１２によるセル配置後にゲーティング回路の入力及びダミー回路の入力までにクロックツリーを形成するＣＴＳ工程、１４はＣＴＳ工程１３により形成されたクロックツリーにおいて、クロックスキューが、予め設定した設計目標値以内かを判定する判定工程、１５は判定工程１４での判定結果が設計目標値以内ならばダミー回路を集約し間引きを行うダミー回路集約工程、１６はダミー回路集約工程１５によるダミー回路集約後に詳細配線を行う詳細配線工程である。
【００２３】
次に、図１に示すフロー図の各工程について説明する。
ネットリスト変更工程１１に入力されるネットリストは、クロックラインを通じてクロック供給される複数のＦＦのうち、少なくとも一部のＦＦの直前のクロックラインにクロックをゲーティングするゲーティング回路を有する形態となっている。その構成例を図２に示す。図２に示すように、予めＦＦ直前のクロックラインにクロックゲーティング回路Ｇ０１、Ｇ０２が挿入されているブロックＡと、クロックラインが直接ＦＦに接続されているブロックＢとが混在しているものとする。
【００２４】
ブロックＡのＦＦを駆動するクロックゲーティング回路Ｇ０１、Ｇ０２は、ＥＤＡツールまたは手動スクリプトにより挿入され、各クロックゲーティング回路で十分駆動できるＦＦ数となるように予め調整しておく。例えば、通常ＣＴＳの最終段バッファで駆動するＦＦ数等から決定できる。一方、ブロックＢには、クロックゲーティング回路が存在しないため、ここにダミー回路を挿入する。
【００２５】
ここで、ダミー回路挿入処理について説明する。
図３はダミー回路挿入処理の一例を示すフロー図である。まず、入力されたネットリストからクロックを抽出し、抽出したクロックの中でＦＦのクロック入力端子に直接接続されているクロックを探索する（ステップ３１）。この探索結果から、クロック名およびＦＦ名のリストを作成する（ステップ３２）。作成されたリスト中のＦＦを各ダミー回路で十分駆動できるＦＦ数となるように、更にクラスタに分類する（ステップ３３）。例えば、ビット幅を持つようなＦＦは機能が同等かつインスタンス名がビットを表す数字意外同じことが多いので、ＦＦのインスタンス名で分類しておけばよい。このようにしてＦＦのクラスタリングが終了したら、これらのリストを元に、手動スクリプト等によりネットリストを変更し、ダミー回路を挿入する（ステップ３４）。
【００２６】
ネットリスト変更後の回路図を図４に示す。図４に示すように、ブロックＢにダミー回路Ｄ０１、Ｄ０２が挿入されており、クロックソースポイントからＦＦまでのセル段数が揃えられている。
【００２７】
次に、図１のセル配置工程１２について説明する。
セル配置工程１２では、ネットリスト変更工程１１から出力されたネットリストを用いてセルの配置を行うが、この時、従来のセル配置手法に対して制約を追加しておく。ここでの制約は、クロックゲーティング回路Ｇ０１、Ｇ０２とそれにより駆動されるＦＦ、及びダミー回路Ｄ０１、Ｄ０２とそれにより駆動されるＦＦを、それぞれ一つのクラスタとして考えて、クラスタ内のセルが近傍に配置されるようにすることである。
【００２８】
例えば、ＥＤＡツールによりクロックゲーティング回路Ｇ０１、Ｇ０２とそれにより駆動されるＦＦに近傍配置属性を与えておいても良いし、配置領域を指定してクロックゲーティング回路Ｇ０１、Ｇ０２とそれにより駆動されるＦＦが指定した領域内に配置されるようにしておいても良い。
【００２９】
このように制約を与えてセルの配置を行うことで、クロックゲーティング回路Ｇ０１、Ｇ０２が駆動するＦＦ間のスキューを最小限に留めておく。セル配置後のレイアウトを図５に示す。
【００３０】
セル配置工程１２によりセルの配置が終了すれば、ＣＴＳ工程１３で、クロックゲーティング回路Ｇ０１、Ｇ０２及びダミー回路Ｄ０１、Ｄ０２をターゲットとして、クロックソースポイントからＣＴＳを行う。ここでは従来の手法通りにＣＴＳを行えば良い。ＣＴＳにより、クロックソースからクロックゲーティング回路Ｇ０１、Ｇ０２及びダミー回路Ｄ０１、Ｄ０２までのクロックスキューは保証される。
【００３１】
また、セル配置工程１２により、クロックゲーティング回路Ｇ０１、Ｇ０２及びダミー回路Ｄ０１、Ｄ０２と、それらにより駆動されるＦＦは近傍配置されているので、結果的にクロックソースポイントからＦＦまでのクロックスキューもある程度揃ったものになっている。このクロックソースからＦＦまでのクロックスキューが設計目標値を満たさない場合は、ＣＴＳ工程１３またはセル配置工程１２まで戻って、繰り返し作業を行う。
【００３２】
なお、ＣＴＳ工程１３のクロックソースポイントとしては、一般に外部入力端子またはＰＬＬ出力等のポイントとすることが多いが、ここに予めクロックソース用クロックゲーティング回路を挿入しておき、この出力端子をクロックソースポイントとしてＣＴＳを行っても良い。
【００３３】
クロックスキューが設計目標値を満足できれば、次に、ダミー回路集約工程１５でダミー回路の集約を行うが、ネットリスト変更工程１１で挿入されたダミー回路は場合によっては冗長に挿入されている場合がある。例えば図３のステップ３３において、ＦＦのインスタンス名でＦＦのクラスタリングを行った場合、ビット幅を持たないＦＦに対しては、ダミー回路１個に対してＦＦが１個しか接続されない場合が多々発生する。
【００３４】
このまま詳細配線工程１６で詳細配線処理を進めても、機能・タイミング的には問題ないが、面積・消費電力の観点で問題となるため、同じクロックソースかつ近傍に存在するダミー回路で、ＦＦの駆動個数が少ないものをまとめ、１つのダミー回路に集約する作業を行う。
【００３５】
ここで、ダミー回路集約工程１５について説明する。
図６はダミー回路集約工程１５の処理例を示すフロー図である。まず、実際に配置されたダミー回路をセルとしてそのレイアウト上の位置（座標）を抽出する（ステップ６１）。次に、レイアウト領域を小単位に分割する（ステップ６２）。ここでの小単位は、例えばクロックゲーティング回路とそれにより駆動されるＦＦとの距離で最大のものを抽出し、１辺がそれを超えないような領域としておく。次に、分割した小単位領域の１つへ作業単位を移動する（ステップ６３）。注目した小単位領域内に含まれる各ダミー回路をステップ６１により抽出した情報からさらに抜き出し、それらのファンアウトをネットリストより抽出する（ステップ６４）。ステップ６４より抽出した情報を元に、予め設定したＦＦ数を超えない範囲でダミー回路を集約する情報を生成する（ステップ６５）。
【００３６】
次に、ステップ６５の具体的な処理例のフロー図を図７に示す。図７に示すように、領域内のダミー回路で予め設定したファンアウトより少ないものに着目して抽出し（ステップ７１）、それらの中から一番領域の重心に近いダミー回路を集約先として選択（ステップ７２）、次に、それ以外の予め設定したファンアウトより少ないダミー回路に着目して選択し（ステップ７３）、このダミー回路を削除し、これに駆動されていたＦＦを集約先ＦＦで駆動するように、ネットリスト変更情報を生成する（ステップ７４）。集約先ダミー回路のファンアウトが予め設定した値より少ない場合は、ステップ７３以降のフローを繰り返し行う。集約先ダミー回路のファンアウトが予め設定した値に達していた場合、処理されていないダミー回路を対象としてステップ７２以降のフローを繰り返し行う。
【００３７】
なお、ステップ７２では、領域の重心に近いダミー回路を選択するとしたが、ステップ７１で着目したダミー回路の中から適当に選択してもよい。
ステップ６６で、一つの領域でダミー回路集約情報が生成できたらステップ６３以降を繰り返し、すべての小単位領域でダミー回路集約情報を生成する。このようにして、ステップ６６で、すべての領域の情報が集まれば、この情報を元にネットリストの変更を行い（ステップ６７）、変更結果をレイアウトに反映させる。
【００３８】
ダミー回路集約が終了したら、詳細配線工程１６で、従来レイアウトフローと同様に詳細配線を行う。
【産業上の利用可能性】
【００３９】
本発明の半導体集積回路及びそのレイアウト方法は、半導体集積回路のレイアウトに際し、クロックゲーティングされたＦＦ群とクロックゲーティングされないＦＦ群が混在した場合においても、少ない処理量でレイアウトすることができ、レイアウトＴＡＴを短縮することができるとともに、クラスタ毎にクロックゲーティングを制御することができるもので、低消費電力で動作する携帯機器用の半導体集積回路等のレイアウト方法および半導体集積回路の発熱を抑える手段等の用途にも適用することができる。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施の形態の半導体集積回路のレイアウト方法を示すフローチャート
【図２】同実施の形態の半導体集積回路のレイアウト方法におけるレイアウト前の論理回路の一例を示す回路図
【図３】同実施の形態の半導体集積回路のレイアウト方法におけるダミー回路挿入を示すフローチャート
【図４】同実施の形態の半導体集積回路のレイアウト方法におけるダミー回路挿入後の論理回路の一例を示す回路図
【図５】同実施の形態の半導体集積回路のレイアウト方法におけるセル配置後のレイアウト図
【図６】同実施の形態の半導体集積回路のレイアウト方法におけるダミー回路集約工程の内容を示すフローチャート
【図７】同実施の形態の半導体集積回路のレイアウト方法におけるダミー回路集約処理の内容を示すフローチャート
【図８】従来例１のレイアウト方法を示すフローチャート
【図９】従来例２のレイアウト方法を示すフローチャート
【図１０】同従来例２のレイアウト方法におけるネットリストの回路図
【符号の説明】
【００４１】
Ｇ０１    クロックゲーティング回路
Ｇ０２    クロックゲーティング回路
Ｄ０１    ダミー回路
Ｄ０２    ダミー回路
Ａ０１    ＡＮＤゲート
Ａ０２    ＡＮＤゲート
【図１】
2006195757.tif 000003
【図２】
2006195757.tif 000004
【図３】
2006195757.tif 000005
【図４】
2006195757.tif 000006
【図５】
2006195757.tif 000007
【図６】
2006195757.tif 000008
【図７】
2006195757.tif 000009
【図８】
2006195757.tif 000010
【図９】
2006195757.tif 000011
【図１０】
2006195757.tif 000012