(57)【特許請求の範囲】
【請求項１】
半導体装置であって、
設定された周波数のクロック信号を生成するクロック生成器と、
前記クロック信号に基づいて外部のメモリ装置に動作クロックを供給し、前記メモリ装置からデータ信号およびストローブ信号を受信するインターフェース回路とを備え、
前記インターフェース回路は、
受信した前記ストローブ信号を遅延させる遅延回路と、
前記遅延回路による遅延後の前記ストローブ信号のエッジのタイミングで、前記データ信号をサンプリングするデータ検出回路とを含み、
前記遅延回路は、
前記ストローブ信号の遅延量を、前記クロック信号の設定周波数に応じた複数段階に調整可能な第１の調整回路と、
前記第１の調整回路と直列に接続され、前記ストローブ信号の遅延量を、前記第１の調整回路よりも細かい精度で調整可能な第２の調整回路とを含み、
前記第１の調整回路は、
互いに直列接続された複数の遅延素子と、
前記ストローブ信号が前記第１の調整回路から出力されるまでに通過する遅延素子数を、与えられた遅延量設定値に応じて切替える選択回路とを含み、
前記半導体装置は、
前記クロック信号の周波数を設定する中央処理装置と、
前記クロック信号の設定周波数に関する情報を受け、前記設定周波数と前記遅延量設定値との間の予め定められた対応関係に基づいて、前記選択回路に前記遅延量設定値を出力する制御回路とをさらに備え、
前記対応関係は、前記ストローブ信号が前記第１の調整回路から出力されるまでに通過する遅延素子数が、前記設定周波数が小さいほど増加するように定められる、半導体装置。
【請求項２】
前記第２の調整回路は、互いに直列接続された複数の遅延素子を含み、
前記インターフェース回路は、動作モードとして、前記遅延回路の遅延量を調整するキャリブレーションモードと、調整された遅延量で前記ストローブ信号を遅延させる通常モードとを有し、
前記インターフェース回路は、前記キャリブレーションモード時に、前記第２の調整回路の遅延量を調整するキャリブレーション制御回路をさらに含み、
前記キャリブレーション制御回路は、前記第１の調整回路の遅延量が前記設定周波数に応じて設定された後に、前記遅延回路全体の遅延量が前記クロック信号に応じて定まる目標遅延に一致するように、前記ストローブ信号が前記第２の調整回路に入力してから出力するまでの間に通過する遅延素子数を決定する、請求項１に記載の半導体装置。
【請求項３】
前記第１の調整回路に設けられた複数の遅延素子は、各々が複数の遅延素子を含む第１番目から第Ｍ番目までのＭ個のブロックに区分され、
１以上Ｍ以下の整数をｉとしたとき、前記選択回路は、前記遅延量設定値に応じて、前記Ｍ個のブロックのいずれも通過しないか、もしくは、前記Ｍ個のブロックのうち第１番目から第ｉ番目までのｉ個のブロックを順に通過した前記ストローブ信号を出力し、
前記Ｍ個のブロックの各々に含まれる遅延素子の個数は、ブロックごとに異なる、請求項２に記載の半導体装置。
【請求項４】
１以上Ｍ−１以下の整数をｊとしたとき、第ｊ番目のブロックに含まれる遅延素子の個数は、第ｊ＋１番目のブロックに含まれる遅延素子の個数よりも大きい、請求項３に記載の半導体装置。
【請求項５】
前記第１および第２の調整回路の各々に設けられた各遅延素子の遅延量は、前記半導体装置の製造条件、動作温度および動作電圧が変動するのに応じて変動し、
１以上Ｍ−１以下の整数をｊとしたとき、第１番目から第ｊ番目までのｊ個のブロックを通過した信号が前記第１の調整回路から出力される場合において、各遅延素子が想定される最小の遅延量を有するときに前記遅延回路全体で設定可能な遅延量の最大値は、第１番目から第ｊ＋１番目までのｊ＋１個のブロックを通過した信号が前記第１の調整回路から出力される場合において、各遅延素子が想定される最大の遅延量を有するときに前記遅延回路全体で設定可能な遅延量の最小値に等しいかそれよりも大きい、請求項３に記載の半導体装置。
【請求項６】
前記インターフェース回路は、動作モードとしてテストモードをさらに有し、
前記第１の調整回路は、１または複数のバイパス線を有し、
前記１または複数のバイパス線の各々は、前記第１の調整回路に設けられた複数の遅延素子の一部と並列に接続され、並列接続された一部の遅延素子全体の遅延量よりも小さな遅延量を有し、
前記第１の調整回路は、前記テストモード時には、前記通常モード時に前記ストローブ信号が通過する複数の遅延素子の一部に代えて、並列接続されたバイパス線を通過した前記ストローブ信号を出力する、請求項２に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、メモリ装置との間でデータの入出力を行なうインターフェース回路を備えた半導体装置に関し、特に、ダブルデータレート（ＤＤＲ：Double  data  rate）のシンクロナスメモリ（Synchronous  Memory）との間でデータの入出力を行なう半導体装置に関する。
【背景技術】
【０００２】
ダブルデータレートでデータの入出力を行なうシンクロナスメモリとして、たとえば、ＤＤＲ−ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）が知られている。ＤＤＲ−ＳＤＲＡＭは、クロック同期方式の高速通信を行なうために、データ信号とそれに同期したストローブ信号とを出力する。ＤＤＲ−ＳＤＲＡＭが出力するデータ信号のエッジとストローブ信号のエッジとは一致している。【０００３】
ＤＤＲ−ＳＤＲＡＭから出力されたデータ信号およびストローブ信号を受けるインターフェース回路には、受信されたストローブ信号を１／４周期分遅延させる遅延回路が必要となる。入力されたストローブ信号を１／４周期分（９０度の位相分）遅延させることによって、ストローブ信号の立上がりエッジおよび立下がりエッジの両方のタイミングでデータ信号を取り込むことができる。【０００４】
ストローブ信号の遅延量を調整するための回路として、たとえば、特開２００８−３１１９９９号公報（特許文献１）に記載された回路が知られている。この回路は、遅延量が可変の可変遅延部と、位相比較部と、遅延制御部とを含む。位相比較部は、入力バッファゲートからのストローブ信号の位相と可変遅延部からの遅延信号の位相とを比較する。遅延制御部は、位相比較部の比較結果に基づいて可変遅延部の遅延量を設定する。【０００５】
ＤＤＲ−ＳＤＲＡＭの動作クロックは、上記のインターフェース回路から外部クロックとして供給される。ＤＤＲ−ＳＤＲＡＭはこの外部クロックに同期してデータの入出力を行なう。したがって、ＤＤＲ−ＳＤＲＡＭには、外部クロックに正確に同期した内部クロックを再生する再生回路が設けられている。このような再生回路として、たとえば、ＰＬＬ（Phase  lock  loop）回路（たとえば、特開２０００−３２３９６９号公報（特許文献２）参照）、またはＤＬＬ（Delay  Lock  Loop）回路（たとえば、特開２００９−２１７０６号公報（特許文献３）参照）、またはＳＭＤ（Synchronous  Mirror  Delay）回路（たとえば、特開２０００−３１１０２８号公報（特許文献４）参照）などが用いられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−３１１９９９号公報
【特許文献２】特開２０００−３２３９６９号公報
【特許文献３】特開２００９−２１７０６号公報
【特許文献４】特開２０００−３１１０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、上記のインターフェース回路に設けられた遅延回路では、ストローブ信号の周波数、すなわち、メモリ装置の動作周波数に応じた目標遅延に遅延回路の遅延量を正確に一致させる必要がある。特に、近年のメモリ装置は、低消費電力化のために、メモリ装置の動作周波数を切替えて使用する場合がある。このため、従来よりも広い周波数範囲に対して遅延量を調整する必要がある。【０００８】
通常、遅延回路は、縦続接続された多数の遅延素子（たとえば、インバータ）によって構成される。ストローブ信号の遅延量は、ストローブ信号が通過する遅延素子の段数を切替えることによって調整される。このため、従来は、広範な周波数範囲に対応するために遅延素子数の増大が避けられず、遅延回路の面積が増大を招いていた。【０００９】
一方、単純に個々の遅延素子の遅延量を大きくした場合には、メモリ装置の動作周波数に応じた目標遅延に対する誤差が増大する。この結果、メモリ装置からのデータ読出時におけるセットアップタイムまたはホールドタイムのマージンの減少という問題が生じる。【００１０】
この発明の目的は、メモリ装置からデータ信号およびストローブ信号を受けるインターフェース回路を備えた半導体装置において、ストローブ信号を遅延させる遅延回路の面積の増大をできるだけ抑えながら、より広い周波数範囲に対して正確な遅延量の調整を可能にすることである。
【課題を解決するための手段】
【００１１】
この発明の実施の一形態による半導体装置は、設定された周波数のクロック信号を生成するクロック生成器と、インターフェース回路とを備える。インターフェース回路は、クロック信号に基づいて外部メモリ装置に動作クロックを供給し、外部メモリ装置からデータ信号およびストローブ信号を受信する。インターフェース回路は、受信したストローブ信号を遅延させる遅延回路と、遅延回路によって遅延されたストローブ信号のエッジのタイミングで、データ信号をサンプリングするデータ検出回路とを含む。遅延回路は、第１の調整回路と、第１の調整回路と直列に接続された第２の調整回路とを含む。第１の調整回路は、ストローブ信号の遅延量を、クロック信号の設定周波数に応じた複数段階に調整可能である。第２の調整回路は、ストローブ信号の遅延量を、第１の調整回路よりも細かい精度で調整可能である。
【発明の効果】
【００１２】
上記の実施の形態によれば、ストローブ信号を遅延させる遅延回路が、第１の調整回路と、第１の調整回路よりも細かい精度の調整が可能な第２の調整回路によって構成される。第１の調整回路の遅延量は、クロック信号の設定周波数に応じて複数段階に調整されるので、遅延回路の面積の増大を抑えながら、より広い周波数範囲に対して正確な遅延量の調整が可能になる。
【図面の簡単な説明】
【００１３】
【図１】この発明の実施の形態１による半導体装置１の構成を示すブロック図である。
【図２】図１のインターフェース回路５の一部の構成を示すブロック図である。
【図３】ストローブ信号ＤＱＳ、データ信号ＤＱ、および遅延後のストローブ信号ＤＱＳ９０の波形を模式的に示す図である。
【図４】クロック信号ＣＬＫａ，ＣＬＫｂおよび遅延パルスＤＱＳ９０の波形を模式的に示す図である。
【図５】図２の遅延量調整回路２７の構成の一例を示す図である。
【図６】図２のオフセット調整回路２６の構成の一例を示す図である。
【図７】図１のメモリコントローラ４に記憶された変換テーブルの一例を示す図である。
【図８】比較例のＤＱＳ遅延回路において、遅延コードと遅延量との関係を模式的に示す図である（遅延量の切替幅が比較的大きい場合）。
【図９】比較例のＤＱＳ遅延回路において、遅延コードと遅延量との関係を模式的に示す図である（遅延量の切替幅が比較的小さい場合）。
【図１０】図６のＤＱＳ遅延回路２５において、遅延コード４１と遅延量との関係を模式的に示す図である。
【図１１】個々の遅延素子ＤＥの遅延量が変化した場合における、遅延コードとＤＱＳ遅延回路２５の遅延量との関係を示した図である。
【図１２】ＤＱＳ遅延回路２５を構成する各回路の面積の比率の一例を示す図である。
【図１３】図１の半導体装置１の動作シーケンスの一例を示す図である。
【図１４】この発明の実施の形態２による半導体装置に設けられたＤＱＳ遅延回路２５Ａの構成を示す図である。
【図１５】図１４のオフセット調整回路２６Ａの場合に、メモリコントローラ４に記憶された変換テーブルの一例を示す図である。
【図１６】図１４のＤＱＳ遅延回路２５Ａにおいて、遅延コードと遅延量との関係を示した図である。
【図１７】各遅延線に設けられた遅延素子の段数を決定する手順について説明するための図である。
【図１８】図１７の比較例として、各遅延線に設けられた遅延素子の段数が不適切な場合を説明するための図である。
【図１９】この発明の実施の形態３による半導体装置に設けられたＤＱＳ遅延回路２５Ｂの構成を示す図である。
【図２０】図１９のＤＱＳ遅延回路２５Ｂにおいて、オフセット値が０の場合の遅延コードと遅延回路全体の遅延量との関係を示す図である。
【発明を実施するための形態】
【００１４】
以下、この発明の実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１５】
＜実施の形態１＞
［半導体装置１の全体構成］
図１は、この発明の実施の形態１による半導体装置１の構成を示すブロック図である。図１を参照して、半導体装置１は、多数の機能ブロックが半導体基板上に集積されたＳｏＣ（System  on  Chip）として構成される。具体的に、半導体装置１は、半導体装置全体を制御する中央処理装置（ＣＰＵ：Central  Processing  Unit）３、インターフェース回路５、メモリコントローラ（ＭＥＭＣ：Memory  Controller）４、ＰＬＬ回路６、およびクロック生成器７などを含む。
【００１６】
インターフェース回路５は、外部のＤＲＡＭ（Dynamic  Random  Access  Memory）装置２（ＤＤＲ−ＳＤＲＡＭ）と接続される。インターフェース回路５は、ＤＲＡＭ装置２をダブルデータレートでアクセスするための物理インターフェース（Physical  Interface：ＤＤＲ−ＰＨＹ）である。具体的に、インターフェース回路５は、ＤＲＡＭ装置２に向けて、クロック、各種コマンド、アドレス信号（ロウアドレス、カラムアドレス）、およびデータマスク信号などを出力する。
【００１７】
インターフェース回路５は、さらに、ＤＲＡＭ装置２との間でデータ信号ＤＱおよびストローブ信号ＤＱＳの入出力を行なう。ＤＲＡＭ装置２からインターフェース回路５へのデータ読出時には、ＤＲＡＭ装置２は、データ信号ＤＱのエッジとストローブ信号ＤＱＳのエッジとを一致させて出力する。この場合、インターフェース回路５においてストローブ信号ＤＱＳの位相を９０度（１／４周期分）遅延させることによって、ストローブ信号ＤＱＳの立上がりエッジおよび立下がりエッジの両方でデータサンプリングが行われる。逆に、インターフェース回路５からＤＲＡＭ装置２へのデータ書込時には、インターフェース回路５は、ストローブ信号ＤＱＳのエッジをデータアイの中央に合わせてＤＲＡＭ装置２に向けて出力する。
【００１８】
メモリコントローラ４は、インターフェース回路５に接続されるとともに、バス８を介してＣＰＵ３と接続される。メモリコントローラ４は、ＣＰＵ３の指令に従って、インターフェース回路５の動作を制御する。具体的に、メモリコントローラ４は、インターフェース回路５に向けてコマンド、アドレス、書込データ、および動作設定のための信号などを出力し、インターフェース回路５から読出データを受ける。メモリコントローラ４は、さらに、インターフェース回路５に設けられたオフセット調整回路２６（図２で説明する）に対してオフセット設定値１４を出力する。
【００１９】
ＰＬＬ回路６は基準クロックを生成し、クロック生成器７はＰＬＬ回路６から出力された基準クロックに基づいてシステムクロックＣＫを生成する。ＰＬＬ回路６およびクロック生成器７の動作は、ＣＰＵ３からの制御信号１１，１２によって制御される。これによって、システムクロックＣＫの周波数が設定される。生成されたシステムクロックＣＫは、半導体装置１の各部（ＣＰＵ３、メモリコントローラ４、およびインターフェース回路５など）に供給される。インターフェース回路５は、このシステムクロックＣＫに基づいてＤＲＡＭ装置２の動作クロックを供給する。したがって、ＤＲＡＭ装置２の動作周波数は、システムクロックＣＫの設定周波数に応じて決まる。
【００２０】
システムクロックＣＫの設定周波数に関する情報（クロック情報）１３は、クロック生成器７からメモリコントローラ４に与えられる。メモリコントローラ４には、システムクロックＣＫの設定周波数（ＤＲＡＭ装置２の動作周波数）をオフセット設定値１４に変換するための変換テーブル４Ａが格納されている。メモリコントローラ４は、変換テーブル４Ａに基づいて設定周波数に対応するオフセット設定値１４を決定し、決定したオフセット設定値１４をインターフェース回路５に設けられた図２のオフセット調整回路２６に出力する。
【００２１】
［インターフェース回路５の構成および動作の概略］
図２は、図１のインターフェース回路５の一部の構成を示すブロック図である。図２には、図１のインターフェース回路５のうち、ＤＲＡＭ装置２からのデータ読出に関係する構成が示されている。さらに、図２には、図１のメモリコントローラ４、ならびにデータ信号ＤＱおよびストローブ信号ＤＱＳをそれぞれ入出力するための端子２０，２１も示される。
【００２２】
図２を参照して、インターフェース回路５は、入出力（Ｉ／Ｏ）バッファアンプ２２，２３と、セレクタ（Selector）回路２４と、ＤＱＳ遅延回路２５と、データ検出回路２８と、オフセット制御回路３０と、キャリブレーション制御回路３１とを含む。
【００２３】
図１のＤＲＡＭ装置２から端子２０に入力されたデータ信号ＤＱは、バッファアンプ２２を介してデータ検出回路２８に入力される。ＤＲＡＭ装置２から端子２１に入力されたストローブ信号ＤＱＳは、バッファアンプ２３を介してセレクタ回路２４に入力される。
【００２４】
セレクタ回路２４は、インターフェース回路５の通常動作時には、バッファアンプ２３を介して入力されたストローブ信号ＤＱＳを選択して、後段のＤＱＳ遅延回路２５に出力する。一方、セレクタ回路２４は、インターフェース回路５のキャリブレーション動作時には、キャリブレーション制御回路３１から出力されたパルス信号を後段のＤＱＳ遅延回路２５に出力する。
【００２５】
上記のインターフェース回路５の動作モード（通常モードおよびキャリブレーションモード）と、動作モードに対応したセレクタ回路２４の選択動作とは、メモリコントローラ４によって制御される。キャリブレーションモード時にＤＱＳ遅延回路２５の遅延量が調整され、通常モード時には、キャリブレーションモード時に調整された遅延量でストローブ信号ＤＱＳが遅延される。
【００２６】
ＤＱＳ遅延回路２５は、ストローブ信号ＤＱＳの位相を９０度（１／４波長分）遅延させるために設けられる。ＤＱＳ遅延回路２５は、互いに直列に接続されたオフセット調整回路（第１の調整回路）２６と、遅延量調整回路（第２の調整回路）２７とを含む。オフセット調整回路２６は、ストローブ信号ＤＱＳの遅延量を、オフセット設定値１４（システムクロックＣＫの設定周波数に対応する）に応じて複数段階に粗調整可能である。遅延量調整回路２７は、ストローブ信号ＤＱＳの遅延量を、キャリブレーション制御回路３１から出力された遅延コード４１に従って、オフセット調整回路２６よりも細かい精度で微調整可能である。オフセット調整回路２６および遅延量調整回路２７の接続順序を図２とは逆順に、すなわち、オフセット調整回路２６が遅延量調整回路２７の後段に設けられるようにしてもよい。
【００２７】
データ検出回路２８は、データ信号ＤＱと、ＤＱＳ遅延回路２５による遅延後のストローブ信号ＤＱＳ９０とを受ける。データ検出回路２８は、遅延後のストローブ信号ＤＱＳ９０の立上がりエッジおよび立下がりエッジの両方のタイミングで、データ信号ＤＱをサンプリングする。
【００２８】
図３は、ストローブ信号ＤＱＳ、データ信号ＤＱ、および遅延後のストローブ信号ＤＱＳ９０の波形を模式的に示す図である。
【００２９】
図２、図３を参照して、図１のＤＲＡＭ装置２から入力されたデータ信号ＤＱのエッジ（時刻ｔ１，ｔ３，ｔ５，ｔ７）とストローブ信号ＤＱＳのエッジとは一致している。ＤＱＳ遅延回路２５は、ストローブ信号ＤＱＳ９０を１／４周期分（９０度の位相分）遅延させる。データ検出回路２８は、図２のＤＱＳ遅延回路２５から出力された遅延後のストローブ信号ＤＱＳ９０によってデータ信号ＤＱをサンプリングする。この結果、データ検出回路２８は、各データＤ０，Ｄ１，Ｄ２，Ｄ３をデータアイの中央の位置（時刻ｔ２，ｔ４，ｔ６，ｔ８）で取り込むことができる。
【００３０】
再び、図２を参照して、オフセット制御回路３０は、システムクロックＣＫの設定周波数に対応したオフセット設定値１４をオフセット調整回路２６に出力する。前述のように、システムクロックＣＫの設定周波数（図１のＤＲＡＭ装置２の動作周波数）とオフセット設定値１４との対応関係は、メモリコントローラ４に変換テーブル４Ａとして格納されている。この変換テーブル４Ａに基づいたオフセット設定値１４が、オフセット調整回路２６に入力される。オフセット調整回路２６の遅延量はオフセット設定値１４に応じて決定される。
【００３１】
キャリブレーション制御回路３１は、キャリブレーションモード時に、オフセット調整回路２６の遅延量がオフセット設定値１４に対応して設定された後に、ＤＱＳ遅延回路２５全体の遅延量がシステムクロックＣＫに応じて定まる目標遅延（具体的には、ＤＲＡＭ装置２の動作周波数に対応する周期の１／４）に一致するように、遅延量調整回路２７の遅延量を調整する。
【００３２】
具体的に、キャリブレーション制御回路３１は、パルス生成器３４および位相比較器３５を有する信号処理部３３と、制御モジュール３２とを含む。パルス生成器３４は、クロック信号ＣＬＫａをトリガとしてワンショットパルスを発生する。位相比較器３５は、パルス生成器３４から出力されたパルスがＤＱＳ遅延回路２５を通過することによって生成された遅延パルスＤＱＳ９０の位相と、クロック信号ＣＬＫｂの位相とを比較する。
【００３３】
パルス生成器３４および位相比較器３５はＤフリップフロップ（F/F：Flip  Flop）によって構成することができる。この明細書では、パルス生成器３４を構成するＤフリップフロップを発射フリップフロップ（Launch  F/F）とも称し、位相比較器３５を構成するＤフリップフロップを捕捉フリップフロップ（Capture  F/F）とも称する。
【００３４】
クロック信号ＣＬＫｂの位相は、クロック信号ＣＬＫａの位相よりも９０度遅れるように調整されている。クロック信号ＣＬＫａ，ＣＬＫｂは、図１のクロック生成器７から供給されるようにしてもよいし、システムクロックＣＫに基づいてインターフェース回路５が生成するようにしてもよい。システムクロックＣＫをクロック信号ＣＬＫａとして用いてもよい。
【００３５】
制御モジュール３２は、キャリブレーションモード時に、位相比較器３５による比較結果に基づいて、ＤＱＳ遅延回路２５から出力された遅延パルスＤＱＳ９０の位相と、クロック信号ＣＬＫｂの位相が一致するように遅延コード４１を調整する。遅延コード４１は、遅延量調整回路２７の遅延量に対応している。
【００３６】
図４は、クロック信号ＣＬＫａ，ＣＬＫｂおよび遅延パルスＤＱＳ９０の波形を模式的に示す図である。
【００３７】
図２、図４を参照して、クロック信号ＣＬＫｂの位相は、クロック信号ＣＬＫａの位相よりも９０度遅れている。すなわち、クロック信号ＣＬＫａが立上がる時刻ｔ１よりも９０度位相が遅れた時刻ｔ２にクロック信号ＣＬＫｂが立上がる。
【００３８】
パルス生成器３４からの出力パルスの位相は、クロック信号ＣＬＫａの位相と一致する。一方、ＤＱＳ遅延回路２５から出力された遅延パルスＤＱＳ９０の位相は、遅延コード４１に応じてパルス生成器３４からの出力パルスよりも遅れている。
【００３９】
位相比較器３５は、遅延パルスＤＱＳ９０の位相とクロック信号ＣＬＫｂの位相とを比較する。図４の場合、位相比較器３５の出力は、時刻ｔ２における遅延パルスＤＱＳ９０の論理レベルに応じて決まる。遅延量調整回路２７の遅延量が比較的小さいときには、位相比較器３５の出力はハイレベル（Ｈレベル）であるのに対して、遅延量調整回路２７の遅延量が比較的大きいときには位相比較器３５の出力はロウレベル（Ｌレベル）になる。したがって、位相比較器３５の出力がＨレベルからＬレベルまたはＬレベルからＨレベルへの切替わりを検出することによって、遅延パルスＤＱＳ９０の位相とクロック信号ＣＬＫｂの位相との一致を判定できる。
【００４０】
制御モジュール３２は、この位相比較器３５の出力の論理レベルの切替わりを利用して、２分探索法で遅延コード４１を決定する。たとえば、遅延量調整回路２７の遅延量が３２段階（５ビット）で切替可能なときには、最終的な遅延コード４１を決定するまでにパルス生成器３４は、ワンショットパルスを５回出力することになる。
【００４１】
［遅延量調整回路２７の構成例］
図５は、図２の遅延量調整回路２７の構成の一例を示す図である。図５を参照して、遅延量調整回路２７は、遅延線６０とセレクタ回路６１とを含む。図５の入力ノードＩＮに信号が入力され、出力ノードＯＵＴから遅延された信号が出力される。
【００４２】
遅延線６０は、縦続接続された複数の遅延素子を含み、図５の例では、複数の遅延素子として９６個のインバータＩＮＶを含む。これらのインバータＩＮＶは、直列接続された２個または４個のインバータからなる３２個のブロックに分割される。各ブロックから信号の出力が可能になっている。
【００４３】
セレクタ回路６１は、遅延コード４１に応じて上記の３２個のブロックのうちの１つを選択し、選択したブロックからの信号を出力する。これによって、ストローブ信号ＤＱＳが遅延量調整回路２７に入力されてから出力するまでに通過する遅延素子（インバータＩＮＶ）の個数が切替わる。
【００４４】
具体的に、セレクタ回路６１は、複数の論理ゲート（ＮＡＮＤゲートおよびＮＯＲゲート）によって構成され、階層化された第１〜第５の論理ゲート群６２〜６６を含む。
【００４５】
第１の論理ゲート群６２は、遅延線６０を構成する３２個のブロックにそれぞれ対応する３２個のＮＡＮＤゲートによって構成される。各ＮＡＮＤゲートの第１の入力端子には対応するブロックからの信号が入力され、第２の入力端子には遅延コード４１が入力される。なお、遅延コード４１は、選択されたブロックに対応するＮＡＮＤゲートに入力される信号のみが“１”（Ｈレベル）であり、他の非選択のブロックに対応するＮＡＮＤゲートに入力される信号は“０”（Ｌレベル）であり、通常のバイナリコードとは異なる。通常のバイナリコードを遅延コード４１に変換するデコーダは、図２の制御モジュール３２に設けられる。
【００４６】
第１の論理ゲート群６２を構成する３２個のＮＡＮＤゲートは２個ずつのグループをなし、これらのグループが第２の論理ゲート群６３を構成する１６個のＮＡＮＤゲートにそれぞれ接続される。同様に、第２の論理ゲート群６３を構成する１６個のＮＡＮＤゲートは２個ずつのグループをなし、これらのグループが第３の論理ゲート群６４を構成する８個のＮＯＲゲートにそれぞれ接続される。第３の論理ゲート群６４を構成する８個のＮＯＲゲートは２個ずつのグループをなし、これらのグループが第４の論理ゲート群６５を構成する４個のＮＡＮＤゲートにそれぞれ接続される。第４の論理ゲート群６５を構成する４個のＮＡＮＤゲートは２個ずつのグループをなし、これらのグループが第５の論理ゲート群６６を構成する２個のＮＯＲゲートにそれぞれ接続される。セレクタ回路６１の最終段に設けられたＮＡＮＤゲート６７は、第５の論理ゲート群６６に設けられた２個のＮＯＲゲートにそれぞれ接続される。
【００４７】
［オフセット調整回路２６の構成例］
図６は、図２のオフセット調整回路２６の構成の一例を示す図である。図６には、オフセット調整回路２６の周辺の回路も併せて示されている。
【００４８】
図６を参照して、オフセット調整回路２６は、入力ノードＮＩおよび出力ノードＮ３間に直列接続された複数の遅延素子ＤＥから成る遅延線と、セレクタ回路５９とを含む。これらの複数の遅延素子ＤＥは、Ｍ個（図６の場合、Ｍ＝４）のブロック５０，５１，５２，５３に区分される。各ブロックは、直列接続されたＮ段の遅延素子ＤＥを含む。
【００４９】
なお、オフセット調整回路２６に設けられた各遅延素子ＤＥを構成するＭＯＳトランジスタの閾値電圧は、遅延量調整回路２７に設けられた各遅延素子を構成するＭＯＳトランジスタの閾値電圧よりも大きくなるようにする。これによって、より小さな面積で、オフセット調整回路２６に設けられた各遅延素子ＤＥの遅延量を、遅延量調整回路２７の各遅延素子の遅延量よりも大きくすることができる。
【００５０】
セレクタ回路５９は、ブロック５０〜５３の接続ノードＮ０，Ｎ１，Ｎ２および出力ノードＮ３のうちいずれか１つを選択し、選択したノードの信号を出力する。具体的に図６において、セレクタ回路５９は、オフセット設定値が０のときに接続ノードＮ０の信号を出力する。この場合、オフセット調整回路２６からはブロック５０を通過したストローブ信号ＤＱＳが出力される。同様に、セレクタ回路５９は、オフセット設定値が１のときに接続ノードＮ１の信号を出力する。この場合、オフセット調整回路２６からはブロック５０，５１を通過したストローブ信号ＤＱＳが出力される。セレクタ回路５９は、オフセット設定値が２のときに接続ノードＮ２の信号を出力する。この場合、オフセット調整回路２６からはブロック５０，５１，５２を通過したストローブ信号ＤＱＳが出力される。セレクタ回路５９は、オフセット設定値が３のときに出力ノードＮ３の信号を出力する。この場合、オフセット調整回路２６からはブロック５０，５１，５２，５３を通過したストローブ信号ＤＱＳが出力される。セレクタ回路５９の具体的構成は、たとえば、図５で示したセレクタ回路６１と同様の構成である。
【００５１】
このように、セレクタ回路５９は、ストローブ信号ＤＱＳがオフセット調整回路２６に入力してから出力するまでの間に通過するブロック数（すなわち、遅延素子数）を、オフセット設定値に応じて切替えることができる。なお、設定周波数とオフセット設定値の対応関係は、図１のシステムクロックＣＫの設定周波数が小さいほど、ストローブ信号ＤＱＳがオフセット調整回路２６を出力するまでに通過するブロック数が大きくなるように定められている。
【００５２】
図７は、図１のメモリコントローラ４に記憶された変換テーブルの一例を示す図である。図７の例では、概ね２６６Ｍｂｐｓから５３３Ｍｂｐｓまでのビットレート（ＤＲＡＭ装置の動作周波数に等しい）に対してオフセット設定値が定められている。すなわち、この動作周波数の範囲で遅延量の調整が可能である。
【００５３】
なお、オフセット調整回路２６の構成は、図６に示した構成には限られない。たとえば、セレクタ回路５９に代えて入力ノードＮＩの近傍に別のセレクタ回路を配置し、このセレクタ回路によって入力ノードＮＩに入力されたストローブ信号ＤＱＳの経路を切替えるようにしてもよい。このようにすれば、ブロック５０〜５３の配列順を図５とは逆順にすることができる。
【００５４】
上記の点を考慮して、セレクタ回路５９の機能をより一般的に述べると次のようになる。オフセット調整回路２６に設けられた複数の遅延素子ＤＥが第１番目から第Ｍ番目までのＭ個のブロックに区分されるとする。この場合に、１以上Ｍ以下の整数をｉとしたとき、セレクタ回路５９は、オフセット設定値に応じて、Ｍ個のブロックをいずれも通過しないか、もしくは、Ｍ個のブロックのうち第１番目から第ｉ番目までのｉ個のブロックを順に通過したストローブ信号ＤＱＳを出力する。ストローブ信号がＭ個のブロックのいずれも通過しない場合には、ストローブ信号の遅延量は、遅延量調整回路２７のみによって設定される。
【００５５】
［従来のＤＱＳ遅延回路の問題点］
図６に示す構成のＤＱＳ遅延回路２５の効果について説明するのに先立って、従来のＤＱＳ遅延回路の問題点について説明する。以下、図８、図９を参照して、遅延量の粗調整を行なうためのオフセット調整回路２６が設けられていない場合について述べる。
【００５６】
ＤＲＡＭ装置では、低消費電力化のために、ＤＲＡＭ装置の動作周波数を切替えて使用する場合がある。具体的に、最大動作周波数を増大することによって周波数範囲を拡大したとすると、遅延線を構成する遅延素子数を増加させる必要が生じる。たとえば、ＤＲＡＭ装置との転送レートを最大４００Ｍｂｐｓまで対応していたものを、５３３Ｍｂｐｓまで対応できるようにすると、遅延線の切替え段数を３２段から６４段かまたはそれ以上に増加させる必要が生じる。この結果、回路面積の増大を招く。
【００５７】
図８は、比較例のＤＱＳ遅延回路において、遅延コードと遅延量との関係を模式的に示す図である。図８の例では、遅延線を構成する遅延素子の個数および遅延量の切替え段数（図８では、８段の場合を示す）を変えずに、単位遅延素子の遅延量を増大させることによって、遅延量の切替幅（Δｄｅｌａｙ）を大きくした場合を示す。
【００５８】
図８のように、広い周波数範囲に対応させる目的で、単純に遅延線を構成する単位遅延素子の遅延量を大きく設定すると、目標遅延に対する誤差が増大する。これによって、ＤＲＡＭ装置からのデータ読出時におけるセットアップタイムのマージンの減少またはホールドタイムのマージンの減少といった問題を引き起こす。
【００５９】
図９は、比較例のＤＱＳ遅延回路において、遅延コードと遅延量との関係を模式的に示す図である。図９の例では、単位遅延素子の遅延量を小さくすることによって、遅延量の切替幅（Δｄｅｌａｙ）を小さくした場合を示す。
【００６０】
図９のように、遅延線を構成する単位遅延素子の遅延量が小さい場合において、広い周波数範囲に対応させるためには、遅延素子数の増加や遅延量の切替段数の増加（図９では１６段）が避けられない。このため、回路面積が増大してしまう。特に、遅延素子の遅延量は、半導体装置の製造条件や動作温度および動作電圧が変動するのに応じて変動するので、遅延素子の想定される遅延量が最も小さい場合には、目標遅延量の実現が困難になる場合もあり得る。
【００６１】
［実施の形態１のＤＱＳ遅延回路２５の動作および効果］
図６に示すＤＱＳ遅延回路２５の場合には、遅延量の切替幅（Δｄｅｌａｙ）を小さくしたままで広範囲の周波数に対応することができ、しかも、回路面積の増大を抑えることができる。
【００６２】
図１０は、図６のＤＱＳ遅延回路２５において、遅延コード４１と遅延量との関係を模式的に示す図である。図１０の例では、図６の遅延量調整回路２７の構成を図５に例示した構成よりも単純化した場合を示している。すなわち、遅延量調整回路２７の遅延量を８段階に調整可能とし、各段階ごとの遅延量の切替幅（Δｄｅｌａｙ）が等しいとしている。
【００６３】
図１０に示すように、オフセット設定値を変化させることにより（図１０の場合、オフセット＝０〜３）、図６のＤＱＳ遅延回路２５の遅延量と遅延コード４１との関係を示す直線は、その傾きを維持したまま上下にシフトする。これによって、目標遅延ＴＧ９０の設定範囲を拡大することができる。
【００６４】
なお、個々の遅延素子ＤＥの遅延量は、半導体装置の製造条件の変動、ならびに遅延回路の動作電圧および動作温度の変動に応じて変動する。オフセット調整回路２６の設計に際しては、この変動も考慮して、個々の遅延素子の遅延量が最も小さい場合でも動作周波数に対応した遅延量が得られるように、各ブロック５０〜５３に設ける遅延素子ＤＥの段数Ｎを決定する必要がある。
【００６５】
図１１は、個々の遅延素子ＤＥの遅延量が変化した場合における、遅延コードとＤＱＳ遅延回路２５の遅延量との関係を示した図である。図１１において、各遅延素子ＤＥの想定される遅延量が最小の場合をＭＩＮ条件とし、各遅延素子ＤＥの想定される遅延量が最大の場合をＭＡＸ条件としている。
【００６６】
図６、図１１を参照して、ビットレートが５３３Ｍｂｐｓのとき、オフセット設定値（offset）を０に設定すると、ＭＡＸ条件およびＭＩＮ条件のいずれの場合でもＤＱＳ遅延回路２５全体の遅延量を目標遅延（９０°遅延）に設定できる。同様に、ビットレートが４００Ｍｂｐｓ、３３３Ｍｂｐｓ、２６６Ｍｂｐｓのときには、オフセット設定値（offset）をそれぞれ１，２，３に設定すると、ＭＡＸ条件およびＭＩＮ条件のいずれの場合でもＤＱＳ遅延回路２５全体の遅延量を目標遅延（９０°遅延）に設定できる。
【００６７】
目標遅延の設定範囲の下限値は、オフセット調整回路２６の遅延量が最も小さく（オフセット設定値（offset）＝０）、かつ、遅延量調整回路２７の遅延量が最も小さい（遅延コードが最小）場合において、各遅延素子ＤＥの想定される遅延量が最大の場合（ＭＡＸ条件）として与えられる。目標遅延の設定範囲の上限値は、オフセット調整回路２６の遅延量が最も大きく（オフセット設定値（offset）＝３）、かつ、遅延量調整回路２７の遅延量が最も大きい（遅延コードが最大）場合において、各遅延素子ＤＥの想定される遅延量が最小の場合（ＭＩＮ条件）として与えられる。
【００６８】
図１２は、ＤＱＳ遅延回路２５を構成する各回路の面積の比率の一例を示す図である。図１２では、図６に示すオフセット調整回路２６の面積、図５に示す遅延量調整回路２７を構成する遅延線６０の面積、図５のセレクタ回路６１の面積、および図６の制御モジュール３２に設けられるデコード回路の面積の相互の比率が示されている。デコード回路は、バイナリコードをセレクタ回路６１に入力される遅延コード４１に変換するためのものである。図１２に示すように、オフセット調整回路２６の面積は、他の回路の面積に比べて小さく、回路面積の増大が抑制できていることがわかる。
【００６９】
［半導体装置１の動作シーケンス］
図１３は、図１の半導体装置１の動作シーケンスの一例を示す図である。図１３には、ＤＲＡＭ装置の動作周波数をｆ0からｆ1に変更する例が示されている。
【００７０】
図１、図１３を参照して、初期状態（時刻ｔ０）では、システムクロックＣＫの設定周波数がｆ0である。この設定周波数ｆ0に対応するオフセット設定値（offset）をＸとする。
【００７１】
時刻ｔ１において、メモリコントローラ４は、セルフリフレッシュ開始（ＳＲＥＦ：Self  Refresh  Entry）コマンドを発行する。これにより、セルフリフレッシュ（Self  Refresh）期間が開始する。このとき同時に、クロックイネーブル信号ＣＫＥがネゲートされる。
【００７２】
次の期間ｔ２において、ＣＰＵ３は、システムクロックＣＫの設定周波数を変更する。クロックイネーブル信号ＣＫＥがネゲートされているので、周波数変更の途中でシステムクロックＣＫが停止しても問題は生じない。次の期間ｔ３は、システムクロックＣＫの周波数がｆ1で安定するまでの待ち時間である。
【００７３】
次の時刻ｔ４に、メモリコントローラ４は、セルフリフレッシュ終了（ＳＲＥ：Self  Refresh  Exit）コマンドを発行する。これによってセルフリフレッシュ期間が終了する。このとき同時に、クロックイネーブル信号ＣＫＥがアサートされる。
【００７４】
次の時刻ｔ５に、メモリコントローラ４は、オフセット設定値を設定周波数ｆ1に対応する値（Ｙ）に切替える。メモリコントローラ４は、さらに、この時点でＤＲＡＭ装置２が実行可能な処理コマンド（たとえば、プリチャージコマンドなど）を発行する。
【００７５】
次の時刻ｔ６に、メモリコントローラ４は、オートリフレッシュ（ＲＥＦ：Auto  Refresh）コマンドを発行する。さらに、メモリコントローラ４はキャリブレーション信号をアサートし、これによって、インターフェース回路５の動作状態がキャリブレーションモードになる。図６のキャリブレーション制御回路３１は、変更後のオフセット設定値（Ｙ）に基づいて、図６のＤＱＳ遅延回路２５に設けられた遅延量調整回路２７のキャリブレーションを行なう。遅延量調整回路２７のキャリブレーションには１５サイクル（cycle）以上かかる。
【００７６】
ＤＲＡＭ装置２のリフレッシュおよび遅延量調整回路２７のキャリブレーションが終了した時刻ｔ７以降に通常のＤＲＡＭアクセスが開始する。
【００７７】
［まとめ］
以上のとおり、実施の形態１による半導体装置１によれば、図２、図６に示すように、オフセット設定値に応じて遅延量を調整可能なオフセット調整回路２６を備えたＤＱＳ遅延回路２５が提供される。これによって、遅延量調整回路２７に設けられた遅延線を増加させることなく、最大動作周波数の増加と対応可能な周波数範囲の拡大を実現できる。
【００７８】
さらに、遅延量調整回路２７に設けられた遅延線を構成する単位遅延素子の遅延量を比較的小さく設計することで、目標遅延に対する遅延誤差の低減が可能となる。キャリブレーション実行時には、遅延量調整回路２７に設けられた遅延量の比較的小さな遅延素子を用いて遅延量を精度良く調整できる。
【００７９】
オフセット調整回路２６の各ブロックの遅延量（遅延素子ＤＥの個数）は、製造条件、動作温度および動作電圧の変動に伴う単位遅延素子ＤＥの遅延量の変動を考慮して決定される。したがって、遅延量調整回路２７に設ける遅延素子の個数を増加させる必要はない。
【００８０】
さらに、オフセット調整回路２６に設けられた各遅延素子ＤＥを構成するＭＯＳトランジスタの閾値電圧は、遅延量調整回路２７に設けられた各遅延素子を構成するＭＯＳトランジスタの閾値電圧よりも大きくなるようにする。これによって、オフセット調整回路２６に設けられた各遅延素子ＤＥの遅延量を、遅延量調整回路の各遅延素子の遅延量よりも大きくすることができるので、オフセット調整回路２６を新たに設けたことによる回路面積の増大を抑制することができる。
【００８１】
＜実施の形態２＞
図１４は、この発明の実施の形態２による半導体装置に設けられたＤＱＳ遅延回路２５Ａの構成を示す図である。
【００８２】
図１４のＤＱＳ遅延回路２５Ａは、オフセット調整回路２６Ａの構成が図６のＤＱＳ遅延回路２５の場合と異なる。図６のオフセット調整回路２６では各ブロック５０〜５３に設けられた遅延素子の個数が同じであった。これに対して、図１４のオフセット調整回路２６Ａでは、遅延線を構成する各ブロック５１Ａ，５２Ａ，５３Ａに設けられた遅延素子の個数が異なる。
【００８３】
具体的に、図１４のブロック５１Ａ，５２Ａ，５３Ａは、図６のブロック５１，５２，５３にそれぞれ対応する。たとえば、ブロック５１ＡにはＮ段の遅延素子ＤＥが設けられ、ブロック５２Ａには２Ｎ段の遅延素子ＤＥが設けられ、ブロック５３Ａには４Ｎ段の遅延素子ＤＥが設けられる。詳しくは後述するように、各ブロックを構成する遅延素子の個数を異ならせることによって、実施の形態１の場合に比べて、動作周波数の設定範囲を拡大することができる。
【００８４】
なお、図１４のオフセット調整回路２６Ａには、図６のブロック５０に対応するブロックが設けられていない。図１４においてオフセット設定値として０が設定された場合には、ストローブ信号ＤＱＳは、遅延素子ＤＥを介さずに遅延量調整回路２７に入力される。この場合、ＤＱＳ遅延回路２５Ａ全体の遅延量は、遅延量調整回路２７によって調整される。図１４のその他の構成は図６の場合と同じであるので、同一または相当する部分には同一の参照符号を付して説明を繰返さない。
【００８５】
図１５は、図１４のオフセット調整回路２６Ａの場合において、メモリコントローラ４に記憶された変換テーブルの一例を示す図である。図１５の例では、概ね２００Ｍｂｐｓから８００Ｍｂｐｓまでのビットレート（ＤＲＡＭ装置の動作周波数ｆに等しい）に対してオフセット設定値が定められており、動作周波数の設定範囲が図７の場合に比べて拡大されている。
【００８６】
図１６は、図１４のＤＱＳ遅延回路２５Ａにおいて、遅延コードと遅延量との関係を示した図である。図１６を参照して、半導体装置の製造条件、動作温度および動作電圧が変動したとき、想定される各遅延素子ＤＥの遅延量が最大の場合をＭＡＸ条件と記載し、想定される各遅延素子ＤＥの遅延量が最小の場合をＭＩＮ条件と記載している。オフセット設定値（offset）が０〜３のときの目標遅延の設定範囲をそれぞれＲ０〜Ｒ３とすると、目標遅延の設定範囲Ｒ０〜Ｒ３は重複なく連続している。
【００８７】
上記のように目標遅延の設定範囲Ｒ０〜Ｒ３を重複なく連続的に並べるためには、ＭＩＮ条件でオフセット設定値が０のときに遅延量調整回路２７の遅延量が最大の場合における遅延回路全体の遅延量（目標遅延設定範囲のＲ０の上限）と、ＭＡＸ条件でオフセット設定値が１のときに遅延量調整回路２７の遅延量が最小の場合における遅延回路全体の遅延量（目標遅延設定範囲のＲ１の下限）とを一致させる。同様に、ＭＩＮ条件でオフセット設定値が１のときに遅延量調整回路２７の遅延量が最大の場合における遅延回路全体の遅延量（目標遅延設定範囲のＲ１の上限）と、ＭＡＸ条件でオフセット設定値が２のときに遅延量調整回路２７の遅延量が最小の場合における遅延回路全体の遅延量（目標遅延設定範囲のＲ２の下限）とを一致させる。さらに、ＭＩＮ条件でオフセット設定値が２のときに遅延量調整回路２７の遅延量が最大の場合における遅延回路全体の遅延量（目標遅延設定範囲のＲ２の上限）と、ＭＡＸ条件でオフセット設定値が３のときに遅延量調整回路２７の遅延量が最小の場合における遅延回路全体の遅延量（目標遅延設定範囲のＲ３の下限）とを一致させる。
【００８８】
上記をより一般的に言えば次のようになる。オフセット調整回路２６に設けられた直列接続された複数の遅延素子ＤＥが第１番目から第Ｍ番目までのＭ個のブロックに区分されるとする。この場合に、１以上Ｍ以下の整数をｉとしたとき、セレクタ回路５９は、オフセット設定値に応じて、Ｍ個のブロックをいずれも通過しないか、もしくは、Ｍ個のブロックのうち第１番目から第ｉ番目までのｉ個のブロックを順に通過したストローブ信号ＤＱＳを出力する。ここで、１以上Ｍ−１以下の整数をｊとしたとき、第１番目から第ｊ番目までのｊ個のブロックを通過した信号がオフセット調整回路２６から出力される場合でありかつＭＩＮ条件のときに遅延回路全体で設定可能な遅延量の最大値は、第１番目から第ｊ＋１番目までのｊ＋１個のブロックを通過した信号がオフセット調整回路２６から出力される場合でありかつＭＡＸ条件のときに遅延回路全体で設定可能な遅延量の最小値に等しいかそれよりも大きい。前者が後者に等しい場合は、各オフセット設定値に対する目標遅延設定範囲が重複なく連続している場合である。前者が後者よりも大きい場合は、各オフセット設定値に対する目標遅延設定範囲が相互に重複している場合である。
【００８９】
このようにオフセット設定値に対応する目標遅延設定範囲Ｒ０〜Ｒ３を相互に重複させないことによって、実施の形態１の場合よりも、ＤＱＳ遅延回路２５Ａ全体での目標遅延の設定範囲を拡大することができる。その他の実施の形態２による効果は、実施の形態１の場合と同様である。たとえば、遅延量調整回路２７に設けられる単位遅延素子ＤＥの遅延量を比較的に小さく設定することによって、遅延誤差の低減効果が得られる。以下、図１７、図１８を参照して、目標遅延の設定範囲に関してさらに説明する。
【００９０】
図１７は、各遅延線に設けられた遅延素子の段数を決定する手順について説明するための図である。
【００９１】
図１７（Ａ）を参照して、最初に、オフセット設定値が０の場合の遅延特性（ＤＱＳ遅延回路全体の遅延量と遅延コードの関係）をプロットして、目標遅延設定範囲Ｒ０を確認する。ＭＩＮ条件で遅延コードが最大のときが、目標遅延設定範囲Ｒ０の上限となる。
【００９２】
次に、図１７（Ｂ）を参照して、目標遅延設定範囲Ｒ０の上限値と、オフセット設定値＝１の場合においてＭＡＸ条件で遅延コードが最小のときの遅延量とが一致するように、図１４のブロック５１Ａの遅延量（遅延素子の個数）を決定する。ブロック５１Ａの遅延量（遅延素子の個数）に応じて、図１７（Ｂ）のオフセット追加分が決まる。このようにブロック５１Ａの遅延量を決定することによって、オフセット設定値＝０の場合の目標遅延の設定範囲Ｒ０と、オフセット設定値＝１の場合の目標遅延の設定範囲Ｒ１とが重複することなく、これらの領域Ｒ０，Ｒ１の境界が一致する。
【００９３】
次に、図１７（Ｃ）を参照して、目標遅延設定範囲Ｒ１の上限値と、オフセット設定値＝２の場合においてＭＡＸ条件で遅延コードが最小のときの遅延量とが一致するように、図１４のブロック５２Ａの遅延量（遅延素子の個数）を決定する。ブロック５２Ａの遅延量（遅延素子の個数）に応じて、図１７（Ｃ）のオフセット追加分が決まる。以上を繰返すことによって、ＤＱＳ遅延回路全体での目標遅延の設定範囲を拡大することができる。
【００９４】
なお、図１７（Ｂ）のオフセット追加分よりも図１７（Ｃ）のオフセット追加分が小さくなっている。言い換えると、図１４のブロック５１Ａの遅延量（遅延素子数）よりもブロック５２Ａの遅延量（遅延素子数）のほうが小さい。この関係をより一般的に言えば次のようになる。
【００９５】
オフセット調整回路２６Ａに設けられた直列接続された複数の遅延素子ＤＥが第１番目から第Ｍ番目までのＭ個のブロックに区分されるとする。この場合に、１以上Ｍ以下の整数をｉとしたとき、セレクタ回路５９は、オフセット設定値に応じて、Ｍ個のブロックをいずれも通過しないか、もしくは、Ｍ個のブロックのうち第１番目から第ｉ番目までのｉ個のブロックを順に通過したストローブ信号ＤＱＳを出力する。ここで、１以上Ｍ−１以下の整数をｊとしたとき、第ｊ番目のブロックに含まれる遅延素子の個数は、第ｊ＋１番目のブロックに含まれる遅延素子の個数よりも大きい。
【００９６】
図１８は、図１７の比較例として、各遅延線に設けられた遅延素子の段数が不適切な場合を説明するための図である。図１８（Ａ）は図１７（Ａ）と同じである。ＭＩＮ条件で遅延コードが最大のときが、目標遅延設定範囲Ｒ０の上限となる。
【００９７】
図１８（Ｂ）を参照して、目標遅延設定範囲Ｒ０の上限値よりも、オフセット設定値＝１の場合におけるＭＡＸ条件での遅延コード最小のときの遅延量（目標遅延設定範囲Ｒ１の下限値）が大きくなると、目標遅延設定範囲Ｒ０と目標遅延設定範囲Ｒ１とに隙間が生じる。この隙間の部分には、遅延量を設定することができない。図１７（Ｂ）の場合と比較すると、図１８（Ｂ）の場合のほうがブロック５１Ａの遅延量（遅延素子の個数）を大きく設定している。このため、オフセット追加分が大きくなりすぎてしまい、領域Ｒ０，Ｒ１間に隙間が生じる。
【００９８】
同様に、図１８（Ｃ）を参照して、目標遅延設定範囲Ｒ１の上限値よりも、オフセット設定値＝２の場合におけるＭＡＸ条件での遅延コード最小のときの遅延量（目標遅延設定範囲Ｒ２の下限値）が大きくなると、目標遅延設定範囲Ｒ１と目標遅延設定範囲Ｒ２とに隙間が生じる。図１７（Ｃ）の場合と比較すると、図１８（Ｃ）の場合のほうがブロック５２Ａの遅延量（遅延素子の個数）を大きく設定している。このため、オフセット追加分が大きくなりすぎてしまい、領域Ｒ１，Ｒ２間に隙間が生じる。
【００９９】
＜実施の形態３＞
実施の形態３におけるインターフェース回路５は、動作モードとしてテストモードをさらに有する。テストモードでは、ＤＱＳ遅延回路の遅延量を通常モードの遅延量（９０°）よりも小さくして、セットアップ・マージンテストを行なえるようにする。通常モードとテストモードの切替は、バイパス・イネーブル信号（bypass_en）を用いて行われる。以下、図１９、図２０を参照して具体的に説明する。
【０１００】
図１９は、この発明の実施の形態３による半導体装置に設けられたＤＱＳ遅延回路２５Ｂの構成を示す図である。図１９のＤＱＳ遅延回路２５Ｂのオフセット調整回路２６Ｂには、テストモード用として１または複数のバイパス線路が設けられる。各バイパス線路は、通常モード時に使用される遅延線の一部と並列に設けられる。バイパス線路の遅延量は、ＤＱＳ遅延回路２５Ｂ全体の特性に基づいて決定される。
【０１０１】
具体的に図１９のオフセット調整回路２６Ｂの場合には、図６で説明したブロック５０〜５３の各々と並列にバイパス線路が設けられる。各バイパス線路は１個の遅延素子ＤＥのみを含むので、バイパス線路の遅延量は並列接続された対応のブロックの遅延量よりも小さい。
【０１０２】
オフセット調整回路２６Ｂは、さらに、セレクタ回路５４〜５７を含む。セレクタ回路５４は、バイパス・イネーブル信号４３が活性化されＨレベル（“１”）を示すとき、ブロック５０を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路５９に出力する。同様に、セレクタ回路５５は、バイパス・イネーブル信号４３が活性化されているとき、ブロック５１を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路５９に出力する。セレクタ回路５６は、バイパス・イネーブル信号４３が活性化されているとき、ブロック５２を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路５９に出力する。セレクタ回路５７は、バイパス・イネーブル信号４３が活性化されているとき、ブロック５３を通過した信号に代えて対応のバイパス線路を通過した信号をセレクタ回路５９に出力する。
【０１０３】
図１９のＤＱＳ遅延回路２５Ｂは、さらに、図６のオフセット制御回路３０に代えて、オフセット・バイパス制御回路３０Ａを含む。オフセット・バイパス制御回路３０Ａは、上記のバイパス・イネーブル信号４３と既に説明したオフセット設定値１４とを、メモリコントローラ４の制御に基づいて出力する。
【０１０４】
上記の構成によれば、オフセット設定値＝０でありかつバイパス・イネーブル信号４３が活性化されている場合には、ブロック５０と並列接続されたバイパス線路を通過したストローブ信号ＤＱＳが後段の遅延量調整回路２７に供給される。オフセット設定値＝１でありかつバイパス・イネーブル信号４３が活性化されている場合には、ブロック５０およびブロック５１と並列接続されたバイパス線路を通過したストローブ信号ＤＱＳが後段の遅延量調整回路２７に供給される。同様に、オフセット設定値＝２でありかつバイパス・イネーブル信号４３が活性化されている場合には、ブロック５０，５１およびブロック５２と並列接続されたバイパス線路を通過したストローブ信号ＤＱＳが後段の遅延量調整回路２７に供給される。オフセット設定値＝３でありかつバイパス・イネーブル信号４３が活性化されている場合には、ブロック５０〜５２およびブロック５３と並列接続されたバイパス線路を通過したストローブ信号ＤＱＳが後段の遅延量調整回路２７に供給される。
【０１０５】
図２０は、図１９のＤＱＳ遅延回路２５Ｂにおいて、オフセット値が０の場合の遅延コードと遅延回路全体の遅延量との関係を示す図である。
【０１０６】
図２０を参照して、通常モード時の９０度の遅延量ＴＧ９０に代えて、４５度の遅延量ＴＧ４５でセットアップ・マージンテストを実施する場合について説明する。この場合、遅延量が概ね４５度になるように、各バイパス線路の遅延量が予め設定される。
【０１０７】
バイパス・イネーブル信号が活性化すると、ＤＱＳ遅延回路２５Ｂの遅延量と遅延コード４１との関係を示す直線は、その傾きを維持したまま下方向へシフトする。これにより、通常モードでは遅延コードを最小値に設定しても生成不可能であった４５度遅延の状態を生成でき、セットアップ・マージンテストが可能となる。
【０１０８】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。この発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０９】
１  半導体装置、２  ＤＲＡＭ装置、４  メモリコントローラ、４Ａ  変換テーブル、５  インターフェース回路、７  クロック生成器、１４  オフセット設定値、２４  セレクタ回路、２５，２５Ａ，２５Ｂ  ＤＱＳ遅延回路、２６，２６Ａ，２６Ｂ  オフセット調整回路、２７  遅延量調整回路、２８  データ検出回路、３０  オフセット制御回路、３０Ａ  オフセット・バイパス制御回路、３１  キャリブレーション制御回路、３２  制御モジュール、３３  信号処理部、３４  パルス生成器、３５  位相比較器、４１  遅延コード、４３  バイパス・イネーブル信号、５０〜５３，５１Ａ〜５３Ａ  ブロック、６０  遅延線、５９，６１  セレクタ回路、ＣＫ  システムクロック、ＤＥ  遅延素子、ＤＱ  データ信号、ＤＱＳ  ストローブ信号。
【図１】
0005879367.tif 000002
【図２】
0005879367.tif 000003
【図３】
0005879367.tif 000004
【図４】
0005879367.tif 000005
【図５】
0005879367.tif 000006
【図６】
0005879367.tif 000007
【図７】
0005879367.tif 000008
【図８】
0005879367.tif 000009
【図９】
0005879367.tif 000010
【図１０】
0005879367.tif 000011
【図１１】
0005879367.tif 000012
【図１２】
0005879367.tif 000013
【図１３】
0005879367.tif 000014
【図１４】
0005879367.tif 000015
【図１５】
0005879367.tif 000016
【図１６】
0005879367.tif 000017
【図１７】
0005879367.tif 000018
【図１８】
0005879367.tif 000019
【図１９】
0005879367.tif 000020
【図２０】
0005879367.tif 000021