(58)【調査した分野】(Int.Cl.,DB名)
メモリをアクセスする制御装置に含まれ、前記メモリに対するアクセスを制御するメモリコントローラの指示にしたがってクロック信号とデータとストローブ信号を出力するインタフェース回路であって、
複数ビットの入力信号を1ビットのデータに変換する並直列変換回路を含み、
前記並直列変換回路は、
前記複数ビットの入力信号が入力され、各ビットの出力タイミングを調整した複数ビットの出力信号を出力する調整回路と、
前記メモリが前記クロック信号と前記ストローブ信号に応じて出力するスキュー情報に応じて前記メモリコントローラが設定する位相情報および、基準クロック信号に基づいて、前記基準クロック信号に対する位相が互いに異なる複数のクロック信号を生成し、前記複数のクロック信号に応じて前記複数ビットの出力信号を順次選択して、前記1ビットの出力信号に並直列変換する変換回路と、
位相情報に従って第1の制御信号と第2の制御信号を生成する制御回路と、
を有し、
前記調整回路は、前記第1の制御信号に基づいて、前記各ビットの出力タイミングを、前記基準クロック信号の半周期の単位で調整し、
前記変換回路は、前記複数のクロック信号のうちの1つのクロック信号の前記基準クロック信号に対する位相差を前記第2の制御信号に基づいて制御し、前記複数のクロック信号のうちの他のクロック信号の前記1つのクロック信号に対する位相差を所定の位相差に制御すること、
を特徴とするインタフェース回路。
【発明を実施するための形態】
【0008】
(第一実施形態)
以下、第一実施形態を説明する。
図1に示すように、システムは、制御装置11と、制御装置11によってアクセスされるメモリ装置12とを有している。制御装置11は、例えば1つのチップ(半導体集積回路装置:LSI)である。メモリ装置12は、同期式の半導体記憶装置、例えばDDR3−SDRAM(Double Data Rate 3 Synchronous Dynamic Random Access Memory)である。
【0009】
制御装置11は、コア回路21,メモリコントローラ22,インタフェース回路23を有している。
コア回路21は、例えば中央処理装置(Central Processing Unit:CPU)である。コア回路21は、実行する処理に応じて、メモリ装置12のデータを読み込むためのリード要求と、そのデータが格納されたアドレスとをメモリコントローラ22に出力する。また、コア回路21は、メモリ装置12にデータを書き込むためのライト要求と、そのデータを格納するアドレスとをメモリコントローラ22に出力する。
【0010】
メモリコントローラ22は、当該メモリコントローラ22の内部クロック信号CLKをインタフェース回路23に出力する。インタフェース回路23は、内部クロック信号CLKに基づいて動作する。インタフェース回路23は、データの転送に応じた相補のクロック信号CK,XCKを出力する。
【0011】
また、メモリコントローラ22は、コア回路21からの要求に応じて、インタフェース回路23を介してメモリ装置12にアクセスする。
例えば、コア回路21からの要求がライト要求の場合、メモリコントローラ22は、ライトコマンド、アドレス、データDQを出力する。インタフェース回路23は、コマンドCMD、アドレス、データストローブ信号DQS、及びデータDQを出力する。メモリ装置12は、クロック信号CK,XCKとデータストローブ信号DQSに基づいてデータDQを受け取り、コマンドCMDに基づいて、アドレスに応じた領域にデータDQを記憶する。
【0012】
コア回路21からの要求がリード要求の場合、メモリコントローラ22は、インタフェース回路23を介してコマンドCMD(ここでは、リードコマンド)及びアドレスをメモリ装置12に供給する。メモリ装置12は、リードコマンドに応答し、データストローブ信号(ストローブ信号)DQSを出力し、データストローブ信号DQSの遷移タイミングに同期してアドレスに応じた領域から読み出したデータDQを出力する。インタフェース回路23は、データストローブ信号DQSに基づいてデータDQを受け取り、データDQを出力する。メモリコントローラ22は、データDQを受け取り、そのデータDQに応じたデータを出力する。
【0013】
メモリコントローラ22は、所定のタイミングで、データストローブ信号DQSとデータDQのタイミングを調整するトレーニング動作を行う。所定のタイミングは、例えば、電源投入後に実行される初期化処理のとき、パワーオンリセット信号が入力されてから一定期間の後、等のように、コア回路21がメモリ装置12をアクセスしない期間である。
【0014】
メモリ装置12は、内部クロック信号CLKとデータストローブ信号DQSの間のスキュー情報を出力する。メモリコントローラ22は、スキュー情報に基づいて、インタフェース回路23から出力されるデータストローブ信号DQS,データDQ,コマンドCMD,クロック信号CK,XCKがメモリ装置12に到達するタイミングを調整する。例えば、メモリコントローラ22は、スキュー情報に基づいて生成した位相情報をインタフェース回路23に出力する。インタフェース回路23は、位相情報に応じたタイミングでデータストローブ信号DQS,データDQを出力する。メモリコントローラ22は、メモリ装置12のスキュー情報に基づいて、データストローブ信号DQS,データDQとコマンドCMD,クロック信号CK,XCKが同時にメモリ装置12に到達するように設定した位相情報をインタフェース回路23に出力する。インタフェース回路23は、位相情報に応じたタイミングでデータストローブ信号DQS,データDQを出力する。
【0015】
図2に示すように、メモリコントローラ22は、データIDQ0[0:3]〜IDQ3[0:3]を出力する。
図2において、メモリコントローラ22とインタフェース回路23の間のデータDQと、インタフェース回路23から出力されるデータDQとを区別するため、メモリコントローラ22とインタフェース回路23の間のデータをIDQとした。なお、[0:3]はデータのビットを示す。各データIDQ0[0:3]〜IDQ3[0:3]は4ビットのパラレルデータである。インタフェース回路23は、4ビットのデータIDQ0[0:3]を1ビットのデータDQ0に変換する。同様に、インタフェース回路23は、各データIDQ1[0:3]〜IDQ3[0:3]をデータDQ1〜DQ3に変換する。
【0016】
インタフェース回路23は、各データIDQ0[0:3]〜IDQ3[0:3]に対応する4つのパラレル−シリアル(並直列)変換回路310〜313と、4つの出力バッファ320〜323を有している。
【0017】
パラレル−シリアル変換回路310は、4ビットのデータIDQ0[0:3]を1ビットのデータSD0に変換する。出力バッファ320は、データSD0に基づいてデータDQ0を出力する。同様に、各パラレル−シリアル変換回路311〜313は、各データIDQ1〜IDQ3をデータSD1〜SD3に変換する。出力バッファ321〜323は、データSD1〜SD3に基づいてデータDQ1〜DQ3を出力する。
【0018】
パラレル−シリアル変換回路310は、制御コード生成回路400,タイミング調整回路410,変換回路420を有している。制御コード生成回路400,タイミング調整回路410,変換回路420は、位相同期ループ回路(PLL回路)24により生成されたクロック信号CK1に基づいて動作する。このクロック信号CK1の周波数は、上記のメモリコントローラ22が出力する内部クロック信号CLKの周波数と等しい。メモリコントローラ22は、内部クロック信号CLKに同期してデータIDQ0[0:3]〜IDQ3[0:3]を出力する。パラレル−シリアル変換回路310は、クロック信号CK1に同期してデータIDQ0[0:3]をデータSD0に変換する。
【0019】
制御コード生成回路400は、位相情報PI0に基づいて、タイミング調整回路410に対する制御信号CS0と、変換回路420に対する制御信号CI0を生成する。制御コード生成回路400は制御回路の一例である。
【0020】
タイミング調整回路410は、制御信号CS0にしたがって、データIDQ0[0:3]の各ビットデータに対する遅延時間を、クロック信号CK1の2分の1周期(T/2)単位で制御する。そして、タイミング調整回路410は、その制御した遅延時間によってデータIDQ0[0:3]の各ビットデータを遅延した遅延データDDQ0「0:3」を出力する。
【0021】
変換回路420は、制御信号CI0にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号を生成する。基準となるクロック信号CK1と、生成した複数のクロック信号の位相差は、上記の位相情報PI0に対応する。変換回路420は、生成した複数のクロック信号に基づいて、タイミング調整回路410から出力される4ビットの遅延データDDQ0[0:3]を1ビットのデータSD0に変換する。つまり、変換回路420は、パラレル−シリアル変換と位相制御を行う。そして、変換回路420は、データSD0を出力する。
【0022】
同様に、パラレル−シリアル変換回路311は、制御コード生成回路401,タイミング調整回路411,変換回路421を有している。制御コード生成回路401は、位相情報PI1に基づいて、タイミング調整回路411に対する制御信号CS1と、変換回路421に対する制御信号CI1を生成する。タイミング調整回路411は、制御信号CS1にしたがって、データIDQ1[0:3]に応じた遅延データDDQ1「0:3」を出力する。変換回路421は、制御信号CI1にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号に基づいて、タイミング調整回路411から出力される遅延データDDQ1[0:3]を1ビットのデータSD1に変換する。
【0023】
また、パラレル−シリアル変換回路312は、制御コード生成回路402,タイミング調整回路412,変換回路422を有している。制御コード生成回路402は、位相情報PI2に基づいて、タイミング調整回路412に対する制御信号CS2と、変換回路422に対する制御信号CI2を生成する。タイミング調整回路412は、制御信号CS2にしたがって、データIDQ2[0:3]に応じた遅延データDDQ2「0:3」を出力する。変換回路422は、制御信号CI2にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号に基づいて、タイミング調整回路412から出力される遅延データDDQ2[0:3]を1ビットのデータSD2に変換する。
【0024】
そして、パラレル−シリアル変換回路313は、制御コード生成回路403,タイミング調整回路413,変換回路423を有している。制御コード生成回路403は、位相情報PI3に基づいて、タイミング調整回路413に対する制御信号CS3と、変換回路423に対する制御信号CI3を生成する。タイミング調整回路413は、制御信号CS3にしたがって、データIDQ3[0:3]に応じた遅延データDDQ3「0:3」を出力する。変換回路423は、制御信号CI3にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号に基づいて、タイミング調整回路413から出力される遅延データDDQ3[0:3]を1ビットのデータSD3に変換する。
【0025】
次に、パラレル−シリアル変換回路310に含まれるタイミング調整回路410,変換回路420,制御コード生成回路400を説明する。なお、パラレル−シリアル変換回路311〜313は、パラレル−シリアル変換回路310と同じであるため、図面及び説明を省略する。
【0026】
図3に示すように、タイミング調整回路410は、ラッチ回路500、遅延調整回路501を有している。なお、
図3において、
図2に示すデータIDQ0[0:3]をデータD0〜D3とする。つまり、1ビットのデータIDQ0[0]をデータD0とする。同様に、データIDQ0[1]〜IDQ0[3]をデータD1〜D3とする。また、
図3において、
図2に示す遅延データDDQ0[0:3]を遅延データDD0〜DD3とする。つまり、1ビットの遅延データDDQ0[0]を遅延データDD0とする。同様に、遅延データDDQ0[1]〜DDQ0[3]を遅延データDD1〜DD3とする。
【0027】
ラッチ回路500は、データD0〜D3に対応する4つのフリップフロップ回路510〜513を有している。フリップフロップ回路510〜513の入力端子(データ端子)には、データD0〜D3が供給される。なお、各フリップフロップ回路510〜513のクロック端子にはクロック信号CK1が供給される。フリップフロップ回路510〜513は、例えばHレベルのクロック信号CK1に応答してデータD0〜D3をそれぞれラッチし、ラッチしたレベルと等しいデータD0a〜D3aを出力する。
【0028】
遅延調整回路501は、フリップフロップ回路520〜523,530〜533、選択回路SA0〜SA3,SB0〜SB3,インバータ回路54を有している。
図2に示す制御コード生成回路400から出力される制御信号CS0は、選択回路SA0〜SA3,SB0〜SB3に対する制御信号を含む。必要に応じて、対応を判り易くするため、選択回路SA0〜SA3,SB0〜SB3それぞれに対する制御信号を同じ符号を用いて説明する。
【0029】
インバータ回路54は、クロック信号CK1のレベルを論理反転したレベルの反転クロック信号xCK1を出力する。クロック信号CK1はフリップフロップ回路520〜523のクロック端子に供給される。反転クロック信号xCK1はフリップフロップ回路530〜533のクロック端子に供給される。
【0030】
データD0a〜D3aはフリップフロップ回路520〜523のデータ端子と選択回路SA0〜SA3の第1端子に供給される。フリップフロップ回路520〜523は、例えばHレベルのクロック信号CK1に応答してデータD0a〜D3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。フリップフロップ回路520〜523の出力信号は選択回路SA0〜SA3の第2端子に供給される。選択回路SA0〜SA3は、制御信号SA0〜SA3に応じた第1端子または第2端子を選択する。選択回路SA0〜SA3は例えば、Lレベル(倫理値「0」)の制御信号SA0〜SA3に応答して第1端子を選択し、Hレベル(論理値「1」)の制御信号SA0〜SA3に応答して第2端子を選択する。各選択回路SA0〜SA3は、選択した端子に供給される信号と等しい信号S0a〜S3aを出力する。
【0031】
選択回路SA0〜SA3の出力信号S0aはフリップフロップ回路530〜533のデータ端子と選択回路SB0〜SB3の第1端子に供給される。フリップフロップ回路530〜533は、例えばHレベルの反転クロック信号xCK1に応答して信号S0a〜S3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。フリップフロップ回路530〜533の出力信号は選択回路SB0〜SB3の第2端子に供給される。選択回路SB0〜SB3は、制御信号SB0〜SB3に応じた第1端子または第2端子を選択する。選択回路SB0〜SB3は例えば、Lレベル(倫理値「0」)の制御信号SB0〜SB3に応答して第1端子を選択し、Hレベル(論理値「1」)の制御信号SB0〜SB3に応答して第2端子を選択する。各選択回路SB0〜SB3は、選択した端子に供給される信号と等しい信号DD0〜DD3を出力する。
【0032】
変換回路420は、2つの遅延同期ループ回路(DLL回路)601,602、選択回路610を含む。遅延同期ループ回路601にはクロック信号CK1と制御信号CI0が供給される。遅延同期ループ回路601は、制御信号CI0に応じてクロック信号CK1を遅延したクロック信号CK2aを生成する。したがって、クロック信号CK2aの周期は、クロック信号CK1の周期と等しい。遅延同期ループ回路601は、クロック信号CK1に対するクロック信号CK2aの位相差を、制御信号CI0に応じて制御する。遅延同期ループ回路601は、クロック信号CK1に対するクロック信号CK2aを所定の範囲(例えば、45度(deg.)〜405度(deg.))で制御可能である。
【0033】
クロック信号CK2aは遅延同期ループ回路602と選択回路610に供給される。遅延同期ループ回路602は、クロック信号CK2aを遅延してクロック信号CK2bを生成する。したがって、クロック信号CK2bの周期は、クロック信号CK2aの周期と等しい。クロック信号CK2aに対するクロック信号CK2bの位相差は、所定の位相差(例えば90度(deg.))である。クロック信号CK2bは選択回路610に供給される。
【0034】
選択回路610は、4つの入力端子n0〜n3を有している。入力端子n0〜n3には信号DD0〜DD3が供給される。
図5に示すように、選択回路610は、クロック信号CK2a,CK2bの論理レベルにしたがって4つの入力端子n0〜n3のうちの1つを選択する。選択回路610は、選択した端子に供給される信号と等しい信号、つまり1ビットのデータSD0を出力する。
【0035】
次に、上記のパラレル−シリアル変換回路310の作用を説明する。
図3に示すように、ラッチ回路500のフリップフロップ回路510〜513は、クロック信号CK1に応答してデータD0〜D3をラッチし、ラッチしたレベルと等しいレベルの信号D0a〜D3aを出力する。そして、遅延調整回路501のフリップフロップ回路520〜523は、クロック信号CK1に応答してデータD0a〜D3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。したがって、フリップフロップ回路520〜523は、データD0a〜D3aに対して、クロック信号CK1の1周期分遅れて信号を出力する。選択回路SA0〜SA3は、論理値「0」の制御信号に応答して第1端子に供給される信号と等しい信号S0a〜S3aを出力し、論理値「1」の制御信号に応答して第2端子に供給される信号と等しい信号S0a〜S3aを出力する。
【0036】
遅延調整回路501のフリップフロップ回路530〜533は、反転クロック信号xCK1に応答して信号S0a〜S3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。したがって、フリップフロップ回路530〜533は、信号S0a〜S3aに対して、クロック信号CK1の半周期分遅れて信号を出力する。選択回路SB0〜SB3は、論理値「0」の制御信号に応答して第1端子に供給される信号と等しい信号DD0〜DD3を出力し、論理値「1」の制御信号に応答して第2端子に供給される信号と等しい信号DD0〜DD3を出力する。
【0037】
上記したように、
図2に示す制御コード生成回路400は、位相情報PI0に応じて、
図3に示す選択回路SA0〜SA3,SB0〜SB3に対する制御信号CS0(制御信号SA0〜SA3,SB0〜SB3)を生成する。制御信号CS0は、クロック信号CK1に対する位相差に対応する。また、制御コード生成回路400は、位相情報PI0に応じて、
図3に示す遅延同期ループ回路601に対する制御信号CI0を生成する。
【0038】
図5は、所望の位相に対して、遅延同期ループ回路601における位相調整範囲と、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値の一例を示す。
例えば、データSD0(DQ0)に対する所望の位相が「45deg.〜135deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「45deg.〜135deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「0,0,0,0」,「0,0,1,1」である。
【0039】
選択回路SA0は、論理値「0」の制御信号に応答して、フリップフロップ回路520をバイパスした信号、つまりデータD0aと等しいタイミングの信号S0aを出力する。選択回路SB0は、論理値「0」の制御信号に応答して、フリップフロップ回路520をバイパスした信号、つまり信号S0aと等しいタイミングで信号DD0を出力する。これにより、
図6に示すように、選択回路610の端子n0に、クロック信号CK1に対して位相差0度にてデータD0が供給される。
【0040】
選択回路SA1は、論理値「0」の制御信号に応答して、フリップフロップ回路521をバイパスした信号、つまりデータD1aと等しいタイミングの信号S1aを出力する。選択回路SB1は、論理値「0」の制御信号に応答して、フリップフロップ回路521をバイパスした信号、つまり信号S1aと等しいタイミングで信号DD1を出力する。これにより、
図6に示すように、選択回路610の端子n1に、クロック信号CK1に対して位相差0度にてデータD1が供給される。
【0041】
選択回路SA2は、論理値「0」の制御信号に応答して、フリップフロップ回路522をバイパスした信号、つまりデータD2aと等しいタイミングの信号S2aを出力する。選択回路SB2は、論理値「1」の制御信号に応答して、フリップフロップ回路522によりラッチした信号、つまり信号S2aよりクロック信号CK1の半周期分遅れたタイミングで信号DD2を出力する。これにより、
図6に示すように、選択回路610の端子n2に、クロック信号CK1に対して位相差180度にてデータD2が供給される。
【0042】
選択回路SA3は、論理値「0」の制御信号に応答して、フリップフロップ回路523をバイパスした信号、つまりデータD3aと等しいタイミングの信号S3aを出力する。選択回路SB3は、論理値「1」の制御信号に応答して、フリップフロップ回路523によりラッチした信号、つまり信号S3aよりクロック信号CK1の半周期分遅れたタイミングで信号DD3を出力する。これにより、
図6に示すように、選択回路610の端子n3に、クロック信号CK1に対して位相差180度にてデータD3が供給される。
【0043】
図6において、クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。例えば、Hレベルのクロック信号CK2aとLレベルのクロック信号CK2bの期間、
図3に示す選択回路610の端子n0が選択され、その端子n0に供給される信号、つまりデータD0がデータSD0(DQ0)として出力される。また、Hレベルのクロック信号CK2aとHレベルのクロック信号CK2bの期間、
図3に示す選択回路610の端子n1が選択され、その端子n1に供給される信号、つまりデータD1がデータSD0(DQ0)として出力される。また、Lレベルのクロック信号CK2aとHレベルのクロック信号CK2bの期間、
図3に示す選択回路610の端子n2が選択され、その端子n2に供給される信号、つまりデータD2がデータSD0(DQ0)として出力される。そして、Lレベルのクロック信号CK2aとLレベルのクロック信号CK2bの期間、
図3に示す選択回路610の端子n3が選択され、その端子n3に供給される信号、つまりデータD3がデータSD0(DQ0)として出力される。
【0044】
図4に示すように、データSD0(DQ0)に対する所望の位相が「135deg.〜225deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「135deg.〜225deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「0,0,0,1」,「0,1,1,0」である。
【0045】
図7に示すように、選択回路610の端子n0に、クロック信号CK1に対して位相差0度にてデータD0が供給される。また、選択回路610の端子n1に、クロック信号CK1に対して位相差180度にてデータD1が供給される。また、選択回路610の端子n2に、クロック信号CK1に対して位相差180度にてデータD2が供給される。そして、選択回路610の端子n3に、クロック信号CK1に対して位相差270度にてデータD3が供給される。
【0046】
図7において、クロック信号CK1とクロック信号CK2aの位相差が135度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。
図6に示す場合と同様に、クロック信号CK2aとクロック信号CK2bの論理レベルにしたがって端子n0,n1,n2,n3が順次選択される。そして、各端子n0,n1,n2,n3に供給されるデータD0,D1,D2,D3がデータSD0(DQ0)として出力される。
【0047】
図4に示すように、データSD0(DQ0)に対する所望の位相が「225deg.〜315deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「225deg.〜315deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「0,0,1,1」,「1,1,0,0」である。
【0048】
図8に示すように、選択回路610の端子n0に、クロック信号CK1に対して位相差180度にてデータD0が供給される。また、選択回路610の端子n1に、クロック信号CK1に対して位相差180度にてデータD1が供給される。また、選択回路610の端子n2に、クロック信号CK1に対して位相差270度にてデータD2が供給される。そして、選択回路610の端子n3に、クロック信号CK1に対して位相差270度にてデータD3が供給される。
【0049】
図8において、クロック信号CK1とクロック信号CK2aの位相差が225度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。
図6,
図7に示す場合と同様に、クロック信号CK2aとクロック信号CK2bの論理レベルにしたがって端子n0,n1,n2,n3が順次選択される。そして、各端子n0,n1,n2,n3に供給されるデータD0,D1,D2,D3がデータSD0(DQ0)として出力される。
【0050】
図4に示すように、データSD0(DQ0)に対する所望の位相が「315deg.〜405deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「315deg.〜405deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「0,1,1,1」,「1,0,0,1」である。
【0051】
図9に示すように、選択回路610の端子n0に、クロック信号CK1に対して位相差180度にてデータD0が供給される。また、選択回路610の端子n1に、クロック信号CK1に対して位相差270度にてデータD1が供給される。また、選択回路610の端子n2に、クロック信号CK1に対して位相差270度にてデータD2が供給される。そして、選択回路610の端子n3に、クロック信号CK1に対して位相差360度にてデータD3が供給される。
【0052】
図9において、クロック信号CK1とクロック信号CK2aの位相差が315度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。
図6〜
図8に示す場合と同様に、クロック信号CK2aとクロック信号CK2bの論理レベルにしたがって端子n0,n1,n2,n3が順次選択される。そして、各端子n0,n1,n2,n3に供給されるデータD0,D1,D2,D3がデータSD0(DQ0)として出力される。
【0053】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1−1)パラレル−シリアル変換回路310は、制御コード生成回路400,タイミング調整回路410,変換回路420を有している。制御コード生成回路400は、位相情報PI0に基づいて、タイミング調整回路410に対する制御信号CS0と、変換回路420に対する制御信号CI0を生成する。タイミング調整回路410は、制御信号CS0にしたがって、データIDQ0[0:3]の各ビットデータに対する遅延時間を、クロック信号CK1の2分の1周期(T/2)単位で制御する。そして、タイミング調整回路410は、その制御した遅延時間によってデータIDQ0[0:3]の各ビットデータを遅延した遅延データDDQ0「0:3」を出力する。変換回路420は、制御信号CI0にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号を生成する。そして、変換回路420は、生成した複数のクロック信号に基づいて、タイミング調整回路410から出力される4ビットの遅延データDDQ0[0:3]を1ビットのデータSD0に変換する。変換回路420は、パラレル−シリアル変換と位相制御を行う。従って、変換により生成した1ビットのデータSD0を位相情報PI0に応じたタイミングで出力することができる。
【0054】
(1−2)遅延調整回路501のフリップフロップ回路520〜523は、クロック信号CK1に応答してデータD0a〜D3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。選択回路SA0〜SA3は、制御信号に応じて、フリップフロップ回路520〜523に供給されるデータD0a〜D3a、またはフリップフロップ回路520〜523の出力信号を選択し、選択した信号と等しい信号S0a〜S3aを出力する。
【0055】
フリップフロップ回路530〜533は、インバータ回路54によりクロック信号CK1を反転した反転クロック信号xCK1に応答して選択回路SB0〜SB3の出力信号S0a〜S3aをラッチし、ラッチしたレベルと等しい信号を出力する。選択回路SB0〜SB3は、制御信号に応じて、フリップフロップ回路530〜533に供給されるデータS0a〜S3a、またはフリップフロップ回路530〜533の出力信号を選択し、選択した信号と等しい信号DD0〜DD3を出力する。
【0056】
クロック信号CK1に対し、反転クロック信号xCK1の位相は、クロック信号CK1の周期の1/2遅れている。したがって、フリップフロップ回路530〜533が信号をラッチするタイミングは、フリップフロップ回路520〜523が信号をラッチするタイミングよりも、クロック信号CK1,xCK1の1/2周期遅れている。このため、データD0a〜D3aに対して、クロック信号CK1,xCK1の1/2周期の単位で遅れた信号を容易に生成することができる。
【0057】
(1−3)変換回路420の遅延同期ループ回路601は、制御信号CI0に応じてクロック信号CK1を遅延したクロック信号CK2aを生成する。遅延同期ループ回路602は、クロック信号CK2aを遅延し、クロック信号CK2aに対して所定の位相差(例えば90度(deg.))のクロック信号CK2bを生成する。選択回路610は、4つの入力端子n0〜n3を有している。入力端子n0〜n3には信号DD0〜DD3が供給される。選択回路610は、クロック信号CK2a,CK2bの論理レベルにしたがって4つの入力端子n0〜n3のうちの1つを選択し、その選択した端子に供給される信号と等しい信号、つまり1ビットのデータSD0を出力する。
【0058】
このように、所定の位相差のクロック信号CK2a,CK2bの論理レベルの組み合わせによって選択された信号DD0〜DD3、つまりデータD0〜D3が順次データSD0として出力される。このため、クロック信号CK1(CK2a,CK2b)より高周波のクロック信号を必要とせず、パラレル−シリアル変換を行うことができる。そして、基準となるクロック信号CK1に対するクロック信号CK2a,CK2bの位相を調整することで、データSD0の出力タイミングを容易に調整することができる。
【0059】
(第二実施形態)
以下、第二実施形態を説明する。
なお、第一実施形態と同じ部材については同じ符号を付し、それらに対する説明の全て又は一部を省略する。
【0060】
図10に示すように、制御装置13はメモリコントローラ22、インタフェース回路25を有している。メモリコントローラ22は、データIDQ0[0:3]〜IDQ3[0:3]を出力する。各データIDQ0[0:3]〜IDQ3[0:3]は4ビットのパラレルデータである。インタフェース回路25は、4ビットのデータIDQ0[0:3]を1ビットのデータDQ0に変換する。同様に、インタフェース回路25は、各データIDQ1〜IDQ3をデータDQ1〜DQ3に変換する。
【0061】
インタフェース回路25は、各データIDQ0[0:3]〜IDQ3[0:3]に対応する4つのパラレル−シリアル(並直列)変換回路330〜333と、4つの出力バッファ320〜323を有している。
【0062】
パラレル−シリアル変換回路330は、4ビットのデータIDQ0[0:3]を1ビットのデータSD0に変換する。出力バッファ320は、データSD0に基づいてデータDQ0を出力する。同様に、各パラレル−シリアル変換回路331〜333は、各データIDQ1〜IDQ3をデータSD1〜SD3に変換する。出力バッファ321〜323は、データSD1〜SD3に基づいてデータDQ1〜DQ3を出力する。
【0063】
パラレル−シリアル変換回路330は、制御コード生成回路440,タイミング調整回路450,変換回路420を有している。制御コード生成回路440,タイミング調整回路450,変換回路420は、位相同期ループ回路(PLL回路)24により生成されたクロック信号CK1に基づいて動作する。このクロック信号CK1の周波数は、上記のメモリコントローラ22が出力する内部クロック信号CLKの周波数と等しい。メモリコントローラ22は、内部クロック信号CLKに同期してデータIDQ0[0:3]〜IDQ3[0:3]を出力する。パラレル−シリアル変換回路330は、クロック信号CK1に同期してデータIDQ0[0:3]をデータSD0に変換する。
【0064】
制御コード生成回路440は、位相情報PI0に基づいて、タイミング調整回路450に対する制御信号CS10と、変換回路420に対する制御信号CI10を生成する。
タイミング調整回路450は、制御信号CS10にしたがって、データIDQ0[0:3]の各ビットデータに対する遅延時間を、クロック信号CK1の2分の1周期(T/2)単位で制御する。そして、タイミング調整回路450は、その制御した遅延時間によってデータIDQ0[0:3]の各ビットデータを遅延した遅延データDDQ0「0:3」を出力する。
【0065】
変換回路420は、制御信号CI10にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号を生成する。基準となるクロック信号CK1と、生成した複数のクロック信号の位相差は、上記の位相情報PI0に対応する。変換回路420は、生成した複数のクロック信号に基づいて、タイミング調整回路450から出力される4ビットの遅延データDDQ0[0:3]を1ビットのデータSD0に変換する。つまり、変換回路420は、パラレル−シリアル変換と位相制御を行う。そして、変換回路420は、データSD0を出力する。
【0066】
同様に、パラレル−シリアル変換回路331は、制御コード生成回路441,タイミング調整回路451,変換回路421を有している。制御コード生成回路441は、位相情報PI1に基づいて、タイミング調整回路451に対する制御信号CS11と、変換回路421に対する制御信号CI11を生成する。タイミング調整回路451は、制御信号CS11にしたがって、データIDQ1[0:3]に応じた遅延データDDQ1「0:3」を出力する。変換回路421は、制御信号CI11にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号に基づいて、タイミング調整回路451から出力される遅延データDDQ1[0:3]を1ビットのデータSD1に変換する。
【0067】
また、パラレル−シリアル変換回路332は、制御コード生成回路442,タイミング調整回路452,変換回路422を有している。制御コード生成回路442は、位相情報PI2に基づいて、タイミング調整回路452に対する制御信号CS12と、変換回路422に対する制御信号CI12を生成する。タイミング調整回路452は、制御信号CS12にしたがって、データIDQ2[0:3]に応じた遅延データDDQ2「0:3」を出力する。変換回路422は、制御信号CI12にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号に基づいて、タイミング調整回路452から出力される遅延データDDQ2[0:3]を1ビットのデータSD2に変換する。
【0068】
そして、パラレル−シリアル変換回路333は、制御コード生成回路443,タイミング調整回路453,変換回路423を有している。制御コード生成回路443は、位相情報PI3に基づいて、タイミング調整回路453に対する制御信号CS13と、変換回路423に対する制御信号CI13を生成する。タイミング調整回路453は、制御信号CS13にしたがって、データIDQ3[0:3]に応じた遅延データDDQ3「0:3」を出力する。変換回路423は、制御信号CI13にしたがって、クロック信号CK1に対して位相調整した複数のクロック信号に基づいて、タイミング調整回路453から出力される遅延データDDQ3[0:3]を1ビットのデータSD3に変換する。
【0069】
次に、パラレル−シリアル変換回路330に含まれるタイミング調整回路450,変換回路420,制御コード生成回路440を説明する。なお、パラレル−シリアル変換回路331〜333は、パラレル−シリアル変換回路330と同じであるため、図面及び説明を省略する。
【0070】
図11に示すように、タイミング調整回路450は、ラッチ回路500、遅延調整回路502を有している。なお、
図11において、
図10に示すデータIDQ0[0:3]をデータD0〜D3とする。つまり、1ビットのデータIDQ0[0]をデータD0とする。同様に、データIDQ0[1]〜IDQ0[3]をデータD1〜D3とする。
【0071】
ラッチ回路500のフリップフロップ回路510〜513は、例えばHレベルのクロック信号CK1に応答してデータD0〜D3をそれぞれラッチし、ラッチしたレベルと等しいデータD0a〜D3aを出力する。
【0072】
遅延調整回路502は、フリップフロップ回路520〜523,530〜533、選択回路SA0〜SA3,SB0〜SB3,インバータ回路54,選択回路SC0〜SC3を有している。
【0073】
図10に示す制御コード生成回路440から出力される制御信号CS10は、選択回路SA0〜SA3,SB0〜SB3,SC0〜SC3に対する制御信号を含む。必要に応じて、対応を判り易くするため、選択回路SA0〜SA3,SB0〜SB3,SC0〜SC3それぞれに対する制御信号を同じ符号を用いて説明する。
【0074】
選択回路SC0〜SC3は、データD0a〜D3aに対応する4つの入力端子を有している。データD0a〜D3aは選択回路SC0〜SC3の入力端子に対して、循環シフトして供給される。詳述すると、データD0aは、選択回路SC0の第1端子と、選択回路SC1の第2端子と、選択回路SC2の第3端子と、選択回路SC3の第4端子に供給される。データD1aは、選択回路SC1の第1端子と、選択回路SC2の第2端子と、選択回路SC3の第3端子と、選択回路SC0の第4端子に供給される。データD2aは、選択回路SC2の第1端子と、選択回路SC3の第2端子と、選択回路SC0の第3端子と、選択回路SC1の第4端子に供給される。データD3aは、選択回路SC3の第1端子と、選択回路SC0の第2端子と、選択回路SC1の第3端子と、選択回路SC2の第4端子に供給される。
【0075】
各選択回路SC0〜SC3は、
図10に示す制御コード生成回路440から供給される制御信号に応答して4つの入力端子のうちの1つを選択し、選択した入力端子に供給される信号と等しい信号S0c〜S3cを出力する。各選択回路SC0〜SC3に対する制御信号は2ビットの信号である。
図11において、選択回路SC0〜SC3に記載された符号「00」「01」「10」「11」は、2ビットの制御信号の論理値と、制御信号により選択される端子の対応を示す。例えば、選択回路SC0は、論理値「00」の制御信号に応答して第1端子を選択し、第1端子に供給される信号(D0a)と等しい信号S0cを出力する。また、選択回路SC0は、論理値「01」の制御信号に応答して第2端子を選択し、第2端子に供給される信号(D3a)と等しい信号S0cを出力する。また、選択回路SC0は、論理値「10」の制御信号に応答して第3端子を選択し、第3端子に供給される信号(D2a)と等しい信号S0cを出力する。そして、選択回路SC0は、論理値「11」の制御信号に応答して第4端子を選択し、第4端子に供給される信号(D1a)と等しい信号S0cを出力する。
【0076】
同様に、選択回路SC1は、制御信号の論理値「00」(「01」,「10」,「11」)に対応する端子を選択し、選択した端子に供給される信号D1a(D0a,D3a,D2a)と等しい信号S1cを出力する。同様に、選択回路SC2は、制御信号の論理値「00」(「01」,「10」,「11」)に対応する端子を選択し、選択した端子に供給される信号D2a(D1a,D0a,D3a)と等しい信号S2cを出力する。同様に、選択回路SC3は、制御信号の論理値「00」(「01」,「10」,「11」)に対応する端子を選択し、選択した端子に供給される信号D3a(D2a,D1a,D0a)と等しい信号S3cを出力する。
【0077】
選択回路SC0〜SC3から出力される信号S0c〜S3cは、フリップフロップ回路520〜523のデータ端子と選択回路SA0〜SA3の第1端子に供給される。フリップフロップ回路520〜523は、例えばHレベルのクロック信号CK1に応答して信号S0c〜S3cをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。フリップフロップ回路520〜523の出力信号は選択回路SA0〜SA3の第2端子に供給される。選択回路SA0〜SA3は、制御信号SA0〜SA3に応じた第1端子または第2端子を選択する。選択回路SA0〜SA3は例えば、Lレベル(倫理値「0」)の制御信号SA0〜SA3に応答して第1端子を選択し、Hレベル(論理値「1」)の制御信号SA0〜SA3に応答して第2端子を選択する。各選択回路SA0〜SA3は、選択した端子に供給される信号と等しい信号S0a〜S3aを出力する。
【0078】
選択回路SA0〜SA3の出力信号S0a〜S3aはフリップフロップ回路530〜533のデータ端子と選択回路SB0〜SB3の第1端子に供給される。フリップフロップ回路530〜533は、例えばHレベルの反転クロック信号xCK1に応答して信号S0a〜S3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。フリップフロップ回路530〜533の出力信号は選択回路SB0〜SB3の第2端子に供給される。選択回路SB0〜SB3は、制御信号SB0〜SB3に応じた第1端子または第2端子を選択する。選択回路SB0〜SB3は例えば、Lレベル(倫理値「0」)の制御信号SB0〜SB3に応答して第1端子を選択し、Hレベル(論理値「1」)の制御信号SB0〜SB3に応答して第2端子を選択する。各選択回路SB0〜SB3は、選択した端子に供給される信号と等しい信号DD0〜DD3を出力する。
【0079】
変換回路420は、2つの遅延同期ループ回路(DLL回路)601,602、選択回路610を含む。遅延同期ループ回路601にはクロック信号CK1と制御信号CI10が供給される。遅延同期ループ回路601は、クロック信号CK1を制御信号CI10に応じて遅延したクロック信号CK2aを生成する。したがって、クロック信号CK2aの周期は、クロック信号CK1の周期と等しい。遅延同期ループ回路601は、クロック信号CK1に対するクロック信号CK2aの位相差を、制御信号CI10に応じて制御する。遅延同期ループ回路601は、クロック信号CK1に対するクロック信号CK2aを所定の範囲(例えば、45度(deg.)〜135度(deg.))で制御可能である。
【0080】
クロック信号CK2aは遅延同期ループ回路602と選択回路610に供給される。遅延同期ループ回路602は、クロック信号CK2aを遅延してクロック信号CK2bを生成する。したがって、クロック信号CK2bの周期は、クロック信号CK2aの周期と等しい。クロック信号CK2aに対するクロック信号CK2bの位相差は、所定の位相差(例えば90度(deg.))である。クロック信号CK2bは選択回路610に供給される。
【0081】
選択回路610は、4つの入力端子n0〜n3を有している。入力端子n0〜n3には信号DD0〜DD3が供給される。選択回路610は、クロック信号CK2a,CK2bの論理レベルにしたがって4つの入力端子n0〜n3のうちの1つを選択する。選択回路610は、選択した端子に供給される信号と等しい信号、つまり1ビットのデータSD0を出力する。
【0082】
次に、上記のパラレル−シリアル変換回路330の作用を説明する。
図11に示すように、ラッチ回路500のフリップフロップ回路510〜513は、クロック信号CK1に応答してデータD0〜D3をラッチし、ラッチしたレベルと等しいレベルの信号D0a〜D3aを出力する。選択回路SC0〜SC3は、制御信号に応じて選択した入力端子に供給される信号D0a〜D3aと等しい信号S0c〜S3cを出力する。そして、遅延調整回路502のフリップフロップ回路520〜523は、クロック信号CK1に応答して信号S0c〜S3cをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。したがって、フリップフロップ回路520〜523は、信号S0c〜S3cに対して、クロック信号CK1の1周期分遅れて信号を出力する。選択回路SA0〜SA3は、論理値「0」の制御信号に応答して第1端子に供給される信号と等しい信号S0a〜S3aを出力し、論理値「1」の制御信号に応答して第2端子に供給される信号と等しい信号S0a〜S3aを出力する。
【0083】
遅延調整回路502のフリップフロップ回路530〜533は、反転クロック信号xCK1に応答して信号S0a〜S3aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。したがって、フリップフロップ回路530〜533は、信号S0a〜S3aに対して、クロック信号CK1の半周期分遅れて信号を出力する。選択回路SB0〜SB3は、論理値「0」の制御信号に応答して第1端子に供給される信号と等しい信号DD0〜DD3を出力し、論理値「1」の制御信号に応答して第2端子に供給される信号と等しい信号DD0〜DD3を出力する。
【0084】
上記したように、
図10に示す制御コード生成回路440は、位相情報PI0に応じて、
図11に示す選択回路SA0〜SA3,SB0〜SB3,SC0〜SC3に対する制御信号CS10(制御信号SA0〜SA3,SB0〜SB3,SC0〜SC3)を生成する。制御信号CS10は、クロック信号CK1に対する位相差に対応する。また、制御コード生成回路440は、位相情報PI0に応じて、
図11に示す遅延同期ループ回路601に対する制御信号CI10を生成する。
【0085】
図12は、所望の位相に対して、
図10に示す制御コード生成回路440から選択回路SC0〜SC3に出力される制御信号の論理値(2ビット)と、各選択回路SC0〜SC3において選択されるデータD0〜D3の対応を示す。
図13は、所望の位相に対して、遅延同期ループ回路601における位相調整範囲と、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値の一例を示す。
【0086】
例えば、
図12に示すように、データSD0(DQ0)に対する所望の位相が「45deg.〜135deg.」の場合、論理値「00」の制御信号が選択回路SC0〜SC3に供給される。
図13に示すように、遅延同期ループ回路601における位相の調整範囲は「45deg.〜135deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「0,0,0,0」,「0,0,1,1」である。
【0087】
選択回路SC0は、論理値「00」の制御信号に応答して、データD0aと等しい信号S0cを出力する。同様に、選択回路SC1〜SC3は、論理値「00」の制御信号に応答して、データD1a〜D3aと等しい信号S1c〜S3cを出力する。
【0088】
選択回路SA0は、論理値「0」の制御信号に応答して、フリップフロップ回路520をバイパスした信号、つまりデータD0aと等しいタイミングの信号S0aを出力する。選択回路SB0は、論理値「0」の制御信号に応答して、フリップフロップ回路530をバイパスした信号、つまり信号S0aと等しいタイミングで信号DD0を出力する。これにより、
図14に示すように、選択回路610の端子n0に、クロック信号CK1に対して位相差0度にてデータD0が供給される。
【0089】
選択回路SA1は、論理値「0」の制御信号に応答して、フリップフロップ回路521をバイパスした信号、つまりデータD1aと等しいタイミングの信号S1aを出力する。選択回路SB1は、論理値「0」の制御信号に応答して、フリップフロップ回路521をバイパスした信号、つまり信号S1aと等しいタイミングで信号DD1を出力する。これにより、
図14に示すように、選択回路610の端子n1に、クロック信号CK1に対して位相差0度にてデータD1が供給される。
【0090】
選択回路SA2は、論理値「0」の制御信号に応答して、フリップフロップ回路522をバイパスした信号、つまりデータD2aと等しいタイミングの信号S2aを出力する。選択回路SB2は、論理値「1」の制御信号に応答して、フリップフロップ回路522によりラッチした信号、つまり信号S2aよりクロック信号CK1の半周期分遅れたタイミングで信号DD2を出力する。これにより、
図14に示すように、選択回路610の端子n2に、クロック信号CK1に対して位相差180度にてデータD2が供給される。
【0091】
選択回路SA3は、論理値「0」の制御信号に応答して、フリップフロップ回路523をバイパスした信号、つまりデータD3aと等しいタイミングの信号S3aを出力する。選択回路SB3は、論理値「1」の制御信号に応答して、フリップフロップ回路523によりラッチした信号、つまり信号S3aよりクロック信号CK1の半周期分遅れたタイミングで信号DD3を出力する。これにより、
図14に示すように、選択回路610の端子n3に、クロック信号CK1に対して位相差180度にてデータD3が供給される。
【0092】
図14において、クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。例えば、Hレベルのクロック信号CK2aとLレベルのクロック信号CK2bの期間、
図11に示す選択回路610の端子n0が選択され、その端子n0に供給される信号、つまりデータD0がデータSD0(DQ0)として出力される。また、Hレベルのクロック信号CK2aとHレベルのクロック信号CK2bの期間、
図11に示す選択回路610の端子n1が選択され、その端子n0に供給される信号、つまりデータD1がデータSD0(DQ0)として出力される。また、Lレベルのクロック信号CK2aとHレベルのクロック信号CK2bの期間、
図11に示す選択回路610の端子n2が選択され、その端子n0に供給される信号、つまりデータD2がデータSD0(DQ0)として出力される。そして、Lレベルのクロック信号CK2aとLレベルのクロック信号CK2bの期間、
図11に示す選択回路610の端子n3が選択され、その端子n0に供給される信号、つまりデータD3がデータSD0(DQ0)として出力される。
【0093】
図12に示すように、データSD0(DQ0)に対する所望の位相が「135deg.〜225deg.」の場合、論理値「01」の制御信号が選択回路SC0〜SC3に供給される。選択回路SC0は、データD3(D3a)と等しい信号S0cを出力する。同様に、選択回路SC1,SC2,SC3は、データD0(D0a),D1(D1a),D2(D2a)と等しい信号S1c〜S3cを出力する。
【0094】
そして、
図13に示すように、データSD0(DQ0)に対する所望の位相が「135deg.〜225deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「45deg.〜135deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「1,0,0,0」,「0,0,1,1」である。
【0095】
図15に示すように、選択回路610の端子n1に、クロック信号CK1に対して位相差0度にてデータD0が供給される。また、選択回路610の端子n2に、クロック信号CK1に対して位相差180度にてデータD1が供給される。また、選択回路610の端子n3に、クロック信号CK1に対して位相差180度にてデータD2が供給される。そして、選択回路610の端子n0に、クロック信号CK1に対して位相差360度にてデータD3が供給される。
【0096】
図15において、クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2aとクロック信号CK2bの論理レベルにしたがって端子n1,n2,n3,n0が順次選択される。そして、各端子n1,n2,n3,n0に供給されるデータD0,D1,D2,D3がデータSD0(DQ0)として出力される。
【0097】
図12に示すように、データSD0(DQ0)に対する所望の位相が「225deg.〜315deg.」の場合、論理値「10」の制御信号が選択回路SC0〜SC3に供給される。選択回路SC0は、データD2(D2a)と等しい信号S0cを出力する。同様に、選択回路SC1,SC2,SC3は、データD3(D3a),D0(D0a),D1(D1a)と等しい信号S1c〜S3cを出力する。
【0098】
そして、
図13に示すように、データSD0(DQ0)に対する所望の位相が「225deg.〜315deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「45deg.〜135deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「1,1,0,0」,「0,0,1,1」である。
【0099】
図16に示すように、選択回路610の端子n2に、クロック信号CK1に対して位相差180度にてデータD0が供給される。また、選択回路610の端子n3に、クロック信号CK1に対して位相差180度にてデータD1が供給される。また、選択回路610の端子n0に、クロック信号CK1に対して位相差360度にてデータD2が供給される。そして、選択回路610の端子n1に、クロック信号CK1に対して位相差360度にてデータD3が供給される。
【0100】
図16において、クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2aとクロック信号CK2bの論理レベルにしたがって端子n2,n3,n0,n1が順次選択される。そして、各端子n2,n3,n0,n1に供給されるデータD0,D1,D2,D3がデータSD0(DQ0)として出力される。
【0101】
図12に示すように、データSD0(DQ0)に対する所望の位相が「315deg.〜405deg.」の場合、論理値「11」の制御信号が選択回路SC0〜SC3に供給される。選択回路SC0は、データD1(D1a)と等しい信号S0cを出力する。同様に、選択回路SC1,SC2,SC3は、データD2(D2a),D3(D3a),D0(D0a)と等しい信号S1c〜S3cを出力する。
【0102】
そして、
図13に示すように、データSD0(DQ0)に対する所望の位相が「315deg.〜405deg.」の場合、遅延同期ループ回路601における位相の調整範囲は「45deg.〜135deg.」である。また、選択回路SA0〜SA3,SB0〜SB3に対する制御信号の論理値は「1,1,1,0」,「0,0,1,1」である。
【0103】
図17に示すように、選択回路610の端子n3に、クロック信号CK1に対して位相差180度にてデータD0が供給される。また、選択回路610の端子n0に、クロック信号CK1に対して位相差270度にてデータD1が供給される。また、選択回路610の端子n1に、クロック信号CK1に対して位相差360度にてデータD2が供給される。そして、選択回路610の端子n2に、クロック信号CK1に対して位相差540度にてデータD3が供給される。
【0104】
図17において、クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n3に供給される信号に対し、クロック信号CK2a,CK2bの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2aとクロック信号CK2bの論理レベルにしたがって端子n3,n0,n1,n2が順次選択される。そして、各端子n3,n0,n1,n2に供給されるデータD0,D1,D2,D3がデータSD0(DQ0)として出力される。
【0105】
以上記述したように、本実施形態によれば、上記第一実施形態の効果に加え、以下の効果を奏する。
(2−1)タイミング調整回路450の遅延調整回路502は、フリップフロップ回路520〜523,530〜533、選択回路SA0〜SA3,SB0〜SB3,インバータ回路54,選択回路SC0〜SC3を有している。選択回路SC0〜SC3は、制御コード生成回路440から供給される制御信号に応答して4つの入力端子のうちの1つを選択し、選択した入力端子に供給される信号と等しい信号S0c〜S3cを出力する。各信号S0c〜S3cは、遅延調整回路502のフリップフロップ回路520〜523,530〜533と選択回路SA0〜SA3,SB0〜SB3を介して変換回路420の選択回路610の端子n0〜n3に供給される。したがって、制御信号により、各データD0a〜D3a(D0〜D3)は、制御信号に応じて、選択回路610の端子n0〜n3に供給される。
【0106】
したがって、選択回路610において、クロック信号CK2a,CK2bに応じて選択される端子に対してデータD0a〜D3a(D0〜D3)を供給することで、データD0a〜D3a(D0〜D3)を選択するタイミングを調整することができる。このため、変換回路420の遅延同期ループ回路601におけるクロック信号CK2aの位相調整範囲を広くしなくても、広範囲でデータSD0の出力タイミングを調整することができる。
【0107】
(第三実施形態)
以下、第三実施形態を説明する。なお、第一実施形態、第二実施形態と同じ部材については同じ符号を付し、それらに対する説明の全てまたは一部を省略する。
【0108】
図18に示すように、パラレル−シリアル変換回路340は、8ビットのデータD0〜D7を1ビットのデータSD0に変換する。
パラレル−シリアル変換回路340は、タイミング調整回路460,変換回路470,制御コード生成回路(図示略)を有している。タイミング調整回路460,変換回路470,制御コード生成回路は、位相同期ループ回路(PLL回路)24により生成されたクロック信号CK1に基づいて動作する。
【0109】
タイミング調整回路460は、ラッチ回路503、遅延調整回路504を有している。
ラッチ回路503は、データD0〜D7に対応するフリップフロップ回路510〜517を有している。フリップフロップ回路510〜517は、例えばHレベルのクロック信号CK1に応答してデータD0〜D7をそれぞれラッチし、ラッチしたレベルと等しいデータD0a〜D7aを出力する。
【0110】
図19に示すように、遅延調整回路504は、フリップフロップ回路520〜527,530〜537、選択回路SA0〜SA7,SB0〜SB7,インバータ回路54,選択回路SC0〜SC7を有している。
【0111】
選択回路SC0〜SC7は、複数(図において4つ)の入力端子を有している。データD0a〜D7aは、選択回路SC0〜SC7の入力端子に対して循環シフトして供給される。選択回路SC0〜SC7は、図示しない制御コード生成回路から供給される制御信号に応答して入力端子のうちの1つを選択し、選択した端子に供給される信号と等しい信号S0c〜S7cを出力する。
【0112】
図19において、選択回路SC0〜SC7に記載された符号「00」「01」「10」「11」は、2ビットの制御信号の論理値と、制御信号により選択される端子の対応を示す。なお、
図19は、データSD0の位相調整範囲を、45度(deg.)〜225度(deg.)として示している。上記の第一実施形態、第二実施形態と同様に、
図18,
図19に示す回路から、容易に位相調整範囲を45度(deg.)〜405度(deg.)とすることができる。
【0113】
選択回路SC0〜SC7から出力される信号S0c〜S7cは、フリップフロップ回路520〜527のデータ端子と選択回路SA0〜SA7の第1端子に供給される。フリップフロップ回路520〜527は、例えばHレベルのクロック信号CK1に応答して信号S0c〜S7cをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。フリップフロップ回路520〜527の出力信号は選択回路SA0〜SA7の第2端子に供給される。選択回路SA0〜SA7は、制御信号SA0〜SA7に応じた第1端子または第2端子を選択する。選択回路SA0〜SA7は例えば、Lレベル(倫理値「0」)の制御信号SA0〜SA7に応答して第1端子を選択し、Hレベル(論理値「1」)の制御信号SA0〜SA7に応答して第2端子を選択する。各選択回路SA0〜SA7は、選択した端子に供給される信号と等しい信号S0a〜S7aを出力する。
【0114】
選択回路SA0〜SA7の出力信号S0aはフリップフロップ回路530〜537のデータ端子と選択回路SB0〜SB7の第1端子に供給される。フリップフロップ回路530〜537は、例えばHレベルの反転クロック信号xCK1に応答して信号S0a〜S7aをラッチし、ラッチしたレベルと等しいレベルの信号を出力する。フリップフロップ回路530〜537の出力信号は選択回路SB0〜SB7の第2端子に供給される。選択回路SB0〜SB7は、制御信号SB0〜SB7に応じた第1端子または第2端子を選択する。選択回路SB0〜SB7は例えば、Lレベル(倫理値「0」)の制御信号SB0〜SB7に応答して第1端子を選択し、Hレベル(論理値「1」)の制御信号SB0〜SB7に応答して第2端子を選択する。各選択回路SB0〜SB7は、選択した端子に供給される信号と等しい信号DD0〜DD7を出力する。
【0115】
変換回路470は、4つの遅延同期ループ回路(DLL回路)601〜604、選択回路620を含む。遅延同期ループ回路601にはクロック信号CK1と制御信号が供給される。遅延同期ループ回路601は、クロック信号CK1を制御信号に応じて遅延したクロック信号CK2aを生成する。遅延同期ループ回路601は、クロック信号CK1に対するクロック信号CK2aの位相差を、制御信号に応じて制御する。遅延同期ループ回路601は、クロック信号CK1に対するクロック信号CK2aを所定の範囲(例えば、45度(deg.)〜90度(deg.))で制御可能である。
【0116】
クロック信号CK2aは遅延同期ループ回路602と選択回路620に供給される。遅延同期ループ回路602は、クロック信号CK2aを遅延し、クロック信号CK2aに対して所定の位相差(例えば45度(deg.))のクロック信号CK2bを生成する。クロック信号CK2bは遅延同期ループ回路603と選択回路620に供給される。同様に、遅延同期ループ回路603は、クロック信号CK2bを遅延し、クロック信号CK2bに対して所定の位相差(例えば45度(deg.))のクロック信号CK2cを生成する。クロック信号CK2cは遅延同期ループ回路604と選択回路620に供給される。同様に、遅延同期ループ回路604は、クロック信号CK2cを遅延し、クロック信号CK2cに対して所定の位相差(例えば45度(deg.))のクロック信号CK2dを生成する。クロック信号CK2dは選択回路620に供給される。これらのクロック信号CK2a〜CK2dの周期は、クロック信号CK1の周期と等しい。
【0117】
選択回路620は、8つの入力端子n0〜n7を有している。入力端子n0〜n7には信号DD0〜DD7が供給される。選択回路620は、クロック信号CK2a〜CK2dの論理レベルにしたがって8つの入力端子n0〜n7のうちの1つを選択する。選択回路620は、選択した端子に供給される信号と等しい信号、つまり1ビットのデータSD0を出力する。
【0118】
次に、パラレル−シリアル変換回路340の作用を説明する。
上記したように、制御コード生成回路(図示略)は、位相情報PI0に応じて、
図19に示す選択回路SA0〜SA7,SB0〜SB7,SC0〜SC7に対する制御信号を生成する。制御信号は、クロック信号CK1に対する位相差に対応する。また、制御コード生成回路は、位相情報PI0に応じて、
図18に示す遅延同期ループ回路601に対する制御信号を生成する。
【0119】
図20(a)は、所望の位相に対して、図示しない制御コード生成回路から選択回路SC0〜SC3に出力される制御信号の論理値(2ビット)と、各選択回路SC0〜SC7において選択されるデータD0〜D7の対応を示す。
図20(b)は、所望の位相に対して、遅延同期ループ回路601における位相調整範囲と、選択回路SA0〜SA7,SB0〜SB7に対する制御信号の論理値の一例を示す。なお、
図20(a)及び
図20(b)は、クロック信号CK1に対するデータSD0の位相調整範囲において、45度(deg.)〜225度(deg.)の範囲に対する制御信号を示す。
【0120】
図20(a)に示すように、データSD0に対する所望の位相が「45deg.〜90deg.」の場合、論理値「00」の制御信号が選択回路SC0〜SC7に供給される。選択回路SC0〜SC7は、データD0(D0a)〜D7(D7a)と等しい信号S0c〜S7cを出力する。そして、
図20(b)に示すように、選択回路SA0〜SA7,SB0〜SB7に対して制御信号が供給される。
【0121】
図21に示すように、選択回路620の端子n0〜n3に、クロック信号CK1に対して位相差0度にてデータD0〜D3が供給される。また、選択回路620の端子n4〜n7に、クロック信号CK1に対して位相差180度にてデータD4〜D7が供給される。
【0122】
クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n7に供給される信号に対し、クロック信号CK2a〜CK2dの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2a〜CK2dの論理レベルにしたがって端子n0〜n7が順次選択され、データD0〜D7がデータSD0として出力される。
【0123】
図20(a)に示すように、データSD0に対する所望の位相が「90deg.〜135deg.」の場合、論理値「01」の制御信号が選択回路SC0〜SC7に供給される。選択回路SC0〜SC7は、データD7(D7a),D0(D0a)〜D6(D6a)と等しい信号S0c〜S7cを出力する。そして、
図20(b)に示すように、選択回路SA0〜SA7,SB0〜SB7に対して制御信号が供給される。
【0124】
図22に示すように、選択回路620の端子n1〜n3に、クロック信号CK1に対して位相差0度にてデータD0〜D2が供給される。また、選択回路620の端子n4〜n7に、クロック信号CK1に対して位相差180度にてデータD3〜D6が供給される。そして、選択回路620の端子n0に、位相差360度にてデータD7が供給される。
【0125】
クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n7に供給される信号に対し、クロック信号CK2a〜CK2dの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2a〜CK2dの論理レベルにしたがって端子n1〜n7,n0が順次選択され、データD0〜D7がデータSD0として出力される。
【0126】
図20(a)に示すように、データSD0に対する所望の位相が「135deg.〜180deg.」の場合、論理値「10」の制御信号が選択回路SC0〜SC7に供給される。選択回路SC0〜SC7は、データD6(D6a),D7(D7a),D0(D0a)〜D5(D5a)と等しい信号S0c〜S7cを出力する。そして、
図20(b)に示すように、選択回路SA0〜SA7,SB0〜SB7に対して制御信号が供給される。
【0127】
図23に示すように、選択回路620の端子n2,n3に、クロック信号CK1に対して位相差0度にてデータD0,D1が供給される。また、選択回路620の端子n4〜n7に、クロック信号CK1に対して位相差180度にてデータD2〜D5が供給される。そして、選択回路620の端子n0,n1に、位相差360度にてデータD6,D7が供給される。
【0128】
クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n7に供給される信号に対し、クロック信号CK2a〜CK2dの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2a〜CK2dの論理レベルにしたがって端子n2〜n7,n0,n1が順次選択され、データD0〜D7がデータSD0として出力される。
【0129】
図20(a)に示すように、データSD0に対する所望の位相が「180deg.〜225deg.」の場合、論理値「11」の制御信号が選択回路SC0〜SC7に供給される。選択回路SC0〜SC7は、データD5(D5a)〜D7(D7a),D0(D0a)〜D4(D4a)と等しい信号S0c〜S7cを出力する。そして、
図20(b)に示すように、選択回路SA0〜SA7,SB0〜SB7に対して制御信号が供給される。
【0130】
図24に示すように、選択回路620の端子n3に、クロック信号CK1に対して位相差0度にてデータD0が供給される。また、選択回路620の端子n4〜n7に、クロック信号CK1に対して位相差180度にてデータD1〜D4が供給される。そして、選択回路620の端子n0〜n2に、位相差360度にてデータD5〜D7が供給される。
【0131】
クロック信号CK1とクロック信号CK2aの位相差が45度(deg.)の場合、各端子n0〜n7に供給される信号に対し、クロック信号CK2a〜CK2dの論理レベルにより選択される期間をハッチングにて示す。クロック信号CK2a〜CK2dの論理レベルにしたがって端子n3〜n7,n0〜n2が順次選択され、データD0〜D7がデータSD0として出力される。
【0132】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(3−1)8ビットのデータD0〜D7を1ビットのデータSD0に変換する変換回路340において、容易にデータSD0の出力タイミングを調整することができる。また、遅延同期ループ回路601におけるクロック信号CK2aの位相調整範囲を広くしなくても、広範囲でデータSD0の出力タイミングを調整することができる。
【0133】
尚、上記各実施形態は、以下の態様で実施してもよい。
・
図2に示す第一実施形態において、1つの制御コード生成回路(例えば、制御コード生成回路400)により生成した制御信号CS0,CI0を、各パラレル−シリアル変換回路310〜303のタイミング調整回路410〜413,変換回路420〜423に供給するようにしてもよい。なお、制御コード生成回路の数は、適宜変更することができる。また、第二実施形態、第3実施形態においても同様に変更してもよい。
【0134】
・
図13に示すように、第二実施形態において、選択回路SB0〜SB3に対する制御信号は、所望の位相の範囲に対して同じである。このため、
図11に示す選択回路SB0〜SB3及びフリップフロップ回路530,531を省略することができる。なお、
図19に示す第三実施形態においても、同様に選択回路及びフリップフロップ回路を省略することができる。
【0135】
・上記各実施形態に対し、パラレルデータのビット数を適宜変更してもよい。
・上記第一実施形態では、クロック信号CK1に対して、クロック信号CK2a,CK2bの位相調整範囲を45(deg.)〜405(deg.)としたが、ラッチ回路500にてラッチした信号に応じたデータSD0を出力することができればよく、位相調整範囲を、例えば40(deg.)〜400(deg.)や50(deg.)〜410(deg.)のように適宜変更してもよい。第二,第三実施形態においても、同様に、位相調整範囲を変更してもよい。
【0136】
・実施形態では、データDQ等の出力タイミングを調整するトレーニング動作を行うメモリコントローラ22を用いたが、トレーニング動作を行う機能を有していないメモリコントローラを用いて実施してもよい。この場合、制御コード生成回路には、位相情報が例えば
図1に示すコア回路21等により設定される。
【0137】
・実施形態では、メモリコントローラ22がトレーニング動作を行うこととしたが、その他の回路、例えばコア回路21がトレーニング動作を実行するようにしてもよい。
・各実施形態は、インタフェース回路23を含む制御装置11について説明したが、データDQ及びデータストローブ信号DQSを受信する回路、例えばSDRAMやメモリコントローラに上記のインタフェース回路を適用してもよい。
【0138】
・各実施形態は、メモリ装置12に対してデータを出力するインタフェース回路23について説明したが、メモリ以外の回路に対して信号を出力する出力回路、例えば、通信用の出力回路に適用してもよい。