(57)【特許請求の範囲】
【請求項１】
クロックに同期してデータを取り込み保持する複数のデータ保持手段と、
一部または全ての前記データ保持手段の各々に対応して設けられ、対となる前記データ保持手段が次のデータ取り込みタイミングで取り込むべきデータを、前記データ保持手段とは異なるデータ取り込みタイミングで取り込み保持する少なくとも１つの補助データ保持手段と
を備え、
対となる前記補助データ保持手段を備える前記データ保持手段は、データ取り込みタイミングにおいて、対となる前記補助データ保持手段からデータを取り込む同期回路。
【請求項２】
前記データ保持手段のデータ取り込みタイミングと前記補助データ保持手段のデータ取り込みタイミングとが、半周期ずれている請求項１に記載の同期回路。
【請求項３】
前記データ保持手段および前記補助データ保持手段は、フリップフロップである請求項１または請求項２に記載の同期回路。
【請求項４】
前記クロックが、送信側から受信したデータとストローブとの排他的論理和をとることにより生成されている請求項１から請求項３のいずれかに記載の同期回路。
【請求項５】
請求項１から請求項４のいずれかに記載の同期回路を備える通信装置。
【請求項６】
請求項１から請求項４のいずれかに記載の同期回路をプログラミング可能な半導体デバイスにより実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期回路に関するものである。
【背景技術】
【０００２】
従来、例えば、宇宙機器向けのインターフェース規格として、ＩＥＥＥ１３５５が知られている。また、近年、次世代の宇宙機器向けのインターフェース規格として「Space Wire」が提案されている。この「Space  Wire」は、欧州宇宙機関（ＥＳＡ： European  Space  Agency）によってＩＥＥＥ１３５５をベースに宇宙標準として提案された規格であり、ＩＥＥＥ１３５５．２とも呼ばれている（例えば、特許文献１参照）。
また、ＡＶ機器やパソコン周辺機器等を統合して接続するのに適したインターフェースとして、ＩＥＥＥ１３９４高速シリアルバスが幅広く用いられている。
【０００３】
上述したＩＥＥＥ１３５５、ＩＥＥＥ１３５５．２、ＩＥＥＥ１３９４等は、送信側から送られてきた「データ」、「ストローブ」の２つの信号から受信側で送信側のクロックを再現するため、送受信の両側でクロックを同期させる必要がなく、システムを安価に構成することが可能となる。また、データ転送レートが可変なため、様々な機器に柔軟に対応できる等の利点を有している。
【０００４】
図５に、上記規格に用いられる同期回路の一構成例を示す。このような同期回路では、送信側から受信した「データＤ」と「ストローブＳ」との排他的論理和をとることにより、クロックＣＬＫが生成される。このクロックＣＬＫは、シフトレジスタ１００を構成する複数段のフリップフロップＦＦ０，ＦＦ１，〜ＦＦｎに入力される。
このような構成を備える同期回路においては、例えば、クロックＣＬＫの立ち上がりで入力データＤがシフトレジスタ１００の初段に設けられたフリップフロップＦＦ０に取り込まれ、次のクロックの立ち上がりにおいて、フリップフロップＦＦ０に保持されていたデータがフリップフロップＦＦ１に取り込まれるというように、順次データがクロックに同期して右側にシフトされることとなる。
【特許文献１】米国特許第５３４１３７１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、図５に示したような従来の同期回路を一般的なＣＰＬＤ（Complex
Programmable  Logic  Device）やＦＰＧＡ（Field  Programmable  Gate  Array）等のプログラム可能な半導体デバイスにより実現する場合、クロックスキューの問題が発生する。クロックスキューとは、クロックＣＬＫの伝搬遅延時間の差や配線容量などの理由により、クロックＣＬＫの到達タイミングにずれが生ずることである。
このようなクロックスキューが発生すると、例えば、前段のフリップフロップＦＦ０から出力されたデータが次段のフリップフロップＦＦ１に到達する前に、クロックＣＬＫがフリップフロップＦＦ１に到達してしまうおそれがある。この場合、変化する前のデータが次段のフリップフロップＦＦ１に取り込まれることとなり、本来取り込まれるべきデータと実際に取り込むデータとが異なるという、いわゆるレースコンディションが発生してしまう。
【０００６】
上記レースコンディションの問題を解消するために、クロックスキューが生じないような位相補償がなされている信号線を備えるＣＰＬＤやＦＰＧＡを利用して回路設計を行うことも考えられるが、このような回路は高額であることから、コストアップを余儀なくされる。
特に、上記ＣＰＬＤやＦＰＧＡ等を用いてルータを設計する場合には、チャネルごとに独立したクロックラインが必要となる。従って、クロックスキューに起因する上記レースコンディションを解消するためには、チャネル数以上の位相補償がされたクロックラインを有するＣＰＬＤやＦＰＧＡを利用してルータの設計を行う必要あるため、コストは更に増大する。
【０００７】
本発明は、上記問題を解決するためになされたもので、位相補償がなされたクロックラインを備える高価な回路を用いることなく、クロックスキューに起因するレースコンディションを解消することのできる同期回路および通信装置並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は以下の手段を採用する。
本発明は、クロックに同期してデータを取り込み保持する複数のデータ保持手段と、一部または全ての前記データ保持手段の各々に対応して設けられ、対となる前記データ保持手段が次のデータ取り込みタイミングで取り込むべきデータを、前記データ保持手段とは異なるデータ取り込みタイミングで取り込み保持する少なくとも１つの補助データ保持手段とを備え、対となる前記補助データ保持手段を備える前記データ保持手段は、データ取り込みタイミングにおいて、対となる前記補助データ保持手段からデータを取り込む同期回路を提供する。
【０００９】
このような同期回路によれば、データ保持手段のデータ取り込みタイミングにおいて、データ保持手段に取り込まれるべきデータが対となる補助データ保持手段に既に保持されているので、対となる補助データ保持手段からデータを取り込むことで、確実に変化後の正しいデータを取り込むことが可能となる。更に、位相補償がなされた高価なクロックラインを使用する必要がないため、安価なＣＰＬＤやＦＰＧＡ等を利用して回路を実現させることができ、コスト増大を抑止することが可能となる。
【００１０】
上記同期回路において、前記データ保持手段のデータ取り込みタイミングと前記補助データ保持手段のデータ取り込みタイミングとが、半周期ずれていることが好ましい。
【００１１】
このような構成によれば、データ保持手段がデータを取り込むタイミングの略半周期前には、補助データ保持手段に新たなデータが取り込まれている状態とすることができる。これにより、データ保持手段がデータを取り込むタイミングと補助データ保持手段がデータを取り込むタイミングとの時間間隔を最大限に確保することが可能となる。
更に、位相を半周期ずらすことは、信号反転回路等により容易に実現することができる。
【００１２】
上記同期回路において、前記データ保持手段および前記補助データ保持手段は、例えば、フリップフロップである。
【００１３】
上記同期回路において、前記クロックが、送信側から受信したデータとストローブとの排他的論理和をとることにより生成されていることとしてもよい。
【００１４】
本発明は、上記同期回路を備える通信装置を提供する。
本発明は、上記同期回路をプログラミング可能な半導体デバイスにより実現するためのプログラムを提供する。プログラミング可能な半導体デバイスとは、例えば、ＣＰＬＤやＦＰＧＡ等である。プログラムは、例えば、ＶＨＤＬ（VHSIC  Hardware  Description  Language）やＶerilog ＨＤＬ等のハードウェア記述言語等により記述されている。
【発明の効果】
【００１５】
本発明によれば、クロックスキューを解消するために位相補償がされたクロックラインを用いることなく、レースコンディションを解消することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明に係る同期回路および通信装置並びにプログラムの一実施形態について、図面を参照して説明する。ここでは、本発明に係る同期回路をシリアルパラレル変換器に適用した場合の一実施形態について詳しく説明する。
【００１７】
図１には、本実施形態に係るシリアルパラレル変換器１の概略構成が示されている。
図１に示されるように、シリアルパラレル変換器１は、送信機（図示略）から受信したデータＤとストローブＳとの排他的論理和（イクスクルーシブＯＲ）をとることにより、クロックＣＬＫを生成するクロック生成部２と、該クロックＣＬＫに同期してデータを取り込むシフトレジスタ（同期回路）ＳＦを有している。
シフトレジスタＳＦは、クロックＣＬＫに同期してデータＤを取り込み保持するｎ段のデータ保持部１０ａ，１０ｂ，１０ｃ・・・１０ｎと、初段に設けられたデータ保持部１０ａ以外の各データ保持部１０ｂ，１０ｃ，・・・１０ｎに対応して設けられ、データ保持部１０ｂ，１０ｃ，・・・１０ｎとは異なるタイミングでデータＤを取り込み保持する補助データ保持部２０ｂ，２０ｃ，・・・２０ｎとを備えている。本実施形態では、データ保持部１０ａ，１０ｂ，１０ｃ・・・１０ｎおよび補助データ保持部２０ｂ，２０ｃ，・・・２０ｎは、いずれもＤフリップフロップにより構成されている。
【００１８】
シフトレジスタＳＦにおいて、補助データ保持部２０ｂ，２０ｃ，・・・２０ｎは、対となるデータ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎの前段に設けられている。この結果、シフトレジスタＳＦにおいて、データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎと補助データ保持部２０ｂ，２０ｃ，・・・２０ｎとは交互に直列的に接続されている。
上記データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎは、クロックＣＬＫの立ち上がりでデータＤを取り込み保持するように構成されている。補助データ保持部２０ｂ，２０ｃ，・・・２０ｎは、クロックＣＬＫの立下りで、データＤを取り込み保持するように構成されている。
【００１９】
このような構成を備えるシリアルパラレル変換器１においては、データＤとストローブＳとの排他的論理和がとられることによりクロック生成部２によりクロックＣＬＫが生成され、シフトレジスタＳＦの各データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎに与えられるとともに、このクロックＣＬＫが反転された信号が各補助データ保持部２０ｂ，２０ｃ，・・・２０ｎに与えられる。
【００２０】
シフトレジスタＳＦにおいて、データＤは、図２に示されるように、クロックＣＬＫの立ち上がりで初段のデータ保持部１０ａに取り込まれ、クロックＣＬＫの立下りで補助データ保持部２０ｂに取り込まれる。そして、次のクロックの立ち上がりで、補助データ保持部２０ｂのデータが、データ保持部１０ｂに取り込まれ保持される。そして、このようなデータの取り込みと保持がクロックＣＬＫに同期して繰り返し行われることにより、データＤは、各補助データ保持部２０ｃ，・・・２０ｎを経由して下段のデータ保持部１０ｃ，・・・１０ｎに順次取り込まれ、最終的にｎビットのパラレルデータとして出力される。
【００２１】
この場合において、図３に示すように、データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎがデータＤを取り込むタイミングと、データ保持部２０ｂ，２０ｃ，・・・２０ｎがデータを取り込むタイミングとは、略半周期ずれている。従って、データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎがデータＤを取り込むときの略半周期前には、対となる補助データ保持部２０ｂ，２０ｃ，・・・２０ｎには、次に取り込まれるべきデータが既に保持されている状態となっている。このため、クロックスキューにより、クロックＣＬＫの位相が多少ずれたとしても、データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎは取り込むべきデータを確実に取り込むことが可能となる。
【００２２】
以上説明してきたように、本実施形態に係るパラレルシリアル変換器１によれば、初段以降の各データ保持部１０ｂ，１０ｃ，・・・１０ｎに対応する補助データ保持部２０ｂ，２０ｃ，・・・２０ｎをそれぞれ設け、各データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎがデータＤを取り込むタイミングの略半周期前には、各データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎが取り込むべきデータを補助データ保持部２０ｂ，２０ｃ，・・・２０ｎに保持させることとしたので、各データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎに正しいデータＤを確実に取り込ませることが可能となる。これにより、位相補償がされたクロックラインを備える高価な回路を用いることなく、レースコンディションの問題を解消することができる。この結果、一般的なＣＰＬＤやＦＰＧＡ（Field Programmable Gate Array）等のプログラミング可能な汎用の半導体デバイスにより、パラレルシリアル変換器１を安価に実現することができる。
【００２３】
なお、上述した本実施形態では、データ保持部１０ａ，１０ｂ，１０ｃ，・・・１０ｎ、補助データ保持部２０ｂ，２０ｃ，・・・２０ｎとしてＤフリップフロップを用いたが、データ保持部および補助データ保持部は他のメモリ素子等により構成されていてもよい。
【００２４】
なお、上述した実施形態では、同期回路がシリアルパラレル変換器１に適用される場合について説明したが、本発明の同期回路は上記シリアルパラレル変換器１に限られず幅広く用いることが可能である。
例えば、図４には、本発明の一実施形態に係る同期回路を汎用性を持たせた形態で示した回路図が示されている。
【００２５】
図４に示されるように、同期回路５は、複数のデータ保持部３０ａ、３０ｂ、３０ｃ，３０ｄと、各データ保持部３０ａ、３０ｂ、３０ｃ，３０ｄに対応して設けられる補助データ保持部４０ａ，４０ｂ，４０ｃ，４０ｄとを備えている。各データ保持部３０ａ、３０ｂ、３０ｃ，３０ｄは、クロックＣＬＫの立ち上がりで、保持していたデータＤ（Ｔ）を論理回路５０に出力するとともに、対となる補助データ保持部４０ａ，４０ｂ，４０ｃ，４０ｄに保持されていたデータＤ（Ｔ＋１）を取り込む。
【００２６】
論理回路５０は、各データ保持部３０ａ，３０ｂ，３０ｃ，３０ｄから入力されたデータＤ（Ｔ）に基づいて、所定の演算を行う。なお、論理回路５０の内部構成については特に限定されない。論理回路５０により演算処理された各データＤ（Ｔ＋１）は、クロックＣＬＫの立下りで補助データ保持部４０ａ，４０ｂ，４０ｃ，４０ｄにそれぞれ取り込まれる。これにより、次のクロックＣＬＫの立ち上がりには、補助データ保持部４０ａ，４０ｂ，４０ｃ，４０ｄに保持されているデータＤ（Ｔ＋１）が各データ保持部３０ａ，３０ｂ，３０ｃ，３０ｄに取り込まれることとなる。
【００２７】
このように、図４に示される同期回路５によれば、各データ保持部３０ａ、３０ｂ、３０ｃ，３０ｄに対応して補助データ保持部４０ａ，４０ｂ，４０ｃ，４０ｄをそれぞれ設け、各データ保持部３０ａ、３０ｂ、３０ｃ，３０ｄがデータを取り込むタイミングに先駆けて、各補助データ保持部４０ａ，４０ｂ，４０ｃ，４０ｄに取り込むべきデータを保持するようにしたので、各データ保持部３０ａ、３０ｂ、３０ｃ，３０ｄに変化後のデータＤ（Ｔ＋１）を確実に取り込ませることが可能となる。これにより、位相補償がなされた高価なクロックラインを備える回路を用いることなく、レースコンディションの問題を解消することができる。
【００２８】
また、上述した本実施形態に係る同期回路５は、幅広い分野において適用されることが可能である。また、本発明に係る同期回路５は、特に、通信装置、その中でも多数のクロック線を必要とする通信装置に利用されて好適なものである。通信装置としては、例えば、ルータ、コンピュータ間データ通信端末、機器間のデータ通信端末、リモートセンシング用通信装置、リモートコントロール用通信装置、データストレージ用通信装置等が一例として挙げられる。
【００２９】
また、図１に示された本発明の同期回路を備えるシリアルパラレル変換器１、或いは図４に示された本発明の一実施形態に係る同期回路５をＣＰＬＤ（Complex PLD）や、ＦＰＧＡ（Field  Programmable  Gate  Array）等のプログラミング可能な汎用の半導体デバイスにより実現する場合には、ハードウェア記述言語等によりハードウェア設計を行う。ハードウェア記述言語の一例としては、ＶＨＤＬやＶerilog ＨＤＬ等が挙げられる。
このように、ＶＨＤＬ等のハードウェア記述言語を用いてプログラミングを行うことにより、図１または図４に示した本実施形態に係る同期回路、同期回路を備えるシリアルパラレル変換器、これを備える通信装置等を容易に実現することが可能となる。
【００３０】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態に係る同期回路を適用したシリアルパラレル変換器の概略構成を示した図である。
【図２】図１に示したシフトレジスタのタイミングチャートの一例を示した図である。
【図３】図１に示したシリアルパラレル変換器のデータ取り込みタイミングについて説明するための図である。
【図４】本発明の同期回路を汎用的に示した回路構成図である。
【図５】従来の同期回路の一例を示した回路構成図である。
【符号の説明】
【００３２】
１  シリアルパラレル変換器
２  クロック生成部
５  同期回路
ＳＦ  シフトレジスタ
１０ａ〜１０ｎ、３０ａ〜３０ｄ  データ保持部（データ保持手段）
２０ｂ〜２０ｎ、４０ａ〜４０ｄ  補助データ保持部（補助データ保持手段）
５０  論理回路
【図１】
0004929082.tif 000002
【図２】
0004929082.tif 000003
【図３】
0004929082.tif 000004
【図４】
0004929082.tif 000005
【図５】
0004929082.tif 000006