(57)【要約】【課題】  動作クロックにより決まる通常の精度より、高い精度で位相差を検出できる、デジタルＰＬＬ回路を提供することを目的とする。【解決手段】  動作クロックに同期して動作し、入力した略一定の周期のクロック信号である外部クロックに同期する生成クロックを生成して出力するＰＬＬ回路であって、同じ周波数でそれぞれ位相の異なるｎ個の多相クロックで、動作クロックを含むｎ個の多相クロックを生成する多相クロック発生部と、位相比較器からの位相差信号に基づいて周波数信号を出力する周波数信号生成部と、周波数信号に応じた周波数で発振するクロックを生成し出力する発振部と、入力した外部クロックの立ち上りまたは立ち下りの時刻と発振部で生成したクロックの立ち上りまたは立ち下りの時刻との時刻差を前記多相クロックに基づいて計測した結果から前記時刻差を示す位相差信号を出力する位相比較器とを備える。【選択図】  図１
2014187607.tif 000002
【特許請求の範囲】
【請求項１】
動作クロックに同期して動作し、入力した略一定の周期のクロック信号である外部クロックに同期する生成クロックを生成して出力するＰＬＬ回路であって、
同じ周波数でそれぞれ位相の異なるｎ個の多相クロックであって、前記動作クロックを含むｎ個の多相クロックを生成する多相クロック発生部と、
位相比較器からの位相差信号に基づいて周波数信号を出力する周波数信号生成部と、
前記周波数信号に応じた周波数で発振するクロックを生成し出力する発振部と、
入力した外部クロックの立ち上りまたは立ち下りの時刻と前記発振部で生成したクロックの立ち上りまたは立ち下りの時刻との時刻差を、前記ｎ個の多相クロックに基づいて計測し、該計測結果から前記時刻差を示す位相差信号を出力する前記位相比較器と、
を備えることを特徴とするＰＬＬ回路。
【請求項２】
動作クロックに同期して動作し、入力した略一定の周期のクロック信号である外部クロックに同期する生成クロックを生成して出力するＰＬＬ回路であって、
同じ周波数でそれぞれ位相の異なるｎ個の多相クロックであって、前記動作クロックを含むｎ個の多相クロックを生成する多相クロック発生部と、
位相比較器からの位相差信号に基づく値の周波数ナンバを出力する周波数ナンバ生成部と、
前記周波数ナンバを前記動作クロック毎に累算することにより、該周波数ナンバに応じた周波数で発振するクロックを生成し出力する発振部と、
入力した外部クロックの立ち上りまたは立ち下りの時刻と前記発振部で生成したクロックの立ち上りまたは立ち下りの時刻との時刻差を前記ｎ個の多相クロックに基づいて計測し、該計測結果から前記動作クロックのｎ倍の時間精度で表現された時刻差を示す位相差信号を出力する前記位相比較器と、
を備えることを特徴とするＰＬＬ回路。
【請求項３】
請求項１または２に記載のＰＬＬ回路において、
前記位相比較器は、前記発振部で生成したクロックを含む波形をアナログ信号に変換し、該アナログ信号を２値化して求めたクロックを使用して前記時間差を計測するものであることを特徴とするＰＬＬ回路。
【請求項４】
請求項１または２に記載のＰＬＬ回路において、
前記位相比較器は、前記外部クロックの立ち上がりまたは立ち下がりタイミングを、前記ｎ個の多相クロックに基づいて計測するとともに、前記生成したクロックの立ち上がりまたは立ち下がりのタイミングを、前記発振部においてクロックが生成されたときの累算値に基づいて計測し、それら２つのタイミングの時刻差を算出するものであることを特徴とするＰＬＬ回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、動作クロックにより決まる通常の精度よりも高精度で位相差を検出できるＰＬＬ回路に関する。
【背景技術】
【０００２】
ＰＬＬ（Phase Locked Loop）回路は、入力された周期的な信号と位相が同期した信号を生成・出力する電子回路である。下記特許文献１は、オーディオ用のデジタルＰＬＬ回路で、外部クロックが変化したら、参照クロックを内部クロックに切り替えて動作を継続するものを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４６０６５３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
半導体上に形成される集積回路として提供されるデジタルＰＬＬ（特に完全デジタル位相同期回路（ＡＤＰＬＬ））では、そのデジタルＰＬＬを構成するロジック回路が、１つの動作クロックを時間単位として動作している。その場合、位相差の検出精度は、その動作クロックに応じた精度となる。例えば、動作クロックが１００ＭＨｚであれば、時間分解能は１／１００００００００＝１０ｎ秒である。そして、位相差の検出精度を上げることにより、デジタルＰＬＬのジッタを低減させることができる。
【０００５】
しかしながら、集積回路では、その製造プロセスに応じて、動作可能な最大の動作クロックが決まっており、それ以上に動作クロックを上げることが容易ではない。従って、デジタルＰＬＬの位相差の検出精度も、その動作クロックの上限に応じた精度が上限となる。
【０００６】
本発明は、動作クロックにより決まる通常の精度より、高い精度で位相差を検出できる、デジタルＰＬＬ回路を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１に係る発明は、動作クロックに同期して動作し、入力した略一定の周期のクロック信号である外部クロックに同期する生成クロックを生成して出力するＰＬＬ回路であって、同じ周波数でそれぞれ位相の異なるｎ個の多相クロックであって、前記動作クロックを含むｎ個の多相クロックを生成する多相クロック発生部と、位相比較器からの位相差信号に基づいて周波数信号を出力する周波数信号生成部と、前記周波数信号に応じた周波数で発振するクロックを生成し出力する発振部と、入力した外部クロックの立ち上りまたは立ち下りの時刻と前記発振部で生成したクロックの立ち上りまたは立ち下りの時刻との時刻差を、前記ｎ個の多相クロックに基づいて計測し、該計測結果から前記時刻差を示す位相差信号を出力する前記位相比較器と、を備えることを特徴とする。
【０００８】
請求項２に係る発明は、動作クロックに同期して動作し、入力した略一定の周期のクロック信号である外部クロックに同期する生成クロックを生成して出力するＰＬＬ回路であって、同じ周波数でそれぞれ位相の異なるｎ個の多相クロックであって、前記動作クロックを含むｎ個の多相クロックを生成する多相クロック発生部と、位相比較器からの位相差信号に基づく値の周波数ナンバを出力する周波数ナンバ生成部と、前記周波数ナンバを前記動作クロック毎に累算することにより、該周波数ナンバに応じた周波数で発振するクロックを生成し出力する発振部と、入力した外部クロックの立ち上りまたは立ち下りの時刻と前記発振部で生成したクロックの立ち上りまたは立ち下りの時刻との時刻差を前記ｎ個の多相クロックに基づいて計測し、該計測結果から前記動作クロックのｎ倍の時間精度で表現された時刻差を示す位相差信号を出力する前記位相比較器と、を備えることを特徴とする。
【０００９】
請求項３に係る発明は、請求項１または２に記載のＰＬＬ回路において、前記位相比較器は、前記発振部で生成したクロックを含む波形をアナログ信号に変換し、該アナログ信号を２値化して求めたクロックを使用して前記時間差を計測するものであることを特徴とする。
【００１０】
請求項４に係る発明は、請求項１または２に記載のＰＬＬ回路において、前記位相比較器は、前記外部クロックの立ち上がりまたは立ち下がりタイミングを、前記ｎ個の多相クロックに基づいて計測するとともに、前記生成したクロックの立ち上がりまたは立ち下がりのタイミングを、前記発振部においてクロックが生成されたときの累算値に基づいて計測し、それら２つのタイミングの時刻差を算出するものであることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、同じ周波数でそれぞれ位相の異なるｎ個の多相クロックを使用してクロックのタイミングの時刻・時間を計測するので、動作クロックより高い時刻精度で、外部クロックと生成クロックとの位相差を検出し、安定したクロックを生成することができる。
【図面の簡単な説明】
【００１２】
【図１】この発明の第１の実施形態であるＰＬＬ回路の構成図
【図２】第１の実施形態のＰＬＬ回路における各部の信号タイミングを示す図
【図３】第２の実施形態であるＰＬＬ回路の構成図
【図４】第２の実施形態のＰＬＬ回路における各部の信号タイミングを示す図
【図５】実施形態のＰＬＬ回路を適用したオーディオ装置の全体図
【発明を実施するための形態】
【００１３】
以下、図面を用いて本発明の実施の形態を説明する。
【００１４】
図１は、本発明の第１の実施形態であるＰＬＬ回路の構成図である。このＰＬＬ回路は、回路の全てをデジタル化した完全デジタル位相同期回路（ＡＤＰＬＬ：All Digital Phase-Locked Loop）である。図２は、図１のＰＬＬ回路における各部のタイミング等の説明図である。まず図１を参照してこのＰＬＬ回路の各部の機能の概要を説明し、その後、図２を参照して各部の動作の詳細を説明する。
【００１５】
図１において、多相クロック発生部１０１は、同じ周波数でそれぞれ位相の異なる８個の多相クロックを発生する。８個の多相クロックのうちの１つを動作クロックとする。動作クロックは本回路内の各部に供給され、回路内の各部は該動作クロックのタイミングを基準としてそれぞれの動作を行う。８個の多相クロックのうち、動作クロックとして使用するクロックを第１クロックと呼び、位相がずれていく順（各クロックの立ち上がりまたは立ち下がりのタイミングの時間的な順）に、第２クロック、第３クロック、…、第８クロックと呼ぶ。第１クロックと第２クロックとの位相差、第２クロックと第３クロックとの位相差、…、および、第８クロックと次の第１クロックとの位相差は、全て同じである。
【００１６】
８位相ラッチ１０２は、入力した外部クロックを、多相クロック発生部１０１からの第１から第８クロックの各立ち上がりのタイミングでラッチする。ラッチ結果は、８個の１または０の数字列で表現される。例えば、第１クロックの立ち上がりのタイミングで外部クロックの値が「０」、第２クロックの立ち上がりのタイミングで外部クロックの値が「０」、以下同様で、最後の第８クロックの立ち上がりのタイミングでも外部クロックの値が「０」の場合、それらの値を順番に並べて、そのラッチ結果を（０，０，０，０，０，０，０，０）と表現するものとする。例えば、第１〜第５クロックの各立ち上がりタイミングで外部クロックの値が「０」、第５クロックの立ち上がりから第６クロックの立ち上がりの間に外部クロックが「１」に立ち上がり、第６〜第８クロックの各立ち上がりタイミングで外部クロックの値が「１」の場合、ラッチ結果は（０，０，０，０，０，１，１，１）となる。
【００１７】
動作クロックカウンタ１０３は、動作クロックの立ち上がりタイミングで順次カウントアップを行い、そのカウント値（＝時刻整数値−１）を出力するカウンタである。「カウント値＝時刻整数値−１」は、例えば動作クロックのある立ち上がりタイミングから次の立ち上がりタイミングまでの１周期で動作クロックカウンタ１０３の値が「ｉ」であったとき、当該１周期を特定する時刻整数値が「ｉ＋１」であることを意味する。動作クロックカウンタ１０３は、ここでは１６ビットのカウンタとする。８位相ラッチ１０２は、入力した外部クロックが「０」から「１」に立ち上がったことを検出したとき、次の動作クロックの立ち上がりタイミングで反転信号を出力する。この反転信号が出力されたときは、次の動作クロックの立ち下がりタイミングで、中位ビットラッチ１０４は動作クロックカウンタ１０３の値をラッチする。中位ビットラッチ１０４がラッチしたカウント値は、外部クロックの立ち上がりタイミングの時刻を、動作クロック刻みの分解能で、表現したものとなる。
【００１８】
一方、ある動作クロックの１周期内のどこかのタイミングで外部クロックが「０」から「１」に立ち上がった場合、当該動作クロックの１周期の終わりのタイミング（終端）では、上記反転信号が出力されるが、その時、８位相ラッチ１０２におけるラッチ結果は、以下の［０］〜［７］の８つのうちの何れかとなる。
［０］（０，０，０，０，０，０，０，０）
［１］（０，０，０，０，０，０，０，１）
［２］（０，０，０，０，０，０，１，１）
［３］（０，０，０，０，０，１，１，１）
［４］（０，０，０，０，１，１，１，１）
［５］（０，０，０，１，１，１，１，１）
［６］（０，０，１，１，１，１，１，１）
［７］（０，１，１，１，１，１，１，１）
【００１９】
詳しくは図２のタイミング図で説明するが、この［０］〜［７］は、動作クロックの１周期を８つに等分割した各分割期間のどこで外部クロックが「０」から「１」に立ち上がったかを示すものである。そこで、８位相ラッチ１０２は、外部クロックの立ち上がりがあった周期の次の１周期に、これらの各ラッチ結果に対応する３ビットデータとして、［０］の場合は０００Ｂ（１０進の０）を、［１］の場合は００１Ｂ（１０進の１）を、［２］の場合は０１０Ｂ（１０進の２）を、［３］の場合は０１１Ｂ（１０進の３）を、［４］の場合は１００Ｂ（１０進の４）を、［５］の場合は１０１Ｂ（１０進の５）を、［６］の場合は１１０Ｂ（１０進の６）を、［７］の場合は１１１Ｂ（１０進の７）を、それぞれ出力する。この３ビットデータは、外部クロックの立ち上がりタイミングの時刻差（小数値）を、動作クロックの１周期を８つに等分割した分解能で表現した差分値である。
【００２０】
詳しく言うと、外部クロックの立ち上がりがあった１周期の終端（すなわち、上記中位ビットラッチ１０４へのラッチが行われた１周期の開始端）の時刻から上記３ビットデータの値だけ戻った分割期間で外部クロックが「０」から「１」に立ち上がっていたということである。例えば、上記［０］の場合は、外部クロックの立ち上がりがあった動作クロックの１周期を８分割したうちの最後の分割期間（第８クロックから次の第１クロックの間であり、先頭から数えると８番目の分割期間）で外部クロックが「０」から「１」に立ち上がっていたことを示す。上記［１］の場合は、外部クロックの立ち上がりがあった動作クロックの１周期を８分割したうちの７番目の分割期間（第７クロックから第８クロックの間）で外部クロックが「０」から「１」に立ち上がっていたことを示す。
【００２１】
そこで、外部クロックの立ち上がりがあった１周期を特定する時刻整数値を求め、該時刻整数値と上記３ビットデータをビット反転した時刻小数値とを結合することで、その時刻整数値で特定される１周期の先頭の時刻から上記ビット反転した時刻小数値の分だけ進んだ時刻（当該周期の終端の時刻から上記３ビットデータの示す差分値分だけ前に戻った時刻）、すなわち、動作クロックの８倍の分解能を有する外部クロックの立ち上がり時刻（外部クロック時刻）を得ることができる。ここで「外部クロックの立ち上がりがあった１周期を特定する時刻整数値を求める処理」は、中位ビットラッチ１０４にラッチされたカウント値をそのまま時刻整数値とするだけの処理である。「カウント値＝時刻整数値−１」の関係があり、かつ、外部クロックの立ち上がりがあった周期の次の周期でカウント値の中位ビットラッチ１０４へのラッチを行っているからである。また、ビット反転は、８位相ラッチ１０２にて行われる。この外部クロック時刻は、位相差検出部１０５に入力する。
【００２２】
発振部１０７は、ローパスフィルタ（周波数信号生成部）１０６から出力される周波数ナンバを動作クロックの立ち上がりタイミング毎に累算する３２ビットの累算器である。周波数ナンバを累算していくと、あるタイミングであふれ（累算器の３２ビットを超えるあふれ）が生じるので、発振部１０７の出力である累算値は鋸波の波形となる。その鋸波の立ち下がりから立ち下がりの期間が、生成クロックの１周期となる。
【００２３】
生成クロック時刻算出部１０８は、動作クロックカウンタ１０３からのカウント値と、ローパスフィルタ１０６からの周波数ナンバと、発振部１０７からのあふれ残値とを入力する。発振部１０７からの「あふれ残値」とは、発振部１０７の累算値があふれたときの累算器の値である。周波数ナンバを累算していってあふれを起こすので、あふれ残値は、周波数ナンバ未満の値となる。
【００２４】
発振部１０７は動作クロックの立ち上がり毎に周波数ナンバを累算していくので、実際には階段状に増加していく。しかし、仮想的に連続して滑らかに増加するものと考えた場合、ある動作クロックの立ち上がりタイミングで発振部１０７の累算値があふれたということは、その１つ前の動作クロックの立ち上がりタイミングからあふれを検出した動作クロックの立ち上がりタイミングまでの１周期の期間内に、「仮想的なあふれ点」が存在するということになる。ここで「仮想的な」というのは、実際には階段状に増加していくものを仮想的に滑らかであるものと仮定して求めたあふれ点であることを意味しているが、逆に考えればこの「仮想的なあふれ点」こそが真にその時刻を求めるべき「真のあふれ点」であり、あふれを検出した動作クロックの立ち上がりタイミングは「見かけ上のあふれ点」といえる。そして、その「真のあふれ点」から「見かけ上のあふれ点」までの期間で、発振部１０７の累算器があふれ残値だけ増加したことになる。動作クロックの１周期で周波数ナンバの値が累算されるのであるから、比例配分することで、あふれ残値の分だけ増加した時間がわかる。「見かけ上のあふれ点」のタイミングからその時間分戻った時刻が、上記「真のあふれ点」の時刻であり、生成クロックの立ち上がりタイミングである生成クロック時刻となる。なお、あふれを検出した動作クロックの立ち上がりタイミングである「見かけ上のあふれ点」から「真のあふれ点」までの戻り時間を「あふれ点戻り時間」と呼ぶ。
【００２５】
生成クロック時刻算出部１０８は、上記生成クロック時刻を算出する。具体的には、まず、あふれを検出した動作クロックの立ち上がりタイミング（見かけ上のあふれ点）における動作クロックカウンタ１０３のカウント値（＝時刻整数値−１）を取得する。このカウント値の取得は、真のあふれ点の時刻である生成クロック時刻が属する動作クロックの１周期の次の周期（の先頭）で実行され、かつ、カウント値＝時刻整数値−１であるので、ここで取得したカウント値が生成クロック時刻が属する動作クロックの１周期の時刻整数値となる。次に、生成クロック時刻算出部１０８は、発振部１０７からのあふれ残値を周波数ナンバで割って、あふれ点戻り時間（差分値）を求める。さらに、上記取得した時刻整数値に、あふれ点戻り時間の上位３ビットをビット反転した時刻小数値を、結合する。これにより、真のあふれ点を含む１周期の先頭の時刻から上記あふれ点戻り時間の上位３ビットをビット反転した時刻小数値の分だけ進んだ時刻（当該周期の終端の時刻から上記あふれ点戻り時間の上位３ビットが示す差分値分だけ前に戻った時刻、すなわち、動作クロックの８倍の分解能を有する生成クロックの立ち上がり時刻（生成クロック時刻）を求める。
【００２６】
なお、あふれ点戻り時間の算出は高精度に行うこともできるが、上述したように、外部クロック時刻は動作クロックの１周期を８分割した分解能で表現しているので、あふれ点戻り時間も同程度の精度（３ビット）で算出している。
【００２７】
なお、発振部１０７が３２ビット長（３１番ビット〜０番ビット）の場合、周波数ナンバは２２ビット（２１番ビット〜０番ビット）あれば、１９２ｋＨｚのレンジに対応できる。その場合、あふれ点戻り時間を表現するための３ビット（生成クロック時刻の下位３ビット）は、発振部１０７の出力の３２ビット中の中位１６ビット（２１番ビット〜６番ビット）と、周波数ナンバの上位１６ビット（２１番ビット〜６番ビット）に基づいて算出すればよい。
【００２８】
位相差検出部（位相比較器）１０５は、上記外部クロック時刻と生成クロック時刻とに基づいて位相差信号を算出する。具体的には、外部クロック時刻から生成クロック時刻を減算した値を位相差信号として出力する。ここで出力される位相差信号は、負の１／２周期長から正の１／２周期長（この「周期長」は外部クロック乃至生成クロックの周期長）の範囲である。なお、外部クロック時刻が発生しない間に生成クロック時刻が複数回発生している場合は、生成クロックの周波数が大幅に高すぎるということなので、上記減算した値の代わりに、該正の１／２周期長以上の所定値を位相差信号として出力し、逆に、生成クロック時刻が発生しない間に外部クロック時刻が複数回発生している場合は、生成クロックの周波数が大幅に低すぎるということなので、上記減算した値の代わりに、該負の１／２周期長以下の所定値を位相差信号として出力するようにすればよい。ローパスフィルタ１０６は、該位相差信号に基づき、その位相差が減少するように（すなわち外部クロック時刻と生成クロック時刻とが近づくように）現状の周波数ナンバを増減する。具体的には、外部クロック時刻から生成クロック時刻を減算した位相差が正値であった場合は、生成クロック時刻の方が外部クロック時刻より早いということであるから、生成クロック時刻を遅らせるため、周波数ナンバを位相差信号に応じた値だけ減少させる。逆に、外部クロック時刻から生成クロック時刻を減算した位相差が負値であった場合は、生成クロック時刻の方が外部クロック時刻より遅れているということであるから、生成クロック時刻を早めるため、周波数ナンバを位相差信号に応じた値だけ増加させる。
【００２９】
周波数判定部１１０は、予め４４．１ｋＨｚ，４８ｋＨｚ，９６ｋＨｚ等の１つ以上の追従すべき周波数の指定を受け付けておき、入力した外部クロックの周波数を検出し、上記指定された周波数の範囲に入るとき、その周波数に対応する周波数ナンバの初期値をローパスフィルタ１０６に出力する。ローパスフィルタ１０６は、該初期値の周波数ナンバから同期の動作を開始する。
【００３０】
ロック判定部１０９は、上述の生成クロックと外部クロックのタイミング差の変動が所定値以下か否か、すなわち、生成クロックが外部クロックにロック（同期）しているか否かを判定する。直接比較する代わりに、位相差検出部１０５が出力する位相差信号に基づいて判定しても良い。ロック判定部１０９は、複数クロックにわたり継続的な同期が確認されているとき、ロック信号「１」を出力し、そうでないときロック信号「０」を出力する。ローパスフィルタ１０６は、ロック信号「０」が入力されている間は、（生成クロックと外部クロックの位相差の絶対値が大きいということであるから）ローパスフィルタの時定数を変えて、できるだけ早く生成クロック時刻が外部クロック時刻に近づくように、周波数ナンバを比較的大きく変化させるものとする。逆に、ローパスフィルタ１０６は、ロック信号「１」が入力されている間は、（生成クロックと外部クロックの位相差の絶対値が小さく同期しているということであるから）ローパスフィルタの時定数を変えて、生成クロック時刻が外部クロック時刻にゆっくり追従するようにする。
【００３１】
なお、本実施形態では、ロックがかかった後も、外部クロックと生成クロックの位相差を検出し該位相差に基づいて周波数ナンバを制御する動作を継続するが、ロックがかかった後は、外部クロックが入力しなくても、ロックした時点の周波数の生成クロックを出し続けるように構成しても良い。
【００３２】
ミュート判定部１１１は、ロック判定部１０９からロック信号「１」が入力している間は、オーディオ信号のミュートを解除する「０」のミュート信号を出力し、ロック信号「０」が入力している間は、オーディオ信号のミュートを指示する「１」のミュート信号を出力する。このミュート信号は、後述する図５のオーディオ装置内で使用される。
【００３３】
図２のタイミング図を参照して、図１のＰＬＬ回路における各信号のタイミングを説明する。
【００３４】
矢印Ｔは時間の経過方向を示す。２０１は外部クロック、２０２は生成クロックを示す。２０３−１〜２０３−８は、多相クロック発生部１０１が発生する８個の多相クロックを第１〜第８クロックの順に示すものである。２０３−１は動作クロックである。２０４−１は動作クロックカウンタ１０３のカウント値、２０４−２は動作クロックの各周期を特定する時刻整数値を示す。カウント値２０４−１は、動作クロックが立ち上がる毎に、ｉ，ｉ＋１，ｉ＋２，…とカウントアップされている。これらのカウント値２０４−１で特定される各期間を、期間ｉ、期間ｉ＋１、期間ｉ＋２、…と呼ぶものとする。２０５は外部クロックの立ち上がりタイミング、２０６は生成クロックの立ち上がりタイミングである。
【００３５】
２０７は、期間ｉにおける８位相ラッチ１０２のラッチ結果、期間ｉ＋１における８位相ラッチ１０２のラッチ結果、…を順に示す。期間ｉでは、外部クロック２０１はずっと「０」であるので、ラッチ結果は（０，０，０，０，０，０，０，０）である。期間ｉ＋１では、外部クロック２０１は多相クロックのうち第５クロックの立ち上がりと第６クロックの立ち上がりの間で「１」に立ち上がっているので、ラッチ結果は（０，０，０，０，０，１，１，１）である。期間ｉ＋２，ｉ＋３，ｉ＋４では、外部クロック２０１はずっと「１」であるので、ラッチ結果は（１，１，１，１，１，１，１，１）である。
【００３６】
図の下側の点線２１１−１〜２１１−６は、累算値の値が増加していく様子を示す。これらの各点線間が、周波数ナンバ２１２に相当する。２１３は、発振部１０７から出力される累算値を示す。この累算値２１３は、実際には動作クロック２０３−１の立ち上がりタイミング毎に周波数ナンバだけ増加していく階段状のグラフになるものであるが、ここでは仮想的に連続して滑らかに増加するグラフ２１３で表現している。
【００３７】
外部クロックの立ち上がりタイミング２０５の時刻である外部クロック時刻の取得方法を説明する。いま期間ｉ＋１の間で外部クロックが立ち上がっているので、８位相ラッチ１０２は、次の期間ｉ＋２の先頭のタイミング２１４に反転信号を出力し、中位ビットラッチ１０４は、該反転信号に応じて、その次の動作クロック立ち下がりタイミング（期間ｉ＋２の中間）でカウント値ｉ＋２をラッチする。また、期間ｉ＋１の第５クロックと第６クロックの間で外部クロックが立ち上がっているので（時点２０５）、８位相ラッチ１０２は、期間ｉ＋２において、そのラッチ結果（０，０，０，０，０，１，１，１）に対応する３ビットデータ０１１Ｂ（１０進の３）を出力する。この３ビットデータ０１１Ｂ（１０進の３）は、時点２１４から外部クロックの立ち上がり時点２０５までの戻り値、すなわち２１６に示す時間を示すものである。
【００３８】
以上により、期間ｉ＋２で中位ビットラッチ１０４にラッチした値をそのまま時刻整数値ｉ＋２とし、さらにその下位ビットに、期間２１６に対応する３ビットデータ０１１Ｂ（８位相ラッチのラッチした値、１０進数の３）を反転した時刻小数値１００Ｂ（１０進数の４）を付加することで、外部クロックの立ち上がり時刻、すなわち時点２１５の時刻を算出できる。なお、期間２１６に対応する３ビットデータ０１１Ｂを反転した時刻小数値１００Ｂは、期間ｉ＋１の開始端から時点２１５までの時間（正確に言うと、３ビットデータの表現では外部クロック２０１の立ち上がり時点２０５が第６クロックの立ち上がり時点２１５に丸められているのに対し、３ビットデータを反転した表現では、外部クロックの立ち上がり時点２０５が第５クロックの立ち上がり時点に丸められたことになるので、その分のずれはある）に相当する。以上のように求めた時点２１５の時刻を外部クロック時刻として、位相差検出部１０５に入力する。
【００３９】
次に、生成クロックの（真の）立ち上がりタイミング２２３の時刻である生成クロック時刻の取得方法を説明する。発振部１０７から出力される生成クロックの（見掛け上の）立ち上がり２０６は、動作クロックの分解能に丸め込まれた分解能となるが、生成クロックの（真の）立ち上がり２２３は、その時点で累算器に残っている「あふれ残値」分だけ戻ったタイミングである。いま期間ｉ＋４の開始端２０６の時点で、発振部１０７のあふれを検出したとする。２２０は、発振部１０７の累算値が最大値を超えて「０」に戻るレベル（あふれ点のレベル）を示す。矢印２２１は、あふれが検出された時点２０６で、発振部１０７の累算器に残っている「あふれ残値」を示す。２１３は、動作クロックの立ち上がり時点（各期間の先頭）における、発振部１０７の累算値を直線で接続して滑らかにした、仮想的な累算値のグラフである。この仮想的累算値２１３が、あふれ点のレベル２２０を横切るタイミング２２３が、生成クロックの本当の立ち上がりのタイミングということになる。見掛け上の累算値２１３は、動作クロックの１周期で周波数ナンバ２１２だけ増加するので、「あふれ残値」２２１を周波数ナンバで除算することにより、時間２２２を求めることができる。この時間２２２が、図１で説明した「あふれ点戻り時間」であり、ここでは、外部クロック時刻と同じ時間分解能とするため、その上位３ビットだけが使用される。
【００４０】
以上により、時点２０６の時刻を示す動作クロックカウンタ値ｉ＋４をそのまま時刻整数値ｉ＋４（期間ｉ＋３の開始端の時刻整数値）とし、その下位ビットに、あふれ点戻り時間２２２の上位３ビットデータを反転した３ビットの時刻小数値を付加することで、生成クロックの（真の）立ち上がり時刻（あふれ点２２３）、すなわち時点２２４の時刻を算出できる。なお、あふれ点戻り時間２２２の上位３ビットデータを反転した３ビットの時刻小数値は、期間ｉ＋３の開始端から時点２２３までの時間に相当する。以上のように求めた時点２２４の時刻を生成クロック時刻として、位相差検出部１０５に入力する。
【００４１】
以上のように、動作クロックを基準として計測した時刻よりも下位に３ビット分を拡張した高精度な時刻で外部クロック時刻や生成クロック時刻を求め、その位相差から周波数ナンバを求めて、外部クロックに生成クロックを同期させるので、高精度な同期が実現できる。図２中の２３１は、動作クロックを基準として検出する外部クロックと生成クロックの位相差である。動作クロックで決まる分解能しかないので、動作クロックの周期を単位とする時間差でしか位相差を表現できない。２３２は本実施形態のＰＬＬ回路における外部クロックと生成クロックの位相差である。この位相差２３２は、動作クロックで決まる分解能の８倍の分解能で表現されているので、より高精度な同期が実現される。
【００４２】
図３は、本発明の第２の実施形態であるＰＬＬ回路の構成図である。このＰＬＬ回路は、図１のフルデジタルのＰＬＬ回路の一部をアナログ回路で構成したものである。図４は、図３のＰＬＬ回路における各部のタイミング等の説明図である。
【００４３】
図３において、多相クロック発生部３０１は、図１の多相クロック発生部１０１と同様の多相クロックを発生する。８位相ラッチ３０２は、８位相ラッチ１０２と同様に多相クロックによる入力信号のラッチを行う。ただし、８位相ラッチ３０２には、後述するＳＲラッチ３２４から出力される差分（アナログ位相差）が入力されるので、８位相ラッチ３０２の入力部分は動作クロックに同期しない処理をしている。位相差検出部３０５は、外部クロックと生成クロックとの位相差信号を出力する点は図１の位相差検出部１０５と同じであるが、該位相差信号の生成方法は異なる。ローパスフィルタ３０６は、図１のローパスフィルタ１０６と同様に、位相差信号に基づく周波数ナンバを出力する。発振部３０７は、図１の発振部１０７と同様に、周波数ナンバを累算して生成クロックを含む鋸波形状の累算値を出力する。
【００４４】
ＤＡＣ３２１は、発振部３０７から出力される累算値の鋸波を三角波に変換（例えば、累算値の最上位ビットで、該最上位ビット以外のビットのＸＯＲを求めることで、三角波に変換できる）した後、アナログ信号に変換する。該アナログ信号の三角波を、ローパスフィルタ３２２で滑らかなアナログ信号の波形とした後、２値化処理部３２３で所定の閾値に基づいて０／１に２値化する。これにより発振部３０７の出力から生成クロックが取得できる。なお、３角波に変換してからＤ／Ａ変換することは必須ではない。変換テーブルを用いて、累算値を、任意形状（正弦波等）に変換してＤ／Ａ変換してもよいし、変換せずに鋸波形状のままＤ／Ａ変換してもよい。
【００４５】
ＳＲ（セット−リセット）ラッチ３２４は、外部クロックが「１」のとき「１」にセットされ、生成クロックが「１」のとき「０」にリセットされるラッチである。ＳＲラッチ３２４の出力は、外部クロックの立ち上がり時点から生成クロックの立ち上がり時点までの時間的な差分（アナログ位相差）を示す信号となる。すなわち、この差分信号が「１」の期間の長さが、外部クロックの立ち上がりから生成クロックの立ち上がりまでの位相差であり、「０」の期間の長さが、生成クロックの立ち上がりから外部クロックの立ち上がりまでの位相差である。ここでは、前者を正の位相差と呼び、後者を負の位相差と呼び、ここでは、何れか絶対値の小さい方の位相差を測定するものとする。外部クロックと生成クロックの周波数が位相差を測定できる程度に近いとき、正の位相差の絶対値と負の位相差の絶対値の和はその何れかないし平均の周波数に対応する周期長（基準周期長）であり、何れか一方が測定すれば、他方は算出できる。
【００４６】
この差分信号の立ち上がりと立ち下がりを、８位相ラッチ３０２で、多相クロック発生部３０１からの多相クロックに基づいてラッチする。８位相ラッチ３０２は、ラッチ結果がオール「０」すなわち（０，０，０，０，０，０，０，０）またはオール「１」すなわち（１，１，１，１，１，１，１，１）であった場合は、そのオール「０」を示すオール「０」信号ないしオール「１」を示すオール「１」信号を出力する。上位位相差検出部３２５は、上記基準周期ごとに、動作クロックに基づいて（動作クロックの時間分解能で）、オール「０」の期間長と、オール「１」の期間長とをそれぞれカウントする。そして、上位位相差検出部３２５は、測定されたオール「０」期間長とオール「１」期間長とを比較し、オール「０」期間長の方が長い場合は、正の符号を有し、かつ、絶対値がオール「１」期間長の上位位相差情報（正の整数値）を出力し、オール「１」期間長の方が長い場合は、負の符号を有し、かつ、絶対値がオール「０」期間長の上位位相差情報（負の整数値）を出力する。上位位相差検出部３２５で検出された上位位相差情報は、ロック判定部３０９と位相差検出部３０５に入力する。
【００４７】
さらに、８位相ラッチ３０２は、動作クロックの１周期内のラッチ結果がオール「０」でもオール「１」でもなかった場合は、そのラッチ結果中の「１」の個数を示す３ビットデータを下位位相差情報として位相差検出部３０５に出力する。なお、下位位相差情報は「０」の数を示す３ビットデータとしても良いが、両者は１の補数の関係にあり、基本的に等価である。また、ここでラッチ結果の「１」ないし「０」の連続性をチェックし、連続性が無いときにエラー警告するようにしてもよい。上記下位位相差情報は、生成クロックおよび外部クロックのタイミングに応じて、上記基準周期内に、０乃至２回、出力される。位相差検出部３０５は、上記基準周期毎に、上位位相差検出部３２５からの１の上位位相差情報（整数値）と、８位相ラッチ３０２からの０乃至２の下位位相差情報（小数値）とを合算することにより、１の位相差信号を得る。上位位相差信号が正の整数値である場合は、該正の整数値に上記０乃至２の下位位相差情報が示す正の小数値を加算することにより、正の値の位相差信号が算出され、また、上位位相差信号が負の整数値である場合は、該負の整数値に下位位相差情報が示す負の小数値を加算することにより、負の値の位相差信号が算出される。位相差検出部３０５により合成された位相差信号は、ローパスフィルタ３０６に入力される。ローパスフィルタ３０６と発振部３０７の動作は、図１と同様である。
【００４８】
周波数判定部３１０は、図１の周波数判定部１１０と同様の動作を行う。ロック判定部３０９は、図１のロック判定部１０９と同様のロック信号を出力するものであるが、そのロック信号は上位位相差情報に基づいて「０」か「１」かを決定するものである。例えば、上位位相差情報が継続的に「−１以上、１以下」の範囲に入っているときは、生成クロックが外部クロックに同期しているものとしてロック信号「１」を出力し、入っていないときは、生成クロックが外部クロックに同期していないものとしてロック信号「０」を出力する。なお、上位位相差信号が「−１以上、１以下」の範囲に入っている場合には、上記オール「０」期間長と上記オール「１」期間長の何れか一方が「０」となる。また、生成クロックと外部クロックの周波数が大きく異なることにより、オール「０」ないしオール「１」が継続するケースが考えられるが、その場合は、周波数判定部３１０で判定される周波数が現在の周波数ナンバの値に整合しないので、ロック判定部３０９からロック信号「０」が出力されるとともに、ローパスフィルタ３０６に、該判定された周波数に対応する周波数ナンバ初期値を再設定し、該初期値の周波数ナンバからの動作を開始させる。ミュート判定部３１１は、図１のミュート判定部１１１と同様の動作を行う。
【００４９】
図４のタイミング図を参照して、図３の第２の実施形態のＰＬＬ回路における各信号のタイミングを説明する。
【００５０】
矢印Ｔは時間の経過方向を示す。４０１は外部クロック、４０２は生成クロックを示す。４０３−１〜４０３−８は、多相クロック発生部３０１が発生する８個の多相クロックを第１〜第８クロックの順に示すものである。４０３−１は動作クロックである。４０４は動作クロックカウンタのカウント値を示す。４０５は外部クロックの立ち上がりタイミング、４０６は生成クロックの立ち上がりタイミングである。
【００５１】
４０８はＳＲラッチ３２４が出力する差分信号（アナログ位相差）を示す。この差分信号は、外部クロック４０１の立ち上がり時点４０５で「１」にセットされ、生成クロック４０２の立ち上がり時点４０６で「０」にリセットされる。４０７は、期間ｉにおける上記差分信号４０８の８位相ラッチ３０２によるラッチ結果、期間ｉ＋１における上記差分信号４０８の８位相ラッチ３０２によるラッチ結果、…を順に示す。期間ｉ＋１では、差分信号４０８が多相クロックのうち第５クロックの立ち上がりと第６クロックの立ち上がりの間で「１」に立ち上がっているので、ラッチ結果は（０，０，０，０，０，１，１，１）である。期間ｉ＋２では、差分信号４０８がずっと「１」であるので、ラッチ結果は（１，１，１，１，１，１，１，１）である。期間ｉ＋３では、差分信号４０８が多相クロックのうち第４クロックの立ち上がりと第５クロックの立ち上がりの間で「０」に立ち下がっているので、ラッチ結果は（１，１，１，１，０，０，０，０）である。
【００５２】
差分信号４０８が「１」の期間中、８位相ラッチ３０２によるラッチ結果がオール「１」になっている動作クロックの周期は、期間ｉ＋２の１周期だけである。従って、上位位相差検出部３２５では、オール「１」期間長よりオール「０」期間長が長いと判定され、カウントされたオール「１」の期間長「１」が、上位位相差情報（正の整数値）として出力される。また、８位相ラッチ３０２は、期間ｉ＋２の開始端のタイミングに、期間ｉ＋１のラッチ結果（０，０，０，０，０，１，１，１）に基づいて、値が「３／８」（０１１Ｂ）の下位位相差情報（４１６に示す時間を表している）を生成して位相差検出部３０５に出力し、さらに期間ｉ＋４の開始端のタイミングに、期間ｉ＋３のラッチ結果（１，１，１，１，０，０，０，０）に基づいて、値が「４／８」（１００Ｂ）の下位位相差情報（４２２に示す時間を表している）を生成して位相差検出部３０５に出力する。位相差検出部３０５は、入力した上位位相差情報「１」と下位位相差情報「３／８」および「４／８」（それぞれ正値）を合算して、値が「１＋７／８」の位相差情報（位相差４３２に相当）を得、ローパスフィルタ３０６に出力する。
【００５３】
上記はオール「１」期間長よりオール「０」期間長が長いケースを説明したが、オール「０」期間長よりオール「１」期間長が長いケースも同様である。例えば、図４で、４０２を外部クロック、４０１を内部クロックと読み替え、ＳＲラッチ３２４の出力が期間４３２だけ「０」となる場合（差分信号４０８の「０」と「１」を入れ替える）を想定すればよい。この場合、上位位相差検出部３２５では、オール「０」期間長よりオール「１」期間長が長いと判定され、カウントされたオール「０」の期間長「１」を負値とした「−１」が、上位位相差情報（負の整数値）として出力される。また、８位相ラッチ３０２は、期間ｉ＋２およびｉ＋４の各開始端のタイミングに、値が「５／８」（１０１Ｂ）および「４／８」（１００Ｂ）の下位位相差情報をそれぞれ出力する。位相差検出部３０５は、上位位相差情報「−１」と下位位相差情報「−３／８」および「−４／８」（それぞれ負値に換算している）を合算して、値が「−１−７／８」の位相差情報を得、ローパスフィルタ３０６に出力する。
【００５４】
以上の第２の実施形態でも、動作クロックを基準として計測した時刻よりも下位に３ビット分を拡張した高精度な分解能で差分信号４０８が「１」の期間の長さ（外部クロックと生成クロックとの位相差）を求め、その位相差から周波数ナンバを求めて、外部クロックに生成クロックを同期させるので、高精度な同期が実現できる。図４中の４３１は、動作クロックを基準として検出する外部クロックと生成クロックの位相差である。動作クロックで決まる分解能しかないので、動作クロックの周期を単位とする時間差でしか位相差を表現できない。４３２は本第２の実施形態のＰＬＬ回路における外部クロックと生成クロックの位相差である。この位相差４３２は、動作クロックで決まる分解能の８倍の分解能で表現されているので、より高精度な同期が実現される。
【００５５】
図５は、上記第１および第２の実施形態のＰＬＬ回路を適用したオーディオ装置の全体図である。５０１は、標本化クロックに同期したデジタルのオーディオ信号を出力するオーディオソースであり、出力されるオーディオ信号は、該標本化クロックを伴う。例えば、マイク等からのアナログのオーディオ信号をデジタルに変換して出力するＡ／Ｄ変換器、録音されているデジタルのオーディオ信号を再生する再生器などである。５０２は、オーディオソース５０１から受け取ったオーディオ信号に種々の信号処理を施して出力するオーディオ装置である。５０３は、オーディオ装置５０２から出力されるオーディオ信号を受信するオーディオシンクであり、例えば受信したオーディオ信号をＤＡ変換してスピーカやヘッドフォンなどで放音する装置である。
【００５６】
オーディオ装置５０２は、上述の第１または第２の実施形態のＰＬＬ回路５１１を備える。ＰＬＬ回路５１１は、オーディオ信号に付随する標本化クロックを外部クロックとして入力し、その外部クロックに追従する生成クロックを出力する。また、ＰＬＬ５１１からは、生成クロックの位相が外部クロックに対して未だ安定的に同期していないとき（ロック信号「０」）、ミュート信号「１」が出力され、安定的に同期しているとき（ロック信号「１」）、ミュート信号「１」が出力される。信号処理部５１２は、ＰＬＬ回路５１１からの生成クロックに同期して種々の信号処理を行う。ミュート回路５１３は、ミュート信号が「１」のとき信号処理部５１２からのオーディオ信号をミュートし、ミュート信号が「０」のとき信号処理部５１２からのオーディオ信号をスルーしてオーディオシンク５０３に出力する。ロックがかかり（ロック信号「１」）、オーディオ信号が生成クロックに正確に同期している場合は、オーディオ信号に対し、信号処理部５１２がサンプリング周波数変換することなくそのまま信号処理を施しても、ノイズ等の不都合は発生しない。その場合、ミュート信号は「０」とされ、信号処理部５１２が出力するオーディオ信号は、ミュート回路５１３を通過してオーディオシンク５０３に供給される。一方、ロックが外れたとき（ロック信号「０」）は、信号処理部５１２のオーディオ信号にノイズが含まれるので、ミュート信号が「１」とされ、該オーディオ信号のオーディオシンクへの供給がブロックされる。
【００５７】
なお、上記実施形態では、動作クロック基準で求めた時間位置から８倍の分解能で高精度な時刻や時間を算出したが、この算出方法は任意である。要するに、動作クロック基準の分解能で求めた時刻・時間と、８位相ラッチ１０２，３０２のラッチ結果から８倍の分解能で求めた時刻・時間とを使って、高精度に時刻・時間を算出すればよい。また、上記実施形態では、動作クロックの１周期を８分割して、分解能を８倍とする（下位に３ビット拡張する）ケースで説明したが、幾つの分割期間に分割し、どれだけ分解能を上げるかは任意である。４分割して下位に２ビット拡張してもよいし、１６分割して下位に４ビット拡張してもよい。また、必ずしも２のべき乗個に分割する必要はなく、例えば１０分割して、分解能を１０倍とする構成にしてもよい。
【００５８】
上記実施形態では、各クロックの立ち上がりのタイミングを基準として動作する例を説明したが、立ち上がりの代わりに立ち下がりのタイミングを利用しても良い。
【００５９】
上記実施形態では、ローパスフィルタ１０６ないし３０６により「位相差信号に基づいて周波数ナンバ（周波数信号）を出力する周波数信号生成部」を構成したが、周波数信号生成部の構成はこれに限らない。位相差信号に応じたフィードバックをかけることができ、かつ、値が急激に変化することのない周波数信号を発生できる構成であれば、どのような処理ブロックであっても良い。また、発振部は、上記実施形態における発振部１０７ないし３０７（３２ビット累算器）には限らない。所望の精度を実現できる任意のビット数の累算器として良い。また、累算値のあふれが、そのビット数での最大値より小さい所定値で起こるような構成としてもよい。また、上記実施形態では正の周波数ナンバを累算する累算器としたが、負の値を累算し、累算値が徐々に減少する累算器としてもよい。その場合のあふれは、累算値が「０」を下回る時点で発生するものとすればよい。
【符号の説明】
【００６０】
１０１…多相クロック発生部、１０２…８位相ラッチ、１０３…動作クロックカウンタ、１０４…中位ビットラッチ、１０５…位相差検出部、１０６…ローパスフィルタ、１０７…発振部、１０８…生成クロック時刻算出部、１０９…ロック判定部、１１０…周波数判定部、１１１…ミュート判定部。
【図１】
2014187607.tif 000003
【図２】
2014187607.tif 000004
【図３】
2014187607.tif 000005
【図４】
2014187607.tif 000006
【図５】
2014187607.tif 000007