(57)【要約】【課題】  カウント値のビット数が多い場合でも、クロックからカウント値の各ビットの変化までの遅延時間が少なく、かつ、消費電力が低減されたカウンタを提供する。【解決手段】  下位桁カウンタ１と上位桁カウンタ２との間には、クロックゲーティング制御回路３が介挿されている。下位桁カウンタ１は、リプルカウンタであり、クロックＣＬＫのアップカウントを行う。クロックゲーティング制御回路３は、下位桁カウンタ１のカウント値が「７」となって桁上げを行うべきとき、次のクロックＣＬＫを通過させ、クロックＣＬＫａとして上位桁カウンタ２へ供給する。上位桁カウンタ２は、同期カウンタであり、このようにして供給されるクロックＣＬＫａのアップカウントを行う。【選択図】図１
2008109563.tif 000002
【特許請求の範囲】
【請求項１】
クロックをカウントする初段のカウンタと、前段のカウンタにおける桁上げまたは桁下げの発生に応じて前記クロックをカウントする２段目以降のカウンタからなる複数のカウンタを有し、
前記複数のカウンタにおける２段目以降のカウンタに、当該カウンタの前段のカウンタにおける桁上げまたは桁下げの発生時に当該カウンタにクロックを通過させるクロックゲーティング制御回路を接続してなることを特徴とするカウンタ。
【請求項２】
前記複数のカウンタにおける初段のカウンタがリプルカウンタであることを特徴とする請求項１に記載のカウンタ。
【請求項３】
前記複数のカウンタにおける初段のカウンタを除くカウンタの中に同期カウンタが含まれることを特徴とする請求項１または２に記載のカウンタ。
【請求項４】
前記複数のカウンタの全てが同期カウンタであることを特徴とする請求項１に記載のカウンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パルスの計数、計時、タイミング制御等に用いられるカウンタに関する。
【背景技術】
【０００２】
カウンタの形態として、同期カウンタとリプルカウンタがある。周知の通り、同期カウンタは、カウント値を表現する複数のビットを記憶する複数のフリップフロップを備え、同一のクロックに同期して各フリップフロップに記憶された各ビットの更新が行われるように構成されたカウンタである。一方、リプルカウンタは、初段のフリップフロップに記憶された最下位ビットのみがクロックにより直接更新され、２段目以降の各フリップフロップに記憶された各ビットは、各々の前段のフリップフロップに記憶されたビットをクロックとして更新が行われるように構成されたカウンタである。
【特許文献１】特表２００３−５１９９５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上述した同期カウンタは、クロックから各ビットの変化タイミングまでの遅延時間が短く、かつ、ビット間の遅延時間のばらつきが少ない。従って、同期カウンタを利用するデジタル回路全体の最大クロック周波数を高くすることが可能であり、かつ、同デジタル回路のタイミング設計が容易になるという利点を有する。その一方、同期カウンタは、クロックがカウンタ内の全てのフリップフロップに与えられるため、クロックと同一の周波数でスイッチング動作するトランジスタ数が多く、消費電力が大きくなるという問題がある。一方、リプルカウンタは、各ビットを記憶する各フリップフロップに対し、各々のビットの反転を行うべきときに限ってクロック（下位ビットの反転）が与えられる構成となっているため、消費電力が少ないという利点を有する。しかし、リプルカウンタは、各フリップフロップへのクロックの供給経路にその前段の全てのフリップフロップが介在しているため、上位ビットになる程、クロックの変化からの遅延時間が長くなる。このため、カウント値を表現するビット数が多い場合には、リプルカウンタを利用するデジタル回路全体の最大クロック周波数を高くするのが困難になり、かつ、同デジタル回路のタイミング設計も困難なものになるという問題がある。
【０００４】
この発明は、以上説明した事情に鑑みてなされたものであり、カウント値を表現するビット数が多い場合であっても、クロックからカウント値を示す各ビットの変化までの遅延時間が少なく、かつ、消費電力が低減されたカウンタを提供することを目的としている。
【課題を解決するための手段】
【０００５】
この発明は、クロックをカウントする初段のカウンタと、前段のカウンタにおける桁上げまたは桁下げの発生に応じて前記クロックをカウントする２段目以降のカウンタからなる複数のカウンタを有し、前記複数のカウンタにおける２段目以降のカウンタに、当該カウンタの前段のカウンタにおける桁上げまたは桁下げの発生時に当該カウンタにクロックを通過させるクロックゲーティング制御回路を接続してなることを特徴とするカウンタを提供する。
かかる発明によれば、２段目以降のカウンタには、前段に桁上げまたは桁下げがあって、各々のカウント値の更新が必要なときに限ってクロックが供給されるため、消費電力が低減される。また、２段目以降の各カウンタへのクロックの供給経路にはクロックゲーティング制御回路のみが介在し、他のカウンタは介在していないので、クロックから各カウンタの出力信号の変化タイミングまでの遅延時間を短くすることができる。
【発明を実施するための最良の形態】
【０００６】
以下、図面を参照し、この発明の実施の形態を説明する。
＜第１実施形態＞
図１はこの発明の第１実施形態であるカウンタの構成を示す回路図である。図示の例において、本実施形態によるカウンタは、ある半導体集積回路に搭載され、６ビット表現のカウント値のアップカウントを行う６ビットアップカウンタである。この６ビットアップカウンタは、カウント値を示す６ビットのうち下位３ビットのアップカウントを行う下位桁カウンタ１と、上位３ビットのアップカウントを行う上位桁カウンタ２と、下位桁カウンタ１および上位桁カウンタ２間に介挿されたクロックゲーティング制御回路３とにより構成されている。
【０００７】
本実施形態において、初段のカウンタである下位桁カウンタ１は、クロックＣＬＫをカウントするリプルカウンタであり、カウント値の下位３ビットを記憶するフリップフロップ１１〜１３と、インバータ１４〜１６と、セレクタ１７および１８と、ＡＮＤゲート１９とにより構成されている。
【０００８】
ここで、フリップフロップ１１〜１３は、各々のローアクティブデータ出力端子の出力信号がインバータ１４〜１６により反転されて、各々のローアクティブデータ入力端子に供給されるようになっており、各々、クロック端子に与えられるクロックが立ち上がる都度、各々の出力信号のレベルを反転させるトグル動作を行う。そして、インバータ１４〜１６の各出力信号は、６ビット表現のカウント値の下位３ビットを示す出力信号Ｑ０〜Ｑ２として、カウント値を利用する回路（図示略）に供給される。
【０００９】
下位桁カウンタ１のフリップフロップ１１のクロック入力端子には、図示しないクロック発生源からクロックＣＬＫが直接与えられる。一方、フリップフロップ１２および１３の各クロック入力端子には、セレクタ１７および１８の各出力端子が接続されており、これらのセレクタ１７および１８により選択された各信号が供給される。
【００１０】
セレクタ１７および１８には、テスト信号ＴＥＳＴが選択信号として与えられる。テスト信号ＴＥＳＴは、本実施形態によるカウンタが搭載された半導体集積回路の機能確認試験や故障試験時に機能確認を容易に行うためにレベル切り換えのなされる信号であり、機能確認試験や故障試験以外のときにはＬレベルに固定される。セレクタ１７および１８は、テスト信号ＴＥＳＴがＬレベルのときはフリップフロップ１１および１２の各ローアクティブデータ出力端子の各出力信号を選択し、テスト信号ＴＥＳＴがＨレベルのときはＡＮＤゲート１９の出力信号を選択する。このＡＮＤゲート１９は、テスト信号ＴＥＳＴとクロックＣＬＫとの論理積を出力する。このＡＮＤゲート１９は、テスト信号ＴＥＳＴがＬレベルのとき（機能確認試験や故障試験以外のとき）に、クロックＣＬＫがセレクタ１７および１８へ伝わるのを阻止して、低消費電力化を行うために設けられたものである。
【００１１】
２段目のカウンタである上位桁カウンタ２は、前段のカウンタである下位桁カウンタ１における桁上げの発生に応じてクロックＣＬＫのカウントを行う同期カウンタであり、カウント値の上位３ビットを記憶する３ビットレジスタ２１と、この３ビットレジスタ２１から出力される３ビットのデータに「＋１」（００１Ｂ）を加算して３ビットレジスタ２１に供給する３ビット全加算器２２とにより構成される。ここで、３ビットレジスタ２１には、下位桁カウンタ１における桁上げの発生時に、クロックゲーティング制御回路３からクロックＣＬＫａが与えられる。上位桁カウンタ２では、このクロックＣＬＫａの立ち上がりにより、その時点における３ビット全加算器２２の出力データ（すなわち、３ビットレジスタ２１の出力データに「＋１」を加算したデータ）が３ビットレジスタ２１に書き込まれ、カウント値のインクリメントが行われる。そして、３ビットレジスタ２１における３ビットの出力信号が、本実施形態による６ビットカウンタの上位３ビットの出力信号Ｑ３〜Ｑ５として、カウント値を利用する回路（図示略）に供給される。
【００１２】
クロックゲーティング制御回路３は、下位桁カウンタ１における桁上げの発生時に限り、クロックＣＬＫを通過させ、クロックＣＬＫａとして上位桁カウンタ２の３ビットレジスタ２１に供給する回路である。このクロックゲーティング制御回路３は、ローアクティブＡＮＤゲート３１と、ラッチ３２と、ＡＮＤゲート３３とにより構成されている。ここで、ローアクティブＡＮＤゲート３１は、フリップフロップ１１〜１３のローアクティブデータ出力端子の各出力信号が全てＬレベルであり、下位桁カウンタ１のカウント値が「７」となり、次のクロックＣＬＫの立ち上がりにおいて下位桁カウンタ１から上位桁カウンタ２への桁上げを行うべきとき、イネーブル信号ＥＮ１をＨレベルとする。ラッチ３２は、クロックＣＬＫがＬレベルのときイネーブル信号ＥＮ１をイネーブル信号ＥＮ２として通過させ（スルー状態）、クロックＣＬＫがＨレベルになったときその直前におけるイネーブル信号ＥＮ２を保持する（保持状態）。ＡＮＤゲート３３は、イネーブル信号ＥＮ２がＨレベルの期間のみクロックＣＬＫをクロックＣＬＫａとして通過させ、イネーブル信号ＥＮ２がＬレベルの期間はＬレベルの信号を出力する。
以上が本実施形態によるカウンタの構成の詳細である。
【００１３】
次に本実施形態の動作を説明する。図２は本実施形態においてテスト信号ＴＥＳＴがＬレベルである場合のカウンタの各部の波形を示すタイムチャートである。テスト信号ＴＥＳＴがＬレベルである場合、ＡＮＤゲート１９の出力信号はＬレベルとなる。また、セレクタ１７はフリップフロップ１１のローアクティブデータ出力端子の出力信号を選択してフリップフロップ１２のクロック入力端子に供給し、セレクタ１８はフリップフロップ１２のローアクティブデータ出力端子の出力信号を選択してフリップフロップ１３のクロック入力端子に供給する。このため、フリップフロップ１１がクロックＣＬＫの立ち上がりによりトグル動作すると、フリップフロップ１２は、このフリップフロップ１１のローアクティブデータ出力端子の出力信号が立ち上がるのに応じてトグル動作する。そして、フリップフロップ１３は、このフリップフロップ１２のローアクティブデータ出力端子の出力信号が立ち上がるのに応じてトグル動作する。このように、テスト信号ＴＥＳＴがＬレベルである場合、フリップフロップ１１〜１３はリプルカウンタとして動作する。このため、下位桁カウンタ１の出力信号Ｑ０〜Ｑ２が示すカウント値は、クロックＣＬＫの立ち上がりに応じて、「０」、「１」、「２」、…、「７」、「０」、…という具合に変化し、「０」〜「７」の範囲のカウント値を繰り返す。
【００１４】
クロックゲーティング制御回路３におけるローアクティブＡＮＤゲート３１は、この下位桁カウンタ１のカウント値が「７」、すなわち、フリップフロップ１１〜１３のローアクティブデータ出力端子の各出力信号が全てＬレベルである期間、イネーブル信号ＥＮ１をＨレベルとし、それ以外の期間はイネーブル信号ＥＮ１をＬレベルする。
【００１５】
そして、下位桁カウンタ１のカウント値が「７」となってイネーブル信号ＥＮ１がＬレベルからＨレベルになり、その後、クロックＣＬＫがＬレベルになると、ラッチ３２は、このＨレベルのイネーブル信号ＥＮ１を通過させ、イネーブル信号ＥＮ２としてＡＮＤゲート３３に与える。その後、クロックＣＬＫが立ち上がって下位桁カウンタ１のカウント値が「７」から「０」に変化すると、同クロックＣＬＫの立ち上がりからその後の立ち下がりまでの期間、ラッチ３２はＨレベルのイネーブル信号ＥＮ２を保持する。このため、下位桁カウンタ１のカウント値を「７」から「０」に変化させたクロックＣＬＫは、ＡＮＤゲート３３を通過し、クロックＣＬＫａとして上位桁カウンタ２の３ビットレジスタ２１に供給され、上位桁カウンタ２のカウント値（出力信号Ｑ３〜Ｑ５が示すカウント値）のアップカウントが行われる。
【００１６】
図３は本実施形態においてテスト信号ＴＥＳＴがＨレベルである場合（機能確認試験や故障試験の場合）のカウンタの各部の波形を示すタイムチャートである。この場合、ＡＮＤゲート１９は、クロックＣＬＫを通過させる。また、セレクタ１７および１８はＡＮＤゲート１９を通過するクロックＣＬＫを選択してフリップフロップ１２および１３のクロック入力端子に各々供給する。このため、クロックＣＬＫが立ち上がる度にフリップフロップ１１〜１３がトグル動作して出力信号Ｑ０〜Ｑ２のレベル反転が発生し、下位桁カウンタ１のカウント値は「０」と「７」を交互に繰り返す。また、テスト信号ＴＥＳＴがＬレベルである場合と同様、下位桁カウンタ１のカウント値が「７」から「０」に変化するとき、このカウント値を「７」から「０」に変化させたクロックＣＬＫが、クロックゲーティング制御回路３を介し、クロックＣＬＫａとして上位桁カウンタ２の３ビットレジスタ２１に供給され、上位桁カウンタ２のカウント値（出力信号Ｑ３〜Ｑ５が示すカウント値）のアップカウントが行われる。これにより出力信号Ｑ０〜Ｑ５の各出力先の回路が動作し、その機能確認が可能になる。
【００１７】
以上のように、本実施形態においては、下位桁カウンタ１のカウント値が「７」となり、下位桁カウンタ１から上位桁カウンタ２への桁上げを行うべきときに限り、クロックゲーティング制御回路３を介してクロックＣＬＫａが上位桁カウンタ２に供給される。従って、上位桁カウンタ２に無駄なスイッチング動作を行わせず、消費電力を低く抑えることができる。また、本実施形態においては、高い周波数のクロックが与えられる下位桁カウンタ１をリプルカウンタとしたため、下位桁カウンタ１の消費電力を減らし、これにより６ビットアップカウンタ全体としての消費電力を減らすことができる。また、本実施形態においては、上位桁カウンタ２へのクロックＣＬＫの供給経路にはクロックゲーティング制御回路３のみが介在し、下位桁カウンタ１は介在していない。従って、クロックＣＬＫから上位桁カウンタ２の各出力信号の変化タイミングまでの遅延時間を短くすることができる。また、本実施形態によれば、低い周波数のクロックが与えられる上位桁カウンタ２を同期カウンタとしたため、６ビットアップカウンタ全体としての消費電力を極力減らしつつ、クロックＣＬＫの立ち上がりからの各出力信号Ｑ３〜Ｑ５の変化タイミングまでの各遅延時間のばらつきを少なくし、かつ、それらの遅延時間の最大値を低く抑えることができる。
【００１８】
＜第２実施形態＞
図４はこの発明の第２実施形態であるカウンタの構成を示す回路図である。上記第１実施形態は、本発明をアップカウンタに適用したものであったが、本実施形態は、本発明をダウンカウンタに適用したものである。
【００１９】
上記第１実施形態における下位桁カウンタ１では、フリップフロップ１１および１２のローアクティブデータ出力端子の各出力信号がセレクタ１７および１８に供給されたが、本実施形態における下位桁カウンタ１Ａでは、フリップフロップ１１および１２のハイアクティブデータ出力端子の各出力信号がセレクタ１７および１８に供給されるようになっており、下位桁カウンタ１Ａは３ビットダウンカウンタとして動作する。
【００２０】
また、上記第１実施形態における上位桁カウンタ２では、３ビット全加算器２２が３ビットレジスタ２１の出力データに「＋１」を加算したが、本実施形態における上位桁カウンタ２Ａでは、３ビット全加算器２２が３ビットレジスタ２１の出力データに「−１」を加算するようになっており、上位桁カウンタ２Ａは３ビットダウンカウンタとして動作する。
【００２１】
また、本実施形態におけるクロックゲーティング制御回路３において、ローアクティブＡＮＤゲート３１は、フリップフロップ１１〜１３のハイアクティブデータ出力端子の出力信号が全てＬレベルであるとき、すなわち、カウント値が「０」であり、次のクロックＣＬＫの立ち上がりにおいて桁下げを行うべきときイネーブル信号ＥＮ１をＨレベルとする。そして、本実施形態におけるクロックゲーティング制御回路３は、桁下げの発生時にクロックＣＬＫを通過させ、クロックＣＬＫａとして上位桁カウンタ２Ａに供給する。
本実施形態においても上記第１実施形態と同様な効果が得られる。
【００２２】
＜第３実施形態＞
図５はこの発明の第３実施形態であるカウンタの構成を示す回路図である。上記第１および第２実施形態では、下位桁カウンタおよび上位桁カウンタという２個のカウンタにより１個のカウンタを構成したが、本実施形態では、３個のカウンタにより１個のカウンタを構成する。
【００２３】
図５に示すように、本実施形態によるカウンタは、３ビットのカウンタ１０１〜１０３と、カウンタ１０１および１０２間に介挿されたクロックゲーティング制御回路１１１と、カウンタ１０２および１０３間に介挿されたクロックゲーティング制御回路１１２とにより構成されている。
【００２４】
カウンタ１０１〜１０３は、全てがアップカウンタであってもよいし、全てがダウンカウンタであってもよい。また、カウンタ１０１〜１０３の各々は、リプルカウンタであってもよいし、同期カウンタであってもよい。
【００２５】
初段のカウンタ１０１には、クロックＣＬＫが直接与えられる。カウンタ１０１は、クロックＣＬＫに応じて、「０」〜「７」の範囲のアップカウントまたはダウンカウントを繰り返す。
【００２６】
クロックゲーティング制御回路１１１は、アップカウントの場合にはカウンタ１０１のカウント値が「７」になって桁上げをするべきとき、ダウンカウントの場合にはカウンタ１０１のカウント値が「０」となって桁下げをするべきとき、その直後に立ち上がるクロックＣＬＫを通過させ、クロックＣＬＫａとしてカウンタ１０２に供給する。これによりカウンタ１０２では、アップカウント（桁上げ）またはダウンカウント（桁下げ）が行われる。
【００２７】
また、クロックゲーティング制御回路１１２は、アップカウントの場合にはカウンタ１０１のカウント値が「７」となり、かつ、カウンタ１０２のカウント値が「７」となって桁上げをするべきとき、ダウンカウントの場合にはカウンタ１０１のカウント値が「０」となり、かつ、カウンタ１０２のカウント値が「０」となって桁下げをするべきとき、その直後に立ち上がるクロックＣＬＫを通過させ、クロックＣＬＫｂとしてカウンタ１０３に供給する。これによりカウンタ１０３では、アップカウント（桁上げ）またはダウンカウント（桁下げ）が行われる。
【００２８】
以上のように、本実施形態によれば、上位桁のカウントを行うカウンタ１０２および１０３には、カウント値の更新が必要な場合のみクロックが供給され、それ以外の場合に不要なクロックは供給されない。従って、消費電力を低減することができる。また、本実施形態の場合、カウンタ１０２へのクロックＣＬＫの供給経路にはクロックゲーティング制御回路１１１が介在しているのみであり、カウンタ１０３へのクロックＣＬＫの供給経路にはクロックゲーティング制御回路１１２が介在しているのみであり、下位桁のカウンタは介在していない。従って、カウント値を表現するビット数（図５の例の場合は９ビット）が多い場合であっても、上位桁のカウントを行うカウンタ１０２および１０３の各出力信号のクロックＣＬＫからの遅延時間を短くすることができる。
【００２９】
＜他の実施形態＞
以上、この発明の第１〜第３実施形態について説明したが、この発明には他にも実施形態があり得る。
【００３０】
（１）例えば上記第１および第２実施形態では、６ビットのカウンタを２個の３ビットのカウンタに分割し、３ビットのカウンタ間にクロックゲーティング制御回路を介挿したが、１個のカウンタを何個のカウンタに分割するか、あるいは、何ビットのカウンタに分割するかは、許容される消費電力、半導体集積回路においてカウンタに許される占有面積等に応じて決定すればよい。
【００３１】
（２）消費電力を低くするためには、１個のカウンタを分割した各カウンタのうち、最も周波数の高いクロックが与えられる初段のカウンタは、リプルカウンタであることが望ましい。しかし、初段のカウンタをリプルカウンタにすると、初段のカウンタの出力信号（特に初段のカウンタのカウント値の最上位ビット）のクロックからの遅延時間が長くなる。しかしながら、本発明によれば、クロックゲーティング制御回路が働くことにより、第２段以降のカウンタに供給されるクロックの周波数を低くし、２段目以降のカウンタの消費電力を低減する効果が得られる。従って、この２段目以降のカウンタの消費電力の低減効果だけで充分な場合には、初段のカウンタを同期カウンタとし、初段のカウンタの各ビットの遅延時間の短縮化を図ってもよい。また、１個のカウンタを分割した各カウンタの全てを同期カウンタとしてもよい。
【００３２】
（３）上記各実施形態では、複数の２進カウンタを用いて１個のカウンタを構成したが、「０」〜「９」の範囲のカウント値を繰り返す複数のＢＣＤ（Binary Coded Decimal；２進化１０進）カウンタを用い、各ＢＣＤカウンタ間にクロックゲーティング制御回路を介挿してもよい。
【図面の簡単な説明】
【００３３】
【図１】この発明の第１実施形態であるカウンタの構成を示すブロック図である。
【図２】同実施形態においてテスト信号ＴＥＳＴがＬレベルである場合のカウンタの各部の波形を示すタイムチャートである。
【図３】同実施形態においてテスト信号ＴＥＳＴがＨレベルである場合のカウンタの各部の波形を示すタイムチャートである。
【図４】この発明の第２実施形態であるカウンタの構成を示す回路図である。
【図５】この発明の第３実施形態であるカウンタの構成を示す回路図である。
【符号の説明】
【００３４】
１，１Ａ……下位桁カウンタ、２，２Ａ……上位桁カウンタ、３，１１１，１１２……クロックゲーティング制御回路、１０１〜１０３……カウンタ、１１〜１３……フリップフロップ、１４〜１６……インバータ、１７，１８……セレクタ、１９，３３……ＡＮＤゲート、３１……ローアクティブＡＮＤゲート、３２……ラッチ、２１……３ビットレジスタ、２２……３ビット全加算器。
【図１】
2008109563.tif 000003
【図２】
2008109563.tif 000004
【図３】
2008109563.tif 000005
【図４】
2008109563.tif 000006
【図５】
2008109563.tif 000007