(57)【特許請求の範囲】
【請求項１】
第１のクロックのエッジに同期して、入力されたデータをラッチして、第１のデータを出力する第１のフリップフロップと、
前記第１のデータを、第２のクロックのエッジに同期してラッチして、第２のデータを出力する第２のフリップフロップと、
前記第１のデータを、前記第２のクロックから半周期遅れた第３のクロックのエッジに同期してラッチして、第３のデータを出力する第３のフリップフロップと、
前記第３のデータを、前記第２クロックのエッジに同期してラッチして、第４のデータを出力する第４のフリップフロップと、
前記第１のデータと前記第２のデータの同一性を判断する判断手段と、
前記判断手段により判断された結果を前記第３のクロックのエッジに同期してラッチして、第５のデータを出力する第５のフリップフロップと、
前記第５のデータに基づいて、前記第２のデータ、または、前記第４のデータのいずれかを選択して出力する選択出力手段と
を備え、
前記第２のフリップフロップおよび前記第３のフリップフロップは、並列に配置され、前記第１のデータを同時にラッチする
ことを特徴とする信号処理装置。
【請求項２】
前記第１のクロックおよび前記第２のクロックは、近接した周波数と位相を有する
ことを特徴とする請求項１に記載の信号処理装置。
【請求項３】
前記選択出力手段は、前記第５のデータが、前記第１のデータと前記第２のデータが同一であると判断された結果が前記第３のクロックのエッジに同期してラッチされて、出力されたものである場合、前記第２のデータを選択して出力し、
前記第５のデータが、前記第１のデータと前記第２のデータが同一ではないと判断された結果が前記第３のクロックのエッジに同期してラッチされて、出力されたものである場合、前記第４のデータを選択して出力する
ことを特徴とする請求項１に記載の信号処理装置。
【請求項４】
前記選択出力手段により選択され出力された、前記第２のデータ、または、前記第４のデータのいずれかのデータを、前記第２のクロックのエッジに同期してラッチし、出力する第６のフリップフロップを
さらに備えることを特徴とする請求項１に記載の信号処理装置。
【請求項５】
入力されたデータを、第１のクロックのエッジに同期して、第１のフリップフロップによりラッチして、第１のデータを出力し、
前記第１のデータを、第２のクロックのエッジに同期して、第２のフリップフロップによりラッチして、第２のデータを出力し、
前記第１のデータを、前記第２のフリップフロップと並列に配置された第３のフリップフロップにより、前記第２のクロックのエッジから半周期遅れた第３クロックのエッジに同期して、前記第２フリップフロップと同時にラッチして、第３のデータを出力し、
前記第３のデータを前記第２クロックのエッジに同期して第４のフリップフロップによりラッチして、第４のデータを出力し、
前記第１のデータと前記第２のデータの同一性を判断し、
判断された結果を前記第３のクロックのエッジに同期して第５のフリップフロップによりラッチして、第５のデータを出力し、
前記第５のデータに基づいて、前記第２のデータ、または、前記第４のデータのいずれかを選択して出力する
ことを特徴とする信号処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、信号処理装置および方法に関し、任意の周波数および位相関係のクロック間において、正確にデータを受け渡すことができるようにした信号処理装置および方法に関する。
【０００２】
【従来の技術】
デジタル回路において、任意の周波数および位相関係を有する複数のクロック間でデータの受け渡しが行われることがある。図１を参照して、従来のデータの受け渡し処理を説明する。
【０００３】
図１に示されるように、クロックＣＬＫ１（以下、ＣＬＫ１と称する）に同期してデータをラッチするフリップフロップ１と、クロックＣＬＫ２（以下、ＣＬＫ２と称する）に同期してデータをラッチするフリップフロップ２の間でデータが受け渡される。このＣＬＫ１とＣＬＫ２は、任意の周波数および位相関係である。
【０００４】
フリップフロップ１は、ＣＬＫ１のエッジに同期して入力されたデータをラッチし、出力する。このフリップフロップ１により出力されたデータが、フリップフロップ２によりＣＬＫ２のエッジに同期してラッチされ、出力される際に、出力信号が不安定な状態になるメタステーブルが発生してしまい、後段のデジタル回路に誤動作が引き起こされる場合がある。
【０００５】
このメタステーブルは、長く続くことはなく、必ず収束する。そこで、図２に示されるように、ＣＬＫ１に同期してデータをラッチするフリップフロップ１１の後段に、ＣＬＫ２に同期してデータをラッチするフリップフロップ１２およびフリップフロップ１３の２つのフリップフロップを接続する。
【０００６】
この場合、フリップフロップ１２において、フリップフロップ１１より出力されたデータがＣＬＫ２に同期してラッチされ、出力される際に、メタステーブルが発生したとしても、そのメタステーブルがフリップフロップ１３に到達するまでに収束するため、フリップフロップ１３からは、安定なデータが出力されるようになる。すなわち、後段のデジタル回路へのメタステーブルの伝達が抑制される。なお、このときのＣＬＫ２の周期は、メタステーブルの収束時間以上の周期であることが必要である。
【０００７】
【発明が解決しようとする課題】
しかしながら、このＣＬＫ１とＣＬＫ２が、非常に近接した周波数とおよび位相を有する場合、フリップフロップ１２において、フリップフロップ１１より出力されたデータがＣＬＫ２に同期してラッチされ、出力される際に、連続的にメタステーブルが発生してしまう恐れがある。発生したメタステーブルは、フリップフロップ１３に到達するまでに収束するが、「０」と「１」のどちらのデータに収束するか定まっていない。したがって、フリップフロップ１３から出力されるデータは、不定であり、後段において無効なデータになってしまうという課題があった。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、任意の周波数および位相関係のクロック間において、正確にデータを受け渡すことができるようにするものである。
【０００９】
【課題を解決するための手段】
本発明の信号処理装置は、第１のクロックのエッジに同期して、入力されたデータをラッチして、第１のデータを出力する第１のフリップフロップと、第１のデータを、第２のクロックのエッジに同期してラッチして、第２のデータを出力する第２のフリップフロップと、第１のデータを、第２のクロックから半周期遅れた第３のクロックのエッジに同期してラッチして、第３のデータを出力する第３のフリップフロップと、第３のデータを、第２クロックのエッジに同期してラッチして、第４のデータを出力する第４のフリップフロップと、第１のデータと第２のデータの同一性を判断する判断手段と、判断手段により判断された結果を第３のクロックのエッジに同期してラッチして、第５のデータを出力する第５のフリップフロップと、第５のデータに基づいて、第２のデータ、または、第４のデータのいずれかを選択して出力する選択出力手段とを備え、第２のフリップフロップおよび第３のフリップフロップは、並列に配置され、第１のデータを同時にラッチすることを特徴とする。
【００１０】
第１のクロックおよび第２のクロックは、近接した周波数と位相を有するようにすることができる。
【００１１】
選択出力手段は、第５のデータが、第１のデータと第２のデータが同一であると判断された結果が第３のクロックのエッジに同期してラッチされて、出力されたものである場合、第２のデータを選択して出力し、第５のデータが、第１のデータと第２のデータが同一ではないと判断された結果が第３のクロックのエッジに同期してラッチされて、出力されたものである場合、第４のデータを選択して出力するようにすることができる。
【００１２】
選択出力手段により選択され出力された、第２のデータ、または、第４のデータのいずれかのデータを、第２のクロックのエッジに同期してラッチし、出力する第６のフリップフロップをさらに備えるようにすることができる。
【００１３】
本発明の信号処理方法は、入力されたデータを、第１のクロックのエッジに同期して、第１のフリップフロップによりラッチして、第１のデータを出力し、第１のデータを、第２のクロックのエッジに同期して、第２のフリップフロップによりラッチして、第２のデータを出力し、第１のデータを、第２のフリップフロップと並列に配置された第３のフリップフロップにより、第２のクロックのエッジから半周期遅れた第３クロックのエッジに同期して、第２フリップフロップと同時にラッチして、第３のデータを出力し、第３のデータを第２クロックのエッジに同期して第４のフリップフロップによりラッチして、第４のデータを出力し、第１のデータと第２のデータの同一性を判断し、判断された結果を第３のクロックのエッジに同期して第５のフリップフロップによりラッチして、第５のデータを出力し、第５のデータに基づいて、第２のデータ、または、第４のデータのいずれかを選択して出力することを特徴とする。
【００１４】
本発明の信号処理方法および方法においては、入力されたデータを、第１のクロックのエッジに同期して、第１のフリップフロップによりラッチして、第１のデータが出力される。その第１のデータを、第２のクロックのエッジに同期して、第２のフリップフロップによりラッチして、第２のデータが出力されるとともに、第１のデータを、第２のフリップフロップと並列に配置された第３のフリップフロップにより、第２のクロックのエッジから半周期遅れた第３クロックのエッジに同期して、第２フリップフロップと同時にラッチして、第３のデータが出力される。そして、第３のデータを第２クロックのエッジに同期して第４のフリップフロップによりラッチして、第４のデータが出力される。また、第１のデータと第２のデータの同一性が判断され、判断された結果を第３のクロックのエッジに同期して第５のフリップフロップによりラッチして、第５のデータが出力され、第５のデータに基づいて、第２のデータ、または、第４のデータのいずれかが選択されて出力される。
【００１５】
信号処理装置は、独立した装置であってもよいし、撮影装置の信号処理を行うブロックであってもよい。
【００１６】
【発明の実施の形態】
以下、図を参照して本発明の実施の形態について説明する。
【００１７】
図３は、本発明を適用した撮影装置２１の構成例を表している。撮影装置２１は、CPU（Central Processing Unit）３１、ROM（Read Only Memory）３２、RAM（Random  Access  Memory）３３、撮影部３４、演算部３５、出力クロック生成部３６、入力部３７、および出力部３８などにより構成されている。
【００１８】
CPU３１は、ROM３２に記憶されているプログラムなどに従って各種の処理を実行する。RAM３３にはCPU３１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００１９】
撮影部３４により撮影された映像データは、演算部３５に供給される。演算部３５は、信号処理部５１、周波数変換部５２、出力処理部５３、および同期信号生成部５４により構成される。
【００２０】
信号処理部５１は、撮影部３４により出力された映像データを、CPU３１に内蔵されるクロック（図示せず）から供給されるシステムクロック（以下、ＣＬＫ１と称する）で主な信号処理を行う。ＣＬＫ１は、撮影部３４のＣＣＤの画素数などから決定され、信号処理部５１または周波数変換部５２などに供給される。
【００２１】
周波数変換部５２は、信号処理部５１によりＣＬＫ１に同期して出力されたデータのクロックを、ＣＬＫ１から、出力クロック生成部３６により生成された出力クロック（以下、ＣＬＫ２と称する）に載せ換える処理を行う。出力処理部５３は、データをモニタまたは外部装置に出力するため、変調、多重化などの出力処理をＣＬＫ２に同期して行う。
【００２２】
同期信号生成部５４は、撮影装置２１の同期信号を生成し、出力クロック生成部３６または出力処理部５３に供給する。
【００２３】
出力クロック生成部３６は、外部装置と同期をとるため、入力部３７より取得された基準同期信号と同期信号生成部５４により生成された同期信号とを位相比較することにより、出力クロック（ＣＬＫ２）を生成する。また、出力クロック生成部３６は、モニタに出力するための出力クロック（ＣＬＫ２）も生成する。ＣＬＫ２は、周波数変換部５２、出力処理部５３、または同期信号生成部５４などに供給される。
【００２４】
入力部３７は、例えば、ＣＣＵ（カメラコントロールユニット）または他の撮影装置（図示せず）などの外部装置と接続される場合、同期を取るための基準となる基準同期信号を外部装置から取得する。出力部３８は、出力処理部５３により供給されたデータを外部装置またはモニタに出力する。
【００２５】
CPU３１、ROM３２、RAM３３、撮影部３４、演算部３５、および出力クロック生成部３６は、バス３９を介して相互に接続されている。
【００２６】
図４は、図３の周波数変換部５２の構成例を示すブロック図である。
【００２７】
周波数変換部５２には、システムクロックであるＣＬＫ１、例えば、外部装置へ出力するための出力クロックであるＣＬＫ２が供給されている。このＣＬＫ２をバッファ７７は、反転、増幅し、ＣＬＫ２ｎとして、所定の各フリップフロップに供給している。また、バッファ７７は、ＣＬＫ２を増幅し、ＣＬＫ２ｐとして、所定の各フリップフロップに供給している。すなわち、ＣＬＫ２ｎは、ＣＬＫ２ｐより半周期遅れたクロックである。
【００２８】
フリップフロップ７１は、ＣＬＫ１の立ち上がりエッジに同期して入力されたデータをラッチして、フリップフロップＰ７２、フリップフロップＮ７３、およびデータ比較部７９にデータを出力する（以下、フリップフロップ７１からの出力データをｆデータと称する）。ｆデータは、フリップフロップＰ７２およびフリップフロップＮ７３により同時に入力される。
【００２９】
フリップフロップＰ７２は、入力されたｆデータをＣＬＫ２ｐの立ち上がりエッジに同期してラッチし、データ比較部７９およびデータ選択部８０にデータを出力する（以下、フリップフロップＰ７２からの出力データをｐデータと称する）。
【００３０】
フリップフロップＮ７３は、入力されたｆデータをＣＬＫ２ｎの立ち上がりエッジに同期してラッチし、フリップフロップＰ７４にデータを出力する（以下、フリップフロップＮ７３からの出力データをｎデータと称する）。フリップフロップＰ７４は、ｎデータをＣＬＫ２ｐの立ち上がりエッジに同期してラッチし、データ選択部８０に出力する。
【００３１】
データ比較部７９は、フリップフロップ７１により出力されたｆデータとフリップフロップＰ７２により出力されたｐデータが同じであるか否かを判断し、その判断結果をフリップフロップＮ７５に供給する。フリップフロップＮ７５は、データ比較部７９により判断された判断結果（図１０を参照して後述するＣＯＭＰ信号）を、ＣＬＫ２ｎの立ち上がりエッジに同期してラッチし、ラッチしたデータ（図１０を参照して後述するＳＥＬ信号）をデータ選択部８０に出力する。
【００３２】
データ選択部８０は、フリップフロップＮ７５により出力されたデータ（ＳＥＬ信号）に基づいて、フリップフロップＰ７２から出力されたｐデータ、または、フリップフロップＰ７４から出力されたｎデータのいずれかを選択し、フリップフロップＰ７６に出力する。フリップフロップＰ７６は、データ選択部８０により出力されたデータを、ＣＬＫ２ｐの立ち上がりエッジに同期してラッチし、後段の出力処理部５３に出力する。
【００３３】
次に、図５乃至図８を参照して、ＣＬＫ１およびＣＬＫ２のクロックの関係に基づく、出力データの状態について説明する。なお、ＣＬＫ１およびＣＬＫ２のデューティは、５０％であるとする。
【００３４】
図５乃至図８において、ＣＬＫ１、ＣＬＫ２ｐおよびＣＬＫ２ｎは、それぞれのクロックの状態を示しており、Ｈ（立ち上がり）状態とＬ（立ち下がり）状態を一定の周期で繰り返す。ＣＬＫ２ｐが反転されたＣＬＫ２ｎは、ＣＬＫ２ｐよりも位相が、１／２先行（または遅延）するので、Ｈ状態とＬ状態がＣＬＫ２ｐと、全く逆である。また、ｆデータは、フリップフロップ７１により、ＣＬＫ１の立ち上がりエッジに同期して、ラッチされ、出力されたデータの状態、ｐデータは、フリップフロップＰ７２により、ＣＬＫ２ｐの立ち上がりエッジに同期して、ラッチされ、出力されたデータの状態、および、ｎデータは、フリップフロップＮ７３により、ＣＬＫ２ｎの立ち上がりエッジに同期して、ラッチされ、出力されたデータの状態をそれぞれ示している。
【００３５】
図５は、ＣＬＫ１およびＣＬＫ２の周波数が非常に近く（同一周期Ｔ）、かつ、位相が非常に近い場合の出力データの状態を示す図である。
【００３６】
図５の場合、フリップフロップ７１に供給されているＣＬＫ１がＨ状態になる立ち上がりエッジと、フリップフロップＰ７２に供給されているＣＬＫ２ｐがＨ状態になる立ち上がりエッジが、競り合っているため、フリップフロップＰ７２は、ｆデータが「０」に変わるかどうかのタイミング（ＣＬＫ２ｐの立ち上がりエッジ）ｔ１に同期して、ｆデータをラッチするため、フリップフロップＰ７２から出力されるｐデータは、「０」または「１」のどちらであるか不明な不安定なデータ（斜線）になり、メタステーブルを引き起こす恐れがある。
【００３７】
一方、フリップフロップＮ７３に供給されているＣＬＫ２ｎがＨ状態になる立ち上がりエッジは、ＣＬＫ１の周期Ｔのほぼ中央に位置する。したがって、フリップフロップＮ７３は、ＣＬＫ１の周期Ｔのほぼ中央のタイミング（ＣＬＫ２ｎの立ち上がりエッジのタイミン）ｔ２に同期して、ｆデータをラッチするため、例えば、ｆデータが「０」であれば、ｎデータも「０」になり、ｆデータが「１」であれば、ｎデータも「１」であるというように、確実にｆデータをラッチすることができる。以上より、フリップフロップＮ７３から出力されるｎデータは、有効なデータとして後段に出力される。
【００３８】
図６は、ＣＬＫ１およびＣＬＫ２の周波数が非常に近く（同一周期Ｔ）、かつ、位相が約１／４異なる場合の出力データの状態を示す図である。
【００３９】
図６の場合、フリップフロップＰ７２に供給されているＣＬＫ２ｐがＨ状態になる立ち上がりエッジは、ＣＬＫ１の周期Ｔのほぼ１／４に位置するため、フリップフロップＰ７２は、ＣＬＫ１の周期Ｔのほぼ１／４のタイミング（ＣＬＫ２ｐの立ち上がりエッジ）ｔ３に同期して確実にｆデータをラッチすることができる。
【００４０】
同様に、フリップフロップＮ７３に供給されているＣＬＫ２ｎがＨ状態になる立ち上がりエッジは、ＣＬＫ１の周期Ｔのほぼ３／４に位置するため、フリップフロップＮ７３は、ＣＬＫ１の周期Ｔのほぼ３／４のタイミング（ＣＬＫ２ｎの立ち上がりエッジ）ｔ４に同期して確実にｆデータをラッチすることができる。
【００４１】
したがって、フリップフロップＰ７２から出力されるｐデータ、および、フリップフロップＮ７３から出力されるｎデータは、共に、有効なデータとして後段に出力される。ただし、周期Ｔのほぼ１／４が、各フリップフロップのセットアップタイプまたはホールドタイム以上の時間である場合とされる。
【００４２】
図７は、ＣＬＫ１およびＣＬＫ２の周波数が非常に近く（同一周期Ｔ）、かつ、位相が約１／２異なる場合の出力データの状態を示す図である。この場合は、図５の場合と全く逆の状態になる。
【００４３】
図７の場合、ｔ６において、フリップフロップ７１に供給されているＣＬＫ１がＨ状態になる立ち上がりエッジと、フリップフロップＮ７３に供給されているＣＬＫ２ｎがＨ状態になる立ち上がりエッジが競り合っている。したがって、フリップフロップＮ７３は、ｆデータが「０」から「１」に変わるか否かのタイミング（ＣＬＫ２ｎの立ち上がりエッジ）ｔ６に同期してｆデータをラッチするため、フリップフロップＮ７３から出力されるｎデータは、「０」または「１」のどちらであるか不明な不安定なデータ（斜線）になり、メタステーブルを引き起こす恐れがある。
【００４４】
一方、フリップフロップＰ７２に供給されているＣＬＫ２ｐがＨ状態になる立ち上がりエッジは、ＣＬＫ１の周期Ｔのほぼ中央に位置する。したがって、フリップフロップＰ７２は、ＣＬＫ１の周期Ｔのほぼ中央のタイミング（ＣＬＫ２ｐの立ち上がりエッジ）ｔ５に同期して確実にｆデータをラッチすることができる。以上より、フリップフロップＰ７２から出力されるｐデータは、有効なデータとして後段に出力される。
【００４５】
図８は、ＣＬＫ１およびＣＬＫ２の周波数が非常に近く（同一周期Ｔ）、かつ、位相が約３／４異なる場合の出力データの状態を示す図である。この場合は、図７の場合と全く逆の状態になる。
【００４６】
図８の場合、フリップフロップＰ７２に供給されているＣＬＫ２ｐがＨ状態になる立ち上がりエッジは、ＣＬＫ１の周期Ｔのほぼ３／４に位置するため、フリップフロップＰ７２は、ＣＬＫ１の周期Ｔのほぼ３／４のタイミング（ＣＬＫ２ｐの立ち上がりエッジ）ｔ７に同期して確実にｆデータをラッチすることができる。
【００４７】
同様に、フリップフロップＮ７３に供給されているＣＬＫ２ｎがＨ状態になる立ち上がりエッジは、ＣＬＫ１の周期Ｔのほぼ１／４に位置するため、フリップフロップＮ７３は、ＣＬＫ１の周期Ｔのほぼ１／４のタイミング（ＣＬＫ２ｎの立ち上がりエッジ）ｔ８に同期して確実にｆデータをラッチすることができる。したがって、フリップフロップＰ７２から出力されるｐデータ、および、フリップフロップＮ７３から出力されるｎデータは、共に、有効なデータとして後段に出力される。
【００４８】
以上より、ＣＬＫ１およびＣＬＫ２の周波数および位相が非常に近接する場合でも、ＣＬＫ２ｐのフリップフロップＰ７２およびＣＬＫ２ｎのフリップフロップＮ７３のうち、少なくとも一方は、有効なデータとして後段に出力される。
【００４９】
したがって、ＣＬＫ２ｐの立ち上がりエッジに同期するフリップフロップＰ７２、および、ＣＬＫ２ｎの立ち上がりエッジに同期するフリップフロップＮ７３を並列接続し、フリップフロップ７１から出力されたｆデータを同時に入力させることにより、フリップフロップＰ７２またはフリップフロップＮ７３から出力されたデータのうちどちらか有効なデータを後段に渡すようにでき、後段に不安定なデータが渡ることが抑制される。
【００５０】
次に、図９のフローチャートを参照して、周波数変換部５２の周波数変換処理を説明する。
【００５１】
ステップＳ１においてフリップフロップ７１は、入力されたデータをＣＬＫ１の立ち上がりエッジに同期して、ラッチし、フリップフロップＰ７２、フリップフロップＮ７３、およびデータ比較部７９にｆデータとして出力する。
【００５２】
ステップＳ２において、フリップフロップＰ７２は、このｆデータを、ＣＬＫ２ｐの立ち上がりエッジに同期してラッチし、ｐデータとして、データ比較部７９およびデータ選択部８０に出力する。また、ステップＳ３において、フリップフロップＮ７３は、このｆデータを、ＣＬＫ２ｎの立ち上がりエッジに同期してラッチし、ｎデータとして、フリップフロップＰ７４に出力する。なお、別々のステップに分けて記載したが、この周波数変換部５２において、ステップＳ２およびＳ３は、同時に実行される。
【００５３】
ステップＳ４において、フリップフロップＰ７４は、ｎデータをＣＬＫ２ｐの立ち上がりエッジに同期して、データ選択部８０にｎデータを出力する。これにより、１／２先行していたｎデータの位相は、ｐデータの位相と同じになる。
【００５４】
ステップＳ５において、データ比較部７９は、ステップＳ１においてフリップフロップ７１よりＣＬＫ１の立ち上がりエッジに同期してラッチされ、出力されたｆデータ、および、ステップＳ３においてフリップフロップＰ７２よりＣＬＫ２ｐの立ち上がりエッジに同期してラッチされ、出力されたｐデータが同じであるか否かを判断し、同じであると判断した場合、ステップＳ６において、データ比較部７９は、ＨのＣＯＭＰ信号をフリップフロップＮ７５に出力する。ステップＳ５において、ｆデータとｐデータが同じではないと判断された場合、ステップＳ７において、データ比較部７９は、ＬのＣＯＭＰ信号をフリップフロップＮ７５に出力する。
【００５５】
ステップＳ８において、フリップフロップＮ７５は、データ比較部７９より出力されたＣＯＭＰ信号をＣＬＫ２ｎの立ち上がりエッジに同期してラッチし、ラッチされたデータをＳＥＬ信号として出力する。
【００５６】
このＳＥＬ信号に基づいて、データ選択部８０は、フリップフロップＰ７２より出力されたｐデータ、または、フリップフロップＰ７４より出力されたｎデータを選択して、出力する。すなわち、データ選択部８０は、ステップＳ９において、ＳＥＬ信号がＨであるか否かを判断し、ＨのＳＥＬ信号であると判断した場合、ステップＳ１０において、ｐデータを選択し、フリップフロップＰ７６に出力する。ステップＳ９において、ＨのＳＥＬ信号ではない（ＬのＳＥＬ信号である）と判断された場合、ステップＳ１１において、データ選択部８０は、フリップフロップＰ７４より出力されたｎデータを選択し、フリップフロップＰ７６に出力する。
【００５７】
ステップＳ１２において、フリップフロップＰ７６は、データ選択部８０より選択され、出力されたｐデータ、または、ｎデータをＣＬＫ２ｐの立ち上がりエッジに同期してラッチし、そのデータを後段の出力処理部５３に出力する。
【００５８】
ここで、上述したステップＳ５乃至Ｓ１２の処理の詳細について、図１０乃至図１４を参照して説明する。なお、以降、ＣＬＫ１およびＣＬＫ２のデューティは５０％で同一周期Ｔであり、位相のみが異なる（ＣＬＫ１とＣＬＫ２の位相差Ｓ）場合とし、各フリップフロップのディレイをｔｈｄ、セットアップタイムをｔｓｕ、ホールドタイムをｔｐｄ（ｔｓｕ＋ｔｈｄ＜ｔｐｄ）とする。また、横軸は、時間を表しており、その横軸には、各処理のタイミングなどが示されている。
【００５９】
図１０乃至図１４において、ＣＬＫ１、ＣＬＫ２ｐおよびＣＬＫ２ｎは、それぞれのクロックの状態を示しており、Ｈ（立ち上がり）状態とＬ（立ち下がり）状態を一定の周期で繰り返す。ＣＬＫ２ｐが反転されたＣＬＫ２ｎは、ＣＬＫ２ｐよりも位相が、１／２先行（または遅延）する。したがって、ＣＬＫ２ｐが、立ち上がりエッジのときは、ＣＬＫ２ｎは、立ち下がりエッジであり、反対に、ＣＬＫ２ｐが、立ち下がりエッジのときは、ＣＬＫ２ｎは、立ち上がりエッジであり、ＣＬＫ２ｐとＣＬＫ２ｎは、逆の位相を示す。
【００６０】
また、ｆデータは、フリップフロップ７１により、ＣＬＫ１の立ち上がりエッジに同期して、ラッチされ、ｔｐｄ遅れたタイミングで出力されたデータの状態、ｐデータは、フリップフロップＰ７２により、ＣＬＫ２ｐの立ち上がりエッジに同期して、ラッチされ、ｔｐｄ遅れたタイミングで出力されたデータの状態、および、ｎデータは、フリップフロップＮ７３により、ＣＬＫ２ｎの立ち上がりエッジに同期して、ラッチされ、ｔｐｄ遅れたタイミングで出力されたデータの状態をそれぞれ示している。
【００６１】
さらに、ＣＯＭＰは、ｐデータが出力されたタイミングにおいて、データ比較部７９によりｐデータとｆデータが同じであるか否かが判断され、その後ｔｐｄ遅れたタイミングで出力されるＣＯＭＰ信号の状態を示しており、ＳＥＬは、ＣＬＫ２ｎの立ち上がりエッジに同期して、フリップフロップＮ７５によりＣＯＭＰ信号がラッチされ、その後ｔｐｄ遅れたタイミングで出力されたデータ（ＳＥＬ信号）の状態を示している。
【００６２】
図１０は、ＣＬＫ１とＣＬＫ２の位相差Ｓがホールドタイムｔｐｄよりも短い場合（０≦Ｓ＜ｔｐｄ）における選択信号（ＣＯＭＰ信号およびＳＥＬ信号）の状態を示す図である。
【００６３】
図１０において、ｔ１１は、ＣＬＫ１およびＣＬＫ２ｐのエッジが立ち上がるタイミング、ｔ１３は、ＣＬＫ２ｎのエッジが立ち上がるタイミングを示しており、ｔ１２およびｔ１４は、それぞれ、ｔ１１およびｔ１３からｔｐｄ遅れた、各フリップフロップからデータが出力されるタイミングを示している。また、ｔ１５は、ＣＬＫ１およびＣＬＫ２ｐの次のエッジが立ち上がるタイミングを示している。
【００６４】
ｔ１１において、フリップフロップ７１に供給されているＣＬＫ１の立ち上がりエッジと、フリップフロップＰ７２に供給されているＣＬＫ２ｐの立ち上がりエッジが競り合っているが、フリップフロップ７１のホールドタイムｔｐｄのため、ｆデータが「０」に変化するのは、ｔ１２のタイミングであり、ＣＬＫ２ｐの立ち上がりエッジのタイミングｔ１１において、フリップフロップＰ７２がラッチするｆデータは、１クロック前のデータ「−１」となる。
【００６５】
したがって、データ比較部７９は、フリップフロップＰ７２から出力されるｐデータ「−１」とｆデータ「０」が同じではないと判断し、ＬのＣＯＭＰ信号を出力する。そのＬのＣＯＭＰ信号がフリップフロップＮ７５によりＣＬＫ２ｎの立ち上がりエッジに同期してラッチされ、出力されたＳＥＬ信号も、Ｌとなり、この場合、データ選択部８０は、フリップフロップＰ７４より出力されたｎデータを選択する。
【００６６】
一方、フリップフロップＮ７３に供給されているＣＬＫ２ｎの立ち上がりエッジのタイミングｔ１３は、ＣＬＫ１の周期Ｔのほぼ中央に位置する。したがって、フリップフロップＮ７３から出力されたｎデータは、１／２周期遅れで、正確にｆデータをラッチしている。なお、このｎデータは、フリップフロップＰ７２から出力されるｐデータに較べて、１／２クロック先行しているので、フリップフロップＰ７４により１／２クロック遅延され、ｐデータと同じクロックでデータ選択部８０に出力されている。
【００６７】
図１１は、ＣＬＫ１とＣＬＫ２の位相差Ｓがホールドタイムｔｐｄとほぼ等しい場合（Ｓ≒ｔｐｄ）における選択信号（ＣＯＭＰ信号およびＳＥＬ信号）の状態を示す図である。
【００６８】
図１１において、ｔ２１は、ＣＬＫ１のエッジが立ち上がるタイミング、ｔ２２は、ＣＬＫ２ｐのエッジが立ち上がるタイミング、ｔ２５は、ＣＬＫ２ｎのエッジが立ち上がるタイミングを示している。ｔ２２、ｔ２３およびｔ２６は、それぞれ、ｔ２１、ｔ２２およびｔ２５からｔｐｄ遅れた、各フリップフロップからデータが出力されるタイミングを示している。また、ｔ２４は、ｔ２３からｔｐｄ遅れた、データ比較部７９よりＣＯＭＰ信号が出力されるタイミングを示している。ｔ２６は、ｔ２５からｔｐｄ遅れた、フリップフロップＮ７５によりＳＥＬ信号が出力されるタイミングであり、ｔ２７は、ＣＬＫ１の次のエッジが立ち上がるタイミングを示している。
【００６９】
ｔ２２において、フリップフロップ７１からｆデータが出力されるタイミングと、フリップフロップＰ７２に供給されているＣＬＫ２ｐの立ち上がりエッジが競り合っている。したがって、フリップフロップＰ７２は、ｆデータが「０」から「１」に変わるか否かのタイミングｔ２２に同期してｆデータをラッチしてしまうため、フリップフロップＰ７２から出力されるｐデータは、「０」または「１」のどちらであるか不明な不安定なデータ（斜線）になり、メタステーブルを引き起こす恐れがある。このメタステーブルが発生した場合、メタステーブルの収束後のｐデータは「１」または「０」になる。
【００７０】
そこで、例えば、ｔ２３において、データ比較部７９によりメタステーブルの収束後のｐデータが、ｆデータと一致すると判断された場合、ｔ２４において、データ比較部７９よりＨのＣＯＭＰ信号が出力される。そのＨのＣＯＭＰ信号がフリップフロップＮ７５により、ｔ２５においてＣＬＫ２ｎの立ち上がりエッジに同期してラッチされた後、ｔ２６において、出力されるＳＥＬ信号も、Ｈとなり、データ選択部８０は、フリップフロップＰ７２より出力されたｐデータを選択する。
【００７１】
一方、メタステーブルの収束後のｐデータが、ｆデータと一致しないと判断された場合、ｔ２４において、データ比較部７９よりＬのＣＯＭＰ信号が出力される。そのＬのＣＯＭＰ信号がフリップフロップＮ７５により、ｔ２５においてＣＬＫ２ｎの立ち上がりエッジに同期してラッチされた後、ｔ２６において、出力されるＳＥＬ信号もＬとなり、データ選択部８０は、フリップフロップＰ７４より出力されたｎデータを選択する。
【００７２】
この場合、図１０と同様に、フリップフロップＮ７３に供給されているＣＬＫ２ｎの立ち上がりエッジのタイミングｔ２５は、ＣＬＫ１の周期Ｔのほぼ中央に位置する。したがって、フリップフロップＮ７３から出力されたｎデータは、１／２周期遅れで、正確にｆデータをラッチしている。なお、このｎデータは、フリップフロップＰ７２から出力されるｐデータに較べて、１／２クロック先行しているので、フリップフロップＰ７４により１／２クロック遅延され、ｐデータと同じクロックでデータ選択部８０に出力されている。
【００７３】
なお、図１１の場合、データ比較部７９は、不安定なｐデータとｆデータとを比較する。したがって、図１１において、データ比較部７９より出力されるＣＯＭＰ信号、および、ＣＯＭＰ信号がＣＬＫ２ｎの立ち上がりエッジに同期してラッチされ、出力されるＳＥＬ信号は、ｐデータの収束後の結果に基づくため、不安定なデータ（斜線）として表されている。
【００７４】
図１２は、ＣＬＫ１とＣＬＫ２の位相差Ｓがホールドタイムｔｐｄよりも大きく、また、周期Ｔの半分＋ｔｐｄの２倍よりも小さい場合（ｔｐｄ＜Ｓ＜Ｔ／２＋２＊ｔｐｄ）における選択信号（ＣＯＭＰ信号およびＳＥＬ信号）の状態を示す図である。
【００７５】
図１２において、ｔ３１は、ＣＬＫ１のエッジが立ち上がるタイミング、ｔ３３は、ＣＬＫ２ｐのエッジが立ち上がるタイミング、ｔ３６は、ＣＬＫ２ｎのエッジが立ち上がるタイミングを示している。ｔ３２およびｔ３４は、それぞれ、ｔ３１およびｔ３３からｔｐｄ遅れた、各フリップフロップからデータが出力されるタイミングを示している。
【００７６】
また、ｔ３５は、ｔ３４からｔｐｄ遅れた、データ比較部７９よりＣＯＭＰ信号が出力されるタイミングであり、ｔ３７は、ｔ３６からｔｐｄ遅れた、フリップフロップＮ７５によりＳＥＬ信号が出力されるタイミングを示している。さらに、ｔ３６は、ＣＬＫ１の次のエッジが立ち上がるタイミング、ｔ３７は、ｆデータの値が変わるタイミング、ｔ３８は、ＬのＣＯＭＰ信号が出力されるタイミング（ＨのＣＯＭＰ信号の終了点）を示している。
【００７７】
フリップフロップＰ７２に供給されているＣＬＫ２ｐの立ち上がりエッジのタイミングｔ３３は、ＣＬＫ１の周期Ｔの間に位置する。したがって、フリップフロップＰ７２から出力されたｐデータは、正確にｆデータをラッチするため、ｔ３５において、データ比較部７９は、ＨのＣＯＭＰ信号を出力する。そのＨのＣＯＭＰ信号を、フリップフロップＮ７５は、ＣＬＫ２ｎの立ち上がりエッジのタイミングｔ３６に同期してラッチした後、ｔｐｄ遅れたｔ３７において、ＳＥＬ信号を出力する。したがって、そのＳＥＬ信号も、Ｈとなり、データ選択部８０は、フリップフロップＰ７２より出力されたｐデータを選択する。
【００７８】
図１３は、ＣＬＫ１とＣＬＫ２の位相差Ｓが、周期Ｔの半分＋ｔｐｄの２倍とほぼ等しい場合（Ｓ≒Ｔ／２＋２＊ｔｐｄ）における選択信号（ＣＯＭＰ信号およびＳＥＬ信号）の状態を示す図である。
【００７９】
図１３において、ｔ４１は、ＣＬＫ１のエッジが立ち上がるタイミング、ｔ４３は、ＣＬＫ２ｐのエッジが立ち上がるタイミング、ｔ４８は、ＣＬＫ２ｎのエッジが立ち上がるタイミングを示している。ｔ４２、ｔ４４およびｔ４９は、それぞれ、ｔ４１、ｔ４３およびｔ４８からｔｐｄ遅れた、各フリップフロップからデータが変化するタイミングを示している。
【００８０】
また、ｔ４５は、ｔ４４からｔｐｄ遅れた、データ比較部７９よりＣＯＭＰ信号が出力されるタイミング、ｔ４６は、ＣＬＫ１の次のエッジが立ち上がるタイミング、ｔ４７は、ｆデータの値が変わるタイミングを示している。さらにｔ４８は、ＬのＣＯＭＰ信号が出力されるタイミング（ＨのＣＯＭＰ信号の終了点）を示しており、ｔ４９は、ｔ４８からｔｐｄ遅れた、フリップフロップＮ７５によりＳＥＬ信号が出力されるタイミングを示している。
【００８１】
フリップフロップＰ７２に供給されているＣＬＫ２ｐの立ち上がりエッジのタイミングｔ４３は、ＣＬＫ１の周期Ｔの間に位置する。したがって、フリップフロップＰ７２から出力されたｐデータが正確にｆデータをラッチするため、ｔ４５において、データ比較部７９は、ＨのＣＯＭＰ信号を出力する。
【００８２】
しかしながら、ＣＬＫ２ｎの立ち上がりエッジのタイミングが、ＨのＣＯＭＰ信号の終了点（ＬのＣＯＭＰ信号の開始点）と競うため、ｔ４８において、そのＣＯＭＰ信号をラッチするフリップフロップＮ７５は、「１（Ｈ）」または「０（Ｌ）」のどちらか不明なデータをラッチすることになり、これによりｔ４９において、出力されたＳＥＬ信号にメタステーブルが発生する恐れがある。メタステーブルが発生した場合、メタステーブルの収束後のＳＥＬ信号は、「１（Ｈ）」または「０（Ｌ）」のどちらか不明な不定データ（斜線）となる。
【００８３】
そこで、例えば、メタステーブルの収束後のＳＥＬ信号が、Ｈである場合、データ選択部８０は、フリップフロップＰ７２より出力されたｐデータを選択する。
【００８４】
一方、メタステーブルの収束後ＳＥＬ信号が、Ｌである場合、データ選択部８０は、フリップフロップＰ７４より出力されたｎデータを選択する。なお、この場合、ＣＯＭＰ信号をラッチするフリップフロップＮ７５のＣＬＫ２ｎ、および、フリップフロップＮ７３のＣＬＫ２ｎは同一クロックであるため、ＣＬＫ２ｎの立ち上がりエッジのタイミングｔ４８が、ＨのＣＯＭＰ信号の終了点（ＬのＣＯＭＰ信号の開始点）と競う場合、ｔｓｕ＋ｔｈｄ＜ｔｐｄにより、ｆデータは、既に「１」に変わっている。
【００８５】
したがって、フリップフロップＮ７３は、次の「１」のｆデータを正確にラッチすることができる。なお、このｎデータは、フリップフロップＰ７２から出力されるｐデータに較べて、１／２クロック先行しているので、フリップフロップＰ７４により１／２クロック遅延され、ｐデータと同じクロックでデータ選択部８０に出力されている。
【００８６】
以上により、データ選択部８０において、ＨまたはＬのどちらの信号が選択されたとしても、出力されるデータは、正確なデータをラッチしている。
【００８７】
図１４は、ＣＬＫ１とＣＬＫ２の位相差Ｓが、周期Ｔの半分＋ｔｐｄの２倍より大きく、かつ周期Ｔよりも小さい場合（Ｔ／２＋２＊ｔｐｄ＜Ｓ＜Ｔ）における選択信号（ＣＯＭＰ信号およびＳＥＬ信号）の状態を示す図である。
【００８８】
図１４において、ｔ５１は、ＣＬＫ１のエッジが立ち上がるタイミング、ｔ５３は、ＣＬＫ２ｐのエッジが立ち上がるタイミング、ｔ５７は、ＣＬＫ２ｎのエッジが立ち上がるタイミングを示している。ｔ５２、ｔ５４およびｔ５８は、それぞれ、ｔ５１、ｔ５３およびｔ５７からｔｐｄ遅れた、各フリップフロップからデータが変化するタイミングを示している。
【００８９】
また、ｔ５４は、ＣＬＫ１の次のエッジが立ち上がるタイミングを示しており、ｔ５５は、ｔ５４からｔｐｄ遅れた、ｆデータの値が変わるタイミング、かつ、データ比較部７９よりＣＯＭＰ信号が出力されるタイミングを示している。ｔ５６は、ＬのＣＯＭＰ信号が出力されるタイミング（ＨのＣＯＭＰ信号の終了点）を示しており、ｔ５８は、ｔ５７からｔｐｄ遅れた、フリップフロップＮ７５によりＳＥＬ信号が出力されるタイミングを示している。
【００９０】
フリップフロップＰ７２に供給されているＣＬＫ２ｐの立ち上がりエッジのタイミングｔ５３は、ＣＬＫ１の周期Ｔの間に位置する。したがって、フリップフロップＰ７２から出力されたｐデータが正確にｆデータをラッチするため、ｔ５５において、データ比較部７９は、ＨのＣＯＭＰ信号を出力する。しかしながら、ＣＬＫ２ｎの立ち上がりエッジのタイミングｔ５７が、ＨのＣＯＭＰ信号の終了点ｔ５６（ＬのＣＯＭＰ信号の開始点）よりも後のため、フリップフロップＮ７５は、ｔ５７において、そのＬのＣＯＭＰ信号をラッチする。
【００９１】
したがって、ｔ５８においてフリップフロップＮ７５により出力されたＳＥＬ信号がＬになり、データ選択部８０は、フリップフロップＰ７４より出力されたｎデータを選択する。なお、このｎデータは、フリップフロップＰ７２から出力されるｐデータに較べて、１／２クロック先行しているので、フリップフロップＰ７４により１／２クロック遅延され、ｐデータと同じクロックでデータ選択部８０に出力されている。
【００９２】
以上より、ｔｓｕ＋ｔｈｄ＜ｔｐｄが満たされていれば、ＣＬＫ１およびＣＬＫ２の位相に寄らず、位相が近接する場合であっても、データが正確に受け渡しされる。
【００９３】
なお、データバスのように、幅がある場合は、ばらつきにより各ビット間で全く同時にメタテーブルが発生するとは限らないため、本発明をビット毎に準備する必要がある。
【００９４】
以上のように、ＣＬＫ２ｐのフリップフロップＰ７２およびＣＬＫ２ｎのフリップフロップＮ７３を並列接続し、フリップフロップ７１から出力されたｆデータを同時に入力するようにし、フリップフロップ７１から出力されたｆデータおよびフリップフロップＰ７２から出力されたｐデータを比較判断し、その比較判断の結果により、ＣＬＫ２ｐのフリップフロップＰ７２またはＣＬＫ２ｎのフリップフロップＮ７３から出力されたデータのいずれかを選択するようにしたので、後段に不安定なデータが渡ることが抑制される。
【００９５】
また、フリップフロップＰ７６をデータ選択部８０の後段に配置することにより、仮にＳＥＬ信号にメタステーブルが発生してしまい、データ選択部８０から出力されるデータが不定になってしまった場合があったとしても、後段の出力処理部５３にメタステーブルが伝達されることがさらに抑制される。
【００９６】
上記説明では、各フリップフロップは、ＣＬＫ１またはＣＬＫ２（ＣＬＫ２ｐ，ＣＬＫ２ｎ）の立ち上がりエッジに同期してラッチするように説明したが、立ち下がりエッジに同期させるようにしてもよい。
【００９７】
また、上記説明においては、バッファ７７において、ＣＬＫ２を反転させ、ＣＬＫ２から半周期遅れたＣＬＫ２ｎを生成しているが、この周波数変換部５２において、フリップフロップ７１，フリップフロップＰ７２，フリップフロップＰ７４およびフリップフロップＰ７６により、ＣＬＫ２の立ち上がりエッジに同期して、入力されたデータをラッチさせ、かつ、フリップフロップＮ７３およびフリップフロップＮ７５により、ＣＬＫ２の立ち下がりエッジ（ＣＬＫ２の立ち上がりエッジから半周期遅れたエッジ）に同期して、入力されたデータをラッチさせるようにしてもよい。
【００９８】
本発明は、特に、複数台のカメラを同期させて使用する場合が多く、さらに、その周波数も非常に近いため、ビデオカメラシステム間の同期を取るような場合に有効である。
【００９９】
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１００】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１０１】
【発明の効果】
以上の如く、本発明によれば、任意の周波数および位相関係のクロック間において、データを受け渡すことができる。また、その周波数および位相関係が近接している場合においても、データの受け渡しを正確に行うことができる。
【図面の簡単な説明】
【図１】従来のデータの受け渡し処理の例を説明する図である。
【図２】従来のデータの受け渡し処理の他の例を説明する図である。
【図３】本発明を適用した撮影装置の構成例を示すブロック図である。
【図４】図１の周波数変換部の構成例を示すブロック図である。
【図５】クロックの関係に基づいた出力データの状態の例を説明する図である。
【図６】クロックの関係に基づいた出力データの状態の他の例を説明する図である。
【図７】クロックの関係に基づいた出力データの状態のさらに他の例を説明する図である。
【図８】クロックの関係に基づいた出力データの状態のさらに他の例を説明する図である。
【図９】図３の周波数変換部の周波数変換処理を説明するフローチャートである。
【図１０】図９のステップＳ５乃至Ｓ１２の処理の例を説明する図である。
【図１１】図９のステップＳ５乃至Ｓ１２の処理の他の例を説明する図である。
【図１２】図９のステップＳ５乃至Ｓ１２の処理のさらに他の例を説明する図である。
【図１３】図９のステップＳ５乃至Ｓ１２の処理のさらに他の例を説明する図である。
【図１４】図９のステップＳ５乃至Ｓ１２の処理のさらに他の例を説明する図である。
【符号の説明】
２１  撮影装置，３１  CPU，３５  演算部，３６  出力クロック生成部，５１  信号処理部，５２  周波数変換部，５３  出力処理部５３  同期信号生成部，７１  フリップフロップ，７２  フリップフロップＰ，７３  フリップフロップＮ，７４  フリップフロップＰ，７５  フリップフロップＮ，７６  フリップフロップＰ，７９  データ比較部，８０  データ選択部
【図１】
0003928849.tif 000002
【図２】
0003928849.tif 000003
【図３】
0003928849.tif 000004
【図４】
0003928849.tif 000005
【図５】
0003928849.tif 000006
【図６】
0003928849.tif 000007
【図７】
0003928849.tif 000008
【図８】
0003928849.tif 000009
【図９】
0003928849.tif 000010
【図１０】
0003928849.tif 000011
【図１１】
0003928849.tif 000012
【図１２】
0003928849.tif 000013
【図１３】
0003928849.tif 000014
【図１４】
0003928849.tif 000015