(57)【要約】【課題】データバス信号とクロック信号との遅延のバラツキを補正する。【解決手段】スレーブＤＬＬ回路１０Ａの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、スレーブＤＬＬ回路１０Ａの段数を設定させることにより、そのオフセット分をスレーブＤＬＬ回路１０Ａ自体に補償させる。【選択図】      図１
2013149007.tif 000002
【特許請求の範囲】
【請求項１】
コマンド／アドレス信号に対してクロック信号の位相をシフトさせるコマンド／アドレスブロックと、
ライトデータ信号に対して前記クロック信号の位相をシフトさせるライトデータブロックと、
前記クロック信号に同期したデータストローブ信号に対してリードデータ信号の位相をシフトさせるリードデータブロックと、
前記コマンド／アドレスブロックの位相シフト量に基づいて単位遅延素子の段数を設定させる第１のデコーダ回路と、
前記ライトデータブロックの位相シフト量に基づいて単位遅延素子の段数を設定させる第２のデコーダ回路と、
前記リードデータブロックの位相シフト量に基づいて単位遅延素子の段数を設定させる第３のデコーダ回路とを備え、
前記コマンド／アドレスブロックは、
前記第１のデコーダ回路にて指定された位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて前記クロック信号の遅延量を設定する第１のＤＬＬ回路と、
前記クロック信号に基づいてコマンド／アドレスデータを取り込む第１のフリップフロップ回路と、
前記第１のＤＬＬ回路にて遅延された前記クロック信号に基づいて、前記第１のフリップフロップ回路に取り込まれた前記コマンド／アドレスデータを出力する第１の出力回路とを備え、
前記ライトデータブロックは、
前記第２のデコーダ回路にて指定された位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて前記クロック信号の遅延量を設定する第２のＤＬＬ回路と、
前記クロック信号に基づいて前記ライトデータを取り込む第２のフリップフロップ回路と、
前記第２のＤＬＬ回路にて遅延された前記クロック信号に基づいて、前記第２のフリップフロップ回路に取り込まれた前記ライトデータを出力する第２の出力回路とを備え、
前記リードデータブロックは、
前記第３のデコーダ回路にて指定された位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて前記リードデータ信号の遅延量を設定する第３のＤＬＬ回路と、
前記第３のＤＬＬ回路にて遅延された前記リードデータ信号に基づいて前記データストローブ信号を取り込む第３のフリップフロップ回路とを備え、
前記第１のデコーダ回路は、前記第１のＤＬＬ回路の位相シフト量およびオフセット分に対応する前記単位遅延素子の段数を前記第１のＤＬＬ回路に設定させ、
前記第２のデコーダ回路は、前記第２のＤＬＬ回路の位相シフト量およびオフセット分に対応する前記単位遅延素子の段数を前記第２のＤＬＬ回路に設定させ、
前記第３のデコーダ回路は、前記第３のＤＬＬ回路の位相シフト量およびオフセット分に対応する前記単位遅延素子の段数を前記第３のＤＬＬ回路に設定させることを特徴とするインターフェース回路。
【請求項２】
位相シフト量に対してオフセット分が減算された単位遅延素子の段数に基づいてクロック信号またはデータ信号の遅延量を設定する複数のＤＬＬ回路と、
前記位相シフト量および前記オフセット分に対応する前記単位遅延素子の段数を前記複数のＤＬＬ回路にそれぞれ設定させる複数のデコーダ回路とを備えることを特徴とするインターフェース回路。
【請求項３】
前記オフセット分は、前記位相シフト量に対する前記遅延量のずれに対応することを特徴とする請求項２に記載のインターフェース回路。
【請求項４】
前記デコーダ回路は、
前記位相シフト量に対応した前記単位遅延素子の段数を演算する演算ブロックと、
前記位相シフト量に対応した前記単位遅延素子の段数から前記オフセット分に対応した前記単位遅延素子の段数を減算する減算ブロックと、
前記減算ブロックにて算出された前記単位遅延素子の段数に基づいて前記ＤＬＬ回路の前記単位遅延素子の段数の切替指令を生成するデコードブロックとを備えることを特徴とする請求項２または３に記載のインターフェース回路。
【請求項５】
前記ＤＬＬ回路の遅延動作を模擬することにより、前記オフセット分を指定するオフセット信号を生成するオフセット信号生成部をさらに備えることを特徴とする請求項２から４のいずれか１項に記載のインターフェース回路。
【請求項６】
クロック信号に従ってコマンド／アドレス信号を出力するコマンド／アドレスブロックと、
ライトデータ信号に対して前記クロック信号の位相をシフトさせるライトデータブロックと、
前記クロック信号に同期したデータストローブ信号に対してリードデータ信号の位相をシフトさせるリードデータブロックと、
前記ライトデータブロックの位相シフト量に基づいて単位遅延素子の段数を設定させる第１のデコーダ回路と、
前記リードデータブロックの位相シフト量に基づいて単位遅延素子の段数を設定させる第２のデコーダ回路とを備え、
前記ライトデータブロックは、
前記第１のデコーダ回路にて指定された位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて前記クロック信号の遅延量を設定する第１のＤＬＬ回路と、
前記クロック信号に基づいて前記ライトデータを取り込む第１のフリップフロップ回路と、
前記第１のＤＬＬ回路にて遅延された前記クロック信号に基づいて、前記第１のフリップフロップ回路に取り込まれた前記ライトデータを出力する第１の出力回路とを備え、
前記リードデータブロックは、
前記第２のデコーダ回路にて指定された位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて前記リードデータ信号の遅延量を設定する第２のＤＬＬ回路と、
前記第２のＤＬＬ回路にて遅延された前記リードデータ信号に基づいて前記データストローブ信号を取り込む第２のフリップフロップ回路とを備え、
前記第１のデコーダ回路は、前記第１のＤＬＬ回路の位相シフト量およびオフセット分に対応する前記単位遅延素子の段数を前記第１のＤＬＬ回路に設定させ、
前記第２のデコーダ回路は、前記第２のＤＬＬ回路の位相シフト量およびオフセット分に対応する前記単位遅延素子の段数を前記第２のＤＬＬ回路に設定させることを特徴とするインターフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態はインターフェース回路に関する。
【背景技術】
【０００２】
ＤＤＲ方式などの高速パラレルインターフェースにおいて、データバス信号ＤＱをデータストローブ信号ＤＱＳに同期させて取り込む場合、データバス信号ＤＱとクロック信号ＣＬＫとの遅延のバラツキを抑制することが重要である。このようなバラツキが大きくなると、データ有効ウィンドウが小さくなり、データの取込みが正常に行えなくなることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−５６３３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態の目的は、データバス信号とクロック信号との遅延のバラツキを補正することが可能なインターフェース回路を提供することである。
【課題を解決するための手段】
【０００５】
実施形態のインターフェース回路によれば、複数のＤＬＬ回路と複数のデコーダ回路とが設けられている。複数のＤＬＬ回路はそれぞれ、位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいてクロック信号またはデータ信号の遅延量を設定する。複数のデコーダ回路はそれぞれ、前記位相シフト量および前記オフセット分に対応する前記単位遅延素子の段数を前記ＤＬＬ回路に設定させる。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るインターフェース回路の概略構成を示すブロック図である。
【図２】図２は、図１のスレーブＤＬＬ回路の構成例を示すブロック図である。
【図３】図３は、図１のデコーダ回路の構成例を示すブロック図である。
【図４】図４は、図１のインターフェース回路のライト側の信号波形を示すタイミングチャートである。
【図５】図５は、図１のインターフェース回路のリード側の信号波形を示すタイミングチャートである。
【図６】図６は、第２実施形態に係るインターフェース回路に適用されるコマンド／アドレスブロックの概略構成を示すブロック図である。
【図７】図７は、第３実施形態に係るインターフェース回路に適用されるコマンド／アドレスブロックの概略構成を示すブロック図である。
【図８】図８は、第４実施形態に係るインターフェース回路に適用されるオフセット信号生成部の概略構成を示すブロック図である。
【図９】図９は、図８のオフセット信号生成部の動作を示すフローチャートである。
【図１０】図１０は、第５実施形態に係るインターフェース回路に適用されるデコーダ回路の概略構成を示すブロック図である。
【図１１】図１１は、第６実施形態に係るインターフェース回路の概略構成を示すブロック図である。
【図１２】図１２は、図１１のインターフェース回路のコマンド／アドレスブロックの信号波形を示すタイミングチャートである。
【発明を実施するための形態】
【０００７】
以下、実施形態に係るインターフェース回路について図面を参照しながら説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１実施形態）
図１は、第１実施形態に係るインターフェース回路の概略構成を示すブロック図である。なお、このインターフェース回路は、例えば、ＤＤＲ方式などの高速パラレルインターフェース規格に従って、ＤＲＡＭなどのメモリとの間でコマンドやアドレスやデータなどを仲介することができる。
【０００９】
図１において、このインターフェース回路には、コマンド／アドレスブロック１およびデータブロック２が設けられている。データブロック２には、ライトデータブロック３およびリードデータブロック４が設けられている。コマンド／アドレスブロック１は、コマンド／アドレス信号ＣＡ［Ｙ：０］に対してクロック信号ＣＬＫの位相をシフトさせることができる。なお、このコマンド／アドレスブロック１は、例えば、ダブルデータレート（ＤＤＲ）で動作するＬＰＤＤＲ２／３に適用することができる。ライトデータブロック３は、データ信号ＤＱ［Ｘ：０］に対してクロック信号ＣＬＫの位相をシフトさせることができる。リードデータブロック４は、クロック信号ＣＬＫに同期したデータストローブ信号ＤＱＳＰ、ＤＱＳＮに対してデータ信号ＤＱ［Ｘ：０］の位相をシフトさせることができる。なお、データストローブ信号ＤＱＳＰ、ＤＱＳＮは互いに差動信号を構成することができる。また、これらの位相のシフト量は、例えば、９０°に設定することができる。
【００１０】
コマンド／アドレスブロック１には、フリップフロップ回路８Ａ、９Ａ、第１のスレーブＤＬＬ回路１０Ａ、第１の出力回路１３Ａおよび第１のスキュー調整レプリカ１４Ａが設けられている。フリップフロップ回路８Ａ、９Ａは、クロック信号ＣＬＫに従ってコマンド／アドレスデータＷＣＬ、ＷＣＵをそれぞれ取り込むことができる。コマンド／アドレスデータＷＣＬはロウアー側、コマンド／アドレスデータＷＣＵはアッパー側に対応させることができる。第１のスレーブＤＬＬ回路１０Ａは、位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて、コマンド／アドレス信号ＣＡ［Ｙ：０］に対するクロック信号ＣＬＫの遅延量を設定することができる。なお、第１の第１のスレーブＤＬＬ回路１０Ａのオフセット分は、コマンド／アドレス信号ＣＡ［Ｙ：０］とクロック信号ＣＬＫとの間の位相シフト量に対する第１のスレーブＤＬＬ回路１０Ａの遅延量のずれに対応させることができる。すなわち、オフセット分の遅延時間を予め単に遅延素子の段数を減らすことにより、従来のオフセット分のレプリカ回路の搭載が必要なくなる。以下、第２、第３のスレーブＤＬＬ回路１０Ｂ、１０Ｃについても同様である。第１の出力回路１３Ａは、第１のスレーブＤＬＬ回路１０Ａの出力信号ＯＵＴ１に基づいて、フリップフロップ回路８Ａ、９Ａに取り込まれたコマンド／アドレスデータＷＣＬ、ＷＣＵを出力することができる。なお、第１の出力回路１３Ａとしては、例えば、コマンド／アドレスデータＷＣＬ、ＷＣＵをコマンド／アドレス信号ＣＡ［Ｙ：０］として出力するマルチプレクサを用いることができる。第１のスキュー調整レプリカ１４Ａは、第１の出力回路１３Ａによる遅延量が補償されるようにクロック信号ＣＬＫの遅延量を調整することができる。
【００１１】
ライトデータブロック３には、フリップフロップ回路８Ｂ、９Ｂ、第２の第２のスレーブＤＬＬ回路１０Ｂ、第２の出力回路１３Ｂおよび第２のスキュー調整レプリカ１４Ｂが設けられている。フリップフロップ回路８Ｂ、９Ｂは、クロック信号ＣＬＫに従ってライトデータＷＤＬ、ＷＤＵをそれぞれ取り込むことができる。ライトデータＷＤＬはロウアー側、ライトデータＷＤＵはアッパー側に対応させることができる。第２のスレーブＤＬＬ回路１０Ｂは、位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて、データ信号ＤＱ［Ｘ：０］に対するクロック信号ＣＬＫの遅延量を設定することができる。なお、第２のスレーブＤＬＬ回路１０Ｂのオフセット分は、データ信号ＤＱ［Ｘ：０］とクロック信号ＣＬＫとの間の位相シフト量に対する第２のスレーブＤＬＬ回路１０Ｂの遅延量のずれに対応させることができる。第２の出力回路１３Ｂは、第２のスレーブＤＬＬ回路１０Ｂの出力信号ＯＵＴ２に基づいて、フリップフロップ回路８Ｂ、９Ｂに取り込まれたライトデータＷＤＬ、ＷＤＵを出力することができる。なお、第２の出力回路１３Ｂとしては、例えば、ライトデータＷＤＬ、ＷＤＵをデータ信号ＤＱ［Ｘ：０］として出力するマルチプレクサを用いることができる。第２のスキュー調整レプリカ１４Ｂは、第２の出力回路１３Ｂによる遅延量が補償されるようにクロック信号ＣＬＫの遅延量を調整することができる。
【００１２】
リードデータブロック４には、フリップフロップ回路８Ｃ、９Ｃおよび第３の第３のスレーブＤＬＬ回路１０Ｃが設けられている。第３のスレーブＤＬＬ回路１０Ｃは、位相シフト量に対してオフセット分が補償された単位遅延素子の段数に基づいて、データストローブ信号ＤＱＳＰ、ＤＱＳＮに対するデータ信号ＤＱ［Ｘ：０］の遅延量を設定することができる。なお、第３のスレーブＤＬＬ回路１０Ｃのオフセット分は、データストローブ信号ＤＱＳＰ、ＤＱＳＮとデータ信号ＤＱ［Ｘ：０］との間の位相シフト量に対する第２のスレーブＤＬＬ回路１０Ｂの遅延量のずれに対応させることができる。フリップフロップ回路８Ｃ、９Ｃは、第３のスレーブＤＬＬ回路１０Ｃの出力信号ＯＵＴ３に基づいてデータストローブ信号ＤＱＳＰ、ＤＱＳＮを取り込むことができる。
【００１３】
また、このインターフェース回路には、ＰＬＬ回路５、マスタＤＬＬ回路６、第１乃至第３のデコーダ回路７Ａ〜７Ｃ、ＩＯドライバ１１Ａ、１１Ｂ、１２Ａ、１２Ｂ、ＩＯレシーバ１１Ｃ、１２Ｃ、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）１３Ｃおよびフリップフロップ回路１５Ａ、１６Ａ、１５Ｂ、１６Ｂが設けられている。
【００１４】
ＰＬＬ回路５はクロック信号ＣＬＫを生成することができる。マスタＤＬＬ回路６は、遅延段数信号ＳＴＧを出力することができる。なお、遅延段数信号ＳＴＧは、例えば、１周期分の遅延を与えるための単位遅延素子の段数に対応させることができる。第１のデコーダ回路７Ａは、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対してオフセット分が補償された単位遅延素子の段数を第１のスレーブＤＬＬ回路１０Ａに設定させることができる。第１のデコーダ回路７Ａは、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対してオフセット分が補償された単位遅延素子の段数を第１のスレーブＤＬＬ回路１０Ａに設定させることができる。なお、第１のデコーダ回路７Ａには、第１のスレーブＤＬＬ回路１０Ａの位相シフト量として第１の位相シフト量設定信号Ｇｅａｒａを与え、第１のスレーブＤＬＬ回路１０Ａのオフセット分として第１のオフセット信号ＯＦＡを与えることができる。第２のデコーダ回路７Ｂは、第２のスレーブＤＬＬ回路１０Ｂの位相シフト量に対してオフセット分が補償された単位遅延素子の段数を第２のスレーブＤＬＬ回路１０Ｂに設定させることができる。なお、第２のデコーダ回路７Ｂには、第２のスレーブＤＬＬ回路１０Ｂの位相シフト量として第２の位相シフト量設定信号Ｇｅａｒｂを与え、第２のスレーブＤＬＬ回路１０Ｂのオフセット分として第２のオフセット信号ＯＦＢを与えることができる。第３のデコーダ回路７Ｃは、第３のスレーブＤＬＬ回路１０Ｃの位相シフト量に対してオフセット分が補償された単位遅延素子の段数を第３のスレーブＤＬＬ回路１０Ｃに設定させることができる。なお、第３のデコーダ回路７Ｃには、第３のスレーブＤＬＬ回路１０Ｃの位相シフト量として第３の位相シフト量設定信号Ｇｅａｒｃを与え、第３のスレーブＤＬＬ回路１０Ｃのオフセット分として第３のオフセット信号ＯＦＣを与えることができる。第１乃至第３のオフセット信号ＯＦＡ、ＯＦＢ、ＯＦＣは予め計算などで求め、レジスタなどに登録することができる。
【００１５】
ＩＯドライバ１１Ａは、コマンド／アドレス信号ＣＡ［Ｙ：０］を出力することができる。ＩＯドライバ１２Ａは、クロック信号ＣＫＰ、ＣＫＮを出力することができる。なお、クロック信号ＣＫＰ、ＣＫＮは互いに差動信号を構成することができる。ＩＯドライバ１１Ｂは、データ信号ＤＱ［Ｘ：０］を出力することができる。ＩＯドライバ１２Ｂは、データストローブ信号ＤＱＳＰ、ＤＱＳＮを出力することができる。ＩＯレシーバ１１Ｃは、データストローブ信号ＤＱＳＰ、ＤＱＳＮを入力することができる。ＩＯレシーバ１２Ｃは、データ信号ＤＱ［Ｘ：０］を入力することができる。ＩＯドライバ１１Ａ、１１Ｂ、１２Ａ、１２ＢおよびＩＯレシーバ１１Ｃ、１２Ｃは、電源電圧ＶＤＤＱが供給されている。ＦＩＦＯ１３Ｃは、リードデータＲＤＬ、ＲＤＵを入力された順に出力することができる。リードデータＲＤＬはロウアー側、リードデータＲＤＵはアッパー側に対応させることができる。
【００１６】
図２は、図１のスレーブＤＬＬ回路の構成例を示すブロック図である。なお、図２では、図１の第１のスレーブＤＬＬ回路１０Ａを例にとるが、第２のスレーブＤＬＬ回路１０Ｂ、１０Ｃについても同様に構成することができる。
図２において、第１のスレーブＤＬＬ回路１０Ａには、セレクタＳＥＩ、ＳＥＯ、ＳＥ１〜ＳＥｎ、バッファＢ１、Ｂ２、制御回路２１、２２およびｍ（ｍは正の整数）×ｎ（ｎは正の整数）個の単位遅延素子Ｄ１１〜Ｄｍｎが設けられている。なお、単位遅延素子Ｄ１１〜Ｄｍｎとしては、例えば、バッファを用いることができる。
【００１７】
ここで、単位遅延素子Ｄ１１〜Ｄｍｎは、ロウ方向およびカラム方向にマトリックス状に配置されている。セレクタＳＥＩは、切替信号ＳＥＬに基づいてクロック信号ＣＬＫ１、ＣＬＫ２を切り替えて入力することができる。クロック信号ＣＬＫ１、ＣＬＫ２は使用用途に応じて適宜選択することができる。なお、以下の実施形態では、セレクタＳＥＩを介して入力されるクロック信号ＣＬＫ１、ＣＬＫ２は、図１のクロック信号ＣＬＫであるものとして説明する。セレクタＳＥ１〜ＳＥｎは、単位遅延素子Ｄ１１〜Ｄｍｎをロウ方向に選択することができる。セレクタＳＥＯは、単位遅延素子Ｄ１１〜Ｄｍｎをカラム方向に選択することができる。制御回路２１は、セレクタＳＥ１〜ＳＥｎを切り替えることができる。制御回路２２は、セレクタＳＥＯを切り替えることができる。
【００１８】
なお、第１のスレーブＤＬＬ回路１０Ａのオフセット分は、例えば、オフセット発生部ＲＢにおけるセレクタＳＥＩ、ＳＥＯ、ＳＥ１およびバッファＢ１、Ｂ２の遅延量に対応させることができる。この時、第１のオフセット信号ＯＦＡは、プロセス条件、動作温度、動作電圧および動作周波数を一定条件に固定した時の単位遅延素子Ｄ１１〜Ｄｍｎの遅延量をβ、オフセット発生部ＲＢにおける遅延量をαとすると、α／βという値から求めることができる。プロセス条件、動作温度、動作電圧および動作周波数が変動した場合においても、α／βという値はほぼ一定に維持されることが発明者により実証された。このため、プロセス条件、動作温度、動作電圧および動作周波数が変動した場合においても、第１のオフセット信号ＯＦＡを変化させる必要はない。なお、第１のオフセット信号ＯＦＡにて指定される単位遅延素子Ｄ１１〜Ｄｍｎの段数は必ずしも整数に限定されることなく、小数を含んでいてもよい。小数を含む段数を実現する場合、例えば、単位遅延素子Ｄ１１〜Ｄｍｎの遅延量βを４分割できるファインディレイ構造を用いることができる。
【００１９】
図３は、図１のデコーダ回路の構成例を示すブロック図である。なお、図３では、図１の第１のデコーダ回路７Ａを例にとるが、第２のデコーダ回路７Ｂ、第３の第３のデコーダ回路７Ｃについても同様に構成することができる。
図３において、第１のデコーダ回路７Ａには、演算ブロック３１、減算ブロック３２、デコードブロック３３およびフリップフロップ３４が設けられている。
【００２０】
演算ブロック３１は、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数を演算することができる。減算ブロック３２は、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数からオフセット分に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数を減算することができる。デコードブロック３３は、減算ブロック３２にて算出された単位遅延素子Ｄ１１〜Ｄｍｎの段数に基づいて第１のスレーブＤＬＬ回路１０Ａの単位遅延素子Ｄ１１〜Ｄｍｎの段数の切替指令を生成することができる。フリップフロップ３４は、デコードブロック３３にて生成された切替指令を保持することができる。
【００２１】
図４は、図１のインターフェース回路のライト側の信号波形を示すタイミングチャートである。
図４において、図１の第１のデコーダ回路７Ａには、第１の位相シフト量設定信号Ｇｅａｒａおよび第１のオフセット信号ＯＦＡが与えられる。また、第１のデコーダ回路７Ａには、ＰＬＬ回路５からクロック信号ＣＬＫが入力されるとともに、マスタＤＬＬ回路６から遅延段数信号ＳＴＧが入力される。
【００２２】
そして、図３の演算ブロック３１において、第１の位相シフト量設定信号Ｇｅａｒａおよび遅延段数信号ＳＴＧに基づいて、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数が演算され、減算ブロック３２に出力される。なお、第１の位相シフト量設定信号Ｇｅａｒａがｄｅｇｒｅｅ換算で表される場合、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数は、（ＳＴＧ）×（Ｇｅａｒａ）／３６０という式で求めることができる。この時、コマンド／アドレス信号ＣＡ［Ｙ：０］に対するクロック信号ＣＬＫの位相シフト量が９０°の場合、第１の位相シフト量設定信号Ｇｅａｒａは９０に設定することができる。
【００２３】
そして、減算ブロック３２において、第１のオフセット信号ＯＦＡにて指定される第１のスレーブＤＬＬ回路１０Ａのオフセット分に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数が、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子Ｄ１１〜Ｄｍｎの段数から減算され、デコードブロック３３に出力される。そして、デコードブロック３３において、減算ブロック３２にて算出された段数から、図２の単位遅延素子Ｄ１１〜Ｄｍｎのロウ選択およびカラム選択を行わせる出力信号ＩＮ１が生成され、フリップフロップ３４を介して第１のスレーブＤＬＬ回路１０Ａに出力される。
【００２４】
そして、第１のスレーブＤＬＬ回路１０Ａにおいて、第１のデコーダ回路７Ａからの出力信号ＩＮ１に基づいてセレクタＳＥ１〜ＳＥｎ、ＳＥＯが切り替えられることにより、単位遅延素子Ｄ１１〜Ｄｍｎの段数が、位相シフト量に対応した段数からオフセット分に対応した段数を減算した値に設定される。
【００２５】
そして、第１のスレーブＤＬＬ回路１０Ａにおいて、クロック信号ＣＬＫがバッファＢ１を介して入力されると、第１のデコーダ回路７Ａにて指定された段数分の単位遅延素子Ｄ１１〜Ｄｍｎを通過することにより、クロック信号ＣＬＫの位相がシフトされる。そして、位相がシフトされたクロック信号ＣＬＫが出力信号ＯＵＴ１としてバッファＢ２を介して第１の出力回路１３Ａに出力される。
【００２６】
また、コマンド／アドレスデータＷＣＬ、ＷＣＵは、クロック信号ＣＬＫに従ってフリップフロップ回路１５Ａ、１６Ａにそれぞれ取り込まれる。また、フリップフロップ回路１５Ａ、１６Ａにそれぞれ取り込まれたコマンド／アドレスデータＷＣＬ、ＷＣＵは、クロック信号ＣＬＫに従ってフリップフロップ回路８Ａ、９Ａにそれぞれ取り込まれ、第１の出力回路１３Ａに出力される。
【００２７】
そして、第１の出力回路１３Ａに出力されたコマンド／アドレスデータＷＣＬ、ＷＣＵは、第１のスレーブＤＬＬ回路１０Ａの出力信号ＯＵＴ１に従ってコマンド／アドレス信号ＣＡ［Ｙ：０］としてＩＯドライバ１１Ａに出力される。このコマンド／アドレス信号ＣＡ［Ｙ：０］は、ＩＯドライバ１１Ａを介してコマンド／アドレス信号ＣＡ［Ｙ：０］として出力される。
【００２８】
また、クロック信号ＣＬＫは、第１のスキュー調整レプリカ１４Ａにおいて、第１の出力回路１３Ａによる遅延量が補償された後、ＩＯドライバ１２Ａに出力される。そして、ＩＯドライバ１２Ａから出力されたクロック信号ＣＬＫは、ＩＯドライバ１２Ａを介してクロック信号ＣＫＰ、ＣＫＮとして出力される。
【００２９】
ここで、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、第１のスレーブＤＬＬ回路１０Ａの段数を設定させることにより、そのオフセット分を第１のスレーブＤＬＬ回路１０Ａ自体に補償させることができる。このため、そのオフセット分を補償するためのオフセット補正回路をクロック信号ＣＫＰ、ＣＫＮの出力経路に設ける必要がなくなり、ジッタの増大を抑制することができる。
【００３０】
また、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、第１のスレーブＤＬＬ回路１０Ａの段数を設定させることにより、プロセス条件、動作温度、動作電圧および動作周波数による単位遅延素子の遅延量のバラツキを補償させることができる。このため、プロセス条件、動作温度、動作電圧および動作周波数が変動する場合においても、第１の位相シフト量設定信号Ｇｅａｒａを固定することができ、第１の位相シフト量設定信号Ｇｅａｒａをチップごとに調整する必要がなくなることから、量産時に調整工程にかかる負荷を低減することができる。
【００３１】
一方、図１の第２のデコーダ回路７Ｂには、第２の位相シフト量設定信号Ｇｅａｒｂおよび第２のオフセット信号ＯＦＢが与えられる。また、第２のデコーダ回路７Ｂには、ＰＬＬ回路５からクロック信号ＣＬＫが入力されるとともに、マスタＤＬＬ回路６から遅延段数信号ＳＴＧが入力される。この時、データ信号ＤＱ［Ｘ：０］に対するクロック信号ＣＬＫの位相シフト量が９０°の場合、第２の位相シフト量設定信号Ｇｅａｒｂは９０に設定することができる。
【００３２】
そして、第２のデコーダ回路７Ｂにおいて、遅延段数信号ＳＴＧ、第２の位相シフト量設定信号Ｇｅａｒｂおよび第２のオフセット信号ＯＦＢに基づいて、第２のスレーブＤＬＬ回路１０Ｂの位相シフト量およびオフセット分に対応する単位遅延素子Ｄ１１〜Ｄｍｎの段数が演算される。そして、その演算された段数に基づいて、第２のスレーブＤＬＬ回路１０Ｂにおける単位遅延素子Ｄ１１〜Ｄｍｎのロウ選択およびカラム選択を行わせる出力信号ＩＮ２が生成され、第２のスレーブＤＬＬ回路１０Ｂに出力される。
【００３３】
そして、第２のスレーブＤＬＬ回路１０Ｂにおいて、第２のデコーダ回路７Ｂからの出力信号ＩＮ２に基づいてセレクタＳＥ１〜ＳＥｎ、ＳＥＯが切り替えられることにより、単位遅延素子Ｄ１１〜Ｄｍｎの段数が設定される。
【００３４】
そして、第２のデコーダ回路７Ｂにて指定された段数分の単位遅延素子Ｄ１１〜Ｄｍｎをクロック信号ＣＬＫが通過することにより、クロック信号ＣＬＫの位相がシフトされる。そして、位相がシフトされたクロック信号ＣＬＫが出力信号ＯＵＴ２として第２の出力回路１３Ｂに出力される。
【００３５】
また、ライトデータＷＤＬ、ＷＤＵは、クロック信号ＣＬＫに従ってフリップフロップ回路１５Ｂ、１６Ｂにそれぞれ取り込まれる。また、フリップフロップ回路１５Ｂ、１６Ｂにそれぞれ取り込まれたライトデータＷＤＬ、ＷＤＵは、クロック信号ＣＬＫに従ってフリップフロップ回路８Ｂ、９Ｂにそれぞれ取り込まれ、第２の出力回路１３Ｂに出力される。
【００３６】
そして、第２の出力回路１３Ｂに出力されたライトデータＷＤＬ、ＷＤＵは、第２のスレーブＤＬＬ回路１０Ｂの出力信号ＯＵＴ２に従ってデータ信号ＤＱ［Ｘ：０］としてＩＯドライバ１１Ｂに出力される。このデータ信号ＤＱ［Ｘ：０］は、ＩＯドライバ１１Ｂを介してデータ信号ＤＱ［Ｘ：０］として出力される。
【００３７】
また、クロック信号ＣＬＫは、第２のスキュー調整レプリカ１４Ｂにおいて、第２の出力回路１３Ｂによる遅延量が補償された後、ＩＯドライバ１２Ｂに出力される。そして、ＩＯドライバ１２Ｂから出力されたクロック信号ＣＬＫは、ＩＯドライバ１２Ｂを介してデータストローブ信号ＤＱＳＰ、ＤＱＳＮとして出力される。
【００３８】
ここで、第２のスレーブＤＬＬ回路１０Ｂの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、第２のスレーブＤＬＬ回路１０Ｂの段数を設定させることにより、そのオフセット分を第２のスレーブＤＬＬ回路１０Ｂ自体に補償させることができる。このため、そのオフセット分を補償するためのオフセット補正回路をデータストローブ信号ＤＱＳＰ、ＤＱＳＮの出力経路に設ける必要がなくなり、ジッタの増大を抑制することができる。
【００３９】
また、第２のスレーブＤＬＬ回路１０Ｂの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、第２のスレーブＤＬＬ回路１０Ｂの段数を設定させることにより、プロセス条件、動作温度、動作電圧および動作周波数による単位遅延素子の遅延量のバラツキを補償させることができる。このため、プロセス条件、動作温度、動作電圧および動作周波数が変動する場合においても、第２の位相シフト量設定信号Ｇｅａｒｂを固定することができ、第２の位相シフト量設定信号Ｇｅａｒｂをチップごとに調整する必要がなくなることから、量産時に調整工程にかかる負荷を低減することができる。
【００４０】
図５は、図１のインターフェース回路のリード側の信号波形を示すタイミングチャートである。
図５において、データストローブ信号ＤＱＳＰ、ＤＱＳＮは、ＩＯレシーバ１１Ｃを介してフリップフロップ回路８Ｃ、９Ｃにそれぞれ出力される。また、第３のデコーダ回路７Ｃには、第３の位相シフト量設定信号Ｇｅａｒｃおよび第３のオフセット信号ＯＦＣが与えられる。また、第３のデコーダ回路７Ｃには、ＰＬＬ回路５からクロック信号ＣＬＫが入力されるとともに、マスタＤＬＬ回路６から遅延段数信号ＳＴＧが入力される。この時、データストローブ信号ＤＱＳＰ、ＤＱＳＮに対するデータ信号ＤＱ［Ｘ：０］の位相シフト量が９０°の場合、第３の位相シフト量設定信号Ｇｅａｒｃは９０に設定することができる。
【００４１】
そして、第３のデコーダ回路７Ｃにおいて、遅延段数信号ＳＴＧ、第３の位相シフト量設定信号Ｇｅａｒｃおよび第３のオフセット信号ＯＦＣに基づいて、第３のスレーブＤＬＬ回路１０Ｃの位相シフト量およびオフセット分に対応する単位遅延素子Ｄ１１〜Ｄｍｎの段数が演算される。そして、その演算された段数に基づいて、第３のスレーブＤＬＬ回路１０Ｃにおける単位遅延素子Ｄ１１〜Ｄｍｎのロウ選択およびカラム選択を行わせる出力信号ＩＮ３が生成され、第３のスレーブＤＬＬ回路１０Ｃに出力される。
【００４２】
そして、第３のスレーブＤＬＬ回路１０Ｃにおいて、第３のデコーダ回路７Ｃからの出力信号ＩＮ３に基づいてセレクタＳＥ１〜ＳＥｎ、ＳＥＯが切り替えられることにより、単位遅延素子Ｄ１１〜Ｄｍｎの段数が設定される。
【００４３】
そして、第３のスレーブＤＬＬ回路１０Ｃにおいて、第３のデコーダ回路７Ｃにて指定された段数分の単位遅延素子Ｄ１１〜Ｄｍｎをデータ信号ＤＱ［Ｘ：０］が通過することにより、データ信号ＤＱ［Ｘ：０］の位相がシフトされる。そして、位相がシフトされたデータ信号ＤＱ［Ｘ：０］が出力信号ＯＵＴ３としてフリップフロップ回路８Ｃ、９ＣおよびＦＩＦＯ１３Ｃに出力される。
【００４４】
そして、データストローブ信号ＤＱＳＰ、ＤＱＳＮに従ってデータ信号ＤＱ［Ｘ：０］がフリップフロップ回路８Ｃ、９Ｃに取り込まれ、リードデータＲＤＬ、ＲＤＵがＦＩＦＯ１３Ｃを介して出力される。
【００４５】
ここで、第３のスレーブＤＬＬ回路１０Ｃの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、第３のスレーブＤＬＬ回路１０Ｃの段数を設定させることにより、そのオフセット分を第３のスレーブＤＬＬ回路１０Ｃ自体に補償させることができる。このため、そのオフセット分を補償するためのオフセット補正回路をデータストローブ信号ＤＱＳＰ、ＤＱＳＮ出力経路に設ける必要がなくなり、ジッタの増大を抑制することができる。
【００４６】
また、第３のスレーブＤＬＬ回路１０Ｃの位相シフト量に対応した単位遅延素子の段数からオフセット分の単位遅延素子の段数を減算した値に基づいて、第３のスレーブＤＬＬ回路１０Ｃの段数を設定させることにより、プロセス条件、動作温度、動作電圧および動作周波数による単位遅延素子の遅延量のバラツキを補償させることができる。このため、プロセス条件、動作温度、動作電圧および動作周波数が変動する場合においても、第３の位相シフト量設定信号Ｇｅａｒｃを固定することができ、第３の位相シフト量設定信号Ｇｅａｒｃをチップごとに調整する必要がなくなることから、量産時に調整工程にかかる負荷を低減することができる。
【００４７】
（第２実施形態）
図６は、第２実施形態に係るインターフェース回路に適用されるコマンド／アドレスブロックの概略構成を示すブロック図である。
図６において、このインターフェース回路には、図１のコマンド／アドレスブロック１および第１のデコーダ回路７Ａの代わりにコマンド／アドレスブロック１´および第１のデコーダ回路７Ａ´が設けられている。
【００４８】
ここで、コマンド／アドレスブロック１´は、図１の第１のスキュー調整レプリカ１４Ａが省略される以外はコマンド／アドレスブロック１と同様に構成することができる。第１のデコーダ回路７Ａ´は、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対して第１のスレーブＤＬＬ回路１０Ａのオフセット分および第１の出力回路１３Ａのオフセット分が補償された単位遅延素子の段数をＤＬＬ回路１０Ａに設定させることができる。なお、第１の出力回路１３Ａのオフセット分は、データ信号ＤＱ［Ｘ：０］とクロック信号ＣＬＫとの間の位相シフト量に対して、第１のスレーブＤＬＬ回路１０Ａが与える遅延量のずれに対応させることができる。ここで、第１のデコーダ回路７Ａ´には、第１のスレーブＤＬＬ回路１０Ａの位相シフト量として第１の位相シフト量設定信号Ｇｅａｒａを与え、第１のスレーブＤＬＬ回路１０Ａおよび第１の出力回路１３Ａのオフセット分として第１のオフセット信号ＯＦＡ´を与えることができる。
【００４９】
そして、第１のデコーダ回路７Ａ´において、遅延段数信号ＳＴＧ、第１の位相シフト量設定信号Ｇｅａｒａおよび第１のオフセット信号ＯＦＡ´に基づいて、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対応する単位遅延素子Ｄ１１〜Ｄｍｎの段数から第１のスレーブＤＬＬ回路１０Ａおよび第１の出力回路１３Ａのオフセット分に対応する単位遅延素子Ｄ１１〜Ｄｍｎの段数を減算した段数が演算される。そして、その演算された段数に基づいて、第１のスレーブＤＬＬ回路１０Ａにおける単位遅延素子Ｄ１１〜Ｄｍｎのロウ選択およびカラム選択を行わせる出力信号ＩＮ１´が生成され、第１のスレーブＤＬＬ回路１０Ａに出力される。
【００５０】
そして、第１のスレーブＤＬＬ回路１０Ａにおいて、第１のデコーダ回路７Ａ´からの出力信号ＩＮ１´に基づいてセレクタＳＥ１〜ＳＥｎ、ＳＥＯが切り替えられることにより、単位遅延素子Ｄ１１〜Ｄｍｎの段数が設定される。
【００５１】
そして、第１のデコーダ回路７Ａ´にて指定された段数分の単位遅延素子Ｄ１１〜Ｄｍｎをクロック信号ＣＬＫが通過することにより、クロック信号ＣＬＫの位相がシフトされる。そして、位相がシフトされたクロック信号ＣＬＫが出力信号ＯＵＴ１´として第１の出力回路１３Ａに出力される。
【００５２】
ここで、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対応した単位遅延素子の段数から第１のスレーブＤＬＬ回路１０Ａおよび第１の出力回路１３Ａのオフセット分に対応する単位遅延素子の段数を減算した値に基づいて、第１のスレーブＤＬＬ回路１０Ａの段数を設定させることにより、それらのオフセット分を第１のスレーブＤＬＬ回路１０Ａ自体に補償させることができる。このため、それらオフセット分を補償するためのオフセット補正回路および第１のスキュー調整レプリカ１４Ａをクロック信号ＣＫＰ、ＣＫＮの出力経路に設ける必要がなくなり、ジッタの増大を抑制することができる。
【００５３】
なお、図６の実施形態では、図１のコマンド／アドレスブロック１および第１のデコーダ回路７Ａに適用した場合を例にとったが、図１のライトデータブロック３、リードデータブロック４および第２のデコーダ回路７Ｂ、第３のデコーダ回路７Ｃにも同様に適用することができる。
【００５４】
（第３実施形態）
図７は、第３実施形態に係るインターフェース回路に適用されるコマンド／アドレスブロックの概略構成を示すブロック図である。
図７において、このインターフェース回路には、図６のコマンド／アドレスブロック１´および第１のデコーダ回路７Ａ´の代わりにコマンド／アドレスブロック１´´および第１のデコーダ回路７Ａ´´が設けられている。
【００５５】
ここで、コマンド／アドレスブロック１´´は、オフセット補正回路１７Ａおよびセレクタ１８Ａが追加される以外はコマンド／アドレスブロック１´と同様に構成することができる。第１のデコーダ回路７Ａ´´は、バイパス信号ＢＰＳに従って、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対して第１のスレーブＤＬＬ回路１０Ａのオフセット分および第１の出力回路１３Ａのオフセット分が補償された単位遅延素子の段数を第１のスレーブＤＬＬ回路１０Ａに設定させたり、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対して第１のスレーブＤＬＬ回路１０Ａのオフセット分が補償されてない単位遅延素子の段数を第１のスレーブＤＬＬ回路１０Ａに設定させたりすることができる。ここで、第１のデコーダ回路７Ａ´´には、第１のスレーブＤＬＬ回路１０Ａの位相シフト量として第１の位相シフト量設定信号Ｇｅａｒａを与え、第１のスレーブＤＬＬ回路１０Ａおよび第１の出力回路１３Ａのオフセット分として第１のオフセット信号ＯＦＡ´を与えることができる。また、第１のデコーダ回路７Ａ´´には、第１のスレーブＤＬＬ回路１０Ａのオフセット分が補償されないように単位遅延素子の段数を設定させるバイパス信号ＢＰＳを与えることができる。
【００５６】
オフセット補正回路１７Ａは、第１のスレーブＤＬＬ回路１０Ａのオフセット分を補正することができる。このオフセット補正回路１７Ａは、図２のオフセット発生部ＲＢの遅延量を発生させるように構成することができる。
【００５７】
そして、バイパス信号ＢＰＳがオンの場合は、セレクタ１８Ａにおいて、オフセット補正回路１７Ａをバイパスさせたクロック信号ＣＬＫが選択される。そして、図６の構成と同様に動作が行われる。
【００５８】
一方、バイパス信号ＢＰＳがオフの場合は、オフセット補正回路１７Ａを通過したクロック信号ＣＬＫが選択される。また、第１のデコーダ回路７Ａ´´において、第１のスレーブＤＬＬ回路１０Ａの位相シフト量に対応する単位遅延素子Ｄ１１〜Ｄｍｎの段数に基づいて、第１のスレーブＤＬＬ回路１０Ａにおける単位遅延素子Ｄ１１〜Ｄｍｎのロウ選択およびカラム選択を行わせる出力信号ＩＮ１´´が生成され、第１のスレーブＤＬＬ回路１０Ａに出力される。
【００５９】
そして、第１のスレーブＤＬＬ回路１０Ａにおいて、第１のデコーダ回路７Ａ´´からの出力信号ＩＮ１´´に基づいてセレクタＳＥ１〜ＳＥｎ、ＳＥＯが切り替えられることにより、単位遅延素子Ｄ１１〜Ｄｍｎの段数が設定される。
【００６０】
そして、第１のデコーダ回路７Ａ´´にて指定された段数分の単位遅延素子Ｄ１１〜Ｄｍｎをクロック信号ＣＬＫが通過することにより、クロック信号ＣＬＫの位相がシフトされる。そして、位相がシフトされたクロック信号ＣＬＫが出力信号ＯＵＴ１´´として第１の出力回路１３Ａに出力される。
【００６１】
一方、クロック信号ＣＬＫは、第１のスレーブＤＬＬ回路１０Ａのオフセット分がオフセット補正回路１７Ａにて補正された後、ＩＯドライバ１２Ａに出力される。そして、ＩＯドライバ１２Ａから出力されたクロック信号ＣＬＫは、ＩＯドライバ１２Ａを介してクロック信号ＣＫＰ、ＣＫＮとして出力される。
【００６２】
ここで、第１のスレーブＤＬＬ回路１０Ａのオフセット分を第１のスレーブＤＬＬ回路１０Ａ自体に補正させる方法とオフセット補正回路１７Ａにて補正させる方法とを切り替えられるようにすることで、第１のスレーブＤＬＬ回路１０Ａのオフセット分を第１のスレーブＤＬＬ回路１０Ａ自体に補正させる時に動作範囲が狭くなる場合においても、その狭くなった動作範囲についても機能検証を行うことができる。
【００６３】
なお、図７の実施形態では、図１のコマンド／アドレスブロック１および第１のデコーダ回路７Ａに適用した場合を例にとったが、図１のライトデータブロック３、リードデータブロック４および第２のデコーダ回路７Ｂ、第３のデコーダ回路７Ｃにも同様に適用することができる。
【００６４】
（第４実施形態）
図８は、第４実施形態に係るインターフェース回路に適用されるオフセット信号生成部の概略構成を示すブロック図である。なお、図８の実施形態では、オフセット信号生成部が図１のコマンド／アドレスブロック１に適用される場合を示す。
図８において、このインターフェース回路には、オフセット信号生成部４０が設けられている。オフセット信号生成部４０には、オフセット補正回路４１、模擬スレーブＤＬＬ回路４２、テスト回路４３、位相比較器４４、セレクタＳＬＡおよびバッファＢ１１、Ｂ１２が設けられている。
【００６５】
オフセット信号生成部４０は、第１のスレーブＤＬＬ回路１０Ａの遅延動作を模擬することにより、第１のオフセット信号ＯＦＡを指定することができる。オフセット補正回路４１は、図１の第１のスレーブＤＬＬ回路１０Ａのオフセット分に対応した遅延量を発生することができる。模擬スレーブＤＬＬ回路４２は、図１の第１のスレーブＤＬＬ回路１０Ａと同様に構成することができる。テスト回路４３は、位相比較器４４による比較結果に基づいて模擬スレーブＤＬＬ回路４２の単位遅延素子の段数をスイープさせることができる。位相比較器４４は、オフセット補正回路４１の出力と模擬スレーブＤＬＬ回路４２の出力とを比較することができる。バッファＢ１１、Ｂ１２の駆動力は、オフセット補正回路４１および模擬スレーブＤＬＬ回路４２の出力負荷が、コマンド／アドレスブロック１側でオフセット補正回路が用いられた時の出力負荷と一致するように設定することができる。
【００６６】
図９は、図８のオフセット信号生成部の動作を示すフローチャートである。
図９において、テスト信号ＴＥＳがハイになると（Ｓ１）、セレクタＳＬＡにて選択されたクロック信号ＣＬＫがオフセット補正回路４１および模擬スレーブＤＬＬ回路４２に入力される。そして、テスト回路４３にて模擬スレーブＤＬＬ回路４２の単位遅延素子の段数がインクリメントされ（Ｓ２）、オフセット補正回路４１の出力と模擬スレーブＤＬＬ回路４２の出力とが位相比較器４４にて比較される。そして、テスト回路４３において、位相比較器４４の出力がハイレベルになったかどうか判断され（Ｓ３）、位相比較器４４の出力がハイレベルになってない場合は、位相比較器４４の出力がハイレベルになるまで、模擬スレーブＤＬＬ回路４２の単位遅延素子の段数のインクリメントを繰り返す。そして、位相比較器４４の出力がハイレベルになると、その模擬スレーブＤＬＬ回路４２の単位遅延素子の段数に基づいて第１のオフセット信号ＯＦＡを生成し、第１のデコーダ回路７Ａに出力する（Ｓ４）。その後、テスト信号ＴＥＳはロウになると（Ｓ５）、セレクタＳＬＡにて選択されたグランド電位がオフセット補正回路４１および模擬スレーブＤＬＬ回路４２に入力され、オフセット補正回路４１および模擬スレーブＤＬＬ回路４２の動作が停止される。
【００６７】
ここで、オフセット信号生成部４０にて第１のオフセット信号ＯＦＡを生成することにより、個々のチップごとに第１のオフセット信号ＯＦＡを最適化することができ、第１のスレーブＤＬＬ回路１０Ａの実際の動作条件や特性バラツキを第１のオフセット信号ＯＦＡに反映させることができる。
【００６８】
なお、図８の実施形態では、図１のコマンド／アドレスブロック１および第１のデコーダ回路７Ａに適用した場合を例にとったが、図１のライトデータブロック３、リードデータブロック４および第２のデコーダ回路７Ｂ、第３のデコーダ回路７Ｃにも同様に適用することができる。
【００６９】
（第５実施形態）
図１０は、第５実施形態に係るインターフェース回路に適用されるデコーダ回路の概略構成を示すブロック図である。
図１０において、このインターフェース回路には、図１の第１のデコーダ回路７Ａの代わりに第１のデコーダ回路７Ａ´´´、セレクタＳＬＣおよびインバータＩＶが設けられている。
【００７０】
ここで、第１のデコーダ回路７Ａ´´´は、セレクタＳＬＢ、加算ブロック５１および比較ブロック５２が追加される以外は図１の第１のデコーダ回路７Ａと同様に構成することができる。加算ブロック５１は、第１のスレーブＤＬＬ回路１０Ａの出力を１８０°分だけシフトさせる単位遅延素子の段数を減算ブロック３２に出力に加算することができる。なお、遅延段数信号ＳＴＧが、１周期分の遅延を与えるための単位遅延素子の段数に対応する場合、第１のスレーブＤＬＬ回路１０Ａの出力を１８０°分だけシフトさせる単位遅延素子の段数は、（ＳＴＧ）／２という式で求めることができる。比較ブロック５２は、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子の段数からオフセット分に対応した単位遅延素子の段数を減算した段数が０より小さいかどうかを判断することができる。
【００７１】
そして、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子の段数からオフセット分に対応した単位遅延素子の段数を減算した段数が０以上の場合、図１の第１のデコーダ回路７Ａと同様に動作される。
【００７２】
一方、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子の段数からオフセット分に対応した単位遅延素子の段数を減算した段数が０より小さい場合、セレクタＳＬＢにて加算ブロック５１側の出力が選択されるとともに、セレクタＳＬＣにてインバータＩＶ側の出力が選択される。そして、加算ブロック５１において、第１のスレーブＤＬＬ回路１０Ａの出力を１８０°分だけシフトさせる単位遅延素子の段数が減算ブロック３２に出力に加算され、デコードブロック３３に出力される。そして、デコードブロック３３において、加算ブロック５１にて算出された段数から、図２の単位遅延素子Ｄ１１〜Ｄｍｎのロウ選択およびカラム選択を行わせる出力信号ＩＮ１´´´が生成され、フリップフロップ３４を介して第１のスレーブＤＬＬ回路１０Ａに出力される。そして、第１のスレーブＤＬＬ回路１０Ａの出力がインバータＩＶにて反転されることにより、出力信号ＩＮ１´´´が与えられる時の第１のスレーブＤＬＬ回路１０Ａの出力の位相が３６０°だけシフトされる。
【００７３】
これにより、第１のスレーブＤＬＬ回路１０Ａの単位遅延素子の段数を追加することなく、第１のスレーブＤＬＬ回路１０Ａの出力の位相を３６０°だけシフトさせることができる。このため、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子の段数からオフセット分に対応した単位遅延素子の段数を減算した段数が０より小さい場合においても、コマンド／アドレス信号ＣＡ［Ｙ：０］に対してクロック信号ＣＬＫの位相を設定させることができ、動作範囲が狭まるのを防止することができる。
【００７４】
なお、図１０の実施形態では、図１のコマンド／アドレスブロック１および第１のデコーダ回路７Ａに適用した場合を例にとったが、図１のライトデータブロック３、リードデータブロック４および第２のデコーダ回路７Ｂ、第３のデコーダ回路７Ｃにも同様に適用することができる。
【００７５】
また、図１０の実施形態では、第１のスレーブＤＬＬ回路１０Ａにおける位相シフト量に対応した単位遅延素子の段数からオフセット分に対応した単位遅延素子の段数を減算した段数が０より小さい場合、図１の出力信号ＩＮ１が与えられた時の第１のスレーブＤＬＬ回路１０Ａの出力の位相を１８０°だけシフトさせる出力信号ＩＮ１´´´を生成し、さらに出力信号ＩＮ１´´´が与えられた時の第１のスレーブＤＬＬ回路１０Ａの出力を反転させることにより、第１のスレーブＤＬＬ回路１０Ａの出力の位相を３６０°だけシフトさせる方法について説明したが、第１のスレーブＤＬＬ回路１０Ａの出力の位相が３６０°だけシフトさせるように単位遅延素子の段数を追加してもよい。
【００７６】
（第６実施形態）
図１１は、第６実施形態に係るインターフェース回路の概略構成を示すブロック図である。
【００７７】
図１１において、このインターフェース回路には、図１のコマンド／アドレスブロック１の代わりにコマンド／アドレスブロック１Ａが設けられている。コマンド／アドレスブロック１Ａは、クロック信号ＣＬＫに従ってコマンド／アドレス信号ＣＡ［Ｙ：０］を出力することができる。なお、このコマンド／アドレスブロック１Ａは、例えば、シングルデータレート（ＳＤＲ）で動作するＤＤＲ２／３およびＬＰＤＤＲに適用することができる。
【００７８】
コマンド／アドレスブロック１Ａには、フリップフロップ回路８Ａ´および第１のスキュー調整レプリカ１４Ａ´が設けられている。フリップフロップ回路８Ａ´は、クロック信号ＣＬＫに従ってコマンド／アドレスデータＷＣを取り込むことができる。第１のスキュー調整レプリカ１４Ａ´は、フリップフロップ回路８Ａ´による遅延量が補償されるようにクロック信号ＣＬＫの遅延量を調整することができる。
【００７９】
また、このインターフェース回路には、図１のフリップフロップ回路１５Ａ、１６Ａの代わりにフリップフロップ回路１５Ａ´が設けられている。
【００８０】
そして、コマンド／アドレスデータＷＣは、クロック信号ＣＬＫに従ってフリップフロップ回路１５Ａ´に取り込まれる。また、クロック信号ＣＬＫは、第１のスキュー調整レプリカ１４Ａ´において、フリップフロップ回路８Ａ´による遅延量が補償された後、フリップフロップ回路８Ａ´に出力される。そして、フリップフロップ回路１５Ａ´に取り込まれたコマンド／アドレスデータＷＣは、第１のスキュー調整レプリカ１４Ａ´にて補償されたクロック信号ＣＬＫに従ってフリップフロップ回路８Ａ´に取り込まれ、コマンド／アドレス信号ＣＡ［Ｙ：０］としてＩＯドライバ１１Ａに出力される。また、第１のスキュー調整レプリカ１４Ａにて補償されたクロック信号ＣＬＫは、ＩＯドライバ１２Ａを介してクロック信号ＣＫＰ、ＣＫＮとして出力される。
【００８１】
図１２は、図１１のインターフェース回路のコマンド／アドレスブロックの信号波形を示すタイミングチャートである。
図１のコマンド／アドレスブロック１は、ＤＤＲ動作するため、図４に示すように、データストローブ信号ＤＱＳＰの立ち上がりエッジおよび立ち下がりエッジに同期してコマンド／アドレス信号ＣＡ［Ｙ：０］が出力される。
一方、図１２において、図１１のコマンド／アドレスブロック１Ａは、ＳＤＲ動作するため、データストローブ信号ＤＱＳＰの立ち上がりエッジに同期してコマンド／アドレス信号ＣＡ［Ｙ：０］が出力される。
【００８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８３】
１、１´、１´´、１Ａ  コマンド／アドレスブロック、２  データブロック、３  ライトデータブロック、４  リードデータブロック、５  ＰＬＬ回路、６  マスタＤＬＬ回路、７Ａ〜７Ｃ、７Ａ´、７Ａ´´  デコーダ回路、８Ａ〜８Ｃ、８Ａ´、９Ａ〜９Ｃ、１５Ａ、１５Ａ´、１５Ｂ、１６Ａ、１６Ｂ  フリップフロップ回路、１０Ａ〜１０Ｃ、４２  スレーブＤＬＬ回路、１１Ａ、１１Ｂ、１２Ａ、１２Ｂ  ＩＯドライバ、１１Ｃ、１２Ｃ  ＩＯレシーバ、１３Ａ、１３Ｂ  出力回路、１３Ｃ  ＦＩＦＯ、１４Ａ、１４Ａ´、１４Ｂ  スキュー調整レプリカ、ＳＥＩ、ＳＥＯ、ＳＥ１〜ＳＥｎ、１８Ａ、ＳＬＡ〜ＳＬＣ  セレクタ、Ｂ１、Ｂ２、Ｂ１１、Ｂ１２  バッファ、２１、２２  制御回路、Ｄ１１〜Ｄｍｎ  単位遅延素子、３１  演算ブロック、３２  減算ブロック、３３  デコードブロック、３４  フリップフロップ、４０  オフセット信号生成部、１７Ａ、４１  オフセット補正回路、４３  テスト回路、４４  位相比較器、５１  加算ブロック、５２  比較ブロック、ＩＶ  インバータ
【図１】
2013149007.tif 000003
【図２】
2013149007.tif 000004
【図３】
2013149007.tif 000005
【図４】
2013149007.tif 000006
【図５】
2013149007.tif 000007
【図６】
2013149007.tif 000008
【図７】
2013149007.tif 000009
【図８】
2013149007.tif 000010
【図９】
2013149007.tif 000011
【図１０】
2013149007.tif 000012
【図１１】
2013149007.tif 000013
【図１２】
2013149007.tif 000014