(57)【特許請求の範囲】
【請求項１】
コンピュータが回路を設計する回路設計方法であって、
コンピュータが、設計者の意図する論理に基づいて、クロックゲーティング条件を含まないＲＴＬ記述ファイルを作成する第１のステップと、
コンピュータが、論理合成ツールを用いて、前記ＲＴＬ記述ファイルに基づき、クロックゲーティングセルを含まない第１のネットリストを生成する第２のステップと、
コンピュータが、前記第１のネットリストから特定の条件を満たす回路ブロックを抽出し、当該回路ブロックにクロックを供給するクロック供給源と当該回路ブロックとの間にクロックゲーティングセルを挿入して第２のネットリストを生成する第３のステップと、
コンピュータが、自動レイアウトツールを用いて、前記第２のネットリストに含まれるセルの配置を決定する第４のステップと、を有する回路設計方法。
【請求項２】
前記第３のステップで抽出される前記特定の条件を満たす回路ブロックは、テスト回路ブロックである、請求項１に記載の回路設計方法。
【請求項３】
前記第３のステップで抽出される前記特定の条件を満たす回路ブロックは、同一のクロックで動作する回路ブロックである、請求項１に記載の回路設計方法。
【請求項４】
前記第３のステップで抽出される前記特定の条件を満たす回路ブロックは、同一の機能を有する回路ブロックである、請求項１に記載の回路設計方法。
【請求項５】
前記第４のステップで配置された前記セルのうちフリップフロップの配置に基づき、コンピュータが前記クロックゲーティングセルを複製する第５のステップを更に有する、請求項１乃至４のいずれか一項に記載の回路設計方法。
【請求項６】
コンピュータが前記第５のステップで再配置された前記クロックゲーティングセルの配置に基づきクロックバッファを生成するステップを更に有する、請求項５に記載の回路設計方法。
【請求項７】
コンピュータがクロックスキューに基づき前記フリップフロップ及び前記クロックゲーティングセルの配置を最適化する第６のステップを更に有する、請求項５又は６に記載の回路設計方法。
【請求項８】
回路にクロックゲーティングセルを挿入する処理をコンピュータに実行させるためのプログラムであって、
設計者の意図する論理に基づいて作成された、クロックゲーティング条件を含まないＲＴＬ記述ファイルを読み込む第１のステップと、
論理合成ツールを用いて、前記ＲＴＬ記述ファイルに基づき、クロックゲーティングセルを含まない第１のネットリストを生成する第２のステップと、
前記第１のネットリストから特定の条件を満たす回路ブロックを抽出し、当該回路ブロックにクロックを供給するクロック供給源と当該回路ブロックとの間にクロックゲーティングセルを挿入して第２のネットリストを生成する第３のステップと、
自動レイアウトツールを用いて、前記第２のネットリストに含まれるセルの配置を決定する第４のステップと、
をコンピュータに実行させるための回路設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は回路設計方法、及び回路設計プログラムに関し、特に回路にクロックゲーティングセルを挿入する回路設計方法、及び回路設計プログラムに関する。
【背景技術】
【０００２】
近年のＬＳＩ設計においては、消費電力の削減が大きな課題となっており、その削減手法の１つとしてクロックゲーティングが一般的に用いられている。クロックゲーティングとは、ＬＳＩ中のフリップフロップ回路、ラッチ回路、ドミノ回路などに供給するクロックを一時的、部分的に停止させる手法で、例えば図６に示す回路で実現される。
【０００３】
図６に示す回路は、クロック供給源１１０、クロックバッファ１２０、クロックゲーティングセル１３０〜１３２、フリップフロップ（ＦＦ）１４０〜１４５を有する。この回路では、クロック供給源１１０からクロックバッファ１２０、クロックゲーティングセル１３０〜１３２を経由して、各フリップフロップ１４０〜１４５にクロックが供給される。
【０００４】
クロックゲーティングセル１３０〜１３２は入力としてＣＬＫ、ＣＥＮ（Clock ENable）、出力としてＧＣＬＫの各端子を備える。そして、イネーブル信号としてＣＥＮ端子に"１"が入力された時には、ＣＬＫ端子に入力されたクロックがそのままＧＣＬＫ端子に伝播する。一方、イネーブル信号としてＣＥＮ端子に"０"が入力された時には、ＣＬＫ端子の入力にかかわらずＧＣＬＫ端子の出力は０となる。ＧＣＬＫ端子からの出力はフリップフロップ１４０〜１４５のクロック入力端子に接続されているため、クロックゲーティングセルのＣＥＮ端子へイネーブル信号を入力することで、フリップフロップ１４０〜１４５へのクロック供給を制御することができる。
【０００５】
ここで、クロック供給が停止された際、フリップフロップ１４０〜１４５の出力は停止以前のデータを保持し続ける。すなわち、クロックゲーティングセル１３０〜１３２の挿入は、論理的にはＣＥＮをホールド条件とした１サイクル前の自己の値のホールドと同じ動作となる。また、ＣＥＮ端子に常時"１"を入力すれば常時クロック伝播を続けることができ、クロックゲーティングを行わないフリップフロップと同じクロック分配回路を使用することができる。この様に、クロックゲーティングを用いることで、クロックゲーティングの出力バッファ及びそれに接続される配線、フリップフロップの入力ゲート等で消費される電力の削減、またフリップフロップの出力値が固定化されることによるフリップフロップ間のデータ伝播で消費される電力の削減が期待できる。
【０００６】
次に、クロックゲーティングセルを挿入する設計フローについて説明する。図７に設計フローの例を示す。まず、設計者は回路の通常動作を記述したＲＴＬ（Register Transfer Level）を作成する（ステップＳ１０１）。この場合の記述例を図８に示す。次に、クロックゲーティング条件の記述を、ステップＳ１０１で作成したＲＴＬ記述に挿入する（ステップＳ１０２）。図９はこの場合の記述例を示しており、この記述の"enable"がクロックゲーティング条件を示す。
【０００７】
次に、作成されたＲＴＬ記述を論理合成ツールに入力し、ネットリストを作成する（ステップＳ１０３）。論理合成ツールはＲＴＬ記述中のゲーティング条件及びホールド条件を自動で判定し、クロックゲーティング可能な箇所に対して自動的にクロックゲーティングセルを生成する。またこの際、ゲーティング条件が同じフリップフロップは一組のグループとして扱われ、１つのクロックゲーティングセルに対して複数のフリップフロップが接続される。
【０００８】
図１０は、論理合成（ステップ１０３）後のネットリスト接続を示す図である。図１０に示すように、クロック供給源１１０はフリップフロップ１４０に対して直接クロックを供給している。また、クロック供給源１１０はフリップフロップ１４１、１４２に対してクロックゲーティングセル１３１を介してクロックを供給している。また、クロック供給源１１０はフリップフロップ１４３〜１４５に対してクロックゲーティングセル１３２を介してクロックを供給している。
【０００９】
次に、レイアウトツールによる自動配置を行う（ステップＳ１０４）。レイアウトツールは配置制約、遅延制約、その他の条件に基づいてネットリスト中のセルの配置を行う。
次に、ＣＴＳ(Clock Tree Synthesis)処理を行う（ステップＳ１０５）。ＣＴＳ処理では、クロック分配対象セルの密度に合わせてクロックバッファが生成さる。また、離れた箇所にあるフリップフロップで共通して使用されるクロックゲーティングは、複製する等の処理が行なわれる。この結果、図６に示すような接続が生成される。
次に、ＣＴＳで生成、移動されたセルの再配置及びスキューを考慮した遅延最適化等を行い（ステップＳ１０６）、配線処理が行なわれる（ステップＳ１０７）。
【００１０】
また、特許文献１には低消費電力化と回路の簡素化を実現するための論理設計を行なう回路設計装置に関する技術が開示されている。特許文献１にかかる回路設計装置は、設計対象のＲＴＬ記述を解釈して構造解析を行ない、構造解析の結果に基づいてクロックゲーティングを予測してＥＮ（イネーブル）生成論理のＲＴＬ記述を検出し、且つ、同一のＥＮ生成論理を検出する。そして、検出されたＥＮ生成論理からクロックゲーティング回路の挿入位置と論理階層の組み替えを決定して、論理合成における論理階層組み替えの指示と設計変更処理を行なう。更に、設計変更後のＲＴＬ記述と論理階層組み替えの指示とによって論理合成を行ない、具体的な回路構成にレイアウトしている。
【００１１】
また、特許文献２には高速化を実現することが可能な半導体装置の設計方法に関する技術が開示されている。特許文献２にかかる半導体装置の設計方法では、機能ブロック単位で階層化された半導体チップのネットリストに対し、機能ブロック単位の階層を展開し、同一クロック信号が供給される回路を抽出及び階層化することで、クロックドメイン単位の回路ブロックを含むネットリストを構築し、回路ブロックの単位で半導体チップ内の配線配置を行なっている。これにより、クロックパルス発生器からのクロックレイテンシが小さくなり、半導体装置の高速化が可能となる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−１６４５９０号公報
【特許文献２】特開２００６−４９６３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
背景技術で説明した設計手法では、論理合成済みの回路に対して新たにクロックゲーティングセルを挿入する場合、人手でＲＴＬ記述にクロックゲーティング条件を追加する必要がある。つまり、図９に示すようなクロックゲーティング条件を示す記述である"enable"をＲＴＬ記述に追加する必要がある。また、背景技術で説明した設計手法では、論理合成ツールを用いてゲーティングセルを生成するためゲーティング条件等の制御性が悪く、設計者の意図した条件でゲーティングセルを生成するのが困難であるという問題がある。
【００１４】
よって本発明の目的は、論理合成済みの回路に対して容易かつ高精度にクロックゲーティングセルを挿入することができる回路設計方法、及び回路設計プログラムを提供することである。
【課題を解決するための手段】
【００１５】
本発明にかかる回路設計方法は、設計者の意図する論理に基づいて、クロックゲーティング条件を含まないＲＴＬ記述ファイルを作成する第１のステップと、論理合成ツールを用いて、前記ＲＴＬ記述ファイルに基づき第１のネットリストを生成する第２のステップと、前記第１のネットリストにクロックゲーティングセルを挿入して第２のネットリストを生成する第３のステップと、自動レイアウトツールを用いて、前記第２のネットリストに含まれるセルの配置を決定する第４のステップと、を有する。
【００１６】
本発明にかかる、回路にクロックゲーティングセルを挿入するためのプログラムは、設計者の意図する論理に基づいて作成された、クロックゲーティング条件を含まないＲＴＬ記述ファイルを読み込む第１のステップと、論理合成ツールを用いて、前記ＲＴＬ記述ファイルに基づき第１のネットリストを生成する第２のステップと、前記第１のネットリストにクロックゲーティングセルを挿入して第２のネットリストを生成する第３のステップと、自動レイアウトツールを用いて、前記第２のネットリストに含まれるセルの配置を決定する第４のステップと、をコンピュータに実行させるための回路設計プログラムである。
【発明の効果】
【００１７】
本発明により論理合成済みの回路に対して容易かつ高精度にクロックゲーティングセルを挿入することができる回路設計方法、及び回路設計プログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかる回路設計方法を説明するためのフローチャートである。
【図２】実施の形態２にかかる回路設計方法を説明するためのフローチャートである。
【図３】論理合成（第２のステップ）により生成された第１のネットリストの接続状態を示す図である。
【図４】クロックゲーティングセル挿入（第３のステップ）により生成された第２のネットリストの接続状態を示す図である。
【図５】実施の形態２にかかる回路設計フローにより生成される回路図である。
【図６】背景技術にかかるクロックゲーティングセル挿入フローにより生成される回路図である。
【図７】背景技術にかかる回路設計方法を説明するためのフローチャートである。
【図８】クロックゲーティング条件が未挿入のＲＴＬ記述の一例である。
【図９】クロックゲーティング条件が挿入されたＲＴＬ記述の一例である。
【図１０】背景技術にかかる回路設計フローの論理合成（ステップＳ１０３）後のネットリストの接続状態を示す図である。
【発明を実施するための形態】
【００１９】
実施の形態１．
以下、図面を参照して本発明の実施の形態１について説明する。図１は本実施の形態にかかる回路設計方法を説明するためのフローチャートである。
本実施の形態にかかる回路設計方法は、設計者の意図する論理に基づいて、クロックゲーティング条件を含まないＲＴＬ記述ファイルを作成する第１のステップ（図１のステップＳ１）と、論理合成ツールを用いて、第１のステップで生成されたＲＴＬ記述ファイルに基づき第１のネットリストを生成する第２のステップ（ステップＳ２）と、第１のネットリストにクロックゲーティングセルを挿入して第２のネットリストを生成する第３のステップ（ステップＳ３）と、自動レイアウトツールを用いて、第２のネットリストに含まれるセルの配置を決定する第４のステップ（ステップＳ４）と、を少なくとも有する。以下、各ステップについて詳細に説明する。
【００２０】
第１のステップ（ステップＳ１）では、設計者の意図する論理に基づいて、回路の通常動作を記述したＲＴＬ記述ファイルを作成する。本実施の形態にかかる回路設計方法では、ＲＴＬ記述ファイルには回路の通常動作のみを記述し、クロックゲーティング条件は記述に含めない。ＲＴＬ記述ファイルは、例えばハードウェア設計言語ＨＤＬ（Hardware Description Language）を用いて、モジュール毎の機能の記述をすることで作成する。
【００２１】
また、ＲＴＬ記述ファイルを作成後、ＲＴＬ記述の品質チェックや機能検証等を実施してもよい。ＲＴＬ記述ファイルの品質チェックでは、ＲＴＬ記述の内容が文法上、記述規則上違反していないかチェックする。また、ＲＴＬ記述の検証では、例えばシュミレータを用いて予め定められた仕様通りの機能がＨＤＬで表現されているかを検証する。
【００２２】
第２のステップ（ステップＳ２）では、論理合成ツールを用いて、第１のステップで作成したＲＴＬ記述ファイルに基づき第１のネットリストを生成する。この際も、論理合成ツールによるクロックゲーティングセルの生成は行なわれない。第１のネットリストにはセル（回路素子）やそのセル間の接続状況が記載されている。第２のステップで生成される第１のネットリストの接続状態を図３に示す。図３に示すように、各フリップフロップ４０〜４４にはクロック供給源１０からクロックが供給されている。
【００２３】
第３のステップ（ステップＳ３）では、第２のステップで生成した第１のネットリストにクロックゲーティングセルを挿入して第２のネットリストを生成する。クロックゲーティングセルの挿入は、例えば特定の条件を満たす回路ブロック毎に、単一または複数のクロックゲーティングセルを挿入する。第３のステップで生成される第２のネットリストの接続状態を図４に示す。図４に示すように、各フリップフロップ４０〜４４とクロック供給源１０との間にはクロックゲーティングセル３０が設けられている。そして、各フリップフロップ４０〜４４へのクロックの供給は、クロックゲーティングセルのＣＥＮ入力に供給されるイネーブル信号により制御される。ここで、各フリップフロップ４０〜４４は特定の条件を満たす回路ブロック５０である。特定の条件を満たす回路ブロック５０としては、例えばテスト回路ブロック、同一のクロックで動作する回路ブロック、同一の機能を有する回路ブロックである。
【００２４】
なお、第３のステップにおいて、第１のネットリストにクロックゲーティングセルを挿入する場所は、例えば第１のネットリストを検索して特定の条件を満たす回路ブロックを自動で抽出することで決定することができる。また、第１のネットリストにクロックゲーティングセルを挿入する場所は、例えば第１のネットリストを参照して、設計者が入力手段を用いて指定することもできる。このようにして、第３のステップでは特定の条件を満たす回路ブロックとクロック供給源との間にクロックゲーティングセルを挿入する。
【００２５】
第４のステップ（ステップＳ４）では、自動レイアウトツールを用いて、第３のステップで生成された第２のネットリストに含まれるセル（クロックゲーティングセル、フリップフロップなど）の配置を決定する。自動レイアウトツールは、配置制約、遅延制約、その他の条件に基づいて第２のネットリスト中にあるセルの配置を行なう。
【００２６】
以上で説明した本実施の形態にかかる回路設計方法では、ＲＴＬ記述ファイルにクロックゲーティング条件を含めるのではなく、ＲＴＬ記述ファイルを論理合成することで生成された第１のネットリストにクロックゲーティングセルを挿入している。これにより、論理合成済みの回路に対して新たにクロックゲーティングセルを挿入する際に、人手でＲＴＬ記述にクロックゲーティング条件を追加する必要がなくなる。つまり、図９に示すようなクロックゲーティング条件を示す記述である"enable"をＲＴＬ記述に追加する必要がなくなるため、クロックゲーティング条件の記述漏れを抑制することができる。
また、本実施の形態にかかる回路設計方法では、論理合成ツールを用いてゲーティングセルを生成していないためゲーティング条件の制御性がよく、設計者の意図した条件でゲーティングセルを生成することができる。
【００２７】
よって、本実施の形態にかかる発明により論理合成済みの回路に対して容易かつ高精度にクロックゲーティングセルを挿入することができる回路設計方法を提供することができる。
【００２８】
一方、回路を構成する全ての回路ブロックに対して単一のゲーティング条件によるクロックゲーティングセルを挿入した場合、回路に対して一括してクロックの供給を停止することができる。
【００２９】
通常のクロックゲーティングセルの挿入フローでは、クロックゲーティング条件を含むＲＴＬ記述ファイルに基づき、論理合成ツールが自動でクロックゲーティング条件の抽出及びフリップフロップのグループ化を行うために、クロックゲーティングセルが生成されない場合や期待通りの条件でのクロックゲーティングが行われない可能性があった。また、クロックゲーティング条件の異なる複数のクロックゲーティングセルが生成されるため、これらに接続されるフリップフロップがそれぞれグループ化され、近傍に配置されることにより、レイアウト時の配置が制約されていた。
【００３０】
しかし、回路を構成する全ての回路ブロックに対して単一のゲーティング条件によるクロックゲーティングセルを挿入する場合、本実施の形態にかかる回路設計方法ではクロック供給源の根本にクロックゲーティングセルを挿入することができるので、１００％のクロックゲーティング率を保証することができる。また、この場合はクロックゲーティング条件の異なる複数のクロックゲーティングセルが生成されないため、各フリップフロップのレイアウト時の配置が制約されることを抑制できる。
【００３１】
本実施の形態にかかる回路設計方法は、このように一括してクロックの供給を止めるような回路の設計により適している。このような回路としては、例えばＬＳＩ中に組み込まれたテスト回路（ＬＳＩの通常動作時に使用されず値が保持されないものとする）がある。この理由は、ＬＳＩ中に組み込まれたテスト回路は、通常動作時には使用されないため、回路ブロック単位で完全に停止することが期待されているからである。また、ＬＳＩが動作する時間のうち大部分では回路ブロック全体が停止しているため、さらに細かい単位でクロックゲーティングセルを設ける必要性が低いからである。また、ＬＳＩの通常の回路では、複数に分配されたクロックゲーティングセルへの信号分配が課題となるが、テスト回路であれば動作の開始、停止の切り替えタイミングを調整でき、信号伝播にも十分な時間を確保することができるからである。
【００３２】
また、本実施の形態にかかる回路設計プログラムは、上記第１乃至第４のステップをコンピュータに実行させるためのプログラムである。
すなわち、本実施の形態にかかる、回路にクロックゲーティングセルを挿入するためのプログラムは、設計者の意図する論理に基づいて作成された、クロックゲーティング条件を含まないＲＴＬ記述ファイルを読み込む第１のステップと、論理合成ツールを用いて、ＲＴＬ記述ファイルに基づき第１のネットリストを生成する第２のステップと、第１のネットリストにクロックゲーティングセルを挿入して第２のネットリストを生成する第３のステップと、自動レイアウトツールを用いて、第２のネットリストに含まれるセルの配置を決定する第４のステップと、をコンピュータに実行させるための回路設計プログラムである。
【００３３】
本実施の形態にかかる回路設計プログラムにおいても、回路設計方法と同様の効果、つまり、論理合成済みの回路に対して容易かつ高精度にクロックゲーティングセルを挿入することができるという効果を得ることができる。
【００３４】
実施の形態２．
次に、本発明の実施の形態２について説明する。図２は本実施の形態にかかる回路設計方法を説明するためのフローチャートである。図２に示すフローチャートでは、実施の形態１で説明した図１に示すフローチャートに、ステップＳ３'、ステップＳ５、ステップＳ６、ステップＳ７が追加されている。以下、本実施の形態にかかる回路設計方法について説明する。
【００３５】
第１のステップ（ステップＳ１）では、設計者の意図する論理に基づいて、クロックゲーティング条件を含まないＲＴＬ記述ファイルを作成する（図２のステップＳ１）。また、第２のステップ（ステップＳ２）では、論理合成ツールを用いて、第１のステップで生成されたＲＴＬ記述ファイルに基づき第１のネットリストを生成する。なお、第１及び第２のステップについては、実施の形態１の内容と重複するので説明を省略する。
【００３６】
第３'のステップ（ステップＳ３'）では、第１のネットリストから特定の条件を満たす回路ブロックを抽出する。ここで、特定の条件を満たす回路ブロックとは、例えばテスト回路ブロック、同一のクロックで動作する回路ブロック、同一の機能を有する回路ブロックである。
【００３７】
テスト回路ブロックは、例えば第１のネットリストからテスト回路ブロックを構成するフリップフロップを検索することで抽出することができる。
【００３８】
また、同一のクロックで動作する回路ブロックは、例えば第１のネットリストを構成する各フリップフロップのうち、共通のクロック供給源に接続されているフリップフロップを検索することで抽出することができる。なお、複数のフリップフロップが階層化されている場合は、階層レベルで同一のクロックで動作する回路ブロックを抽出してもよい。
【００３９】
また、同一の機能を有する回路ブロックは、例えば第１のネットリストを構成する各フリップフロップのうち、同一の機能を有するフリップフロップを検索することで抽出することができる。
【００４０】
なお、本実施の形態にかかる回路設計方法では、回路ブロックを抽出するための特定の条件は任意に設定することができる。また、回路ブロックを抽出するための特定の条件は複数の条件の組み合わせであってもよい。
【００４１】
第３のステップ（ステップＳ３）では、第３'のステップで抽出した回路ブロックにクロックを供給するクロック供給源と当該回路ブロックとの間にクロックゲーティングセルを挿入して第２のネットリストを生成する。クロックゲーティングセルを挿入する場合は、例えばステップ３'で抽出された各回路ブロックを構成するフリップフロップの収束点を第１のネットリストから抽出し、この収束点にクロックゲーティングセルを挿入する。
【００４２】
なお、前述のクロックゲーティングセルの抽出処理（ステップ３'）および挿入処理（ステップ３）は自動的に行なったが、これらの処理の一部または全ては設計者により手動で行なってもよい。
クロックゲーティングセルの抽出処理および挿入処理の一部を手動で行なう場合は、例えばステップ３'で第１のネットリストから特定の条件を満たす回路ブロックを自動で抽出する。そしてステップ３で、この抽出結果に基づいて設計者が手動でクロックゲーティングセルの挿入場所を決定する。
一方、クロックゲーティングセルの抽出処理および挿入処理の全てを手動で行なう場合は、例えばステップ３'で第１のネットリストから特定の条件を満たす回路ブロックを手動で抽出する。そしてステップ３で、この抽出結果に基づいて設計者が手動でクロックゲーティングセルの挿入場所を決定する。
【００４３】
第４のステップ（ステップＳ４）では、自動レイアウトツールを用いて、第３のステップで生成された第２のネットリストに含まれるセル（クロックゲーティングセル、フリップフロップなど）の配置を決定する。自動レイアウトツールは、配置制約、遅延制約、その他の条件に基づいて第２のネットリスト中にあるセルの配置を行なう。
【００４４】
第５のステップ（ステップＳ５）では、ＣＴＳ処理を行なう。このステップでは、クロックゲーティングセルはフリップフロップの配置にあわせて適宜複製され、また複製されたクロックゲーティングセルの密度にあわせてクロックバッファが生成される。
【００４５】
第６のステップ（ステップＳ６）では、第５のステップのＣＴＳ処理で生成、移動されたセルを再配置し、また、クロック端子から各フリップフロップまでの配線遅延のずれ、つまりスキューがある規定値以内に収まるように最適化処理をする。
第７のステップ（ステップＳ７）では、フリップフロップ及びクロックゲーティングセルの配線をする。
【００４６】
なお、本実施の形態にかかる回路設計方法では、ＣＴＳ処理（第５のステップ）以降のフローは通常のクロックゲーティング挿入フローと同様であり、また、使用されるクロックゲーティングセルも通常のものと同様であるため、ＣＴＳ処理以降のフローの使用の有無によりレイアウト時に特別な領域を設けるなどの必要がない。
【００４７】
本実施の形態にかかる回路設計方法により生成された回路図を図５に示す。図５に示す回路では、フリップフロップ４０〜４４が回路ブロック５０を構成しており、各フリップフロップ４０〜４４にはクロック供給源１０からクロックバッファ２０、クロックゲーティングセル３０、３１を介してクロックが供給されている。クロックゲーティングセル３０はクロックバッファ２０とフリップフロップ４０〜４２との間に設けられている。フリップフロップ４０〜４２へのクロックの供給は、クロックゲーティングセル３０のＣＥＮ入力に供給されるイネーブル信号により制御される。クロックゲーティングセル３１はクロックバッファ２０とフリップフロップ４３、４４との間に設けられている。フリップフロップ４３、４４へのクロックの供給は、クロックゲーティングセル３１のＣＥＮ入力に供給されるイネーブル信号により制御される。
【００４８】
図５に示す回路図と、図４に示す実施の形態１にかかる回路設計方法により生成された回路図とを比較すると、図５に示す回路図では回路ブロック５０を構成するフリップフロップ４０〜４４に対してクロックゲーティングセルが２つ設けられており、また、クロック供給源１０とクロックゲーティングセル３０、３１との間にはクロックバッファ２０が設けられている。つまり、本実施の形態にかかる回路設計方法では、ステップ４の自動配置後にステップ５のＣＴＳ処理を実施することで、フリップフロップ４０〜４４の配置にあわせてクロックゲーティングセル３０、３１を配置でき、また、クロックゲーティングセル３０、３１の密度にあわせてクロックバッファ２０を設けることができる。
【００４９】
本実施の形態にかかる回路設計方法では、回路ブロック内のクロックゲーティング条件を統一することで、ＣＴＳ処理（第５のステップ）によるクロックゲーティングセル複製時に、回路ブロック内のフリップフロップを任意に組み合わせてゲーティングセルに接続させることができる。これにより、各フリップフロップの配置の自由度が増し、遅延の最適化、設計時間の短縮化を図ることができる。また、本実施の形態にかかる回路設計方法においても、実施の形態１の効果と同様の効果を得ることができる。
【００５０】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【符号の説明】
【００５１】
１０  クロック供給源
２０  クロックバッファ
３０、３１  クロックゲーティングセル
４０、４１、４２、４３、４４  フリップフロップ
５０  回路ブロック
【図１】
0005531479.tif 000002
【図２】
0005531479.tif 000003
【図３】
0005531479.tif 000004
【図４】
0005531479.tif 000005
【図５】
0005531479.tif 000006
【図６】
0005531479.tif 000007
【図７】
0005531479.tif 000008
【図８】
0005531479.tif 000009
【図９】
0005531479.tif 000010
【図１０】
0005531479.tif 000011