(57)【要約】【課題】回路規模の増大を抑制しつつ、グレイコードを用いた任意の値のカウンタを正しく同期化することができる同期化回路及び同期化方法を提供すること。【解決手段】本発明にかかる同期化回路１は、制御信号生成部１１、補完信号生成部１２、出力選択部１３を備える。制御信号生成部１１は、第１のグレイコード信号１０１のカウンタリセットポイントを検出し、第１の制御信号１０３を生成する。補完信号生成部１２は、入力カウンタ信号３００のカウント開始値を意味し、第２のクロック２００によって同期化された補完信号２０２を生成する。出力選択部１３は、第２のグレイコード信号２０１と補完信号２０２とのうち、いずれか一方を第２の制御信号２０３に基づいて選択し、当該選択した信号に基づいて出力カウンタ信号４００を出力する。【選択図】図１
2011151476.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックによって同期化された入力カウンタ信号に基づいて生成される第１のグレイコード信号のカウンタリセットポイントを検出し、制御信号を生成する制御信号生成手段と、
前記入力カウンタ信号のカウント開始値を意味し、第２のクロックによって同期化された補完信号を生成する補完信号生成手段と、
前記第１のグレイコード信号が前記第２のクロックによって同期化された第２のグレイコード信号と、前記補完信号とのうち、いずれか一方を前記制御信号に基づいて選択し、当該選択した信号に基づいて出力カウンタ信号を出力する出力選択手段と、
を備える同期化回路。
【請求項２】
前記制御信号生成手段は、
カウント終了値を意味する前記第１のグレイコード信号と、前記カウント開始値を意味する前記第１のグレイコード信号とのハミング距離に基づいて、前記カウンタリセットポイントを検出する請求項１に記載の同期化回路。
【請求項３】
前記補完信号生成手段は、
前記第１のグレイコード信号のカウント値から所定の値だけ変化させたカウント値を意味する第１のシフトグレイコード信号を生成する信号シフト手段と、
前記第１のシフトグレイコード信号が第２のクロックによって同期化された第２のシフトグレイコード信号のカウント値から前記所定の値に対応した値だけ変化させたカウント値に基づいて、当該第２のシフトグレイコード信号を前記補完信号に変換する信号逆シフト手段と、
を有する請求項１または２に記載の同期化回路。
【請求項４】
前記入力カウンタ信号がインクリメントの場合は、
前記信号シフト手段は、前記第１のグレイコード信号のカウント値から前記所定の値を減算したカウント値を意味する前記第１のシフトグレイコード信号を生成し、
前記信号逆シフト手段は、前記第２のシフトグレイコード信号のカウント値に前記所定の値よりも大きい値を加算したカウント値に基づいて、当該第２のシフトグレイコード信号を前記補完信号に変換する請求項３に記載の同期化回路。
【請求項５】
前記入力カウンタ信号がデクリメントの場合は、
前記信号シフト手段は、前記第１のグレイコード信号のカウント値から前記所定の値を加算したカウント値を意味する前記第１のシフトグレイコード信号を生成し、
前記信号逆シフト手段は、前記第２のシフトグレイコード信号のカウント値に前記所定の値よりも大きい値を減算したカウント値に基づいて、当該第２のシフトグレイコード信号を前記補完信号に変換する請求項３または４に記載の同期化回路。
【請求項６】
前記入力カウンタ信号及び出力カウンタ信号はバイナリデータであって、
前記同期化回路は、
前記入力カウンタ信号が前記第１のクロックによって同期化された第１のバイナリカウンタ信号を、前記第１のグレイコード信号に変換する第１のグレイコードエンコーダと、
前記第２のグレイコード信号を、第２のバイナリカウンタ信号に変換する第１のグレイコードデコーダと、をさらに備え、
前記信号シフト手段は、
前記第１のバイナリカウンタ信号を、当該第１のバイナリカウンタ信号のカウンタ値から前記所定の値だけ変化させたカウント値を意味する第１のシフトバイナリカウンタに変換するカウンタ正シフト手段と、
前記第１のシフトバイナリカウンタ信号を前記第１のシフトグレイコード信号に変換する第２のグレイコードエンコーダと、を有し、
前記信号逆シフト手段は、
前記第２のシフトグレイコード信号を第２のシフトバイナリカウンタ信号に変換する第２のグレイコードデコーダと、
前記第２のシフトバイナリカウンタ信号のカウント値から前記所定の値に対応した値だけ変化させたカウント値に基づいて、当該第２のシフトバイナリカウンタ信号を、前記補完信号に変換するカウンタ逆シフト手段と、を有し、
前記出力選択手段は、前記第２のバイナリカウンタ信号と前記補完信号とのうち、いずれか一方を前記制御信号に基づいて前記出力カウンタ信号として出力する請求項３〜５のいずれか一項に記載の同期化回路。
【請求項７】
第１のクロックによって同期化された入力カウンタ信号に基づいて生成される第１のグレイコード信号のカウンタリセットポイントを検出し、制御信号を生成し、
前記入力カウンタ信号のカウント開始値を意味し、第２のクロックによって同期化された補完信号を生成し、
前記第１のグレイコード信号が前記第２のクロックによって同期化された第２のグレイコード信号と前記補完信号とのうち、いずれか一方を前記制御信号に基づいて選択し、当該選択した信号に基づいて出力カウンタ信号を出力する同期化方法。
【請求項８】
前記制御信号の検出は、
カウント終了値を意味する前記第１のグレイコード信号と、前記カウント開始値を意味する前記第１のグレイコード信号とのハミング距離に基づいて、前記カウンタリセットポイントを検出する請求項７に記載の同期化方法。
【請求項９】
前記補完信号の生成は、
前記第１のグレイコード信号のカウント値から所定の値だけ変化させたカウント値を意味する第１のシフトグレイコード信号を生成し、
前記第１のシフトグレイコード信号が第２のクロックによって同期化された第２のシフトグレイコード信号のカウント値から前記所定の値に対応した値だけ変化させたカウント値に基づいて、当該第２のシフトグレイコード信号を前記補完信号に変換する請求項７または８に記載の同期化方法。
【請求項１０】
前記入力カウンタ信号がインクリメントの場合、前記補完信号の生成は、
前記第１のグレイコード信号のカウント値から前記所定の値を減算したカウント値を意味する前記第１のシフトグレイコード信号を生成し、
前記第２のシフトグレイコード信号のカウント値に前記所定の値よりも大きい値を加算したカウント値に基づいて、当該第２のシフトグレイコード信号を前記補完信号に変換する請求項９に記載の同期化方法。
【請求項１１】
前記入力カウンタ信号がデクリメントの場合、前記補完信号の生成は、
前記第１のグレイコード信号のカウント値から前記所定の値を加算したカウント値を意味する前記第１のシフトグレイコード信号を生成し、
前記第２のシフトグレイコード信号のカウント値に前記所定の値よりも大きい値を減算したカウント値に基づいて、当該第２のシフトグレイコード信号を前記補完信号に変換する請求項９または１０に記載の同期化方法。
【請求項１２】
前記入力カウンタ信号及び出力カウンタ信号はバイナリデータであって、
前記同期化方法は、
前記入力カウンタ信号が前記第１のクロックによって同期化された第１のバイナリカウンタ信号を、前記第１のグレイコード信号に変換し、
前記第２のグレイコード信号を、第２のバイナリカウンタ信号に変換し、
前記補完信号の生成は、
前記第１のバイナリカウンタ信号を、当該第１のバイナリカウンタ信号のカウンタ値から前記所定の値だけ変化させたカウント値を意味する第１のシフトバイナリカウンタに変換し、
前記第１のシフトバイナリカウンタ信号を前記第１のシフトグレイコード信号に変換し、
前記第２のシフトグレイコード信号を第２のシフトバイナリカウンタ信号に変換し、
前記第２のシフトバイナリカウンタ信号のカウント値から前記所定の値に対応した値だけ変化させたカウント値に基づいて、当該第２のシフトバイナリカウンタ信号を前記補完信号に変換し、
前記出力カウンタ信号の出力は、前記第２のバイナリカウンタ信号と前記補完信号とのうち、いずれか一方を前記制御信号に基づいて前記出力カウンタ信号として出力する請求項９〜１１のいずれか一項に記載の同期化方法。
【請求項１３】
受信データの書き込み、読み出しを行う記憶手段と、
前記第１のクロックに基づいて、前記記憶手段に前記受信データを書き込むためのアドレスを出力する書き込み制御回路と、
前記第２のクロックに基づいて、前記記憶手段から前記受信データを読み出すためのアドレスを出力する読み出し制御回路と、
前記書き込み制御回路の出力を前記入力カウンタ信号とし、前記書き込み制御回路の出力に基づいて、前記出力カウンタ信号を生成し、同期化書き込みアドレスとして出力する請求項１〜７のいずれか一項に記載の同期化回路と、
前記書き込み制御回路の出力に対応する前記同期化書き込みアドレスと、前記読み出し制御回路の出力と、に基づいて演算を行い、前記記憶手段に蓄積されるデータ量に関する情報を出力する演算手段と、を備える非同期乗り換えバッファ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は同期化回路及び同期化方法に関し、特にグレイコードを用いる同期化回路及び同期化方法に関する。
【背景技術】
【０００２】
通信インタフェース装置における、非同期クロック乗り換え用バッファは、データの損失を防ぐためフル(Full)またはエンプティ(Empty)のみではなくバッファ内のデータ量の監視を必要とする。
【０００３】
また、バッファ遅延の観点では、遅延はなるべく小さいことが通信品質上望ましい。つまりバッファ容量は小さい必要がある。これは回路規模を小さくする効果も期待できる。
【０００４】
非同期クロック乗り換え用バッファにおけるデータ量監視回路は、滞留(蓄積)データ量を、書き込み側の書き込みアドレスと、読み出し側の読み出しアドレスを比較・演算して算出する。これは、書き込みアドレスと、読み出しアドレスは通常バイナリインクリメント(もしくはデクリメント)カウンタで構成され、２ポートＳＲＡＭ（Static Random Access Memory）もしくは、レジスタアレイのアドレスとして使用されるためであり、その差分から滞留(蓄積)データ量を測ることが出来る。
【０００５】
ここで、非同期クロック乗り換え用バッファにおいて、書き込み側の動作クロックと読み出し側の動作クロックは、周波数、もしくは位相が異なるクロックである。また、図９に示すように、バイナリカウンタ値におけるハミング距離はカウンタのビット数分変化する場合がある。したがって、図１０に示すように、そのまま異なるクロック間の乗り換えを実施すると、データの伝播スキュー及び、クロックスキューの影響により、間違ったカウンタ値が伝播する可能性があった。
【０００６】
そのため、データ量監視回路では、図１１に示すようなバイナリカウンタを一旦グレイコードに変換した後、クロック乗り換えを実施し再度バイナリカウンタに戻すことで正しいバイナリカウンタ値の伝播を行う。これは、図１２に示すように、グレイコードのハミング距離が常に１であるため、図１３に示すように、データの伝播スキュー及び、クロックスキューがあった場合にも、間違ったカウンタ値が伝播することはあり得ないためである。
【０００７】
グレイコードに関しては、特許文献１において、排他的論理和ゲート(ＸＯＲゲート)を使用してバイナリコードとグレイコードの相互変換が可能であることが開示されている。
【０００８】
これらの技術を用いて、図１４に示すような非同期乗り換えバッファのデータ量監視回路が構成可能である。しかし、グレイコードの特徴であるハミング距離を常に１に保つためには、バイナリカウンタが２のべき乗である必要があった。２のべき乗でない場合は、バイナリカウンタが最大値から最小値へ変化する場合にハミング距離が１以外となり得る。例えば、２４を計測する場合、バイナリカウンタは０から２３のカウント値となり、これに対応するグレイコードは'00000'(２進)から'111000'(２進)となる。これは２３から０への変化時にグレイコード上'11100'(２進)から'00000'(２進)の変化であり、ハミング距離が１以上の変化のためグレイコード上であっても正しい値が伝播しない場合があり得る。このため、バッファ量が、例えば１３０段あれば非同期乗り換え方式上問題ない場合であっても、２のべき乗となる２５６段のバッファ、つまり２５６進のバイナリカウンタを必要としていた。バイナリカウンタが２のべき乗の場合には、バイナリカウンタが最大値から最小値へ変化する場合もハミング距離は１となる（図１２参照）。
【０００９】
特許文献２及び３には、２のべき乗のバイナリカウンタを必要となるカウンタ数に補正するために、グレイコードからハミング距離が１になるようにコードを間引いて使用する技術が開示されている。図１５に示すように、１６進のグレイコードの場合、括弧表記の部分のコードを間引くことにより、ハミング距離を１に保ったまま１２進のカウントが可能となる。
【００１０】
また、特許文献４には、グレイコードで生成されたライトアドレスをリードクロックでリタイミングした信号がスリップしたか否かを判定し、スリップが生じた場合には、ハミング距離が１となるように訂正した訂正ライトアドレスを出力する技術が開示されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】米国特許第５７５４６１４号明細書
【特許文献２】特表２００３−５１３５８２号公報
【特許文献３】特表２００４−５０７８２４号公報
【特許文献４】特開２００１−９４６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１〜４の技術においては、バイナリカウンタを２のべき乗とする必要がある。これはそのまま２ポートＳＲＡＭ、もしくはレジスタアレイのワード数となる。つまり、２のべき乗にするため必要以上のワード数を具備する必要があり、回路規模の増大を招くと共に、通信品質の一つである、遅延条件を劣化させる要因になるという問題があった。
【００１３】
また、特許文献２及び３の技術においては、バッファの状態（フル(Full)またはエンプティ(Empty)）及び滞留(蓄積)量を演算する場合に、間引かれたバイナリカウンタから算出するためには、どの数が間引かれているのかを考慮する必要があり、演算が複雑化するという問題があった。
【００１４】
例えば、図１５に示したグレイコードの場合、書き込みアドレスが７を示しており、読み出しアドレスが３の場合には、滞留量が４(７−３)から算出できるが、書き込みアドレスが１２を示し、読み出しアドレスが６の場合、９と１０が間引かれている事を考慮して演算を行わないと滞留量４は算出できない。
【００１５】
一方、特許文献４に記載の技術は、グレイコードにおいて、連続する隣の値とのハミング距離は１であることが前提となっている。そのため、上述したように、カウンタの最大値から最小値へ２以上のハミング距離で変化するようなグレイコードについては何ら対策が図られていない。
【課題を解決するための手段】
【００１６】
本発明にかかる同期化回路は、第１のクロックによって同期化された入力カウンタ信号に基づいて生成される第１のグレイコード信号のカウントリセットポイントを検出し、制御信号を生成する制御信号生成手段と、前記入力カウンタ信号のカウント開始値を意味し、第２のクロックによって同期化された補完信号を生成する補完信号生成手段と、前記第１のグレイコード信号が前記第２のクロックによって同期化された第２のグレイコード信号と前記補完信号とのうち、いずれか一方を前記制御信号に基づいて選択し、当該選択した信号に基づいて出力カウンタ信号を出力する出力選択手段と、を備えるものである。このような構成により、出力カウンタ信号が不定状態になる時刻において、カウンタ開始値を補うことができる。
【００１７】
本発明にかかる同期化方法は、第１のクロックによって同期化された入力カウンタ信号に基づいて生成される第１のグレイコード信号のカウンタリセットポイントを検出し、制御信号を生成し、前記入力カウンタ信号のカウント開始値を意味し、第２のクロックによって同期化された補完信号を生成し、前記第１のグレイコード信号が前記第２のクロックによって同期化された第２のグレイコード信号と前記補完信号とのうち、いずれか一方を前記制御信号に基づいて選択し、当該選択した信号に基づいて出力カウンタ信号を出力するものである。これによって、第１のグレイコード信号のカウント値の変化がカウンタリセットポイントで行われた場合であっても、正しく同期化することができる。
【発明の効果】
【００１８】
本発明により、回路規模の増大を抑制しつつ、グレイコードを用いた任意の値のカウンタを正しく同期化することができる同期化回路及び同期化方法を提供することができる。
【図面の簡単な説明】
【００１９】
【図１】実施の形態１にかかる同期化回路の構成例を示す図である。
【図２】実施の形態２にかかる同期化回路の構成例を示す図である。
【図３】実施の形態２にかかる同期化回路の動作を説明するためのタイミングチャートである。
【図４】実施の形態２にかかる同期化回路の動作を説明するためのタイミングチャートである。
【図５】実施の形態３にかかる同期化回路の構成例を示す図である。
【図６】実施の形態３にかかる同期化回路の動作を説明するためのタイミングチャートである。
【図７】実施の形態３にかかる同期化回路の動作を説明するためのタイミングチャートである。
【図８】実施の形態４にかかる非同期乗り換えバッファの構成例を示す図である。
【図９】バイナリカウンタのハミング距離を示す図である。
【図１０】バイナリカウンタの非同期乗り換えの動作を説明するタイミングチャートである。
【図１１】関連するグレイコードの非同期乗り換え回路の構成例を示す図である。
【図１２】グレイコードのハミング距離を示す図である。
【図１３】グレイコードの非同期乗り換えの動作を説明するタイミングチャートである。
【図１４】関連するグレイコードの非同期乗り換え回路の構成例を示す図である。
【図１５】関連するグレイコードを示す図である。
【発明を実施するための形態】
【００２０】
実施の形態１
以下、図面を参照して本発明の実施の形態について説明する。本実施の形態にかかる同期化回路の構成例を図１に示す。図１に示した同期化回路１は、制御信号生成部１１、補完信号生成部１２、出力選択部１３、フリップフロップ９１、９２を備える。
【００２１】
同期化回路１は、第１のクロック１００により同期化された入力カウンタ信号３００を第２のクロック２００によって同期化し、出力カウンタ信号４００を出力する。つまり、同期化回路１は、第１のクロック１００によって動作するカウント値を、第２のクロック２００側に正しく伝搬させる。ここで、同期化はフリップフロップ９１、９２によって行われる。
【００２２】
制御信号生成部１１には、第１のクロック１００によって同期化された入力カウンタ信号３００に基づいて生成された第１のグレイコード信号１０１が入力される。そして、第１のグレイコード信号１０１のカウンタリセットポイントを検出して、第１の制御信号１０３を生成し、出力する。
【００２３】
ここで、第１のグレイコード信号１０１のカウンタリセットポイントとは、第１のグレイコード信号１０１のカウント値が最大値から最小値へ変化する時刻（入力カウンタ信号３００がインクリメントの場合）を意味する。例えば、入力カウンタ信号３００が１０を測定する場合は、第１のグレイコード信号１０１のカウント値が９から０へ変化する時刻を意味する。一方、入力カウンタ信号３００がデクリメントの場合は、第１のグレイコード信号１０１のカウント値が最小値から最大値へ変化する時刻を意味する。上記の例においては、０から９へ変化する時刻を意味する。
【００２４】
補完信号生成部１２は、入力カウンタ信号３００のカウント開始値を意味する補完信号２０２を生成する。当該補完信号２０２は、フリップフロップ等（図示省略）よって第２のクロック２００と同期化される。なお、入力カウンタ信号３００のカウント開始値とは、入力カウンタ信号３００がインクリメントの場合はカウンタの最小値を意味し、デクリメントの場合はカウンタの最大値を意味する。一方、カウント終了値とは、入力カウンタ信号３００がインクリメントの場合はカウンタの最大値を意味し、デクリメントの場合はカウンタの最小値を意味する。
【００２５】
出力選択部１３には、第１のグレイコード信号１０１及び第１の制御信号１０３のそれぞれが第２のクロック２００によって同期化された第２のグレイコード信号２０１及び第２の制御信号２０３と、補完信号生成部１２が生成した補完信号２０２が入力される。出力選択部１３は、第２のグレイコード信号２０１と補完信号２０２とのうち、いずれか一方を第２の制御信号２０３に基づいて選択する。そして、選択された信号に基づいて、出力カウンタ信号４００を出力する。
【００２６】
続いて、本実施の形態にかかる同期化回路１の動作例について説明する。はじめに、入力カウンタ信号３００がフリップフロップ９１によって、第１のクロック１００と同期化される。なお、本実施の形態においては、入力カウンタ信号３００及び出力カウンタ信号４００はグレイコードの信号であるものとする。
【００２７】
入力カウンタ信号３００が第１のクロック１００により同期化された信号である第１のグレイコード信号１０１は、フリップフロップ９２、制御信号生成部１１に入力される。
【００２８】
フリップフロップ９２に入力された第１のグレイコード信号１０１は、第２のクロックによって同期化され、第２のグレイコード信号２０１となる。第２のグレイコード信号２０１は、出力選択部１３に入力される。
【００２９】
補完信号生成部１２は、第２のクロック２００と同期化したカウント開始値を補完信号２０２として生成し、出力選択部１３に出力する。本実施の形態においては、当該補完信号２０２はグレイコード信号であるものとする。
【００３０】
補完信号２０２の生成は、予め入力カウンタ信号３００のカウント開始値を補完信号生成部１２に入力しておき、第２のクロックに同期化させたカウント開始値を生成してもよいし、第１のグレイコード信号１０１を補完信号生成部１２に入力し、当該入力された第１のグレイコード信号のカウント値を進ませたり遅らせたりする等、カウント値を調整することによって補完信号２０２を生成してもよい。
【００３１】
制御信号生成部１１は、入力された第１のグレイコード信号１０１を監視し、第１のグレイコード信号１０１のカウンタリセットポイントを検出する。すなわち、カウンタが２のべき乗でない限り、第１のグレイコード信号１０１がカウント終了値からカウント開始値へ変化する場合、第１のグレイコード信号１０１のハミング距離は２以上となる。したがって、制御信号生成部１１は、第１のグレイコード信号１０１のハミング距離が２以上となる部分を検出する。そして、検出結果に応じて第１の制御信号１０３を生成する。
【００３２】
つまり、第１の制御信号１０３は、第１のグレイコード信号１０１のカウンタがカウント終了値からカウント開始値へ変化したか、またはそれ以外の変化であるかを判定することができる信号となる。第１の制御信号１０３は、フリップフロップ９２へ入力され、第２のクロック２００と同期化し、第２の制御信号２０３となる。
【００３３】
次に、出力選択部１３は、入力された第２のグレイコード信号２０１と補完信号２０２のいずれか一方の信号を出力カウンタ信号４００として出力する。ここで、出力する信号の選択は、第２の制御信号２０３に基づいて行われる。第２の制御信号２０３は、上記の通り、第１のグレイコード信号のカウンタがカウント終了値からカウント開始値への変化であるか、またはそれ以外の変化であるかを判定する信号である。つまり、出力選択部１３は、第１のグレイコード信号１０１のカウンタがリセットされる時刻を知ることができる。
【００３４】
具体的には、出力選択部１３は、第２のグレイコード信号２０１が意味するカウント値が最大値から最小値へ変化する場合（カウンタがインクリメントの場合）には、第２のグレイコード信号２０１ではなく、最小値を意味する補完信号２０２を選択して出力する。同様に、最小値から最大値へ変化する場合（カウンタがデクリメントの場合）にも、第２のグレイコード信号２０１ではなく、最大値を意味する補完信号２０２を選択して出力する。
【００３５】
一方、第２のグレイコード信号２０１が意味するカウント値の変化が上記以外の場合には、グレイコード信号のハミング距離は常に１であるため、第１のグレイコード信号１０１が意味するカウント値を第２のクロック２００側に正確に伝搬することができる。そのため、カウント値の変化が上記以外の場合は、出力選択部１３は、補完信号２０２ではなく、第２のグレイコード信号２０１を選択して出力する。
【００３６】
このように、本実施の形態にかかる同期化回路１は、入力カウンタ信号３００のカウント値が最大値から最小値へ変化する場合、または最小値から最大値へ変化する場合、つまり第１のグレイコード信号１０１のカウンタリセットポイントにおいて、補完信号２０２を選択して出力する。そのため、カウンタリセットポイントにおいて第２のクロック２００によって同期化されたグレイコードを使用することがない。したがって、２以上のハミング距離で変化した信頼できないグレイコードを使用することがない。その結果、入力カウンタ信号３００のカウント値を第２のクロック２００側に常に正しく伝搬させることができる。
【００３７】
また、本発明にかかる同期化回路は、カウンタリセットポイントにおいてグレイコードが２以上のハミング距離で変化する場合にも正しく同期化できるため、２のべき乗でない任意の値のカウンタであっても、グレイコードを用いて異なるクロック間を正確に同期化することができる。さらに、本発明にかかる同期化回路を用いると、グレイコードを格納するためのメモリにおいて不必要に２のべき乗のワード数を確保する必要がない。そのため、複雑なグレイコードの間引き演算も必要なく、バッファ遅延を減少させることができるとともに、回路規模が拡大することを抑制することができる。
【００３８】
実施の形態２
本発明にかかる実施の形態２について説明する。本実施の形態にかかる同期化回路２の構成例を図２に示す。同期化回路２は、図１に示した同期化回路１の具体例である。同期化回路２において、補完信号生成部１２は、信号シフト部１２１、信号逆シフト部１２２、フリップフロップ９２を有する。また、補完信号生成部１２には、第１のグレイコード信号１０１が入力される。なお、その他の構成については同期化回路１と同様であるので、説明を省略する。
【００３９】
信号シフト部１２１は、入力された第１のグレイコード信号１０１のカウント値から所定の値だけ変化させたカウント値を意味する第１のシフトグレイコード信号１０２を生成する。第１のシフトグレイコード信号１０２は、フリップフロップ９２において、第２のクロック２００によって同期化され、第２のシフトグレイコード信号２０４となる。
【００４０】
信号逆シフト部１２２は、入力された第２のシフトグレイコード信号２０４のカウント値から所定の値に対応した値だけ変化させたカウント値に基づいて、当該第２のシフトグレイコード信号２０４を補完信号２０２に変換する。本実施の形態においても、補完信号２０２はグレイコードの信号である。なお、フリップフロップ９２における第２のクロック２００と同期化された第２のグレイコード信号２０１及び第２の制御信号２０３の生成については、実施の形態１と同様であるため説明を省略する。
【００４１】
続いて、本実施の形態にかかる同期化回路２の動作例について図３及び図４のタイミングチャートを用いて説明する。図３及び図４においては、入力カウンタ信号３００は１３進のカウンタであり、グレイコードは４ビットである。なお、括弧表記の値は１０進のカウント値を意味する。まず、図３を用いて第１のクロック１００側の動作について説明する。実施の形態１と同様に、入力カウンタ信号３００がフリップフロップ９１によって、第１のクロック１００と同期化される。これによって、第１のグレイコード信号１０１が生成される。
【００４２】
そして、第１のグレイコード信号１０１が入力された信号シフト部１２１は、第１のグレイコード信号１０１のカウント値から所定の値を減算したカウント値を意味する第１のシフトグレイコード信号１０２を生成する。図３においては、所定の値は１とする。そのため、第１のシフトグレイコード信号１０２のカウント値は、第１のグレイコード信号１０１のカウント値よりも１だけ遅延した値となる。
【００４３】
また、制御信号生成部１１は、第１のグレイコード信号１０１のカウント値が最大値である１２から最小値である０へ変化したことを検出し、第１の制御信号１０３をアクティブ状態にする。
【００４４】
次に、図４を用いて第２のクロック２００側の動作について説明する。第１のグレイコード信号１０１がフリップフロップ９２において第２のクロック２００と同期化され、第２のグレイコード信号２０１が生成される。同様に、第１のシフトグレイコード信号１０２及び第１の制御信号１０３が第２のクロック２００によって同期化され、第２のシフトグレイコード信号２０４及び第２の制御信号２０３が生成される。第２のグレイコード信号２０１及び第２の制御信号２０３は出力選択部１３に入力され、第２のシフトグレイコード信号２０４は、信号逆シフト部１２２に入力される。
【００４５】
ここで、図４において、第２のグレイコード信号２０１のうちの信号２０１１は、カウンタの最大値１２から変化したカウンタの最小値０を第２のクロック２００によって同期化した信号である。この場合、1010（12）から0000（0）への変化はハミング距離が２となるため、上述したように、当該信号２０１１はクロックの周波数や位相の違い等によって一意に定まらない。つまり、信号２０１１は、信頼できない不定状態となる。
【００４６】
信号逆シフト部１２２は、入力された第２のシフトグレイコード信号２０４が意味するカウント値に、第１のグレイコード信号１０１のカウント値から減算した所定の値よりも大きい値を加算したカウント値に基づいて、第２のシフトグレイコード信号２０４を補完信号２０２に変換する。図４においては、第２のシフトグレイコード信号２０４のカウント値に所定の値である１よりも大きい値の２を加えたカウント値を意味する補完信号２０２を生成する。補完信号２０２は、出力選択部１３に入力される。
【００４７】
例えば、図４において、第２のシフトグレイコード信号２０４のカウント値が９の場合、信号逆シフト部１２２は、当該カウント値に２を加算して、カウント値を１１まで進ませた補完信号２０２を生成する。
【００４８】
そして、出力選択部１３は、第２の制御信号２０３に基づいて、第２のグレイコード信号２０１と補完信号２０２とのいずれか一方の信号を選択し、出力カウンタ信号４００として出力する。図４においては、第２の制御信号２０３がアクティブ状態となった場合は、補完信号２０２を出力する。一方、第２の制御信号２０３がアクティブ状態でない場合には、第２のグレイコード信号２０１を出力する。なお、第１のクロック１００と第２のクロック２００とは、周波数、位相等が異なるクロックであってもよいし、同じ周波数及び位相であってもよい。また、説明のために、第１の制御信号１０３及び第２の制御信号２０３を１クロックに相当する長さとしているが、これに限られものではない。第１のクロック１００及び第２のクロック２００の周波数偏差、位相差等の条件によっては、第１の制御信号１０３及び第２の制御信号２０３を２クロック以上の幅としてもよい。
【００４９】
つまり、第２のグレイコード信号２０１が不定状態の場合に、第２の制御信号２０３がアクティブ状態となるため、次に出力する出力カウンタ信号４００には、補完信号２０２が選択され、カウンタ開始値である0000（0）が出力される。それ以外の第２の制御信号がアクティブ状態ではない場合には、第２のグレイコード信号２０１が出力される。
【００５０】
以上のように、本実施の形態にかかる同期化回路２の構成によれば、第１のグレイコード信号１０１と並行して、第１のグレイコード信号１０１とカウント値の異なる第１のシフトグレイコード信号１０２を生成し、第２のクロック２００側に伝搬する。そのため、第２のグレイコード信号２０１と第２のシフトグレイコード信号２０４では、グレイコード信号が不定状態となる時刻が異なる。
【００５１】
したがって、遅延した第２のシフトグレイコード信号２０４のカウント値を調整してカウント開始値を意味する補完信号２０２生成することによって、第２のグレイコード信号２０１が不定状態となる時刻に出力される出力カウンタ信号４００を補うことができる。その結果、正しいカウント値の伝搬が可能となる。さらに、本実施の形態によれば、カウント開始値を予め知っておく必要もない。
【００５２】
なお、上記の説明では、入力カウンタ信号３００がインクリメントの場合について説明したが、デクリメントであっても適用可能である。入力カウンタ信号３００がデクリメントの場合は、信号シフト部１２１は、第１のグレイコード信号１０１のカウント値から所定の値を加算したカウント値を意味する第１のシフトグレイコード信号１０２を生成する。そして、信号逆シフト部１２２は、第２のシフトグレイコード信号２０４のカウント値に所定の値よりも大きい値を減算したカウント値に基づいて、当該第２のシフトグレイコード信号２０４を補完信号２０２に変換する。これによって、第２のグレイコード信号２０１のカウント値が最小値から最大値に変化する場合に、不定状態の第２のグレイコード信号２０１は、信号逆シフト部１２２が生成した最大値を意味する補完信号２０２によって補われる。
【００５３】
実施の形態３
本発明にかかる実施の形態３について説明する。本実施の形態にかかる同期化回路３の構成例を図５に示す。図５に示した同期化回路３は図３に示した同期化回路２の構成に加えて、第１のグレイコードエンコーダ１４、第１のグレイコードデコーダ１５をさらに備える。また、信号シフト部１２１は、カウンタ正シフト部１２１１及び第２のグレイコードエンコーダ１２１２を有し、信号逆シフト部１２２は、第２のグレイコードデコーダ１２２１及びカウンタ逆シフト部１２２２を有する。なお、本実施の形態においては、入力カウンタ信号３０１、出力カウンタ信号４０１、補完信号２０２はバイナリデータである。その他の構成については実施の形態２と同様であるので、説明を省略する。
【００５４】
第１のグレイコードエンコーダ１４は、入力カウンタ信号３０１が第１のクロックによって同期化された第１のバイナリカウンタ信号１０４を、第１のグレイコード信号１０１に変換する。また、第１のグレイコードデコーダ１５は、第２のグレイコード信号２０１を第２のバイナリカウンタ信号２０５に変換する。
【００５５】
カウンタ正シフト部１２１１には、第１のバイナリカウンタ信号１０４が入力される。カウンタ正シフト部１２１１は、第１のバイナリカウンタ信号１０４を、第１のバイナリカウンタ信号１０４のカウンタ値から所定の値だけ変化させたカウンタ値を意味する第１のシフトバイナリカウンタ信号１０５に変換する。本実施の形態においては、第１のバイナリカウンタ信号１０４のカウント値を所定の値だけ遅延させる。このとき、カウンタ正シフト部１２１１における変換は、シフトレジスタによってカウンタ値を所定の値遅らせたり、数値演算によって所定の値だけ遅れたカウント値を意味するバイナリカウンタ信号を算出したりすることによって行う。
【００５６】
第２のグレイコードエンコーダ１２１２は、第１のシフトバイナリカウンタ信号１０５を第１のシフトグレイコード信号１０２に変換する。また、第２のグレイコードデコーダ１２２１は、第２のシフトグレイコード信号２０４を第２のシフトバイナリカウンタ信号２０６に変換する。
【００５７】
カウンタ逆シフト部１２２２は、第２のシフトバイナリカウンタ信号２０６を、第２のシフトバイナリカウンタ信号２０６のカウンタ値を所定の値に対応した値だけ進めたカウント値を意味する補完信号２０２に変換する。ここで、カウンタ逆シフト部１２２２における変換動作について説明する。第２のシフトバイナリカウンタ信号２０６のカウンタ値をＢｓ、補完信号２０２のカウンタ値をＢｃと表した場合に、以下の式を用いて変換動作を行う。なお、Ｍは所定の値を意味する。
Ｂｃ＝Ｂｓ＋Ｍ＋１      （１）
【００５８】
また、入力カウンタ信号３０１がＮ進バイナリカウンタであるとすると、式（１）の計算結果において補完信号２０２のカウント値ＢｃがＮよりも大きい場合は、さらに以下の式によって計算されたカウント値Ｂｃを用いる。
Ｂｃ＝Ｂｃ−Ｎ      （２）
【００５９】
式（１）及び（２）を用いた変換動作によって、カウンタ逆シフト部１２２２は、第２のシフトバイナリカウンタ信号２０６のカウンタ値を所定の値Ｍよりも１だけ加算したカウント値を意味する補完信号２０２を生成する。
【００６０】
続いて、Ｎを１３、バイナリカウンタ信号のビット数を４、Ｍを１として、図５に示した同期化回路３の動作例について説明する。また、図６及び図７には、同期化回路３の動作例を示すタイミングチャートを示す。まず、図６を用いて第１のクロック１００側の動作について説明する。はじめに、入力カウンタ信号３０１は、フリップフロップ９１において第１のクロック１００で同期化される。図６においては、入力カウンタ信号３０１は、１０進で示すカウント値（括弧内の値）が１０、１１、１２、０、１、２、３、４とカウントアップしている。
【００６１】
第１のバイナリカウンタ信号１０４は、第１のグレイコードエンコーダ１４によって、第１のグレイコード信号１０１に変換される。図６では、１クロック遅延した変化であり、例えば、第１のバイナリカウンタ信号１０４において１０進の１２である'1100'は第１のグレイコード信号１０１として'1010'に変換される。
【００６２】
また、カウンタ正シフト部１２１１によって、第１のバイナリカウンタ信号１０４は、１クロック遅延して第１のシフトバイナリカウンタ信号１０５に変換される。そして、第１のシフトバイナリカウンタ信号１０５は、第２のグレイコードエンコーダ１２１２によって、第１のシフトグレイコード信号１０２に変換される。図６においては、例えば、第１のシフトバイナリカウンタ信号１０５において１０進の１０である'1010'は、第１のシフトグレイコード信号１０２として'1111'に変換される。
【００６３】
制御信号生成部１１は、第１のバイナリカウンタ信号１０４を監視し、第１のグレイコード信号１０１のハミング距離が２以上となる部分、つまりカウンタリセットポイントを検出し、第１の制御信号１０３をアクティブ状態とする。図６においては、第１のバイナリカウンタ信号１０４がカウンタの最大値である'1100（12）'からカウンタの最小値'0000（0）'へ変化した場合に、第１のグレイコード信号１０１のハミング距離が２となるので、第１の制御信号１０３をアクティブ状態としている。
【００６４】
上述した第１のグレイコード信号１０１、第１のシフトグレイコード信号１０２、第１の制御信号１０３は、実施の形態２と同様に、フリップフロップ９２によって、第２のクロック２００に同期化され、それぞれ第２のグレイコード信号２０１、第２のシフトグレイコード信号２０４、第２の制御信号２０３となる。
【００６５】
次に、図７を用いて第２のクロック２００側の動作について説明する。第２のグレイコード信号２０１は、第１のグレイコードデコーダ１５によって第２のバイナリカウンタ信号２０５に変換される。図７においては、例えば、第２のグレイコード信号２０１の'1111'は、第２のバイナリカウンタ信号２０５として、１０進で１０を意味する'1010'に変換される。
【００６６】
また、第２のシフトグレイコード信号２０４は、第２のグレイコードデコーダ１２２１によって、第２のシフトバイナリカウンタ信号２０６に変換される。さらに、第２のシフトバイナリカウンタ信号２０６は、カウンタ逆シフト部１２２２によって、補完信号２０２に変換される。図７においては、例えば、第２のシフトグレイコード信号２０４の'1101'は、第２のシフトバイナリカウンタとして１０進で９を意味する'1001'に変換される。そして、カウンタ逆シフト部１２２２において、式（１）により１０進で１１を意味する補完信号２０２としてバイナリデータの'1011'に変換される。
【００６７】
第２のバイナリカウンタ信号２０５と補完信号２０２は、出力選択部１３に入力される。出力選択部１３は、第２の制御信号２０３に基づいて、いずれか一方の信号を選択し、出力カウンタ信号４０１として出力する。図７において、出力選択部１３は、第２の制御信号２０３がアクティブ状態でない区間は、第２のバイナリカウンタ信号２０５が選択し、第２の制御信号２０３がアクティブ状態の区間では、補完信号２０２を選択する動作を行う。
【００６８】
実施の形態２において説明したように、第２のグレイコード信号２０１は、カウンタ値が１２を意味する信号から０を意味する信号への変化に相当する部分において、ハミング距離が２以上となる。したがって、図７に示すように、第２のグレイコード信号２０１の信号２０１２の部分は不定状態となる。その結果、第２のグレイコード信号から変換される第２のバイナリカウンタ信号２０５も同様に、信号２０５１の部分は不定状態となる。
【００６９】
しかし、本発明においては、カウンタ逆シフト部１２２２は、第２のバイナリカウンタ信号２０５が不定状態となる場合において、カウント開始値を意味する補完信号２０２を生成する。また、第１のグレイコード信号１０１のハミング距離が２以上となる時刻を、第１の制御信号１０３によって、第２のクロック２００側の第２の制御信号２０３へ伝搬することができる。したがって、当該第２の制御信号２０３に基づいて、第２のバイナリカウンタ信号２０５が不定状態となる時刻において、出力選択部１３が出力を切り替えることにより、出力カウンタ信号４０１を不定状態の含まれない信号とすることができる。その結果、グレイコードにおいてカウンタのリセットポイントのハミング距離が２以上となる場合であっても、同期化回路にグレイコードを適用することができる。
【００７０】
実施の形態４
本発明にかかる実施の形態４について説明する。本実施の形態においては、実施の形態３にかかる同期化回路３を備えた非同期乗り換えバッファ４について説明する。図８に非同期乗り換えバッファの構成例を示す。非同期乗り換えバッファ４は、通信装置において、受信した受信データ５０１と、受信データ５０１から再生される再生クロック５００とを、装置内のクロックであるシステムクロック５１１に非同期乗り換えさせる。
【００７１】
書き込みアドレス５０２及び書き込み制御信号５０３は、再生クロック５００から生成され、２ポートＳＲＡＭ６０２に受信データ５０１の書き込みを行う。書き込みアドレス５０２はバイナリインクリメントを行うＮ進のカウント値であり、書き込み制御信号５０３は、２ポートＳＲＡＭ６０２へのライトイネーブル信号である。２ポートＳＲＡＭ６０２は、ワード数がＮの２ポートＳＲＡＭである。
【００７２】
本発明にかかる同期化回路はデータ量監視回路６０３に用いられる。書き込み制御回路６０１から出力される書き込みアドレス５０２は、データ量監視回路６０３によって再生クロック５００からシステムクロック５１１に非同期受け渡しを行い、同期化書き込みアドレス５０７となる。つまり、データ量監視回路６０３には、第１のクロック１００に相当する再生クロック５００と、入力カウンタ信号３０１に相当する書き込みアドレス５０２が入力される。そして、書き込みアドレス５０２に基づいて、第２のクロック２００に相当するシステムクロック５１１によって同期化された同期化書き込みアドレス５０７を出力カウンタ信号４０１として生成し、出力する。
【００７３】
減算器６０５は同期化書き込みアドレス５０７及び読み出しアドレス５０４の差分算出結果であるバッファ滞留量５０８を出力する。これは２ポートＳＲＡＭ６０２に蓄積されているデータ量を示している。読み出し制御回路６０４は、バッファ滞留量５０８を監視し、データの蓄積を確認後、読み出しアドレス５０４のバイナリインクリメントをＮ進にて行い、読み出し制御信号５０５の制御を行う。読み出し制御信号５０５は２ポートＳＲＡＭ６０２へのリードイネーブル信号である。２ポートＳＲＡＭ６０２は、読み出しアドレス５０４及び、読み出し制御信号５０５により読み出しを実行し、同期化データ５０６を出力する。
【００７４】
読み出し制御回路６０４は、バッファ滞留量５０８を常に監視し、インサートしきい値５１２より小さくなった場合、同期化データ５０６がＩＰＧ（Inter Packet Gap:パケットとパケットの間のアイドル区間)中に、読み出しアドレス５０４のインクリメントを一回もしくは数回停止しバッファに蓄積されたデータ量がエンプティになるのを防ぐ。また、バッファ滞留量５０８が、ドロップしきい値５１３より大きくなった場合、ＩＰＧ中に、読み出しアドレス５０４を余分にインクリメント(＋１ではなく、＋２もしくはそれ以上)を行う。これは、ＩＰＧの間隔を短くしたことに相当し、バッファに蓄積されたデータ量が少なくなる。これによりバッファのデータ量がフルになるのを防ぐ。つまり、意図的に読み出しアドレス５０４を制御する事で、バッファのエンプティもしくはフルを発生させない。これらの動作によって、有意なデータを読み出し中に、バッファがエンプティもしくはフルになることに起因するデータの損失を防止することができる。
【００７５】
一方、フル判定回路６０６は、バッファ滞留量５０８がフル状態になった場合に、バッファフル信号５０９を出力、エンプティ判定回路６０７は、バッファ滞留量５０８がエンプティ状態になった場合に、バッファエンプティ信号５１０を出力する。これは、受信データの異常を示しており、バッファ滞留量監視回路、書き込み制御回路６０１及び、読み出し制御回路６０４の初期化動作を開始するトリガーとなる。
【００７６】
以上のように、本発明にかかる同期化回路を用いることにより、書き込みアドレスをバイナリカウントのまま正しく受け渡しを行うことができる。そのため、２ポートＳＲＡＭ６０２のワード数が２のべき乗でない場合においても非同期乗り換えバッファの制御が行うことが可能となる。
【００７７】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、信号シフト部１２１が変化させる所定の値は１に限られたものではなく任意の値でよい。また、データのビット数やカウンタの最大値も上記実施の形態に限られるものではない。さらに、実施の形態２〜４においては、入力カウンタ信号がカウントアップする、つまりインクリメントの場合について説明したが、入力カウンタ信号がデクリメントであっても適用可能である。
【符号の説明】
【００７８】
１〜３  同期化回路
４  非同期乗り換えバッファ
１１  制御信号生成部
１２  補完信号生成部
１３  出力選択部
１４  第１のグレイコードエンコーダ
１５  第１のグレイコードデコーダ
９１、９２  フリップフロップ
１００  第１のクロック
１０１  第１のグレイコード信号
１０２  第１のシフトグレイコード信号
１０３  第１の制御信号
１０４  第１のバイナリカウンタ信号
１０５  第１のシフトバイナリカウンタ信号
１２１  信号シフト部
１２２  信号逆シフト部
２００  第２のクロック
２０１  第２のグレイコード信号
２０２  補完信号
２０３  第２の制御信号
２０４  第２のシフトグレイコード信号
２０５  第２のバイナリカウンタ信号
２０６  第２のシフトバイナリカウンタ信号
３００、３０１  入力カウンタ信号
４００、４０１  出力カウンタ信号
５００  再生クロック
５０１  受信データ
５０２  書き込みアドレス
５０３  書き込み制御信号
５０４  読み出しアドレス
５０５  読み出し制御信号
５０６  同期化データ
５０７  同期化書き込みアドレス
５０８  バッファ滞留量
５０９  バッファフル信号
５１０  バッファエンプティ信号
５１１  システムクロック
５１２  インサートしきい値
５１３  ドロップしきい値
６０１  書き込み制御回路
６０２  ２ポートＳＲＡＭ
６０３  データ量監視回路
６０４  読み出し制御回路
６０５  減算器
６０６  フル判定回路
６０７  エンプティ判定回路
１２１１  カウンタ正シフト部
１２１２  第２のグレイコードエンコーダ
１２２１  第２のグレイコードデコーダ
１２２２  カウンタ逆シフト部
【図１】
2011151476.tif 000003
【図２】
2011151476.tif 000004
【図３】
2011151476.tif 000005
【図４】
2011151476.tif 000006
【図５】
2011151476.tif 000007
【図６】
2011151476.tif 000008
【図７】
2011151476.tif 000009
【図８】
2011151476.tif 000010
【図９】
2011151476.tif 000011
【図１０】
2011151476.tif 000012
【図１１】
2011151476.tif 000013
【図１２】
2011151476.tif 000014
【図１３】
2011151476.tif 000015
【図１４】
2011151476.tif 000016
【図１５】
2011151476.tif 000017