(57)【要約】【課題】  受け渡しするデータの取りうる値が２のべき乗でないときもレーシングの影響を排除する。【解決手段】  Ｍ分周カウンタ１はクロックfnxにより駆動されＭ個の数値を出力する。エンコーダ２はＭ分周カウンタの出力値を“１”の位置によって表現するＭビットの値に変換する。演算回路３はエンコーダの出力にモジュロ２の演算を行う。Ｄ型ＦＦ４は演算回路の出力をクロックfsでラッチする。Ｄ型ＦＦ５はＤ型ＦＦ４の出力をユーザクロックでラッチする。デコーダ６はユーザクロックに同期してＤ型ＦＦ５の出力をエンコーダの出力値に戻す。Ｎ分周カウンタ７はfsで駆動されＮカウントするとラッチ信号を出力する。Ｄ型ＦＦ８はこのラッチ信号でデコーダ６の出力をラッチする。【選択図】        図１
2006191479.tif 000002
【特許請求の範囲】
【請求項１】
網のクロックに同期したクロックにより駆動されこのクロックの周期毎にＭ個の数値を出力するＭ分周カウンタと、
前記Ｍ分周カウンタの出力値を“１”の位置によって表現するＭビットの値に変換するエンコーダと、
前記エンコーダの出力についてモジュロ２の演算を行う演算回路と、
前記演算回路の出力をユーザクロックでラッチする第１のＤ型フィリップフロップと、
前記第１のＤ型フリップフロップの出力を前記ユーザクロックでラッチする第２のＤ型フリップフロップとを設けたことを特徴とするＲＴＳ生成回路。
【請求項２】
網のクロックに同期したクロックにより駆動されこのクロックの周期毎にＭ個の数値を出力するＭ分周カウンタと、
前記Ｍ分周カウンタの出力値を“１”の位置によって表現するＭビットの値に変換するエンコーダと、
前記エンコーダの出力についてモジュロ２の演算を行う演算回路と、
前記演算回路の出力をユーザクロックでラッチする第１のＤ型フィリップフロップと、
前記第１のＤ型フリップフロップの出力を前記ユーザクロックでラッチする第２のＤ型フリップフロップと、
前記ユーザクロックに同期して前記第２のＤ型フリップフロップの出力を前記エンコーダの出力値に戻す第１のデコーダと、
前記ユーザクロックで駆動されＮカウントするとラッチ信号を出力するＮ分周カウンタと、
前記Ｎ分周カウンタのラッチ信号で前記第１のデコーダ回路の出力をラッチする第３のＤ型フリップフロップと、
前記第３のＤ型フリップフロップの出力を前記Ｍ分周カウンタが出力する数値と同形式の数値に変換しＲＴＳとして出力する第２のデコーダとで構成されることを特徴とするＲＴＳ生成回路。
【請求項３】
前記Ｍ分周カウンタおよび前記エンコーダに代ってリングカウンタを使用することを特徴とする請求項１または請求項２に記載のＲＴＳ生成回路。
【請求項４】
前記Ｍ分周カウンタが出力する数値はバイナリ値であることを特徴とする請求項１ないし請求項３のいずれかに記載のＲＴＳ生成回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＴＳ（Residual Time Stamp）生成回路、特に、非同期でディジタル信号を受け渡す場合に発生することがあるレーシングの対策を施したＲＴＳ生成回路に関する。
【背景技術】
【０００２】
ＡＴＭ網でＣＢＲ（Continuous Bit Rate）信号を転送するためのＡＡＬ（ATM Adaptation Layer ）Type1の機能の一つに、ユーザ信号のクロック情報を受信側に転送する機能がある。ITU-T勧告I.363では、このための手段としてＳＲＴＳ法と呼ばれるものが定義されており、ＳＲＴＳ法では送信側でＲＴＳという情報を生成して、ＡＴＭセルに埋め込んで受信側に転送し、受信側ではＲＴＳをもとにしてユーザ信号のクロックを再生している。
【０００３】
従来、この種のＲＴＳ生成回路は、図５に示すように、１６分周カウンタ１１が出力するグレイコードの数値をＤ型フィリップフロップ回路１３においてＮ分周カウンタ１２からのラッチ信号でラッチし、ラッチした結果はグレイコード／バイナリコード変換回路１４によってバイナリコードに変換することによりＲＴＳを生成している（例えば、特許文献１参照）。
【０００４】
ところで、ディジタル信号をこれとは非同期の他のディジタル信号でラッチする場合、いわゆるレーシングが発生することがある。レーシングとは、２つのディジタル信号の変化点が重なることによって、ラッチした結果が不定になることをいう。このＲＴＳ生成回路は、グレイコードの採用により下記のようにしてレーシングの影響を排除している。
【０００５】
１６分周カウンタ１１は、ＡＴＳ網の網クロックｆｎのｘ分周クロックであるクロックｆｎｘで駆動され、フリーランしている。Ｎ分周カウンタ１２はユーザ信号のクロックｆｓをカウントし、Ｎクロックをカウントするとラッチ信号を出力する。クロックｆｎｘとクロックｆｓは非同期である。１６分周カウンタ１１が出力するデータはグレイコード、すなわち隣合った符号の間では“１”から“０”への遷移、または“０”から“１”への遷移が１ビットだけになっているため、レーシングが発生するのは１ビットだけとなるので、Ｄ型フィリップフロップ回路１３がラッチした結果は、ぎりぎりレーシングが発生しなかった結果に等しく、したがってレーシングによる影響を排除できる。
【０００６】
【特許文献１】特開平８−３３０９７０（第２頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来のＲＴＳ生成回路では、１６分周カウンタ１１が出力するデータの値は２のべき乗であることが前提になっているため、例えば、受け渡しをするデータの取りうる値が０から６の７値である場合のように、２のべき乗でない場合には対応できないという問題がある。この問題を図６により具体的に説明する。なお、受け渡しをするデータの取りうる値を２のべき乗でないとするのは、この値を２のべき乗に丸めることなく、精度を追求するような用途の場合に意義がある。
【０００８】
図６において、１６分周カウンタ１１の出力であるバイナリコードが１１０から０００に変わるとき、Ｎ分周カウンタ１２の出力が立ち上がると、レーシングが２ビット発生する。したがって、ラッチされるデータは、レーシングがなかった場合の１０１と０００の他、００１と１００となる場合がある。００１と１００という値は異常なＲＴＳであり、受信側で異常なＲＴＳを元にしてユーザ信号のクロックを再生するので、再生クロックｆｓとは異なるものになってしまう。
【０００９】
本発明は、このような事情に鑑みて行われたものであって、その目的は、受け渡しをするデータの取りうる値が２のべき乗だけではなく、例えば５や７であっても、レーシングの発生を１ビットに留め、異常な値とせず確実にレーシングの影響を排除できるＲＴＳ生成回路を提供することにある。
【課題を解決するための手段】
【００１０】
本発明のＲＴＳ生成回路は、網のクロックに同期したクロックにより駆動されこのクロックの周期毎にＭ個の数値を出力するＭ分周カウンタ（図１の１）と、Ｍ分周カウンタの出力値を“１”の位置によって表現するＭビットの値に変換するエンコーダ（図１の２）と、エンコーダの出力についてモジュロ２の演算を行う演算回路（図１の３）と、演算回路の出力をユーザクロックでラッチする第１のＤ型フィリップフロップ（図１の４）と、第１のＤ型フリップフロップの出力をユーザクロックでラッチする第２のＤ型フリップフロップ（図１の５）と、ユーザクロックに同期して第２のＤ型フリップフロップの出力をエンコーダの出力値に戻す第１のデコーダ（図１の６）と、ユーザクロックで駆動されＮカウントするとラッチ信号を出力するＮ分周カウンタ（図１の７）と、Ｎ分周カウンタのラッチ信号で第１のデコーダ回路の出力をラッチする第３のＤ型フリップフロップ（図１の８）と、第３のＤ型フリップフロップの出力をＭ分周カウンタが出力する数値と同形式の数値に変換しＲＴＳとして出力する第２のデコーダ（図１の９）とで構成される。
【発明の効果】
【００１１】
本発明は、エンコーダの出力についてモジュロ２の演算を行うこととしたため、Ｍ分周カウンタのとりうる数値が２のべき乗でなくとも、隣り合ったデータ間が遷移するビットを常に１つにすることができ、レーシングが発生しても異常なデータにならないという効果を得ることができる。
【発明を実施するための最良の形態】
【００１２】
本発明のＲＴＳ生成回路は、基本的には、ＡＴＳ網の網クロックｆｎのｘ分周クロックであるクロックｆｎｘで駆動されるＭ分周カウンタの出力を、クロックｆｎｘとは非同期のユーザクロックｆｓで駆動されるＮ分周カウンタ７の出力でラッチすることにより、ラッチの結果であるＲＴＳを出力する。そして、この動作の中で、Ｍ分周カウンタの出力がとりうる数値が２のべき乗でなくとレーシングの影響を排除する。
【００１３】
このために、本発明のＲＴＳ生成回路は、網のクロックに同期したクロックにより駆動されこのクロックの周期毎にＭ個の数値を出力するＭ分周カウンタと、Ｍ分周カウンタの出力値を“１”の位置によって表現するＭビットの値に変換するエンコーダと、エンコーダの出力についてモジュロ２の演算を行う演算回路と、演算回路の出力をユーザクロックでラッチする第１のＤ型フィリップフロップと、第１のＤ型フリップフロップの出力をユーザクロックでラッチする第２のＤ型フリップフロップとを設けている。
【実施例１】
【００１４】
図１は、本発明のＲＴＳ生成回路の一実施例を示す回路図である。このＲＴＳ生成回路は、Ｍ分周カウンタ１、エンコーダ２、演算回路３、２つのＤ型フリップフロップ４，５，８、２つのデコーダ６，９およびＮ分周カウンタ７で構成されている。
【００１５】
Ｍ分周カウンタ１は、クロックｆｎｘで駆動されてカウントし、クロックｆｎｘの周期毎に、０から（Ｍ−１）の数値を出力するバイナリカウンタである。（Ｍ−１）は２のべき乗でなくともよい。ここでは、０〜６を出力する７分周カウンタとする。エンコーダ２は、Ｍ分周カウンタ１が出力する値を“１”の位置によって表現する７ビットの値に符号化する。
【００１６】
演算回路３は、エンコーダ２の出力についてモジュロ２の演算をする。図１を参照すると、演算回路３は、エンコーダ２の出力と演算回路３の出力とを入力とする排他論理和回路と、この排他論理和回路の出力をクロックｆｎｘでラッチするＤ型フリップフロップとで構成されている。演算回路３の出力は、“１”から“０”への遷移、または“０”から“１”への遷移が１ビットだけになる。
【００１７】
Ｄ型フリップフロップ４は、演算回路３の出力をクロックｆｓでラッチする。前述のように、クロックｆｎｘとクロックｆｓとは非同期であるため、ここでレーシングが発生し得る。しかし、上述のように、演算回路３の出力は、“１”から“０”への遷移、または“０”から“１”への遷移が１ビットだけになっているので、レーシングが発生するのは１ビットだけとなる。
【００１８】
Ｄ型フリップフロップ５は、Ｄ型フリップフロップ４の出力をクロックｆｓでラッチすることにより、Ｄ型フリップフロップ４で発生するレーシングによる１ビットのメタステーブル、すなわち中間レベルによる誤動作を防止する。このように、エンコーダ２，演算回路３および２つのＤ型フリップフロップ４，５により、レーシングによる影響を排除する。
【００１９】
デコーダ６は、Ｄ型フリップフロップ５の出力をエンコーダ２の値に戻す。図１を参照すると、デコーダ６は、Ｄ型フリップフロップ５の出力をクロックｆｓでラッチするＤ型フリップフロップと、このＤ型フリップフロップの出力とＤ型フリップフロップ５の出力とを入力とする排他的論理回路とで構成されている。
【００２０】
Ｎ分周カウンタ７はクロックｆｓをカウントし、クロックｆｓをＮカウントするとラッチ信号を出力する。Ｄ型フリップフロップ８は、このラッチ信号で、デコーダ６の出力をラッチする。デコーダ６の出力は既にクロックｆｓと同期しているので、Ｄ型フリップフロップ８におけるラッチ時にレーシングが発生することはない。デコーダ９は、Ｄ型フリップフロップ回路８の出力をバイナリの値に変換してＲＴＳとして出力する。
【００２１】
図３は、Ｍ分周カウンタ１の出力が000，001，010，011，100，101，110，000〜と遷移していくとき、エンコーダ２，演算回路３，デコーダ６およびデコーダ９の各出力のとり得る値を表示したものである。但し、実際には、表示された値の内の１つだけがＮ分周カウンタ７からのラッチ信号により選択・出力されることになる。
【００２２】
当初、Ｍ分周カウンタ１の出力がバイナリ３ビットの000であり、エンコーダ２の出力は７ビットの0000001となる。Ｍ分周カウンタ１の出力が000から001，010，011，100，101，110と遷移していくと、エンコーダ２の出力は0000010，0000100，0001000，0010000，0100000，1000000となり、Ｍ分周カウンタ１の出力が110から000になるとエンコーダ２の出力は1000000から0000001となる。
【００２３】
演算回路３は、エンコーダ２の出力をモジュロ２の演算をする。演算回路は、隣り合った演算結果データの間で変化するビットを１つにしている。例えば、前回の演算結果が0000001で、エンコーダ２の出力が0000010のとき、演算結果は0000011となり、前回の演算結果である0000001とは１ビットだけが異なっている。
【００２４】
Ｄ型フリップフロップ４がこの演算結果をラッチするとき、レーシングが発生することがある。レーシングが発生すると、0000001または0000011が出力され不定となる。Ｄ型フリップフロップ５は、この出力を再ラッチして0000001か0000011のいずれかに確定する。これにより、レーシングの影響を排除している。
【００２５】
また、Ｍ分周カウンタ１の出力が110から000になるときにも、演算結果は1111111から1111110となって、変化するビットは１つだけである。Ｄ型フリップフロップ４がこの演算結果をラッチするとき、レーシングが発生することがある。レーシングが発生すると、1111111または1111110が出力され不定となる。Ｄ型フリップフロップ５は、この出力を再ラッチして1111111か1111110のいずれかに確定する。これにより、レーシングの影響を排除している。
【００２６】
デコーダ６の出力はエンコーダ２の出力と同じであり、デコーダ９の出力はＭ分周カウンタ１の出力と同じである。
【実施例２】
【００２７】
図２は、本発明のＲＴＳ生成回路の実施例２を示す回路図である。このＲＴＳ生成回路は、図１に示した実施例１におけるＭ分周カウンタ１およびエンコーダ２の代りにリングカウンタ１０を採用したものであって、この他の演算回路３、２つのＤ型フリップフロップ４，５，８、２つのデコーダ６，９およびＮ分周カウンタ７は実施例１におけるものと異なることはない。
【００２８】
リングカウンタ１０は、クロックｆｎｘで駆動されてカウントし、クロックｆｎｘの周期毎に、“１”の位置によって値を表現するように符号化されたＭビットの値を出力するする。これは、とりもなおさず図１におけるエンコーダ２の出力と同一である。
【００２９】
図４は、リングカウンタ１０の出力が0000001，0000010，0000100，0001000，0010000，0100000，1000000〜と遷移していくとき、演算回路３，デコーダ６およびデコーダ９の各出力のとり得る値を表示したものである。
【００３０】
図４は図３におけるＭ分周カウンタ１出力の欄を削除し、エンコーダ２出力をリングカウンタ１０出力と読み替えたものとなっている。従って、重複を回避するため、これ以上の説明は割愛する。
【図面の簡単な説明】
【００３１】
【図１】本発明のＲＴＳ生成回路の実施例１を示す回路図
【図２】本発明のＲＴＳ生成回路の実施例２を示す回路図
【図３】実施例１の動作を説明するために回路の要所の出力を表示した図
【図４】実施例２の動作を説明するために回路の要所の出力を表示した図
【図５】従来のＲＴＳ生成回路を例示する回路図
【図６】従来回路の問題点を説明するための図
【符号の説明】
【００３２】
１      Ｍ分周カウンタ
２      エンコーダ
３      演算回路
４      Ｄ型フリップフロップ
５      Ｄ型フリップフロップ
６      デコーダ
７      Ｎ分周カウンタ
８      Ｄ型フリップフロップ
９      デコーダ
１０    リングカウンタ
【図１】
2006191479.tif 000003
【図２】
2006191479.tif 000004
【図３】
2006191479.tif 000005
【図４】
2006191479.tif 000006
【図５】
2006191479.tif 000007
【図６】
2006191479.tif 000008