(57)【要約】      （修正有）【課題】装置の使用中にタイミングマージンを最適化可能な半導体装置を提供する。【解決手段】入力クロック信号の位相の遅延角度と遅延素子の段数との関係を示す遅延素子段数信号を出力するマスタＤＬＬ回路１０１と、遅延素子段数信号に基づいて、位相制御信号を生成する位相制御回路１０２と、位相制御信号に基づいて、クロック信号の位相を所定角度分シフトさせたクロック信号を出力するスレーブＤＬＬ回路１０３と、スレーブＤＬＬ回路から出力されたクロック信号に同期したデータ信号を生成するデータ信号生成回路１１１と、遅延素子段数信号、又はマスタＤＬＬ回路のロックアップ時間を示すロックアップ時間信号に基づいて、データ信号のスルーレートを制御するための制御信号を生成するスルーレート制御回路１２１と、スルーレート制御信号に基づいて、データ信号のスルーレートを制御するデータ信号出力回路１１２とを備える。【選択図】図１
2010206747.tif 000002
【特許請求の範囲】
【請求項１】
複数の遅延素子を有し、クロック信号が入力され、前記クロック信号の位相の遅延角度と前記遅延素子の段数との関係を示す遅延素子段数信号を出力するマスタＤＬＬ（Delay Locked Loop）回路と、
前記遅延素子段数信号に基づいて、前記クロック信号の位相を所定角度分シフトさせるのに要する遅延素子段数を示す位相制御信号を生成し、前記位相制御信号を出力する位相制御回路と、
複数の遅延素子を有し、前記クロック信号と前記位相制御信号とが入力され、前記位相制御信号に基づいて、前記クロック信号の位相を前記所定角度分シフトさせ、前記所定角度分位相をシフトさせた前記クロック信号を出力するスレーブＤＬＬ回路と、
前記スレーブＤＬＬ回路から出力された前記クロック信号に同期したデータ信号を生成するデータ信号生成回路と、
前記遅延素子段数信号、又は前記マスタＤＬＬ回路のロックアップ時間を示すロックアップ時間信号に基づいて、前記データ信号のスルーレートを制御するためのスルーレート制御信号を生成し、前記スルーレート制御信号を出力するスルーレート制御回路と、
前記データ信号と前記スルーレート制御信号とが入力され、前記スルーレート制御信号に基づいて、前記データ信号の前記スルーレートを制御し、前記スルーレートが制御された前記データ信号を出力するデータ信号出力回路と、
を備えることを特徴とする半導体装置。
【請求項２】
前記スルーレート制御回路は、
前記遅延素子段数信号又は前記ロックアップ時間信号が示す遅延素子段数又はロックアップ時間が、所定段数又は所定時間よりも大きい場合には、前記スルーレートの大きさを減少させ、
前記遅延素子段数信号又は前記ロックアップ時間信号が示す遅延素子段数又はロックアップ時間が、前記所定段数又は前記所定時間よりも小さい場合には、前記スルーレートの大きさを増加させることを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記データ信号出力回路は、
前記スルーレートが制御される前の前記データ信号が入力されるプレドライバと、
前記プレドライバと直列に接続され、前記スルーレートが制御された前記データ信号を出力するドライバとを備え、
前記スルーレート制御回路は、前記スルーレート制御信号を、前記プレドライバに供給することを特徴とする請求項１又は２に記載の半導体装置。
【請求項４】
複数の遅延素子を有し、クロック信号が入力され、前記クロック信号の位相の遅延角度と前記遅延素子の段数との関係を示す遅延素子段数信号を出力するマスタＤＬＬ（Delay Locked Loop）回路と、
前記遅延素子段数信号に基づいて、前記クロック信号の位相を第１及び第２の所定角度分シフトさせるのに要する遅延素子段数を示す第１及び第２の位相制御信号を生成し、前記第１及び第２の位相制御信号を出力する位相制御回路と、
複数の遅延素子を有し、前記クロック信号と前記第１の位相制御信号とが入力され、前記第１の位相制御信号に基づいて、前記クロック信号の位相を前記第１の所定角度分シフトさせ、前記第１の所定角度分位相をシフトさせた前記クロック信号を出力する第１のスレーブＤＬＬ回路と、
複数の遅延素子を有し、前記クロック信号と前記第２の位相制御信号とが入力され、前記第２の位相制御信号に基づいて、前記クロック信号の位相を前記第２の所定角度分シフトさせ、前記第２の所定角度分位相をシフトさせた前記クロック信号を出力する第２のスレーブＤＬＬ回路と、
前記第１のスレーブＤＬＬ回路から出力された前記クロック信号に同期した第１のデータ信号を生成する第１のデータ信号生成回路と、
前記第２のスレーブＤＬＬ回路から出力された前記クロック信号に同期した第２のデータ信号を生成する第２のデータ信号生成回路とを備え、
前記位相制御回路は、前記第１の所定角度と前記第２の所定角度とを異なる値に設定することを特徴とする半導体装置。
【請求項５】
前記位相制御回路は、
前記遅延素子段数信号に基づいて、前記クロック信号の位相を所定角度分シフトさせるのに要する遅延素子段数を示す位相制御信号を生成し、前記位相制御信号を出力する第１の位相制御回路と、
前記遅延素子段数信号及び前記位相制御信号に基づいて、前記第１及び第２の位相制御信号を生成して出力する第２の位相制御回路と、
を備えることを特徴とする請求項４に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、例えば、ＤＤＲ（Double Data Rate）メモリに使用されるものである。
【背景技術】
【０００２】
ＤＤＲメモリ等のパラレルインタフェースＩ／Ｏ（Input/Output）では、出力データ信号のスルーレート（Slew Rate）の大きさや、同時スイッチングノイズの大きさや、同時スイッチングノイズに伴う電磁放射（ＥＭＩ：Electro Magnetic Interference）の大きさが、プロセス条件に依存するというプロセス依存性が問題となる。更には、ＬＳＩの微細化に伴い、各製品がＥＯＬ（End of Life）に至るまでの劣化量（ＥＯＬ劣化量）が大きくなるため、スルーレート、同時スイッチングノイズ、電磁輻射の大きさの経時変化が大きくなる点も問題となる。
【０００３】
特許文献１には、位相が互いに反転した第１及び第２クロック信号を生成する手段と、第１及び第２クロック信号の信号幅を縮小する手段と、第１及び第２クロック信号それぞれに対し、時間的に遅延させた遅延クロック信号を生成する手段とを備え、遅延クロック信号を用いて回路を動作させる電磁雑音（ＥＭＩ）抑制回路が記載されている。
【０００４】
この電磁雑音抑制回路によれば、ＬＳＩ設計時にクロックの位相をずらすことで、タイミングマージンを確保することができる。しかしながら、この電磁雑音抑制回路では、ＬＳＩの使用中に都度タイミングマージンを最適化することはできない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−８４０５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、装置の使用中にタイミングマージンを最適化可能な半導体装置を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の一の態様は例えば、複数の遅延素子を有し、クロック信号が入力され、前記クロック信号の位相の遅延角度と前記遅延素子の段数との関係を示す遅延素子段数信号を出力するマスタＤＬＬ（Delay Locked Loop）回路と、前記遅延素子段数信号に基づいて、前記クロック信号の位相を所定角度分シフトさせるのに要する遅延素子段数を示す位相制御信号を生成し、前記位相制御信号を出力する位相制御回路と、複数の遅延素子を有し、前記クロック信号と前記位相制御信号とが入力され、前記位相制御信号に基づいて、前記クロック信号の位相を前記所定角度分シフトさせ、前記所定角度分位相をシフトさせた前記クロック信号を出力するスレーブＤＬＬ回路と、前記スレーブＤＬＬ回路から出力された前記クロック信号に同期したデータ信号を生成するデータ信号生成回路と、前記遅延素子段数信号、又は前記マスタＤＬＬ回路のロックアップ時間を示すロックアップ時間信号に基づいて、前記データ信号のスルーレートを制御するためのスルーレート制御信号を生成し、前記スルーレート制御信号を出力するスルーレート制御回路と、前記データ信号と前記スルーレート制御信号とが入力され、前記スルーレート制御信号に基づいて、前記データ信号の前記スルーレートを制御し、前記スルーレートが制御された前記データ信号を出力するデータ信号出力回路と、を備えることを特徴とする半導体装置である。
【０００８】
本発明の別の態様は例えば、複数の遅延素子を有し、クロック信号が入力され、前記クロック信号の位相の遅延角度と前記遅延素子の段数との関係を示す遅延素子段数信号を出力するマスタＤＬＬ（Delay Locked Loop）回路と、前記遅延素子段数信号に基づいて、前記クロック信号の位相を第１及び第２の所定角度分シフトさせるのに要する遅延素子段数を示す第１及び第２の位相制御信号を生成し、前記第１及び第２の位相制御信号を出力する位相制御回路と、複数の遅延素子を有し、前記クロック信号と前記第１の位相制御信号とが入力され、前記第１の位相制御信号に基づいて、前記クロック信号の位相を前記第１の所定角度分シフトさせ、前記第１の所定角度分位相をシフトさせた前記クロック信号を出力する第１のスレーブＤＬＬ回路と、複数の遅延素子を有し、前記クロック信号と前記第２の位相制御信号とが入力され、前記第２の位相制御信号に基づいて、前記クロック信号の位相を前記第２の所定角度分シフトさせ、前記第２の所定角度分位相をシフトさせた前記クロック信号を出力する第２のスレーブＤＬＬ回路と、前記第１のスレーブＤＬＬ回路から出力された前記クロック信号に同期した第１のデータ信号を生成する第１のデータ信号生成回路と、前記第２のスレーブＤＬＬ回路から出力された前記クロック信号に同期した第２のデータ信号を生成する第２のデータ信号生成回路とを備え、前記位相制御回路は、前記第１の所定角度と前記第２の所定角度とを異なる値に設定することを特徴とする半導体装置である。
【発明の効果】
【０００９】
本発明によれば、装置の使用中にタイミングマージンを最適化可能な半導体装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態の半導体装置の構成を示す回路図である。
【図２】マスタＤＬＬ回路、デコーダ回路、及びスレーブＤＬＬ回路の構成を示す回路図である。
【図３】第１実施形態の半導体装置内の各種信号の波形を示す波形図である。
【図４】データ信号のスルーレートの制御方法を説明するための波形図である。
【図５】クロック信号ＣＬＫの位相と出力信号ＣＬＫＯＵＴ1の位相との差分（θ）の時間変化を示したグラフである。
【図６】データ信号出力回路内のプレドライバの構成例を示す回路図である。
【図７】第２実施形態の半導体装置の構成を示す回路図である。
【図８】Ｓ3A及びＳ3Bの遅延素子段数の調節方法の第１の例を説明するための波形図である。
【図９】Ｓ3A及びＳ3Bの遅延素子段数の調節方法の第２の例を説明するための波形図である。
【図１０】図７の制御回路の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
本発明の実施形態を、図面に基づいて説明する。
【００１２】
（第１実施形態）
図１は、第１実施形態の半導体装置の構成を示す回路図である。本実施形態の半導体装置は、ＤＤＲ（Double Data Rate）メモリを備えており、図１には、ＤＤＲメモリ用の各種の回路ブロックが示されている。
【００１３】
図１の半導体装置は、マスタＤＬＬ（Delay Locked Loop）回路１０１と、本発明の位相制御回路の例であるデコーダ回路１０２と、スレーブＤＬＬ回路１０３と、データ信号生成回路１１１と、データ信号出力回路１１２と、ストローブ信号出力回路１１３と、スルーレート制御回路１２１とを備える。
【００１４】
図１では、マスタＤＬＬ回路１０１の後段にデコーダ回路１０２が接続され、デコーダ回路１０２の後段にスレーブＤＬＬ回路１０３が接続され、スレーブＤＬＬ回路１０３の後段にデータ信号生成回路１１１が接続されている。データ信号出力回路１１２は、データ信号生成回路１１１の後段に接続され、データ信号生成回路１１１からの出力信号が入力される。一方、ストローブ信号出力回路１１３は、クロック信号ＣＬＫが入力される。また、スルーレート制御回路１２１は、マスタＤＬＬ回路１０１からの出力信号が入力され、データ信号出力回路１１２及びストローブ信号出力回路１１３に後述の制御信号を出力する。
【００１５】
以下、マスタＤＬＬ回路１０１、デコーダ回路１０２、及びスレーブＤＬＬ回路１０３の詳細構成について、図２に基づいて説明する。図２は、これらの回路の詳細構成を示す回路図である。
【００１６】
マスタＤＬＬ回路１０１は、複数の遅延素子（Delay Unit）２０１を有しており、図２には、直列に接続されたｍ個の遅延素子２０１1〜２０１mが示されている。遅延素子は、信号を遅延させるための回路であり、入力信号の遅延信号を出力する。遅延素子は例えば、複数のインバータ同士や複数のバッファ同士を直列に接続することで構成される。遅延素子２０１1〜２０１mは、クロック信号ＣＬＫが入力され、クロック信号ＣＬＫの遅延信号ＳＡ1〜ＳＡmを生成し、遅延信号ＳＡ1〜ＳＡmのいずれかを、出力信号ＣＬＫＯＵＴ1として位相比較器２１１に出力する。
【００１７】
マスタＤＬＬ回路１０１は、クロック信号ＣＬＫの位相の遅延角度と遅延素子２０１の段数との関係を示す遅延素子段数信号Ｓ1を、デコーダ回路１０２に出力する。遅延素子段数信号Ｓ1はここでは、クロック信号ＣＬＫの位相の遅延角度が３６０度（即ち１周期分）となる遅延素子段数を保持する。例えば、遅延素子２０１60から出力された遅延信号ＳＡ60の遅延角度が３６０度の場合には、遅延素子段数信号Ｓ1は、段数「６０」を保持する。一般に、遅延素子段数信号Ｓ1は、遅延信号ＳＡM（Ｍは１〜ｍの整数）の遅延角度が３６０度の場合には、段数「Ｍ」を保持する。Ｓ1は、本発明の遅延素子段数信号の例である。
【００１８】
遅延素子段数信号Ｓ1は、位相比較器２１１、カウンタ２１２、及びデコーダ２１３により生成される。位相比較器２１１、カウンタ２１２、及びデコーダ２１３は、この並び順に接続されている。また、遅延素子２０１1〜２０１mと位相比較器２１１との間には、選択器２２１が配置されている。
【００１９】
位相比較器２１１は、クロック信号ＣＬＫの位相と出力信号ＣＬＫＯＵＴ1の位相とを比較し、比較結果（ＵＰ／ＤＮ）をカウンタ２１２に出力する。ＵＰは、ＣＬＫＯＵＴ1の位相の方が小さいときに発せられ、これに応じて、ＣＬＫＯＵＴ1の位相が増えることになる。また、ＤＮは、ＣＬＫＯＵＴ1の位相の方が大きいときに発せられ、これに応じて、ＣＬＫＯＵＴ1の位相が減ることになる。また、比較結果を保持する信号が示す値の大きさは、ＣＬＫとＣＬＫＯＵＴ1の位相差の大きさに相当し、この値の大きさに応じて、ＣＬＫＯＵＴ1の位相の増加量又は減少量が制御される。
【００２０】
カウンタ２１２は、比較結果を保持する信号が示す値をカウントし、カウント結果（ＣＮＴ）をデコーダ２１３に出力する。
【００２１】
デコーダ２１３は、カウント結果に基づいて、遅延信号ＳＡ1〜ＳＡmのいずれかを選択器２２１に選択させる。具体的には、デコーダ２１３は、上記の増加量又は減少量が得られる遅延信号を特定する信号を選択器２２１に出力し、そのような遅延信号を選択器２２１に選択させる。選択された遅延信号は、出力信号ＣＬＫＯＵＴ1として、位相比較器２１１に供給される。デコーダ２１３は、選択された遅延素子２０１の段数を示す遅延素子段数信号Ｓ1をデコーダ回路１０２に出力する。
【００２２】
デコーダ回路１０２は、遅延素子段数信号Ｓ1に基づいて、位相制御信号Ｓ2を生成して出力する位相制御デコーダ３０１を備える。ここで、位相制御信号Ｓ2は、クロック信号ＣＬＫの位相を所定角度分シフトさせるのに要する遅延素子段数を示す。クロック信号ＣＬＫの位相をシフトさせる角度はここでは、例えば９０度とする。このとき、クロック信号ＣＬＫの位相を９０度シフトさせるのに要する遅延素子段数が１５段である場合には、位相制御信号Ｓ2は、段数「１５」を保持する。一般に、位相制御信号Ｓ2は、ＣＬＫの位相を９０度シフトさせるのに要する遅延素子段数がＮ段（Ｎは１〜ｎの整数。ｎについては後述）の場合には、段数「Ｎ」を保持する。
【００２３】
位相制御デコーダ３０１は、位相をシフトさせる角度（位相シフト量）と遅延素子段数との対応関係を、遅延素子段数信号Ｓ1から判断する。例えば、遅延素子段数信号Ｓ1が、遅延角度３６０度と遅延素子段数６０段とが対応することを示す場合、位相制御デコーダ３０１は、位相シフト量９０度と遅延素子段数１５段とが対応すると判断する。位相制御デコーダ３０１は、クロック信号ＣＬＫの位相をシフトさせる角度を指示する位相シフト量設定信号に応じて、位相制御信号Ｓ2を生成する。位相制御信号Ｓ2は、スレーブＤＬＬ回路１０３に出力される。Ｓ2は、本発明の位相制御信号の例である。
【００２４】
スレーブＤＬＬ回路１０３は、複数の遅延素子４０１を有しており、図２には、直列に接続されたｎ個の遅延素子４０１1〜４０１nが示されている。遅延素子４０１1〜４０１nは、クロック信号ＣＬＫが入力され、クロック信号ＣＬＫの遅延信号ＳＢ1〜ＳＢnを生成し、遅延信号ＳＡ1〜ＳＢnのいずれかを、出力信号ＣＬＫＯＵＴ2としてデータ信号生成回路１１１に出力する。
【００２５】
スレーブＤＬＬ回路１０３は、クロック信号ＣＬＫと位相制御信号Ｓ2とが入力され、位相制御信号Ｓ2に基づいて、クロック信号ＣＬＫの位相を所定角度分シフトさせ、所定角度分位相シフトさせたクロック信号ＣＬＫをデータ信号生成回路１１１に出力する。例えば、位相制御信号Ｓ2が段数「１５」を保持する場合には、スレーブＤＬＬ回路１０３は、遅延素子４０１15から出力された遅延信号ＳＢ15をデータ信号生成回路１１１に出力する。これにより、出力信号ＣＬＫＯＵＴ2として、９０度分位相がシフトしたクロック信号ＣＬＫがデータ信号生成回路１１１に出力される。
【００２６】
スレーブＤＬＬ回路１０３は、位相制御信号Ｓ2に基づいて、遅延信号ＳＢ1〜ＳＢnのいずれかを選択器４２１に選択させるデコーダ４１１を備える。デコーダ４１１は、遅延素子４０１1〜４０１nの後段に接続された選択器４２１に接続されている。デコーダ４１１は、位相制御信号Ｓ2が示す遅延信号を特定する信号を選択器４２１に出力し、そのような遅延信号を選択器４２１に選択させる。図２では、遅延信号ＳＢ1〜ＳＢnから選択された遅延信号が、ｗ＿ＣＬＫで示されている。スレーブＤＬＬ回路１０３は、出力信号ＣＬＫＯＵＴ2として、遅延信号ｗ＿ＣＬＫをデータ信号生成回路１１１に出力する。
【００２７】
このように、マスタＤＬＬ回路１０１、デコーダ回路１０２、及びスレーブＤＬＬ回路１０３には、クロック信号ＣＬＫが入力され、クロック信号ＣＬＫの遅延信号である遅延クロック信号ｗ＿ＣＬＫを出力する。クロック信号ＣＬＫの波形を、図３(Ａ)に示し、遅延クロック信号ｗ＿ＣＬＫの波形を、図３(Ｄ)に示す。図３は、図１の半導体装置内の各種信号の波形を示す波形図である。
【００２８】
なお、本実施形態のマスタＤＬＬ回路１０１及びスレーブＤＬＬ回路１０３は、デジタルＤＬＬ回路である。デジタルＤＬＬ回路には、遅延量のばらつきが少ない、ロジック回路だけで構成できる等の利点がある。
【００２９】
また、マスタＤＬＬ回路１０１内の遅延素子２０１の個数ｍ（ｍは２以上の整数）と、スレーブＤＬＬ回路１０３内の遅延素子４０１の個数ｎ（ｎは２以上の整数）は、同じ値でも異なる値でもよい。また、本実施形態では、マスタＤＬＬ回路１０１内の各遅延素子２０１の遅延量と、スレーブＤＬＬ回路１０３内の各遅延素子４０１の遅延量は、同じ値とする。
【００３０】
以下、図１に戻り、データ信号生成回路１１１、データ信号出力回路１１２、ストローブ信号出力回路１１３、及びスルーレート制御回路１２１の詳細構成について説明する。
【００３１】
図１には、ＤＤＲメモリ用の信号として、データ信号のＥＶＥＮ成分ＤＱｅと、データ信号のＯＤＤ成分ＤＱｏと、データ信号ＤＱと、ストローブ信号ＤＱＳが示されている。ＤＱｅ、ＤＱｏ、及びＤＱに付された記号［７：０］は、これらが８ビット（１バイト）信号であることを示し、ＤＱＳに付された記号０は、ＤＱＳが１ビット信号であることを示す。図１に示す回路は、ＤＱｅ、ＤＱｏ、及びＣＬＫが入力され、ＤＱ及びＤＱＳを出力する。
【００３２】
図１にはさらに、データ信号のＥＶＥＮ成分ｄｑｅと、データ信号のＯＤＤ成分ｄｑｏと、データ信号ｄｑと、ストローブ信号ｄｑｓが示されている。ＤＱｅとｄｑｅ、ＤＱｏとｄｑｏ、ＤＱとｄｑ、及びＤＱＳとｄｑｓとの違いについては、後述する。なお、ｄｑとＤＱはそれぞれ、本発明において、データ信号生成回路１１１が生成するデータ信号と、データ信号出力回路１１２が出力するデータ信号の例である。
【００３３】
図１の半導体装置は、上述のように、マスタＤＬＬ回路１０１、デコーダ回路１０２、及びスレーブＤＬＬ回路１０３の他、データ信号生成回路１１１と、データ信号出力回路１１２と、ストローブ信号出力回路１１３と、スルーレート制御回路１２１とを備える。
【００３４】
データ信号生成回路１１１は、遅延クロック信号ｗ＿ＣＬＫに同期したデータ信号ｄｑを生成する回路である。データ信号生成回路１１１は、ＥＶＥＮ成分用のフリップフロップ回路１３１と、ＯＤＤ成分用のフリップフロップ回路１３２と、選択器１３３と、インバータ１４１とを備える。選択器１３３は、フリップフロップ回路１３１及び１３２の後段に接続されており、インバータ１４１は、フリップフロップ回路１３２の前段に接続されている。
【００３５】
フリップフロップ回路１３１には、図３(Ａ)に示すクロック信号ＣＬＫと、図３(Ｂ)に示すＥＶＥＮ成分ＤＱｅとが入力され、クロック信号ＣＬＫに同期したＥＶＥＮ成分ｄｑｅを選択器１３３に出力する。
【００３６】
一方、フリップフロップ回路１３２には、クロック信号ＣＬＫの反転信号と、図３(Ｃ)に示すＯＤＤ成分ＤＱｏとが入力され、クロック信号ＣＬＫの反転信号に同期したＯＤＤ成分ｄｑｏを選択器１３３に出力する。なお、図３(Ｂ)及び(Ｃ)に示す記号［ｉ］は、０〜７のいずれかの整数を表す。
【００３７】
そして、選択器１３３には、ＥＶＥＮ成分ｄｑｅと、ＯＤＤ成分ｄｑｏと、図３(Ｄ)に示す遅延クロック信号ｗ＿ＣＬＫとが入力され、遅延クロック信号ｗ＿ＣＬＫに同期したデータ信号ｄｑをデータ信号出力回路１１２に出力する。データ信号ｄｑの波形を、図３(Ｅ)に示す。
【００３８】
以上のような構成により、データ信号生成回路１１１は、図３に示すように、ＣＬＫのダウンエッジでＤＱｏを選択し、ＣＬＫのアップエッジでＤＱｅを選択する。そして、データ信号生成回路１１１は、図３に示すように、ｗ＿ＣＬＫが０のときには、ｄｑとしてｄｑｏを出力し、ｗ＿ＣＬＫが１のときには、ｄｑとしてｄｑｅを出力する。
【００３９】
データ信号出力回路１１２は、データ信号ｄｑが入力され、データ信号ＤＱを出力する回路である。データ信号出力回路１１２は、図１に示すように、ｄｑが入力されるプレドライバ１５１と、プレドライバ１５１と直列に接続され、ＤＱを出力するドライバ１５２とを備える。
【００４０】
ストローブ信号出力回路１１３は、ストローブ信号ｄｑｓが入力され、ストローブ信号ＤＱＳを出力する回路である。図３(Ａ)に示すように、ストローブ信号ｄｑｓは、クロック信号ＣＬＫに相当する。ストローブ信号出力回路１１３は、図１に示すように、ｄｑｓが入力されるプレドライバ１６１と、プレドライバ１６１と直列に接続され、ＤＱＳを出力するドライバ１６２とを備える。
【００４１】
スルーレート制御回路１２１は、遅延素子段数信号Ｓ1に基づいて、データ信号ｄｑのスルーレートを制御するためのスルーレート制御信号ＳSRを生成する回路である。スルーレート制御信号ＳSRは、図１に示すように、スルーレート制御回路１２１から出力され、データ信号出力回路１１２に入力される。ＳSRは、本発明のスルーレート制御信号の例である。
【００４２】
その結果、データ信号出力回路１１２は、スルーレート制御信号ＳSRに基づいて、データ信号ｄｑのスルーレートを制御し、スルーレートが制御されたデータ信号ｄｑであるデータ信号ＤＱを出力する。このように、ｄｑは、スルーレート制御前のデータ信号に相当し、ＤＱは、スルーレート制御後のデータ信号に相当する。
【００４３】
スルーレート制御信号ＳSRは、詳細には、プレドライバ１５１に供給される。従って、スルーレート制御回路１２１では、プレドライバ１５１が、スルーレート制御信号ＳSRに基づいて、データ信号ｄｑのスルーレートを制御する。プレドライバ１５１によるスルーレートの制御の詳細を、図４により説明する。図４は、データ信号ｄｑのスルーレートの制御方法を説明するための波形図である。
【００４４】
図４(Ａ)、(Ｂ)、(Ｃ)はそれぞれ、プロセス条件がtypicalコーナー、fastコーナー、slowコーナーのときのデータ信号波形を表す。ここで、typicalコーナー、fastコーナー、slowコーナーとはそれぞれ、出力波形が規定通り、規定より急峻、規定より緩やかになるプロセス条件を意味する。また、図４(Ａ)〜(Ｃ)に示す波形Ｘ1、Ｘ2、Ｘ3は、プレドライバ１５１の出力波形を表し、図４(Ａ)〜(Ｃ)に示す波形Ｙ1、Ｙ2、Ｙ3は、ドライバ１５２の出力波形（データ信号ＤＱの波形）を表す。
【００４５】
図４(Ｂ)に示すように、トランジスタのプロセスがfastコーナーのときには、波形Ｘ2及びＹ2の立ち上がり及び立下りは、急峻になる。即ち、波形Ｘ2及びＹ2のスルーレートの大きさは、波形Ｘ1及びＹ1に比べて大きくなる。
【００４６】
一方、図４(Ｃ)に示すように、トランジスタのプロセスがslowコーナーのときには、波形Ｘ3及びＹ3の立ち上がり及び立下りは、緩やかになる。即ち、波形Ｘ3及びＹ3のスルーレートの大きさは、波形Ｘ1及びＹ1に比べて小さくなる。
【００４７】
データ信号ｄｑのスルーレートのプロセス依存性は、例えば、遅延素子段数信号Ｓ1が保持する遅延素子段数から判断可能である。
【００４８】
そのため、スルーレート制御回路１２１は、上記遅延素子段数が所定段数よりも大きい場合には、プロセス条件はfastコーナーであると判断する。この場合、スルーレート制御回路１２１は、データ信号ｄｑのスルーレートの大きさを減少させ、データ信号ｄｑの時間変化がより緩やかになるようなスルーレート制御信号ＳSRを出力する。これに応じて、プレドライバ１５１は、データ信号ｄｑのスルーレートの大きさを減少させるよう、データ信号ｄｑのスルーレートを制御する。その結果、図４(Ｂ)に示すように、波形Ｘ2は波形Ｘ2’のように補正され、これに伴い、波形Ｙ2も波形Ｙ2’のように補正される。
【００４９】
また、スルーレート制御回路１２１は、上記遅延素子段数が上記所定段数よりも小さい場合には、プロセス条件はslowコーナーであると判断する。この場合、スルーレート制御回路１２１は、データ信号ｄｑのスルーレートの大きさを増加させ、データ信号ｄｑの時間変化がより急峻になるようなスルーレート制御信号ＳSRを出力する。これに応じて、プレドライバ１５１は、データ信号ｄｑのスルーレートの大きさを増加させるよう、データ信号ｄｑのスルーレートを制御する。その結果、図４(Ｃ)に示すように、波形Ｘ3は波形Ｘ3’のように補正され、これに伴い、波形Ｙ3も波形Ｙ3’のように補正される。
【００５０】
以上のように、本実施形態では、遅延素子段数信号Ｓ1に基づいて、データ信号ｄｑのスルーレートを制御する。これにより、本実施形態では、データ信号ｄｑ（更にはデータ信号ＤＱ）のスルーレートの大きさが、プロセス条件に依存するというプロセス依存性を低減することができる。また、本実施形態では、遅延素子段数信号Ｓ1をスルーレート制御の判断材料とするため、半導体装置の使用中に都度スルーレートを最適化することができる。
【００５１】
また、スルーレート制御の判断材料となる遅延素子段数信号Ｓ1は、マスタＤＬＬ回路１０１により出力される。マスタＤＬＬ回路１０１は、ＤＤＲメモリに一般的に組み込まれている回路ブロックである。そのため、本実施形態をＤＤＲメモリを備える半導体装置に適用する場合には、半導体装置に新たに追加する回路ブロックが少なくて済む。具体的には、ロジック部分の追加だけで済む。
【００５２】
また、遅延素子段数信号Ｓ1が保持する遅延素子段数は、クロック信号ＣＬＫに依存した実際の遅延情報である。そのため、本実施形態では、プレドライバ１５１のAt Speedでの特性を模擬した情報を、スルーレート制御に用いることができる。
【００５３】
本実施形態では、スルーレート制御回路１２１は、遅延素子段数が所定段数よりも大きい場合には、データ信号ｄｑのスルーレートの大きさを減少させ、遅延素子段数が上記所定段数よりも小さい場合には、データ信号ｄｑのスルーレートの大きさを増加させる。これにより、本実施形態では、fastコーナー及びslowコーナーの場合のスルーレートを、typicalコーナーの場合のスルーレートに近づけることができる。
【００５４】
なお、スルーレート制御回路１２１は、これ以外の方法で、データ信号ｄｑのスルーレートを制御しても構わない。例えば、スルーレート制御回路１２１は、遅延素子段数が所定段数αよりも大きい場合には、スルーレートの大きさを減少させ、遅延素子段数が所定段数αと所定段数βとの間の場合には、スルーレートの大きさを変化させず、遅延素子段数が所定段数βよりも小さい場合には、スルーレートの大きさを増加させても構わない。但し、α及びβは、α＞βを満たす整数である。
【００５５】
図５は、クロック信号ＣＬＫの位相と出力信号ＣＬＫＯＵＴ1の位相との差分（θ）の時間変化を示したグラフである。θが０になる時間を、マスタＤＬＬ回路１０１のロックアップ時間Tlockという。遅延素子段数信号Ｓ1が保持する遅延素子段数と同様、ロックアップ時間Tlockは、スルーレート、同時スイッチングノイズ、及び電磁放射（ＥＭＩ）のプロセス依存性を示す指標となる。
【００５６】
本実施形態では、ロックアップ時間Tlockを保持するロックアップ時間信号に基づいて、データ信号ｄｑのスルーレートを制御しても構わない。データ信号ｄｑのスルーレートのプロセス依存性は、ロックアップ時間Tlockからも判断可能である。よって、本実施形態では、ロックアップ時間Tlockをスルーレート制御の判断材料とすることでも、スルーレートのプロセス依存性を低減することができる。更には、半導体装置の使用中に都度スルーレートを最適化することもできる。
【００５７】
ロックアップ時間信号は、マスタＤＬＬ回路１０１から出力され、スルーレート制御回路１２１に入力される。この場合、スルーレート制御回路１２１は例えば、ロックアップ時間Tlockが所定時間よりも大きい場合には、データ信号ｄｑのスルーレートの大きさを減少させ、ロックアップ時間Tlockが上記所定時間よりも小さい場合には、データ信号ｄｑのスルーレートの大きさを増加させる。
【００５８】
ここで、クロック信号ＣＬＫのクロック周波数と、本実施形態のスルーレート制御との関係について説明する。
【００５９】
上述のように、データ信号ｄｑのスルーレートのプロセス依存性は、例えば、遅延素子段数やロックアップ時間から判断可能である。但し、スルーレートは、プロセス条件だけではなく、クロック信号ＣＬＫのクロック周波数にも依存する。本実施形態では、クロック周波数は、固定値にしてもよいし、コントローラからスルーレート制御回路１２１に通知するようにしてもよい。これにより、スルーレート制御回路１２１は、クロック周波数の情報を利用することが可能になる。
【００６０】
図１の半導体装置は、動作中にクロック信号ＣＬＫのクロック周波数が分かっている場合には、クロック周波数の情報をスルーレート制御回路１２１に通知する。この場合、スルーレート制御回路１２１は、遅延素子段数信号Ｓ1とクロック周波数とに基づいて、データ信号ｄｑのスルーレートを制御することができる。これにより、スルーレートのプロセス依存性と温度変動とを補償することが可能になる。
【００６１】
一方、動作中にクロック信号ＣＬＫのクロック周波数が得られない半導体装置に関しては、テスタによる動作テスト時に一定のクロック周波数が半導体装置に与えられ、半導体装置がプロセスコーナーを判断する。そして、半導体装置は、スルーレート制御ビットを固定する、又は、テスト時の遅延素子段数を記憶しておく。この場合、スルーレート制御回路１２１は、この情報と、システムリセット時の遅延素子段数信号Ｓ1が示す遅延素子段数との比率により、データ信号ｄｑのスルーレートを制御することができる。これにより、スルーレートのプロセス依存性や、ＥＯＬ（End of Life）に至るまでのスルーレートの経時変化については、対処することができる。なお、この場合には、システムリセット直後におけるクロック周波数は、常に同じ値であると想定する。
【００６２】
以下、データ信号出力回路１１２内のプレドライバ１５１の構成について、図６により説明する。図６は、プレドライバ１５１の構成例を示す回路図である。図６(Ａ)〜(Ｃ)はそれぞれ、プレドライバ１５１の第１〜第３の構成例を表す。
【００６３】
図６(Ａ)では、プレドライバ１５１は、バッファ５０１と、複数の負荷容量５０２と、複数のスイッチ５０３とを備える。
【００６４】
バッファ５０１は、ｐＭＯＳ５１１と、ｎＭＯＳ５１２とを有する。ｐＭＯＳ５１１とｎＭＯＳ５１２は、ノードＮA1にて制御端子同士が接続されると共に、ノードＮA2にて主端子同士が接続されている。ノードＮA1は、プレドライバ１５１の入力ＩＮに接続され、ノードＮA2は、プレドライバ１５１の出力ＯＵＴに接続されている。
【００６５】
図６(Ａ)では、１個の負荷容量５０２が１個のスイッチ５０３と対応している。各付加容量５０２は、１個のスイッチ５０３を介して、ノードＮA2と出力ＯＵＴとに接続されている。各スイッチ５０３には、スルーレート制御端子ＴA1〜ＴA3を介して、スルーレート制御信号ＳSRが供給される。
【００６６】
このような構成により、図６(Ａ)のプレドライバ１５１は、負荷容量５０２の容量値を調整することで、データ信号ｄｑのスルーレートを制御することができる。
【００６７】
なお、図６(Ａ)のプレドライバ１５１は、ここでは６個の負荷容量５０２と、６個のスイッチ５０３とを備えているが、ＫA個の負荷容量５０２と、ＫA個のスイッチ５０３とを備えていてもよい。但し、ＫAは２以上の整数である。
【００６８】
図６(Ｂ)では、プレドライバ１５１は、４個のｐＭＯＳ６０１1〜６０１4と、４個のｎＭＯＳ６０２1〜６０２4と、ｐＭＯＳ用の３個のスイッチ６０３1〜６０３3と、ｎＭＯＳ用の３個のスイッチ６０４1〜６０４3とを備える。
【００６９】
ｐＭＯＳ６０１1〜６０１4は、制御端子同士がこの順番に接続され、ｐＭＯＳ６０１1の制御端子が、ノードＮB0に接続されている。スイッチ６０３1〜６０３3は、図６(Ｂ)に示すように、ｐＭＯＳ６０１1〜６０１4の制御端子間に配置されている。スイッチ６０３1〜６０３3には、スルーレート制御端子ＴB1〜ＴB3を介して、スルーレート制御信号ＳSRが供給される。
【００７０】
同様に、ｎＭＯＳ６０２1〜６０２4は、制御端子同士がこの順番に接続され、ｎＭＯＳ６０２1の制御端子が、ノードＮB0に接続されている。スイッチ６０４1〜６０４3は、図６(Ｂ)に示すように、ｎＭＯＳ６０２1〜６０２4の制御端子間に配置されている。スイッチ６０４1〜６０４3には、スルーレート制御端子ＴB1〜ＴB3を介して、スルーレート制御信号ＳSRが供給される。
【００７１】
ｐＭＯＳ６０１1とｎＭＯＳ６０２1は、ノードＮB1にて主端子同士が接続されている。同様に、ｐＭＯＳ６０１2〜６０１4とｎＭＯＳ６０２2〜６０２4はそれぞれ、ノードＮB2〜ＮB4にて主端子同士が接続されている。ノードＮB1〜ＮB4は、プレドライバ１５１の出力ＯＵＴに接続されている。一方、ノードＮB0は、プレドライバ１５１の入力ＩＮに接続されている。
【００７２】
このような構成により、図６(Ｂ)のプレドライバ１５１は、プレドライバ１５１を構成するトランジスタ群のゲート幅を調整することで、データ信号ｄｑのスルーレートを制御することができる。
【００７３】
なお、図６(Ｂ)のプレドライバ１５１は、ＫB個のｐＭＯＳ６０１と、ＫB個のｎＭＯＳ６０２と、ｐＭＯＳ用のＫB−１個のスイッチ６０３と、ｎＭＯＳ用のＫB−１個のスイッチ６０４とを備えていてもよい。但し、ＫBは２以上の整数である。
【００７４】
図６(Ｃ)では、プレドライバ１５１は、３個のバッファ７０１1〜７０１3と、３個の時定数回路７０２1〜７０２3とを備える。
【００７５】
バッファ７０１1〜７０１3はそれぞれ、ｐＭＯＳ７１１1〜７１１3と、ｎＭＯＳ７１２1〜７１２3とを有する。ｐＭＯＳ７１１1〜７１１3とｎＭＯＳ７１２1〜７１２3はそれぞれ、ノードＮC1〜ＮC3にて制御端子同士が接続されると共に、ノードＮC4〜ＮC6にて主端子同士が接続されている。ノードＮC1〜ＮC3はそれぞれ、時定数回路７０２1〜７０２3を介してプレドライバ１５１の入力ＩＮに接続され、ノードＮC4〜ＮC6は、プレドライバ１５１の出力ＯＵＴに接続されている。
【００７６】
時定数回路７０２1〜７０２3は、互いに異なる時定数τ1〜τ3を有する。時定数回路７０２1〜７０２3には、スルーレート制御端子ＴC1〜ＴC3を介して、スルーレート制御信号ＳSRが供給される。
【００７７】
このような構成により、図６(Ｃ)のプレドライバ１５１は、プレドライバ１５１のＨ／Ｌ（high/low）遷移時間差を調整することで、データ信号ｄｑのスルーレートを制御することができる。
【００７８】
なお、図６(Ｃ)のプレドライバ１５１は、ＫC個のバッファ７０１と、ＫC個の時定数回路７０２とを備えていてもよい。但し、ＫCは２以上の整数である。
【００７９】
以上のように、本実施形態では、遅延素子段数信号又はロックアップ時間信号に基づいて、データ信号のスルーレートを制御する。これにより、本実施形態では、データ信号のスルーレートの大きさが、プロセス条件に依存するというプロセス依存性を低減することができる。また、本実施形態では、遅延素子段数信号又はロックアップ時間信号をスルーレート制御の判断材料とするため、半導体装置の使用中に都度スルーレートを最適化することができる。
【００８０】
以下、第２実施形態の半導体装置について説明する。第２実施形態は、第１実施形態の変形例であり、第２実施形態については、第１実施形態との相違点を中心に説明する。
【００８１】
（第２実施形態）
図７は、第２実施形態の半導体装置の構成を示す回路図である。
【００８２】
図７の半導体装置は、マスタＤＬＬ回路１０１と、本発明の第１の位相制御回路の例であるデコーダ回路１０２と、第１及び第２のスレーブＤＬＬ回路１０３Ａ，Ｂと、本発明の第２の位相制御回路の例である制御回路１０４と、第１及び第２のデータ信号生成回路１１１Ａ，Ｂと、第１及び第２のデータ信号出力回路１１２Ａ，Ｂと、第１及び第２のストローブ信号出力回路１１３Ａ，Ｂとを備える。デコーダ回路１０２及び制御回路１０４は、本発明の位相制御回路の例である。
【００８３】
図７では、マスタＤＬＬ回路１０１の後段にデコーダ回路１０２が接続され、マスタＤＬＬ回路１０１及びデコーダ回路１０２の後段に制御回路１０４が接続され、制御回路１０４の後段に第１及び第２のスレーブＤＬＬ回路１０３Ａ，Ｂが接続されている。また、第１及び第２のスレーブＤＬＬ回路１０３Ａ，Ｂの後段にはそれぞれ、第１及び第２のデータ信号生成回路１１１Ａ，Ｂが接続されている。第１及び第２のデータ信号出力回路１１２Ａ，Ｂはそれぞれ、第１及び第２のデータ信号生成回路１１１Ａ，Ｂの後段に接続され、第１及び第２のデータ信号生成回路１１１Ａ，Ｂからの出力信号が入力される。一方、第１及び第２のストローブ信号出力回路１１３Ａ，Ｂは共に、クロック信号ＣＬＫが入力される。
【００８４】
以下、図７の半導体装置の詳細構成について説明する。
【００８５】
マスタＤＬＬ回路１０１の構成は、第１実施形態と同様である。マスタＤＬＬ回路１０１は、クロック信号ＣＬＫの位相の遅延角度と遅延素子段数との関係を示す遅延素子段数信号Ｓ1をデコーダ回路１０２及び制御回路１０４に出力する。遅延素子段数信号Ｓ1はここでは、クロック信号ＣＬＫの位相の遅延角度が３６０度となる遅延素子段数を保持する。例えば、遅延角度３６０度と遅延素子段数６０度とが対応する場合には、遅延素子段数信号Ｓ1は、段数「６０」を保持する。Ｓ1は、本発明の遅延素子段数信号の例である。
【００８６】
デコーダ回路１０２の構成も、第１実施形態と同様である。デコーダ回路１０２は、遅延素子段数信号Ｓ1に基づいて、クロック信号ＣＬＫの位相を所定角度分シフトさせるのに要する遅延素子段数を示す位相制御信号Ｓ2を生成して、制御回路１０４に出力する。クロック信号ＣＬＫの位相をシフトさせる角度はここでは、９０度とする。例えば、クロック信号ＣＬＫの位相を９０度シフトさせるのに要する遅延素子段数が１５段である場合には、位相制御信号Ｓ2は、段数「１５」を保持する。Ｓ2は、本発明の位相制御信号の例である。
【００８７】
制御回路１０４は、位相制御信号Ｓ2に基づいて、第１及び第２の位相制御信号Ｓ3A及びＳ3Bを生成して、それぞれ第１及び第２のスレーブＤＬＬ回路１０３Ａ，Ｂに出力する。第１の位相制御信号Ｓ3Aは、クロック信号ＣＬＫの位相を第１の所定角度分シフトさせるのに要する遅延素子段数を示し、第１のスレーブＤＬＬ回路１０３Ａに供給される。また、第２の位相制御信号Ｓ3Bは、クロック信号ＣＬＫの位相を第２の所定角度分シフトさせるのに要する遅延素子段数を示し、第２のスレーブＤＬＬ回路１０３Ｂに供給される。Ｓ3A及びＳ3Bは、本発明の第１及び第２の位相制御信号の例である。
【００８８】
制御回路１０４は、Ｓ3Aの遅延素子段数とＳ3Bの遅延素子段数の一方又は両方を、Ｓ2の遅延素子段数から微小に変化させることで、Ｓ3A及びＳ3Bを生成する。制御回路１０４は例えば、Ｓ3Aの遅延素子段数を「１４段」に設定し、Ｓ3Bの遅延素子段数を「１６段」に設定する。これにより、第１の所定角度と第２の所定角度は、異なる値に設定される。
【００８９】
第１及び第２のスレーブＤＬＬ回路１０３Ａ及びＢの構成はそれぞれ、第１実施形態のスレーブＤＬＬ回路１０３と同様である。
【００９０】
第１のスレーブＤＬＬ回路１０３Ａは、第１の位相制御信号Ｓ3Aに基づいて、クロック信号ＣＬＫの位相を第１の所定角度分シフトさせ、第１の所定角度分位相シフトさせたクロック信号ＣＬＫを第１のデータ信号生成回路１１１Ａに出力する。例えば、第１の位相制御信号Ｓ3Aが段数「１４」を保持する場合には、第１のスレーブＤＬＬ回路１０３Ａは、８４度分位相がシフトしたクロック信号ＣＬＫを出力する。
【００９１】
同様に、第２のスレーブＤＬＬ回路１０３Ｂは、第２の位相制御信号Ｓ3Bに基づいて、クロック信号ＣＬＫの位相を第２の所定角度分シフトさせ、第２の所定角度分位相シフトさせたクロック信号ＣＬＫを第２のデータ信号生成回路１１１Ｂに出力する。例えば、第２の位相制御信号Ｓ3Bが段数「１６」を保持する場合には、第２のスレーブＤＬＬ回路１０３Ｂは、９６度分位相がシフトしたクロック信号ＣＬＫを出力する。
【００９２】
図７では、第１のスレーブＤＬＬ回路１０３Ａから出力された遅延信号が、ｗ＿ＣＬＫAで示されている。このように、第１のスレーブＤＬＬ回路１０３Ａには、クロック信号ＣＬＫが入力され、クロック信号ＣＬＫの遅延信号である第１の遅延クロック信号ｗ＿ＣＬＫAを出力する。
【００９３】
また、図７では、第２のスレーブＤＬＬ回路１０３Ｂから出力された遅延信号が、ｗ＿ＣＬＫBで示されている。このように、第２のスレーブＤＬＬ回路１０３Ｂには、クロック信号ＣＬＫが入力され、クロック信号ＣＬＫの遅延信号である第２の遅延クロック信号ｗ＿ＣＬＫBを出力する。
【００９４】
以下、図７のその他の回路ブロックの詳細構成について説明する。
【００９５】
第１のデータ信号生成回路１１１Ａ、第１のデータ信号出力回路１１２Ａ、及び第１のストローブ信号出力回路１１３Ａの構成はそれぞれ、第１実施形態のデータ信号生成回路１１１、データ信号出力回路１１２、及びストローブ信号出力回路１１３と同様である。
【００９６】
第１のデータ信号生成回路１１１Ａは、第１の遅延クロック信号ｗ＿ＣＬＫAに同期した第１データ信号ｄｑ［７：０］を、第１のデータ信号出力回路１１２Ａに出力する。また、第１のデータ信号出力回路１１２Ａは、第１のデータ信号ｄｑ［７：０］が入力される第１のプレドライバ１５１Ａと、第１のプレドライバ１５１Ａと直列に接続され、第１のデータ信号ＤＱ［７：０］を出力する第１のドライバ１５２Ａとを備える。また、第１のストローブ信号出力回路１１３Ａは、第１のストローブ信号ｄｑｓ０が入力される第１のプレドライバ１６１Ａと、第１のプレドライバ１６１Ａと直列に接続され、第１のストローブ信号ＤＱＳ０を出力する第１のドライバ１６２Ａとを備える。
【００９７】
なお、ｄｑ［７：０］とＤＱ［７：０］はそれぞれ、本発明において、第１のデータ信号生成回路１１１Ａが生成する第１のデータ信号と、第１のデータ信号出力回路１１２Ａが出力する第１のデータ信号の例である。
【００９８】
また、第２のデータ信号生成回路１１１Ｂ、第２のデータ信号出力回路１１２Ｂ、及び第２のストローブ信号出力回路１１３Ｂの構成もそれぞれ、第１実施形態のデータ信号生成回路１１１、データ信号出力回路１１２、及びストローブ信号出力回路１１３と同様である。
【００９９】
第２のデータ信号生成回路１１１Ｂは、第２の遅延クロック信号ｗ＿ＣＬＫBに同期した第２データ信号ｄｑ［１５：８］を、第２のデータ信号出力回路１１２Ｂに出力する。また、第２のデータ信号出力回路１１２Ｂは、第２のデータ信号ｄｑ［１５：８］が入力される第２のプレドライバ１５１Ｂと、第２のプレドライバ１５１Ｂと直列に接続され、第２のデータ信号ＤＱ［１５：８］を出力する第２のドライバ１５２Ｂとを備える。また、第２のストローブ信号出力回路１１３Ｂは、第２のストローブ信号ｄｑｓ１が入力される第２のプレドライバ１６１Ｂと、第２のプレドライバ１６１Ｂと直列に接続され、第２のストローブ信号ＤＱＳ１を出力する第２のドライバ１６２Ｂとを備える。
【０１００】
なお、ｄｑ［１５：８］とＤＱ［１５：８］はそれぞれ、本発明において、第２のデータ信号生成回路１１１Ｂが生成する第２のデータ信号と、第２のデータ信号出力回路１１２Ｂが出力する第２のデータ信号の例である。
【０１０１】
以上のように、本実施形態では、クロック信号ＣＬＫの位相を第１の所定角度分シフトさせた第１の遅延クロック信号ｗ＿ＣＬＫAと、クロック信号ＣＬＫの位相を第２の所定角度分シフトさせた第２の遅延クロック信号ｗ＿ＣＬＫBとを生成し、第１の所定角度と第２の所定角度を異なる角度に設定する。そして、本実施形態では、第１及び第２の遅延クロック信号ｗ＿ＣＬＫA及びｗ＿ＣＬＫBをそれぞれ、第１及び第２のスレーブＤＬＬ回路１１３Ａ及びＢに供給する。
【０１０２】
その結果、本実施形態では、第１のデータ信号ｄｑ［７：０］及びＤＱ［７：０］のスイッチンタイミングと、第２のデータ信号ｄｑ［１５：８］及びＤＱ［１５：８］のスイッチンタイミングとが、ずれることになる。これにより、本実施形態では、同時スイッチングノイズによる電磁放射（ＥＭＩ）を削減することができる。また、本実施形態では、後述のように、遅延素子段数信号Ｓ1を、Ｓ3Aの遅延素子段数及びＳ3Bの遅延素子段数を設定する際の判断材料とすることで、半導体装置の使用中に都度スイッチングタイミングのずれを最適化することができる。
【０１０３】
なお、本実施形態では、第１及び第２のデータ信号はそれぞれ、１バイト（８ビット）信号である。そして、本実施形態では、データ信号の位相シフト量は、各バイト毎に設定される。本実施形態では、ｄｑ［７：０］及びＤＱ［７：０］については、いずれも第１の所定角度分位相をシフトさせ、ｄｑ［１５：８］及びＤＱ［１５：８］については、いずれも第２の所定角度分位相をシフトさせる。但し、本実施形態では、バイト単位以外の単位で、データ信号の位相シフト量を設定しても構わない。
【０１０４】
ここで、電磁放射について説明する。
【０１０５】
ｄｑ［７：０］やｄｑ［１５：８］を含むデータ信号ｄｑの全ビットがトグルすると、データ信号ｄｑを処理するプレドライバ及びドライバに電流が流れ、強い電磁放射が発生する。本実施形態では、データ信号ｄｑの各バイト毎に、トグルする時間をずらす。時間をずらす手法として、本実施形態では、遅延クロック信号の位相シフト量を、各バイト毎に本来の値からシフトさせる。
【０１０６】
上記の説明中では、ｗ＿ＣＬＫAの位相シフト量は、９０度から８４度にシフトされており、ｗ＿ＣＬＫBの位相シフト量は、９０度から９６度にシフトされている。このように、本実施形態では、ｄｑ［７：０］とｄｑ［１５：８］は、互いに逆方向に位相をシフトさせる。そして、本実施形態では、第１及び第２の位相制御信号Ｓ3A及びＳ3Bが保持する遅延素子段数をオフセットさせることで、ｗ＿ＣＬＫA及びｗ＿ＣＬＫBの位相シフト量を変化させる。これにより、本実施形態では、同時スイッチングノイズによる電磁放射を比較的簡単に削減することができる。
【０１０７】
以下、プロセス条件を考慮したＳ3A及びＳ3Bの遅延素子段数の設定について説明する。
【０１０８】
プロセス条件がtypicalコーナー、fastコーナー、slowコーナーのときのデータ信号波形については、図４に示した。プロセス条件がfastコーナーのときには、データ信号波形の立ち上がり及び立下りは、急峻になる。一方、プロセス条件がslowコーナーのときには、データ信号波形の立ち上がり及び立下りは、緩やかになる。
【０１０９】
また、上記の説明中では、制御回路１０４は、第１の位相制御信号Ｓ3Aの遅延素子段数を、１５段から１４段に変化させ、第２の位相制御信号Ｓ3Bの遅延素子段数を、１５段から１６段に変化させている。
【０１１０】
本実施形態では、制御回路１０４は、Ｓ3Aの遅延素子段数とＳ3Bの遅延素子段数の一方又は両方を、プロセス条件に応じて変化させてもよい。プロセス条件は、上述のように、遅延素子段数信号Ｓ1が保持する遅延素子段数から判断可能である。
【０１１１】
そこで、本実施形態の制御回路１０４は、図７に示すように、遅延素子段数信号Ｓ1及び位相制御信号Ｓ2に基づいて、Ｓ3A及びＳ3Bを生成して出力する。これにより、本実施形態の制御回路１０４は、Ｓ3Aの遅延素子段数とＳ3Bの遅延素子段数の一方又は両方を、プロセス条件に応じて変化させることができる。
【０１１２】
以下、Ｓ3A及びＳ3Bの遅延素子段数の調節方法の第１及び第２の例について説明する。
【０１１３】
図８は、Ｓ3A及びＳ3Bの遅延素子段数の調節方法の第１の例を説明するための波形図である。
【０１１４】
図８(Ａ)に示す波形Ｗ1と、図８(Ｂ)に示す波形Ｗ1’は、Ｓ3Aの遅延素子段数を調節する前及び調節した後の、第１のデータ信号出力回路１１２Ａの出力波形（ＤＱ［７：０］の波形）を表す。また、図８(Ａ)に示す波形Ｗ2と、図８(Ｂ)に示す波形Ｗ2’は、Ｓ3Bの遅延素子段数を調節する前及び調節した後の、第２のデータ信号出力回路１１２Ｂの出力波形（ＤＱ［１５：８］の波形）を表す。
【０１１５】
ここで、調節前及び調節後のＤＱ［７：０］の位相シフト量を、９０度及び９０−ΔA度、調節前及び調節後のＤＱ［１５：８］の位相シフト量を、９０度及び９０＋ΔB度とする。
【０１１６】
また、調節前及び調節後のＳ3Aの遅延素子段数を、１５段及び１５−ＮA段、調節前及び調節後のＳ3Bの遅延素子段数を、１５度及び１５＋ＮB段とする。
【０１１７】
図８では、ΔA及びΔBの値が、プロセス条件によらずほぼ一定値になるよう、ＮA及びＮBの値を調節する。
【０１１８】
制御回路１０４（図７）は、遅延素子段数信号Ｓ1が保持する遅延素子段数が、所定段数よりも大きい場合には、プロセス条件はfastコーナーであると判断する。fastコーナーでは、各遅延素子の遅延量は、typicalコーナーの場合に比べて小さくなる。そのため、fastコーナーでは、ΔA及びΔBの値を一定値にするために、ＮA及びＮBの値を、typicalコーナーの場合に比べて大きくする必要がある。そこで、fastコーナーでは、制御回路１０４は、ＮA及びＮBの値を、typicalコーナーの場合に比べて大きくする。
【０１１９】
また、制御回路１０４は、遅延素子段数信号Ｓ1が保持する遅延素子段数が、所定段数よりも小さい場合には、プロセス条件はslowコーナーであると判断する。slowコーナーでは、各遅延素子の遅延量は、typicalコーナーの場合に比べて大きくなる。そのため、slowコーナーでは、ΔA及びΔBの値を一定値にするために、ＮA及びＮBの値を、typicalコーナーの場合に比べて小さくする必要がある。そこで、slowコーナーでは、制御回路１０４は、ＮA及びＮBの値を、typicalコーナーの場合に比べて小さくする。
【０１２０】
このように、図８の方法では、Ｓ3A及びＳ3Bの遅延素子段数を、遅延素子段数信号Ｓ1が保持する遅延素子段数に応じて、即ち、プロセス条件に応じて調節する。これにより、ΔA及びΔBの値を、プロセス条件によらずほぼ一定値にすることができる。図８の方法には例えば、どのようなプロセス条件においても、一定のスイッチングタイミングのずれを確保できるという利点がある。
【０１２１】
図９は、Ｓ3A及びＳ3Bの遅延素子段数の調節方法の第２の例を説明するための波形図である。
【０１２２】
図９(Ａ)、(Ｂ)、(Ｃ)はそれぞれ、プロセス条件がtypicalコーナー、fastコーナー、slowコーナーのときの、ＤＱ［７：０］及びＤＱ［１５：８］の波形を表す。また、波形Ｘ1〜Ｘ3及びＸ1’〜Ｘ3’はそれぞれ、Ｓ3Aの遅延素子段数を調節する前及び調節した後の、ＤＱ［７：０］の波形を表す。また、波形Ｙ1〜Ｙ3及びＹ1’〜Ｙ3’はそれぞれ、Ｓ3Bの遅延素子段数を調節する前及び調節した後の、ＤＱ［１５：８］の波形を表す。
【０１２３】
ここで、図８の場合と同様に、調節前及び調節後のＤＱ［７：０］の位相シフト量を、９０度及び９０−ΔA度、調節前及び調節後のＤＱ［１５：８］の位相シフト量を、９０度及び９０＋ΔB度とする。
【０１２４】
また、調節前及び調節後のＳ3Aの遅延素子段数を、１５段及び１５−ＮA段、調節前及び調節後のＳ3Bの遅延素子段数を、１５度及び１５＋ＮB段とする。
【０１２５】
図８では、ΔA及びΔBの値が、プロセス条件によらずほぼ一定値になるよう、ＮA及びＮBの値を調節した。これに対し、図９では、ΔA及びΔBの値が、プロセス条件に応じて変化するよう、ＮA及びＮBの値を調節する。
【０１２６】
具体的には、より多くの消費電流が生じるfastコーナーでは、制御回路１０４（図７）は、ΔA及びΔBの値がtypicalコーナーの場合に比べて大きくなるよう、ＮA及びＮBの値を調節する。一方、slowコーナーでは、制御回路１０４は、ΔA及びΔBの値が０になるよう、ＮA及びＮBの値を０にする。プロセス条件の判断方法については、図８の場合と同様である。
【０１２７】
このように、図９の方法では、Ｓ3A及びＳ3Bの遅延素子段数を、遅延素子段数信号Ｓ1が保持する遅延素子段数に応じて、即ち、プロセス条件に応じて調節する。これにより、ΔA及びΔBの値を、プロセス条件に応じて変化させることができる。図９の方法には例えば、スイッチングタイミングのずれを、プロセス条件に応じて好適化できるという利点がある。
【０１２８】
図１０は、図７の制御回路１０４の動作例を示すフローチャートである。
【０１２９】
まず、制御回路１０４は、マスタＤＬＬ回路１０１がロックされていることを確認した後（ステップＳ１）、遅延素子段数信号Ｓ1が保持する遅延素子段数を読み込む（ステップＳ２）。
【０１３０】
次に、制御回路１０４は、上記遅延素子段数が、所定段数ｎ1未満であるか否か、及び所定段数ｎ2未満であるか否かを判断する（ステップＳ３，Ｓ４）。但し、ｎ1及びｎ2は、ｎ1＜ｎ2を満たす整数である。
【０１３１】
次に、制御回路１０４は、ＤＱの位相シフト量を設定する。図１０において、制御回路１０４は、ＤＱ［７：０］の位相シフト量を、９０−Δ度に設定し、ＤＱ［１５：８］の位相シフト量を、９０＋Δ度に設定するものとする。
【０１３２】
制御回路１０４は、上記遅延素子段数がｎ1未満の場合には、ΔをΔ1度に設定する（ステップＳ５）。また、上記遅延素子段数がｎ1以上かつｎ2未満の場合には、ΔをΔ2度に設定する（ステップＳ６）。また、上記遅延素子段数がｎ2以上の場合には、ΔをΔ3度に設定する（ステップＳ７）。但し、Δ1、Δ2、Δ3は、Δ1＜Δ2＜Δ3を満たす整数である。
【０１３３】
図１０では、制御回路１０４は、第１の位相制御信号Ｓ3Aの遅延素子段数を、１５−Ｎ段に設定し、第２の位相制御信号Ｓ3Bの遅延素子段数を、１５＋Ｎ段に設定する。Ｎの値は、Δの値を決定することで決定可能になる。よって、制御回路１０４は、ステップＳ５からＳ７のいずれかでΔの値が決定されると、Δの値に基づいてＮの値を決定する（ステップＳ８）。
【０１３４】
しかしながら、制御回路１０４は、決定されたＮの値を、常に採用するわけではなく、データ信号ＤＱが出力中でないことを条件に採用する。
【０１３５】
制御回路１０４は、ステップＳ８でＳ3A及びＳ3Bの遅延素子段数が決定されると、第１及び第２のデータ信号出力回路１１２Ａ及びＢがＤＱ［７：０］及びＤＱ［１５：８］の出力期間にあるか否かを判断する（ステップＳ９）。
【０１３６】
制御回路１０４は、ＤＱ［７：０］及びＤＱ［１５：８］が出力中であれば、Ｓ3A及びＳ3Bの更新を行わない（ステップＳ１０）。この場合、ステップＳ８で決定されたＳ3A及びＳ3Bの遅延素子段数を採用されず、現在採用中のＳ3A及びＳ3Bの遅延素子段数が維持される。
【０１３７】
一方、制御回路１０４は、ＤＱ［７：０］及びＤＱ［１５：８］が出力中でなければ、Ｓ3A及びＳ3Bの更新を行う（ステップＳ１１）。この場合、現在採用中のＳ3A及びＳ3Bの遅延素子段数が、ステップＳ８で決定されたＳ3A及びＳ3Bの遅延素子段数に置き換えられる。
【０１３８】
そして、制御回路１０４は、ステップＳ１０，Ｓ１１で採用されたＳ3A及びＳ3Bを使用して、第１及び第２のスレーブＤＬＬ回路１０３Ａ及びＢを制御する（ステップＳ１２）。
【０１３９】
このように、図１０のフローでは、Ｓ3A及びＳ3Bの更新を、データ信号ＤＱの出力期間以外の期間に行う。データ送信中にｗ＿ＣＬＫA、ｗ＿ＣＬＫB、ＤＱ［７：０］、ＤＱ［１５：８］等の位相が変化すると、ジッタが発生してしまう。図１０のフローでは、データ信号ＤＱの出力中にはＳ3A及びＳ3Bの更新を行わないため、このようなジッタの発生を抑えることができる。データ信号ＤＱが出力中か否かは例えば、制御回路１０４に供給されるWrite Enable信号がhighである否かにより判断可能である（図７参照）。
【０１４０】
また、図１のスルーレート制御信号ＳSRの更新についても、Ｓ3A及びＳ3Bの更新と同様に、データ信号ＤＱの出力期間以外の期間に行うことが望ましい。これにより、ＳSRの更新に起因するジッタの発生を抑えることができる。
【０１４１】
以上のように、本実施形態では、遅延素子段数信号Ｓ1に基づいて、Ｓ3A及びＳ3Bの遅延素子段数を設定することができる。これにより、本実施形態では、プロセス条件を考慮したＳ3A及びＳ3Bの遅延素子段数の設定が可能になる。また、本実施形態では、遅延素子段数信号Ｓ1を、Ｓ3A及びＳ3Bの遅延素子段数を設定する際の判断材料とすることで、半導体装置の使用中に都度スイッチングタイミングのずれを最適化することができる。
【０１４２】
また、Ｓ3A及びＳ3Bの制御の判断材料となる遅延素子段数信号Ｓ1は、マスタＤＬＬ回路１０１により出力される。マスタＤＬＬ回路１０１は、ＤＤＲメモリに一般的に組み込まれている回路ブロックである。そのため、本実施形態をＤＤＲメモリを備える半導体装置に適用する場合には、半導体装置に新たに追加する回路ブロックが少なくて済む。具体的には、ロジック部分の追加だけで済む。
【０１４３】
また、遅延素子段数信号Ｓ1が保持する遅延素子段数は、クロック信号ＣＬＫに依存した実際の遅延情報である。そのため、本実施形態では、第１及び第２のプレドライバ１５１Ａ及びＢのAt Speedでの特性を模擬した情報を、Ｓ3A及びＳ3Bの制御に用いることができる。
【０１４４】
また、本実施形態では、マスタＤＬＬ回路１０１、第１及び第２のスレーブＤＬＬ回路１０３Ａ，Ｂ、及び第１及び第２のデータ信号出力回路１１２Ａ，Ｂは、同じプロセスのトランジスタを有することが望ましい。これにより、本実施形態では、ＥＯＬを含めて、第１及び第２のプレドライバ１５１Ａ及びＢのAt Speedでの特性をより正確に模擬することが可能になる。これは、第１実施形態に関しても同様である。
【０１４５】
また、本実施形態では、ロックアップ時間Tlockを保持するロックアップ時間信号に基づいて、Ｓ3A及びＳ3Bの遅延素子段数を設定しても構わない。これは、第１実施形態と同様である。
【０１４６】
また、本実施形態では、それぞれ１バイト信号である第１及び第２のデータ信号を処理する半導体装置について説明した。しかしながら、本実施形態は、それぞれ１バイト信号である第１から第Ｎのデータ信号を処理する半導体装置についても適用可能である。ただし、Ｎは３以上の整数である。
【０１４７】
また、本実施形態では、ＤＤＲメモリのソースシンクロナスＩ／Ｏ（Input/Output）について取り上げた。しかしながら、本実施形態は例えば、その他のメモリのソースシンクロナスＩ／Ｏについても適用可能である。
【０１４８】
以上のように、本実施形態では、クロック信号ＣＬＫの位相を第１の所定角度分シフトさせた第１の遅延クロック信号ｗ＿ＣＬＫAと、クロック信号ＣＬＫの位相を第２の所定角度分シフトさせた第２の遅延クロック信号ｗ＿ＣＬＫBとを生成し、第１の所定角度と第２の所定角度を異なる角度に設定する。これにより、本実施形態では、第１のデータ信号のスイッチンタイミングと第２のデータ信号のスイッチンタイミングとをずらし、同時スイッチングノイズによる電磁放射（ＥＭＩ）を削減することができる。また、本実施形態では、遅延素子段数信号を、第１及び第２の位相制御信号の遅延素子段数を設定する際の判断材料とすることで、半導体装置の使用中に都度スイッチングタイミングのずれを最適化することができる。
【０１４９】
なお、本発明の一の態様の半導体装置は、例えば、複数の遅延素子を有し、クロック信号が入力され、前記クロック信号の位相の遅延角度と前記遅延素子の段数との関係を示す遅延素子段数信号を出力するマスタＤＬＬ回路と、前記遅延素子段数信号に基づいて、前記クロック信号の位相を第１及び第２の所定角度分シフトさせるのに要する遅延素子段数を示す第１及び第２の位相制御信号を生成し、前記第１及び第２の位相制御信号を出力する位相制御回路と、複数の遅延素子を有し、前記クロック信号と前記第１の位相制御信号とが入力され、前記第１の位相制御信号に基づいて、前記クロック信号の位相を前記第１の所定角度分シフトさせ、前記第１の所定角度分位相をシフトさせた前記クロック信号を出力する第１のスレーブＤＬＬ回路と、複数の遅延素子を有し、前記クロック信号と前記第２の位相制御信号とが入力され、前記第２の位相制御信号に基づいて、前記クロック信号の位相を前記第２の所定角度分シフトさせ、前記第２の所定角度分位相をシフトさせた前記クロック信号を出力する第２のスレーブＤＬＬ回路と、前記第１のスレーブＤＬＬ回路から出力された前記クロック信号に同期した第１のデータ信号を生成する第１のデータ信号生成回路と、前記第２のスレーブＤＬＬ回路から出力された前記クロック信号に同期した第２のデータ信号を生成する第２のデータ信号生成回路とを備え、前記位相制御回路は、前記第１の所定角度と前記第２の所定角度とを異なる値に設定する。
【０１５０】
前記半導体装置は、前記第１のデータ信号が入力される第１のプレドライバと、前記第１のプレドライバと直列に接続され、前記第１のデータ信号を出力する第１のドライバとを備える第１のデータ信号出力回路と、前記第２のデータ信号が入力される第２のプレドライバと、前記第２のプレドライバと直列に接続され、前記第２のデータ信号を出力する第２のドライバとを備える第２のデータ信号出力回路とを更に備えていてもよく、前記位相制御回路は、前記第１及び第２の位相制御信号の更新を、前記第１及び第２のデータ信号出力回路による前記第１及び第２のデータ信号の出力期間以外の期間に行ってもよい。
【０１５１】
前記半導体装置において、前記マスタＤＬＬ回路、前記第１及び第２のスレーブＤＬＬ回路、及び前記第１及び第２のデータ信号出力回路は、同じプロセスのトランジスタを有していてもよい。
【０１５２】
以上、本発明の具体的な態様の例を、第１及び第２実施形態により説明したが、本発明は、これらの実施形態に限定されるものではない。
【符号の説明】
【０１５３】
１０１  マスタＤＬＬ回路
１０２  デコーダ回路
１０３  スレーブＤＬＬ回路
１０４  制御回路
１１１  データ信号生成回路
１１２  データ信号出力回路
１１３  ストローブ信号出力回路
１２１  スルーレート制御回路
１３１  ＥＶＥＮ成分用のフリップフロップ回路
１３２  ＯＤＤ成分用のフリップフロップ回路
１３３  選択器
１４１  インバータ
１５１、１６１  プレドライバ
１５２、１６２  ドライバ
２０１、４０１  遅延素子
２１１  位相比較器
２１２  カウンタ
２１３、４１１  デコーダ
２２１、４２１  選択器
３０１  位相制御デコーダ
５０１、７０１  バッファ
５０２  負荷容量
５０３、６０３、６０４  スイッチ
５１１、６０１、７１１  ｐＭＯＳ
５１２、６０２、７１２  ｎＭＯＳ
７０２  時定数回路
【図１】
2010206747.tif 000003
【図２】
2010206747.tif 000004
【図３】
2010206747.tif 000005
【図４】
2010206747.tif 000006
【図５】
2010206747.tif 000007
【図６】
2010206747.tif 000008
【図７】
2010206747.tif 000009
【図８】
2010206747.tif 000010
【図９】
2010206747.tif 000011
【図１０】
2010206747.tif 000012