(57)【要約】【課題】簡単な回路で高速データ送信器のスキュー故障の検出を行うことのできるスキュー故障検出回路およびスキュー故障検出方法を提供する。【解決手段】入力ＴＩＮ１と出力ＴＯＵＴ１との間に直列に接続されたフリップフロップ１１、１２、１３のクロックとして、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３をそれぞれ入力し、入力ＴＩＮ２と出力ＴＯＵＴ２との間に直列に接続されたフリップフロップ２１、２２、２３のクロックとして、シリアライザ１０３、１０２、１０１の出力Ｓ０３、Ｓ０２、Ｓ０１をそれぞれ入力する。テストデータ生成部３は、フリップフロップ１１〜１３およびフリップフロップ２１〜２３をシフトレジスタとして動作させるためのパラレルデータＴＰ１、ＴＰ２、ＴＰ３を生成してシリアライザ１０１、１０２、１０３へ出力する。【選択図】図１
2010021789.tif 000002
【特許請求の範囲】
【請求項１】
入力されたパラレルデータをシリアルデータに変換して出力するシリアライザをｎ個備える送信器の前記ｎ個のシリアライザの出力間のスキュー故障を検出するスキュー故障検出回路であって、
前記ｎ個のシリアライザのそれぞれの出力がそれぞれのクロックとして入力され、直列に接続された第１のｎ個のフリップフロップと、
前記ｎ個のシリアライザのそれぞれの出力が、前記第１のｎ個のフリップフロップとは逆の順序でそれぞれのクロックとして入力され、直列に接続された第２のｎ個のフリップフロップと、
前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップをシフトレジスタとして動作させるためのパラレルデータを生成して前記ｎ個のシリアライザへ出力するテストデータ生成手段と
を備えることを特徴とするスキュー故障検出回路。
【請求項２】
前記第１のｎ個のフリップフロップと前記第２のｎ個のフリップフロップが直列に接続されている
ことを特徴とする請求項１に記載のスキュー故障検出回路。
【請求項３】
前記テストデータ生成手段は、
故障検出を要求されるスキューの幅に応じて、前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップに与えるクロックの間隔を変化させる、ｎ個のパラレルデータを生成し、前記ｎ個のシリアライザへ１個ずつ同時に入力する
ことを特徴とする請求項１または２に記載のスキュー故障検出回路。
【請求項４】
入力されたパラレルデータをシリアルデータに変換して出力するシリアライザをｎ個備える送信器の前記ｎ個のシリアライザの出力間のスキュー故障を検出するスキュー故障検出方法であって、
前記ｎ個のシリアライザのそれぞれの出力がそれぞれのクロックとして入力され、直列に接続された第１のｎ個のフリップフロップ、および前記ｎ個のシリアライザのそれぞれの出力が、前記第１のｎ個のフリップフロップとは逆の順序でそれぞれのクロックとして入力され、直列に接続された第２のｎ個のフリップフロップを用意して、
前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップをシフトレジスタとして動作させるためのパラレルデータを前記ｎ個のシリアライザへ供給し、
前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップのシフト動作を観測する
ことを特徴とするスキュー故障検出方法。
【請求項５】
前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップのいずれかでシフト動作不良が発生したときに、前記スキュー故障を検出したと判定する
ことを特徴とする請求項４に記載のスキュー故障検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキュー故障検出回路およびスキュー故障検出方法に関し、特に高速データ送信器のスキュー故障検出回路およびスキュー故障検出方法に関する。
【背景技術】
【０００２】
近年、コンピュータ機器間で大量のデータを転送する場合、高速のシリアルデータ送信器を複数並べてパラレルにデータ伝送することが行われる。このとき、シリアルデータ送信器相互間に遅延時間の差異があると、同時に送信されるパラレルデータ間にスキューが発生し、誤ったデータが伝送されることになる。
【０００３】
このスキューによるデータ伝送誤りを防止するため、従来、パラレル転送データ間のスキューを検出するパラレルデータスキュー検出回路が提案されている（例えば、特許文献１参照。）。
【０００４】
この提案されたパラレルデータスキュー検出回路では、シリアルデータを出力する各信号線にそれぞれシフトレジスタを設け、各データにスキューがあった場合、一定時間内にデータが到達するシフトレジスタの段数に差が生じることを利用してスキューを検出する。そのため、シフトレジスタの到達段数を検出するための検出信号を出力している。
【０００５】
しかし、この提案の回路では、各信号線に相当段数のシフトレジスタおよび到達段数検出回路を設けなくてはならないため、回路が複雑になるという問題がある。
【０００６】
また、例えばＨＤＭＩ規格などデータ伝送速度が数ギガビットとなる高速のデータ伝送の場合、上述の検出信号を各シフトレジスタ回路に正確なタイミングで送り込むのが困難となり、スキューの検出を正確に行うことが難しい、という問題があった。
【特許文献１】特開平１１−７４９４５号公報  （第３−５ページ、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
そこで、本発明の目的は、簡単な回路で高速データ送信器のスキュー故障の検出を行うことのできるスキュー故障検出回路およびスキュー故障検出方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一態様によれば、入力されたパラレルデータをシリアルデータに変換して出力するシリアライザをｎ個備える送信器の前記ｎ個のシリアライザの出力間のスキュー故障を検出するスキュー故障検出回路であって、前記ｎ個のシリアライザのそれぞれの出力がそれぞれのクロックとして入力され、直列に接続された第１のｎ個のフリップフロップと、前記ｎ個のシリアライザのそれぞれの出力が、前記第１のｎ個のフリップフロップとは逆の順序でそれぞれのクロックとして入力され、直列に接続された第２のｎ個のフリップフロップと、第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップをシフトレジスタとして動作させるためのパラレルデータを生成して前記ｎ個のシリアライザへ出力するテストデータ生成手段とを備えることを特徴とするスキュー故障検出回路が提供される。
【０００９】
また本発明の別の一態様によれば、入力されたパラレルデータをシリアルデータに変換して出力するシリアライザをｎ個備える送信器の前記ｎ個のシリアライザの出力間のスキュー故障を検出するスキュー故障検出方法であって、前記ｎ個のシリアライザのそれぞれの出力がそれぞれのクロックとして入力され、直列に接続された第１のｎ個のフリップフロップ、および前記ｎ個のシリアライザのそれぞれの出力が、前記第１のｎ個のフリップフロップとは逆の順序でそれぞれのクロックとして入力され、直列に接続された第２のｎ個のフリップフロップを用意して、前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップをシフトレジスタとして動作させるためのパラレルデータを前記ｎ個のシリアライザへ供給し、前記第１のｎ個のフリップフロップおよび前記第２のｎ個のフリップフロップのシフト動作を観測することを特徴とするスキュー故障検出方法が提供される。
【発明の効果】
【００１０】
本発明によれば、簡単な回路で高速データ送信器のスキュー故障の検出を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例を図面を参照して説明する。なお、以下の各実施例では、要求されるスキュー検出幅が1ビットである場合を例にとって示す。
【実施例１】
【００１２】
本実施例では、入力されたパラレルデータをシリアルデータに変換して出力するシリアライザを３個備える送信器１００を例にとり、その３個のシリアライザの出力間のスキュー故障を検出するスキュー故障検出回路の例を示す。
【００１３】
図１は、本発明の実施例１に係るスキュー故障検出回路の構成の例を示すブロック図である。
【００１４】
ここで、送信器１００は、シリアライザ１０１、１０２、１０３を備え、その出力Ｓ０１、Ｓ０２、Ｓ０３を、出力バッファ１１１、１１２、１１３を介してパラレルに出力する。
【００１５】
本実施例のスキュー故障検出回路は、入力ＴＩＮ１と出力ＴＯＵＴ１との間に直列に接続され、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３をそれぞれのクロックとするフリップフロップ１１、１２、１３と、入力ＴＩＮ２と出力ＴＯＵＴ２との間に直列に接続され、シリアライザ１０３、１０２、１０１の出力Ｓ０３、Ｓ０２、Ｓ０１をそれぞれのクロックとするフリップフロップ２１、２２、２３と、フリップフロップ１１〜１３およびフリップフロップ２１〜２３をシフトレジスタとして動作させるためのパラレルデータＴＰ１、ＴＰ２、ＴＰ３を生成してシリアライザ１０１、１０２、１０３へ出力するテストデータ生成部３と、を備える。
【００１６】
ここで、フリップフロップ１１の出力をＦ１１、フリップフロップ１２の出力をＦ１２、フリップフロップ２１の出力をＦ２１、フリップフロップ２２の出力をＦ２２とする。
【００１７】
また、シリアライザ１０１、１０２、１０３は、４ビットのパラレルデータを４ビットのシリアルデータに変換するものとする。
【００１８】
図２に、テストデータ生成部３で生成されるパラレルデータＴＰ１、ＴＰ２、ＴＰ３の例を示す。
【００１９】
図２（ａ）は、フリップフロップ１１、１２、１３をシフトレジスタとして動作させるためのパラレルデータＴＰ１、ＴＰ２、ＴＰ３の例である。
【００２０】
この場合、テストデータ生成部３により、ＴＰ１＝‘１０００’、ＴＰ２＝‘０１００’、ＴＰ３＝‘００１０’が生成され、シリアライザ１０１、１０２、１０３へ入力される。
【００２１】
この入力を受けて、シリアライザ１０１、１０２、１０３からは、出力Ｓ０１＝１，０，０，０、出力Ｓ０２＝０，１，０，０、出力Ｓ０３＝０，０，１，０が出力される。
【００２２】
すなわち、出力Ｓ０１、Ｓ０２、Ｓ０３では、‘１’の発生位置が１ビットずつ後へずれる。そのため、この出力Ｓ０１、Ｓ０２、Ｓ０３の相互間に1ビット幅以上のスキューがなければ、フリップフロップ１１、１２、１３はシフトレジスタとして動作する。
【００２３】
したがって、例えば、図２（ａ）に示すような０から１へ立ち上がる信号を入力ＴＩＮ１へ入力すると、これがフリップフロップ１１、１２、１３で順次伝達され、出力ＴＯＵＴ１へ出力される。
【００２４】
図２（ｂ）は、フリップフロップ２１、２２、２３をシフトレジスタとして動作させるためのパラレルデータＴＰ１、ＴＰ２、ＴＰ３の例である。
【００２５】
この場合、テストデータ生成部３により、ＴＰ１＝‘００１０’、ＴＰ２＝‘０１００’、ＴＰ３＝‘０１００’が生成され、シリアライザ１０１、１０２、１０３へ入力される。
【００２６】
この入力を受けて、シリアライザ１０３、１０２、１０１からは、出力Ｓ０３＝１，０，０，０、出力Ｓ０２＝０，１，０，０、出力Ｓ０１＝０，０，１，０が出力される。
【００２７】
すなわち、出力Ｓ０３、Ｓ０２、Ｓ０１では、‘１’の発生位置が１ビットずつ後へずれる。そのため、この出力Ｓ０３、Ｓ０２、Ｓ０１の相互間に1ビット幅以上のスキューがなければ、フリップフロップ２１、２２、２３はシフトレジスタとして動作する。
【００２８】
このように、テストデータ生成部３で生成されるパラレルデータＴＰ１、ＴＰ２、ＴＰ３を入力したときに、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３相互間に1ビット幅以上のスキューがなければ、フリップフロップ１１、１２、１３およびフリップフロップ２１、２２、２３はシフトレジスタとして動作する。
【００２９】
ところが、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３相互間に1ビット幅以上のスキューがある場合、フリップフロップ１１、１２、１３あるいはフリップフロップ２１、２２、２３が正常なシフト動作を行わなくなる。
【００３０】
そこで、本実施例では、フリップフロップ１３の出力ＴＯＵＴ１およびフリップフロップ２３の出力ＴＯＵＴ２を観測することにより、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３相互間のスキュー故障の検出を行う。
【００３１】
図３および図４に、スキュー故障検出の例を示す。
【００３２】
図３（ａ）は、シリアライザ１０２の出力Ｓ０２に、通常よりも1ビット以上遅く出力されるようなスキューが発生した例を示す。
【００３３】
この場合、シリアライザ１０３の出力Ｓ０３の‘１’が、シリアライザ１０２の出力Ｓ０２の‘１’よりも早く出力されるため、フリップフロップ１３は、フリップフロップ１２の出力Ｆ１２が‘１’に立ち上がる前のデータ‘０’を読み込み、出力ＴＯＵＴ１に‘０’を出力する。すなわち、出力ＴＯＵＴ１が‘１’に立ち上がらない。
【００３４】
したがって、この場合、出力ＴＯＵＴ１の観測により、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３の相互間にスキュー故障が発生していることが検出される。
【００３５】
ところが、図３（ｂ）に示すような、シリアライザ１０１の出力Ｓ０１に、通常よりも1ビット以上早く出力されるようなスキューが発生した場合、出力ＴＯＵＴ１が、スキューがない場合と同じように立ち上がり、出力ＴＯＵＴ１ではこのスキュー故障が検出されない。
【００３６】
しかし、このような場合には、フリップフロップ２３の出力ＴＯＵＴ２の観測により、上述のシリアライザ１０１の出力Ｓ０１に起因するスキュー故障を検出することができる。
【００３７】
図４に、その様子を示す。
【００３８】
シリアライザ１０１の出力Ｓ０１に、通常よりも1ビット以上早く出力されるようなスキューが発生した場合、シリアライザ１０１の出力Ｓ０１の‘１’が、シリアライザ１０２の出力Ｓ０２の‘１’よりも早く出力されるため、フリップフロップ２３は、フリップフロップ２２の出力Ｆ２２が‘１’に立ち上がる前のデータ‘０’を読み込み、出力ＴＯＵＴ２に‘０’を出力する。すなわち、出力ＴＯＵＴ２が‘１’に立ち上がらない。
【００３９】
したがって、この場合、出力ＴＯＵＴ２の観測により、上述のシリアライザ１０１の出力Ｓ０１に起因するスキュー故障が検出される。
【００４０】
このような本実施例によれば、シリアライザ１０１〜１０３の出力Ｓ０１〜Ｓ０３をクロック入力としてシフトレジスタ動作する２組のフリップフロップ群（フリップフロップ１１〜１３、フリップフロップ２１〜２３）を備えるだけの簡単な構成の回路で、シリアライザ１０１〜１０３の出力Ｓ０１〜Ｓ０３の相互間のスキュー故障を容易に検出することができる。
【００４１】
また、スキュー故障検出動作が、フリップフロップ間を信号伝達させるだけの単純な動作であるため、高速動作のシリアライザであっても、その相互間のスキュー故障を検出することができる。
【実施例２】
【００４２】
実施例１では、フリップフロップ１１〜１３およびフリップフロップ２１〜２３が、それぞれシフトレジスタとして動作する例を示したが、本実施例では、フリップフロップ１３の出力をフリップフロップ２１へ入力し、フリップフロップ１１〜２３が１つのシフトレジスタとして動作するようにした例を示す。
【００４３】
図５は、本発明の実施例２に係るスキュー故障検出回路の構成の例を示すブロック図である。なお、図５において、実施例１と同一の機能を有するブロックには、図１と同一の符号を付し、ここでは、その詳細な説明を省略する。
【００４４】
本実施例では、入力ＴＩＮと出力ＴＯＵＴとの間に、フリップフロップ１１、１２、１３と、フリップフロップ２１、２２、２３と、が直列に接続される。すなわち、実施例１と異なり、フリップフロップ１３の出力Ｆ１３が、フリップフロップ２１へ入力される。
【００４５】
フリップフロップ１１、１２、１３のクロック入力は、実施例１と同様、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３である。また、フリップフロップ１１、１２、１３のクロック入力も、実施例１と同様、シリアライザ１０３、１０２、１０１の出力Ｓ０３、Ｓ０２、Ｓ０１である。
【００４６】
図６に、本実施例においてテストデータ生成部３で生成されるパラレルデータＴＰ１、ＴＰ２、ＴＰ３の例を示す。
【００４７】
テストデータ生成部３では、まず、ＴＰ１＝‘１０００’、ＴＰ２＝‘０１００’、ＴＰ３＝‘００１０’が生成される。これにより、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３が、順次‘１’となり、フリップフロップ１１、１２、１３が、シフトレジスタとして動作する。
【００４８】
続いて、テストデータ生成部３で、ＴＰ１＝‘００１０’、ＴＰ２＝‘０１００’、ＴＰ３＝‘１０００’が生成される。これにより、シリアライザ１０３、１０２、１０１の出力Ｓ０３、Ｓ０２、Ｓ０１が、順次‘１’となり、フリップフロップ１３に引き続いて、フリップフロップ２１、２２、２３が、シフトレジスタとして動作する。
【００４９】
図７および図８に、本実施例におけるスキュー故障検出の例を示す。
【００５０】
図７は、図３（ａ）と同じく、シリアライザ１０２の出力Ｓ０２が通常よりも1ビット以上遅く出力されるようなスキューが発生したときの例であり、図８は、図４と同じく、シリアライザ１０１の出力Ｓ０１が通常よりも1ビット以上早く出力されるようなスキューが発生したときの例である。
【００５１】
いずれの場合も、入力ＴＩＮに与えた信号の立ち上りが、出力ＴＯＵＴへ伝達されず、シリアライザ１０１、１０２、１０３の出力Ｓ０１、Ｓ０２、Ｓ０３相互間にスキュー故障が発生していることがわかる。
【００５２】
このような本実施例によれば、シリアライザ１０１〜１０３の出力Ｓ０１〜Ｓ０３をクロック入力として動作するシフトレジスタを１組とすることができ、スキュー故障検出用の入出力端子をＴＩＮとＴＯＵＴの１組にすることができる。これにより、スキュー故障検出回路の構成をより簡単化できる。
【００５３】
なお、上述の各実施例では、シリアライザの個数が３個の場合を例にとって示したが、シリアライザの個数は３個に限られるものではなく、任意の個数のシリアライザに対して、各実施例と同様のスキュー故障検出回路を構成することができる。また、各シリアライザのデータビット数も４ビットに限られるものではなく、任意のデータビット数のシリアライザに対して、各実施例と同様のスキュー故障検出回路を構成することができる。
【００５４】
また、上述の各実施例では、要求されるスキュー検出幅が1ビットである場合を例にとって示したが、テストデータ生成部３で生成されるパラレルデータを変化させることにより、スキュー検出幅は任意に設定することができる。例えば、各シリアライザのデータビット数が６ビットで、要求されるスキュー検出幅が２ビットである場合は、テストデータ生成部３で、ＴＰ１＝‘１０００００’、ＴＰ２＝‘００１０００’、ＴＰ３＝‘００００１００’を生成することにより、スキュー幅が2ビット以上あるときをスキュー故障として検出することができる。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施例１に係るスキュー故障検出回路の構成の例を示すブロック図。
【図２】実施例１のスキュー故障検出回路におけるスキュー故障検出用テストデータの例を示す図。
【図３】実施例１のスキュー故障検出回路におけるスキュー故障検出動作の例を示す波形図。
【図４】実施例１のスキュー故障検出回路におけるスキュー故障検出動作の例を示す波形図。
【図５】本発明の実施例２に係るスキュー故障検出回路の構成の例を示すブロック図。
【図６】実施例２のスキュー故障検出回路におけるスキュー故障検出用テストデータの例を示す図。
【図７】実施例２のスキュー故障検出回路におけるスキュー故障検出動作の例を示す波形図。
【図８】実施例２のスキュー故障検出回路におけるスキュー故障検出動作の例を示す波形図。
【符号の説明】
【００５６】
１１〜１３、２１〜２３  フリップフロップ
３  テストデータ生成部
１００  送信器
１０１〜１０３  シリアライザ
【図１】
2010021789.tif 000003
【図２】
2010021789.tif 000004
【図３】
2010021789.tif 000005
【図４】
2010021789.tif 000006
【図５】
2010021789.tif 000007
【図６】
2010021789.tif 000008
【図７】
2010021789.tif 000009
【図８】
2010021789.tif 000010