(57)【要約】【課題】消費電力の少ない電子回路およびその構成方法を提供する。【解決手段】クロック信号ＣＬＫにより入力状態Ｆ〜Ｉを記憶し、記憶結果Ｊ〜Ｍを外部に出力する記憶回路１１〜１４を有する記憶回路群１５と、記憶回路１１〜１４の入力端Ｄと出力端Ｑに接続され、入力状態Ｆ〜Ｉが記憶結果Ｊ〜Ｍと異なったときに、記憶回路１１〜１４にクロック信号ＣＬＫの供給を許可するイネーブル信号ＥＮ１〜ＥＮ４を出力する比較手段１６〜１８と、比較手段１６〜１８の少なくとも１つがイネーブル信号ＥＮ１〜ＥＮ４を出力しているときは、クロック信号ＣＬＫを記憶回路群１５に供給し、比較手段１６〜１８がイネーブル信号ＥＮ１〜ＥＮ４を出力していないときは、クロック信号ＣＬＫの供給を停止するクロックゲート回路２０と、を具備する。【選択図】図１
2009100235.tif 000002
【特許請求の範囲】
【請求項１】
クロック信号により入力状態を記憶し、記憶結果を外部に出力する複数の記憶回路を有する記憶回路群と、
前記複数の記憶回路の入力端と出力端に接続され、前記入力状態が前記記憶結果と異なったときに、前記記憶回路に前記クロック信号の供給を許可するイネーブル信号を出力する複数の比較手段と、
前記複数の比較手段の少なくとも１つが前記イネーブル信号を出力しているときは、前記クロック信号を前記記憶回路群に供給し、前記複数の比較手段が前記イネーブル信号を出力していないときは、前記クロック信号の供給を停止するクロックゲート回路と、
を具備することを特徴とする電子回路。
【請求項２】
複数のクロックバッファがツリー状に接続され、複数の前記記憶回路群に前記クロック信号を分配するクロックツリーを有し、
前記複数のクロックバッファの少なくとも１つが、前記クロックゲート回路であることを特徴とする請求項１に記載の電子回路。
【請求項３】
前記記憶回路群に属する第１の前記記憶回路の入力端と出力端に接続された第１の前記比較手段が、第１の前記イネーブル信号を出力するときに、前記記憶回路群に属する第２の前記記憶回路の入力端と出力端に接続された第２の前記比較手段が、第２の前記イネーブル信号を出力する場合、前記第１の比較手段および第２の比較手段のいずれかを省略したことを特徴とする請求項１または請求項２に記載の電子回路。
【請求項４】
複数のクロックバッファがツリー状に接続されたクロックツリーと、前記クロックツリーを介してクロック信号が供給される複数の記憶回路を有する電子回路の構成方法であって、
前記複数の記憶回路の配置情報および入力信号情報に基づいて、同時にスイッチングしない確率の高い前記記憶回路同士をグルーピングし、前記記憶回路を複数有する記憶回路群を生成するステップと、
前記記憶回路群に属する前記記憶回路の入力端と出力端に、前記入力状態が前記記憶結果と異なったときに、前記記憶回路に前記クロック信号の供給を許可するイネーブル信号を出力する比較手段を接続するステップと、
前記比較手段の少なくとも１つが前記イネーブル信号を出力したときは、前記クロック信号を前記記憶回路群に供給し、前記比較手段が前記イネーブル信号を出力していないときは、前記クロック信号の供給を停止するクロックゲート回路を、前記クロックツリーの前記バッファとして配置するステップと、
を具備することを特徴とする電子回路の構成方法。
【請求項５】
前記記憶回路群に属する第１の前記記憶回路の入力端と出力端に接続された第１の前記比較手段が、第１の前記イネーブル信号を出力するときに、前記記憶回路群に属する第２の前記記憶回路の入力端と出力端に接続された第２の前記比較手段が、第２の前記イネーブル信号を出力する場合、前記第１および第２の比較手段のいずれかを省略するステップを具備することを特徴とする請求項４に記載の電子回路の構成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子回路およびその構成方法に関する。
【背景技術】
【０００２】
従来、カスタムＬＳＩ（Large Scale Integrated circuit）では、性能（動作速度）が、消費電力よりも重視されてきた。  
しかし、近年において、低消費電力化の重要性が認識され、必要のないときにクロック信号の供給を停止して低消費電力を図った電子回路が知られている（例えば、特許文献１参照または特許文献２参照。）。
【０００３】
特許文献１に開示された電子回路は、クロック信号によって内部状態を記憶する記憶回路と、この記憶回路への前記クロック信号をゲートするゲート回路と、記憶回路の現在の状態出力と次に入力されるデータ信号とを比較する手段とを具備し、比較手段はその入力信号が異なっている時だけクロック信号の出力を許可する信号をゲート回路に出力することにより、記憶回路の状態が変わる時だけクロック信号を記憶回路に供給している。  
これにより、通常モードや低速モードに関係なく、クロック信号が供給されている限りシステムに生じていた無駄な消費電力を低減している。
【０００４】
また、特許文献２に開示された電子回路は、同期回路セルのデータ入力とデータ出力との排他的論理和を演算し排他的論理和出力を出力する排他的論理和手段と、データ入力とデータ出力との比較タイミングを決定するタイミング信号を生成出力するタイミング信号生成手段と、タイミング信号と排他的論理和出力と基準クロックとの論理積を演算し、その演算結果を動作クロックとして同期回路セルへ出力する論理積手段とを備えている。  
これにより、同期回路セルの状態が変わっても、タイミング信号が与えられていなければ、クロック信号を同期回路セルに供給せず、消費電力を低減している。
【０００５】
然しながら、特許文献１および特許文献２に開示された電子回路は、個々の記憶回路の消費電力を低減することはできるが、クロック回路は使われないクロック信号を依然として記憶回路に送出しているので、クロック回路の一部で無駄な電力が消費されているという問題がある。
【０００６】
特に、大規模ＬＳＩほど、クロック回路は複雑なクロック分配系を有しているので、クロック分配系での消費電力が増大するという問題がある。
【特許文献１】特開平１１−２９８３００号公報
【特許文献２】特開２００５−３８１８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、消費電力の少ない電子回路およびその構成方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様の電子回路は、クロック信号により入力状態を記憶し、記憶結果を外部に出力する複数の記憶回路を有する記憶回路群と、前記複数の記憶回路の入力端と出力端に接続され、前記入力状態が前記記憶結果と異なったときに、前記記憶回路に前記クロック信号の供給を許可するイネーブル信号を出力する複数の比較手段と、前記複数の比較手段の少なくとも１つが前記イネーブル信号を出力しているときは、前記クロック信号を前記記憶回路群に供給し、前記複数の比較手段が前記イネーブル信号を出力していないときは、前記クロック信号の供給を停止するクロックゲート回路と、を具備することを特徴としている。
【０００９】
本発明の一態様の電子回路の構成方法は、複数のクロックバッファがツリー状に接続されたクロックツリーと、前記クロックツリーを介してクロック信号が供給される複数の記憶回路を有する電子回路の構成方法であって、前記複数の記憶回路の配置情報および入力信号情報に基づいて、同時にスイッチングしない確率の高い前記記憶回路同士をグルーピングし、前記記憶回路を複数有する記憶回路群を生成するステップと、前記記憶回路群に属する前記記憶回路の入力端と出力端に、前記入力状態が前記記憶結果と異なったときに、前記記憶回路に前記クロック信号の供給を許可するイネーブル信号を出力する比較手段を接続するステップと、前記比較手段の少なくとも１つが前記イネーブル信号を出力したときは、前記クロック信号を前記記憶回路群に供給し、前記比較手段が前記イネーブル信号を出力していないときは、前記クロック信号の供給を停止するクロックゲート回路を、前記クロックツリーの前記バッファとして配置するステップと、を具備することを特徴としている。
【発明の効果】
【００１０】
本発明によれば、消費電力の少ない電子回路およびその構成方法が得られる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１２】
本発明の実施例１に係る電子回路について図１および図２を用いて説明する。図１は電子回路を示す回路図、図２は電子回路の動作を示すタイミングチャートである。  
図１に示すように、本実施例の電子回路１０は、クロック信号ＣＬＫにより入力状態を記憶し、記憶結果を外部に出力する複数の記憶回路１１、１２、１３、１４を有する記憶回路群１５と、記憶回路１１、１２、１３、１４の入力端Ｄと出力端Ｑにそれぞれ接続され、入力信号（入力状態）Ｆ、Ｇ、Ｈ、Ｉが出力信号（記憶結果）Ｊ、Ｋ、Ｌ、Ｍと異なったときに、記憶回路１１、１２、１３、１４にクロック信号ＣＬＫの供給を許可するイネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４を出力する比較手段１６、１７、１８、１９と、を具備している。
【００１３】
更に、比較手段１６、１７、１８、１９の少なくとも１つからイネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４が出力されているときは、クロック信号ＣＬＫを記憶回路群１５に供給し、比較手段１６、１７、１８、１９からイネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４が出力されていないときは、クロック信号ＣＬＫの供給を停止するクロックゲート回路２０と、を具備している。
【００１４】
クロックゲート回路２０の出力端は、クロック配線１１ａ、１２ａ、１３ａ、１４ａを介して、記憶回路１１、１２、１３、１４のクロックピンＣＰに接続されている。
【００１５】
記憶回路１１、１２、１３、１４は、例えば次に入力があるまで、現在の状態を保持するＤ型フリップフロップ（Ｆ／Ｆ）である。  
比較手段１６、１７、１８、１９は、例えば２入力信号の排他的論理和を求める排他的論理和回路（ＸＯＲ回路）である。
【００１６】
比較手段１６は、入力信号Ｆと出力信号Ｊが一致していればイネーブル信号ＥＮ１を“Ｌ”レベルにし、不一致ならばイネーブル信号ＥＮ１を“Ｈ”レベルにする。  
比較手段１６がイネーブル信号ＥＮ１を出力するとは、イネーブル信号ＥＮ１が“Ｌ”レベルから“Ｈ”レベルになることを意味している。比較手段１７、１８、１９についても同様であり、その説明は省略する。
【００１７】
クロックゲート回路２０は、イネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４の論理和を求める論理和回路（ＯＲ回路）２１と、ＯＲ回路２１の出力とクロック信号ＣＬＫとの論理積を求める論理積回路（ＡＮＤ回路）２２とを有している。
【００１８】
クロックゲート回路２０は、イネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４の少なくとも１つが“Ｈ”レベルのときに、クロック信号ＣＬＫを通過させ、記憶回路群１５にクロック信号ＣＬＫを供給する。
【００１９】
クロックゲート回路２０は、イネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４が全て“Ｌ”レベルのときに、クロック信号ＣＬＫの通過を阻止し、記憶回路群１５にクロック信号ＣＬＫの供給を停止する。
【００２０】
記憶回路１１、１２、１３、１４は、クロック信号ＣＬＫが供給されると、入力信号Ｆ、Ｇ、Ｈ、Ｉをそれぞれラッチし、出力信号Ｊ、Ｋ、Ｌ、Ｍをそれぞれ出力する。
【００２１】
図２は電子回路１０の動作を示すタイミングチャートで、Ｔ１からＴ６はクロック信号ＣＬＫのサイクルタイムを示している。  
入力信号は、クロック信号ＣＬＫが“Ｈ”レベルから“Ｌ”レベルになる立下りで、記憶回路にラッチされる。  
入力信号がラッチされると、比較手段はイネーブル信号を“Ｈ”レベルから“Ｌ”レベルにセットする。
【００２２】
図２に示すように、サイクルタイムＴ１〜Ｔ２の間で、入力信号Ｆが“Ｌ”レベルから“Ｈ”レベルになりイネーブル信号ＥＮ１が出力され、その後入力信号Ｇが“Ｈ”レベルから“Ｌ”レベルになりイネーブル信号ＥＮ２が出力され、その後入力信号Ｉが“Ｌ”レベルから“Ｈ”レベルになりネーブル信号ＥＮ４が出力されるとする。
【００２３】
イネーブル信号ＥＮ１が出力された時点ｔ１で、クロックゲート回路２０はゲートを開き、クロック信号ＣＬＫ１を通過させる。  
サイクルタイムＴ２で、記憶回路１１、１２、１３、１４は入力信号Ｆ、Ｇ、Ｈ、Ｉをそれぞれラッチし、出力信号Ｊ、Ｋ、Ｌ、Ｍをそれぞれ出力する。
【００２４】
入力信号がラッチされると、比較手段１６、１７、１９はイネーブル信号ＥＮ１、ＥＮ２、ＥＮ４を“Ｈ”レベルから“Ｌ”レベルにリセットし、クロックゲート回路２０はゲートを閉じて、クロック信号ＣＬＫ２の通過を阻止する。
【００２５】
次に、サイクルタイムＴ３〜Ｔ４の間で、入力信号Ｈが“Ｌ”レベルから“Ｈ”レベルになりイネーブル信号ＥＮ３が出力され、その後入力信号Ｆが“Ｈ”レベルから“Ｌ”レベルになりイネーブル信号ＥＮ１が出力され、その後入力信号Ｇが“Ｌ”レベルから“Ｈ”レベルになりネーブル信号ＥＮ３が出力されるとする。
【００２６】
イネーブル信号ＥＮ３が出力された時点ｔ２で、クロックゲート回路２０はゲートを開き、クロック信号ＣＬＫ３を通過させる。  
サイクルタイムＴ４で、記憶回路１１、１２、１３、１４は入力信号Ｆ、Ｇ、Ｈ、Ｉをそれぞれラッチし、出力信号Ｊ、Ｋ、Ｌ、Ｍをそれぞれ出力する。
【００２７】
入力信号がラッチされると、比較手段１６、１７、１８はイネーブル信号ＥＮ１、ＥＮ２、ＥＮ３を“Ｈ”レベルから“Ｌ”レベルにリセットし、クロックゲート回路２０はゲートを閉じて、クロック信号ＣＬＫ４の通過を阻止する。  
サイクルタイムＴ５〜Ｔ６の間についても同様であり、その説明は省略する。
【００２８】
これにより、５つのサイクル数に対して２つのサイクル数で、記憶回路１１、１２、１３、１４のスイッチング動作が停止していることになる。
【００２９】
その間、クロックゲート回路２０は、記憶回路群１５へクロック信号の供給を停止しているので、クロック配線１１ａ、１２ａ、１３ａ、１４ａの配線容量に起因して消費される電力を削減することが可能である。
【００３０】
従って、記憶回路群１５に属する記憶回路１１、１２、１３、１４は、同時にスイッチングされる確率、即ちイネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４が同時に“Ｌ”レベルになる確率の高い記憶回路同士であることが望ましい。
【００３１】
これは、回路動作の全サイクル数に対して、記憶回路群１５のどの入力信号もスイッチングしないでいるサイクル数の割合が大きいことを意味している。本明細書では、これを「同時非スイッチング確率が高い」と称する。
【００３２】
図３は複数のクロックバッファがツリー状に接続されたクロックツリーを介してクロック信号が分配される複数の記憶回路群を有する電子回路を示す回路図である。  
図３に示すように、電子回路３０は、記憶回路群１５ａ〜１５ｈと、クロックスキューを満たすようにクロック信号ＣＬＫを記憶回路群１５ａ〜１５ｈに分配するクロックツリーク３１とを具備している。
【００３３】
クロックツリー３１は、初段のクロックバッフア３２と、クロックバッフア３２を介してクロック信号ＣＬＫを２分する２段目のクロックバッフア３３ａ、３３ｂと、クロックバッフア３３ａ、３３ｂを介してクロック信号ＣＬＫをそれぞれ２分する３段目のクロックバッフア３４ａ〜３４ｄと、クロックバッフア３４ａ〜３４ｄを介してクロック信号ＣＬＫをそれぞれ２分する最終段のクロックバッフア３５ａ〜３５ｈとを具備している。  
最終段のクロックバッフア３５ａ〜３５ｈを介して、記憶回路群１５ａ〜１５ｈにクロック信号が供給される。
【００３４】
記憶回路群１５ａ〜１５ｈにおいて、上述した同時非スイッチング確率が高い場合は、初段から最終段のクロックバッフア３２、３３ａ、３３ｂ、３４ａ〜３４ｄ、３５ａ〜３５ｈの少なくとも１つを、クロックゲート回路２０に置き換えることができる。
【００３５】
例えば、図４は記憶回路群１５ｃ、１５ｄの同時非スイッチング確率が高く、図３に示す３段目のクロックバッフア３４ｂをクロックゲート回路に置き換えた電子回路を示す回路図である。
【００３６】
図４に示すように、電子回路４０は、３段目のクロックゲート回路４１を具備している。これにより、３段目のクロックゲート回路４１から記憶回路群１５ｃ、１５ｄのクロックピンＣＰまでのクロック配線の配線容量に起因する消費電力、およびクロックバッファ３５ｃ、３５ｄの消費電力が低減可能である。
【００３７】
図５は記憶回路群１５ａ〜１５ｄの同時非スイッチング確率が高く、図３に示す２段目のクロックバッフア３３ａをクロックゲート回路に置き換えた電子回路を示す回路図である。
【００３８】
図５に示すように、電子回路５０は、２段目のクロックゲート回路５１を具備している。これにより、２段目のクロックゲート回路５１から記憶回路群１５ａ〜１５ｄのクロックピンＣＰまでのクロック配線の配線容量に起因する消費電力、および、クロックバッファ３４a〜３４ｂ、３５a〜３５ｄの消費電力が低減可能である。
【００３９】
図６は記憶回路群１５ａ〜１５ｄの同時非スイッチング確率が高く、図３に示す２段目のクロックバッフア３３ａ、３段目のクロックバッフア３４ａ、３４ｂ、最終段のクロックバッフア３５ａ〜３５ｄをクロックゲート回路に置き換えた電子回路を示す回路図である。
【００４０】
図６に示すように、電子回路６０は、２段目のクロックバッフア６１と、３段目のクロックバッフア６２ａ、６２ｂと、最終段のクロックバッフア６３ａ〜６３ｄを具備している。  
これにより、記憶回路群１５ａ〜１５ｄの同時非スイッチング確率が種々変化した場合でも、いずれかの段のクロックゲート回路から記憶回路群のクロックピンＣＰまでのクロック配線の配線容量に起因する消費電力、および、前記クロックゲート回路より下流のクロックバッファの消費電力が低減されるので、同時非スイッチング確率に応じて、消費電力をきめ細かく低減することが可能である。
【００４１】
なお、図３において、クロックバッファがクロックゲート回路に置き換えられなかった記憶回路群においては、記憶回路を入力と出力の論理値が異なるときにクロック信号を記憶回路へ伝播させるＣＣＫ−Ｆ／Ｆ（Conditional Clocking Flip Flop）を用いることも場合によっては可能である（図７）。
【００４２】
要約すると、図１で例示される本実施例が効果的である条件は、（１）記憶回路１１〜１４への入力信号Ｆ、Ｇ、Ｈ、Ｉのタイミングに十分な余裕があること、（２）クロック信号ＣＬＫのゲーティング確率が高いこと、（３）クロックゲート回路２０から記憶回路１１〜１４までのクロック配線１１ａ、１２ａ、１３ａ、１４ａの配線容量が大きいこと等があげられる。
【００４３】
ここで、（１）のタイミングとは、入力信号Ｆ、Ｇ、Ｈ、Ｉが比較手段１６〜１９を介してクロックゲート回路２０に入力され、クロックゲート回路２０が開いてクロック信号ＣＬＫが記憶回路１１〜１４のクロックピンＣＰへ至るまでの時間を考慮したタイミングを意味している。
【００４４】
(２)は、イネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４が、同時に“Ｌ”レベルになる確率が高いということである。即ち、電子回路１０の動作の全サイクル数に対して、記憶回路群１５のいずれの入力信号も変化しないサイクル数の割合が大きい場合で、同時非スイッチング確率が高いほど、クロック信号ＣＬＫがゲーティングされる確率が高くなり、消費電力が低減できる。
【００４５】
（３）の配線容量が大きいほど、クロック配線１１ａ、１２ａ、１３ａ、１４ａの配線容量の充放電に費やされる電力が大きいので、クロック信号ＣＬＫをゲーティングすることによる消費電力の低減効果が大きい。
【００４６】
クロック信号ＣＬＫをゲーティングするのはクロックツリーの最終段のクロックバッファに限らず、クロックツリーのより上流に配置されたクロックバッファでも良い。図３に示す破線円で囲まれたクロックバッフアが、本実施例によるゲーティング可能な箇所である。
【００４７】
どの段階でクロック信号ＣＬＫをゲーティングすれば良いかは、各ゲーティング可能箇所をクロックゲート回路で置き換え、且つ記憶回路のイネーブル信号を生成する比較手段を加えた場合の消費電力を比較して決める。
【００４８】
例えば、以下のような場合が考えられる。１．本実施例もＣＣＫ−Ｆ／Ｆも適用せず、素のＦ／Ｆを用いた場合、２．ＣＣＫ−Ｆ／Ｆを適用した場合（図７）、３．本実施例を最終段のクロックバッファに適用した場合（図１）、本実施例を最終から２段目のクロックバッファに適用した場合（図４）、本実施例を最終から３段目のクロックバッファに適用した場合（図５）、あるいは上記の複合で、本実施例を最終から１、２、３段目のクロックバッファに適用した場合（図６）などである。
【００４９】
以上説明したように、本実施例の電子回路１０は、記憶回路群１５に属する記憶回路１１、１２、１３、１４のいずれか１つが、イネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４を出力しているときは、クロック信号ＣＬＫを記憶回路群１５に供給し、イネーブル信号ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４が出力されていないときは、記憶回路群１５へクロック信号ＣＬＫの供給を停止している。
【００５０】
その結果、非同時スイッチング確率が高いほど、クロック供給系の消費電力を低減することができる。従って、消費電力の少ない電子回路およびその構成方法が得られる。
【００５１】
ここでは、記憶回路群１５が、４つの記憶回路１１、１２、１３、１４を有する場合について説明したが、記憶回路の数には何ら制限はない。
【００５２】
クロックゲート回路２０がＯＲ回路２１と、ＡＮＤ回路２２とを有する場合について説明したが、論理演算結果が同じであれば良いので、別の論理演算回路を用いても構わない。
【実施例２】
【００５３】
本発明の実施例２に係る電子回路について、図８および図９を用いて説明する。図８は電子回路を示す回路図、図９は電子回路の動作を示すタイミングチャートである。  
本実施例において、上記実施例１と同一の構成部分には同一符号を付してその部分の説明は省略し、異なる部分について説明する。  
本実施例が実施例１と異なる点は、記憶回路群に属する第１の記憶回路に接続された第１の比較手段が、第１のイネーブル信号を出力するときに、記憶回路群に属する第２の記憶回路に接続された第２の比較手段が、第２のイネーブル信号を出力する場合に、いずれかの比較手段を省略したことにある。
【００５４】
即ち、図８に示すように、本実施例の電子回路８０は、記憶回路１１の入力端Ｄと記憶回路１２の入力端Ｄとを接続するインバータ８１を具備し、記憶回路１２の入力端Ｄと出力端Ｑを接続する比較手段１７を省略している。
【００５５】
イネーブル信号ＥＮ２が“Ｈ”レベルならば、常にイネーブル信号ＥＮ１が“Ｈ”レベルという関係が成り立つ場合に、イネーブル信号ＥＮ２を省略することが可能である。  
換言すると、入力信号Ｇがスイッチングする（入力状態が“Ｌ”レベルから“Ｈ”レベル又は“Ｈ”レベルから“Ｌ”レベルに変化する）とき、常に入力信号Ｆもスイッチングする場合である。
【００５６】
入力信号Ｇと入力信号Ｆとの関係を論理式で表すと、次式が真ということである。  
【数１】
2009100235.tif 000003
【００５７】
ここで、Ｆ（ｔ）はクロックサイクルｔにおけるＦの論理値、Ｆ（ｔ＋１）はクロックサイクルｔ＋１におけるＦの論理値を示している。Ｇについても同様である。また、“―”は論理否定、“∧”は論理積、“∨”は論理和を示している。  
式１が、すべてのｔについて真である場合に、イネーブル信号ＥＮ２を省略することが可能である。
【００５８】
式１における、“⇒”を展開すると、次式が得られる。  
【数２】
2009100235.tif 000004
【００５９】
電子回路８０においては、入力信号Ｇと入力信号Ｆとの関係が“Ｇ＝ＮＯＴ（Ｆ）”なので、式２が恒真式となり、イネーブル信号ＥＮ２が省略される。
【００６０】
式１および式２は、必ずしも論理的な恒真式である必要は無く、命令セット等のアーキテクチャ的な仕様から定まる、回路に入力する可能性のある全ての信号について真であればよい。
【００６１】
図９は電子回路８０の動作を示すタイミングチャートである。図９に示すように、イネーブル信号ＥＮ２を省略しても、図２に示すタイミングチャートと同じ動作結果が得られている。
【００６２】
以上説明したように、本実施例の電子回路８０は、イネーブル信号ＥＮ２が“Ｈ”レベルならば、常にイネーブル信号ＥＮ１が“Ｈ”レベルという関係が成り立つ記憶回路１１および記憶回路１２に対して、イネーブル信号ＥＮ２を省略している。
【００６３】
その結果、省略したイネーブル信号に関する消費電力を削減することができる。更に、省略したイネーブル信号ＥＮ２に接続する記憶回路１２の入力信号Ｇのセットアップ時間を短縮することができる。即ち、イネーブル信号ＥＮ２からクロックゲート回路２０までの伝達時間分だけセットアップ時間を短縮することができる。
【００６４】
ここでは、イネーブル信号ＥＮ２を省略する場合について説明したが、イネーブル信号ＥＮ１を省略しても構わない。
【００６５】
イネーブル信号ＥＮ２が“Ｈ”レベルならば、常にイネーブル信号ＥＮ１である場合について説明したが、常にイネーブル信号ＥＮ３およびイネーブル信号ＥＮ４のいずれが“Ｈ”レベルの関係にあっても構わない。
【００６６】
即ち、ある記憶回路のイネーブル信号を省略できる条件は、その記憶回路の入力信号がスイッチングする際には、同一のゲーティング信号によって駆動される記憶回路群に属する別の記憶回路が、必ずスイッチングするということである。但し、その記憶回路は常に同じものである必要は無い。
【実施例３】
【００６７】
本発明の実施例３に係る電子回路の構成方法について、図１０および図１１を用いて説明する。図１０は電子回路の構成方法を示すフローチャート、図１１は電子回路のレイアウトを示す図である。
【００６８】
本実施例は、電子回路のクロックツリーをトップダウンクロックツリーシンセシス（ＣＴＳ）により構成する場合の例で、記憶回路のグルーピングを下記のように行う。  
（１）同時非スイッチング確率の高い記憶回路（Ｆ／Ｆ）同士をグルーピングする。その際、通常のクロックツリーシンセシスで要求される判断基準であるクロックスキューや、上記グルーピングにより生じる入力信号のタイミング制約の変化などを考慮する。得られたグループに対して実施例１に示す方法を適用する。  
（２）グルーピングした後に、実施例２に示す方法に従って、冗長な回路を省略する。
【００６９】
始めに、図１０に示すように、例えば予め配置情報および入力信号情報が記憶されている記憶装置から、記憶回路の配置情報および記憶回路の入力信号情報を入手し、カウンタＮを１に初期化する（ステップＳ０１）。
【００７０】
次に、第Ｎ階層目の最初の記憶回路の集合Ｓを取得する（ステップＳ０２）。  
ここで、「第Ｎ階層」とは、クロックツリーの階層中、初段（Ｎ＝１）から数えてＮ段目のあるクロックバッファを介してクロック信号ＣＬＫが供給される記憶回路の集合を意味している。
【００７１】
例えば、図１１（ａ）に示すように、電子回路９０の記憶回路Ｆ／Ｆ１〜Ｆ／Ｆ８は、第１階層目（初段）のクロックバッファ（図示せず）を介してクロック信号ＣＬＫが供給されるので、第１階層目の最初の記憶回路の集合Ｓに相当する。
【００７２】
次に、記憶回路の集合Ｓの分割方法をリストアップする（ステップＳ０３）。  
ここで、Ｆ／Ｆ集合Ｓの分割方法をリストアップする際には、クロックスキューや面積、配線長などを考慮して、許容範囲内の全ての分割方法をリストアップすることを意味する。
【００７３】
例えば、図１１（ａ）は、記憶回路の集合Ｓ０（Ｆ／Ｆ１〜Ｆ／Ｆ８）を集合Ｓ１（Ｆ／Ｆ１、Ｆ／Ｆ２、Ｆ／Ｆ３、Ｆ／Ｆ４）と、集合Ｓ２（Ｆ／Ｆ５、Ｆ／Ｆ６、Ｆ／Ｆ７、Ｆ／Ｆ８）の２つに分割する場合を示している。  
図１１（ｂ）は、記憶回路の集合Ｓ０（Ｆ／Ｆ１〜Ｆ／Ｆ６）を集合Ｓ３（Ｆ／Ｆ１、Ｆ／Ｆ２、Ｆ／Ｆ５、Ｆ／Ｆ６）と、集合Ｓ４（Ｆ／Ｆ３、Ｆ／Ｆ４、Ｆ／Ｆ７、Ｆ／Ｆ８）の２つに分割する場合を示している。
【００７４】
次に、同時非スイッチング確率が高い分割方法を選択する（ステップＳ０４）。  
例えば、図１１（ａ）の集合Ｓ１の同時非スイッチング確率Ｐｓ１が、図１０（ｂ）の集合Ｓ３、Ｓ４の同時非スイッチング確率Ｐｓ３、Ｐｓ４より大きい場合は、集合Ｓ１、Ｓ２の分割方法を選択する。
【００７５】
次に、選択した記憶回路の集合Ｓを分割する。分割後の各集合は第Ｎ＋１階層目の記憶回路の集合となる（ステップＳ０５）。  
具体的には、選択した分割方法に従い、図１１（ａ）に示す記憶回路の集合Ｓ０（Ｆ／Ｆ１〜Ｆ／Ｆ８）を集合Ｓ１（Ｆ／Ｆ１、Ｆ／Ｆ２、Ｆ／Ｆ３、Ｆ／Ｆ４）と、集合Ｓ２（Ｆ／Ｆ５、Ｆ／Ｆ６、Ｆ／Ｆ７、Ｆ／Ｆ８）の２つに分割する。  
集合Ｓ１は第２階層目の第１の記憶回路の集合、集合Ｓ２は第２階層目の第２の記憶回路の集合に相当する。
【００７６】
次に、記憶回路の集合Ｓは第Ｎ階層目の最後の記憶回路の集合か否かを判定し、最後の記憶回路の集合である場合（ステップＳ０６のＹｅｓ）、次のステップＳ０８へいき、最後の記憶回路の集合でない場合（ステップＳ０６のＮｏ）、次の記憶回路の集合Ｓを取得し（ステップＳ０７）、ステップＳ０３へ戻る。  
具体的には、集合Ｓ０は、第１階層目の最後の記憶回路の集合なので、次のステップＳ０８へいく。
【００７７】
次に、第Ｎ階層目の全ての記憶回路の集合が、ただ１つの記憶回路よりなるか否かを判定し、１つの場合（ステップＳ０８のＹｅｓ）、次のステップＳ１０へいき、１つでない場合（ステップＳ０８のＮｏ）、カウンタＮを１インクリメントして（ステップＳ０９）、ステップＳ０２に戻る。  
具体的には、第１階層目の集合Ｓ０は８つの記憶回路を有しているので、ステップＳ０９にいき、Ｎ＝２として、ステップＳ０２へ戻る。
【００７８】
次に、ステップＳ０２からステップＳ０８を繰り返す。  
例えば、図１１（ｃ）は、第２階層目の記憶回路の集合Ｓ１（Ｆ／Ｆ１、Ｆ／Ｆ２、Ｆ／Ｆ３、Ｆ／Ｆ４）を、集合Ｓ５（Ｆ／Ｆ１、Ｆ／Ｆ２）と、集合Ｓ６（Ｆ／Ｆ３、Ｆ／Ｆ４）の２つに分割する場合を示している。  
図１１（ｄ）は、第２階層目の記憶回路の集合Ｓ１（Ｆ／Ｆ１、Ｆ／Ｆ２、Ｆ／Ｆ３、Ｆ／Ｆ４）を、集合Ｓ７（Ｆ／Ｆ１、Ｆ／Ｆ４）と、集合Ｓ８（Ｆ／Ｆ２、Ｆ／Ｆ４）の２つに分割する場合を示している。
【００７９】
次に、図１１（ｃ）の集合Ｓ６の同時非スイッチング確率Ｐｓ６が、図１１（ｄ）の集合Ｓ７、Ｓ８の同時非スイッチング確率Ｐｓ７、Ｐｓ８より大きい場合は、集合Ｓ５、Ｓ６の分割方法を選択する。
【００８０】
次に、選択した分割方法に従い、図１１（ｃ）に示す記憶回路の集合Ｓ１（Ｆ／Ｆ１〜Ｆ／Ｆ４）を集合Ｓ５（Ｆ／Ｆ１、Ｆ／Ｆ２）と、集合Ｓ６（Ｆ／Ｆ３、Ｆ／Ｆ４）の２つに分割する。  
集合Ｓ５は第３階層目の第１の記憶回路の集合、集合Ｓ６は第３階層目の第２の記憶回路の集合に相当する。
【００８１】
次に、集合Ｓ１は第２階層目の最後の集合ではないので、ステップＳ０７にいき、次の集合Ｓ２（Ｆ／Ｆ５、Ｆ／Ｆ６、Ｆ／Ｆ７、Ｆ／Ｆ８）を取得し、ステップＳ０３からステップＳ０６を繰り返す。
【００８２】
次に、集合Ｓ２は第２階層目の最後の集合なので、ステップ０８にいく。第２階層目の全ての集合Ｓ５、Ｓ６が２つの記憶回路を有しているので、ステップＳ０９にいき、Ｎ＝３として、ステップＳ０２へ戻る。  
次に、集合Ｓ５、Ｓ６を分割するとただ１つの記憶回路になるので、ステップＳ０２〜ステップＳ０８を素通りして、ステップＳ１０にいく。
【００８３】
次に、全ての階層の全ての記憶回路の集合に対して、実施例１を適用した場合の効果を見積もり、効果が認められればそれを適用する（ステップＳ１０）。  
具体的には、第１の階層の記憶回路の集合Ｓ０、第２の階層の記憶回路の集合Ｓ１、Ｓ２、第３の階層の記憶回路の集合Ｓ５、Ｓ６、Ｓ９、Ｓ１０に対して、記憶回路群に属する記憶回路の少なくとも１つの入力状態が変わる時にクロック信号を記憶回路群に供給する場合に、記憶回路群およびクロックツリーで消費される第１消費電力と、記憶回路群に属する記憶回路の状態が変わる時にクロック信号を記憶回路に供給する場合に、記憶回路群およびクロックツリーで消費される第２消費電力を求める。
【００８４】
第１消費電力が第２消費電力より小さい場合に、記憶回路群（記憶回路の集合）に属する記憶回路の入力端と出力端に、入力状態が記憶結果と異なったときに、記憶回路にクロック信号の供給を許可するイネーブル信号を出力する比較手段を接続する。
【００８５】
比較手段の少なくとも１つがイネーブル信号を出力したときは、クロック信号を記憶回路群に供給し、比較手段が前記イネーブル信号を出力していないときは、クロック信号の供給を停止するクロックゲート回路を、クロックツリーのバッファとして配置する。
【００８６】
第１消費電力が第２消費電力より大きい場合は、実施例１を適用しても消費電力を低減する効果が得られないので、記憶回路群に属する記憶回路を、図７に示すＣＣＫ−Ｆ／Ｆとし、個別に記憶回路の消費電力の低減を図ることができる。
【００８７】
具体的には、例えば、以下の手続きを行う。本実施例で求めた記憶回路の分割に基づいて構成されるクロックツリー上の全クロックバッファの集合をＡとする。集合Ａのあらゆる分割ＢおよびＣに対して、Ｂに実施例１を適用し、Ｃに実施例１を適用しないと仮定した場合の全消費電力を求め、もっとも消費電力の少ない分割Ｂ、ＣをそれぞれＢ０、Ｃ０とする。
【００８８】
Ｂ０に属するクロックバッファに実施例１を適用し、Ｃ０に属するクロックバッファには実施例１を適用しない。ただし、上記の各分割Ｂ、Ｃを評価する過程において、Ｂに属する少なくとも１つのクロックバッファに対し、実施例１の適用によりタイミング制約を満たすことが出来なくなる場合、上記分割Ｂ、Ｃは消費電力を評価する以前に棄却される。
【００８９】
次に、実施例２が適用できるか否かを判定し、適用できる場合は、それを適用する（ステップＳ１１）。
【００９０】
次に、得られた電子回路の構成を外部に出力し（ステップＳ１２）、プログラムを終了する。  
これにより、図１１（ｅ）に示すように、クロックバッファ９１がツリー状に接続された３階層のクロックツリー９２を有し、１階層目のクロックバッファ９１に集合Ｓ５、Ｓ６、Ｓ９、Ｓ１０が接続され、集合Ｓ６に接続された３階層目のクロックバッファがクロックゲート回路９３に置き換えられた電子回路９０が構成される。
【００９１】
以上説明したように、本実施例の電子回路の構成方法は、同時非スイッチング確率の高い記憶回路同士をトップダウン方式でグルーピングし、記憶回路を複数有する記憶回路群を生成している。  
その結果、同時非スイッチング確率の高い記憶回路群に上述した実施例１および実施例２を適用し、記憶回路群およびクロックツリーで消費される電力を低減することができる。従って、消費電力の少ない電子回路の構成方法が得られる。
【実施例４】
【００９２】
本発明の実施例４に係る電子回路の構成方法について、図１２および図１３を用いて説明する。図１２は電子回路の構成方法を示すフローチャート、図１３は電子回路のレイアウトを示す図である。
【００９３】
上記実施例３と同一の構成部分には同一符号を付してその部分の説明は省略し、異なる部分について説明する。  
本実施例が実施例３と異なる点は、電子回路のクロックツリーをボトムアップクロックツリーシンセシス（ＣＴＳ）により構成したことにある。
【００９４】
即ち、図１２に示すように、ステップＳ０１を実行した後に、第Ｎ階層目のＦ／Ｆ集合はただ１つか否かを判定する（ステップＳ２１）。  
ここで、第Ｎ階層とは、クロックツリーの最終段から初段に向かって定義され、最終段が第１階層に相当する。実施例３の定義とは反対である。
【００９５】
ここでは、Ｆ／Ｆ集合は８つあるので（ステップＳ２１のＮｏ）、第Ｎ階層目のＦ／Ｆ集合の結合方法をリストアップする（ステップＳ２２）。  
Ｆ／Ｆ集合Ｓの結合方法をリストアップする際には、クロックスキューや面積、配線長を考慮して、許容範囲内の全ての結合方法をリストアップすることを意味している。
【００９６】
例えば、図１３（ａ）は、電子回路９０の記憶回路Ｆ／Ｆ１〜Ｆ／Ｆ８を、第１階層目の記憶回路の集合として、（Ｆ／Ｆ１、Ｆ／Ｆ２）を結合する集合Ｓ１、（Ｆ／Ｆ３、Ｆ／Ｆ４）を結合する集合Ｓ２、（Ｆ／Ｆ５、Ｆ／Ｆ６）を結合する集合Ｓ３、（Ｆ／Ｆ７、Ｆ／Ｆ８）を結合する集合Ｓ４の４つに結合する場合を示している。  
図１３（ｂ）は、（Ｆ／Ｆ１、Ｆ／Ｆ４）を結合する集合Ｓ５、（Ｆ／Ｆ２、Ｆ／Ｆ３）を結合する集合Ｓ６、集合Ｓ３、集合Ｓ４の４つに結合する場合を示している。
【００９７】
次に、非同時スイッチング確率の高い結合方法を選択する（ステップＳ２３）。  
例えば、図１３（ａ）の集合Ｓ２の同時非スイッチング確率Ｐｓ２が、図１３（ｂ）の集合Ｓ５、Ｓ６の同時非スイッチング確率Ｐｓ５、Ｐｓ６より大きい場合は、記憶回路Ｆ／Ｆ１〜Ｆ／Ｆ４の結合方法として、集合Ｓ５、Ｓ６による結合方法ではなく、集合Ｓ１、Ｓ２による結合方法を選択する。
【００９８】
次に、選択した記憶回路を結合する。結合後の各集合は第Ｎ＋１階層目の記憶回路の集合となる（ステップＳ２４）。  
具体的には、選択した分割方法に従い、図１３（ａ）に示す記憶回路Ｆ／Ｆ１〜Ｆ／Ｆ８を集合Ｓ１（Ｆ／Ｆ１、Ｆ／Ｆ２）、集合Ｓ２（Ｆ／Ｆ３、Ｆ／Ｆ４）、集合Ｓ３（Ｆ／Ｆ５、Ｆ／Ｆ６）、集合Ｓ４（Ｆ／Ｆ７、Ｆ／Ｆ８）の４つに統合する。
【００９９】
集合Ｓ１は第２階層目の第１の記憶回路の集合、集合Ｓ２は第２階層目の第２の記憶回路の集合、集合Ｓ３は第２階層目の第３の記憶回路の集合、集合Ｓ４は第２階層目の第４の記憶回路の集合に相当する。
【０１００】
次に、ステップＳ０９を実行し、ステップＳ２１〜ステップ２４を繰り返す。  
第２階層目の集合Ｓ１、Ｓ２、Ｓ３、Ｓ４は４つあるので、例えば図１３（ｃ）は集合Ｓ１、Ｓ２を結合する集合Ｓ７、集合Ｓ３、Ｓ４を結合する集合Ｓ８の２つに結合する場合を示している。  
図１３（ｄ）は、集合Ｓ１、Ｓ３を結合する集合Ｓ９、集合Ｓ２、Ｓ４を結合する集合Ｓ１０の２つに結合する場合を示している。
【０１０１】
次に、非同時スイッチング確率の高い結合方法を選択する。例えば、図１３（ｃ）の集合Ｓ７の同時非スイッチング確率Ｐｓ７が、図１３（ｄ）の集合Ｓ９、Ｓ１０の同時非スイッチング確率Ｐｓ９、Ｐｓ１０より大きい場合は、集合Ｓ７、Ｓ８の結合方法を選択する。
【０１０２】
次に、選択した結合方法に従い、図１３（ａ）に示す集合Ｓ１、集合Ｓ２を集合Ｓ７に結合し、集合Ｓ３、集合Ｓ４を集合Ｓ８に結合する。  
集合Ｓ７は第３階層目の第１の記憶回路の集合、Ｓ８は第３階層目の第２の記憶回路の集合に相当する。
【０１０３】
次に、第４階層目のＦ／Ｆ集合は、ただ１つになるので（ステップ２１のＹｅｓ）、ステップＳ１０〜ステップＳ１２を実行する。  
これにより、図１３（ｅ）に示すように、図１１（ｅ）と同じ電子回路９０が構成される。
【０１０４】
以上説明したように、本実施例の電子回路の構成方法は、同時非スイッチング確率の高い記憶回路同士をボトムアップ方式でグルーピングしているので、グルーピングをきめ細かく行うことができる利点があり、比較的規模の小さい電子回路を構成する場合などに適している。
【図面の簡単な説明】
【０１０５】
【図１】本発明の実施例１に係る電子回路を示す回路図。
【図２】本発明の実施例１に係る電子回路の動作を示すタイミングチャート。
【図３】本発明の実施例１に係る別の電子回路を示す回路図。
【図４】本発明の実施例１に係る別の電子回路を示す回路図。
【図５】本発明の実施例１に係る別の電子回路を示す回路図。
【図６】本発明の実施例１に係る別の電子回路を示す回路図。
【図７】従来のＣＣＫ−Ｆ／Ｆを示す回路図。
【図８】本発明の実施例２に係る電子回路を示す回路図。
【図９】本発明の実施例２に係る電子回路の動作を示すタイミングチャート。
【図１０】本発明の実施例３に係る電子回路の構成方法を示すフローチャート。
【図１１】本発明の実施例３に係る電子回路のレイアウトを示す図。
【図１２】本発明の実施例４に係る電子回路の構成方法を示すフローチャート。
【図１３】本発明の実施例４に係る電子回路のレイアウトを示す図。
【符号の説明】
【０１０６】
１０、３０、４０、５０、６０、８０、９０  電子回路
１１、１２、１３、１４  記憶回路（Ｄ型フリップフロップ）
１１ａ、１２ａ、１３ａ、１４ａ  クロック配線
１５、１５ａ〜１５ｈ  記憶回路群
１６、１７、１８、１９  比較手段（ＸＯＲ回路）
２０、９３  クロックゲート回路
２１  ＯＲ回路
２２  ＡＮＤ回路
３１、９２  クロックツリー
３２  初段クロックバッファ
３３ａ、３３ｂ  ２段目クロックバッファ
３４ａ〜３４ｄ  ３段目クロックバッファ
３５ａ〜３５ｈ  最終段クロックバッファ
４１、６２ａ、６２ｂ  ３段目クロックゲート回路
５１、６１  ２段目クロックゲート回路
６３ａ〜６３ｄ  最終段クロックゲート回路
８１  インバータ
９１  クロックバッフア
ＥＮ１、ＥＮ２、ＥＮ３、ＥＮ４  イネーブル信号
Ｆ、Ｇ、Ｈ、Ｉ  入力信号（入力状態）
Ｊ、Ｋ、Ｌ、Ｍ  出力信号（記憶結果）
【図１】
2009100235.tif 000005
【図２】
2009100235.tif 000006
【図３】
2009100235.tif 000007
【図４】
2009100235.tif 000008
【図５】
2009100235.tif 000009
【図６】
2009100235.tif 000010
【図７】
2009100235.tif 000011
【図８】
2009100235.tif 000012
【図９】
2009100235.tif 000013
【図１０】
2009100235.tif 000014
【図１１】
2009100235.tif 000015
【図１２】
2009100235.tif 000016
【図１３】
2009100235.tif 000017