(57)【特許請求の範囲】
【請求項１】
デジタル論理回路を入力として読込む読込み部と、前記デジタル論理回路に含まれるフリップフロップから一つのフリップフロップを選択するフリップフロップ確認部と、選択されたフリップフロップの出力がこのフリップフロップの入力側の複数の論理素子で構成された組合せ論理回路に回帰しているかを判定し、回帰しているとき、前記組合せ論理回路と前記選択されたフリップフロップとからなる回路を、当該回路とその入出力信号間の関係が論理的に等価であり、かつ、前記選択されたフリップフロップを、その入力にマルチプレクサが接続されるとともにその出力が前記マルチプレクサの入力に回帰しているフリップフロップに置換した回路に論理変換を行なう回路変換部と、前記置換した回路における前記マルチプレクサが接続されたフリップフロップをクロックゲーティングセルが挿入されたフリップフロップに置換するクロックゲート部と、を含むことを特徴とする設計支援装置。
【請求項２】
請求項１に記載の設計支援装置であって、
前記選択されたフリップフロップの入力Ｑｎは、前記選択されたフリップフロップの出力をＱｐとし、前記組合せ論理回路の組合せ論理をｉ関数とし、前記組合せ論理の入力をａ１、…、ａＮ、Ｑｐとして、
Ｑｎ＝ｉ（ａ１、…、ａＮ、Ｑｐ）
で与えられることを特徴とする設計支援装置。
【請求項３】
コンピュータを
デジタル論理回路を入力として読込む読込み部、
前記デジタル論理回路に含まれるフリップフロップから一つのフリップフロップを選択するフリップフロップ確認部、
選択されたフリップフロップの出力がこのフリップフロップの入力側の複数の論理素子で構成された組合せ論理回路に回帰しているかを判定し、回帰しているとき、前記組合せ論理回路と前記選択されたフリップフロップとからなる回路を、当該回路とその入出力信号間の関係が論理的に等価であり、かつ、前記選択されたフリップフロップを、その入力にマルチプレクサが接続されるとともにその出力が前記マルチプレクサの入力に回帰しているフリップフロップに置換した回路に論理変換を行なう回路変換部、
前記置換した回路における前記マルチプレクサが接続されたフリップフロップをクロックゲーティングセルが挿入されたフリップフロップに置換するクロックゲート部、
として機能させるための設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援装置、設計支援プログラムおよび回路設計方法に係り、特にクロックゲーティング回路を生成する設計支援装置、設計支援プログラムおよび回路設計方法に関する。
【背景技術】
【０００２】
図１は、組合せ論理３０と、マルチプレクサ（ＭＵＸ）２０と、フリップフロップ（ＦＦ）１０からなる論理回路５００である。ＭＵＸ２０には、組合せ論理３０の出力ｆと、データイネーブル信号ｅと、ＦＦ１０からの回帰データＱｐが与えられている。ＭＵＸ２０は、ｅが”０”のときＱｐを選択し、ｅが”１”の時に更新データであるｆを選択する。図１の論理回路５００では、タイミングクロック（ＣＬＫ）によってＦＦ１０がオン、オフする。このため、ＣＬＫの立ち上がり／立下りの度に、ＦＦ１０がオン／オフを繰り返すため消費電力が大きくなってしまう。
【０００３】
ここで、消費電力を削減するためには、ＦＦ１０の動作を制御すると良い。図２は、ＦＦ１０の動作がクロックゲーティングセル（ＣＧ）４０によって制御可能な論理回路５００Ａである。ＣＧ４０は、ＣＬＫとクロックイネーブルｅを入力とし、クロックイネーブルｅによって必要があるときのみＣＬＫを後段論理に供給する。図２の場合、ｅが”１”の時にＦＦ１０にＣＬＫを供給し、ＦＦ１０の動作をオンにする。また、ｅが”０”の時にＦＦ１０にはＣＬＫを供給せず、ＦＦ１０の動作をオフにする。ＦＦ１０の動作を制御することにより、オン、オフの繰り返しが減少するため消費電力を削減する。図１の論理回路５００と図２の論理回路５００Ａは、回路構成は異なるがＦＦ１０の出力値は等価なものである。したがって、論理回路５００から論理回路５００Ａへの論理変換を行なうことで、低消費電力化を図ることができる。
【０００４】
しかし、論理回路５００から論理回路５００Ａへ変換は、組合せ論理３０とＭＵＸ２０とＦＦ１０があり、ＦＦ１０からの回帰データＱｐと組合せ論理３０からの更新データｆがＭＵＸ２０に与えられている回路構成であることが前提条件であるため、適用範囲は限られたものである。
【０００５】
特許文献１は、遅延フリップフロップのオン、オフを行なった場合、大きな電力の消費を伴うことの解決策としてクロックゲーティング技術を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２９４３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、クロックゲーティング回路を利用した、電子回路のより効率的な低消費電力化を実現する低消費電力化支援装置、低消費電力化支援プログラムおよび回路設計方法を提供する。
【課題を解決するための手段】
【０００８】
上述した課題は、デジタル論理回路を入力として読込む読込み部と、フリップフロップを選択するフリップフロップ確認部と、選択されたフリップフロップの出力がこのフリップフロップ入力側の組合せ論理に回帰している回路かを判定して、クロックゲート化を行なう回路に論理変換を行なう回路変換部と、フリップフロップに対しクロックゲーティングセルを挿入し、クロックゲーティング回路を生成するクロックゲート部とからなる設計支援装置により、達成できる。
【０００９】
また、コンピュータをデジタル論理回路を入力として読込む読込み部、フリップフロップを選択するフリップフロップ確認部、フリップフロップの出力がフリップフロップ入力側の組合せ論理に回帰している回路かを判定して、クロックゲート化を行なう回路に論理変換を行なう回路変換部、フリップフロップに対しクロックゲーティングセルを挿入し、クロックゲーティング回路を生成するクロックゲート部、として機能させるための設計支援プログラムにより、達成できる。
【００１０】
さらに、デジタル回路に含まれるフリップフロップの出力がフリップフロップの入力側の組合せ回路に回帰している論理回路を検出するステップと、フリップフロップの出力がマルチプレクサに回帰ルートとして、またマルチプレクサに前段組合せ論理の出力が更新ルートとして接続されている論理回路に変換をするステップと、を有する回路設計方法により、達成できる。
【発明の効果】
【００１１】
本発明によれば、クロックゲーティング化を行なうことができる論理構成を増やすことによって、より効率的な低消費電力化を図ることができる。
【図面の簡単な説明】
【００１２】
【図１】クロックゲート化を説明するための回路図である。
【図２】クロックゲート化された回路図である。
【図３】必要な論理構成を説明するための回路図である。
【図４】クロックゲート化前の処理を説明するための回路図である。
【図５】低消費電力化支援装置の機能ブロック図である。
【図６】低消費電力化支援装置のハードウェアブロック図である。
【図７】論理変換を行ないクロックゲート化するまでを説明するフローチャートである。
【図８】論理変換後のクロックゲート化を説明するための回路図である。
【図９】低消費電力化支援装置の出力である見込み消費電力削減値を説明する図である。
【図１０】低消費電力化支援装置の出力であるクロックゲーティング回路の表示を説明する図である。
【図１１】共有化について説明をするための回路図である。
【図１２】必要な包含関係を説明するタイムチャートである。
【図１３】より効率的な低消費電力化のための論理削除を説明するための回路図である。
【図１４】より効率的な低消費電力化を行なう手順を説明するフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施の形態について、実施例を用い図面を参照しながら詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【実施例１】
【００１４】
図３ないし図１０を参照して、実施例１を説明する。まず、図３を参照して、クロックゲーティングセル４０を適用可能な回路構成を説明する。すなわち、適用可能論理を多くするためには、論理展開により、背景技術で説明した前提条件を満たす論理になるように論理変換を行なえば良い。図３は、ＦＦの出力がＦＦの入力側の組合せ論理に回帰している回路図である。
【００１５】
図３において、論理回路２００は、組合せ回路３０とＦＦ１０とから構成されている。また、ＦＦ１０の出力Ｑｐが組合せ回路３０に回帰している。論理回路２００のように、ＦＦ１０の出力Ｑｐが組合せ回路３０に回帰している回路構成であれば、如何なる論理であれ、論理変換により図４の様にＦＦ１０の入力側にＭＵＸ２０を捻りだすことが可能である。
【００１６】
図４は、２つの組合せ論理３０と、ＯＲ素子６０と、ＭＵＸ２０と、ＦＦ１０と、インバータ５０とからなる論理回路２００Ａである。図４において、２つの組合せ論理３０の出力は、ＯＲ素子６０の入力である。ＯＲ素子６０の出力は、ＭＵＸ２０にセレクト信号として入力されている。ＦＦ１０の出力Ｑｐは、ＭＵＸ２０と一方の組合せ論理３０−２に回帰している。Ｑｐの値に着目すると、図３と図４でＱｐは、等価である。
【００１７】
また、点線枠に囲まれた箇所は図１と等しく、ＦＦ１０からの回帰データと組合せ論理３０からの更新データがＭＵＸ２０に与えられている回路構成である。このため、クロックゲーティング回路を生成可能な回路である。つまり、図３は図４に変換可能であり、図４は、クロックゲーティング回路を生成可能な回路構成である。このため、図３の様な論理回路を検出することができれば、結果的に該当箇所にクロックゲーティング回路を生成することが可能である。
【００１８】
図５を参照して、低消費電力化支援装置１００の構成について説明する。図５において、低消費電力化支援装置１００は、読込み部１０１と、ＦＦ確認部１０２と、回路変換部１０３と、クロックゲート部１０４と、記憶部１０５と、比較部１０６と、表示部１０７とで構成されている。
【００１９】
読込み部１０１は、デジタル論理回路を入力として読込む。ＦＦ確認部１０２は、デジタル論理回路内の全てのＦＦの中から１つを選択する。読込み部１０１は、後段部に情報を伝える。ＦＦ確認部１０２は、全てのＦＦに対し選択が終了したかを確認する。確認できない場合、ＦＦ確認部１０２は、残りのＦＦを選択する。回路変換部１０３は、クロックゲーティング化するための前処理として回路の変換を行なう。回路変換部１０３は、ＦＦの出力がＦＦ入力側の組合せ論理に回帰している回路かを判定する。回帰している場合、回路変換部１０３は、クロックゲート化を行なうことができる形に論理変換を行なう。
【００２０】
クロックゲート部１０４は、ＦＦに対しＣＧを挿入し、クロックゲーティング回路を生成する。記憶部１０５は、入力回路や回路変換を行なうにあたって得られる情報を記憶する。比較部１０６は、入力回路と生成されたクロックゲーティング回路を比較する。比較部１０６は、クロックゲーティング化による消費電力削減率を求める。表示部１０７は、入力されたデジタル論理回路の総ＦＦ数、クロックゲーティング化可能なＦＦ数、従来のクロックゲーティング方法で見込める削減電力値、低消費電力化支援装置１００によって見込める削減電力値、見込み消費電力削減率等の統計情報およびＦＦ周辺の回路図を表示する。
【００２１】
図６を参照して、低消費電力化支援装置１００のハードウェアを説明する。図６において、低消費電力化支援装置１００は、メモリ１１０と、ＣＰＵ１２０と、記憶装置１３０と、入力装置１４０と、出力装置１５０と、バス１６０とから構成される。
【００２２】
メモリ１１０は、ＣＰＵ１２０が実行するプログラムを記憶する。ＣＰＵ１２０は、メモリ１１０が記憶するプログラムを実行する。記憶装置１３０は、外部記憶装置である。記憶装置１３０は、デジタル論理回路のデータ、低消費電力化支援装置１００の出力結果を保持する。入力装置４０は、低消費電力化支援装置１００の入力部である。出力装置１５０は、低消費電力化支援装置１００の出力部である。バス１６０は、メモリ１１０とＣＰＵ１２０と記憶装置１３０と入力装置１４０と出力装置１５０とを相互接続する。
【００２３】
図５と図６との対比から明らかなように低消費電力化支援装置１００は、コンピュータである。図５で説明した低消費電力化支援装置１００の機能ブロックは、ＣＰＵ１２０が、メモリ１１０上のプログラムを実行することによって、実現する。
【００２４】
図７を参照して、低消費電力化支援装置１００の処理フローを説明する。図７において、低消費電力化支援装置１００は、デジタル論理回路内の全てのＦＦについて確認が終了したかどうかを判定する（Ｓ１）。ステップ１において、全てのＦＦについて確認が終了していなければ、低消費電力化支援装置１００は、残りのＦＦから１つ選択する（Ｓ２）。低消費電力化支援装置１００は、選択したＦＦの出力ＱｐがＦＦの入力側の組合せ論理に回帰している論理であるかを確認する（Ｓ３）。
【００２５】
ステップ３において、確認方法は、回路を論理式で表すことで明確になる。具体的に言えば、ＦＦの入力Ｑｎを表す論理式において、右辺にＱｐの要素が含まれていた場合、回帰していると判定できる。回帰している回路構成である場合、組合せ論理をｉ関数とし、組合せ論理の入力をａ１、…、ａＮ（Ｎは２以上の整数）、Ｑｐとして、Ｑｎを論理式で表すと、式１になる。
【００２６】
Ｑｎ＝ｉ（ａ１、…、ａＮ、Ｑｐ）…（式１）
ステップ３でＹＥＳのとき、低消費電力化支援装置１００は、組合せ論理内からＭＵＸを捻りだす論理変換を行なう（Ｓ４）。低消費電力化支援装置１００は、図８に示すクロックゲーティング回路を生成して（Ｓ５）、ステップ１に遷移する。ステップ３でＮＯのとき、低消費電力化支援装置１００は、ステップ１に遷移する。ステップ１でＹＥＳのとき、低消費電力化支援装置１００は、終了する。
【００２７】
図８を参照して、図４をクロックゲーティング化した回路を説明する。図８において、クロックゲーティング化回路２００Ｂは、２つの組合せ論理３０と、ＯＲ素子６０と、ＦＦ１０とＣＧ４０からなる回路である。クロックゲーティング化回路２００Ｂは、２つの組合せ論理３０の出力がＯＲ素子の入力として、ＯＲ素子６０の出力がクロックイネーブルとしてＣＧ４０に入力されている。クロックゲーティング化回路２００Ｂは、ＣＧ４０によりＱｐの値が更新される時のみ、ＦＦ１０の動作がオンとなる制御が働く。
【００２８】
図４のＦＦ１０は、ＣＬＫの立ち上がり／立下りの度に、ＦＦがオン／オフ（同順）を繰り返すため消費電力が多くなってしまう。これに比べ、図８のＦＦ１０は、ＣＧ４０によりＣＬＫの供給を制御される。このため、クロックゲーティング化回路２００Ｂは、ＦＦ１０のオン、オフの回数が少なくなり低消費電力化を図ることができる。
【００２９】
図９を参照して、低消費電力化支援装置１００の出力である見込み消費電力削減結果１７０を説明する。図９において、見込み消費電力削減結果１７０は、ブロックごとの総ＦＦ数１７１、ＣＧ可能ＦＦ数１７２、適用前電力削減値１７３、適用後電力削減値１７４、見込み電力削減率１７５から構成されている。
【００３０】
総ＦＦ数１７１は、当該ブロックのＦＦの総数である。ＣＧ可能ＦＦ数１７２は、当該ブロックのクロックゲーティング化可能なＦＦの総数である。適用前電力削減値１７３は、従来のクロックゲーティング方法（図１から図２に変換）の電力削減値である。適用後電力削減値１７４は、本実施例のクロックゲーティング方法（図３→図４→図８と変換）の電力削減値である。見込み電力削減率１７５は、適用前に対する適用後電力削減率である。
【００３１】
低消費電力化支援装置１００は、入力されたデジタル回路に対しブロック別（Ｂｌｏｃｋ０、Ｂｌｏｃｋ１〜ＢｌｏｃｋＮ）に消費電力削減結果を示す。低消費電力化支援装置１００は、見込み消費電力削減結果１７０を表示部１０７に表示する。
【００３２】
図１０を参照して、低消費電力化装置１００の出力である、クロックゲーティング回路の表示について説明する。低消費電力化装置１００は、クロックゲーティング回路生成後、表示部１０７において、クロックゲーティングされたＦＦをリストして纏めている。低消費電力化装置１００は、リスト内のＦＦを選択することで該当ＦＦ周辺のクロックゲーティング化前後の回路図を表示する。図１０は、クロックゲーティング化後の回路図であり、ＦＦ１０と、ＣＧ４０と、ＯＲ素子６０−３と、組み合わせ論理を構成する３つのＡＮＤ素子７０と２つのＯＲ素子６０−１、６０−２とから構成されている。
【実施例２】
【００３３】
図１１ないし図１４を参照して、実施例２を説明する。図１１は、ｅとＣＬＫを入力としたＣＧ４０と、Ｎ個のＦＦ１０からなる回路３００である。Ｎ個のＦＦ１０の入力に１つのＣＧ４０の出力が使われており、共有化の考えを示している。クロックゲーティング回路を生成し、クロックゲーティングセル（ＣＧ）を挿入することにより消費電力を抑えるだけではなく、図１１の様にＣＧを共有化することにより、ＣＧの使用個数を抑えることで消費する電力を抑えることができる。
【００３４】
ＭＵＸ２０のセレクト信号ｓは、ＣＧ４０のクロックイネーブル信号となる。このため、図４を参照すると、ＭＵＸ２０のセレクト信号ｓの組合せを簡単化することで、よりＣＧ４０の共有化を行ない易い論理を生成できるということが分かる。図１２は、組合せ論理３０の出力ｇとｈと、ｇ ｏｒ ｈのタイムチャートである。ｇが”１”の時、ｈも必ず”１”となるため、ｈがｇを包含しており、ｈとｇ ｏｒ ｈが等しいことを示している。図４の回路図の場合、最終段の２入力ＯＲを簡単化すれば良く、各組合せ回路の出力信号ｇとｈが図１２の様にｈがｇを包含している関係のとき、ｈはｇ ｏｒ ｈと等しいためＯＲゲートを削除し、図１３の回路に変換可能である。
【００３５】
図１３は、２つの組合せ論理とＭＵＸとＦＦからなる回路２００Ｃであり、図４の回路図からＯＲ素子６０を除き、ＭＵＸ２０のセレクト信号ｓをｈとしたものである。組合せ論理３０−１の出力ｈがＭＵＸのセレクト信号として与えられ、ＦＦ１０の出力Ｑｐが組合せ論理３０−２とＭＵＸ２０の入力に回帰している。図４と図１３のＭＵＸのセレクト信号を比較すると、図４ではｇとｈによる２入力の演算結果がＭＵＸのセレクト信号となっている。これに対して図１３では、ｈがセレクト信号になっている。２入力の演算結果と１入力では、１入力の方が共有化を行ない易く、共有化によりＣＧ４０の使用個数を抑えることで消費する電力を削減することができる。また、仮に共有化できない場合であっても、ＯＲゲート６０を削減することで消費電力を削減することができる。
【００３６】
図１４を参照して、低消費電力化装置１００の処理の詳細を説明する。図１４において、低消費電力化装置１００は、デジタル論理回路内の全てのＦＦについて確認が終了したかどうかを判定する（Ｓ１１）。ステップ１１において、全てのＦＦについて確認が終了していなければ（ＮＯ）、低消費電力化装置１００は、残りのＦＦから１つ選択する（Ｓ１２）。
【００３７】
低消費電力化装置１００は、選択したＦＦが、図３の様にＱｐがＦＦの入力側の組合せ論理に回帰している論理であるかを確認する（Ｓ１３）。確認方法は、回路を論理式で表すことで明確になる。具体的に言えば、ＦＦの入力Ｑｎを表す論理式において、右辺にＱｐの要素が含まれていた場合、回帰していると判定できる。例えば、図３の回路の場合、組合せ論理をｉ関数としＱｎを論理式で表すと以下の式２になる。
【００３８】
Ｑｎ＝ｉ（ａ１、ａ２、…、ａＮ、Ｑｐ）…（式２）
ステップ１３において、回路を論理式で表すことでＱｐがＦＦの入力側の組合せ論理に回帰しているということが確認できれば（ＹＥＳ）、低消費電力化装置１００は、論理変換を行なう（Ｓ１４）。ステップ１３で確認ができなかった場合（ＮＯ）、低消費電力化装置１００は、ステップ１１に戻り、次のＦＦを探す。
【００３９】
ステップ１４では、組合せ論理内からＭＵＸを捻りだし図４の形になるように論理変換を行ない、図１に示したクロックゲーティング回路を生成するのに必要な形（点線枠に囲まれた箇所）を含む回路構成に変換する。ステップ１３で条件を満たした回路構成であれば、如何なる回路であっても論理変換によりＭＵＸを捻りだし、図４の形にすることが可能である。
【００４０】
低消費電力化装置１００は、ｓ生成の組合せを簡略化可能か判定する（Ｓ１５）。ステップ１５では、ｓを生成する組合せに注目する。例えば図４の様に、組合せ論理の出力ｇとｈがＯＲ素子を経てＭＵＸのセレクト信号となっている場合、ｇとｈが図１２の様に、ｈがｇを包含している関係ならば、ＯＲ素子を除きｈをＭＵＸのセレクト信号とすることができる。この様にｈとｇの関係に注目し簡単化が可能な関係であれば（ＹＥＳ）、低消費電力化装置１００は、不要な論理を削除し、ｓを生成する組合せを簡単化する（Ｓ１６）。不要論理の削除を行なった後、低消費電力化装置１００は、クロックゲーティング化を行なって（Ｓ１７）、ステップ１１に遷移する。また、ステップ１５において、ｓの簡単化を行なうことができないと判断された場合（ＮＯ）、低消費電力化装置１００は、ステップ１６をジャンプしてステップ１７に遷移する。ステップ１１でＹＥＳのとき、低消費電力化装置１００は、終了する。
実施例２は、より効率的な低消費電力化を追求したものである。
【符号の説明】
【００４１】
１０…フリップフロップ（ＦＦ）、２０…マルチプレクサ（ＭＵＸ）、３０…組合せ論理回路、４０…クロックゲーティングセル（ＣＧ）、５０…インバータ、６０…ＯＲ、７０…ＡＮＤ、１００…低消費電力化装置、１０１…デジタル回路受信部、１０２…ＦＦ確認部、１０３…回路変換部、１０４…クロックゲート部、１０５…記憶部、１０６…比較部、１０７…表示部、１００…低消費電力化支援装置、１１０…メモリ、１２０…ＣＰＵ、１３０…記憶装置、１４０…入力装置、１５０…出力装置、１６０…バス、１７０…見込み消費電力削減結果、２００…論理回路、５００…論理回路。
【図１】
0005520790.tif 000002
【図２】
0005520790.tif 000003
【図３】
0005520790.tif 000004
【図４】
0005520790.tif 000005
【図５】
0005520790.tif 000006
【図６】
0005520790.tif 000007
【図７】
0005520790.tif 000008
【図８】
0005520790.tif 000009
【図９】
0005520790.tif 000010
【図１０】
0005520790.tif 000011
【図１１】
0005520790.tif 000012
【図１２】
0005520790.tif 000013
【図１３】
0005520790.tif 000014
【図１４】
0005520790.tif 000015