(57)【要約】【課題】  多ビットの入力信号を正確かつ高速に同期化することができる同期化回路を提供する。【解決手段】  同期化回路は、第１クロックに同期化された多ビットの入力データを、ハミング距離が１となる冗長符号に変換する冗長符号化部と、前記冗長符号を第２クロックで同期化する冗長符号同期化部と、前記第２クロックで同期化された冗長符号を、前記多ビットのデータに復号する復号化部とを備える。【選択図】  図４
2006050409.tif 000002
【特許請求の範囲】
【請求項１】
第１クロックに同期化された多ビットの入力データを、ハミング距離が１となる冗長符号に変換する冗長符号化部と、
前記冗長符号を第２クロックで同期化する冗長符号同期化部と、
前記第２クロックで同期化された冗長符号を、前記多ビットのデータに復号する復号化部と
を備えることを特徴とする同期化回路。
【請求項２】
前記冗長符号化部は、前記多ビットの値と、対応する冗長符号とを関連付けた符号化テーブルを有することを特徴とする請求項１に記載の同期化回路。
【請求項３】
前記復号化部は、前記冗長符号と、もとの多ビットデータとを関連付けた復号化テーブルを有することを特徴とする請求項１または２に記載の同期化回路。
【請求項４】
前回の第１クロックで冗長符号に変換され同期化された前記冗長符号を、今回の第１クロックのタイミングで前記冗長符号化部にフィードバックするフィードバックループをさらに備え、
前記冗長符号化部は、今回の第１クロックのタイミングで入力された前記多ビットデータと、フィードバックされた前回の冗長符号とに基づいて、今回の冗長符号を決定することを特徴とする請求項１に記載の同期化回路。
【請求項５】
第１クロックで同期された多ビットの入力データを、ハミング距離が１となる冗長符号に変換するステップと、
前記冗長符号を第２クロックで同期化するステップと、
前記第２クロックで同期化された冗長符号を、前記多ビットのデータに復号するステップと
を含むことを特徴とする多ビット信号の同期化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多ビット信号の同期化手法に関し、特に、異なるクロックで動作しているブロック間や、ＬＳＩとの間で、多ビット信号を高速かつ正確に同期化することが可能な同期化回路および同期化方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータ、携帯電話、ディジタルカメラなど、日常使用する多くの製品にロジック（論理）ＩＣが組み込まれており、いっそうの高速動作化が求められている。
【０００３】
論理システムは、クロックで動作する同期システムである。動作クロック周波数を高くするには、遅延時間を小さくしなければならない。しかし、一般に遅延時間を小さくして高速動作させると、消費電力が大きくなる。製品の目的に応じて、動作速度と消費電力との兼ね合いから、多少の遅延の発生を許容せざるを得ない場合もある。
【０００４】
図１（ａ）は、単一ビット入力に対する一般的な同期回路構成を示す。一般に、クロック１（ＣＬＫ１）に同期している信号を、クロック２（ＣＬＫ２）に同期化するには、２段ラッチを用いる。図１（ａ）において、ＣＬＫ１に同期したフリップフロップ１０１の出力には、一定の遅延が含まれている。この出力に対して、フリップフロップ１０２でＣＬＫ２と同期をとり、さらに後段のフリップフロップ１０３で、再度、ＣＬＫ２に同期させる。２段ラッチ方式を採用する理由は、一段目のフリップフロップ１０２の出力が、発振効果により不安定になるので、再度同期化することによって、安定したパルス形状を得るためである。
【０００５】
図１（ｂ）は、図１（ａ）の２段ラッチ同期化回路を、多ビット入力に適用した例を示す。図１（ｂ）に示すように、多ビットの信号（アドレス信号、データ信号のように複数の信号線の組み合わせにより意味を持つ信号）を２段ラッチでそのまま同期化すると、データの偏移途中をクロック２（ＣＬＫ２）でサンプルしてしまう可能性がある。各ビットに対するフリップフロップ１０１Ａ、１０１Ｂの出力Ｄ０とＤ１には、それぞれ個別の遅延が含まれ、状態の変化が必ずしも同時に起きるとは限らない。この結果、図１（ｃ）に示すように、たとえば「１０」の状態から「０１」の状態に遷移するときに、偏移にずれが生じる。このような偏移の途中でＣＬＫ２によりサンプルされると、誤った値がサンプルされることになる。
【０００６】
図２は、偏移途中の誤った値が伝播する例を示すタイミング図である。Ｄ［１：０］は、状態“０”、“１”、“２”、“３”と偏移している。クロック２（ＣＬＫ２）で各状態をサンプルする際に、“１”から“２”への変化に応答して、「１０」をサンプルすべきところを、偏移途中の値である「００」をサンプルしてしまい、誤った状態“０”が伝搬している。その結果、Ｑ［１：０］が“０”、“１"、“０”、“２”と変化し、同期の正確性が損なわれる。
【０００７】
この問題を解決するために、Ｄ［１：０］を、ハミング距離が１のグレイコードに変換してから同期化を行う方法が提案されている（たとえば、特許文献１参照）。
【０００８】
図３は、ハミング距離が１のグレイコードへの変換例を示すタイミング図である。ハミング距離は、変化するビットの数で表わされる。図３（ａ）の例では、クロック（ＣＬＫ）１で、３ビットの信号Ｄ０、Ｄ１、Ｄ２の同期をとる。区間０から１では、Ｄ０のみが変化するので、この部分ではハミング距離は１である。しかし、区間１から２では、Ｄ０とＤ１が変化し、ハミング距離は２となる。区間３から４では、すべてのビットが変化し、ハミング距離が３となる。ハミング距離が２以上になると、一瞬の遅延が発生した場合に、偏移途中の誤った値がサンプルされる可能性がある。
【０００９】
そこで、図３（ｂ）に示すように、どの区間でもハミング距離が１以下となるように、グレイコードに変換してから同期化する。しかし、Ｄ［２：０］がとびとびの値をとる場合、たとえば、０、２、４、６のようにカウントする回路や、０，１、２，３，４、５の後に０にリセットする回路などの場合は、グレイコードに変換した後の値も、ハミング距離が１でなくなり、複数ビットが同時に変化してしまうことがある。たとえば、図３（ｂ）の矢印で示す時点でリセットがかかると、３ビットすべてが変化し、図２と同様に、偏移途中で誤った値が同期化されるという問題が生じる。また、クロック１（ＣＬＫ１）の周波数がクロック２（ＣＬＫ２）よりも高い場合も、複数ビットが同時に変化することになるので、偏移途中の値を同期化してしまう可能性がある。
【特許文献１】特開平１０−８２８０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したように、図３に示すグレイコードへ変換後の同期化方法は、クロック１よりもクロック２の周波数が高く、かつ同期されるデータがとびとびの値を取らない構成のときにのみ有効に機能する。
【００１１】
このため、同期化の対象となるデータがどのような値をとる場合でも、また、クロック周波数がどのように設定されていても、多ビットの入力に対して正確かつ高速に同期化できる同期化回路が望まれる。
【００１２】
そこで、本発明は、多ビット（ｎビット）のデータを正確かつ高速に同期化する回路および方法を提供することを課題とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明では、入力された多ビットのデータを、いったん偏移のハミング距離が１である冗長符号に変換してから同期をとり、同期化した冗長符号をもとの多ビットデータに復号する。
【００１４】
より具体的には、同期化回路は、
（ａ）第１クロックに同期化された多ビットの入力データを、ハミング距離が１となる冗長符号に変換する冗長符号化部と、
（ｂ）前記冗長符号を第２クロックで同期化する冗長符号同期化部と、
（ｃ）前記第２クロックで同期化された冗長符号を、前記多ビットのデータに復号する復号化部と
を備える。
【００１５】
このような構成により、入力信号の変化に応じて変わる冗長符合は、１ビットのみが変化するので、偏移途中の誤った値が伝播することを防止できる。
【００１６】
また、多ビットの入力データを、いったんハミング距離が１の冗長符号に変換してから同期化するので、カウンタやリセットの影響で入力データがどのような値をとろうとも、あるいは、クロック周波数がどのように設定されていても、常に正しく同期化することができる。
【００１７】
良好な形態として、同期化回路は、前回の第１クロックで冗長符号に変換され同期化された前記冗長符号を、今回の第１クロックのタイミングで前記冗長符号化部にフィードバックするフィードバックループをさらに備える。この場合、冗長符号化部は、今回の第１クロックのタイミングで入力された前記多ビットデータと、フィードバックされた前回の冗長符号とに基づいて、今回の冗長符号を決定する。
【００１８】
この構成により、ハミング距離が１の冗長符号を適切に選択することができる。
【発明の効果】
【００１９】
同期対象のデータがとる値やクロック周波数に関係なく、多ビットの入力信号を正確かつ高速に同期化することができる。
【発明を実施するための最良の形態】
【００２０】
以下、添付図面を参照して、本発明の良好な実施形態を説明する。
【００２１】
図４は、本発明の一実施形態に係る同期化回路の構成図である。同期化回路１０は、クロック１（ＣＬＫ１）に同期化された多ビットのデータＤ０，Ｄ１を、偏移のハミング距離が１となる冗長符号に変換する冗長符号化部１１と、クロック２（ＣＬＫ２）で同期化された冗長符号を多ビットデータに復号する復号化部１５とを備える。冗長符号化部１１は、入力された多ビットと、対応する冗長符号とを関連付けた符号化テーブル２１を有する。復号化部１５は、冗長符号と、もとの多ビットデータとを関連付けた復号化テーブル２５を有する。
【００２２】
ひとつ前のクロック１で冗長符号に変換され、同期化された冗長符号の各ビットＦ０、Ｆ１、Ｆ２は、今回のクロック１のタイミングで、冗長符号化部１１にフィードバックされる。冗長符号化部１１は、今回のクロック１のタイミングで入力された多ビットデータＤ０，Ｄ１と、フィードバックされた前回の冗長符号Ｆ０、Ｆ１，Ｆ２に基づいて、符号化テーブル２１を参照し、偏移のハミング距離が１となる冗長符号を、今回の変換後の冗長符号として決定する。
【００２３】
冗長符号化部１１で行われる冗長符号への変換は、入力されたｎビットのデータを、偏移のハミング距離が１である（ｎ2−１）ビットの冗長符号に変換する処理である。図５の例では、２ビットの入力データＤ０、Ｄ１に対して、偏移のハミング距離が１となるような３ビットのデータ（２2−１＝３）に変換する変換処理が行われる。
【００２４】
冗長符号化部１１は、決定した冗長符号を構成する各ビットＥ０、Ｅ１、Ｅ２を出力する。Ｅ０、Ｅ１、Ｅ２は、それぞれクロック１で同期化されて、フリップフロップ１２Ａ〜１２Ｃに入力される。フリップフロップ１２Ａ〜１２Ｃに入力される値は、入力データ（Ｄ０，Ｄ１）に対応して前回のクロック１から変化しているが、偏移のハミング距離が１であるので、１つのビットだけが変化している。
【００２５】
フリップフロップ１２Ａ，１２Ｂ，１２Ｃの出力Ｆ０，Ｆ１，Ｆ２は、２段ラッチの初段のフリップフロップ１３Ａ〜１３Ｃに入力されるとともに、冗長符号化部１１にフィードバックされる。フリップフロップ１３Ａ〜１３Ｃに入力されるデータは、クロック２で同期化さる。フリップフロップ１３Ａ〜１３Ｃの出力は、２段目のフリップフロップ１４Ａ〜１４Ｃに入力され、再度、クロック２で同期化される。１段目のフリップフロップ１３Ａ〜１３Ｃ、２段目のフリップフロップ１４Ａ〜１４Ｃ、およびクロック２（ＣＬＫ２）で、冗長符号同期化部を構成する。
【００２６】
クロック２（ＣＬＫ２）で同期化した３ビットの冗長符号データは、復号化部１５に入力される。復号化部２５は、復号テーブル２５を参照して、３ビットデータを復号し、２ビットのデータＱ０，Ｑ１を出力する。
【００２７】
この２ビットデータ出力Ｑ０、Ｑ１は、偏移途中の誤りの伝播を含まない正確な同期データである。入力データがカウンタやリセットなどの影響でどのような値をとったとしても、あるいは、クロック周波数がどのように設定されていても、いったんハミング距離が１の冗長符号に変換されてから同期化されるので、常に正確な同期をとることが可能になる。
【００２８】
図５は、図４に示す同期化回路１０の動作タイミングの一例を示す図である。クロック１（ＣＬＫ１）に同期して、２ビットの入力信号Ｄ［１：０］の状態が０，１，２，３、０と偏移する。入力信号Ｄの偏移に応じて、クロック１のタイミングで、冗長符号化部１１で変換された３ビットの冗長符号Ｅ［２：０］の状態が偏移する。図５の例では、入力信号Ｄ［１：０］の状態が０のときは、冗長符号化部１１から３ビットの冗長符号「０００」が出力されている。
【００２９】
次のクロック１の立ち上がりで、入力信号Ｄ［１：０］が状態１に偏移すると、冗長符号Ｅ［２：０］の値は「０００」から「００１」に変化する。更新された３ビットデータは、ハミング距離が１になるように変換されているので、最下位のビットのみが、０から１に変化している。このとき、フリップフロップ１２Ａ〜１２Ｃの出力Ｆ［２：０］には、ひとつ前のクロック１に応じた、すなわち入力信号Ｄ［１：０］の状態が０のときの冗長符号の値「０００」が現われる。このＦ［２：０］の値は、クロック２で同期されて後段のフリップフロップ１３Ａ〜１３Ｃに入力されるとともに、冗長符号化部１１にフィードバックされる。
【００３０】
つまり、入力された２ビットデータＤ［１：０］の状態１と、フィードバックされた前回の３ビットデータ（冗長符号）Ｆ［２：０］の値「０００」に基づいて、「０００」から１ビットだけが変化する「００１」が、冗長符号Ｅ［２：０］の値として決定されるわけである。
【００３１】
同様に、次のクロック１のタイミングで、入力信号Ｄ［１：０］が状態２に偏移すると、前回の入力信号Ｄ［１：０］に対応する冗長符号Ｆ［２：０］の値「００１」が、冗長符号化部１１にフィードバックされる。今回の入力信号Ｄ［１：０］の状態２と、フィードバックされた前回の冗長符号の値「００１」とに基づいて、１つのビットのみが変化するように、変換後の冗長符号Ｅ［２：０］の値「１０１」が決定される。
【００３２】
このような決定は、符号化テーブル２１を参照して行われる。
【００３３】
図６は、冗長符号化部１１の符号化テーブル２１に含まれる符号化表の一例を示す。表の左のカラムは、２ビットの入力信号Ｄ［１：０］の値、右のカラムは、変換後の冗長符号Ｆ［２：０］の値である。
【００３４】
入力信号Ｄ［１：０］が「００」、すなわち状態０のときは、冗長符号「０００」または「１１１」のいずれかに変換される。いずれに変換されるかは、前回の冗長符号の値に依存する。
【００３５】
同様に、入力信号Ｄ［１：０］が「０１」、すなわち状態１のときは、３ビットの冗長符号「００１」または「１１０」のいずれかに変換される。前回の冗長符号が「０００」であれば「００１」に変換されるし、前回の冗長符号が「１１１」であれば、「１１０」に変換される。
【００３６】
入力信号Ｄ［１：０］が「１０」、すなわち状態３のときは、３ビットの冗長符号「０１０」または「１０１」のいずれかに変換される。前回の冗長符号が「００１」であれば「０１０」に変換され、前回の冗長符号が「１０１」であれば、「１００」に変換される。
【００３７】
図７は、冗長符号化部１１の符号化テーブル２１に含まれる、別の符号化表の一例である。図７の例では、入力信号Ｄ［１：０］の偏移に対応して、冗長符号の偏移が規定されている。
【００３８】
２ビットの入力信号Ｄの状態が０から１に変化すると、３ビットの冗長符号は、「０００」から「００１」へ変化する場合と、「１１１」から「１１０」に変化する場合がある。入力信号Ｄが１から３に変化すると、３ビットの冗長符号は、「００１」から「０１１」に変化する場合と、「１１０」から「１００」に変化する場合がある。４つの状態を持つ入力信号Ｄの変化の組み合わせは、４×３＝１２通りであり、図７の符号表は、それぞれの場合での３ビット冗長符号の変化を定義している。どの偏移の組み合わせでも、ハミング距離が１になるような偏移の組み合わせが、必ず存在する。どのような偏移でも、冗長符号は１ビットしか変化しないので、偏移途中の誤った値の伝播が防止される。
【００３９】
図示はしないが、復号部１５の複合テーブル２５は、図６または７に示す符号表を逆にした復号表を含み、複合部１５はこれらの復号表を参照して、クロック２（ＣＬＫ２）で同期された３ビットの冗長符号を、対応する２ビットデータへ復号する。
【００４０】
上述した実施形態では、２ビットの入力信号Ｄを、３ビットの冗長符号に変換して同期化したが、本発明はこれに限定されない。実施形態の構成は、たとえば差動回路に用いると特に有効であるが、Ａ／Ｄ変換やメモリへの書き込みなど、同期化が必要な任意の箇所に適用可能である。また、３ビット、４ビットの入力信号に対しても、同様に冗長符号に変換してから同期を取る構成とすることもできる。
【００４１】
最後に、以上の説明に関して、以下の付記を開示する。
（付記１）  第１クロックに同期化された多ビットの入力データを、ハミング距離が１となる冗長符号に変換する冗長符号化部と、
前記冗長符号を第２クロックで同期化する冗長符号同期化部と、
前記第２クロックで同期化された冗長符号を、前記多ビットのデータに復号する復号化部と
を備えることを特徴とする同期化回路。
（付記２）  前記冗長符号化部は、前記多ビットの値と、対応する冗長符号とを関連付けた符号化テーブルを有することを特徴とする付記１に記載の同期化回路。
（付記３）  前記復号化部は、前記冗長符号と、もとの多ビットデータとを関連付けた復号化テーブルを有することを特徴とする付記１または２に記載の同期化回路。
（付記４）  前回の第１クロックで冗長符号に変換され同期化された前記冗長符号を、今回の第１クロックのタイミングで前記冗長符号化部にフィードバックするフィードバックループをさらに備え、
前記冗長符号化部は、今回の第１クロックのタイミングで入力された前記多ビットデータと、フィードバックされた前回の冗長符号とに基づいて、今回の冗長符号を決定することを特徴とする付記１に記載の同期化回路。
（付記５）  前回の第１クロックで冗長符号に変換され同期化された前記冗長符号を、今回の第１クロックのタイミングで前記冗長符号化部にフィードバックするフィードバックループをさらに備え、
前記冗長符号化部は、今回の第１クロックのタイミングで入力された前記多ビットデータと、フィードバックされた前回の冗長符号とに基づいて、前記符号化テーブルを参照して、今回の冗長符号を決定することを特徴とする付記２に記載の同期化回路。
（付記６）  前記冗長符号同期化部は、２段ラッチによる同期化を行うことを特徴とする付記１に記載の同期化回路。
（付記７）  前記冗長符号化部は、ｎビット（ｎ≧２）の入力データを、（ｎ2−１）ビットの冗長符号に変換することを特徴とする付記１に記載の同期化回路。
（付記８）  第１クロックで同期された多ビットの入力データを、ハミング距離が１となる冗長符号に変換するステップと、
前記冗長符号を第２クロックで同期化するステップと、
前記第２クロックで同期化された冗長符号を、前記多ビットのデータに復号するステップと
を含むことを特徴とする多ビット信号の同期化方法。
（付記９）  今回の第１クロックで同期された多ビットのデータと、前回の第１クロックのタイミングで変換された前記冗長符号とに基づいて、今回の冗長符号を決定するステップをさらに含むことを特徴とする付記８に記載の多ビット信号の同期化方法。
（付記１０）  前記第２クロックでの同期化ステップは、２段ラッチによる同期化を含むことを特徴とする付記８に記載の多ビット信号の同期化方法。
【図面の簡単な説明】
【００４２】
【図１】一般的な２段ラッチによる同期化回路を示す図であり、図１（ａ）は単一ビットの同期化を、図１（ｂ）は２段ラッチによる同期化回路を多ビットの同期化に適用した例を示す図である。
【図２】多ビットの入力を同期化する際に生じる問題点として、偏移途中の誤った値の伝播例を説明するための図である。
【図３】図２の問題を解決するために提案されている従来のグレイコードへの変換方法を示す図である。
【図４】本発明の一実施形態に係る同期化回路の概略構成図である。
【図５】図４の同期化回路の動作を示すタイミング図である。
【図６】図４の冗長符号化部で用いられる符号化テーブルの符号表の一例を示す図である。
【図７】図４の冗長符号化部で用いられる符号化テーブルの符号表の別の例を示す図である。
【符号の説明】
【００４３】
１０  同期化回路
１１  冗長符号化部
１２Ａ〜１２Ｃ、１３Ａ〜１３Ｃ、１４Ａ〜１４Ｃ  フリップフロップ
１５  復号化部
２１  符号化テーブル
２５  復号テーブル
【図１】
2006050409.tif 000003
【図２】
2006050409.tif 000004
【図３】
2006050409.tif 000005
【図４】
2006050409.tif 000006
【図５】
2006050409.tif 000007
【図６】
2006050409.tif 000008
【図７】
2006050409.tif 000009