(57)【要約】【課題】  実動作において低消費電力化が図れるゲーティッドクロック設計が可能な論理回路設計支援方法を提供する。【解決手段】  最適化対象論理回路の回路構造を記述した回路データＤ１に基づいて、最適化対象論理回路に入力する複数のイネーブル信号の情報Ｄ２を抽出する第１ステップＳ１と、最適化対象論理回路と抽出された複数のイネーブル信号の生成論理に対して実動作モードの論理シミュレーションを実行して、イネーブル信号毎の動作時におけるアクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報Ｄ４を取得する第２ステップＳ２と、時系列情報Ｄ４に基づいて、最適化対象論理回路とクロックゲーティング回路の合計消費電力が、クロックゲーティング回路を挿入する前の最適化対象論理回路の消費電力より低減されるように、クロックゲーティング回路の挿入個数及び挿入箇所を最適化する第３ステップＳ３〜Ｓ５を有する。【選択図】        図４
2011100346.tif 000002
【特許請求の範囲】
【請求項１】
少なくともイネーブル信号とクロック信号を入力信号とする複数の論理回路ユニットからなる最適化対象論理回路に対して、前記クロック信号を非活性化するクロックゲーティング回路を、前記クロック信号の前記論理回路ユニットに至る信号経路上に少なくとも１つ挿入して、前記最適化対象論理回路に対して低消費電力化を行うゲーティッドクロック設計をコンピュータ演算処理により支援する論理回路設計支援方法であって、
前記最適化対象論理回路の回路構造を記述した回路データに基づいて、前記最適化対象論理回路に入力する複数の前記イネーブル信号を抽出する第１ステップと、
前記最適化対象論理回路と抽出された前記複数のイネーブル信号の生成論理に対して実動作モードの論理シミュレーションを実行して、前記イネーブル信号毎の動作時におけるアクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報を取得する第２ステップと、
前記時系列情報に基づいて、前記最適化対象論理回路と前記クロックゲーティング回路の合計消費電力が、前記クロックゲーティング回路を挿入する前の前記最適化対象論理回路の消費電力より低減されるように、前記クロックゲーティング回路の挿入個数及び挿入箇所を最適化する第３ステップと、を有すること特徴とする論理回路設計支援方法。
【請求項２】
前記第３ステップにおいて、前記時系列情報に基づいて、抽出された前記イネーブル信号毎に、動作期間中にアクティブ状態となっている比率を示すアクティブ比率を取得し、前記アクティブ比率が所定の基準アクティブ比率以上の前記イネーブル信号を、第１種イネーブル信号として抽出し、前記第１種イネーブル信号が入力する特定の前記論理回路ユニットを、前記クロックゲーティング回路の挿入対象から除外することを特徴とする請求項１に記載の論理回路設計支援方法。
【請求項３】
前記第３ステップにおいて、前記時系列情報に基づいて、抽出された前記複数のイネーブル信号の中から、２以上の前記イネーブル信号間で信号状態が互いに一致している期間の全動作期間に対する比率で表わされる近似率が所定の基準近似率以上の２以上の前記イネーブル信号の組み合わせを、第２種イネーブル信号として１組以上抽出し、
前記第２種イネーブル信号が夫々入力する２以上の前記論理回路ユニットに対して、同一組に属する前記第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となる１つの合成イネーブル信号を生成し、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することを特徴とする請求項１に記載の論理回路設計支援方法。
【請求項４】
前記第３ステップにおいて、前記時系列情報に基づいて、前記第１種イネーブル信号を除く抽出された前記複数のイネーブル信号の中から、２以上の前記イネーブル信号間で信号状態が互いに一致している期間の全動作期間に対する比率で表わされる近似率が所定の基準近似率以上の２以上の前記イネーブル信号の組み合わせを、第２種イネーブル信号として１組以上抽出し、
前記第２種イネーブル信号が夫々入力する２以上の前記論理回路ユニットに対して、同一組に属する前記第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となる１つの合成イネーブル信号を生成し、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することを特徴とする請求項２に記載の論理回路設計支援方法。
【請求項５】
前記第３ステップにおいて、前記クロックゲーティング回路の挿入対象となる前記論理回路ユニットに対して、前記論理回路ユニットに入力する前記イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル信号が入力しないイネーブル無し論理回路ユニットに置き換え、前記合成イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル無し論理回路ユニットに置き換えないことを特徴とする請求項４に記載の論理回路設計支援方法。
【請求項６】
少なくともイネーブル信号とクロック信号を入力信号とする複数の論理回路ユニットからなる最適化対象論理回路に対して、前記クロック信号を非活性化するクロックゲーティング回路を、前記クロック信号の前記論理回路ユニットに至る信号経路上に少なくとも１つ挿入して、前記最適化対象論理回路に対して低消費電力化を行うゲーティッドクロック設計をコンピュータ演算処理により支援する論理回路設計支援装置であって、
前記最適化対象論理回路の回路構造を記述した回路データに基づいて、前記最適化対象論理回路に入力する複数の前記イネーブル信号を抽出する第１手段と、
前記最適化対象論理回路と抽出された前記複数のイネーブル信号の生成論理に対して実動作モードの論理シミュレーションを実行して、前記イネーブル信号毎の動作時におけるアクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報を取得する第２手段と、
前記時系列情報に基づいて、前記最適化対象論理回路と前記クロックゲーティング回路の合計消費電力が、前記クロックゲーティング回路を挿入する前の前記最適化対象論理回路の消費電力より低減されるように、前記クロックゲーティング回路の挿入個数及び挿入箇所を最適化する第３手段と、を備えること特徴とする論理回路設計支援装置。
【請求項７】
前記第３手段が、前記時系列情報に基づいて、抽出された前記イネーブル信号毎に、動作期間中にアクティブ状態となっている比率を示すアクティブ比率を取得し、前記アクティブ比率が所定の基準アクティブ比率以上の前記イネーブル信号を、第１種イネーブル信号として抽出し、前記第１種イネーブル信号が入力する特定の前記論理回路ユニットを、前記クロックゲーティング回路の挿入対象から除外することを特徴とする請求項６に記載の論理回路設計支援装置。
【請求項８】
前記第３手段が、前記時系列情報に基づいて、抽出された前記複数のイネーブル信号の中から、２以上の前記イネーブル信号間で信号状態が互いに一致している期間の全動作期間に対する比率で表わされる近似率が所定の基準近似率以上の２以上の前記イネーブル信号の組み合わせを、第２種イネーブル信号として１組以上抽出し、
前記第２種イネーブル信号が夫々入力する２以上の前記論理回路ユニットに対して、同一組に属する前記第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となる１つの合成イネーブル信号を生成し、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することを特徴とする請求項６に記載の論理回路設計支援装置。
【請求項９】
前記第３手段が、前記時系列情報に基づいて、前記第１種イネーブル信号を除く抽出された前記複数のイネーブル信号の中から、２以上の前記イネーブル信号間で信号状態が互いに一致している期間の全動作期間に対する比率で表わされる近似率が所定の基準近似率以上の２以上の前記イネーブル信号の組み合わせを、第２種イネーブル信号として１組以上抽出し、
前記第２種イネーブル信号が夫々入力する２以上の前記論理回路ユニットに対して、同一組に属する前記第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となる１つの合成イネーブル信号を生成し、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することを特徴とする請求項７に記載の論理回路設計支援装置。
【請求項１０】
前記第３手段が、前記クロックゲーティング回路の挿入対象となる前記論理回路ユニットに対して、前記論理回路ユニットに入力する前記イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル信号が入力しないイネーブル無し論理回路ユニットに置き換え、前記合成イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル無し論理回路ユニットに置き換えないことを特徴とする請求項９に記載の論理回路設計支援装置。
【請求項１１】
請求項１〜５の何れか１項に記載の論理回路設計支援方法を用いて、前記クロックゲーティング回路の挿入個数及び挿入箇所が最適化された論理回路を有することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを利用した論理回路設計の自動化技術において、特に実動作モードにおける低消費電力化のためのゲーティッドクロック設計を支援する論理回路設計支援方法及び装置に関する。
【背景技術】
【０００２】
通常、論理回路はＨＤＬ（Hardware Description Language）等のハードウェア記述言語で設計されるが、近年、ＬＳＩ（Large Scale Integrated circuit）等の半導体集積回路は、高集積化、大型化する傾向にあり、それに伴い低消費電力化が大きな課題となっている。低消費電力化技術の内、論理合成段階においてＲＴＬ（Register Transfer Level）記述に対して、クロック信号の有効無効を制御するクロックゲーティング手法を用いることが、現在の設計の主流となっている。即ち、クロック信号の印加が不要な期間のクロック信号を停止させることにより低消費電力化を実現している。しかしながら、論理合成ツールを用いてクロックゲーティング処理を実施した場合、論理階層毎及びフリップフロップ回路毎にクロックゲーティング回路が挿入されてしまうため、回路規模が大きくなるとともに、クロックゲーティング回路での電力消費が増大して、更なる低消費電力化を実現できないという問題があった。
【０００３】
クロックゲーティング処理における上記問題を解決する従来技術として、例えば、下記特許文献１に開示されている「回路設計装置、回路設計プログラム、及び回路設計方法」が挙げられる。この方法では、イネーブル信号を解析して、共通イネーブル信号を抽出することにより論理階層を跨いだイネーブル信号の組み替えを行うことにより、クロックゲーティング回路の簡素化を図り、低消費電力化を実現している。当該従来技術における処理内容を、図１を用いて説明する。
【０００４】
図１は、ある論理回路におけるクロックゲーティング処理を実施することによる低消費電力化処理の概念図であり、同図（ａ）は、クロックゲーティング処理前の回路構成を、同図（ｂ）は、クロックゲーティング回路の簡素化を行わない従来の論理合成ツールを用いてクロックゲーティング処理（第１の従来処理）を実施した後の回路構成を、同図（ｃ）は、特許文献１に開示のクロックゲーティング処理（第２の従来処理）を実施した後の回路構成を、夫々示している。
【０００５】
図１（ａ）に示すように、クロックゲーティング処理前の論理回路のクロック信号ＣＬＫは、クロックジェネレータ２０から論理階層１１〜１４のイネーブル付きフリップフロップ回路３１〜３４へ共通に分配されている。同様にイネーブル信号ＥＮ１〜ＥＮ３は、イネーブル生成論理回路２１から供給され、論理階層１１，１２の下のイネーブル付きフリップフロップ回路３１，３２には共通のイネーブル信号ＥＮ１が、論理階層１３，１４のイネーブル付きフリップフロップ回路３３，３４には、夫々異なるイネーブル信号ＥＮ２，ＥＮ３が供給されている。このとき、クロックジェネレータ２０から供給されるクロック信号ＣＬＫは常時供給されるが、イネーブル生成論理回路２１から供給されるイネーブル信号ＥＮ１〜ＥＮ３は、論理階層１１〜１４のイネーブル付きフリップフロップ回路３１〜３４の動作タイミングに合わせてアクティブ状態になるように設計されている。尚、フリップフロップ回路３１〜３４の夫々に付した記号ＥＮ及びＣＫは、夫々イネーブル信号とクロック信号の入力端子を表している。
【０００６】
ここで、図１（ａ）の論理回路に対して第１の従来処理を実施すると、図１（ｂ）に示すように、論理階層１１〜１４の下にクロックゲーティング回路４１〜４４が挿入され、論理階層１１〜１４のイネーブル付きフリップフロップ回路３１〜３４がイネーブル無しフリップフロップ回路３１ａ〜３４ａにマッピングされる。つまり、イネーブル生成論理回路２１からのイネーブル信号ＥＮ１〜ＥＮ３によって動作する必要のない期間（非アクティブ期間）はクロック信号ＣＬＫの供給が停止される構成となるため、該当するフリップフロップ回路の消費電力は低減される。
【０００７】
一方、図１（ａ）の論理回路に対して特許文献１に開示の第２の従来処理を適用すると、共通するイネーブル信号を抽出し、且つ、論理階層を跨いでクロックゲーティング回路を最適化するため、図１（ｃ）に示すように、論理階層１０の下にクロックゲーティング回路４５〜４７が挿入され、論理階層１１〜１４のイネーブル付きフリップフロップ回路３１〜３４がイネーブル無しフリップフロップ回路３１ａ〜３４ａにマッピングされる。つまり、図１（ｃ）に示す処理結果では、図１（ｂ）に示す処理結果に対して、クロックゲーティング回路の数を減らすことができるため、より低消費電力化が可能となる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１６４５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に開示の従来技術では下記のような問題があった。処理対象の回路構造のみから判断してクロックゲーティングの最適化を実施しているため、実動作モードを考慮した低消費電力化が行われていない。そのため、処理対象の論理回路を実際に動作させた際に、低消費電力化のための回路最適化が不十分、または不適当となっている可能性がある。以下、このことを、図１及び図２を用いて説明する。図２は、図１（ｃ）に示す第２の従来処理後の論理回路を実際に動作させた際のシミュレーション波形の一例を示したものである。第２の従来処理では、生成論理が異なるイネーブル信号ＥＮ１〜ＥＮ３に対して平等にクロックゲーティング回路４５〜４７を挿入している。このとき、イネーブル信号ＥＮ１〜ＥＮ３のシミュレーション波形を観測すると、イネーブル信号ＥＮ１とイネーブル信号ＥＮ２は共通の波形をしており、クロックゲーティング回路４５，４６から出力されるクロック信号ＣＬＫ１，ＣＬＫ２も共通の波形となる。つまり、実動作モードでの回路の動作を考慮するとクロックゲーティング回路４５，４６は冗長であり、余分な電力を消費している状態にある。また、イネーブル信号ＥＮ３はクロックサイクルＴ５以外では‘１’（アクティブ状態）であり、クロックゲーティング回路４７から出力されるクロック信号ＣＬＫ３は、動作期間中の９０％はアクティブ状態となる。つまり、実動作モードでの回路動作を考慮すると、クロック信号ＣＬＫ３の停止する時間は動作期間中の１０％でしかないため低消費電力効果は小さく、寧ろクロックゲーティング回路４７の電力消費の方が大きくなる可能性があり、斯かる場合には、クロックゲーティング回路を含む論理回路全体として、却って消費電力が増加する結果となる。
【００１０】
本発明は、上記従来のゲーティッドクロック設計における問題に鑑みてなされたものであり、その目的は、実動作において確実且つ高効率に低消費電力化が図れるゲーティッドクロック設計を支援可能な論理回路設計支援方法及び装置を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明は、少なくともイネーブル信号とクロック信号を入力信号とする複数の論理回路ユニットからなる最適化対象論理回路に対して、前記クロック信号を非活性化するクロックゲーティング回路を、前記クロック信号の前記論理回路ユニットに至る信号経路上に少なくとも１つ挿入して、前記最適化対象論理回路に対して低消費電力化を行うゲーティッドクロック設計をコンピュータ演算処理により支援する論理回路設計支援方法であって、
前記最適化対象論理回路の回路構造を記述した回路データに基づいて、前記最適化対象論理回路に入力する複数の前記イネーブル信号を抽出する第１ステップと、前記最適化対象論理回路と抽出された前記複数のイネーブル信号の生成論理に対して実動作モードの論理シミュレーションを実行して、前記イネーブル信号毎の動作時におけるアクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報を取得する第２ステップと、前記時系列情報に基づいて、前記最適化対象論理回路と前記クロックゲーティング回路の合計消費電力が、前記クロックゲーティング回路を挿入する前の前記最適化対象論理回路の消費電力より低減されるように、前記クロックゲーティング回路の挿入個数及び挿入箇所を最適化する第３ステップと、を有することを特徴とする論理回路設計支援方法を提供する。
【００１２】
更に、本発明は、少なくともイネーブル信号とクロック信号を入力信号とする複数の論理回路ユニットからなる最適化対象論理回路に対して、前記クロック信号を非活性化するクロックゲーティング回路を、前記クロック信号の前記論理回路ユニットに至る信号経路上に少なくとも１つ挿入して、前記最適化対象論理回路に対して低消費電力化を行うゲーティッドクロック設計をコンピュータ演算処理により支援する論理回路設計支援装置であって、
前記最適化対象論理回路の回路構造を記述した回路データに基づいて、前記最適化対象論理回路に入力する複数の前記イネーブル信号を抽出する第１手段と、前記最適化対象論理回路と抽出された前記複数のイネーブル信号の生成論理に対して実動作モードの論理シミュレーションを実行して、前記イネーブル信号毎の動作時におけるアクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報を取得する第２手段と、前記時系列情報に基づいて、前記最適化対象論理回路と前記クロックゲーティング回路の合計消費電力が、前記クロックゲーティング回路を挿入する前の前記最適化対象論理回路の消費電力より低減されるように、前記クロックゲーティング回路の挿入個数及び挿入箇所を最適化する第３手段と、を備えることを特徴とする論理回路設計支援装置を提供する。
【００１３】
上記特徴の論理回路設計支援方法または装置によれば、実動作モードの論理シミュレーション結果に基づいて、前記クロックゲーティング回路の挿入個数及び挿入箇所が最適化されるため、最適化対象論理回路に対してクロックゲーティング回路を追加したことによって、却って実動作時に消費電力が増加することを防止でき、実動作において確実且つ高効率に低消費電力化が図れるゲーティッドクロック設計を支援可能な論理回路設計支援方法及び装置を提供することができる。
【００１４】
更に、上記特徴の論理回路設計支援方法は、前記第３ステップにおいて、前記時系列情報に基づいて、抽出された前記イネーブル信号毎に、動作期間中にアクティブ状態となっている比率を示すアクティブ比率を取得し、前記アクティブ比率が所定の基準アクティブ比率以上の前記イネーブル信号を、第１種イネーブル信号として抽出し、前記第１種イネーブル信号が入力する特定の前記論理回路ユニットを、前記クロックゲーティング回路の挿入対象から除外することが好ましい。
【００１５】
また、上記特徴の論理回路設計支援装置は、前記第３手段が、前記時系列情報に基づいて、抽出された前記イネーブル信号毎に、動作期間中にアクティブ状態となっている比率を示すアクティブ比率を取得し、前記アクティブ比率が所定の基準アクティブ比率以上の前記イネーブル信号を、第１種イネーブル信号として抽出し、前記第１種イネーブル信号が入力する特定の前記論理回路ユニットを、前記クロックゲーティング回路の挿入対象から除外することが好ましい。
【００１６】
アクティブ比率の高い論理回路ユニットでは、動作期間中に非アクティブ状態となる期間が短いため、クロック信号の非活性化による論理回路ユニットでの消費電力の低減幅が小さいのに対して、挿入されたクロックゲーティング回路による消費電力の増加分が存在するため、当該増加分が当該低減幅を上回ると、所期の低消費電力化が阻害される。従って、基準アクティブ比率を適切に設定して、前記第１種イネーブル信号が入力する特定の前記論理回路ユニットを、前記クロックゲーティング回路の挿入対象から除外することで、クロックゲーティング回路の挿入による消費電力の増加分が当該低減幅を上回るケースを除外できる。
【００１７】
更に、上記特徴の論理回路設計支援方法は、前記第３ステップにおいて、前記時系列情報に基づいて、抽出された前記複数のイネーブル信号の中から、２以上の前記イネーブル信号間で信号状態が互いに一致している期間の全動作期間に対する比率で表わされる近似率が所定の基準近似率以上の２以上の前記イネーブル信号の組み合わせを、第２種イネーブル信号として１組以上抽出し、前記第２種イネーブル信号が夫々入力する２以上の前記論理回路ユニットに対して、同一組に属する前記第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となる１つの合成イネーブル信号を生成し、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することが好ましい。
【００１８】
更に、上記特徴の論理回路設計支援装置は、前記第３手段が、前記時系列情報に基づいて、抽出された前記複数のイネーブル信号の中から、２以上の前記イネーブル信号間で信号状態が互いに一致している期間の全動作期間に対する比率で表わされる近似率が所定の基準近似率以上の２以上の前記イネーブル信号の組み合わせを、第２種イネーブル信号として１組以上抽出し、前記第２種イネーブル信号が夫々入力する２以上の前記論理回路ユニットに対して、同一組に属する前記第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となる１つの合成イネーブル信号を生成し、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することが好ましい。
【００１９】
ここで、互いに独立した生成論理で生成された２つのイネーブル信号間で上記近似率が高い場合において、当該２つのイネーブル信号が入力する２つの論理回路ユニットに夫々個別のクロックゲーティング回路を挿入する従来のゲーティッドクロック設計と対比して考える。当該２つのイネーブル信号の合成イネーブル信号がアクティブ状態の場合に、元の２つのイネーブル信号の何れか一方が非アクティブ状態である期間が、短い期間ではあるが存在する。上記のように、当該２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入する場合、非アクティブ状態の一方の論理回路ユニットに入力するクロック信号は非活性化されないため、従来のゲーティッドクロック設計に比べて消費電力は増加するが、クロックゲーティング回路の挿入個数が１つ少ないため、クロックゲーティング回路の挿入による消費電力の増加分が抑制される。つまり、クロックゲーティング回路の１個分の消費電力が、クロック信号が非活性化されない期間における非アクティブ状態の論理回路ユニットでの消費電力を上回る場合、従来のゲーティッドクロック設計に対してクロックゲーティング回路の挿入個数を減らすことで、更なる低消費電力化が図れることになる。
【００２０】
尚、前記複数のイネーブル信号の中から前記第１種イネーブル信号を抽出する場合は、前記第１種イネーブル信号を除く抽出された前記複数のイネーブル信号の中から、前記第２種イネーブル信号を抽出するようにしても良い。これにより、上述した前記第１種イネーブル信号が入力する特定の前記論理回路ユニットを、前記クロックゲーティング回路の挿入対象から除外することによる低消費電力化と、上記近似率が高い２以上の論理回路ユニットに至る前記クロック信号の信号経路上の共通箇所に、前記合成イネーブル信号を入力とする前記クロックゲーティング回路を１つ挿入することによる低消費電力化の両方を同時に実現できる。
【００２１】
更に、上記特徴の論理回路設計支援方法は、前記第３ステップにおいて、前記クロックゲーティング回路の挿入対象となる前記論理回路ユニットに対して、前記論理回路ユニットに入力する前記イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル信号が入力しないイネーブル無し論理回路ユニットに置き換え、前記合成イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル無し論理回路ユニットに置き換えないことが好ましい。
【００２２】
更に、上記特徴の論理回路設計支援装置は、前記第３手段が、前記クロックゲーティング回路の挿入対象となる前記論理回路ユニットに対して、前記論理回路ユニットに入力する前記イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル信号が入力しないイネーブル無し論理回路ユニットに置き換え、前記合成イネーブル信号が対応する前記クロックゲーティング回路に入力する場合は、当該論理回路ユニットを前記イネーブル無し論理回路ユニットに置き換えないことが好ましい。
【００２３】
上記要領でイネーブル無し論理回路ユニットへの置換を行うことで、論理回路の動作を変更することなく、不必要なイネーブル信号の入力を排除して回路構成の簡素化とそれに伴う更なる低消費電力化が図れる。
【００２４】
更に、本発明は、上記特徴の論理回路設計支援方法を用いて、前記クロックゲーティング回路の挿入個数及び挿入箇所が最適化された論理回路を有することを特徴とする半導体集積回路を提供する。
【００２５】
上記特徴の半導体集積回路によれば、従来のゲーティッドクロック設計に比べてより低消費電力化が図れる。
【図面の簡単な説明】
【００２６】
【図１】クロックゲーティング処理による低消費電力化処理の概念を説明するクロックゲーティング処理前と、第１及び第２の従来処理後の３種類の回路ブロック図
【図２】図１（ｃ）に示す第２の従来処理後の論理回路を実際に動作させた際のシミュレーション波形の一例を示す信号波形図
【図３】本発明に係る論理回路設計支援装置の一実施形態における概略のハードウェア構成を示すブロック構成図
【図４】本発明に係る論理回路設計支援方法の処理手順の一例を示すフローチャート
【図５】図４に示すステップＳ１の詳細な処理手順を示すフローチャート
【図６】第１実施例における図４に示すステップＳ１で生成されるイネーブル信号情報の構成内容の一例を示す図
【図７】図４に示すステップＳ２の詳細な処理手順を示すフローチャート
【図８】第１実施例における図４に示すステップＳ２で取得されるイネーブル信号の波形情報の一例を示す信号波形図
【図９】図４に示すステップＳ３の詳細な処理手順を示すフローチャート
【図１０】第１実施例における図４に示すステップＳ３で算出される各イネーブル信号のアクティブ比率に係る情報の構成内容の一例を示す図
【図１１】第１実施例における図４に示すステップＳ３で生成される第１最適化イネーブル信号情報の構成内容の一例を示す図
【図１２】図４に示すステップＳ４の詳細な処理手順を示すフローチャート
【図１３】第１実施例における図４に示すステップＳ４で生成される第２最適化イネーブル信号情報の構成内容の一例を示す図
【図１４】図４に示すステップＳ５の詳細な処理手順を示すフローチャート
【図１５】第１実施例における図４に示すステップＳ５の処理後の論理回路を示す回路ブロック図
【図１６】本発明方法の第２実施例における最適化処理対象論理回路を示す回路ブロック図
【図１７】第２実施例における図４に示すステップＳ１で生成されるイネーブル信号情報の構成内容の一例を示す図
【図１８】第２実施例における図４に示すステップＳ２で取得されるイネーブル信号の波形情報の一例を示す信号波形図
【図１９】第２実施例における図４に示すステップＳ３で算出される各イネーブル信号のアクティブ比率に係る情報の構成内容の一例を示す図
【図２０】第２実施例における図４に示すステップＳ３で生成される第１最適化イネーブル信号情報の構成内容の一例を示す図
【図２１】第２実施例における図４に示すステップＳ４で生成される第２最適化イネーブル信号情報の構成内容の一例を示す図
【図２２】第１実施例における図４に示すステップＳ５の処理後の論理回路を示す回路ブロック図
【発明を実施するための形態】
【００２７】
本発明に係る論理回路設計支援装置及び方法の実施形態につき、図面に基づいて説明する。尚、以下において、説明の理解の容易のため、従来のクロックゲーティング処理の説明に用いた図１及び図２と共通する部位には同じ符号または信号名を付して説明する。
【００２８】
図３に、本発明に係る論理回路設計支援装置（以下、適宜「本発明装置」と称す）の一実施形態における概略のハードウェア構成を示す。本発明装置１は、ＣＰＵ（中央演算処理装置）２、ＲＯＭ（読み出し専用メモリ）３、ＲＡＭ（ランダムアクセスメモリ）４、外部記憶装置５、入力装置６、及び、表示装置７が、バスライン８を介して相互に接続され構成されており、一般的なコンピュータシステムと同じ構成である。
【００２９】
本発明装置１は、少なくともイネーブル信号とクロック信号を入力信号とする複数の論理回路ユニット（例えば、図１（ａ）に示したイネーブル付きフリップフロップ回路３１〜３４等）からなる最適化対象論理回路に対して、クロック信号を非活性化するクロックゲーティング回路を、クロック信号の論理回路ユニットに至る信号経路上に少なくとも１つ挿入して、最適化対象論理回路に対して低消費電力化を行うゲーティッドクロック設計をコンピュータ演算処理により支援する論理回路設計支援装置であって、以下の第１手段、第２手段、及び、第３手段を備える。
【００３０】
第１手段は、最適化対象論理回路の回路構造を記述した回路データに基づいて、前記最適化対象論理回路に入力する複数のイネーブル信号を抽出し、第２手段は、最適化対象論理回路と抽出された複数のイネーブル信号の生成論理に対して実動作モードの論理シミュレーションを実行して、イネーブル信号毎の動作時におけるアクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報を取得し、第３手段は、当該時系列情報に基づいて、最適化対象論理回路とクロックゲーティング回路の合計消費電力が、クロックゲーティング回路を挿入する前の最適化対象論理回路の消費電力より低減されるように、クロックゲーティング回路の挿入個数及び挿入箇所を最適化し、当該最適化後のクロックゲーティング回路が追加された最適化対象論理回路の回路構造を記述する回路データを作成する。
【００３１】
ここで、ＣＰＵ２は、第１手段、第２手段、及び、第３手段が実行する処理を、ＲＯＭ３に格納されたプログラムを読み出し実行することにより実現する。つまり、第１手段、第２手段、及び、第３手段は、ソフトウェア手段として実現される。ＲＡＭ４は、ＣＰＵ２の演算時において、作業記憶領域として使用される。外部記憶装置５は、最適化対象論理回路の回路構造を記述した回路データ等の第１手段、第２手段、及び、第３手段が実行する処理に必要なデータ、及び、第１手段、第２手段、及び、第３手段によって生成されるデータの格納に使用される。入力装置６は、第１手段、第２手段、及び、第３手段が実行する処理に用いられる処理条件等（後述する基準アクティブ比率、基準近似率等）を外部から操作者が入力するのに用いられる。表示装置７は、第１手段、第２手段、及び、第３手段が実行した処理結果を表示するのに用いられる。
【００３２】
次に、本発明に係る論理回路設計支援方法（本発明装置１を用いたゲーティッドクロック設計方法。以下、適宜「本発明方法」と称す）について、以下の第１実施例と第２実施例により具体的に説明する。
【００３３】
〈第１実施例〉
図１（ａ）に示す論理回路に対して電力消費の最適化を施す第１実施例を、図４〜図１５を参照して詳細に説明する。図１（ａ）に示す論理階層１１〜１４下のイネーブル付きフリップフロップ回路３１〜３４の夫々が、論理回路ユニットに相当し、論理階層１１〜１４の全体が最適化対象論理回路に相当する。論理階層１０下には、クロック信号ＣＬＫを生成するクロックジェネレータ２０と、イネーブル信号ＥＮ１〜ＥＮ３の生成論理回路２１が存在する。
【００３４】
図４は、本発明方法の処理手順を示すフローチャートである。尚、図４の右欄は、各処理ステップで使用されるデータの外部記憶装置５からの読み出しと、各処理ステップで生成されるデータの外部記憶装置５への書き込みを、夫々矢印の向きで区別して示している。また、図４の左欄は、入力装置６からの各処理ステップで使用される処理条件（基準アクティブ比率、基準近似率）の入力を示している。
【００３５】
図４の中央欄に示すステップＳ１の処理（第１ステップに相当）が、第１手段によって実行され、ステップＳ２の処理（第２ステップに相当）が、第２手段によって実行され、ステップＳ３〜Ｓ５の処理（第３ステップに相当）が、第３手段によって実行される。
【００３６】
先ず、ステップＳ１の処理を、図４〜図６を参照して説明する。図５は、ステップＳ１の詳細な処理手順を示すフローチャートである。ステップＳ１では、先ず、処理前の最適化対象論理回路の回路構造（イネーブル信号の生成論理を含む）を記述した回路データＤ１（例えば、ＲＴＬ記述データ）を外部記憶装置５から読み出し、回路データＤ１の構造解析を行い、フリップフロップ回路３１〜３４に各別に入力するイネーブル信号を抽出する（Ｓ１１）。本実施例では、フリップフロップ回路３１〜３４の夫々に対応して、イネーブル信号ＥＮ１ａ，ＥＮ１ｂ，ＥＮ２，ＥＮ３が抽出される。引き続き、イネーブル信号ＥＮ１ａ，ＥＮ１ｂ，ＥＮ２，ＥＮ３をイネーブル信号が生成されているポイントまで上流に向かってバックトレースし、その過程で共通なイネーブル信号をマージする（Ｓ１２）。本実施例では、イネーブル信号ＥＮ１ａ，ＥＮ１ｂ，ＥＮ２，ＥＮ３を生成論理回路２１のある論理階層１０までバックトレースし、その過程で生成論理が共通であるイネーブル信号ＥＮ１ａ，ＥＮ１ｂをマージして、１つのイネーブル信号ＥＮ１を得る。最後に、バックトレースしたイネーブル信号ＥＮ１〜ＥＮ３とフリップフロップ回路３１〜３４を対応付けたイネーブル信号情報Ｄ２を、外部記憶装置５に格納する（Ｓ１３）。本実施例では、図６に示すように、イネーブル信号情報Ｄ２として、イネーブル信号ＥＮ１とフリップフロップ回路３１，３２、イネーブル信号ＥＮ２とフリップフロップ回路３３、イネーブル信号ＥＮ３とフリップフロップ回路３４が、夫々対応付けられる。尚、図６では、イネーブル信号情報Ｄ２を、視覚的に理解できるようにテキストによる表形式で表示している。
【００３７】
次に、ステップＳ２の処理を、図４，図７及び図８を参照して説明する。図７は、ステップＳ２の詳細な処理手順を示すフローチャートである。ステップＳ２では、先ず、イネーブル信号情報Ｄ２からシミュレーション時に取得する情報を論理シミュレータに設定する（Ｓ２１）。本実施例では、シミュレーション時に、ステップＳ１で抽出されたイネーブル信号ＥＮ１〜ＥＮ３の波形情報（アクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報に相当）を取得するように、論理シミュレータに設定する。次に、回路データＤ１と実動作モードのテストベンチＤ３を外部記憶装置５から読み出し、回路データＤ１に対して、テストベンチＤ３に従って実動作モードの論理シミュレーションを実行し（Ｓ２２）、論理シミュレーション結果から各イネーブル信号ＥＮ１〜ＥＮ３の波形情報Ｄ４を取得し、外部記憶装置５に格納する（Ｓ２３）。本実施例では、図８に示すようなイネーブル信号ＥＮ１〜ＥＮ３の波形情報Ｄ４を取得する。尚、本実施例では、各イネーブル信号ＥＮ１〜ＥＮ３は、正論理を採用しており、高レベル時（“１”）がアクティブ状態で、低レベル時（“０”）が非アクティブ状態である。図８では、波形情報Ｄ４を、視覚的に理解できるように信号波形図として表示している。
【００３８】
次に、ステップＳ３の処理を、図４，図９〜図１１を参照して説明する。図９は、ステップＳ３の詳細な処理手順の一例を示すフローチャートである。ステップＳ３では、先ず、波形情報Ｄ４を外部記憶装置５から読み出し、波形情報Ｄ４からイネーブル信号ＥＮ１〜ＥＮ３毎のアクティブ比率Ｒａ１〜Ｒａ３（動作期間中にアクティブ状態となっている期間の比率）を算出する（Ｓ３１）。本実施例では、図１０に示すように、イネーブル信号ＥＮ１のアクティブ比率Ｒａ１＝１０％、イネーブル信号ＥＮ２のアクティブ比率Ｒａ２＝１０％、イネーブル信号ＥＮ３のアクティブ比率Ｒａ３＝９０％が得られる。次に、入力装置６から操作者によって入力された基準アクティブ比率Ｒａｘを受け取り、基準アクティブ比率Ｒａｘとアクティブ比率Ｒａ１〜Ｒａ３を入力として、アクティブ比率Ｒａ１〜Ｒａ３が基準アクティブ比率Ｒａｘ以上のイネーブル信号を第１種イネーブル信号として抽出し、抽出した第１種イネーブル信号をクロックゲーティング処理の対象から除外する（Ｓ３２〜Ｓ３５）。具体的には、イネーブル信号ＥＮ１〜ＥＮ３毎に、アクティブ比率と基準アクティブ比率Ｒａｘとの大小比較を行い（Ｓ３２）、アクティブ比率が基準アクティブ比率Ｒａｘ以上である場合（Ｓ３２でＹｅｓ分岐）に、該当するイネーブル信号をクロックゲーティング処理の対象から除外し（Ｓ３３）、アクティブ比率が基準アクティブ比率Ｒａｘ以下の場合（Ｓ３２でＮｏ分岐）は、Ｓ３３の処理を迂回し、全てのイネーブル信号について、Ｓ３２（Ｙｅｓ分岐の場合はＳ３３を含む）の処理が終了したかの検査を行う（Ｓ３４）。未処理のイネーブル信号が存在する場合（Ｓ３４でＮｏ分岐）は、Ｓ３２〜Ｓ３３の処理を当該未処理のイネーブル信号について実行し、未処理のイネーブル信号が存在しない場合（Ｓ３４でＹｅｓ分岐）は、第１種イネーブル信号以外の最終的にクロックゲーティング処理の対象から除外されなかったイネーブル信号（以下、便宜的に「非第１種イネーブル信号」と称す）の情報として第１最適化イネーブル信号情報Ｄ５を生成し、外部記憶装置５に格納する（Ｓ３５）。
【００３９】
本実施例では、アクティブ比率Ｒａ１〜Ｒａ３が夫々１０％，１０％，９０％であり、基準アクティブ比率Ｒａｘを８０％と想定すると、アクティブ比率Ｒａ３が基準アクティブ比率Ｒａｘより高くなるため、イネーブル信号ＥＮ３が第１種イネーブル信号としてクロックゲーティング処理の対象から除外され、イネーブル信号ＥＮ１，ＥＮ２が非第１種イネーブル信号となり、図１１に示すように、第１最適化イネーブル信号情報Ｄ５が生成される。尚、図１１では、第１最適化イネーブル信号情報Ｄ５を、視覚的に理解できるようにテキストによる表形式で表示している。
【００４０】
次に、ステップＳ４の処理を、図４，図１２及び図１３を参照して説明する。図１２は、ステップＳ４の詳細な処理手順の一例を示すフローチャートである。ステップＳ４では、先ず、波形情報Ｄ４とステップＳ３で生成された第１最適化イネーブル信号情報Ｄ５を外部記憶装置５から読み出し、入力装置６から操作者によって入力された基準近似率Ｒｂｘを受け取り、第１最適化イネーブル信号情報Ｄ５に含まれる非第１種イネーブル信号の中から、信号波形が相互に近似しているイネーブル信号を第２種イネーブル信号として１組以上抽出して、同一組に属する第２種イネーブル信号の論理和により生成される合成イネーブル信号の情報と、抽出されなかった残余の非第１種イネーブル信号の情報からなる第２最適化イネーブル信号情報Ｄ６を生成する。具体的には、図１２に示すように、非第１種イネーブル信号の任意の２つの信号間で、信号波形が相互に近似しているか否かを判断する（Ｓ４１）。具体的には、当該２つのイネーブル信号間の近似率Ｒｂｉ（ｉは、２つの信号の組み合わせを特定する自然数）を、夫々の波形情報から、動作期間中における互いの論理状態（アクティブ状態と非アクティブ状態）が一致している期間の比率として導出し、導出した近似率Ｒｂｉが、基準近似率Ｒｂｘ以上である場合に、信号波形が相互に近似していると判定する。信号波形が相互に近似している場合（Ｓ４１でＹｅｓ分岐）は、当該２つのイネーブル信号を第２種イネーブル信号とし、当該２つのイネーブル信号の論理和を合成イネーブル信号として生成し、Ｓ４１の判定処理対象として、当該２つの第２種イネーブル信号を削除して代わりに当該合成イネーブル信号を登録する（Ｓ４２）。信号波形が相互に近似していない場合（Ｓ４１でＮｏ分岐）及びＳ４２の処理後に、全ての非第１種イネーブル信号と新たに生成された合成イネーブル信号に対するＳ４１の判定処理が完了したか否かを判定する（Ｓ４３）。Ｓ４１の判定処理が完了していない場合（Ｓ４３でＮｏ分岐）は、Ｓ４１の判定処理対象（未判定の第１種イネーブル信号と新たに生成された合成イネーブル信号の任意の２つの信号）に対して、同じＳ４１とＳ４２の処理を、未判定の非第１種イネーブル信号と新たに生成された合成イネーブル信号がなくなるまで繰り返す。Ｓ４１の判定処理が完了している場合（Ｓ４３でＹｅｓ分岐）は、最終的に生成された第２種イネーブル信号で、同じ合成イネーブル信号の入力となっている同一組としてグループ化し、最終的に生成された合成イネーブル信号を、最終的に生成された同一組の第２種イネーブル信号の論理和とし、当該合成イネーブル信号の情報とグループ化されずに残った非第１種イネーブル信号の情報を第２最適化イネーブル信号情報Ｄ６として生成し、外部記憶装置５に格納する（Ｓ４４）。
【００４１】
本実施例では、非第１種イネーブル信号は、イネーブル信号ＥＮ１，ＥＮ２の２つだけであり、図８に示す波形情報より、両信号の近似率Ｒｂ１は１００％（完全一致）となり、基準近似率Ｒｂｘを９０％と想定すると、Ｓ４１では、信号波形が相互に近似していると判定され、Ｓ４２で非第１種イネーブル信号ＥＮ１，ＥＮ２が第２種イネーブル信号と判定され、それらの論理和の合成イネーブル信号ＥＮ１０が生成される。Ｓ４３では、Ｓ４１の判定処理が完了していると判定され、Ｓ４４では、図１３に示すように、当該合成イネーブル信号ＥＮ１０の情報が第２最適化イネーブル信号情報Ｄ６として生成される。尚、図１３では、第２最適化イネーブル信号情報Ｄ６を、視覚的に理解できるようにテキストによる表形式で表示している。尚、図１３では、合成イネーブル信号及びグループ化されずに残った非第１種イネーブル信号を第３種イネーブル信号と称するが、本実施例では、第３種イネーブル信号は、合成イネーブル信号ＥＮ１０だけである。
【００４２】
尚、合成イネーブル信号は、同一組の第２種イネーブル信号の少なくとも１つがアクティブ状態の場合にアクティブ状態となるように生成される。本実施例では、各イネーブル信号ＥＮ１〜ＥＮ３は正論理を採用しているため、合成イネーブル信号ＥＮ１０は、同一組の第２種イネーブル信号の論理和として生成されるが、負論理を採用している場合は、同一組の第２種イネーブル信号の論理積により生成される。
【００４３】
また、図１２に示すステップＳ３の処理手順では、３以上の第２種イネーブル信号の組み合わせに対しても波形情報が相互に近似しているか否かを判定するために、Ｓ４２において、Ｓ４１の判定処理対象として、当該２つの第２種イネーブル信号を削除して、代わりに当該合成イネーブル信号を登録するようにしたが、Ｓ４１の判定対象を２つの第２種イネーブル信号の組み合わせに限定する場合は、当該２つの第２種イネーブル信号を削除するだけで、当該合成イネーブル信号の登録を行わないようにしても良い。
【００４４】
最後に、ステップＳ５の処理を、図４，図１４及び図１５を参照して説明する。図１４は、ステップＳ５の詳細な処理手順の一例を示すフローチャートである。図１５は、ステップＳ５の処理後の論理回路を示すブロック図である。
【００４５】
ステップＳ５では、処理前の回路データＤ１に対して、第２最適化イネーブル信号情報Ｄ６を反映した、上記処理後の回路データＤ７（例えば、ＲＴＬ記述データ）を生成して、外部記憶装置５に格納する。具体的には、先ず、外部記憶装置５から、第２最適化イネーブル信号情報Ｄ６を読み出し、第２最適化イネーブル信号情報Ｄ６に含まれる合成イネーブル信号の夫々について、合成イネーブル信号を生成する２以上の第２種イネーブル信号に夫々対応するフリップフロップ回路に入力するクロック信号ＣＬＫの信号経路上の共通箇所に、当該合成イネーブル信号を入力とするクロックゲーティング回路を１つ挿入し、次に、第２最適化イネーブル信号情報Ｄ６に含まれるステップＳ４で第２種イネーブル信号として抽出されなかった非第１種イネーブル信号の夫々について、非第１種イネーブル信号に対応するフリップフロップ回路に入力するクロック信号ＣＬＫの信号経路上に当該合成イネーブル信号を入力とするクロックゲーティング回路を１つ挿入する（Ｓ５１）。本実施例では、図１５に示すように、図１３に示す第２最適化イネーブル信号情報Ｄ６より、第２種イネーブル信号ＥＮ１，ＥＮ２に対応するフリップフロップ回路３１，３２に入力するクロック信号ＣＬＫの信号経路上の共通箇所に、第２種イネーブル信号ＥＮ１，ＥＮ２の論理和で生成される合成イネーブル信号ＥＮ１０を入力とするクロックゲーティング回路５０が挿入され、対応するフリップフロップ回路３１，３２には、クロックゲーティング回路５０から出力されるクロック信号ＣＬＫ４が共通に入力する。尚、本実施例では、第２種イネーブル信号として抽出されなかった非第１種イネーブル信号は存在しないので、該当するクロックゲーティング回路は存在しない。
【００４６】
引き続いて、第２最適化イネーブル信号情報Ｄ６に基づいて、ステップＳ１で抽出されたイネーブル信号について、第１種イネーブル信号及び第２種イネーブル信号の何れか一方に該当するかを、各別に判定する（Ｓ５２）。ここで、イネーブル信号が第１種イネーブル信号及び第２種イネーブル信号の何れでもない場合は（Ｓ５２でＮｏ分岐）、当該イネーブル信号が入力するイネーブル付きフリップフロップ回路を、イネーブル無しフリップフロップ回路に置き換え、当該イネーブル信号の入力を削除する（Ｓ５３）。一方、イネーブル信号が第１種イネーブル信号及び第２種イネーブル信号の何れかである場合は（Ｓ５２でＹｅｓ分岐）、当該イネーブル信号が入力するイネーブル付きフリップフロップ回路をそのままにし、当該イネーブル信号の入力を維持する（Ｓ５４）。Ｓ５２の判定処理が全ての抽出されたイネーブル信号に対して終了したかを判定し（Ｓ５５）、Ｓ５２〜Ｓ５４の処理を、ステップＳ１で抽出された全てのイネーブル信号に対して終了するまで繰り返す。本実施例では、図１５に示すように、イネーブル信号ＥＮ１，ＥＮ２が第２種イネーブル信号に該当し、イネーブル信号ＥＮ３が第１種イネーブル信号に該当するため、Ｓ５３でのイネーブル無しフリップフロップ回路への置き換え処理は実行されない。
【００４７】
最後に、Ｓ５１で挿入されたクロックゲーティング回路と、Ｓ５３で置換されたイネーブル無しフリップフロップ回路を反映した上記処理後の回路データＤ７（例えば、ＲＴＬ記述データ）を生成して、外部記憶装置５に格納する（Ｓ５６）。
【００４８】
以上のステップＳ１〜Ｓ５の処理を行うことで、第１に、アクティブ比率の高い第１種イネーブル信号が入力するイネーブル付きフリップフロップ回路が、クロックゲーティング回路の挿入対象から除外されることで、クロックゲーティング回路を不必要に設置することで、クロックゲーティング回路の挿入によるフリップフロップ回路での消費電力の減少分より、クロックゲーティング回路での消費電力の増加分が大きくなって、却って低消費電力化が阻害されるのが防止される。そして、第２に、近似率の高い第２種イネーブル信号の組み合わせ毎に合成イネーブル信号を生成し、第２種イネーブル信号毎に、クロックゲーティング回路を挿入するのに代えて、合成イネーブル信号単位でクロックゲーティング回路を挿入することで、クロックゲーティング回路の挿入個数を制限して、クロックゲーティング回路での消費電力の増加分が抑制される。一方、同一組の第２種イネーブル信号が入力するイネーブル付きフリップフロップ回路間では、非アクティブ状態にも拘わらずクロックゲーティング回路が活性化されクロック信号が入力する場合があるが、第２種イネーブル信号間の近似率が高いため、非アクティブ状態でクロック信号が入力する時間比率は、小さく抑制されるため、基準近似率を適切に設定することで、クロックゲーティング回路での消費電力の増加分を抑制することの効果が大きくなり、低消費電力化がより図れることになる。
【００４９】
以上のステップＳ１〜Ｓ５の処理を行うことで得られる低消費電力化の具体的な効果について、図１（ｃ）に示す特許文献１に開示の第２の従来処理を適用した後の回路構成と図１５に示す本発明方法による処理後の回路構成を比較して検討する。先ず、第２の従来処理に比べて、クロックゲーティング回路の挿入個数が３から１に減少している。ここで、各フリップフロップ回路の１クロックイベントでの消費電力を４ｐＷ、同様にクロックゲーティング回路の１クロックイベントでの消費電力を１ｐＷと想定した場合、図２に示す実動作モードで消費される電力を比較すると、シミュレーション結果から、以下の数１及び数２に示すように計算される。尚、数１は、第２の従来処理での合計消費電力Ｐ０を示し、数２は、本発明方法での合計消費電力Ｐ１を示している。また、Ｐｆｆ０とＰｆｆ１は、夫々、第２の従来処理での全フリップフロップ回路の消費電力と本発明方法での全フリップフロップ回路の消費電力を示し、Ｐｃｇ０とＰｃｇ１は、夫々、第２の従来処理での全クロックゲーティング回路の消費電力と本発明方法での全クロックゲーティング回路の消費電力を示している。
【００５０】
（数１）
Ｐ０＝Ｐｆｆ０＋Ｐｃｇ０
＝４ｐＷ／クロック個×１２クロック個＋１ｐＷ／クロック個×３０クロック個
＝７８ｐＷ
（数２）
Ｐ１＝Ｐｆｆ１＋Ｐｃｇ１
＝４ｐＷ／クロック個×１３クロック個＋１ｐＷ／クロック個×１０クロック個
＝６２ｐＷ
【００５１】
以上、数１と数２の計算結果を比較して分かるように、本発明方法によれば、実動作モードでより低消費電力化が図れる。更に、各フリップフロップ回路の１クロックイベントでの消費電力を６ｐＷ、同様にクロックゲーティング回路の１クロックイベントでの消費電力を１ｐＷと想定した場合についても検討すると、Ｐ０＝１０２ｐＷに対して、Ｐ１＝８８ｐＷとなり、本発明方法の方が、実動作モードでより低消費電力化の図れることが分かる。但し、１クロックイベントでのフリップフロップ回路とクロックゲーティング回路の消費電力の比（フリップフロップ回路／クロックゲーティング回路）が大きくなると、消費電力の低減率は低下する。上記消費電力の比が４では、低減率は（７８ｐＷ−６２ｐＷ）／７８ｐＷ＝２０．５％であり、上記消費電力の比が６では、低減率は（１０２ｐＷ−８８ｐＷ）／１０２ｐＷ＝１３．７％である。
【００５２】
〈第２実施例〉
図１６に示す論理回路に対して電力消費の最適化を施す第２実施例を、第１実施例と同じフローチャート（図４、図５、図７、図９、図１２、図１４）と、図１６〜図２３を参照して詳細に説明する。上記第１実施例では、図１（ａ）に示す比較的簡単な回路構成の論理回路を最適化対象としたが、第２実施例では、図１（ａ）に示す論理回路よりイネーブル信号数及びフリップフロップ回路数の多い論理回路を最適化の対象とし、第１実施例と同様に、ステップＳ１〜Ｓ５の処理を順次実行する。尚、図１６において、図１（ａ）と共通する信号名及び符号が用いられているが、同種の信号及び同種の回路であることを意味しているが、個々の信号及び回路は、図１（ａ）のものとは異なる。
【００５３】
先ず、ステップＳ１の処理を、図４、図５、図１６及び図１７を参照して説明する。ステップＳ１では、先ず、処理前の最適化対象論理回路の回路構造（イネーブル信号の生成論理を含む）を記述した回路データＤ１（例えば、ＲＴＬ記述データ）を外部記憶装置５から読み出し、回路データＤ１の構造解析を行い、フリップフロップ回路３１〜３８に各別に入力するイネーブル信号を抽出する（Ｓ１１）。本実施例では、フリップフロップ回路３１〜３８の夫々に対応して、イネーブル信号ＥＮ１〜ＥＮ８が抽出される。引き続き、イネーブル信号ＥＮ１〜ＥＮ８をイネーブル信号が生成されているポイントまで上流に向かってバックトレースし、その過程で共通なイネーブル信号をマージする（Ｓ１２）。本実施例では、イネーブル信号ＥＮ１〜ＥＮ８をイネーブル生成論理回路２１のある論理階層１０までバックトレースするが、階層を跨いで共通なイネーブル信号が存在しないため、マージできるイネーブル信号は存在しない。最後に、バックトレースしたイネーブル信号ＥＮ１〜ＥＮ８とフリップフロップ回路３１〜３８を対応付けたイネーブル信号情報Ｄ２を、外部記憶装置５に格納する（Ｓ１３）。本実施例では、図１７に示すように、イネーブル信号情報Ｄ２として、イネーブル信号ＥＮ１とフリップフロップ回路３１、イネーブル信号ＥＮ２とフリップフロップ回路３２、イネーブル信号ＥＮ３とフリップフロップ回路３３、イネーブル信号ＥＮ４とフリップフロップ回路３４、イネーブル信号ＥＮ５とフリップフロップ回路３５、イネーブル信号ＥＮ６とフリップフロップ回路３６、イネーブル信号ＥＮ７とフリップフロップ回路３７、イネーブル信号ＥＮ８とフリップフロップ回路３８が、夫々対応付けられる。
【００５４】
次に、ステップＳ２の処理を、図４，図７及び図１８を参照して説明する。ステップＳ２では、先ず、イネーブル信号情報Ｄ２からシミュレーション時に取得する情報を論理シミュレータに設定する（Ｓ２１）。本実施例では、シミュレーション時に、ステップＳ１で抽出されたイネーブル信号ＥＮ１〜ＥＮ８の波形情報（アクティブ状態と非アクティブ状態間の状態遷移に係る時系列情報に相当）を取得するように、論理シミュレータに設定する。次に、回路データＤ１と実動作モードのテストベンチＤ３を外部記憶装置５から読み出し、回路データＤ１に対して、テストベンチＤ３に従って実動作モードの論理シミュレーションを実行し（Ｓ２２）、論理シミュレーション結果から各イネーブル信号ＥＮ１〜ＥＮ８の波形情報Ｄ４を取得し、外部記憶装置５に格納する（Ｓ２３）。本実施例では、図１８に示すようなイネーブル信号ＥＮ１〜ＥＮ８の波形情報Ｄ４を取得する。尚、本実施例では、第１実施例と同様に、各イネーブル信号ＥＮ１〜ＥＮ８は、正論理を採用しており、高レベル時（“１”）がアクティブ状態で、低レベル時（“０”）が非アクティブ状態である。
【００５５】
次に、ステップＳ３の処理を、図４，図９，図１９及び図２０を参照して説明する。ステップＳ３では、先ず、波形情報Ｄ４を外部記憶装置５から読み出し、波形情報Ｄ４からイネーブル信号ＥＮ１〜ＥＮ８毎のアクティブ比率Ｒａ１〜Ｒａ８を算出する（Ｓ３１）。本実施例では、図１９に示すように、イネーブル信号ＥＮ１のアクティブ比率Ｒａ１＝１０％、イネーブル信号ＥＮ２のアクティブ比率Ｒａ２＝１０％、イネーブル信号ＥＮ３のアクティブ比率Ｒａ３＝１０％、イネーブル信号ＥＮ４のアクティブ比率Ｒａ４＝３０％、イネーブル信号ＥＮ５のアクティブ比率Ｒａ５＝４０％、イネーブル信号ＥＮ６のアクティブ比率Ｒａ６＝９０％、イネーブル信号ＥＮ７のアクティブ比率Ｒａ７＝２０％、イネーブル信号ＥＮ８のアクティブ比率Ｒａ８＝４０％が得られる。次に、入力装置６から操作者によって入力された基準アクティブ比率Ｒａｘを受け取り、基準アクティブ比率Ｒａｘとアクティブ比率Ｒａ１〜Ｒａ８を入力として、アクティブ比率Ｒａ１〜Ｒａ８が基準アクティブ比率Ｒａｘ以上のイネーブル信号を第１種イネーブル信号として抽出し、抽出した第１種イネーブル信号をクロックゲーティング処理の対象から除外する（Ｓ３２〜Ｓ３５）。Ｓ３２〜Ｓ３５の具体的な処理内容は、第１実施例において既に説明した通りであるので、重複する説明は割愛する。
【００５６】
本実施例では、アクティブ比率Ｒａ１〜Ｒａ８が夫々１０％，１０％，１０％，３０％，４０％，９０％，２０％，４０％であり、基準アクティブ比率Ｒａｘを８０％と想定すると、アクティブ比率Ｒａ６（＝９０％）が基準アクティブ比率Ｒａｘより高くなるため、イネーブル信号ＥＮ６が第１種イネーブル信号としてクロックゲーティング処理の対象から除外され、イネーブル信号ＥＮ１〜ＥＮ５，ＥＮ７及びＥＮ８が非第１種イネーブル信号となり、図２０に示すように、第１最適化イネーブル信号情報Ｄ５が生成される。
【００５７】
次に、ステップＳ４の処理を、図４，図１２及び図２１を参照して説明する。ステップＳ４では、先ず、波形情報Ｄ４とステップＳ３で生成された第１最適化イネーブル信号情報Ｄ５を外部記憶装置５から読み出し、入力装置６から操作者によって入力された基準近似率Ｒｂｘを受け取り、第１最適化イネーブル信号情報Ｄ５に含まれる非第１種イネーブル信号の中から、信号波形が相互に近似しているイネーブル信号を第２種イネーブル信号として１組以上抽出して、同一組に属する第２種イネーブル信号の論理和により生成される合成イネーブル信号の情報と、抽出されなかった残余の非第１種イネーブル信号の情報からなる第２最適化イネーブル信号情報Ｄ６を生成する。図１２に示す具体的なステップＳ４の処理内容は、第１実施例において既に説明した通りであるので、重複する説明は割愛する。
【００５８】
本実施例では、非第１種イネーブル信号は、イネーブル信号ＥＮ１〜ＥＮ５，ＥＮ７及びＥＮ８の７つであり、図１８に示す波形情報より、イネーブル信号ＥＮ１，ＥＮ２，ＥＮ４，ＥＮ７の４つの非第１種イネーブル信号間の近似率Ｒｂ１は８０％となり、また、イネーブル信号ＥＮ５，ＥＮ８の２つの非第１種イネーブル信号間の近似率Ｒｂ１は８０％となり、基準近似率Ｒｂｘを８０％と想定すると、Ｓ４１では、各組み合わせにおいて信号波形が相互に近似していると判定され、Ｓ４２において、非第１種イネーブル信号ＥＮ１，ＥＮ２，ＥＮ４，ＥＮ７が１組目の第２種イネーブル信号と判定され、それらの論理和の合成イネーブル信号ＥＮ１１が生成され、更に、非第１種イネーブル信号ＥＮ５，ＥＮ８が２組目の第２種イネーブル信号と判定され、それらの論理和の合成イネーブル信号ＥＮ１２が生成される。Ｓ４３では、Ｓ４１の判定処理が完了していると判定され、Ｓ４４では、図２１に示すように、当該合成イネーブル信号ＥＮ１１及びＥＮ１２の情報とグループ化されずに残った非第１種イネーブル信号ＥＮ３の情報が第２最適化イネーブル信号情報Ｄ６として生成される。本実施例では、第３種イネーブル信号は、合成イネーブル信号ＥＮ１１、合成イネーブル信号ＥＮ１２、非第１種イネーブル信号ＥＮ３の３つのイネーブル信号となっている。ところで、同一組の第２種イネーブル信号間の近似率Ｒｂ１が基準近似率Ｒｂｘ以上の場合は、その合成イネーブル信号と各第２種イネーブル信号間の近似率の基準近似率Ｒｂｘ以上となっている。１組目の第２種イネーブル信号ＥＮ１，ＥＮ２，ＥＮ４，ＥＮ７について検証すれば、合成イネーブル信号ＥＮ１１との近似率は、夫々、８０％，８０％，１００％，９０％となっており、２組目の第２種イネーブル信号ＥＮ５，ＥＮ８について検証すれば、合成イネーブル信号ＥＮ１２との近似率は、夫々、９０％，９０％となっている。
【００５９】
最後に、ステップＳ５の処理を、図４，図１４及び図２２を参照して説明する。図２２は、ステップＳ５の処理後の論理回路を示すブロック図である。
【００６０】
ステップＳ５では、処理前の回路データＤ１に対して、第２最適化イネーブル信号情報Ｄ６を反映した、上記処理後の回路データＤ７（例えば、ＲＴＬ記述データ）を生成して、外部記憶装置５に格納する。具体的には、先ず、外部記憶装置５から、第２最適化イネーブル信号情報Ｄ６を読み出し、第２最適化イネーブル信号情報Ｄ６に含まれる合成イネーブル信号の夫々について、合成イネーブル信号を生成する２以上の第２種イネーブル信号に夫々対応するフリップフロップ回路に入力するクロック信号ＣＬＫの信号経路上の共通箇所に、当該合成イネーブル信号を入力とするクロックゲーティング回路を１つ挿入し、次に、第２最適化イネーブル信号情報Ｄ６に含まれるステップＳ４で第２種イネーブル信号として抽出されなかった非第１種イネーブル信号の夫々について、非第１種イネーブル信号に対応するフリップフロップ回路に入力するクロック信号ＣＬＫの信号経路上に当該合成イネーブル信号を入力とするクロックゲーティング回路を１つ挿入する（Ｓ５１）。
【００６１】
本実施例では、図２２に示すように、図２１に示す第２最適化イネーブル信号情報Ｄ６より、１組目の第２種イネーブル信号ＥＮ１，ＥＮ２，ＥＮ４，ＥＮ７に対応するフリップフロップ回路３１，３２，３４，３７に入力するクロック信号ＣＬＫの信号経路上の共通箇所に、第２種イネーブル信号ＥＮ１，ＥＮ２，ＥＮ４，ＥＮ７の論理和で生成される合成イネーブル信号ＥＮ１１を入力とするクロックゲーティング回路５１が挿入され、対応するフリップフロップ回路３１，３２，３４，３７には、クロックゲーティング回路５１から出力されるクロック信号ＣＬＫ５が共通に入力する。また、２組目の第２種イネーブル信号ＥＮ５，ＥＮ８に対応するフリップフロップ回路３５，３８に入力するクロック信号ＣＬＫの信号経路上の共通箇所に、第２種イネーブル信号ＥＮ５，ＥＮ８の論理和で生成される合成イネーブル信号ＥＮ１２を入力とするクロックゲーティング回路５２が挿入され、対応するフリップフロップ回路３５，３８には、クロックゲーティング回路５２から出力されるクロック信号ＣＬＫ６が共通に入力する。更に、第２種イネーブル信号として抽出されなかった非第１種イネーブル信号ＥＮ３に対応するフリップフロップ回路３３に入力するクロック信号ＣＬＫの信号経路上に、非第１種イネーブル信号ＥＮ３を入力とするクロックゲーティング回路５３が挿入され、対応するフリップフロップ回路３３には、クロックゲーティング回路５３から出力されるクロック信号ＣＬＫ７が入力する。
【００６２】
ここで、クロックゲーティング回路５１〜５３の各挿入箇所について検討すると、クロックジェネレータ２０から各フリップフロップ回路３１〜３８に至るクロック信号ＣＬＫの信号経路が、第１及び第２最適化イネーブル信号情報Ｄ５，Ｄ６に基づいて、合成イネーブル信号ＥＮ１１、ＥＮ１２、第２種イネーブル信号として抽出されなかった非第１種イネーブル信号ＥＮ３、及び、第１種イネーブル信号ＥＮ６に対応して４つに分岐し、最初の３つの分岐路の最も上流側にクロックゲーティング回路５１〜５３が挿入され、各クロックゲーティング回路５１〜５３から出力されるクロック信号ＣＬＫ５〜ＣＬＫ７が、更に分岐して対応するフリップフロップ回路に接続する。
【００６３】
引き続いて、第２最適化イネーブル信号情報Ｄ６に基づいて、図１４に示すＳ５２〜Ｓ５５の処理を、ステップＳ１で抽出された全てのイネーブル信号に対して終了するまで繰り返す。尚、図１４に示すＳ５２〜Ｓ５５の具体的な処理内容は、第１実施例において既に説明した通りであるので、重複する説明は割愛する。本実施例では、図２２に示すように、イネーブル信号ＥＮ３が、第２種イネーブル信号として抽出されなかった非第１種イネーブル信号に該当するため、Ｓ５３で、イネーブル信号ＥＮ３が入力するフリップフロップ回路３３がイネーブル無しフリップフロップ回路３３ａに置き換えられる。
【００６４】
最後に、Ｓ５１で挿入されたクロックゲーティング回路と、Ｓ５３で置換されたイネーブル無しフリップフロップ回路を反映した上記処理後の回路データＤ７（例えば、ＲＴＬ記述データ）を生成して、外部記憶装置５に格納する（Ｓ５６）。
【００６５】
以上のステップＳ１〜Ｓ５の処理を行うことで得られる低消費電力化の具体的な効果について、特許文献１に開示の第２の従来処理を適用した後の回路構成と図２２に示す本発明方法による処理後の回路構成を比較して検討する。先ず、第２の従来処理の場合は、フリップフロップ回路毎にクロックゲーティング回路が各別に挿入されるため、クロックゲーティング回路の挿入個数は８から３に減少する。ここで、各フリップフロップ回路の１クロックイベントでの消費電力を４ｐＷ、同様にクロックゲーティング回路の１クロックイベントでの消費電力を１ｐＷと想定した場合、図１８に示す実動作モードで消費される電力を比較すると、シミュレーション結果から、以下の数３及び数４に示すように計算される。尚、数３は、第２の従来処理での合計消費電力Ｐ０を示し、数４は、本発明方法での合計消費電力Ｐ１を示している。また、Ｐｆｆ０とＰｆｆ１は、夫々、第２の従来処理での全フリップフロップ回路の消費電力と本発明方法での全フリップフロップ回路の消費電力を示し、Ｐｃｇ０とＰｃｇ１は、夫々、第２の従来処理での全クロックゲーティング回路の消費電力と本発明方法での全クロックゲーティング回路の消費電力を示している。
【００６６】
（数３）
Ｐ０＝Ｐｆｆ０＋Ｐｃｇ０
＝４ｐＷ／クロック個×２５クロック個＋１ｐＷ／クロック個×８０クロック個
＝１８０ｐＷ
（数４）
Ｐ１＝Ｐｆｆ１＋Ｐｃｇ１
＝４ｐＷ／クロック個×３３クロック個＋１ｐＷ／クロック個×３０クロック個
＝１６２ｐＷ
【００６７】
以上、数３と数４の計算結果を比較して分かるように、本発明方法によれば、実動作モードでより低消費電力化が図れる。更に、各フリップフロップ回路の１クロックイベントでの消費電力を６ｐＷ、同様にクロックゲーティング回路の１クロックイベントでの消費電力を１ｐＷと想定した場合についても検討すると、Ｐ０＝２３０ｐＷに対して、Ｐ１＝２２８ｐＷとなり、消費電力の低減率は大幅に低下するが、挿入するクロックゲーティング回路の数は８から３に減少しているので、回路構成は簡素化される。第１実施例で説明したように、１クロックイベントでのフリップフロップ回路とクロックゲーティング回路の消費電力の比（フリップフロップ回路／クロックゲーティング回路）が大きくなると、本発明方法による消費電力の低減効果が低下するので、当該消費電力の比及び回路規模に応じて、使用する基準アクティブ比率Ｒａｘと基準近似率Ｒｂｘの設定値を適切に変更することで、低消費電力化を維持することができる。
【００６８】
基準アクティブ比率Ｒａｘの設定基準としては、１クロックイベントでのフリップフロップ回路（クロック信号入力時、イネーブル信号が非アクティブ状態）とクロックゲーティング回路の消費電力の比の逆数を１から差し引いた値以上とするのが好ましいと考える。消費電力の比が４では７５％以上、６では８５％以上となる。基準近似率Ｒｂｘの最適値は、回路構成によって変化するため、消費電力の比だけで一義的に求めることは困難である。しかし、同一組の第２種イネーブル信号の夫々と合成イネーブル信号との間の近似率が１００％でないことに起因して、対応するフリップフロップ回路での消費電力が増加するため、各組おける当該増加分とクロックゲーティング回路の減少によるクロックゲーティング回路の消費電力の減少分との差が、各組を合計して、クロックゲーティング回路の消費電力の減少分が大きくなる必要がある。基準近似率Ｒｂｘの設定値が小さい程、当該増加分と当該減少分の何れもが大きくなるが、消費電力の比が大きくなると、当該減少分よりも当該増加分の方がより大きくなるため、基準近似率Ｒｂｘの設定値は、消費電力の比が大きい程、大きくなる。
【００６９】
以上より、上記ステップＳ４で設定した基準近似率Ｒｂｘが適切でなく、十分な低消費電力化が図れずに、第２の従来処理に比べて却って消費電力が増大する可能性がある場合には、上記ステップ４において、第２の従来処理に比べた消費電力低減率を計算して、第２の従来処理に比べて却って消費電力が増大する場合は、基準近似率Ｒｂｘの設定値を増加させて、ステップＳ４の処理を再度実行するのも好ましい。また、当該ステップＳ４の再実行を、本発明装置の第３手段によって自動的に行えるようにするのも好ましい。更には、ステップＳ４の処理を複数の基準近似率Ｒｂｘに対して実行して、その中の最も低消費電力化が図れたものに対して、最終的にステップＳ５の処理を実行するのも好ましい。
【００７０】
次に、本発明装置の別実施形態について説明する。
【００７１】
〈１〉上記実施形態では、本発明装置の第３手段は、ステップＳ３〜Ｓ５の処理を順番に実行する構成としたが、ステップＳ３の処理による低消費電力化とステップＳ４の処理による低消費電力化は、互いに独立したものであるので、ステップＳ３とステップＳ４の一方だけを実行しても低消費電力化が図れる可能性がある。従って、第３手段は、ステップＳ３とステップＳ４の一方だけを実行する構成としても構わない。
【００７２】
更に、上記実施形態では、ステップＳ３の実行後の非第１種イネーブル信号に対してステップＳ４を実行したが、実行順を逆にして、ステップＳ２で抽出された全てのイネーブル信号に対してステップＳ４を実行した後、ステップＳ４で第２種イネーブル信号として抽出されなかったイネーブル信号に対してステップＳ３を実行して、第１種イネーブル信号を抽出するようにしても良い。
【００７３】
更に、ステップＳ３とステップＳ４の実行順によって得られる結果は異なる可能性があるので、実行順を変えたステップＳ３とステップＳ４を２通り実行して、消費電力の低い方の結果を使用して、ステップＳ５を実行するのも好ましい。
【００７４】
〈２〉上記実施形態では、本発明装置の第２手段が、ステップＳ２で論理シミュレーションを実行して、各イネーブル信号の波形情報を取得し、第３手段が、ステップＳ３で当該波形情報Ｄ４から各イネーブル信号のアクティブ比率を導出する構成となっていたが、論理シミュレータが、各イネーブル信号の波形情報とアクティブ比率を同時に取得する機能を有する場合は、本発明装置の第２手段が、ステップＳ２で論理シミュレーションを実行して、各イネーブル信号の波形情報とアクティブ比率を同時に取得して、ステップＳ３では、そのアクティブ比率を使用する構成としても構わない。
【産業上の利用可能性】
【００７５】
本発明に係る論理回路設計支援方法及び装置は、コンピュータを利用した論理回路設計の自動化技術において、実動作モードにおける低消費電力化のためのゲーティッドクロック設計に利用可能である。
【符号の説明】
【００７６】
１：          論理回路設計支援装置
２：          ＣＰＵ（中央演算処理装置）
３：          ＲＯＭ（読み出し専用メモリ）
４：          ＲＡＭ（ランダムアクセスメモリ）
５：          外部記憶装置
６：          入力装置
７：          表示装置
８：          バスライン
１０〜１８：  論理階層
２０：        クロックジェネレータ
２１：        イネーブル生成論理回路
３１〜３８：  イネーブル付きフリップフロップ回路（論理回路ユニット）
３１ａ〜３４ａ：  イネーブル無しフリップフロップ回路
４１〜４７：  クロックゲーティング回路
５０〜５３：  クロックゲーティング回路
ＣＬＫ：      クロック信号
ＣＬＫ１〜ＣＬＫ７：  クロックゲーティング回路から出力されるクロック信号
Ｄ１：        処理前の最適化対象論理回路の回路構造を記述した回路データ
Ｄ２：        イネーブル信号情報
Ｄ３：        テストベンチ
Ｄ４：        波形情報（状態遷移に係る時系列情報）
Ｄ５：        第１最適化イネーブル信号情報
Ｄ６：        第２最適化イネーブル信号情報
Ｄ７：        処理後の最適化対象論理回路の回路構造を記述した回路データ
ＥＮ１〜ＥＮ８：  イネーブル信号
ＥＮ１０〜ＥＮ１２：  合成イネーブル信号
Ｒａｘ：      基準アクティブ比率
Ｒｂｘ：      基準近似率
Ｔ１〜Ｔ１０：クロックサイクル
【図１】
2011100346.tif 000003
【図２】
2011100346.tif 000004
【図３】
2011100346.tif 000005
【図４】
2011100346.tif 000006
【図５】
2011100346.tif 000007
【図６】
2011100346.tif 000008
【図７】
2011100346.tif 000009
【図８】
2011100346.tif 000010
【図９】
2011100346.tif 000011
【図１０】
2011100346.tif 000012
【図１１】
2011100346.tif 000013
【図１２】
2011100346.tif 000014
【図１３】
2011100346.tif 000015
【図１４】
2011100346.tif 000016
【図１５】
2011100346.tif 000017
【図１６】
2011100346.tif 000018
【図１７】
2011100346.tif 000019
【図１８】
2011100346.tif 000020
【図１９】
2011100346.tif 000021
【図２０】
2011100346.tif 000022
【図２１】
2011100346.tif 000023
【図２２】
2011100346.tif 000024