(57)【特許請求の範囲】
【請求項１】
カウンタクロックに従ってカウントし、前記カウンタクロックに非同期のカウント値を算出するカウンタ部と、
前記カウント値を、少なくとも３つのサンプリングクロックで取り込むサンプリング部と、
前記少なくとも３つのサンプリングクロックで取り込まれた少なくとも３つのサンプリング値を、前記少なくとも３つのサンプリングクロックにおけるタイミングのずれにより判定する判定部と、
を有することを特徴とする非同期式カウンタ回路。
【請求項２】
前記少なくとも３つのサンプリングクロックは、前記カウンタクロックの周期に同期したタイミングを有する連続したクロックである、
ことを特徴とする請求項１に記載の非同期式カウンタ回路。
【請求項３】
前記判定部は、
前記少なくとも３つのサンプリング値における第１および第２サンプリング値が、当該第１および第２サンプリング値を取り込んだ第１および第２サンプリングクロックにおけるタイミングのずれに対応するときに、前記第１サンプリング値を、前記カウンタ部における正しいカウント値と判定して出力する、
ことを特徴とする請求項１または請求項２に記載の非同期式カウンタ回路。
【請求項４】
前記カウンタ部は、ｎおよびｍを２以上の整数でｎ≧ｍとして、ｎ個のフリップフロップを含み、
前記ｎ個のフリップフロップにおける初段の第１フリップフロップのクロック入力には、前記カウンタクロックが供給され、
前記ｎ個のフリップフロップにおけるｍ段目の第ｍフリップフロップのクロック入力には、その前段の第ｍ−１フリップフロップの反転出力が供給され、
前記ｎ個のフリップフロップの各段のフリップフロップにおいて、それぞれのデータ入力には、その段のフリップフロップの反転出力が供給される、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の非同期式カウンタ回路。
【請求項５】
前記サンプリング部は、
前記少なくとも３つのサンプリングクロックで前記カウント値を取り込む、少なくとも３つのサンプラユニットを含み、
それぞれの前記サンプラユニットは、
前記カウンタ部におけるｎ個の前記フリップフロップに対応し、前記カウンタ部におけるそれぞれの前記フリップフロップの出力をデータ入力で受け取るｎ個のフリップフロップを含む、
ことを特徴とする請求項４に記載の非同期式カウンタ回路。
【請求項６】
請求項１乃至請求項５のいずれか１項に記載の非同期式カウンタ回路を有することを特徴とするオールデジタルＰＬＬ。
【請求項７】
カウンタクロックに従ってカウントして、前記カウンタクロックに非同期のカウント値を算出し、
前記カウント値を、少なくとも３つのサンプリングクロックで取り込み、
前記少なくとも３つのサンプリングクロックで取り込まれた少なくとも３つのサンプリング値を、前記少なくとも３つのサンプリングクロックにおけるタイミングのずれにより判定および補正を行う、
ことを特徴とする非同期式カウンタ回路のサンプリング補正方法。
【請求項８】
前記カウント値を算出するのは、ｎおよびｍを２以上の整数でｎ≧ｍとして、ｎ個のフリップフロップにより、
前記ｎ個のフリップフロップにおける初段の第１フリップフロップのクロック入力に、前記カウンタクロックを供給し、
前記ｎ個のフリップフロップにおけるｍ段目の第ｍフリップフロップのクロック入力に、その前段の第ｍ−１フリップフロップの反転出力を供給し、
前記ｎ個のフリップフロップの各段のフリップフロップにおいて、それぞれのデータ入力に、その段のフリップフロップの反転出力を供給して、前記カウンタクロックに非同期のカウント値を算出する、
ことを特徴とする請求項７に記載の非同期式カウンタ回路のサンプリング補正方法。
【請求項９】
前記カウント値を取り込むのは、
少なくとも３つのサンプラユニットにより、前記少なくとも３つのサンプリングクロックで前記カウント値を取り込み、
それぞれの前記サンプラユニットは、
前記カウンタ部におけるｎ個の前記フリップフロップに対応し、前記カウンタ部におけるそれぞれの前記フリップフロップの出力をデータ入力で受け取るｎ個のフリップフロップを含む、
ことを特徴とする請求項８に記載の非同期式カウンタ回路のサンプリング補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願で言及する実施例は、カウンタ回路およびカウンタ回路のサンプリング補正方法に関する。
【背景技術】
【０００２】
近年、カウンタ回路は、様々なシステムで利用されており、例えば、無線回路システムやプロセッサなどのクロックとして、或いは、クロックデータリカバリシステムや基準周波数を必要とする様々なシステムに利用されている。
【０００３】
また、カウンタ回路は、回路のキャリブレーションや補正システムにも利用されている。具体的に、例えば、オールデジタルＰＬＬ（ＡＤＰＬＬ）において、より高い周波数で動作させるには、それに対応した高周波数のカウンタ回路が不可欠になっている。
【０００４】
ところで、従来、カウンタ回路としては、様々なものが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０６−１９７０１２号公報
【特許文献２】特開２００７−２１５２１３号公報
【特許文献３】特開昭６１−１６４３３２号公報
【特許文献４】特開昭６３−０１０９１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、カウンタ回路としては、同期式カウンタ回路および非同期式カウンタ回路の２種類が知られている。
【０００７】
同期式カウンタ回路の出力は、クロックと同期しているため、その出力のサンプリングは、同期したクロックでサンプリングすれば問題は生じない。
【０００８】
しかしながら、同期式カウンタ回路において、一番長い信号経路（クリティカルパス：critical path）は、例えば、カウントするフリップフロップの段数に従って延びるため、高い周波数の動作には向いていない。さらに、全てのクロックを一番高い周波数のクロックでドライブするために、消費電力が大きくなり、また、電源ノイズも大きくなる。
【０００９】
一方、非同期式カウンタ回路では、上述したような同期式カウンタ回路における問題は存在しない。しかしながら、例えば、各段（フリップフロップ）が前段の出力をクロックとして使用するため、遅延が各段により積分されることになる。そして、遅延が大きくなると、レース（race）の問題が生じる。このレースの状態が生じると、各段の出力を正しくサンプリングすることが困難になる。
【課題を解決するための手段】
【００１０】
一実施形態によれば、カウンタクロックに従ってカウントし、前記カウンタクロックに非同期のカウント値を算出するカウンタ部と、サンプリング部と、判定部と、を有することを特徴とする非同期式カウンタ回路が提供される。
【００１１】
前記サンプリング部は、前記カウント値を、少なくとも３つのサンプリングクロックで取り込む。前記判定部は、前記少なくとも３つのサンプリングクロックで取り込まれた少なくとも３つのサンプリング値を、前記少なくとも３つのサンプリングクロックにおけるタイミングのずれにより判定する。
【発明の効果】
【００１２】
開示のカウンタ回路およびカウンタ回路のサンプリング補正方法は、遅延が積分されてレースが生じても、正しいカウント値を出力することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】同期式カウンタ回路の一例を示す図である。
【図２】図１のカウンタ回路の動作を説明するためのタイミング図である。
【図３】非同期式カウンタ回路の一例を示す図である。
【図４】図３のカウンタ回路の動作を説明するためのタイミング図である。
【図５】本実施例のカウンタ回路を示す図である。
【図６】図５のカウンタ回路の動作を説明するためのタイミング図（その１）である。
【図７】図５のカウンタ回路の動作を説明するためのタイミング図（その２）である。
【図８】本実施例のカウンタ回路におけるサンプリング補正処理の一例を示すフローチャートである。
【図９】本実施例のカウンタ回路におけるサンプリング補正処理の他の例を示すフローチャートである。
【図１０】本実施例のカウンタ回路におけるサンプリング補正処理のさらに他の例を示すフローチャートである。
【図１１】本実施例のカウンタ回路を適用したＡＤＰＬＬの一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
まず、カウンタ回路およびカウンタ回路のサンプリング補正方法の実施例を詳述する前に、同期式カウンタ回路および非同期式カウンタ回路、並びに、それらの問題点を図１〜図４を参照して説明する。
【００１５】
図１は、同期式カウンタ回路の一例を示す図であり、また、図２は、図１のカウンタ回路の動作を説明するためのタイミング図である。なお、説明を簡略化するために、図１では、Ｑ０〜Ｑ３を示しているが、図２では、Ｑ０〜Ｑ２のみを示している。
【００１６】
図１に示されるように、同期式カウンタ回路は、カウンタ部１１１およびサンプラ部１１２を有し、カウンタ部１１１でカウントした値をサンプラ部１１２でサンプリングして出力するようになっている。
【００１７】
カウンタ部１１１は、フリップフロップＵ０，Ｕ１，Ｕ２，Ｕ３、エクスクルーシブオアゲートＥＸＯＲ１，ＥＸＯＲ２，ＥＸＯＲ３、並びに、アンドゲートＡＮＤ２，ＡＮＤ３を有する。ここで、フリップフロップＵ０〜Ｕ３のクロック入力ＣＫには、カウンタクロックＣＫ−ＤＣＯが供給されている。
【００１８】
カウンタ部１１１において、初段のフリップフロップＵ０のＤ入力には、そのフリップフロップＵ０のＮＱ出力（Ｑ出力の反転）が供給され、また、２段目のフリップフロップＵ１のＤ入力には、ＥＸＯＲ１の出力が供給されている。ＥＸＯＲ１は、Ｕ０のＱ出力（Ｑ０）およびＵ１のＱ出力（Ｑ１）を受け取り、それらの排他的論理和を出力する。
【００１９】
さらに、カウンタ部１１１において、３段目および４段目のフリップフロップＵ２，Ｕ３のＤ入力には、それぞれＥＸＯＲ２，ＥＸＯＲ３の出力が供給されている。各ＥＸＯＲ２，ＥＸＯＲ３は、それぞれＵ２，Ｕ３のＱ出力（Ｑ２，Ｑ３）およびＡＮＤ２，ＡＮＤ３の出力を受け取り、それらの排他的論理和を出力する。
【００２０】
ここで、ＡＮＤ２は、Ｕ０のＱ出力（Ｑ０）およびＵ１のＱ出力（Ｑ１）を受け取り、それらの論理積を出力し、また、ＡＮＤ３は、ＡＮＤ２の出力およびＵ２のＱ出力（Ｑ２）を受け取り、それらの論理積を出力する。
【００２１】
サンプラ部１１２は、フリップフロップＶ０，Ｖ１，Ｖ２，Ｖ３を有し、カウンタ部１１１の各フリップフロップＵ０，Ｕ１，Ｕ２，Ｕ３のＱ出力（Ｑ０，Ｑ１，Ｑ２，Ｑ３）を、対応するフリップフロップＶ０，Ｖ１，Ｖ２，Ｖ３のＤ入力で受け取る。
【００２２】
ここで、Ｖ０〜Ｖ３のクロック入力ＣＫには、サンプリングクロックＲｅｆ−ＣＫが供給され、このＲｅｆ−ＣＫによりそれぞれＱ０〜Ｑ３を取り込んで、Ｖ０〜Ｖ３のＱ出力からサンプリング出力Ｓ０〜Ｓ３を出力するようになっている。
【００２３】
図１のカウンタ部１１１において、太い実線で示す各フリップフロップＵ０〜Ｕ３に対するカウンタクロックＣＫ−ＤＣＯの経路は、正しくサンプリングを行うために、カウントするフリップフロップを通るのに必要な遅延パスを示す。
【００２４】
また、破線で示すＵ０→ＡＮＤ２→ＡＮＤ３→ＥＸＯＲ３→Ｕ３の経路は、データ信号のクリティカルパスに相当し、サンプリングクロックＲｅｆ−ＣＫの１周期以内に最終段のフリップフロップＵ３に到達する必要がある。
【００２５】
さらに、一点鎖線で示す経路は、最終段のフリップフロップＵ３に対してカウンタクロックＣＫ−ＤＣＯが供給される一番早い信号パスを示す。そして、サンプラ部１１２において、二点鎖線で示す経路は、最終段のフリップフロップＶ３に対するサンプリングクロックＲｅｆ−ＣＫのパスを示す。
【００２６】
図１に示されるように、同期式カウンタ回路では、カウンタ部１１１におけるフリップフロップＵ０〜Ｕ３のクロック入力ＣＫには、全てカウンタクロックＣＫ−ＤＣＯが供給されている。
【００２７】
そのため、図２に示されるように、例えば、サンプリングクロックＲｅｆ−ＣＫの立ち上がりタイミングでＵ０〜Ｕ２のＱ出力（Ｑ０〜Ｑ２）を取り込むと、最上位ビット（ＭＳＢ）から『０，０，０』になるサンプリング出力Ｓ０〜Ｓ２が得られる。
【００２８】
しかしながら、同期式カウンタ回路において、一番長い信号経路（クリティカルパス：図１中の破線で示すＵ０→ＡＮＤ２→ＡＮＤ３→ＥＸＯＲ３→Ｕ３の経路）は、カウントするフリップフロップの段数に従って延びるため、高い周波数の動作には向いていない。
【００２９】
すなわち、図１中の破線で示すクリティカルパスは、Ｒｅｆ−ＣＫの１周期以内に最終段のフリップフロップＵ３に到達する必要があるが、フリップフロップの段数が増加すると、Ｒｅｆ−ＣＫの１周期以内に最終段のフリップフロップに到達しなくなってしまう。
【００３０】
さらに、同期式カウンタ回路は、全てのクロックを一番高い周波数のクロックでドライブするため、消費電力が大きくなり、また、電源ノイズも大きくなるという課題がある。
【００３１】
図３は、非同期式カウンタ回路の一例を示す図であり、また、図４は、図３のカウンタ回路の動作を説明するためのタイミング図である。なお、説明を簡略化するために、図３では、Ｑ０〜Ｑ３を示しているが、図４では、Ｑ０〜Ｑ２のみを示している。
【００３２】
図３に示されるように、非同期式カウンタ回路は、カウンタ部２１１およびサンプラ部２１２を有し、カウンタ部２１１でカウントした値をサンプラ部２１２でサンプリングして出力するようになっている。
【００３３】
カウンタ部２１１は、フリップフロップＵ０，Ｕ１，Ｕ２，Ｕ３を有し、また、サンプラ部２１２は、フリップフロップＶ０，Ｖ１，Ｖ２，Ｖ３を有する。
【００３４】
ここで、カウンタ部２１１において、初段のフリップフロップＵ０のクロック入力ＣＫには、カウンタクロックＣＫ−ＤＣＯが供給され、また、フリップフロップＵ１のクロック入力ＣＫには、前段のフリップフロップＵ０のＮＱ出力が供給されている。
【００３５】
同様に、フリップフロップＵ２のクロック入力ＣＫには、前段のフリップフロップＵ１のＮＱ出力が供給され、そして、フリップフロップＵ３のクロック入力ＣＫには、前段のフリップフロップＵ２のＮＱ出力が供給されている。
【００３６】
ここで、各段のフリップフロップＵ０〜Ｕ３において、Ｄ入力には、そのフリップフロップＵ０〜Ｕ３のＮＱ出力が供給されている。
【００３７】
サンプラ部２１２は、図１のサンプラ部１１２と同様に、カウンタ部２１１の各フリップフロップＵ０，Ｕ１，Ｕ２，Ｕ３のＱ出力（Ｑ０，Ｑ１，Ｑ２，Ｑ３）を、対応するフリップフロップＶ０，Ｖ１，Ｖ２，Ｖ３のＤ入力で受け取るようになっている。
【００３８】
また、Ｖ０〜Ｖ３のクロック入力ＣＫには、サンプリングクロックＲｅｆ−ＣＫが供給され、このＲｅｆ−ＣＫによりそれぞれＱ０〜Ｑ３を取り込んで、Ｖ０〜Ｖ３のＱ出力からサンプリング出力Ｓ０〜Ｓ３を出力するようになっている。
【００３９】
図３のカウンタ部２１１において、太い実線で示す各フリップフロップＵ０〜Ｕ３に対するカウンタクロックＣＫ−ＤＣＯの経路は、正しくサンプリングを行うために、カウントするフリップフロップを通るのに必要な遅延パスを示す。
【００４０】
すなわち、この遅延パスは、２段目以降のフリップフロップＵ１，Ｕ２，Ｕ３において、前段のフリップフロップＵ０，Ｕ１，Ｕ２の各ＮＱ出力からＵ１，Ｕ２，Ｕ３の各クロック入力ＣＫへのパスになる。
【００４１】
また、破線で示すフリップフロップＵ０のＮＱ出力→Ｕ０のＤ入力の経路は、データ信号のクリティカルパスに相当し、サンプリングクロックＲｅｆ−ＣＫの１周期以内にそのフリップフロップＵ０のＮＱ出力からＤ入力に到達する必要がある。なお、このパスは、各フリップフロップＵ０〜Ｕ３において形成されることになる。
【００４２】
さらに、一点鎖線で示す経路は、初段のフリップフロップＵ０のクロック入力ＣＫに対してカウンタクロックＣＫ−ＤＣＯが供給される一番早い信号パスを示す。そして、サンプラ部２１２において、二点鎖線で示す経路は、最終段のフリップフロップＶ３に対するサンプリングクロックＲｅｆ−ＣＫのパスを示す。このように、非同期式カウンタ回路では、前述したような同期式カウンタ回路における問題は存在しない。
【００４３】
図３に示されるように、非同期式カウンタ回路は、カウンタ部２１１において、初段のフリップフロップＵ０のクロック入力ＣＫにはＣＫ−ＤＣＯが供給されるが、２段目以降のＵ１〜Ｕ３のクロック入力ＣＫには、前段のＵ０〜Ｕ２のＮＱ出力が供給されている。
【００４４】
すなわち、各段（フリップフロップ）が前段の出力をクロックとして使用するため、遅延が各段により積分（順に加算）されることになるため、遅延が大きくなると、レース（race）の問題が生じる。このレースの状態が生じると、各段の出力を正しくサンプリングすることが困難になる。
【００４５】
ここで、各段の遅延時間ｔｄは、フリップフロップＵ０〜Ｕ２により順に加算される。具体的に、例えば、フリップフロップＵ０のＱ出力（Ｑ０）がｔｄの遅延を含んでいたのが、Ｕ１のＱ出力（Ｑ１）は、２ｔｄの遅延を含み、さらに、Ｕ２のＱ出力（Ｑ２）は、３ｔｄの遅延を含むことになる。
【００４６】
すなわち、図４に示されるように、サンプラ部２１２のフリップフロップＶ０〜Ｖ２が、Ｒｅｆ−ＣＫの立ち上がりタイミングでＱ０〜Ｑ２を取り込むとき、順に加算された遅延時間ｔｄ，２ｔｄ，３ｔｄに起因して正しいカウント値を取り込むことができない。
【００４７】
これは、入力クロックから遠いフリップフロップの方か積分された遅延が多いため、通常、入力クロックから遠いフリップフロップの出力にエラーが生じる虞が高くなる。すなわち、図３および図４の例では、例えば、カウンタ部２１１のフリップフロップＵ２の方がＣＫ−ＤＣＯが入力されるＵ０やＵ１よりも遠いため、積分された遅延が多くなり、出力Ｑ２の方が出力Ｑ０やＱ１よりもレースが起こり易くなる。
【００４８】
具体的に、図４の場合には、ＭＳＢから『０，０，０』になるべきサンプリング出力Ｓ０〜Ｓ２が『１，１，０』になっている。これは、遅延が各段により積分されてレースが生じ、サンプリング出力Ｓ０〜Ｓ２が誤ったものになっている。
【００４９】
以下、カウンタ回路およびカウンタ回路のサンプリング補正方法の実施例を、添付図面を参照して詳述する。図５は、本実施例のカウンタ回路を示す図である。図５において、参照符号１１はカウンタ部を示し、また、１２はサンプラ部を示し、そして、１３は判定部を示す。
【００５０】
図５に示されるように、本実施例のカウンタ回路は、非同期式カウンタ回路であり、カウンタ部１１，サンプラ部１２および判定部１３を有し、また、カウンタ部１１は、フリップフロップＵ０，Ｕ１，Ｕ２，…，ＵN-1を有する。
【００５１】
ここで、初段のフリップフロップＵ０のクロック入力ＣＫには、カウンタクロックＣＫ−ＤＣＯが供給され、また、フリップフロップＵ１のクロック入力ＣＫには、前段のフリップフロップＵ０のＮＱ出力が供給されている。
【００５２】
同様に、フリップフロップＵ２，Ｕ３，…，ＵN-1のクロック入力ＣＫには、それぞれ前段のフリップフロップＵ１，Ｕ２，…，ＵN-2のＮＱ出力が供給されている。ここで、各段のフリップフロップＵ０〜ＵN-1において、Ｄ入力には、そのフリップフロップＵ０〜ＵN-1のＮＱ出力が供給されている。
【００５３】
サンプラ部１２は、フリップフロップＷ０，Ｗ１，Ｗ２、ＶＡ０〜ＶＡN-1、ＶＢ０〜ＶＢN-1、および、ＶＣ０〜ＶＣN-1を有する。ここで、フリップフロップＷ０，Ｗ１，Ｗ２は、サンプリングクロックＲｅｆ−ＣＫ[0]，Ｒｅｆ−ＣＫ[1]，Ｒｅｆ−ＣＫ[2]を生成するためのものである。
【００５４】
すなわち、フリップフロップＷ０のＤ入力には、サンプリングクロックＲｅｆ−ＣＫが供給され、また、Ｗ０のクロック入力ＣＫには、カウンタクロックＣＫ−ＤＣＯが供給されている。
【００５５】
また、フリップフロップＷ１のＤ入力には、フリップフロップＷ０のＱ出力が供給され、また、フリップフロップＷ２のＤ入力には、フリップフロップＷ１のＱ出力が供給されている。なお、Ｗ１およびＷ２のクロック入力ＣＫには、カウンタクロックＣＫ−ＤＣＯが供給されている。
【００５６】
ここで、フリップフロップＷ０のＱ出力は、フリップフロップＶＡ０〜ＶＡN-1に対する第１サンプリングクロックＲｅｆ−ＣＫ[0]として使用され、また、Ｗ１のＱ出力は、ＶＢ０〜ＶＢN-1に対する第２サンプリングクロックＲｅｆ−ＣＫ[1]として使用される。さらに、Ｗ２のＱ出力は、ＶＣ０〜ＶＣN-1に対する第３サンプリングクロックＲｅｆ−ＣＫ[2]として使用される。
【００５７】
なお、第１，第２および第３サンプリングクロックＲｅｆ−ＣＫ[0]，Ｒｅｆ−ＣＫ[1]およびＲｅｆ−ＣＫ[2]は、カウンタクロックＣＫ−ＤＣＯの周期に同期した立ち上がりタイミングを有する連続した３つのサンプリングクロックになっている。
【００５８】
すなわち、第１サンプリングクロックＲｅｆ−ＣＫ[0]と第２サンプリングクロックＲｅｆ−ＣＫ[1]のタイミング（立ち上がりタイミング）は、カウンタクロックＣＫ−ＤＣＯの１周期分だけずれている。また、第２サンプリングクロックＲｅｆ−ＣＫ[1]と第３サンプリングクロックＲｅｆ−ＣＫ[2]のタイミングも、カウンタクロックＣＫ−ＤＣＯの１周期分だけずれている。
【００５９】
このように、サンプラ部１２は、第１〜第３サンプリングクロックＲｅｆ−ＣＫ[0]〜[2]がクロック入力ＣＫに供給された第１〜第３サンプラユニット（フリップフロップ）ＶＡ０〜ＶＡN-1，ＶＢ０〜ＶＢN-1，ＶＣ０〜ＶＣN-1を有する。
【００６０】
各サンプラユニットＶＡ０〜ＶＡN-1，ＶＢ０〜ＶＢN-1，ＶＣ０〜ＶＣN-1は、前述した図１および図３に示すサンプラ部１１２および２１２に相当し、それぞれカウンタ部１１のフリップフロップＵ０〜ＵN-1のＱ出力（Ｑ１〜ＱN-1）を取り込む。
【００６１】
すなわち、第１サンプラユニットにおけるＶＡ０〜ＶＡN-1のＤ入力は、カウンタ部１１のＵ０〜ＵN-1のＱ出力に接続され、第１サンプリングクロックＲｅｆ−ＣＫ[0]の立ち上がりタイミングでデータＱ１〜ＱN-1を取り込む。
【００６２】
また、第２サンプラユニットにおけるＶＢ０〜ＶＢN-1のＤ入力は、カウンタ部１１のＵ０〜ＵN-1のＱ出力に接続され、第２サンプリングクロックＲｅｆ−ＣＫ[1]の立ち上がりタイミングでデータＱ１〜ＱN-1を取り込む。
【００６３】
さらに、第３サンプラユニットにおけるＶＣ０〜ＶＣN-1のＤ入力は、カウンタ部１１のＵ０〜ＵN-1のＱ出力に接続され、第３サンプリングクロックＲｅｆ−ＣＫ[2]の立ち上がりタイミングでデータＱ１〜ＱN-1を取り込む。
【００６４】
なお、第１サンプリングクロックＲｅｆ−ＣＫ[0]，第２サンプリングクロックＲｅｆ−ＣＫ[1]および第３サンプリングクロックＲｅｆ−ＣＫ[2]は、カウンタクロックＣＫ−ＤＣＯの周期に同期した連続する３つのサンプリングクロックになっている。
【００６５】
判定部１３は、第１サンプラユニットのサンプリング出力ＳＡ0〜ＳＡN-1，第２サンプラユニットのサンプリング出力ＳＢ0〜ＳＢN-1および第３サンプラユニットのサンプリング出力ＳＣ0〜ＳＣN-1を受け取り、後述する判定を行って出力ＯＵＴを出力する。
【００６６】
なお、判定部１３は、サンプリング出力ＳＡ0〜ＳＡN-1，ＳＢ0〜ＳＢN-1およびＳＣ0〜ＳＣN-1だけでなく、後に、図７を参照して説明するように、サンプリング出力ＳＤ0〜ＳＤN-1等を受け取ることもある。
【００６７】
ここで、カウンタクロックＣＫ−ＤＣＯが入力するフリップフロップＵ０に対して、より遠くのフリップフロップ（ＵN-1に近いフリップフロップ：最上位ビット（ＭＳＢ）側のフリップフロップ）の方か積分された遅延が多くなる。そのため、ＭＳＢ側のフリップフロップ程、その出力に誤り（レース）が生じ易い。
【００６８】
また、通常、非同期カウンタはバイナリーカウンタになるため、ＭＳＢ側のフリップフロップ程、その出力が変化する確率は小さくなる。このフリップフロップの出力（Ｑ０〜ＱN-1）の変化確率は、バイナリの場合、１／２ｋになる。ここで、ｋは、カウンタ部１１におけるフリップフロップの位置である。
【００６９】
さらに、例えば、レースが生じても、全ての出力データの値が誤っている訳ではなく、サンプラ部１２におけるサンプリングの瞬間に、その出力データの値が積分された遅延に関わらず変化しなければ、レースがあっても問題はない。
【００７０】
具体的に、後述する図６の例では、サイクル『０』のＱ２，Ｑ３、サイクル『４』のＱ２、サイクル『８』のＱ２，Ｑ３、並びに、サイクル『１２』のＱ２の値が誤っている。すなわち、これら全てのエラーは、積分された遅延によって、Ｑ２とＱ３の値の変化するタイミングがずれたことにより生じているのが分かる。
【００７１】
従って、本実施例では、カウンタ部１１の出力（Ｑ０〜ＱN-1）を、サンプラ部１２で１回のサンプリングクロックで取り込むのではなく、複数回（少なくとも３回）のサンプリングクロックで取り込んで、正しいカウント値を求めるようになっている。
【００７２】
なお、図５では、３つのサンプリングクロックで制御される３つのサンプラユニットが設けられているが、これは、１つのサンプラユニットに対して複数の異なるタイミングのサンプリングクロックを供給してもよいのはもちろんである。
【００７３】
図６および図７は、図５のカウンタ回路の動作を説明するためのタイミング図である。なお、図５のカウンタ回路は、Ｎビットを処理するようになっているが、図６および図７では、説明を簡略化するために、Ｑ０〜Ｑ３の４ビットのみを示している。
【００７４】
図５に示されるように、例えば、フリップフロップＵ０〜Ｕ３のＱ出力（Ｑ０〜Ｑ３）は、３つのサンプラユニット（ＶＡ０〜ＶＡ３，ＶＢ０〜ＶＢ３，ＶＣ０〜ＶＣ３）に取り込まれ、それぞれサンプリング出力として出力される。
【００７５】
図６の例では、連続する３つのサイクル『８』，『９』，『１０』において、サンプリングクロックＲｅｆ−ＣＫ[0]，[1]，[2]により３つのサンプラユニットで出力Ｑ０〜Ｑ３を取り込む。
【００７６】
すなわち、図６に示されるように、第１サンプラユニットのサンプリング出力ＳＡ3〜ＳＡ0は、フリップフロップＶＡ３〜ＶＡ０のＱ出力になり、ＭＳＢから『０，１，０，０』になる。
【００７７】
また、第２サンプラユニットのサンプリング出力ＳＢ3〜ＳＢ0は、フリップフロップＶＢ３〜ＶＢ０のＱ出力になり、ＭＳＢから『１，０，０，１』になる。さらに、第３サンプラユニットのサンプリング出力ＳＣ3〜ＳＣ0は、フリップフロップＶＣ３〜ＶＣ０のＱ出力になり、ＭＳＢから『１，０，１，０』になる。
【００７８】
ところで、前述したように、後段のカウンタ（フリップフロップ）の出力ほど、１段の遅延時間ｔｄが順に加算（積分）されて遅延が大きくなるが、レースが生じた場合でも、全ての信号（サンプリング出力）が間違っている訳ではない。
【００７９】
具体的に、上述した連続する３つのサンプリングクロックＲｅｆ−ＣＫ[0]，[1]，[2]による３つのサンプリング出力において、『１，０，０，１』のサンプリング出力ＳＢ3〜ＳＢ0と、『１，０，１，０』のサンプリング出力ＳＣ3〜ＳＣ0は連続している。
【００８０】
すなわち、サンプリング出力ＳＢ3〜ＳＢ0の『１，０，０，１』に対して『１』を加えたものがサンプリング出力ＳＣ3〜ＳＣ0の『１，０，１，０』になっている。従って、この場合、サンプリング出力ＳＡ3〜ＳＡ0の『０，１，０，０』には、レースによる誤りが含まれていると判断し、サンプリング出力ＳＢ3〜ＳＢ0およびＳＣ3〜ＳＣ0による値を正しいカウント値として使用する。
【００８１】
具体的に、サンプリング出力ＳＢ3〜ＳＢ0の値『１，０，０，１』が正しいカウント値なので、例えば、正しいサンプリング出力ＳＡ3〜ＳＡ0の値として、ＳＢ3〜ＳＢ0の値『１，０，０，１』から『１』を引いた『１，０，０，０』を出力する。
【００８２】
ここで、図示の値とは異なるが、例えば、ＳＡ3〜ＳＡ0が『１，０，０，０』、ＳＢ3〜ＳＢ0が『０，０，０，１』、ＳＣ3〜ＳＣ0が『１，０，１，０』の場合、Ｒｅｆ−ＣＫ[0]と[2]はＣＫ−ＤＣＯの２周期分ずれているので、正しいカウント値と判断する。
【００８３】
すなわち、サンプリング出力ＳＡ3〜ＳＡ0の『１，０，０，０』に対して『２』を加えたものがサンプリング出力ＳＣ3〜ＳＣ0の『１，０，１，０』になっているため、ＳＡ3〜ＳＡ0およびＳＣ3〜ＳＣ0による値を正しいカウント値として使用することになる。このとき、サンプリング出力ＳＡ3〜ＳＡ0の値『１，０，０，０』を出力することになる。
【００８４】
ここで、図５および図６の例では、３回のサンプリングを行う場合を示しているが、このサンプリングの回数は、例えば、遅延の保証必要範囲により規定される。ただし、サンプリングを複数回行った場合、少なくとも２つの正しいサンプリング出力を得るためには、サンプリング回数を少なくとも３回に設定するのが好ましい。
【００８５】
次に、図７に示されるように、第１サンプラユニットのサンプリング出力ＳＡ3〜ＳＡ0は、フリップフロップＶＡ３〜ＶＡ０のＱ出力になり、ＭＳＢから『０，１，１，０』になる。
【００８６】
また、第２サンプラユニットのサンプリング出力ＳＢ3〜ＳＢ0は、フリップフロップＶＢ３〜ＶＢ０のＱ出力になり、ＭＳＢから『１，０，０，１』になる。さらに、第３サンプラユニットのサンプリング出力ＳＣ3〜ＳＣ0は、フリップフロップＶＣ３〜ＶＣ０のＱ出力になり、ＭＳＢから『１，０，１，０』になる。
【００８７】
なお、図７では、さらに、第４サンプリングクロックＲｅｆ−ＣＫ[3]により駆動される第４サンプラユニット（図示しない）を考え、この第４サンプラユニットのサンプリング出力（ＳＤ3〜ＳＤ0）を示している。具体的に、第４サンプラユニットのサンプリング出力ＳＤ3〜ＳＤ0は、フリップフロップ（ＶＤ３〜ＶＤ０）のＱ出力になり、ＭＳＢから『１，０，１，１』になる。
【００８８】
従って、上述した連続する４つのサンプリングクロックＲｅｆ−ＣＫ[0]〜[3]による４つのサンプリング出力において、『１，０，０，１』、『１，０，１，０』および『１，０，１，１』のサンプリング出力が正しいカウント値であることが分かる。すなわち、サンプリング出力ＳＢ3〜ＳＢ0，ＳＣ3〜ＳＣ0およびＳＤ3〜ＳＤ0による値を正しいカウント値として使用することになる。
【００８９】
ここで、図７の例では、サイクル『０』，『１』，『４』，『８』，『１２』のＱ０，Ｑ１，Ｑ２，Ｑ３の値が誤っている。
【００９０】
すなわち、サンプリング出力ＳＢ3〜ＳＢ0の値『１，０，０，１』が正しいカウント値なので、例えば、正しいサンプリング出力ＳＡ3〜ＳＡ0の値として、ＳＢ3〜ＳＢ0の値『１，０，０，１』から『１』を引いた『１，０，０，０』を出力する。
【００９１】
なお、例えば、ＳＡ3〜ＳＡ0の値とＳＣ3〜ＳＣ0の値がＣＫ−ＤＣＯの２周期に相当する『２』だけずれている場合、或いは、ＳＡ3〜ＳＡ0の値とＳＤ3〜ＳＤ0の値がＣＫ−ＤＣＯの３周期に相当する『３』だけずれている場合も正しいカウント値と判断する。
【００９２】
ここで、サンプリングクロックＲｅｆ−ＣＫは、必ずしもカウンタクロックＣＫ−ＤＣＯの１周期ごとに変化する必要はない。例えば、サンプリングクロックＲｅｆ−ＣＫがカウンタクロックＣＫ−ＤＣＯの２周期ごとに変化する場合、その連続するサンプリングクロックにより取り込まれたカウント値が『２』だけ異なるものを正しいカウント値と判断する。
【００９３】
具体的に、図６において、Ｒｅｆ−ＣＫ[1]と[2]の立ち上がりタイミングが、ＣＫ−ＤＣＯの２周期ずれている場合、ＳＢ3〜ＳＢ0がＭＳＢから『１，０，０，１』のとき、ＳＣ3〜ＳＣ0がＭＳＢから『１，０，１，１』ならば、正しいカウント値と判断する。すなわち、『２』だけずれていれば正しいことになる。
【００９４】
このとき、サンプリング出力ＳＢ3〜ＳＢ0の値『１，０，０，１』が正しいカウント値なので、例えば、正しいサンプリング出力ＳＡ3〜ＳＡ0の値として、ＳＢ3〜ＳＢ0の値『１，０，０，１』から『１』を引いた『１，０，０，０』を出力する。
【００９５】
このように、カウンタ部１１のカウント出力（Ｑ０〜ＱN-1）を取り込むサンプリングクロックＲｅｆ−ＣＫの数は３つ以上であればよく、また、Ｒｅｆ−ＣＫの間隔は、ＣＫ−ＤＣＯの任意の周期でよい。なお、Ｒｅｆ−ＣＫにより取り込まれたサンプリング値は、Ｒｅｆ−ＣＫの間隔により規定されるカウント値の差を有する場合に正しいカウント値と判断されることになる。
【００９６】
図８は、本実施例のカウンタ回路における処理の一例を示すフローチャートである。ここで、参照符号ＳＡは、図５におけるサンプリング出力ＳＡ0〜ＳＡN-1、或いは、図６および図７におけるＳＡ0〜ＳＡ3に対応し、また、ＳＢは、図５におけるＳＢ0〜ＳＢN-1、或いは、図６および図７におけるＳＢ0〜ＳＢ3に対応する。さらに、参照符号ＳＣは、図５におけるＳＣ0〜ＳＣN-1、或いは、図６および図７におけるＳＣ0〜ＳＣ3に対応する。
【００９７】
図８に示されるように、カウンタ回路のサンプリング補正処理の一例が開始すると、ステップＳＴ１１において、ＳＡとＳＢが連続しているかどうかを判定する。すなわち、例えば、ＳＡのサンプリングクロックＲｅｆ−ＣＫ[0]とＳＢのＲｅｆ−ＣＫ[1]がカウンタクロックＣＫ−ＤＣＯの１周期分の差異を有している場合、ＳＢから『１』を減算したものがＳＡになっているかどうかを判定する。
【００９８】
ステップＳＴ１１において、ＳＡとＳＢが連続していると判定すると、ステップＳＴ１２に進んで、ＳＡの値を出力（ＯＵＴ＝ＳＡ）する。また、ステップＳＴ１１において、ＳＡとＳＢが連続していないと判定すると、ステップＳＴ１３に進んで、ＳＣ−ＳＡが『２』になっているかどうかを判定する。
【００９９】
すなわち、ステップＳＴ１３では、例えば、ＳＡのＲｅｆ−ＣＫ[0]とＳＣのＲｅｆ−ＣＫ[2]がＣＫ−ＤＣＯの２周期分の差異を有している場合、ＳＣから『２』を減算したものがＳＡになっているかどうかを判定する。
【０１００】
ステップＳＴ１３において、ＳＣ−ＳＡ＝２であると判定すると、ステップＳＴ１２に進んで、ＳＡの値を出力（ＯＵＴ＝ＳＡ）する。また、ＳＴ１３において、ＳＣ−ＳＡ＝２ではないと判定すると、ステップＳＴ１４に進む。
【０１０１】
ステップＳＴ１４では、ＳＢとＳＣが連続しているかどうかを判定する。すなわち、前述したステップＳＴ１１におけるＳＡとＳＢが連続しているかどうかの判定と同様に、ＳＢとＳＣが連続しているかどうかの判定を行う。
【０１０２】
ステップＳＴ１４において、ＳＢとＳＣが連続していると判定すると、すなわち、ＳＣから『１』を減算したものがＳＢになっていると判定すると、ステップＳＴ１５に進み、ＳＢから『１』を減算したものを出力（ＯＵＴ＝ＳＢ−１）する。
【０１０３】
なお、ステップＳＴ１４において、ＳＢとＳＣが連続していないと判定すると、ステップＳＴ１６に進んで、出力をデフォルト値（ＯＵＴ＝DefVal）として処理を終了する。通常、処理がステップＳＴ１２またはＳＴ１５で終了し、ステップＳＴ１６まで進まないように設計する。
【０１０４】
図９は、本実施例のカウンタ回路におけるサンプリング補正処理の他の例を示すフローチャートであり、図８の処理を一般化したものに相当する。ここで、上述した図８におけるＳＡ，ＳＢ，ＳＣは、例えば、Ｓ[0]，Ｓ[1]，Ｓ[2]に対応する。
【０１０５】
図９に示されるように、カウンタ回路のサンプリング補正処理の他の例が開始すると、ステップＳＴ２１において、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉが成立するかどうかを判定する。
【０１０６】
すなわち、ステップＳＴ２１では、Ｓ[n]−Ｓ[n-i]をＮで割った余りがｉに等しいかどうかを判定する。ここで、Ｍｏｄ（ｆｕｎ，Ｎ）は、ｆｕｎ≧０ならば、Ｍｏｄ（ｆｕｎ，Ｎ）＝ｆｕｎになり、また、ｆｕｎ＜０ならば、Ｍｏｄ（ｆｕｎ，Ｎ）＝Ｎ＋ｆｕｎになる。
【０１０７】
ここで、Ｍｏｄ（ｆｕｎ，Ｎ）の値は、常に、０〜Ｎの間に存在する。また、初期条件として、ｎ＝１，ｉ＝１とする。さらに、Ｎは、カウンタの最大カウント値であり、例えば、図７の例では、０〜１５サイクルで１つずつインクリメントするＮ＝２4＝１６となる。
【０１０８】
具体的に、ステップＳＴ２１では、初期条件がｎ＝１，ｉ＝１、例としてＮ＝１６を考えると、カウンタの出力Ｓ[0]＝１６，Ｓ[1]＝１なので、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）は、Ｍｏｄ（Ｓ[1]−Ｓ[0]，Ｎ）＝Ｍｏｄ（１−１６，１６）＝１＝ｉとなる。
【０１０９】
この場合、ステップＳＴ２１において、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉが成立すると判定し、ステップＳＴ２２に進んで、Ｍｏｄ（Ｓ[n]−ｎ，Ｎ）の値を出力（ＯＵＴ＝Ｍｏｄ（Ｓ[n]−ｎ，Ｎ））する。
【０１１０】
一方、ステップＳＴ２１において、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉが成立しないと判定すると、ステップＳＴ２３に進んで、ｎ＝Ｎ−１が成立するかどうかを判定する。
【０１１１】
ステップＳＴ２３において、ｎ＝Ｎ−１が成立しないと判定すれば、ｎを『１』インクリメント（ｎ＝ｎ＋１）して、上述したステップＳＴ２１に戻る。すなわち、ステップＳＴ２１では、例えば、Ｍｏｄ（Ｓ[2]−Ｓ[1]，Ｎ）が『１』であるかどうかを判定する。
【０１１２】
一方、ステップＳＴ２３において、ｎ＝Ｎ−１が成立すると判定すれば、ステップＳＴ２４に進み、ｉ＝Ｎ−１が成立するかどうかを判定し、ｉ＝Ｎ−１が成立しないと判定すれば、ｉ＝ｉ＋１，ｎ＝ｉとして、上述したステップＳＴ２１に戻る。すなわち、ステップＳＴ２１では、例えば、Ｍｏｄ（Ｓ[2]−Ｓ[0]，Ｎ）が『２』であるかどうかを判定する。
【０１１３】
なお、ステップＳＴ２４において、ｉ＝Ｎ−１が成立すると判定すれば、ステップＳＴ２５に進んで、出力をデフォルト値（ＯＵＴ＝DefVal）として処理を終了する。通常、処理がステップＳＴ２２で終了し、ステップＳＴ２４まで進まないように設計する。
【０１１４】
図１０は、本実施例のカウンタ回路におけるサンプリング補正処理のさらに他の例を示すフローチャートであり、上述した図９のサンプリング補正処理において、ｋｍａｔ回だけカウント値が正しくなるかどうかを判定する処理を追加したものに相当する。
【０１１５】
すなわち、図１０の例は、サンプリング出力において、偶然に複数のエラーが重なった場合でも、カウント値がｋｍａｔ回だけ正しいと判定される条件を追加することで、より正しい結果を得るようにしたものである。
【０１１６】
換言すると、図９の例は、ｉまたはｎの値を変化させ、どちらかの条件が満たされれば、結果が出力されるのに対して、図１０の例では、その条件がｋｍａｔ回だけ満たされないと結果が出力されないようになっている。
【０１１７】
図１０に示されるように、カウンタ回路のサンプリング補正処理のさらに他の例が開始すると、ステップＳＴ３１において、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉが成立するかどうかを判定する。ここで、初期条件として、ｎ＝１，ｉ＝１，ｋ＝０としている。従って、ステップＳＴ３１では、Ｍｏｄ（Ｓ[1]−Ｓ[0]，Ｎ）＝ｉが成立するかどうかを判定する。
【０１１８】
ステップＳＴ３１において、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉが成立すると判定すると、ステップＳＴ３２に進んで、ｋがｋｍａｔに等しい（ｋ＝ｋｍａｔ）かどうかを判定する。すなわち、ステップＳＴ３１におけるＭｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉがｋｍａｔ回成立するかどうかを判定する。
【０１１９】
ステップＳＴ３２において、ｋ＝ｋｍａｔが成立しない、すなわち、まだｋｍａｔ回成立していないと判定すると、ｎ＝ｎ＋１として、ステップＳＴ３１に戻る。すなわち、ステップＳＴ３１では、例えば、Ｍｏｄ（Ｓ[2]−Ｓ[1]，Ｎ）＝ｉが成立するかどうかを判定する。
【０１２０】
そして、ステップＳＴ３２において、ｋ＝ｋｍａｔが成立すると判定すると、ステップＳＴ３３に進んで、Ｍｏｄ（Ｓ[n]−ｎ，Ｎ）の値を出力（ＯＵＴ＝Ｍｏｄ（Ｓ[n]−ｎ，Ｎ））する。
【０１２１】
一方、ステップＳＴ３１において、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉが成立しないと判定すると、ステップＳＴ３４に進み、ｎ＝Ｎ−１が成立するかどうかを判定する。ここで、Ｎは、カウンタの最大カウント値であるのは、図９を参照して説明した通りである。
【０１２２】
ステップＳＴ３４において、ｎ＝Ｎ−１が成立しないと判定すれば、ｎを『１』インクリメント（ｎ＝ｎ＋１）して、上述したステップＳＴ３１に戻る。すなわち、ステップＳＴ３１では、例えば、Ｍｏｄ（Ｓ[2]−Ｓ[1]，Ｎ）が『１』であるかどうかを判定する。
【０１２３】
一方、ステップＳＴ３４において、ｎ＝Ｎ−１が成立すると判定すれば、ステップＳＴ３５に進み、ｉ＝Ｎ−１が成立するかどうかを判定し、ｉ＝Ｎ−１が成立しないと判定すれば、ｉ＝ｉ＋１，ｎ＝ｉとして、上述したステップＳＴ３１に戻る。すなわち、ステップＳＴ３１では、例えば、Ｍｏｄ（Ｓ[2]−Ｓ[0]，Ｎ）が『２』であるかどうかを判定する。
【０１２４】
なお、ステップＳＴ３５において、ｉ＝Ｎ−１が成立すると判定すれば、ステップＳＴ３６に進んで、出力をデフォルト値（ＯＵＴ＝DefVal）として処理を終了する。通常、処理がステップＳＴ３３で終了し、ステップＳＴ３６まで進まないように設計する。
【０１２５】
このように、図１０に示すカウンタ回路のサンプリング補正処理は、上述した図９に示すカウンタ回路のサンプリング補正処理に対して、Ｍｏｄ（Ｓ[n]−Ｓ[n-i]，Ｎ）＝ｉがｋｍａｔ回成立するかどうかを判定するステップＳＴ３２を追加したものに相当する。
【０１２６】
そして、図１０のサンプリング補正処理によれば、例えば、偶然に複数のエラーが重なった場合でも、ｋｍａｔ回成立するかどうかを判定することにより、図９のサンプリング補正処理よりも正しいカウント値を出力することが可能になる。
【０１２７】
図１１は、本実施例のカウンタ回路を適用したＡＤＰＬＬの一例を示すブロック図である。図１１において、参照符号２は、キャリブレーション部を示し、また、３は、オールデジタルＰＬＬ（ＡＤＰＬＬ：All Digital Phase-Locked Loop）を示す。
【０１２８】
ここで、本実施例のカウンタ回路は、キャリブレーション部２およびＡＤＰＬＬ３におけるカウンタ３１に対応する。また、カウンタクロックＣＫ−ＤＣＯは、ＤＣＯ（Digitally Controlled Oscillator）３６の出力クロックに対応し、また、サンプリングクロックＲｅｆ−ＣＫは、カウンタ３１およびＴＤＣ３２に供給されるクロックに対応する。
【０１２９】
図１１に示されるように、キャリブレーション部２は、微分回路２１，デジタルループフィルタ２２，メモリ２３，加算器２４および判定回路２５を有する。また、ＡＤＰＬＬ３は、カウンタ３１，ＴＤＣ（Time to Digital Converter）３２，デコーダ３３，加算器３４，デジタルループフィルタ３５およびＤＣＯ３６を有する。
【０１３０】
微分回路２１は、カウンタ３１の出力Ｃ[n]，Ｃ[n-1]（例えば、前述したＳ[n]，Ｓ[n-1]に対応）を微分（ＭｏｄＢ（Ｃ[n]−Ｃ[n-1]）する。デジタルループフィルタ２２は、その微分された出力を平均化してメモリ２３に格納すると共に、加算器２４に供給する。
【０１３１】
加算器２４は、メモリ２３に格納された第１の値から、デジタルループフィルタ２２から出力された第２の値を減算し、その加算器２４の出力（減算結果）が判定回路２５で判定される。
【０１３２】
ここで、初期状態において、キャリブレーション部２は、例えば、最大のサンプリング回数によりＡＤＰＬＬ３をロックし、上述したメモリ２３に格納された値とデジタルループフィルタ２２の出力が一致すれば、順にサンプリング回数を低減させる。
【０１３３】
すなわち、判定回路２５に供給される加算器２４の出力において、差分が小さければ、サンプリング回数を低減し、逆に、差分が大きければ、サンプリング回数を増大して、キャリブレーション部２のキャリブレーション処理を停止する。
【０１３４】
なお、ＡＤＰＬＬ３において、ＴＤＣ３２，デコーダ３３，加算器３４，デジタルループフィルタ３５およびＤＣＯ３６は、従来から知られているものをそのまま適用することができ、これにより、すべてデジタル化した位相同期回路（ＰＬＬ）が構成される。
【０１３５】
以上において、本実施例のカウンタ回路は、図１１のようなＡＤＰＬＬへの適用に限定されるものではなく、例えば、無線回路システムの周波数シンセサイザやプロセッサなどのクロック等として、様々な回路に適用することができる。
【０１３６】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
（付記１）
カウンタクロックに従ってカウントしてカウント値を算出するカウンタ部と、
前記カウント値を、少なくとも３つのサンプリングクロックで取り込むサンプリング部と、
前記少なくとも３つのサンプリングクロックで取り込まれた少なくとも３つのサンプリング値を、前記少なくとも３つのサンプリングクロックにおけるタイミングのずれにより判定する判定部と、
を有することを特徴とするカウンタ回路。
【０１３７】
（付記２）
前記少なくとも３つのサンプリングクロックは、前記カウンタクロックの周期に同期したタイミングを有する連続したクロックである、
ことを特徴とする付記１に記載のカウンタ回路。
【０１３８】
（付記３）
前記判定部は、
前記少なくとも３つのサンプリング値における第１および第２サンプリング値が、当該第１および第２サンプリング値を取り込んだ第１および第２サンプリングクロックにおけるタイミングのずれに対応するときに、前記第１サンプリング値を、前記カウンタ部における正しいカウント値と判定して出力する、
ことを特徴とする付記１または付記２に記載のカウンタ回路。
【０１３９】
（付記４）
前記第１および第２サンプリングクロックにおけるタイミングのずれは、前記カウンタクロックの任意の第１周期であり、
前記第１および第２サンプリング値は、前記カウンタクロックの前記第１周期に対応したカウント値だけずれている、
ことを特徴とする付記３に記載のカウンタ回路。
【０１４０】
（付記５）
前記第１および第２サンプリングクロックにおけるタイミングのずれは、前記カウンタクロックの１周期であり、
前記第１および第２サンプリング値は、カウント値『１』だけずれている、
ことを特徴とする付記４に記載のカウンタ回路。
【０１４１】
（付記６）
前記判定部は、
前記第１および第２サンプリング値と、当該第１および第２サンプリング値を取り込んだ前記第１および第２サンプリングクロックにおけるタイミングのずれとの対応および判定を、異なる第１サンプリング値に対して複数回行う、
ことを特徴とする付記３乃至付記５のいずれか１項に記載のカウンタ回路。
【０１４２】
（付記７）
付記１乃至付記６のいずれか１項に記載のカウンタ回路を有することを特徴とするオールデジタルＰＬＬ。
【０１４３】
（付記８）
カウンタクロックに従ってカウントしてカウント値を算出し、
前記カウント値を、少なくとも３つのサンプリングクロックで取り込み、
前記少なくとも３つのサンプリングクロックで取り込まれた少なくとも３つのサンプリング値を、前記少なくとも３つのサンプリングクロックにおけるタイミングのずれにより判定および補正を行う、
ことを特徴とするカウンタ回路のサンプリング補正方法。
【０１４４】
（付記９）
前記少なくとも３つのサンプリングクロックは、前記カウンタクロックの周期に同期したタイミングを有する連続したクロックである、
ことを特徴とする付記８に記載のカウンタ回路のサンプリング補正方法。
【０１４５】
（付記１０）
前記判定および補正を行うのは、
前記少なくとも３つのサンプリング値における第１および第２サンプリング値が、当該第１および第２サンプリング値を取り込んだ第１および第２サンプリングクロックにおけるタイミングのずれに対応するときに、前記第１サンプリング値を、前記カウンタ部における正しいカウント値と判定して補正を行う、
ことを特徴とする付記８または付記９に記載のカウンタ回路のサンプリング補正方法。
【０１４６】
（付記１１）
前記第１および第２サンプリングクロックにおけるタイミングのずれは、前記カウンタクロックの任意の第１周期であり、
前記第１および第２サンプリング値は、前記カウンタクロックの前記第１周期に対応したカウント値だけずれている、
ことを特徴とする付記９に記載のカウンタ回路のサンプリング補正方法。
【符号の説明】
【０１４７】
２    キャリブレーション部
３    ＡＤＰＬＬ
１１，１１１，２１１    カウンタ部
１２，１１２，２１２    サンプラ部
１３    判定部
２１    微分回路
２２、３５    デジタルループフィルタ
２３    メモリ
２４，３４    加算器
２５    判定回路
３１    カウンタ
３２    ＴＤＣ（Time to Digital Converter）
３３    デコーダ
３６    ＤＣＯ（Digitally Controlled Oscillator）
【図１】
0005762116.tif 000002
【図２】
0005762116.tif 000003
【図３】
0005762116.tif 000004
【図４】
0005762116.tif 000005
【図５】
0005762116.tif 000006
【図６】
0005762116.tif 000007
【図７】
0005762116.tif 000008
【図８】
0005762116.tif 000009
【図９】
0005762116.tif 000010
【図１０】
0005762116.tif 000011
【図１１】
0005762116.tif 000012