(57)【要約】【課題】  消費電力を低減することができるカウンタ回路とそれを使用する半導体装置を提供することである。【解決手段】  カウンタは、クロック信号をカウントする複数段のフリップフロップを有するカウンタ部（Ｆ０〜Ｆ２、Ｇ１からＧ４）と、前記複数段のフリップフロップのうち１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップまでの出力を用いてＮ段のフリップフロップへの前記クロック信号の供給を制御するマスク回路部（Ｆ１００、Ｇ５）とを具備する。【選択図】  図３
2006197367.tif 000002
【特許請求の範囲】
【請求項１】
複数段のフリップフロップを有するカウンタ部と、前記複数段のフリップフロップのうち１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップは、クロック信号を同期的にカウントし、
前記１段のフリップフロップから前記（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップまでの出力を用いてＮ段のフリップフロップへの前記クロック信号の供給を制御するマスク回路部と
を具備するカウンタ回路。
【請求項２】
請求項１に記載のカウンタ回路において、
前記マスク回路部は、
前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力に基づいて許可信号を生成する許可信号生成部と、
前記許可信号に基づいて前記クロック信号の前記Ｎ段のフリップフロップへの供給を許可する許可部と
を具備するカウンタ回路。
【請求項３】
請求項２に記載のカウンタ回路において、
前記許可信号生成部は、前記クロック信号に同期して動作し、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力の論理積を受け、出力端子から前記許可信号を出力するマスク・フリップフロップを具備し、
前記許可部は、前記許可信号と前記クロック信号との論理積を前記Ｎ段のフリップフロップのクロック信号端子に供給するアンド回路を具備する
カウンタ回路。
【請求項４】
請求項２又は３に記載のカウンタ回路において、
前記許可信号生成部は、前記クロック信号の前記Ｎ段のフリップフロップへの供給が許可されるタイミングより、前記クロック信号の半周期前に前記許可信号を生成するカウンタ回路。
【請求項５】
請求項４に記載のカウンタ回路において、
前記許可信号生成部は、前記クロック信号を反転するためのインバータ回路を更に具備し、
前記マスク・フリップフロップは、前記インバータ回路により反転された反転クロック信号をクロック信号端子に受ける
カウンタ回路。
【請求項６】
複数段のフリップフロップを有するカウンタ部と、前記複数段のフリップフロップのうち１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップはクロック信号を同期的にカウントし、
前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力に基づいて前記クロック信号から生成される第１クロック信号をＮ段のフリップフロップへ供給する第１マスク回路部と、前記Ｎ段のフリップフロップから（Ｍ−１）（Ｍ＞Ｎの自然数）段のフリップフロップは前記第１クロック信号を同期的にカウントし、
前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップまでの出力に基づいて前記クロック信号から生成される第２クロック信号をＭ段のフリップフロップへ供給する第２マスク回路部と
を具備するカウンタ回路。
【請求項７】
請求項６に記載のカウンタ回路において、
前記第１マスク回路部は、
前記１段から前記（Ｎ−１）段までのフリップフロップの出力に基づいて第１許可信号を生成する第１許可信号生成部と、
前記第１許可信号に基づいて前記クロック信号が前記第１クロック信号として前記Ｎ段のフリップフロップへ供給されることを許可する第１許可部と
を具備し、
前記第２マスク回路部は、
前記１段から前記（Ｍ−１）段までのフリップフロップの出力に基づいて第２許可信号を生成する第２許可信号生成部と、
前記第２許可信号に基づいて前記クロック信号が前記第２クロック信号として前記Ｍ段のフリップフロップへ供給されることを許可する第２許可部と
を具備するカウンタ回路。
【請求項８】
請求項７に記載のカウンタ回路において、
前記第１許可信号生成部は、前記クロック信号に同期して動作し、前記１段から前記（Ｎ−１）段までのフリップフロップの出力の論理積をデータ入力端子に受け、出力端子から前記第１許可信号を出力する第１マスク・フリップフロップを具備し、
前記第１許可部は、前記第１許可信号と前記クロック信号との論理積を前記第１クロック信号として前記Ｎ段のフリップフロップのクロック信号端子に供給する第１アンド回路を具備し、
前記第２許可信号生成部は、前記第１クロック信号に同期して動作し、前記Ｎ段から前記（Ｍ−１）段までのフリップフロップの出力の論理積をデータ入力端子に受け、出力端子から前記第２許可信号を出力する第２マスク・フリップフロップを具備し、
前記第２許可部は、前記第２許可信号と前記クロック信号との論理積を前記第２クロック信号として前記Ｍ段のフリップフロップのクロック信号端子に供給する第２アンド回路を具備する
カウンタ回路。
【請求項９】
請求項７又は８に記載のカウンタ回路において、
前記第１許可信号生成部は、前記クロック信号の前記Ｎ段のフリップフロップへの供給が許可されるタイミングより、前記クロック信号の半周期前に前記第１許可信号を生成し、
前記第２許可信号生成部は、前記クロック信号の前記Ｍ段のフリップフロップへの供給が許可されるタイミングより、前記クロック信号の半周期前に前記第２許可信号を生成するカウンタ回路。
【請求項１０】
請求項９に記載のカウンタ回路において、
前記第１許可信号生成部は、前記クロック信号を反転するための第１インバータ回路を更に具備し、
前記第１マスク・フリップフロップは、前記第１インバータ回路により反転された反転クロック信号をクロック信号端子に受け、
前記第２許可信号生成部は、前記クロック信号を反転するための第２インバータ回路を更に具備し、
前記第２マスク・フリップフロップは、前記第２インバータ回路により反転された反転クロック信号をクロック信号端子に受ける
カウンタ回路。
【請求項１１】
請求項１乃至１０のいずれかに記載のカウンタ回路を具備する半導体装置。
【請求項１２】
１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップによりクロック信号を同期的にカウントする第１カウントステップと、
前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップの出力に基づいて前記クロック信号から第１クロック信号を生成する第１生成ステップと、
Ｎ段のフリップフロップにより前記第１クロック信号をカウントする第２カウントステップと
を具備するクロック信号をカウントする方法。
【請求項１３】
請求項１２に記載のクロック信号をカウントする方法において、
（Ｎ＋１）段のフリップフロップから（Ｍ−１）（Ｍ＞Ｎの自然数）段のフリップフロップにより前記第１クロック信号を同期的にカウントする第３カウントステップと、
前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップの出力に基づいて前記クロック信号から第２クロック信号を生成する第２生成ステップと、
Ｍ段のフリップフロップにより前記第２クロック信号をカウントする第４カウントステップと
を更に具備するにクロック信号をカウントする方法。
【請求項１４】
請求項１２又は１３に記載のクロック信号をカウントする方法において、
前記第１生成ステップは、
前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップの出力に基づいて第１許可信号を生成するステップと、
前記第１許可信号に応答して前記クロック信号から前記第１クロック信号を生成して前記Ｎ段のフリップフロップに供給するステップと
を具備し、
前記第２生成ステップは、
前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップの出力に基づいて第２許可信号を生成するステップと、
前記第２許可信号に応答して前記クロック信号から前記第２クロック信号を生成して前記Ｍ段のフリップフロップに供給するステップと
を具備するクロック信号をカウントする方法。
【請求項１５】
請求項１４に記載のクロック信号をカウントする方法において、
前記第１許可信号を生成するステップは、前記クロック信号が前記Ｎ段のフリップフロップに供給されるべきタイミングより、前記クロック信号の半周期前に前記第１許可信号を生成するステップを具備し、
前記第２許可信号を生成するステップは、前記クロック信号が前記Ｍ段のフリップフロップに供給されるべきタイミングより、前記クロック信号の半周期前に前記第２許可信号を生成するステップを具備する
クロック信号をカウントする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特にカウンタ回路を備えた半導体装置に関する。
【背景技術】
【０００２】
半導体装置は、半導体基板にトランジスタ、抵抗、コンデンサなどの多数の回路素子を形成し、要求される回路動作や機能を果たすように各回路素子間を結線して構成される。カウンタ回路は時計タイマやインターバルタイマを形成する際に使われる回路である。
【０００３】
図１は、従来の３ビット同期式カウンタ回路の構成を示す回路図である。図１を参照して、従来のカウンタ回路は、フリップフロップＦ１０〜Ｆ１２、インバータ回路Ｇ１、排他的論理和（ＥＸＯＲ回路）Ｇ２、アンド回路Ｇ３、ＥＸＯＲ回路Ｇ４とを備えている。
【０００４】
クロック信号ＣＬＫは、フリップフロップＦ１０〜Ｆ１２のクロック入力端子Ｃに接続されている。リセット信号ＲＳＴは、フリップフロップＦ１０〜Ｆ１２のリセット端子Ｒに接続されている。フリップフロップＦ１０の出力Ｑ０は、外部出力端子Ｑ０に接続され、また、インバータ回路Ｇ１を介してフリップフロップＦ１０のデータ入力端子Ｄに接続されている。更に、フリップフロップＦ１０の出力端子Ｑ０は、ＥＸＯＲ回路Ｇ２の一方の入力端子と、アンド回路Ｇ３の一方の入力端子に接続されている。フリップフロップＦ１１の出力端子Ｑ１は、外部出力端子Ｑ１に接続され、また、ＥＸＯＲ回路Ｇ２の他方の入力に接続されている。更に、フリップフロップＦ１１の出力Ｑ１は、アンド回路Ｇ３の他方の入力端子に接続されている。ＥＸＯＲ回路Ｇ２の出力は、フリップフロップＦ１１のデータ入力端子Ｄに接続されている。フリップフロップＦ１２の出力Ｑ２は、外部出力端子Ｑ２に接続され、また、ＥＸＯＲ回路Ｇ４の一方の入力に接続されている。更アンド回路Ｇ３の出力は、ＥＸＯＲ回路Ｇ４の他方の入力端子に接続されている。ＥＸＯＲ回路Ｇ４の出力端子は、フリップフロップＦ１２のデータ入力端子Ｄに接続されている。このように、図１に示される従来の同期式カウンタ回路は、クロック信号ＣＬＫとリセット信号ＲＳＴが共通に供給されるフリップフロップＦ１０〜Ｆ１２と、カウンタの桁上げを行うアンド回路Ｆ３、ＥＸＯＲ回路Ｇ４を備えている。
【０００５】
次に、図１に示される従来の同期式カウンタ回路の動作を図２（ａ）〜（ｄ）を参照して説明する。
【０００６】
先ず、リセット信号ＲＳＴがフリップフロップＦ１０〜Ｆ１２に供給され、図２（ｂ）〜（ｄ）に示されるように、フリップフロップＦ１０〜Ｆ１２の出力Ｑ０〜Ｑ２は”０”となる。フリップフロップＦ１０の出力Ｑ０は、インバータ回路Ｇ１により反転されて”１”がフリップフロップＦ１０のデータ入力端子Ｄに供給されている。フリップフロップＦ１０とＦ１１の出力Ｑ０とＱ１とは共に”０”であり、ＥＸＯＲ回路Ｇ２は”０”をフリップフロップＦ１１のデータ入力端子Ｄに供給している。フリップフロップＦ１０とＦ１１の出力Ｑ０とＱ１は共に”０”であり、従って、アンド回路Ｇ３の出力は”０”である。また、フリップフロップＦ１２の出力Ｑ２は、”０”である。従って、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ１２のデータ入力端子Ｄに”０”を供給している。
【０００７】
この状態で、図２（ａ）に示されるように、フリップフロップＦ１０〜Ｆ１２にクロック信号ＣＬＫの最初のパルスが入力される。この結果、図２（ｂ）〜（ｄ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ１０の出力Ｑ０は、”０”から”１”に変わり、フリップフロップＦ１１とＦ１２の出力Ｑ１とＱ２は、”０”のままである。フリップフロップＦ１０の出力Ｑ０は、インバータ回路Ｇ１により反転されて”０”がフリップフロップＦ１０のデータ入力端子Ｄに供給されている。フリップフロップＦ１０の出力Ｑ０は”１”であり、フリップフロップＦ１１の出力Ｑ１は”０”であり、ＥＸＯＲ回路Ｇ２は”１”をフリップフロップＦ１１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３の出力は”０”であり、フリップフロップＦ１２の出力Ｑ２は、”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ１２のデータ入力端子Ｄに”０”を供給している。
【０００８】
次に、図２（ａ）に示されるように、フリップフロップＦ１０〜Ｆ１２にクロック信号ＣＬＫの２番目のパルスが入力される。この結果、図２（ｂ）〜（ｄ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ１０の出力Ｑ０は、”１”から”０”に変わり、フリップフロップＦ１１の出力Ｑ１は、”０”から”１”に変わり、Ｆ１２の出力Ｑ２は、”０”のままである。フリップフロップＦ１０の出力Ｑ０は、インバータ回路Ｇ１によりが反転されて”１”フリップフロップＦ１０のデータ入力端子Ｄに供給されている。フリップフロップＦ１０の出力Ｑ０は”０”であり、フリップフロップＦ１１の出力Ｑ１は”１”であるので、ＥＸＯＲ回路Ｇ２は”１”をフリップフロップＦ１１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３の出力は”０”であり、フリップフロップＦ１２の出力Ｑ２は、”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ１２のデータ入力端子Ｄに”０”を供給している。
【０００９】
次に、図２（ａ）に示されるように、フリップフロップＦ１０〜Ｆ１２にクロック信号ＣＬＫの３番目のパルスが入力される。この結果、図２（ｂ）〜（ｄ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ１０の出力Ｑ０は、”０”から”１”に変わり、フリップフロップＦ１１の出力Ｑ１は、”１”のままであり、Ｆ１２の出力Ｑ２は、”０”のままである。フリップフロップＦ１０の出力Ｑ０は、インバータ回路Ｇ１により反転されて”０”がフリップフロップＦ１０のデータ入力端子Ｄに供給されている。フリップフロップＦ１０の出力Ｑ０は”１”であり、フリップフロップＦ１１の出力Ｑ１は”１”であるので、ＥＸＯＲ回路Ｇ２は”０”をフリップフロップＦ１１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３の出力は”１”であり、フリップフロップＦ１２の出力Ｑ２は、”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ１２のデータ入力端子Ｄに”１”を供給している。
【００１０】
次に、図２（ａ）に示されるように、フリップフロップＦ１０〜Ｆ１２にクロック信号ＣＬＫの４番目のパルスが入力される。この結果、図２（ｂ）〜（ｄ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ１０の出力Ｑ０は、”１”から”０”に変わり、フリップフロップＦ１１の出力Ｑ１は、”０”に変わり、Ｆ１２の出力Ｑ２は、”０”から”１”に変わる。フリップフロップＦ１０の出力Ｑ０は、インバータ回路Ｇ１により反転されて”１”がフリップフロップＦ１０のデータ入力端子Ｄに供給されている。フリップフロップＦ１０の出力Ｑ０は”０”であり、フリップフロップＦ１１の出力Ｑ１は”０”であるので、ＥＸＯＲ回路Ｇ２は”０”をフリップフロップＦ１１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３の出力は”０”であり、フリップフロップＦ１２の出力Ｑ２は”１”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ１２のデータ入力端子Ｄに”１”を供給している。
【００１１】
以降、クロック信号ＣＬＫのパルスが供給されるごとに、上記と同様の動作が繰り返される。
【００１２】
このようにして、フリップフロップＦ１０は、クロック信号ＣＬＫを２分周し、フリップフロップＦ１１は、クロック信号ＣＬＫを４分周し、フリップフロップＦ１１は、クロック信号ＣＬＫを８分周する。
【００１３】
しかしながら、図１に示されるカウンタ回路では、図２（ａ）〜（ｄ）のタイミングチャートに示されるように、フリップフロップＦ１２には、クロック信号ＣＬＫの４パルスの内、先頭の１パルスが入力されれば十分であるが、残りの３パルスもフリップフロップＦ１２に供給されている。そのため、３クロック分フリップフロップＦ１２が無駄に動作して余分な電力を消費することになる。
【００１４】
また、回路が余分に動作する機会が増加するので、素子そのもののなかで発生するわずかな電流や電圧の揺らぎに起因するノイズが発生する可能性が高くなる。また、電力消費を抑えるのであれば非同期カウンタ回路を用いればよいが、基準クロックに対する遅延が大きく、タイマのような正確なクロック生成が必要な場合や、高速動作で使用する場合には不向きである。
【００１５】
従来のカウンタが特開平１０−３０３７３８号公報に開示されている。この従来例では、計数終了値を示す外部設定値を上位ビット部と下位ビット部に分割し、下位ビット部には第1計数回路が使用され、上位ビット部には回路規模及び消費電力の小さい計数回路が使用される。第1回路部は高周波クロックを計数し、第2回路部は高周波クロックを分周して得られたクロックが供給されている。
【００１６】
【特許文献１】特開平１０−３０３７３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明の目的は、消費電力を低減することができるカウンタ回路とそれを使用する半導体装置を提供することである。
【課題を解決するための手段】
【００１８】
以下に、［発明の実施の形態］で使用する番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と発明の実施の形態の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１９】
本発明の１つの観点では、カウンタ回路は、複数段のフリップフロップを有するカウンタ部（Ｆ０〜Ｆ２、Ｇ１からＧ４）と、マスク回路部（Ｆ１００、Ｇ５）とを具備する。前記複数段のフリップフロップのうち１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップは、クロック信号を同期的にカウントする。マスク回路部は、前記１段のフリップフロップから前記（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップまでの出力を用いてＮ段のフリップフロップへの前記クロック信号の供給を制御する。
【００２０】
前記マスク回路部において、許可信号生成部（Ｆ１００）は、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力に基づいて許可信号を生成する。許可部（Ｇ５）は、前記許可信号に基づいて前記クロック信号の前記Ｎ段のフリップフロップへの供給を許可する。即ち、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力が共に”１”であるとき、許可信号生成部（Ｆ１００）は、許可信号を生成する。
【００２１】
そのために、前記許可信号生成部は、前記クロック信号に同期して動作し、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力の論理積を受け、出力端子から前記許可信号を出力するマスク・フリップフロップ（Ｆ１００）を備えており、前記許可部は、前記許可信号と前記クロック信号との論理積を前記Ｎ段のフリップフロップのクロック信号端子に供給するアンド回路（Ｇ５）を備えている。
【００２２】
この場合、クロック信号との同期を確実にするためには、前記許可信号生成部は、前記クロック信号の前記Ｎ段のフリップフロップへの供給が許可されるタイミングより、前記クロック信号の半周期前に前記許可信号を生成することが望ましい。そのために、前記許可信号生成部は、前記クロック信号を反転するためのインバータ回路（Ｇ６）を更に具備してもよい。前記マスク・フリップフロップは、前記インバータ回路により反転された反転クロック信号をクロック信号端子に受けて動作する。
【００２３】
本発明の他の観点では、カウンタ回路は、複数段のフリップフロップを有するカウンタ部（Ｆ０〜Ｆ２、Ｇ１からＧ４）と、第１マスク回路部（Ｆ１００、Ｇ５）と、第２マスク回路部（Ｆ１００、Ｇ５）とを具備する。前記複数段のフリップフロップのうち１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップはクロック信号を同期的にカウントする。第１マスク回路部は、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力に基づいて前記クロック信号から生成される第１クロック信号をＮ段のフリップフロップへ供給する。前記Ｎ段のフリップフロップから（Ｍ−１）（Ｍ＞Ｎの自然数）段のフリップフロップは前記第１クロック信号を同期的にカウントする。第２マスク回路部は、前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップまでの出力に基づいて前記クロック信号から生成される第２クロック信号をＭ段のフリップフロップへ供給する。
【００２４】
前記第１マスク回路部において、第１許可信号生成部（Ｆ１００）は、前記１段から前記（Ｎ−１）段までのフリップフロップの出力に基づいて第１許可信号を生成する。第１許可部（Ｇ５）は、前記第１許可信号に基づいて前記クロック信号が前記第１クロック信号として前記Ｎ段のフリップフロップへ供給されることを許可する。即ち、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップまでの出力が共に”１”であるとき、第１許可信号生成部（Ｆ１００）は、第１許可信号を生成する。また、前記第２マスク回路部において、第２許可信号生成部（Ｆ１００）は、前記１段から前記（Ｍ−１）段までのフリップフロップの出力に基づいて第２許可信号を生成する。第２許可部（Ｇ５）は、前記第２許可信号に基づいて前記クロック信号が前記第２クロック信号として前記Ｍ段のフリップフロップへ供給されることを許可する。即ち、前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップまでの出力が共に”１”であるとき、第２許可信号生成部（Ｆ１００）は、第２許可信号を生成する。
【００２５】
そのために、前記第１許可信号生成部は、前記クロック信号に同期して動作し、前記１段から前記（Ｎ−１）段までのフリップフロップの出力の論理積をデータ入力端子に受け、出力端子から前記第１許可信号を出力する第１マスク・フリップフロップ（Ｆ１００）を備えており、前記第１許可部は、前記第１許可信号と前記クロック信号との論理積を前記第１クロック信号として前記Ｎ段のフリップフロップのクロック信号端子に供給する第１アンド回路（Ｇ５）を備えている。また、前記第２許可信号生成部は、前記第１クロック信号に同期して動作し、前記Ｎ段から前記（Ｍ−１）段までのフリップフロップの出力の論理積をデータ入力端子に受け、出力端子から前記第２許可信号を出力する第２マスク・フリップフロップ（Ｆ１００）を備えており、前記第２許可部は、前記第２許可信号と前記クロック信号との論理積を前記第２クロック信号として前記Ｍ段のフリップフロップのクロック信号端子に供給する第２アンド回路（Ｇ５）を備えている。
【００２６】
この場合、クロック信号との同期を確実にするためには、前記クロック信号の前記Ｎ段のフリップフロップへの供給が許可されるタイミングより、前記クロック信号の半周期前に前記第１許可信号を生成することが望ましい。そのために、前記第１許可信号生成部は、前記クロック信号を反転するための第１インバータ回路（Ｇ６）を更に具備してもよい。前記第１マスク・フリップフロップは、前記第１インバータ回路により反転された反転クロック信号をクロック信号端子に受けて動作する。また、前記第２許可信号生成部は、前記クロック信号を反転するための第２インバータ回路（Ｇ６）を更に具備してもよい。前記第２マスク・フリップフロップは、前記第２インバータ回路により反転された反転クロック信号をクロック信号端子に受けて動作する。
【００２７】
また、本発明の他の観点では、半導体装置は、上記のカウンタ回路を内蔵する。
【００２８】
また、本発明の他の観点では、にクロック信号をカウントする方法は、１段のフリップフロップから（Ｎ−１）（Ｎは３以上の自然数）段のフリップフロップによりクロック信号を同期的にカウントする第１カウントステップと、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップの出力に基づいて前記クロック信号から第１クロック信号を生成する第１生成ステップと、Ｎ段のフリップフロップにより前記第１クロック信号をカウントする第２カウントステップとにより達成される。更に、（Ｎ＋１）段のフリップフロップから（Ｍ−１）（Ｍ＞Ｎの自然数）段のフリップフロップにより前記第１クロック信号を同期的にカウントする第３カウントステップと、前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップの出力に基づいて前記クロック信号から第２クロック信号を生成する第２生成ステップと、Ｍ段のフリップフロップにより前記第２クロック信号をカウントする第４カウントステップとにより達成されてもよい。
【００２９】
ここで、  前記第１生成ステップは、前記１段のフリップフロップから前記（Ｎ−１）段のフリップフロップの出力に基づいて第１許可信号を生成するステップと、前記第１許可信号に応答して前記クロック信号から前記第１クロック信号を生成して前記Ｎ段のフリップフロップに供給するステップとにより達成されることが好ましい。また、前記第２生成ステップは、前記Ｎ段のフリップフロップから前記（Ｍ−１）段のフリップフロップの出力に基づいて第２許可信号を生成するステップと、前記第２許可信号に応答して前記クロック信号から前記第２クロック信号を生成して前記Ｍ段のフリップフロップに供給するステップとにより達成されることが好ましい。
また、前記第１許可信号を生成するステップは、前記クロック信号が前記Ｎ段のフリップフロップに供給されるべきタイミングより、前記クロック信号の半周期前に前記第１許可信号を生成するステップを具備し、前記第２許可信号を生成するステップは、前記クロック信号が前記Ｍ段のフリップフロップに供給されるべきタイミングより、前記クロック信号の半周期前に前記第２許可信号を生成するステップを具備することが好ましい。
【発明の効果】
【００３０】
上記のように、本発明では、複数段のフリップフロップが上位グループ、下位グループに分けられ、下位グループのフリップフロップの出力から上位グループのフリップフロップへのクロック信号の供給を許可するための許可信号が生成されている。従って、上位グループのフリップフロップへのクロック信号の供給が、下位グループのフリップフロップからの桁上がりのタイミングのみになる。こうして、カウンタ回路の動作回数を減少させ、電力消費およびノイズ発生の可能性を減少させることができる。尚、カウンタ回路は複数の部分に分割され、その部分のうち少なくとも１つにおいて、上記のようにすれば、チップ面積を考慮しながら、消費電力を低減することができる。
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、本発明のカウンタ回路とそれを使用する半導体装置について詳細に説明する。
【００３２】
図３は、本発明の第１実施形態によるカウンタの回路構成を示す回路図である。図３を参照して、本発明のカウンタ回路は、３ビットのカウンタであり、カウンタ部とマスク回路部とを有している。カウンタ部は、フリップフロップＦ０〜Ｆ２、インバータ回路Ｇ１、排他的論理和（ＥＸＯＲ回路）Ｇ２、アンド回路Ｇ３、ＥＸＯＲ回路Ｇ４を備えている。マスク回路部は、許可信号生成部と許可部とを有する。許可信号生成部は、インバータ回路Ｇ６、フリップフロップＦ１００とを備え、許可部はＥＸＯＲ回路Ｇ５を備えている。
【００３３】
クロック信号ＣＬＫは、フリップフロップＦ０〜Ｆ１のクロック端子Ｃに接続され、またアンド回路Ｇ５を介してフリップフロップＦ２のクロック端子Ｃに、インバータ回路Ｇ６を介してフリップフロップＦ１００のクロック端子に接続されている。リセット信号ＲＳＴは、フリップフロップＦ０〜Ｆ２、Ｆ１００のリセット端子Ｒに接続されている。フリップフロップＦ０の出力Ｑ０は、外部出力端子Ｑ０に接続され、また、インバータ回路Ｇ１を介してフリップフロップＦ０のデータ入力端子Ｄに接続されている。更に、フリップフロップＦ０の出力端子Ｑ０は、ＥＸＯＲ回路Ｇ２の一方の入力端子と、アンド回路Ｇ３の一方の入力端子に接続されている。フリップフロップＦ１の出力Ｑ１は、外部出力端子Ｑ１に接続され、また、ＥＸＯＲ回路Ｇ２の他方の入力に接続されている。更に、フリップフロップＦ１の出力Ｑ１は、アンド回路Ｇ３の他方の入力端子に接続されている。ＥＸＯＲ回路Ｇ２の出力は、フリップフロップＦ１のデータ入力端子Ｄに接続されている。アンド回路Ｇ３の出力は、フリップフロップＦ１００のデータ入力端子Ｄに接続されている。フリップフロップＦ１００の出力Ｑは、許可信号としてアンド回路Ｇ５の一方の入力に接続されている。フリップフロップＦ２の出力Ｑ２は、外部出力端子Ｑ２に接続され、また、ＥＸＯＲ回路Ｇ４の一方の入力に接続されている。更アンド回路Ｇ３の出力は、ＥＸＯＲ回路Ｇ４の他方の入力端子に接続されている。ＥＸＯＲ回路Ｇ４の出力端子は、フリップフロップＦ２のデータ入力端子Ｄに接続されている。クロック信号ＣＬＫは、アンド回路Ｇ５の他方の入力に接続されている。アンド回路Ｇ５の出力はフリップフロップＦ３のクロック入力端子に接続されている。アンド回路Ｇ５の出力は、フリップフロップＦ２のクロック端子に接続されている。
【００３４】
次に、図３に示される従来のカウンタ回路の動作を図４（ａ）〜（ｇ）を参照して説明する。
【００３５】
先ず、リセット信号ＲＳＴがフリップフロップＦ０〜Ｆ１に供給され、図４（ｂ）〜（ｇ）に示されるように、フリップフロップＦ０〜Ｆ２、Ｆ１００の出力Ｑ０〜Ｑ２、Ｑは”０”となる。フリップフロップＦ０の出力Ｑ０は、インバータ回路Ｇ１により反転されて”１”がフリップフロップＦ０のデータ入力端子Ｄに供給されている。フリップフロップＦ０とＦ１の出力Ｑ０とＱ１とは共に”０”であり、ＥＸＯＲ回路Ｇ２は”０”をフリップフロップＦ１のデータ入力端子Ｄに供給している。アンド回路Ｇ３の出力は”０”であり、”０”がフリップフロップＦ１００のデータ入力端子とＥＸＯＲ回路Ｇ４の一方の入力に供給されている。フリップフロップＦ１００の出力Ｑは”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ２のデータ入力端子Ｄに”０”を供給している。また、フリップフロップＦ１００の出力は”０”であるので、フリップフロップＦ１００の出力はマスク信号（不許可信号）をアンド回路Ｇ５に出力する。従って、アンド回路Ｇ５は、クロック信号が供給されても、フリップフロップＦ１００のクロック信号端子にクロック信号を供給しない。
【００３６】
この状態で、図４（ａ）に示されるように、フリップフロップＦ０〜Ｆ２に向けてクロック信号ＣＬＫの最初のパルスが供給される。この結果、図４（ｂ）〜（ｇ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ０の出力Ｑ０は、”０”から”１”に変わり、フリップフロップＦ１の出力Ｑ１は、”０”のままである。フリップフロップＦ２はクロック信号が供給されないので、フリップフロップＦ２の出力Ｑは”０”のままである。フリップフロップＦ１００の出力は”０”のままである。この結果、フリップフロップＦ０の出力Ｑ０は、インバータ回路Ｇ１により反転されて、”０”がフリップフロップＦ０のデータ入力端子Ｄに供給されている。フリップフロップＦ０の出力Ｑ０は”１”であり、フリップフロップＦ１の出力Ｑ１は”０”であるので、ＥＸＯＲ回路Ｇ２は”１”をフリップフロップＦ１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３の出力は”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ２のデータ入力端子Ｄに”０”を供給している。また、フリップフロップＦ１００の出力Ｑは”０”であり、フリップフロップＦ１００の出力はマスク信号（不許可信号）をアンド回路Ｇ５に出力する。従って、アンド回路Ｇ５は、クロック信号が供給されても、フリップフロップＦ２のクロック信号端子にクロック信号を供給しない。
【００３７】
この状態で、図４（ａ）に示されるように、フリップフロップＦ０〜Ｆ２、Ｆ１００に向けてクロック信号ＣＬＫの２番目のパルスが供給される。この結果、図４（ｂ）〜（ｇ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ０の出力Ｑ０は、”１”から”０”に変わり、フリップフロップＦ１の出力Ｑ１は、”０”から”１”に変わる。フリップフロップＦ２の出力Ｑ２は、クロック信号が供給されないので、”０”のままであり、フリップフロップＦ１００の出力Ｑは”０”である。フリップフロップＦ０の出力Ｑ０は、インバータ回路Ｇ１により反転されて、”１”がフリップフロップＦ０のデータ入力端子Ｄに供給されている。フリップフロップＦ０の出力Ｑ０は”０”であり、フリップフロップＦ１の出力Ｑ１は”１”であるので、ＥＸＯＲ回路Ｇ２は”１”をフリップフロップＦ１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３は”０”をフリップフロップＦ１００のデータ入力端子とＥＸＯＲ回路Ｇ４の一方の入力端子に供給している。フリップフロップＦ２の出力Ｑ２は、”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ２のデータ入力端子Ｄに”０”を供給している。また、フリップフロップＦ１００の出力Ｑは”０”であり、フリップフロップＦ１００の出力はマスク信号（不許可信号）をアンド回路Ｇ５に出力する。従って、アンド回路Ｇ５は、クロック信号が供給されても、フリップフロップＦ２のクロック信号端子にクロック信号を供給しない。
【００３８】
この状態で、図４（ａ）に示されるように、フリップフロップＦ０〜Ｆ２、Ｆ１００に向けてクロック信号ＣＬＫの３番目のパルスが供給される。この結果、図４（ｂ）〜（ｇ）に示されるように、クロック信号ＣＬＫの３番目のパルスの立ち上がりに応答して、フリップフロップＦ０の出力Ｑ０は、”０”から”１”に変わり、フリップフロップＦ１の出力Ｑ１は、”１”のままである。フリップフロップＦ２の出力Ｑ２は、クロック信号が供給されないので、”０”のままである。フリップフロップＦ０の出力Ｑ０は、インバータ回路Ｇ１により反転されて、”０”がフリップフロップＦ０のデータ入力端子Ｄに供給されている。フリップフロップＦ０の出力Ｑ０は”１”であり、フリップフロップＦ１の出力Ｑ１は”１”であるので、ＥＸＯＲ回路Ｇ２は”０”であり、”０”がフリップフロップＦ１のデータ入力端子Ｄに供給されている。また、アンド回路Ｇ３の出力も”１”となる。フリップフロップＦ２の出力Ｑ２は、”０”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ２のデータ入力端子Ｄに”１”を供給している。
【００３９】
フリップフロップＦ０とＦ１の出力は、クロック信号の３番目のパルスの立ち上がりエッジに同期して既に出力状態が変化している。そのため、クロック信号の３番目のパルスの立下りエッジの前には、アンド回路Ｇ３の出力は既に”１”になっている。フリップフロップＦ１００には、インバータ回路Ｇ６を介してクロック信号が供給されている。フリップフロップＦ１００は、３番目のパルスの立下りエッジに同期してアンド回路Ｇ３の出力をラッチして”１”を出力する。こうして、フリップフロップＦ１００はマスク信号（許可信号）をアンド回路Ｇ５に出力する。従って、アンド回路Ｇ５は、クロック信号が供給されたとき、フリップフロップＦ２のクロック信号端子へのクロック信号の供給を許可する。
【００４０】
次に、図４（ａ）に示されるように、フリップフロップＦ０〜Ｆ２にクロック信号ＣＬＫの４番目のパルスが入力される。この結果、図２（ｂ）〜（ｄ）に示されるように、クロック信号ＣＬＫに応答して、フリップフロップＦ０の出力Ｑ０は、”１”から”０”に変わり、フリップフロップＦ１の出力Ｑ１は、”１”から”０”に変わわる。また、フリップフロップＦ２の出力Ｑ２は、”０”から”１”に変わる。フリップフロップＦ０の出力Ｑ０は、インバータ回路Ｇ１により反転されて、”１”がフリップフロップＦ０のデータ入力端子Ｄに接続されている。フリップフロップＦ０の出力Ｑ０は”０”であり、フリップフロップＦ１の出力Ｑ１は”０”であるので、ＥＸＯＲ回路Ｇ２は”０”をフリップフロップＦ１のデータ入力端子Ｄに供給している。また、アンド回路Ｇ３の出力は”０”となる。フリップフロップＦ２の出力Ｑ２は、”１”であるので、ＥＸＯＲ回路Ｇ４は、フリップフロップＦ２のデータ入力端子Ｄに”１”を供給している。
【００４１】
フリップフロップＦ０とＦ１の出力は、クロック信号の４番目のパルスの立ち上がりエッジに同期して既に出力状態が変化している。そのため、クロック信号の４番目のパルスの立下りエッジの前には、アンド回路Ｇ３の出力は既に”０”になっている。フリップフロップＦ１００には、インバータ回路Ｇ６を介してクロック信号が供給されている。フリップフロップＦ１００は、４番目のパルスの立下りエッジに同期してアンド回路Ｇ３の出力をラッチして”０”を出力する。こうして、フリップフロップＦ１００はマスク信号（不許可信号）をアンド回路Ｇ５に出力する。従って、アンド回路Ｇ５は、クロック信号が供給されたとき、フリップフロップＦ２のクロック信号端子へのクロック信号の供給を禁止する。
【００４２】
以降同様の動作が繰り返される。
【００４３】
図３に示される本発明のカウンタ回路では、図１に示されるカウンタ回路が上位ビット部と下位ビット部に分けられ、上位ビットに対してマスク回路部が追加されている。マスク回路部は、下位ビット部から上位ビット部への桁上がりのタイミングを合わせるため、下位ビット部の全てのデータの論理積に基づいて許可信号を生成している。
【００４４】
図３に示される回路構成を採用することにより、カウンタ回路内のフリップフロップの動作回数を減少させたること可能である。まず下位ビット部のフリップフロップの出力Ｑ０とＱ１のアンド出力を生成する。次にタイミングを合わせるため、下位ビット部のアンド出力が、クロック信号ＣＬＫの反転信号に同期してフリップフロップＦ１００によりラッチされ、マスク信号（許可／不許可信号）が出力され、アンド回路Ｇ５によりクロック信号のフリップフロップＦ２のクロック入力端子への供給を許可し、あるいは禁止している。このことにより、クロック信号ＣＬＫに対し下位ビット部の桁上がり時に立ち上がるクロック信号のパルスのみ有効となるクロック信号が生成され、これが上位ビット部のクロック信号ＣＬＫとして使用される。これにより、上位ビット部のカウンタ回路の動作回数を減少させることができる。これを式として表すと、Ｎビット部カウンタがフルカウントするのに必要な回数は、分割しない場合、２Ｎ×Ｎ回なのに対し、本発明のように分割が行われた場合は２Ｎ×Ａ＋２（Ｎ−Ａ）×Ｂ回（Ｎ＝Ａ＋Ｂ）と表される。例えば８ビット部のカウンタでフル（＝ＦＦｈ）までカウントする場合、分割しないと２８×８＝２０４８回のフリップフロップの動作が必要である。一方、カウンタが分割されている場合、上位ビット部には下位ビット部からの桁上がりの場合のみクロックが伝播するようにすれば、２８×２＋２６×６＝８９６回のフリップフロップの動作だけで済む。この回数の差の分だけフリップフロップが動作しなくなるので、消費電力を抑えることができる。
【００４５】
このように、上記方法を用いることで、上位ビット部にクロックが入力される機会を減らすことになり、その結果上位ビット部のフリップフロップの動作回数を減少させることができる。フリップフロップの動作回数が減少すれば、電力消費を抑えることができる。また、回路内の素子が動作しないため、ノイズが発生する可能性を減らすことができる。
【００４６】
また、カウンタ回路に図３に示される複数のマスク回路部が設けられてもよい。各マスク回路部は、１段目のフリップフロップから該当フリップフロップの直前の段のフリップフロップまでの出力が”１”になったとき、該当フリップフロップに供給されるクロック信号を有効とすればよい。
【００４７】
第１実施形態によるカウンタは３ビット（フリップフロップＦ０〜Ｆ２に対応）の場合である。しかしながら、ビット部数が増えるほどフルにカウントするまでの動作回数は増加する。この場合、以下に説明される第２実施形態による回路構成とすることができる。この例を図３を参照して説明する。カウンタは６ビットであり、フリップフロップＦ０〜Ｆ５を使用するものとする。ビット１からビット２までのフリップフロップＦ０からＦ２は、図３に示される構成と同様になる。リセット信号は、フリップフロップＦ０〜Ｆ５に供給される。ビット３と４までのフリップフロップＦ３、Ｆ４の各々では、その出力Ｑ３又はＱ４と前段のフリップフロップの出力の排他的論理和がデータ入力として供給される。即ち、フリップフロップＦ３では、フリップフロップＦ３の出力Ｑ３とフリップフロップＦ２の出力Ｑ２の、ＥＸＯＲ回路による排他的論理和がデータ入力として供給される。また、フリップフロップＦ３の出力Ｑ３はフリップフロップＦ４のためのＥＸＯＲ回路に供給される。同様に、フリップフロップＦ４では、フリップフロップＦ４の出力Ｑ４とフリップフロップＦ３の出力Ｑ３の、ＥＸＯＲ回路による排他的論理和がデータ入力として供給される。また、フリップフロップＦ４の出力Ｑ４はフリップフロップＦ５のためのＥＸＯＲ回路に供給される。フリップフロップの接続は、フリップフロップＦ２と同様である。即ち、フリップフロップＦ５では、フリップフロップＦ５の出力Ｑ４とフリップフロップＦ４の出力Ｑ４の、ＥＸＯＲ回路による排他的論理和がデータ入力として供給される。また、フリップフロップＦ５の出力Ｑ５は次段のフリップフロップＦ５のためのＥＸＯＲ回路に供給される。フリップフロップＦ３とＦ４には、フリップフロップＦ２と同様に、アンド回路Ｇ５の出力がクロック信号として供給されている。フリップフロップＦ５には、フリップフロップＦ２と同様に、アンド回路を介してクロック信号ＣＬＫが供給される。アンド回路の他方には、フリップフロップＦ１００と同様に、第２許可信号生成回路としてのフリップフロップからの出力が許可信号として供給される。フリップフロップＦ２〜Ｆ４の出力Ｑ２〜Ｑ４の出力がアンド回路で計算され、計算結果はそのフリップフロップのデータ入力に接続される。そのフリップフロップの出力が、上記アンド回路に第２許可信号として供給される。そのフリップフロップには、フリップフロップＦ１００と同様に、インバータ回路を介してクロック信号ＣＬＫが供給されている。
【００４８】
次に、図５を参照して、第２実施形態の動作を説明する。図５に示すように、ビット３，４のフリップフロップＦ３とＦ４に供給されるクロック信号はビット２のフリップフロップＦ２に供給されるクロック信号と同じである。フリップフロップＦ２〜Ｆ４の出力の論理積が第２許可信号生成回路としてのフリップフロップに供給され、インバータ回路により反転されるクロック信号に同期して第２許可信号（ｍａｓｋ２）として出力される。それが、フリップフロップＦ５ようのアンド回路に供給される。また、そのアンド回路にはクロック信号ＣＬＫが供給される。こうして、上位ビット３から５に対しても、図３に示されると同様にして、フリップフロップの動作回数を減らすことができる。
【００４９】
上記のように分割数を増やして複数のマスク回路部を増やすとさらに動作回数を減らすことができる。これを式として表すと、Ｎビット部カウンタがフルカウントするのに必要な回数は、分割しない場合、フリップフロップの動作回数は２Ｎ×Ｎ回なのに対し、分割が行われる場合は２Ｎ×Ａ＋２（Ｎ−Ａ）×Ｂ＋２（Ｎ−Ａ−Ｂ）×Ｃ回（Ｎ＝Ａ＋Ｂ＋Ｃ）となる。例えば１６ビット部のカウンタでフル（＝ＦＦＦＦｈ）までカウントしたい場合、分割しないとフリップフロップの動作回数は２１６×１６＝１０４８５７６回となる。一方、フリップフロップが分割され上位ビット部には下位ビット部からの桁上がりの場合のみクロック信号が供給されるようにすれば、２１６×３＋２１３×１３＝３０３１０４回で済む。さらに、フリップフロップが３分割されることを考えると、２１６×２＋２１４×３＋２１１×１１＝２０２７５２回となり、さらに動作回数を減らすことができる。
【００５０】
なお、ビット部数が少ない場合は、動作回数の減少よりも素子数増加が懸念されるため、分割数とビット部数の兼ね合いで分割数を決めるのが望ましい。分割数を増やす方法は、ビット部数が多いカウンタに特に効果的である。
このように、本発明によれば、カウンタ回路において、上位ビット部と下位ビット部に分割することにより、カウンタ回路の動作回数を減少させ、電力消費およびノイズ発生の可能性を減少させることができる。
【図面の簡単な説明】
【００５１】
【図１】図１は、従来のカウンタ回路の構成を示す回路図である。
【図２】図２は、図１に示される従来のカウンタ回路の動作を示すタイミングチャートである。
【図３】図３は、本発明の第１実施形態によるカウンタ回路の構成を示す回路図である。
【図４】図４は、図３に示されるカウンタ回路の動作を示すタイミングチャートである。
【図５】図５は、本発明の第２実施形態によるカウンタ回路の動作を示すタイミングチャートである。
【符号の説明】
【００５２】
Ｆ１〜Ｆ２、Ｆ１００：フリップフロップ
Ｇ１，Ｇ６：インバータ回路
Ｇ２，Ｇ４：ＥＸＯＲ（排他的論理和）回路
Ｇ３，Ｇ５：アンド回路
【図１】
2006197367.tif 000003
【図２】
2006197367.tif 000004
【図３】
2006197367.tif 000005
【図４】
2006197367.tif 000006
【図５】
2006197367.tif 000007