(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【0015】
<実施の形態1>
[半導体装置1の全体構成]
図1は、この発明の実施の形態1による半導体装置1の構成を示すブロック図である。
図1を参照して、半導体装置1は、多数の機能ブロックが半導体基板上に集積されたSoC(System on Chip)として構成される。具体的に、半導体装置1は、半導体装置全体を制御する中央処理装置(CPU:Central Processing Unit)3、インターフェース回路5、メモリコントローラ(MEMC:Memory Controller)4、PLL回路6、およびクロック生成器7などを含む。
【0016】
インターフェース回路5は、外部のDRAM(Dynamic Random Access Memory)装置2(DDR−SDRAM)と接続される。インターフェース回路5は、DRAM装置2をダブルデータレートでアクセスするための物理インターフェース(Physical Interface:DDR−PHY)である。具体的に、インターフェース回路5は、DRAM装置2に向けて、クロック、各種コマンド、アドレス信号(ロウアドレス、カラムアドレス)、およびデータマスク信号などを出力する。
【0017】
インターフェース回路5は、さらに、DRAM装置2との間でデータ信号DQおよびストローブ信号DQSの入出力を行なう。DRAM装置2からインターフェース回路5へのデータ読出時には、DRAM装置2は、データ信号DQのエッジとストローブ信号DQSのエッジとを一致させて出力する。この場合、インターフェース回路5においてストローブ信号DQSの位相を90度(1/4周期分)遅延させることによって、ストローブ信号DQSの立上がりエッジおよび立下がりエッジの両方でデータサンプリングが行われる。逆に、インターフェース回路5からDRAM装置2へのデータ書込時には、インターフェース回路5は、ストローブ信号DQSのエッジをデータアイの中央に合わせてDRAM装置2に向けて出力する。
【0018】
メモリコントローラ4は、インターフェース回路5に接続されるとともに、バス8を介してCPU3と接続される。メモリコントローラ4は、CPU3の指令に従って、インターフェース回路5の動作を制御する。具体的に、メモリコントローラ4は、インターフェース回路5に向けてコマンド、アドレス、書込データ、および動作設定のための信号などを出力し、インターフェース回路5から読出データを受ける。メモリコントローラ4は、さらに、インターフェース回路5に設けられたオフセット調整回路26(
図2で説明する)に対してオフセット設定値14を出力する。
【0019】
PLL回路6は基準クロックを生成し、クロック生成器7はPLL回路6から出力された基準クロックに基づいてシステムクロックCKを生成する。PLL回路6およびクロック生成器7の動作は、CPU3からの制御信号11,12によって制御される。これによって、システムクロックCKの周波数が設定される。生成されたシステムクロックCKは、半導体装置1の各部(CPU3、メモリコントローラ4、およびインターフェース回路5など)に供給される。インターフェース回路5は、このシステムクロックCKに基づいてDRAM装置2の動作クロックを供給する。したがって、DRAM装置2の動作周波数は、システムクロックCKの設定周波数に応じて決まる。
【0020】
システムクロックCKの設定周波数に関する情報(クロック情報)13は、クロック生成器7からメモリコントローラ4に与えられる。メモリコントローラ4には、システムクロックCKの設定周波数(DRAM装置2の動作周波数)をオフセット設定値14に変換するための変換テーブル4Aが格納されている。メモリコントローラ4は、変換テーブル4Aに基づいて設定周波数に対応するオフセット設定値14を決定し、決定したオフセット設定値14をインターフェース回路5に設けられた
図2のオフセット調整回路26に出力する。
【0021】
[インターフェース回路5の構成および動作の概略]
図2は、
図1のインターフェース回路5の一部の構成を示すブロック図である。
図2には、
図1のインターフェース回路5のうち、DRAM装置2からのデータ読出に関係する構成が示されている。さらに、
図2には、
図1のメモリコントローラ4、ならびにデータ信号DQおよびストローブ信号DQSをそれぞれ入出力するための端子20,21も示される。
【0022】
図2を参照して、インターフェース回路5は、入出力(I/O)バッファアンプ22,23と、セレクタ(Selector)回路24と、DQS遅延回路25と、データ検出回路28と、オフセット制御回路30と、キャリブレーション制御回路31とを含む。
【0023】
図1のDRAM装置2から端子20に入力されたデータ信号DQは、バッファアンプ22を介してデータ検出回路28に入力される。DRAM装置2から端子21に入力されたストローブ信号DQSは、バッファアンプ23を介してセレクタ回路24に入力される。
【0024】
セレクタ回路24は、インターフェース回路5の通常動作時には、バッファアンプ23を介して入力されたストローブ信号DQSを選択して、後段のDQS遅延回路25に出力する。一方、セレクタ回路24は、インターフェース回路5のキャリブレーション動作時には、キャリブレーション制御回路31から出力されたパルス信号を後段のDQS遅延回路25に出力する。
【0025】
上記のインターフェース回路5の動作モード(通常モードおよびキャリブレーションモード)と、動作モードに対応したセレクタ回路24の選択動作とは、メモリコントローラ4によって制御される。キャリブレーションモード時にDQS遅延回路25の遅延量が調整され、通常モード時には、キャリブレーションモード時に調整された遅延量でストローブ信号DQSが遅延される。
【0026】
DQS遅延回路25は、ストローブ信号DQSの位相を90度(1/4波長分)遅延させるために設けられる。DQS遅延回路25は、互いに直列に接続されたオフセット調整回路(第1の調整回路)26と、遅延量調整回路(第2の調整回路)27とを含む。オフセット調整回路26は、ストローブ信号DQSの遅延量を、オフセット設定値14(システムクロックCKの設定周波数に対応する)に応じて複数段階に粗調整可能である。遅延量調整回路27は、ストローブ信号DQSの遅延量を、キャリブレーション制御回路31から出力された遅延コード41に従って、オフセット調整回路26よりも細かい精度で微調整可能である。オフセット調整回路26および遅延量調整回路27の接続順序を
図2とは逆順に、すなわち、オフセット調整回路26が遅延量調整回路27の後段に設けられるようにしてもよい。
【0027】
データ検出回路28は、データ信号DQと、DQS遅延回路25による遅延後のストローブ信号DQS90とを受ける。データ検出回路28は、遅延後のストローブ信号DQS90の立上がりエッジおよび立下がりエッジの両方のタイミングで、データ信号DQをサンプリングする。
【0028】
図3は、ストローブ信号DQS、データ信号DQ、および遅延後のストローブ信号DQS90の波形を模式的に示す図である。
【0029】
図2、
図3を参照して、
図1のDRAM装置2から入力されたデータ信号DQのエッジ(時刻t1,t3,t5,t7)とストローブ信号DQSのエッジとは一致している。DQS遅延回路25は、ストローブ信号DQS90を1/4周期分(90度の位相分)遅延させる。データ検出回路28は、
図2のDQS遅延回路25から出力された遅延後のストローブ信号DQS90によってデータ信号DQをサンプリングする。この結果、データ検出回路28は、各データD0,D1,D2,D3をデータアイの中央の位置(時刻t2,t4,t6,t8)で取り込むことができる。
【0030】
再び、
図2を参照して、オフセット制御回路30は、システムクロックCKの設定周波数に対応したオフセット設定値14をオフセット調整回路26に出力する。前述のように、システムクロックCKの設定周波数(
図1のDRAM装置2の動作周波数)とオフセット設定値14との対応関係は、メモリコントローラ4に変換テーブル4Aとして格納されている。この変換テーブル4Aに基づいたオフセット設定値14が、オフセット調整回路26に入力される。オフセット調整回路26の遅延量はオフセット設定値14に応じて決定される。
【0031】
キャリブレーション制御回路31は、キャリブレーションモード時に、オフセット調整回路26の遅延量がオフセット設定値14に対応して設定された後に、DQS遅延回路25全体の遅延量がシステムクロックCKに応じて定まる目標遅延(具体的には、DRAM装置2の動作周波数に対応する周期の1/4)に一致するように、遅延量調整回路27の遅延量を調整する。
【0032】
具体的に、キャリブレーション制御回路31は、パルス生成器34および位相比較器35を有する信号処理部33と、制御モジュール32とを含む。パルス生成器34は、クロック信号CLKaをトリガとしてワンショットパルスを発生する。位相比較器35は、パルス生成器34から出力されたパルスがDQS遅延回路25を通過することによって生成された遅延パルスDQS90の位相と、クロック信号CLKbの位相とを比較する。
【0033】
パルス生成器34および位相比較器35はDフリップフロップ(F/F:Flip Flop)によって構成することができる。この明細書では、パルス生成器34を構成するDフリップフロップを発射フリップフロップ(Launch F/F)とも称し、位相比較器35を構成するDフリップフロップを捕捉フリップフロップ(Capture F/F)とも称する。
【0034】
クロック信号CLKbの位相は、クロック信号CLKaの位相よりも90度遅れるように調整されている。クロック信号CLKa,CLKbは、
図1のクロック生成器7から供給されるようにしてもよいし、システムクロックCKに基づいてインターフェース回路5が生成するようにしてもよい。システムクロックCKをクロック信号CLKaとして用いてもよい。
【0035】
制御モジュール32は、キャリブレーションモード時に、位相比較器35による比較結果に基づいて、DQS遅延回路25から出力された遅延パルスDQS90の位相と、クロック信号CLKbの位相が一致するように遅延コード41を調整する。遅延コード41は、遅延量調整回路27の遅延量に対応している。
【0036】
図4は、クロック信号CLKa,CLKbおよび遅延パルスDQS90の波形を模式的に示す図である。
【0037】
図2、
図4を参照して、クロック信号CLKbの位相は、クロック信号CLKaの位相よりも90度遅れている。すなわち、クロック信号CLKaが立上がる時刻t1よりも90度位相が遅れた時刻t2にクロック信号CLKbが立上がる。
【0038】
パルス生成器34からの出力パルスの位相は、クロック信号CLKaの位相と一致する。一方、DQS遅延回路25から出力された遅延パルスDQS90の位相は、遅延コード41に応じてパルス生成器34からの出力パルスよりも遅れている。
【0039】
位相比較器35は、遅延パルスDQS90の位相とクロック信号CLKbの位相とを比較する。
図4の場合、位相比較器35の出力は、時刻t2における遅延パルスDQS90の論理レベルに応じて決まる。遅延量調整回路27の遅延量が比較的小さいときには、位相比較器35の出力はハイレベル(Hレベル)であるのに対して、遅延量調整回路27の遅延量が比較的大きいときには位相比較器35の出力はロウレベル(Lレベル)になる。したがって、位相比較器35の出力がHレベルからLレベルまたはLレベルからHレベルへの切替わりを検出することによって、遅延パルスDQS90の位相とクロック信号CLKbの位相との一致を判定できる。
【0040】
制御モジュール32は、この位相比較器35の出力の論理レベルの切替わりを利用して、2分探索法で遅延コード41を決定する。たとえば、遅延量調整回路27の遅延量が32段階(5ビット)で切替可能なときには、最終的な遅延コード41を決定するまでにパルス生成器34は、ワンショットパルスを5回出力することになる。
【0041】
[遅延量調整回路27の構成例]
図5は、
図2の遅延量調整回路27の構成の一例を示す図である。
図5を参照して、遅延量調整回路27は、遅延線60とセレクタ回路61とを含む。
図5の入力ノードINに信号が入力され、出力ノードOUTから遅延された信号が出力される。
【0042】
遅延線60は、縦続接続された複数の遅延素子を含み、
図5の例では、複数の遅延素子として96個のインバータINVを含む。これらのインバータINVは、直列接続された2個または4個のインバータからなる32個のブロックに分割される。各ブロックから信号の出力が可能になっている。
【0043】
セレクタ回路61は、遅延コード41に応じて上記の32個のブロックのうちの1つを選択し、選択したブロックからの信号を出力する。これによって、ストローブ信号DQSが遅延量調整回路27に入力されてから出力するまでに通過する遅延素子(インバータINV)の個数が切替わる。
【0044】
具体的に、セレクタ回路61は、複数の論理ゲート(NANDゲートおよびNORゲート)によって構成され、階層化された第1〜第5の論理ゲート群62〜66を含む。
【0045】
第1の論理ゲート群62は、遅延線60を構成する32個のブロックにそれぞれ対応する32個のNANDゲートによって構成される。各NANDゲートの第1の入力端子には対応するブロックからの信号が入力され、第2の入力端子には遅延コード41が入力される。なお、遅延コード41は、選択されたブロックに対応するNANDゲートに入力される信号のみが“1”(Hレベル)であり、他の非選択のブロックに対応するNANDゲートに入力される信号は“0”(Lレベル)であり、通常のバイナリコードとは異なる。通常のバイナリコードを遅延コード41に変換するデコーダは、
図2の制御モジュール32に設けられる。
【0046】
第1の論理ゲート群62を構成する32個のNANDゲートは2個ずつのグループをなし、これらのグループが第2の論理ゲート群63を構成する16個のNANDゲートにそれぞれ接続される。同様に、第2の論理ゲート群63を構成する16個のNANDゲートは2個ずつのグループをなし、これらのグループが第3の論理ゲート群64を構成する8個のNORゲートにそれぞれ接続される。第3の論理ゲート群64を構成する8個のNORゲートは2個ずつのグループをなし、これらのグループが第4の論理ゲート群65を構成する4個のNANDゲートにそれぞれ接続される。第4の論理ゲート群65を構成する4個のNANDゲートは2個ずつのグループをなし、これらのグループが第5の論理ゲート群66を構成する2個のNORゲートにそれぞれ接続される。セレクタ回路61の最終段に設けられたNANDゲート67は、第5の論理ゲート群66に設けられた2個のNORゲートにそれぞれ接続される。
【0047】
[オフセット調整回路26の構成例]
図6は、
図2のオフセット調整回路26の構成の一例を示す図である。
図6には、オフセット調整回路26の周辺の回路も併せて示されている。
【0048】
図6を参照して、オフセット調整回路26は、入力ノードNIおよび出力ノードN3間に直列接続された複数の遅延素子DEから成る遅延線と、セレクタ回路59とを含む。これらの複数の遅延素子DEは、M個(
図6の場合、M=4)のブロック50,51,52,53に区分される。各ブロックは、直列接続されたN段の遅延素子DEを含む。
【0049】
なお、オフセット調整回路26に設けられた各遅延素子DEを構成するMOSトランジスタの閾値電圧は、遅延量調整回路27に設けられた各遅延素子を構成するMOSトランジスタの閾値電圧よりも大きくなるようにする。これによって、より小さな面積で、オフセット調整回路26に設けられた各遅延素子DEの遅延量を、遅延量調整回路27の各遅延素子の遅延量よりも大きくすることができる。
【0050】
セレクタ回路59は、ブロック50〜53の接続ノードN0,N1,N2および出力ノードN3のうちいずれか1つを選択し、選択したノードの信号を出力する。具体的に
図6において、セレクタ回路59は、オフセット設定値が0のときに接続ノードN0の信号を出力する。この場合、オフセット調整回路26からはブロック50を通過したストローブ信号DQSが出力される。同様に、セレクタ回路59は、オフセット設定値が1のときに接続ノードN1の信号を出力する。この場合、オフセット調整回路26からはブロック50,51を通過したストローブ信号DQSが出力される。セレクタ回路59は、オフセット設定値が2のときに接続ノードN2の信号を出力する。この場合、オフセット調整回路26からはブロック50,51,52を通過したストローブ信号DQSが出力される。セレクタ回路59は、オフセット設定値が3のときに出力ノードN3の信号を出力する。この場合、オフセット調整回路26からはブロック50,51,52,53を通過したストローブ信号DQSが出力される。セレクタ回路59の具体的構成は、たとえば、
図5で示したセレクタ回路61と同様の構成である。
【0051】
このように、セレクタ回路59は、ストローブ信号DQSがオフセット調整回路26に入力してから出力するまでの間に通過するブロック数(すなわち、遅延素子数)を、オフセット設定値に応じて切替えることができる。なお、設定周波数とオフセット設定値の対応関係は、
図1のシステムクロックCKの設定周波数が小さいほど、ストローブ信号DQSがオフセット調整回路26を出力するまでに通過するブロック数が大きくなるように定められている。
【0052】
図7は、
図1のメモリコントローラ4に記憶された変換テーブルの一例を示す図である。
図7の例では、概ね266Mbpsから533Mbpsまでのビットレート(DRAM装置の動作周波数に等しい)に対してオフセット設定値が定められている。すなわち、この動作周波数の範囲で遅延量の調整が可能である。
【0053】
なお、オフセット調整回路26の構成は、
図6に示した構成には限られない。たとえば、セレクタ回路59に代えて入力ノードNIの近傍に別のセレクタ回路を配置し、このセレクタ回路によって入力ノードNIに入力されたストローブ信号DQSの経路を切替えるようにしてもよい。このようにすれば、ブロック50〜53の配列順を
図5とは逆順にすることができる。
【0054】
上記の点を考慮して、セレクタ回路59の機能をより一般的に述べると次のようになる。オフセット調整回路26に設けられた複数の遅延素子DEが第1番目から第M番目までのM個のブロックに区分されるとする。この場合に、1以上M以下の整数をiとしたとき、セレクタ回路59は、オフセット設定値に応じて、M個のブロックをいずれも通過しないか、もしくは、M個のブロックのうち第1番目から第i番目までのi個のブロックを順に通過したストローブ信号DQSを出力する。ストローブ信号がM個のブロックのいずれも通過しない場合には、ストローブ信号の遅延量は、遅延量調整回路27のみによって設定される。
【0055】
[従来のDQS遅延回路の問題点]
図6に示す構成のDQS遅延回路25の効果について説明するのに先立って、従来のDQS遅延回路の問題点について説明する。以下、
図8、
図9を参照して、遅延量の粗調整を行なうためのオフセット調整回路26が設けられていない場合について述べる。
【0056】
DRAM装置では、低消費電力化のために、DRAM装置の動作周波数を切替えて使用する場合がある。具体的に、最大動作周波数を増大することによって周波数範囲を拡大したとすると、遅延線を構成する遅延素子数を増加させる必要が生じる。たとえば、DRAM装置との転送レートを最大400Mbpsまで対応していたものを、533Mbpsまで対応できるようにすると、遅延線の切替え段数を32段から64段
かまたはそれ以上に増加させる必要が生じる。この結果、回路面積の増大を招く。
【0057】
図8は、比較例のDQS遅延回路において、遅延コードと遅延量との関係を模式的に示す図である。
図8の例では、遅延線を構成する遅延素子の個数および遅延量の切替え段数(
図8では、8段の場合を示す)を変えずに、単位遅延素子の遅延量を増大させることによって、遅延量の切替幅(Δdelay)を大きくした場合を示す。
【0058】
図8のように、広い周波数範囲に対応させる目的で、単純に遅延線を構成する単位遅延素子の遅延量を大きく設定すると、目標遅延に対する誤差が増大する。これによって、DRAM装置からのデータ読出時におけるセットアップタイムのマージンの減少またはホールドタイムのマージンの減少といった問題を引き起こす。
【0059】
図9は、比較例のDQS遅延回路において、遅延コードと遅延量との関係を模式的に示す図である。
図9の例では、単位遅延素子の遅延量を小さくすることによって、遅延量の切替幅(Δdelay)を小さくした場合を示す。
【0060】
図9のように、遅延線を構成する単位遅延素子の遅延量が小さい場合において、広い周波数範囲に対応させるためには、遅延素子数の増加や遅延量の切替段数の増加(
図9では16段)が避けられない。このため、回路面積が増大してしまう。特に、遅延素子の遅延量は、半導体装置の製造条件や動作温度および動作電圧が変動するのに応じて変動するので、遅延素子の想定される遅延量が最も小さい場合には、目標遅延量の実現が困難になる場合もあり得る。
【0061】
[実施の形態1のDQS遅延回路25の動作および効果]
図6に示すDQS遅延回路25の場合には、遅延量の切替幅(Δdelay)を小さくしたままで広範囲の周波数に対応することができ、しかも、回路面積の増大を抑えることができる。
【0062】
図10は、
図6のDQS遅延回路25において、遅延コード41と遅延量との関係を模式的に示す図である。
図10の例では、
図6の遅延量調整回路27の構成を
図5に例示した構成よりも単純化した場合を示している。すなわち、遅延量調整回路27の遅延量を8段階に調整可能とし、各段階ごとの遅延量の切替幅(Δdelay)が等しいとしている。
【0063】
図10に示すように、オフセット設定値を変化させることにより(
図10の場合、オフセット=0〜3)、
図6のDQS遅延回路25の遅延量と遅延コード41との関係を示す直線は、その傾きを維持したまま上下にシフトする。これによって、目標遅延TG90の設定範囲を拡大することができる。
【0064】
なお、個々の遅延素子DEの遅延量は、半導体装置の製造条件の変動、ならびに遅延回路の動作電圧および動作温度の変動に応じて変動する。オフセット調整回路26の設計に際しては、この変動も考慮して、個々の遅延素子の遅延量が最も小さい場合でも動作周波数に対応した遅延量が得られるように、各ブロック50〜53に設ける遅延素子DEの段数Nを決定する必要がある。
【0065】
図11は、個々の遅延素子DEの遅延量が変化した場合における、遅延コードとDQS遅延回路25の遅延量との関係を示した図である。
図11において、各遅延素子DEの想定される遅延量が最小の場合をMIN条件とし、各遅延素子DEの想定される遅延量が最大の場合をMAX条件としている。
【0066】
図6、
図11を参照して、ビットレートが533Mbpsのとき、オフセット設定値(offset)を0に設定すると、MAX条件およびMIN条件のいずれの場合でもDQS遅延回路25全体の遅延量を目標遅延(90°遅延)に設定できる。同様に、ビットレートが400Mbps、333Mbps、266Mbpsのときには、オフセット設定値(offset)をそれぞれ1,2,3に設定すると、MAX条件およびMIN条件のいずれの場合でもDQS遅延回路25全体の遅延量を目標遅延(90°遅延)に設定できる。
【0067】
目標遅延の設定範囲の下限値は、オフセット調整回路26の遅延量が最も小さく(オフセット設定値(offset)=0)、かつ、遅延量調整回路27の遅延量が最も小さい(遅延コードが最小)場合において、各遅延素子DEの想定される遅延量が最大の場合(MAX条件)として与えられる。目標遅延の設定範囲の上限値は、オフセット調整回路26の遅延量が最も大きく(オフセット設定値(offset)=3)、かつ、遅延量調整回路27の遅延量が最も大きい(遅延コードが最大)場合において、各遅延素子DEの想定される遅延量が最小の場合(MIN条件)として与えられる。
【0068】
図12は、DQS遅延回路25を構成する各回路の面積の比率の一例を示す図である。
図12では、
図6に示すオフセット調整回路26の面積、
図5に示す遅延量調整回路27を構成する遅延線60の面積、
図5のセレクタ回路61の面積、および
図6の制御モジュール32に設けられるデコード回路の面積の相互の比率が示されている。デコード回路は、バイナリコードをセレクタ回路61に入力される遅延コード41に変換するためのものである。
図12に示すように、オフセット調整回路26の面積は、他の回路の面積に比べて小さく、回路面積の増大が抑制できていることがわかる。
【0069】
[半導体装置1の動作シーケンス]
図13は、
図1の半導体装置1の動作シーケンスの一例を示す図である。
図13には、DRAM装置の動作周波数をf
0からf
1に変更する例が示されている。
【0070】
図1、
図13を参照して、初期状態(時刻t0)では、システムクロックCKの設定周波数がf
0である。この設定周波数f
0に対応するオフセット設定値(offset)をXとする。
【0071】
時刻t1において、メモリコントローラ4は、セルフリフレッシュ開始(SREF:Self Refresh Entry)コマンドを発行する。これにより、セルフリフレッシュ(Self Refresh)期間が開始する。このとき同時に、クロックイネーブル信号CKEがネゲートされる。
【0072】
次の期間t2において、CPU3は、システムクロックCKの設定周波数を変更する。クロックイネーブル信号CKEがネゲートされているので、周波数変更の途中でシステムクロックCKが停止しても問題は生じない。次の期間t3は、システムクロックCKの周波数がf
1で安定するまでの待ち時間である。
【0073】
次の時刻t4に、メモリコントローラ4は、セルフリフレッシュ終了(SRE:Self Refresh Exit)コマンドを発行する。これによってセルフリフレッシュ期間が終了する。このとき同時に、クロックイネーブル信号CKEがアサートされる。
【0074】
次の時刻t5に、メモリコントローラ4は、オフセット設定値を設定周波数f
1に対応する値(Y)に切替える。メモリコントローラ4は、さらに、この時点でDRAM装置2が実行可能な処理コマンド(たとえば、プリチャージコマンドなど)を発行する。
【0075】
次の時刻t6に、メモリコントローラ4は、オートリフレッシュ(REF:Auto Refresh)コマンドを発行する。さらに、メモリコントローラ4はキャリブレーション信号をアサートし、これによって、インターフェース回路5の動作状態がキャリブレーションモードになる。
図6のキャリブレーション制御回路31は、変更後のオフセット設定値(Y)に基づいて、
図6のDQS遅延回路25に設けられた遅延量調整回路27のキャリブレーションを行なう。遅延量調整回路27のキャリブレーションには15サイクル(cycle)以上かかる。
【0076】
DRAM装置2のリフレッシュおよび遅延量調整回路27のキャリブレーションが終了した時刻t7以降に通常のDRAMアクセスが開始する。
【0077】
[まとめ]
以上のとおり、実施の形態1による半導体装置1によれば、
図2、
図6に示すように、オフセット設定値に応じて遅延量を調整可能なオフセット調整回路26を備えたDQS遅延回路25が提供される。これによって、遅延量調整回路27に設けられた遅延線を増加させることなく、最大動作周波数の増加と対応可能な周波数範囲の拡大を実現できる。
【0078】
さらに、遅延量調整回路27に設けられた遅延線を構成する単位遅延素子の遅延量を比較的小さく設計することで、目標遅延に対する遅延誤差の低減が可能となる。キャリブレーション実行時には、遅延量調整回路27に設けられた遅延量の比較的小さな遅延素子を用いて遅延量を精度良く調整できる。
【0079】
オフセット調整回路26の各ブロックの遅延量(遅延素子DEの個数)は、製造条件、動作温度および動作電圧の変動に伴う単位遅延素子DEの遅延量の変動を考慮して決定される。したがって、遅延量調整回路27に設ける遅延素子の個数を増加させる必要はない。
【0080】
さらに、オフセット調整回路26に設けられた各遅延素子DEを構成するMOSトランジスタの閾値電圧は、遅延量調整回路27に設けられた各遅延素子を構成するMOSトランジスタの閾値電圧よりも大きくなるようにする。これによって、オフセット調整回路26に設けられた各遅延素子DEの遅延量を、遅延量調整回路の各遅延素子の遅延量よりも大きくすることができるので、オフセット調整回路26を新たに設けたことによる回路面積の増大を抑制することができる。
【0081】
<実施の形態2>
図14は、この発明の実施の形態2による半導体装置に設けられたDQS遅延回路25Aの構成を示す図である。
【0082】
図14のDQS遅延回路25Aは、オフセット調整回路26Aの構成が
図6のDQS遅延回路25の場合と異なる。
図6のオフセット調整回路26では各ブロック50〜53に設けられた遅延素子の個数が同じであった。これに対して、
図14のオフセット調整回路26Aでは、遅延線を構成する各ブロック51A,52A,53Aに設けられた遅延素子の個数が異なる。
【0083】
具体的に、
図14のブロック51A,52A,53Aは、
図6のブロック51,52,53にそれぞれ対応する。たとえば、ブロック51AにはN段の遅延素子DEが設けられ、ブロック52Aには2N段の遅延素子DEが設けられ、ブロック53Aには4N段の遅延素子DEが設けられる。詳しくは後述するように、各ブロックを構成する遅延素子の個数を異ならせることによって、実施の形態1の場合に比べて、動作周波数の設定範囲を拡大することができる。
【0084】
なお、
図14のオフセット調整回路26Aには、
図6のブロック50に対応するブロックが設けられていない。
図14においてオフセット設定値として0が設定された場合には、ストローブ信号DQSは、遅延素子DEを介さずに遅延量調整回路27に入力される。この場合、DQS遅延回路25A全体の遅延量は、遅延量調整回路27によって調整される。
図14のその他の構成は
図6の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【0085】
図15は、
図14のオフセット調整回路26Aの場合において、メモリコントローラ4に記憶された変換テーブルの一例を示す図である。
図15の例では、概ね200Mbpsから800Mbpsまでのビットレート(DRAM装置の動作周波数fに等しい)に対してオフセット設定値が定められており、動作周波数の設定範囲が
図7の場合に比べて拡大されている。
【0086】
図16は、
図14のDQS遅延回路25Aにおいて、遅延コードと遅延量との関係を示した図である。
図16を参照して、半導体装置の製造条件、動作温度および動作電圧が変動したとき、想定される各遅延素子DEの遅延量が最大の場合をMAX条件と記載し、想定される各遅延素子DEの遅延量が最小の場合をMIN条件と記載している。オフセット設定値(offset)が0〜3のときの目標遅延の設定範囲をそれぞれR0〜R3とすると、目標遅延の設定範囲R0〜R3は重複なく連続している。
【0087】
上記のように目標遅延の設定範囲R0〜R3を重複なく連続的に並べるためには、MIN条件でオフセット設定値が0のときに遅延量調整回路27の遅延量が最大の場合における遅延回路全体の遅延量(目標遅延設定範囲のR0の上限)と、MAX条件でオフセット設定値が1のときに遅延量調整回路27の遅延量が最小の場合における遅延回路全体の遅延量(目標遅延設定範囲のR1の下限)とを一致させる。同様に、MIN条件でオフセット設定値が1のときに遅延量調整回路27の遅延量が最大の場合における遅延回路全体の遅延量(目標遅延設定範囲のR1の上限)と、MAX条件でオフセット設定値が2のときに遅延量調整回路27の遅延量が最小の場合における遅延回路全体の遅延量(目標遅延設定範囲のR2の下限)とを一致させる。さらに、MIN条件でオフセット設定値が2のときに遅延量調整回路27の遅延量が最大の場合における遅延回路全体の遅延量(目標遅延設定範囲のR2の上限)と、MAX条件でオフセット設定値が3のときに遅延量調整回路27の遅延量が最小の場合における遅延回路全体の遅延量(目標遅延設定範囲のR3の下限)とを一致させる。
【0088】
上記をより一般的に言えば次のようになる。オフセット調整回路26に設けられた直列接続された複数の遅延素子DEが第1番目から第M番目までのM個のブロックに区分されるとする。この場合に、1以上M以下の整数をiとしたとき、セレクタ回路59は、オフセット設定値に応じて、M個のブロックをいずれも通過しないか、もしくは、M個のブロックのうち第1番目から第i番目までのi個のブロックを順に通過したストローブ信号DQSを出力する。ここで、1以上M−1以下の整数をjとしたとき、第1番目から第j番目までのj個のブロックを通過した信号がオフセット調整回路26から出力される場合でありかつMIN条件のときに遅延回路全体で設定可能な遅延量の最大値は、第1番目から第j+1番目までのj+1個のブロックを通過した信号がオフセット調整回路26から出力される場合でありかつMAX条件のときに遅延回路全体で設定可能な遅延量の最小値に等しいかそれよりも大きい。前者が後者に等しい場合は、各オフセット設定値に対する目標遅延設定範囲が重複なく連続している場合である。前者が後者よりも大きい場合は、各オフセット設定値に対する目標遅延設定範囲が相互に重複している場合である。
【0089】
このようにオフセット設定値に対応する目標遅延設定範囲R0〜R
3を相互に重複させないことによって、実施の形態1の場合よりも、DQS遅延回路25A全体での目標遅延の設定範囲を拡大することができる。その他の実施の形態2による効果は、実施の形態1の場合と同様である。たとえば、遅延量調整回路27に設けられる単位遅延素子DEの遅延量を比較的に小さく設定することによって、遅延誤差の低減効果が得られる。以下、
図17、
図18を参照して、目標遅延の設定範囲に関してさらに説明する。
【0090】
図17は、各遅延線に設けられた遅延素子の段数を決定する手順について説明するための図である。
【0091】
図17(A)を参照して、最初に、オフセット設定値が0の場合の遅延特性(DQS遅延回路全体の遅延量と遅延コードの関係)をプロットして、目標遅延設定範囲R0を確認する。MIN条件で遅延コードが最大のときが、目標遅延設定範囲R0の上限となる。
【0092】
次に、
図17(B)を参照して、目標遅延設定範囲R0の上限値と、オフセット設定値=1の場合においてMAX条件で遅延コードが最小のときの遅延量とが一致するように、図
14のブロック51Aの遅延量(遅延素子の個数)を決定する。ブロック51Aの遅延量(遅延素子の個数)に応じて、
図17(B)のオフセット追加分が決まる。このようにブロック51Aの遅延量を決定することによって、オフセット設定値=0の場合の目標遅延の設定範囲R0と、オフセット設定値=1の場合の目標遅延の設定範囲R1とが重複することなく、これらの領域R0,R1の境界が一致する。
【0093】
次に、
図17(C)を参照して、目標遅延設定範囲R1の上限値と、オフセット設定値=2の場合においてMAX条件で遅延コードが最小のときの遅延量とが一致するように、図
14のブロック52Aの遅延量(遅延素子の個数)を決定する。ブロック52Aの遅延量(遅延素子の個数)に応じて、
図17(C)のオフセット追加分が決まる。以上を繰返すことによって、DQS遅延回路全体での目標遅延の設定範囲を拡大することができる。
【0094】
なお、
図17(B)のオフセット追加分よりも
図17(C)のオフセット追加分が小さくなっている。言い換えると、図
14のブロック51Aの遅延量(遅延素子数)よりもブロック52Aの遅延量(遅延素子数)のほうが小さい。この関係をより一般的に言えば次のようになる。
【0095】
オフセット調整回路26
Aに設けられた直列接続された複数の遅延素子DEが第1番目から第M番目までのM個のブロックに区分されるとする。この場合に、1以上M以下の整数をiとしたとき、セレクタ回路59は、オフセット設定値に応じて、M個のブロックをいずれも通過しないか、もしくは、M個のブロックのうち第1番目から第i番目までのi個のブロックを順に通過したストローブ信号DQSを出力する。ここで、1以上M−1以下の整数をjとしたとき、第j番目のブロックに含まれる遅延素子の個数は、第j+1番目のブロックに含まれる遅延素子の個数よりも大きい。
【0096】
図18は、
図17の比較例として、各遅延線に設けられた遅延素子の段数が不適切な場合を説明するための図である。
図18(A)は
図17(A)と同じである。MIN条件で遅延コードが最大のときが、目標遅延設定範囲R0の上限となる。
【0097】
図18(B)を参照して、目標遅延設定範囲R0の上限値よりも、オフセット設定値=1の場合におけるMAX条件での遅延コード最小のときの遅延量(目標遅延設定範囲R1の下限値)が大きくなると、目標遅延設定範囲R0と目標遅延設定範囲R1とに隙間が生じる。この隙間の部分には、遅延量を設定することができない。
図17(B)の場合と比較すると、
図18(B)の場合のほうがブロック51Aの遅延量(遅延素子の個数)を大きく設定している。このため、オフセット追加分が大きくなりすぎてしまい、領域R0,R1間に隙間が生じる。
【0098】
同様に、
図18(C)を参照して、目標遅延設定範囲R1の上限値よりも、オフセット設定値=2の場合におけるMAX条件での遅延コード最小のときの遅延量(目標遅延設定範囲R2の下限値)が大きくなると、目標遅延設定範囲R1と目標遅延設定範囲R2とに隙間が生じる。
図17(C)の場合と比較すると、
図18(C)の場合のほうがブロック52Aの遅延量(遅延素子の個数)を大きく設定している。このため、オフセット追加分が大きくなりすぎてしまい、領域R1,R2間に隙間が生じる。
【0099】
<実施の形態3>
実施の形態3におけるインターフェース回路5は、動作モードとしてテストモードをさらに有する。テストモードでは、DQS遅延回路の遅延量を通常モードの遅延量(90°)よりも小さくして、セットアップ・マージンテストを行なえるようにする。通常モードとテストモードの切替は、バイパス・イネーブル信号(bypass_en)を用いて行われる。以下、
図19、
図20を参照して具体的に説明する。
【0100】
図19は、この発明の実施の形態3による半導体装置に設けられたDQS遅延回路25Bの構成を示す図である。
図19のDQS遅延回路25Bのオフセット調整回路26Bには、テストモード用として1または複数のバイパス線路が設けられる。各バイパス線路は、通常モード時に使用される遅延線の一部と並列に設けられる。バイパス線路の遅延量は、DQS遅延回路25B全体の特性に基づいて決定される。
【0101】
具体的に
図19のオフセット調整回路26Bの場合には、
図6で説明したブロック50〜53の各々と並列にバイパス線路が設けられる。各バイパス線路は1個の遅延素子DEのみを含むので、バイパス線路の遅延量は並列接続された対応のブロックの遅延量よりも小さい。
【0102】
オフセット調整回路26Bは、さらに、セレクタ回路54〜57を含む。セレクタ回路54は、バイパス・イネーブル信号43が活性化されHレベル(“1”)を示すとき、ブロック50を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路59に出力する。同様に、セレクタ回路55は、バイパス・イネーブル信号43が活性化されているとき、ブロック51を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路59に出力する。セレクタ回路56は、バイパス・イネーブル信号43が活性化されているとき、ブロック52を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路59に出力する。セレクタ回路57は、バイパス・イネーブル信号43が活性化されているとき、ブロック53を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路59に出力する。
【0103】
図19のDQS遅延回路25
Bは、さらに、
図6のオフセット制御回路30に代えて、オフセット・バイパス制御回路30Aを含む。オフセット・バイパス制御回路30Aは、上記のバイパス・イネーブル信号43と既に説明したオフセット設定値14とを、メモリコントローラ4の制御に基づいて出力する。
【0104】
上記の構成によれば、オフセット設定値=0でありかつバイパス・イネーブル信号43が活性化されている場合には、ブロック50と並列接続されたバイパス線路を通過したストローブ信号DQSが後段の遅延量調整回路27に供給される。オフセット設定値=1でありかつバイパス・イネーブル信号43が活性化されている場合には、ブロック50およびブロック51と並列接続されたバイパス線路を通過したストローブ信号DQSが後段の遅延量調整回路27に供給される。同様に、オフセット設定値=2でありかつバイパス・イネーブル信号43が活性化されている場合には、ブロック50,51およびブロック52と並列接続されたバイパス線路を通過したストローブ信号DQSが後段の遅延量調整回路27に供給される。オフセット設定値=3でありかつバイパス・イネーブル信号43が活性化されている場合には、ブロック50〜52およびブロック53と並列接続されたバイパス線路を通過したストローブ信号DQSが後段の遅延量調整回路27に供給される。
【0105】
図20は、
図19のDQS遅延回路25Bにおいて、オフセット値が0の場合の遅延コードと遅延回路全体の遅延量との関係を示す図である。
【0106】
図20を参照して、通常モード時の90度の遅延量TG90に代えて、45度の遅延量TG45でセットアップ・マージンテストを実施する場合について説明する。この場合、遅延量が概ね45度になるように、各バイパス線路の遅延量が予め設定される。
【0107】
バイパス・イネーブル信号が活性化すると、DQS遅延回路25Bの遅延量と遅延コード41との関係を示す直線は、その傾きを維持したまま下方向へシフトする。これにより、通常モードでは遅延コードを最小値に設定しても生成不可能であった45度遅延の状態を生成でき、セットアップ・マージンテストが可能となる。
【0108】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。