(57)【特許請求の範囲】
【請求項１】
差動ストローブ信号に同期して入力するデータ信号を、基準電位と比較して取り込むデータ入力回路と、
前記差動ストローブ信号の一方を、前記基準電位と比較して取り込む第１ストローブ入力回路と、
前記差動ストローブ信号の他方を、前記基準電位と比較して取り込む第２ストローブ入力回路と、
前記データ入力回路、前記第１ストローブ入力回路および前記第２ストローブ入力回路の出力に基づいて、前記基準電位を設定する基準電位制御回路と、を備え、
前記基準電位制御回路は、
トレーニングモード時に、前記データ入力回路の出力に基づいて前記基準電位を設定する基準電位トレーニング回路と、
前記第１ストローブ入力回路および前記第２ストローブ入力回路の出力変化のスキューを検出する基準電位補正回路と、を備え、
前記基準電位補正回路は、
前記第１ストローブ入力回路の出力の立上りが前記第２ストローブ入力回路の出力の立下りより進んでいるか、または前記第２ストローブ入力回路の出力の立上りが前記第１ストローブ入力回路の出力の立下りより進んでいる時には、前記基準電位を低下し、
前記第１ストローブ入力回路の出力の立上りが前記第２ストローブ入力回路の出力の立下りより遅れているか、または前記第２ストローブ入力回路の出力の立上りが前記第１ストローブ入力回路の出力の立下りより遅れている時には、前記基準電位を上昇し、
前記基準電位トレーニング回路は、前記トレーニングモード後の通常動作時に、前記基準電位補正回路の検出結果に基づいて前記基準電位を変化させることを特徴とする受信回路。
【請求項２】
前記基準電位トレーニング回路は、前記トレーニングモード時に、前記データ信号を、低レベルに固定して、前記基準電位を前記低レベルより低いレベルである最小レベルから１段階ずつ増加させて取り込んだときの前記データ信号の値が低レベルと検出された時の前記基準電位と、前記データ信号の高レベルの電位との中間値を、初期基準電位として設定する請求項１に記載の受信回路。
【請求項３】
前記差動ストローブ信号を差動入力とする差動増幅回路と、
前記差動増幅回路の差動出力の一方を遅延して第１遅延クロックを出力する第１遅延回路と、
前記差動増幅回路の差動出力の他方を遅延して第２遅延クロックを出力する第２遅延回路と、
前記データ入力回路の出力を、前記第１遅延クロックの立ち上りでラッチする第１ラッチ回路と、
前記データ入力回路の出力を、前記第２遅延クロックの立ち上りでラッチする第２ラッチ回路と、を備える請求項１または請求項２に記載の受信回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信回路に関する。
【背景技術】
【０００２】
ストローブ信号に同期したデータ信号を、基準電位と比較して取り込む受信回路が広く使用されており、基準電位は、受信回路を搭載する半導体装置（デバイス）の内部で生成される。例えば、ＤＤＲメモリインターフェース（Ｉ／Ｆ）のように高速なデータ転送を行う半導体デバイスにおいては、データ信号の入出力がＤＤＲメモリから出力されるストローブ信号に同期して行われる。ＤＤＲメモリの出力するデータ信号を受ける受信回路は、入力するデータ信号の電位と基準電位とを比較することによって、入力データを生成する。なお、ＤＤＲメモリインターフェースの場合は、多ビットのパラレルデータの入出力を、ストローブ信号に同期して行う。
【０００３】
ＤＤＲ３メモリＩ／Ｆでは、基準電位は電源電圧の１／２レベルであったが、ＤＤＲ４メモリＩ／Ｆでは、データ端子（ＤＱ端子）は電源電圧終端であり、受信回路に入力するデータ信号は小振幅信号である。そのため、ＤＤＲ４メモリＩ／Ｆでは、基準電位ＶＲＥＦ＿ＤＱはトレーニングにより、半導体デバイス装置の内部で最適な基準電位を生成する。
【０００４】
トレーニングモードで最適な基準電位を生成することにより、トレーニングモードから通常動作モードになると、適切な基準電位でデータ信号を取り込むことができる。しかし、電源電圧の変動や温度変動の関係で、ＤＲＡＭが出力する“Ｌ”レベルが動作中に変動することが起きる。このように、半導体装置でトレーニングにより最適化された基準電位のレベルが、動作している間に変動すると、データ信号のウィンドウ(window)が変化してしまい、正しいデータが受信できなくなる場合が発生する。
【０００５】
さらに、ＤＤＲ４メモリＩ／Ｆは、疑似オープンドレイン(Pseudo Open Drain)であるため、データ信号の立ち上り／立ち下り(Rise/Fall)のスルーレート(slew rate)に差分がある場合もある。これも、データ信号の取り込みにおけるウィンドウを変化させる要因となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−０９７６６０号公報
【特許文献２】特開２００１−１９５８８４号公報
【特許文献３】特開２０１２−１００１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記のインターフェース回路の通常動作時に、基準電位レベル、またはＤＲＡＭの“Ｌ”レベルが変動したかどうか、を検出することはできない。また、電圧・温度の変動を検出し、基準電位レベルを再設定したほうが良いことが判明した場合でも、基準電位を再設定するためのトレーニングするためには、トレーニングモードにして、データ信号の受信動作を一時停止することになる。
【０００８】
そこで、動作中に、基準電位レベルが変動する、またはＤＲＡＭの出力する“Ｌ”レベルが変動しても、さらにデータ信号の立ち上り／立ち下りのスルーレートに差があっても、常に最適な基準電位レベルを維持する受信回路が望まれる。
【０００９】
実施形態によれば、動作中にも、常に最適な基準電位レベルを維持する受信回路が実現される。
【課題を解決するための手段】
【００１０】
第１の態様の受信回路は、データ入力回路と、第１ストローブ入力回路と、第２ストローブ入力回路と、基準電位制御回路と、を有する。データ入力回路は、差動ストローブ信号に同期して入力するデータ信号を、基準電位と比較して取り込む。第１ストローブ入力回路は、差動ストローブ信号の一方を基準電位と比較して取り込む。第２ストローブ入力回路は、差動ストローブ信号の他方を基準電位と比較して取り込む。基準電位制御回路は、データ入力回路、第１ストローブ入力回路および第２ストローブ入力回路の出力に基づいて、基準電位を設定する。基準電位制御回路は、トレーニングモード時に、データ入力回路の出力に基づいて基準電位を設定する基準電位トレーニング回路と、第１ストローブ入力回路および第２ストローブ入力回路の出力変化のスキューを検出する基準電位補正回路と、を備える。基準電位補正回路は、第１ストローブ入力回路の出力の立上りが第２ストローブ入力回路の出力の立下りより進んでいるか、または第２ストローブ入力回路の出力の立上りが第１ストローブ入力回路の出力の立下りより進んでいる時には、基準電位を低下し、第１ストローブ入力回路の出力の立上りが第２ストローブ入力回路の出力の立下りより遅れているか、または第２ストローブ入力回路の出力の立上りが第１ストローブ入力回路の出力の立下りより遅れている時には、基準電位を上昇する。基準電位トレーニング回路は、トレーニングモード後の通常動作時に、基準電位補正回路の検出結果に基づいて基準電位を変化させる。
【発明の効果】
【００１１】
実施形態の受信回路は、トレーニングにより基準電位を最適なレベルに設定した後の通常動作時において、基準電位および最適なレベルを変化させる要因があっても、基準電位を常に最適なレベルに維持する。
【図面の簡単な説明】
【００１２】
【図１】図１は、特許文献３に記載されたＤＤＲメモリとのインターフェース回路の構成を示す図である。
【図２】図２は、ＤＤＲ４メモリＩ／Ｆに適用するインターフェース回路の構成例を示す図である。
【図３】図３は、ＶＲＥＦトレーニング回路のトレーニング時における基準電位ＶＲＥＦの設定処理を説明する図である。
【図４】図４は、ＤＤＲメモリから出力されたデータを、ＳｏＣの受信回路で受信する時の波形図である。
【図５】図５は、ＤＤＲメモリのＬレベルおよび最適化されたＶＲＥＦのレベルが変化した場合の影響を説明する図である。
【図６】図６は、実施形態のインターフェース回路の構成を示す図である。
【図７】図７は、ＶＲＥＦトレーニング回路にＶＲＥＦ補正回路を一体に形成した回路の構成を示す図である。
【図８】図８は、ＶＲＥＦ生成回路のＤＡＣの構成を示す図である。
【図９】図９は、トレーニング時に、ＤＱ＿ｉ（ここではｉ＝ｎ）がＨレベルからＬレベルに変化するまでＶＲＥＦを増加させた時のコード値およびＤＡＣ制御信号の変化を示すタイムチャートである。
【図１０】図１０は、ＶＲＥＦ補正回路のスキュー（ｓｋｅｗ）検出補正制御部の処理内容を説明する図である。
【図１１】図１１は、ｓｋｅｗ検出補正制御部のスキュー検出を行う回路例を示す図である。
【図１２】図１２は、図１１の回路の各部の真理値表である。
【発明を実施するための形態】
【００１３】
以下、ＤＤＲメモリとのインターフェース回路を例として実施形態を説明するが、実施形態のインターフェース回路はこれに限定されるものではない。
実施形態のインターフェース回路を説明する前に、ＤＤＲメモリとのインターフェース回路の一般的な例について説明する。
【００１４】
図１は、特許文献３に記載されたＤＤＲメモリとのインターフェース回路の構成を示す図である。
図１のインターフェース回路は、ＤＤＲメモリである送信機３４０からの出力データを、メモリ制御回路である受信機２２０で受信して取り込む。言い換えれば、図１は、メモリ制御回路がＤＤＲメモリからデータを読み出す場合の回路を示している。メモリ制御回路からＤＤＲメモリにデータを書き込む場合には、メモリ制御回路に送信機３４０に対応する回路が、ＤＤＲメモリに受信機２２０に対応する回路が設けられる。
【００１５】
送信機３４０は、複数の出力ドライバ１５０ａ−１５０ｎと、複数の出力データ端子１４０ａ−１４０ｎと、差動ストローブドライバ１２０と、差動ストローブ出力端子１４５ａおよび１４５ｂと、を有する。受信機２２０は、複数の入力データ端子２１０ａ−２１０ｎと、差動ストローブ入力端子２１５ａおよび２１５ｂと、複数のコンパレータ２２０ａ−２２０ｎと、差動ストローブコンパレータ（増幅回路）２２１と、基準電圧発生回路２５０と、を有する。複数の出力データ端子１４０ａ−１４０ｎと複数の入力データ端子２１０ａ−２１０ｎの間には、複数の伝送ライン１３０ａ−１３０ｎが設けられ、差動ストローブ出力端子１４５ａおよび１４５ｂと差動ストローブ入力端子２１５ａおよび２１５ｂの間には、２本の伝送ライン１５５ａおよび１５５ｂが設けられる。図１のインターフェース回路については、基準電圧発生回路２５０以外は広く知られているので、説明は省略する。
【００１６】
図１に示すように、基準電圧発生回路２５０は、受信した差動ストローブ信号ＳＴ１およびＳＴ２の信号線対の間に直列に接続された２個の抵抗の組を、コンパレータごとに有する。複数組の２個の抵抗の接続ノードに差動ストローブ信号ＳＴ１およびＳＴ２の中間レベルが発生し、これを基準電位ＶＲＥＦ１−ＶＲＥＦｎとする。このように、基準電圧発生回路２５０は、受信した差動ストローブ信号ＳＴ１およびＳＴ２から、コンパレータごとにＶＲＥＦ１−ＶＲＥＦｎを生成するので、ＶＲＥＦ１−ＶＲＥＦｎにはデータ信号ＩＳ１−ＩＳｎに重畳されたノイズと同じノイズが重畳される。そのため、データ信号のノイズをキャンセルできる。
【００１７】
しかし、図１の受信機（受信回路）には、以下のような問題がある。
（１）差動ストローブ信号ＳＴ１およびＳＴ２は常時印加されているわけではなく、ＤＤＲメモリの読み出し（Ｒｅａｄ）動作時にストローブ信号が出力される。そのため、受信側のデバイス内では、差動ストローブ信号に応答して基準電圧ＶＲＥＦｎを高速に生成することが求められる。
【００１８】
（２）データ信号のビット数により、抵抗分割で作成するＶＲＥＦの個数が変わるため、データ信号のビット数に最適なＤＤＲメモリの差動ストローブ信号の駆動能力を設定することが求められる。そのため、データ信号と差動ストローブ信号のインピーダンスがずれてしまう。
【００１９】
差動ストローブ信号ＳＴ１およびＳＴ２から高速でＶＲＥＦ１−ＶＲＥＦｎの電位を設定するために、基準電圧発生回路２５０は、駆動能力を大きく設定することが求められるため、低インピーダンスに設定することが好ましい。そのため、データ信号ＩＳ１−ＩＳｎと差動ストローブ信号ＳＴ１およびＳＴ２のインピーダンスがずれた場合、プルアップ／プルダウンの設定ステップ差により、データ信号ＩＳ１−ＩＳｎと差動ストローブ信号ＳＴ１およびＳＴ２との中心電位がずれてしまう。ＶＲＥＦ１−ＶＲＥＦｎは差動ストローブ信号ＳＴ１およびＳＴ２により生成され、そのＶＲＥＦｎを基準電圧として、データ信号ＩＳｎの高レベルと低レベルが判定されるため、データ信号ＩＳｎのウィンドウはマージンが小さくなる。
【００２０】
さらに、ＤＤＲ４インターフェースは、疑似オープンドレイン(Pseudo Open Drain)であるため、高レベルはＶＤＤＱに固定されており、データ信号と差動ストローブ信号のインピーダンスを変えると、低レベルが、下がってくる。従って、ＤＤＲ４インターフェースでは、ウィンドウのマージンがより一層小さくなってしまう。
【００２１】
（３）差動ストローブ信号ＳＴ１およびＳＴ２の立上り(Rise)／立下り(Fall)のスルーレート(slew rate)がずれると、ＳＴ１およびＳＴ２の変化エッジ付近で、理想のＶＲＥＦからの一時的なずれが発生する。
【００２２】
差動ストローブ信号を抵抗で接続し、抵抗分割により基準電圧を生成する手法は、以上のような問題がある。そのため、ＤＤＲ４メモリＩ／Ｆでは、インターフェース回路を含むシステムの起動時に、トレーニングにより、基準電位ＶＲＥＦを適切なレベルに設定した後、通常動作を行う。
【００２３】
図２は、ＤＤＲ４メモリＩ／Ｆに適用するインターフェース回路の構成例を示す図である。
【００２４】
図２のインターフェース回路は、送信側であるＤＤＲメモリ１０と、受信側であるメモリ制御回路を有するＳｏＣ(System On Chip)２０と、ＤＤＲメモリ１０とＳｏＣ２０間の複数の伝送ライン１３ａ−１３ｎおよび１４ａおよび１４ｂと、を有する。図２のインターフェース回路は、ＳｏＣ２０がＤＤＲメモリ１０からｎビットのデータＤＱａ−ＤＱｎを読み出し、内部に取り込む回路である。
【００２５】
ＤＤＲメモリ１０は、複数の出力ドライバ１１ａ−１１ｎと、差動ストローブドライバ１２ａおよび１２ｂと、を有する。複数の出力ドライバ１１ａ−１１ｎは、差動ストローブ信号に同期してｎビットのデータＤＱａ−ＤＱｎを伝送ライン１３ａ−１３ｎに出力する。差動ストローブドライバ１２ａおよび１２ｂは、差動ストローブ信号ＤＱＳＴおよびＤＱＳＢを伝送ライン１４ａおよび１４ｂに出力する。
【００２６】
ＳｏＣ２０は、複数のコンパレータ（データ入力バッファ）２１ａ−２１ｎと、差動ストローブ増幅回路２２と、マスクゲート２４ａおよび２４ｂと、ディレイ２５ａおよび２５ｂと、ＶＲＥＦトレーニング回路２６と、ＶＲＥＦ生成回路２７と、を有する。コンパレータ２１ａ−２０ｎは、伝送ライン１３ａ−１３ｎから入力するデータＤＱａ−ＤＱｎを、データ基準電位ＶＲＥＦと比較して値を判定し、取り込む。差動ストローブ増幅回路２２は、差動ストローブ信号を増幅する。マスクゲート２４ａおよび２４ｂは、マスク信号(Mask)が高(High)レベルの時に差動ストローブ信号を通過させ、マスク信号が低(Low)レベルの時に差動ストローブ信号を遮断する。ディレイ(delay)２５ａおよび２５ｂは、マスクゲート２４ａおよび２４ｂを通過した差動ストローブ信号が、ダブルデータレートで変化するデータのアイパターンのウィンドウの中心にエッジが位置するように遅延してＤＱＳＴ＿ｄおよびＤＱＳＢ＿ｄとして出力する。ＤＱＳＴ＿ｄは、データの変化エッジからクロックの１／４位相ずれ、ＤＱＳＢ＿ｄはＤＱＳＴ＿ｄからクロックの１／位相ずれ、すなわちデータの変化エッジからクロックの３／４位相ずれている。
【００２７】
ＳｏＣ２０は、さらに、コンパレータ２１ａ−２０ｎの出力を差動ストローブ信号でラッチする複数のラッチ回路２３ａａ−２３ｎａを有する。例えば、ＤＱａであるコンパレータ２１ａの出力はダブルデータレート、すなわちクロックの１／２周期で変化する。ラッチ回路２３ａａはＤＱＳＴ＿ｄに同期してＤＱａをラッチし、ラッチ回路２３ａｂはＤＱＳＢ＿ｄに同期してＤＱａをラッチする。言い換えれば、ラッチ回路２３ａｂは、ラッチ回路２３ａａがラッチしたクロックの１／２周期後に、同じＤＱａをラッチするが、ＤＱａは、ダブルデータレートであるために、１／２周期後には次の値に変化している。
【００２８】
図２のインターフェース回路については、ＶＲＥＦトレーニング回路２６およびＶＲＥＦ生成回路２７以外は広く知られているので、説明は省略する。以下、ＶＲＥＦトレーニング回路２６およびＶＲＥＦ生成回路２７について説明する。ＶＲＥＦ生成回路２７は、ＶＲＥＦトレーニング回路２６の出力するコードに応じた電圧を発生するＤＡＣ(Digital-to-Analog Converter)２８を有する。
【００２９】
ＤＤＲ４メモリ（ＳＤＲＡＭ）インターフェース（Ｉ／Ｆ）では、コンパレータ（データ入力バッファ）２１ａ−２１ｎの比較電位を設定するためのデータ基準電圧ＶＲＥＦをＳｏＣ２０の内部で生成する。そのために、トレーニングにより、ＶＲＥＦのレベルを調節して設定し、トレーニング後の通常状態では、設定したＶＲＥＦを維持する方式となっている。
【００３０】
図３は、ＶＲＥＦトレーニング回路２６のトレーニング時における基準電位ＶＲＥＦの設定処理を説明する図である。
【００３１】
トレーニング時には、ＤＤＲメモリ１０の出力するデータのうちの１つ（ここではＤＱｎ）を低レベルに設定する。ＶＲＥＦトレーニング回路２６は、まずＶＲＦ生成回路２７に出力するコード値を最小の値に設定する。この時、ＶＲＥＦは最小レベルであり、コンパレータ２１ｎの出力ＤＱ＿ｉは、必ず高（Ｈ）レベルである。この状態から、コード値を１ステップずつ増加させ、各ステップにおけるコンパレータ２１ｎの出力ＤＱ＿ｉを監視する。ＶＲＥＦがＤＱｎのレベルを超えて高くなると、ＤＱ＿ｉは低（Ｌ）レベルに変化する。この時のＶＲＥＦは、ＤＱｎの低レベルに近いレベルであり、この時のＶＲＥＦとＳｏＣ２０の高電位側電源レベルＶＤＤＱの中間レベルをＶＲＥＦの最適レベルとする。
【００３２】
図４は、ＤＤＲメモリ１０から出力されたデータを、ＳｏＣ２０の受信回路で受信する時の波形図である。
最上段に示すように、ＤＱＳＴおよびＤＱＳＢは、ＳｏＣ２０の入力端子では、ＨレベルがＶＤＤＱのレベルで、ＬレベルがＶＤＤＱとＶＳＳＱの間のレベルである。最下段に示すように、データＤＱａ−ＤＱｎも、ＳｏＣ２０の入力端子では、同様のＨレベルとＬレベルの間で変化する。このように、ＤＱａ−ＤＱｎのＬレベルは、ＤＤＲメモリ１０が決定している。これに対して、ＶＲＥＦレベルは、ＳｏＣ２０で生成している。最下段に示すように、トレーニングにより、ＶＲＥＦはＤＱａ−ＤＱｎのＨレベルとＬレベルの中間に設定される。
【００３３】
マスク信号ＭａｓｋがＨレベルになると、ディレイ２５ａおよび２５ｂから、ＤＱＳＴおよびＤＱＳＢをクロックの１／４周期ずらしたＤＱＳＴ＿ｄおよびＤＱＳＢ＿ｄが出力される。さらに、コンパレータ２１ａ−２１ｎがＤＱａ−ＤＱｎをＶＲＥＦと比較することによりＤＱ＿ｊ（ｊ＝１−ｎ）を生成し、ラッチ２３ａａ−２３ｎｂによりＤＱＳＴ＿ｄおよびＤＱＳＢ＿ｄに同期して取り込まれる。
【００３４】
以上の通り、トレーニングにより、ＶＲＥＦを最適レベルに設定することにより、図２のＳｏＣ２０の受信回路は、ＤＤＲメモリ１０から出力されたデータを正しく受信することができる。
【００３５】
しかし、トレーニングでＶＲＥＦを最適レベルに設定しても、温度変化、電源電圧変動等に起因して、ＤＤＲメモリのＬレベルおよび最適化されたＶＲＥＦのレベルが、インターフェース回路の動作中に変動する場合がある。最適化されたＶＲＥＦのレベルが変動すると、データＤＱのデータのウィンドウが変化してしまい、正しいデータが受信できなくなることが生じる。
【００３６】
図５は、ＤＤＲメモリのＬレベルおよび最適化されたＶＲＥＦのレベルが変化した場合の影響を説明する図である。
図５の最下段に示すように、最適化されたＶＲＥＦのレベルが、ＡＬからＣＬに変化すると、データＤＱは立下りが早く、立ち上りが遅くなり、Ｌレベルの期間が短くなる。これは、データＤＱのアイパターンのウィンドウが変化することを意味し、ラッチする際の誤りが増加する。
【００３７】
しかし、図２に示したインターフェース回路では、通常動作中にＶＲＥＦのレベルまたはＤＤＲメモリのＬレベルが変動したかどうか、を検出することはできない。また、電圧・温度の変動が検出できて、「ＶＲＥＦのレベルを再設定したほうが良い」と判っても、ＶＲＥＦを再度トレーニングするためには、通常動作におけるデータの受信動作を停止することが好ましい。
【００３８】
さらに、ＤＤＲ４Ｉ／Ｆは、疑似オープンドレインであるため、データの立上り／立下りのスルーレートに差分が生じる場合があり、それも、データＤＱのウィンドウを変化させる要因となる。
【００３９】
以下に説明する実施形態のインターフェース回路では、通常動作中に、ＶＲＥＦレベルの変動、ＤＤＲメモリの出力するデータのＬレベルの変動、さらにデータの立上り／立下りのスルーレートに差があっても、常にＶＲＥＦは最適なレベルに維持される。
【００４０】
図６は、実施形態のインターフェース回路の構成を示す図である。
実施形態のインターフェース回路は、図２の回路と同様に、ＤＤＲメモリ１０と、ＳｏＣ３０と、複数の伝送ライン１３ａ−１３ｎおよび１４ａおよび１４ｂと、を有する。ＤＤＲメモリ１０および伝送ライン１３ａ−１３ｎおよび１４ａおよび１４ｂは、図２のものと同じであり、説明は省略する。
【００４１】
ＳｏＣ２０は、複数のコンパレータ（データ入力バッファ）３１ａ−３１ｎと、差動ストローブ増幅回路３２と、マスクゲート３４ａおよび３４ｂと、ディレイ３５ａおよび３５ｂと、複数のラッチ回路３３ａａ−３３ｎａと、を有する。これらは、図２のものと同じであり、説明は省略する。
【００４２】
ＳｏＣ２０は、さらに、ＶＲＥＦトレーニング回路３６と、ＶＲＥＦ生成回路３７と、２個のコンパレータ４１および４２と、ＶＲＥＦ補正回路４３と、を有する。言い換えれば、実施形態のインターフェース回路のＳｏＣ（受信回路）３０は、２個のコンパレータ４１および４２と、ＶＲＥＦ補正回路４３が追加されたことが、図２のＳｏＣ２０と異なる。
【００４３】
ＶＲＥＦ生成回路３７は、図２のものと同じであり、ＤＡＣ３８を有する。ＶＲＥＦトレーニング回路３６は、図２のものと同じであるが、ＶＲＥＦ補正回路４３と一体に形成され、トレーニング終了後にＶＲＥＦ補正回路４３の補正制御により動作することが、図２のものと異なる。
【００４４】
コンパレータ４１は、伝送ライン１４ａから入力するストローブ信号ＤＱＳＴを、データ基準電位ＶＲＥＦと比較して値を判定し、判定結果をＴ＿ＶＲＥＦとして出力する。コンパレータ４２は、伝送ライン１４ｂから入力するストローブ信号ＤＱＳＢを、ＶＲＥＦと比較して値を判定し、判定結果をＢ＿ＶＲＥＦとして出力する。ＶＲＥＦ補正回路４３は、Ｔ＿ＶＲＥＦおよびＢ＿ＶＲＥＦのスキューを検出し、検出したスキューからＶＲＥＦのコード値の補正信号を生成する。上記のように、ＶＲＥＦ補正回路４３は、ＶＲＥＦトレーニング回路３６と一体に形成される。
【００４５】
図７は、ＶＲＥＦトレーニング回路３６にＶＲＥＦ補正回路４３を一体に形成した回路の構成を示す図である。
ＶＲＥＦトレーニング回路３６は、トレーニング制御回路５１と、アップ／ダウン（Ｕｐ／Ｄｏｗｎ）コントローラ５２と、ＤＡＣ制御回路５３と、を有し、これにＶＲＥＦ補正回路４３が付加されている。ＶＲＥＦ補正回路４３は、スキュー（ｓｋｅｗ）検出補正制御部４４を有する。
【００４６】
トレーニング制御回路５１は、シーケンス制御部６１と、演算回路６２と、を有する。シーケンス制御部６１は、トレーニングを指示する制御信号を受けて、ＤＱｉ（ここではｉ＝ｎ）をＬレベルに固定した状態で、コード値を１ずつ増加させすることにより、ＶＲＥＦを段階的に増加させるコード制御を行う。具体的には、トレーニングの最初にゼロのコード値をアップ／ダウンコントローラ５２に出力し、その後コード値のアップ／ダウン信号を出力する。
【００４７】
演算回路６２は、トレーニング時に、ＤＱ＿ｉのＬレベルへの判定信号を受けて、シーケンス制御部６１にコード値の変化を停止させ、その時点のコード値（ＶＲＥＦ）とＶＤＤＱの中間レベルを演算する。そして、演算回路６２は、完了信号を出力すると共に、中間レベルのコード値をアップ／ダウンコントローラ５２に出力する。
【００４８】
アップ／ダウン（Ｕｐ／Ｄｏｗｎ）コントローラ５２は、アップ／ダウン信号の入力を切替えるスイッチ６３と、アップ／ダウン（Ｕｐ／Ｄｏｗｎ）回路６４と、保持回路６５と、を有する。スイッチ６３は、完了信号が出る前（完了信号＝Ｌ）にはトレーニング制御部５１のシーケンス制御部６１の出力するアップ／ダウン信号を選択し、完了信号が出た後（完了信号＝Ｈ）にはＶＲＥＦ補正回路４３の出力するアップ／ダウン信号を選択する。
【００４９】
アップ／ダウン（Ｕｐ／Ｄｏｗｎ）回路６４は、入力されたコード値を取り込んでカウント値として保持すると共に、スイッチ６３からのアップ／ダウン信号に応じて、保持しているカウント値を、１増加または減少させる。保持回路６５は、アップ／ダウン（Ｕｐ／Ｄｏｗｎ）回路６４の出力するカウント値を保持し、設定コード値ｃｏｄｅ［０］−［３］として出力する。保持回路６５の出力する設定コード値は、トレーニング制御回路５１に送られる。
【００５０】
ＤＡＣ制御回路５３は、デコーダ６６と、レジスタ６７および６８を有する。デコーダ６６は、設定コード値ｃｏｄｅ［０］−［３］をデコードしてＤＡＣ制御信号を出力する。ここでは、設定コード値ｃｏｄｅ［０］−［３］は４ビットであり、８個の制御信号を２組、合計１６個のＤＡＣ制御信号を出力する。
【００５１】
レジスタ６７および６８は、更新クロック（Ｕｐｄａｔｅ＿ＣＬＫ）に応じてデコーダ６６の出力する２×８のＤＡＣ制御信号をラッチして保持する。レジスタ６７は、８個のＤＡＣ制御信号Ｐ［０］−Ｐ［７］を保持し、レジスタ６８は、８個のＤＡＣ制御信号Ｎ［０］−Ｎ［７］を保持する。
【００５２】
図８は、ＶＲＥＦ生成回路３７のＤＡＣ３８の構成を示す図である。
ＤＡＣ３８は、高電位側電源ＶＤＤＱと低電位側電源（ＶＳＳＱ）の間に直列に接続された８組のＰＭＯＳトランジスタ、２個の抵抗およびＮＭＯＳトランジスタを有し、２個の抵抗の接続ノードが共通に接続され、そこから基準電位ＶＲＥＦが出力される。レジスタ６７の出力するＤＡＣ制御信号Ｐ［０］−Ｐ［７］は、８個のＰＭＯＳトランジスタのゲートに印加され、レジスタ６８の出力するＤＡＣ制御信号Ｎ［０］−Ｎ［７］は、８個のＰＭＯＳトランジスタのゲートに印加される。Ｐ［０］−Ｐ［７］をすべてＨレベルに、Ｎ［０］−Ｎ［７］をＨレベルにすると、ＰＭＯＳトランジスタは８個がオフし、ＮＭＯＳトランジスタは８個がオンし、基準電位ＶＲＥＦは最小値（ＶＳＳＱ）になる。この状態から、Ｐ［０］がＬレベルに変化すると、ＰＭＯＳトランジスタは１個がオンし、７個がオフし、ＮＭＯＳトランジスタは８個がオンする。これにより、１個の抵抗と、８個の並列に接続した抵抗が直列に接続された状態になり、ＶＲＥＦの電位が１段階上昇する。次に、Ｎ［０］がＬレベルに変化すると、１個の抵抗と、７個の並列に接続した抵抗が直列に接続された状態になり、ＶＲＥＦの電位がさらに１段階上昇する。以下、Ｐ［１］をＬレベルに、次にＮ［１］がＬレベルに、という具合に、オンするＰＭＯＳトランジスタの個数を１ずつ増加させ、オフするＮＭＯＳトランジスタの個数を１ずつ増加させると、ＶＲＥＦが１６段階で変化し、最後にＶＤＤＱになる。
【００５３】
図９は、トレーニング時に、ＤＱ＿ｉ（ここではｉ＝ｎ）がＨレベルからＬレベルに変化するまでＶＲＥＦを増加させた時のコード値およびＤＡＣ制御信号の変化を示すタイムチャートである。
【００５４】
ｃｏｄｅ［０］−［３］をＬレベルとし、レジスタ６７および６８が、Ｕｐｄａｔｅ＿ＣＬＫに同期してコードをラッチすると、Ｐ［０］−Ｐ［７］およびＮ［０］−Ｎ［７］はすべてＨレベルとなり、ＶＲＥＦはＶＳＳＱとなる。
【００５５】
ｃｏｄｅ［０］＝Ｈレベル、ｃｏｄｅ［１］−［３］＝Ｌレベルとすると、Ｐ［０］＝Ｌレベルに、Ｐ［１］−Ｐ［７］およびＮ［０］−Ｎ［７］＝Ｈレベルとなり、ＶＲＥＦはＶＳＳＱから１段階上昇する。以下、順にコード値を増加させ、それに応じてＰ［０］−Ｐ［７］およびＮ［０］−Ｎ［７］が変化し、ＶＲＥＦは１段階ずつ上昇する。そして、ＶＲＥＦがＤＤＲメモリが決定するＬレベルを超えると、ＤＱ＿ｉはＬレベルに変化する。ＤＱ＿ｉがＬレベルに変化した時、コード値（ｃｏｄｅ［０］−［３］）＝７（Ｈ，Ｈ，Ｈ，Ｌ）であり、Ｐ［０］−Ｐ［３］＝Ｌレベル、Ｎ［０］−Ｎ［２］＝Ｌレベル、Ｐ［４］−Ｐ［７］＝Ｈレベル、Ｎ［３］−Ｎ［７］＝Ｈレベルである。
【００５６】
図７の演算回路６２は、ＤＱ＿ｉがＬレベルに変化した時のＶＲＥＦとＶＤＤＱの中間レベルを演算し、それを最適なＶＲＥＦとして設定する。具体的には、最適コード値＝（７＋１５）／２＝１１、ｃｏｄｅ［０］−［３］＝Ｈ，Ｌ，Ｈ，Ｌにする。これに応じて、Ｐ［０］−Ｐ［５］＝Ｌレベル、Ｎ［０］−Ｎ［４］＝Ｌレベル、Ｐ［６］−Ｐ［７］＝Ｈレベル、Ｎ［５］−Ｎ［７］＝Ｈレベルになる。
【００５７】
以上のようにして、トレーニングが終了する。このトレーニング動作は、図２のインターフェース回路と同じであり、図２のインターフェース回路ではトレーニングで設定したＶＲＥＦが通常動作時に維持されたのに対して、実施形態では、通常動作時にＶＲＥＦが随時変更される。そのため、図７の演算回路６２は、ＤＱ＿ｉがＬレベルに変化した時に最適なＶＲＥＦを設定した後、完了信号を出力する。スイッチ６３は、完了信号が出ると（完了信号がＬからＨに変化すると）、ＶＲＥＦ補正回路４３の出力するアップ／ダウン信号を選択するように切り替わる。
【００５８】
図１０は、ＶＲＥＦ補正回路４３のスキュー（ｓｋｅｗ）検出補正制御部４４の処理内容を説明する図である。図１０の（Ａ）はＶＲＥＦが適切な場合を、図１０の（Ｂ）はＶＲＥＦが高すぎる場合を、図１０の（Ｃ）はＶＲＥＦが低すぎる場合を、示す。
【００５９】
伝送ライン１４ａから入力する差動ストローブ信号ＤＱＳＴおよびＤＱＳＢは、ストローブ信号であるので、受信時には、ＤＤＲメモリから差動で伝播し、そのＬレベルはデータ信号ＤＱと同じである。そのため、ＤＱＳＴおよびＤＱＳＢは、毎サイクルデータが変化するデータ信号ＤＱと見なせる。ＤＱＳＴおよびＤＱＳＢは対称に変化し、ＤＱＳＴとＤＱＳＢが交差するレベルにＶＲＥＦ4が一致している状態が適切な状態である。
【００６０】
図１０の（Ａ）に示すように、ＶＲＥＦが適切なレベルに設定されている場合、Ｔ＿ＶＲＥＦおよびＢ＿ＶＲＥＦは、同時に逆方向に変化する。言い換えれば、Ｔ＿ＶＲＥＦが立上るのと同時にＢ＿ＶＲＥＦが立下り、Ｂ＿ＶＲＥＦが立上るのと同時にＴ＿ＶＲＥＦが立下る。
【００６１】
図１０の（Ｂ）に示すように、適切なレベルより高すぎる場合、Ｔ＿ＶＲＥＦの立上りはＢ＿ＶＲＥＦの立下りより早く、Ｂ＿ＶＲＥＦの立上りはＴ＿ＶＲＥＦの立下りより早くなる。
【００６２】
図１０の（Ｃ）に示すように、適切なレベルより低すぎる場合、Ｔ＿ＶＲＥＦの立下りはＢ＿ＶＲＥＦの立上りより早く、Ｂ＿ＶＲＥＦの立下りはＴ＿ＶＲＥＦの立上りより早くなる。
【００６３】
ｓｋｅｗ検出補正制御部４４は、コンパレータ４１の出力するＴ＿ＶＲＥＦと、コンパレータ４２の出力するＢ＿ＶＲＥＦの変化エッジの前後関係（スキュー）を検出し、検出したスキューから図１０の（Ａ）から（Ｃ）のいずれの状態であるか判定する。そして、図１０の（Ａ）の状態であればコード値を維持し、図１０の（Ｂ）の状態であればＶＲＥＦを１段階下げるようにコード値を１減少させ、図１０の（Ｃ）の状態であればＶＲＥＦを１段階上げるようにコード値を１増加する補正信号を生成する。
【００６４】
図１１は、ｓｋｅｗ検出補正制御部４４のスキュー検出を行う回路例を示す図である。
図１２は、図１１の回路の各部の真理値表であり、ＶＲＥＦが適切な場合と、高い場合と、低い場合の各部の出力の値を示す。
【００６５】
フリップフロップ（ＦＦ）８１は、Ｂ＿ＶＲＥＦをデータ入力とし、Ｔ＿ＶＲＥＦをクロック入力とする。Ｔ＿ＶＲＥＦの立上りとＢ＿ＶＲＥＦの立下りが同時であれば、ＦＦ８１の出力はＨとなる。また、ＶＲＥＦが高く、Ｔ＿ＶＲＥＦの立上りがＢ＿ＶＲＥＦの立下りより早い場合も、ＦＦ８１の出力はＨとなる。これに対して、ＶＲＥＦが低く、Ｔ＿ＶＲＥＦの立上りがＢ＿ＶＲＥＦの立下りより遅い場合には、ＦＦ８１の出力はＬとなる。なお、Ｂ＿ＶＲＥＦのＦＦ８１へのデータ入力を、微小量遅延するようにしてもよい。
【００６６】
フリップフロップ（ＦＦ）８２は、Ｂ＿ＶＲＥＦをデータ入力とし、ディレイ（ここではインバータを２個直列に接続した遅延回路）８５で遅延したＴ＿ＶＲＥＦをクロック入力とする。Ｔ＿ＶＲＥＦの立上りとＢ＿ＶＲＥＦの立下りが同時の場合、Ｔ＿ＶＲＥＦは遅延してＦＦ８１に入力するため、ＦＦ８１の出力はＬとなる。また、ＶＲＥＦが低く、Ｔ＿ＶＲＥＦの立上りがＢ＿ＶＲＥＦの立下りより遅い場合には、Ｔ＿ＶＲＥＦはさらに遅延されるので、ＦＦ８１の出力はＬとなる。これに対して、ＶＲＥＦが高く、Ｔ＿ＶＲＥＦの立上りがＢ＿ＶＲＥＦの立下りより早い場合には、遅延されたＴ＿ＶＲＥＦが立上っても、Ｂ＿ＶＲＥＦがまだ立下らないので、立下りＦＦ８１の出力はＨとなる。ディレイ８５の遅延量は、調整感度および頻繁な基準電位の変化を防止するためのヒステリシスを考慮して適宜設定する。
【００６７】
ＦＦ８１および８２の出力から、Ｔ＿ＶＲＥＦの立上りのＢ＿ＶＲＥＦの立下りに対する関係、すなわち一致しているか、進んでいるか、遅れているか、すなわちＶＲＥＦが適切であるか、高いか、低いかが判明する。
【００６８】
上記のように、ＦＦ８１および８２の出力は、ＶＲＥＦが適切であれば一致せず、ＶＲＥＦが高いかまたは低ければ一致する。ＥＸＮＯＲ８７は、ＦＦ８１および８２の出力が一致するか否かを判定し、一致する場合はＨを、不一致の場合はＬを出力する。ＡＮＤ９１は、ＦＦ８１の出力とＥＸＮＯＲ８７の出力の論理積を演算する。ＡＮＤ９１の出力は、ＶＲＥＦが適切なレベルより高い時にＨになり、適切であるか低い場合にはＬになる。ＡＮＤ９２は、ＦＦ８２の出力の反転信号とＥＸＮＯＲ８７の出力の論理積を演算する。ＡＮＤ９２の出力は、ＶＲＥＦが適切なレベルより低い時にＨになり、適切であるか高い場合にはＬになる。したがって、ＡＮＤ９１の出力がＨの時にはＶＲＥＦを低下させ、ＡＮＤ９２の出力がＨの時にはＶＲＥＦを上昇させるように制御する。
【００６９】
ＦＦ８３および８４は、ディレイ８６、ＥＸＮＯＲ８９、インバータ９０、ＡＮＤ９３および９４は、Ｂ＿ＶＲＥＦの立上りのＴ＿ＶＲＥＦの立下りに対する関係について、上記と同様に検出する回路である。
【００７０】
ＯＲ９５は、ＡＮＤ９１および９３の出力の論理和を演算し、ダウン（Ｄｏｗｎ）信号を出力する。ＯＲ９６は、ＡＮＤ９２および９４の出力の論理和を演算し、アップ（Ｕｐ）信号を出力する。スキュー検出補正制御部４４は、このダウン（Ｄｏｗｎ）信号およびアップ（Ｕｐ）信号を、スイッチ６３に出力する。
【００７１】
以上、実施形態のＶＲＥＦトレーニング回路３６、ＶＲＥＦ生成回路３７およびＶＲＥＦ補正回路について説明したが、回路構成などは各種の変形例が可能であるのは言うまでもない。また、コードｃｏｄｅ［０］−［３］として、受信動作中でも問題ないように、グレーコードを使用するようにしてもよい。
【００７２】
以上説明したように、実施形態のインターフェース回路では、動作中にＳｏＣ２０のＶＲＥＦレベルが変動するか、またはＤＤＲメモリ１０の出力するＬレベルが変動しても、常に最適なＶＲＥＦレベルに設定でき、データを正確に受信できるようになる。また、ＤＤＲメモリの差動のストローブ信号の出力回路のインピーダンスが異なる場合や立上り／立下りのスルーレートに差があっても、常に最適なＶＲＥＦレベルに設定できる。
【００７３】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものである。特に記載された例や条件は発明の範囲を制限することを意図するものではなく、明細書のそのような例の構成は発明の利点および欠点を示すものではない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００７４】
１０    ＤＤＲメモリ
１３ａ−１３ｎ、１４ａ、１４ｂ    伝送ライン
３０    ＳｏＣ
３１ａ−３１ｎ    コンパレータ（データ入力バッファ）
３２    差動ストローブ増幅回路
３３ａａ−３３ｎａ    ラッチ回路
３４ａ、３４ｂ    マスクゲート
３５ａ、３５ｂ    ディレイ
３６    ＶＲＥＦトレーニング回路
３７    ＶＲＥＦ生成回路
４１、４２    コンパレータ
４３    ＶＲＥＦ補正回路
【図１】
0006481312.tif 000002
【図２】
0006481312.tif 000003
【図３】
0006481312.tif 000004
【図４】
0006481312.tif 000005
【図５】
0006481312.tif 000006
【図６】
0006481312.tif 000007
【図７】
0006481312.tif 000008
【図８】
0006481312.tif 000009
【図９】
0006481312.tif 000010
【図１０】
0006481312.tif 000011
【図１１】
0006481312.tif 000012
【図１２】
0006481312.tif 000013