(57)【要約】【課題】マスクタイミングを制御する回路規模を小さい構成で実現すること。【解決手段】ドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子とを比較し、両素子の特性が一致するか否かを示す調整用モニタ信号を出力するドライブ調整用バッファ２０と、調整用モニタ信号に応じて、Ｉ／Ｏバッファの特性と比例関係にあるドライブ制御コードを出力するドライブ能力制御回路１４と、システムクロックに応じて、システムクロックの１クロックに相当する遅延値に対応する遅延制御コードを出力する遅延制御回路１３と、ドライブ制御コードと遅延制御コードとに基づいて遅延データを計算する遅延計算回路１６と、遅延データに基づいて、リード時のデータストローブ信号のマスクタイミングを制御するマスク制御回路１７と、を備える。【選択図】図１
2011242838.tif 000002
【特許請求の範囲】
【請求項１】
ドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子とを比較し、両素子の特性が一致するか否かを示す調整用モニタ信号を出力するドライブ調整用バッファと、
前記ドライブ調整用バッファからの前記調整用モニタ信号に応じて、前記Ｉ／Ｏバッファの特性と比例関係にあるドライブ制御コードを出力するドライブ能力制御回路と、
システムクロックに応じて、前記システムクロックの１クロックに相当する遅延値に対応する遅延制御コードを出力する遅延制御回路と、
前記ドライブ能力制御回路からの前記ドライブ制御コードと前記遅延制御回路からの前記遅延制御コードとに基づいて遅延データを計算する遅延計算回路と、
前記遅延計算回路からの前記遅延データに基づいて、リード時のデータストローブ信号のマスクタイミングを制御するマスク制御回路と、
を備え、
前記第１素子は、前記ドライブ能力制御回路からの前記ドライブ制御コードに応じてドライブ特性が変化することを特徴とするメモリインタフェース回路。
【請求項２】
前記遅延計算回路は、
遅延制御コードに対応する内部遅延値が設定された内部遅延変換テーブルと、
前記内部遅延変換テーブルに基づいて、前記遅延制御回路からの前記遅延制御コードを前記内部遅延値に変換して前記内部遅延値を出力する遅延制御コード変換回路と、
ドライブ制御コードに対応するＩ／Ｏバッファ遅延値が設定されたＩ／Ｏバッファ遅延変換テーブルと、
前記Ｉ／Ｏバッファ遅延変換テーブルに基づいて、前記ドライブ能力制御回路からの前記ドライブ制御コードを前記Ｉ／Ｏバッファ遅延値に変換して前記Ｉ／Ｏバッファ遅延値を出力するドライブ制御コード変換回路と、
前記遅延制御コード変換回路からの前記内部遅延値と前記ドライブ制御コード変換回路からの前記Ｉ／Ｏバッファ遅延値とを加算して前記遅延データを出力する加算器と、
を備えることを特徴とする請求項１記載のメモリインタフェース回路。
【請求項３】
前記遅延制御回路は、前記システムクロックを入力として、内部の可変遅延回路の遅延を順次変化させ、前記システムクロックの１クロックに相当する遅延を、内部の位相と比較することにより検知することで決定し、前記遅延制御コードとして出力することを特徴とする請求項１又は２記載のメモリインタフェース回路。
【請求項４】
前記ドライブ能力制御回路は、入力された前記ドライブ調整用バッファについて特性が一致するものである時の前記ドライブ制御コードを前記遅延計算回路に向けて出力することを特徴とする請求項１乃至３のいずれか一に記載のメモリインタフェース回路。
【請求項５】
前記遅延計算回路からの前記遅延データと、クロックからの基準遅延値とを比較し、前記遅延データが前記基準遅延値よりも大きい場合に、リード時の前記データストローブ信号のマスクタイミングを制御するマスク制御信号を前記基準遅延値だけ遅らせて出力するマスク制御回路を備えることを特徴とする請求項１乃至４のいずれか一に記載のメモリインタフェース回路。
【請求項６】
前記クロックからの前記基準遅延値は、前記システムクロック、又は外部から与えられるクロック信号から半周期単位の時間であることを特徴とする請求項５記載のメモリインタフェース回路。
【請求項７】
前記マスク制御回路は、外部から与えられた周波数設定に応じて前記マスク制御信号を出力することを特徴とする請求項５又は６記載のメモリインタフェース回路。
【請求項８】
前記遅延計算回路は、外部から与えられたフライトタイム設定に応じて、前記遅延データにフライトタイムの遅延を加算した結果を出力することを特徴とする請求項１乃至７のいずれか一に記載のメモリインタフェース回路。
【請求項９】
前記マスク制御回路からの前記マスク制御信号が入力されるとともに、前記マスク制御信号の立ち上がりで前記データストローブ信号のマスクを解除したマスク解除状態にし、前記マスク制御信号の立ち下がり後の次の前記データストローブ信号の立ち下がりで前記データストローブ信号をマスクするマスク状態にするためのマスク信号を出力するマスク信号生成回路と、
システムクロックを反転させたクロック信号を生成して出力するクロック生成回路と、
前記クロック生成回路からの前記クロック信号を受信してメモリに向けて出力するクロック出力バッファと、
前記メモリから出力された前記データストローブ信号を受信して出力するデータストローブ入力バッファと、
前記マスク信号生成回路からの前記マスク信号に基づいて、前記データストローブ入力バッファからの前記データストローブ信号をマスクするマスク用ＡＮＤゲートと、
を備えることを特徴とする請求項５乃至８のいずれか一に記載のメモリインタフェース回路。
【請求項１０】
前記内部遅延値は、前記クロック生成回路から前記クロック出力バッファまでの間の遅延値と、前記データストローブ入力バッファから前記マスク用ＡＮＤゲートまでの間の遅延値との合計値であり、
前記Ｉ／Ｏバッファ遅延値は、前記クロック出力バッファでの遅延値と、前記データストローブ入力バッファでの遅延値との合計値であることを特徴とする請求項９記載のメモリインタフェース回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリインタフェース回路に関し、特に、ＤＤＲ、ＤＤＲ２、ＤＤＲ３等のダブルデータレート（以降、ＤＤＲと表記）のＳＤＲＡＭをリード制御するインタフェース回路に関する。
【背景技術】
【０００２】
半導体市場ではあらゆる分野で低コストの要求が高まっており、チップ内に搭載される回路規模の縮小化実現が課題となっている。また、メモリインタフェース回路は、広い分野で利用されており、特に、ＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory）は、近年、メモリの市場で高いシェアを占めることから、半導体に搭載されるこれらのメモリインタフェース回路も拡大傾向にある。
【０００３】
しかしながら、メモリの高速化が進んでいることからメモリインタフェース回路も必要とされる性能を実現するために回路規模が増大している中で、ＤＤＲのメモリインタフェース回路では、リード時にＤＱＳ（データストローブ信号）のハイインピーダンス状態の際に発生するグリッジが入力されることによるデータ破壊を防止する必要があるのに対して、以前はタイミングの余裕が十分あったため、単にＤＱＳのハイインピーダンス状態の期間をマスクする信号を生成し、ＤＱＳを制御するだけで対応できたが、近年はメモリの高速化により、リード時のＤＱＳと読み出すためのクロックとのタイミングが厳しくなってきているため、ＤＱＳとクロックのタイミングを正確に合わせた、ＤＱＳのハイインピーダンス状態の期間をマスクする信号の生成が必要となってきた。
【０００４】
ＤＱＳのハイインピーダンス状態の期間をマスクするメモリインタフェース回路として、例えば、特許文献１では、データストローブ信号ＤＱＳを入力する入力レシーバ（バッファ）１０２と、マスク制御信号ＲＥＮを生成するマスク制御信号発生回路１０７と、入力したＤＱＳを遅延させ遅延信号ＤＱＳＤとして出力する遅延回路１０４と、入出力バッファの入出力遅延特性に応じた遅延量でＲＥＮを遅延させて出力するＩ／Ｏレプリカ回路１０３と、レプリカ回路によるＲＥＮＦＢを、ＤＱＳの遅延に追従して遅延制御した信号ＲＥＮＤとして出力する遅延回路１０５と、ＲＥＮＤを基準タイミングとしてマスク信号を生成し、マスク信号に応じて遅延信号ＤＱＳＤを所定期間マスクしてグリッジを除去したデータストローブ信号を生成するマスク回路１０６とを有するメモリインタフェース回路が開示されている（図９参照）。つまり、特許文献１に記載のメモリインタフェース回路では、リード前後のＤＱＳのハイインピーダンス状態をマスクし、Ｉ／Ｏレプリカ回路１０３と遅延回路１０５で追従させる構成により、ＤＱＳの入力遅延を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−９６２１号公報（図８）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載のメモリインタフェース回路では、回路規模が大きくなるという問題がある。つまり、メモリのＤＱＳのマスク制御を行うタイミング生成のために、コントローラのクロック送信用のＩ／Ｏバッファ１０９の出力遅延と、ＤＱＳ受信用のＩ／Ｏバッファ１０２の入力遅延に追従させるためのＩ／Ｏレプリカ回路１０３と、外部のＤＱＳ遅延に相当する遅延を生成する可変遅延回路１０４とを用いている。Ｉ／Ｏレプリカ回路１０３はＩ／Ｏバッファ１０２、１０９と同等のもので構成し、可変遅延回路１０４は多数の遅延ゲートで構成する必要があることから、回路規模が大きくなる。
【０００７】
従来技術では、マスクタイミングを制御する回路規模を小さい構成で実現することができなかった。
【課題を解決するための手段】
【０００８】
本発明の一視点においては、メモリインタフェース回路において、ドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子とを比較し、両素子の特性が一致するか否かを示す調整用モニタ信号を出力するドライブ調整用バッファと、前記ドライブ調整用バッファからの前記調整用モニタ信号に応じて、前記Ｉ／Ｏバッファの特性と比例関係にあるドライブ制御コードを出力するドライブ能力制御回路と、システムクロックに応じて、前記システムクロックの１クロックに相当する遅延値に対応する遅延制御コードを出力する遅延制御回路と、前記ドライブ能力制御回路からの前記ドライブ制御コードと前記遅延制御回路からの前記遅延制御コードとに基づいて遅延データを計算する遅延計算回路と、前記遅延計算回路からの前記遅延データに基づいて、リード時のデータストローブ信号のマスクタイミングを制御するマスク制御回路と、を備え、前記第１素子は、前記ドライブ能力制御回路からの前記ドライブ制御コードに応じてドライブ特性が変化することを特徴とする。
【０００９】
本発明の前記メモリインタフェース回路において、前記遅延計算回路は、遅延制御コードに対応する内部遅延値が設定された内部遅延変換テーブルと、前記内部遅延変換テーブルに基づいて、前記遅延制御回路からの前記遅延制御コードを前記内部遅延値に変換して前記内部遅延値を出力する遅延制御コード変換回路と、ドライブ制御コードに対応するＩ／Ｏバッファ遅延値が設定されたＩ／Ｏバッファ遅延変換テーブルと、前記Ｉ／Ｏバッファ遅延変換テーブルに基づいて、前記ドライブ能力制御回路からの前記ドライブ制御コードを前記Ｉ／Ｏバッファ遅延値に変換して前記Ｉ／Ｏバッファ遅延値を出力するドライブ制御コード変換回路と、前記遅延制御コード変換回路からの前記内部遅延値と前記ドライブ制御コード変換回路からの前記Ｉ／Ｏバッファ遅延値とを加算して前記遅延データを出力する加算器と、を備えることが好ましい。
【００１０】
本発明の前記メモリインタフェース回路において、前記遅延制御回路は、前記システムクロックを入力として、内部の可変遅延回路の遅延を順次変化させ、前記システムクロックの１クロックに相当する遅延を、内部の位相と比較することにより検知することで決定し、前記遅延制御コードとして出力することが好ましい。
【００１１】
本発明の前記メモリインタフェース回路において、前記ドライブ能力制御回路は、入力された前記ドライブ調整用バッファについて特性が一致するものである時の前記ドライブ制御コードを前記遅延計算回路に向けて出力することが好ましい。
【００１２】
本発明の前記メモリインタフェース回路において、前記遅延計算回路からの前記遅延データと、クロックからの基準遅延値とを比較し、前記遅延データが前記基準遅延値よりも大きい場合に、リード時の前記データストローブ信号のマスクタイミングを制御するマスク制御信号を前記基準遅延値だけ遅らせて出力するマスク制御回路を備えることが好ましい。
【００１３】
本発明の前記メモリインタフェース回路において、前記クロックからの前記基準遅延値は、前記システムクロック又は外部から与えるクロック信号から半周期単位の時間であることが好ましい。
【００１４】
本発明の前記メモリインタフェース回路において、前記マスク制御回路は、外部から与えられた周波数設定に応じて前記マスク制御信号を出力することが好ましい。
【００１５】
本発明の前記メモリインタフェース回路において、前記遅延計算回路は、外部から与えられたフライトタイム設定に応じて、前記遅延データにフライトタイムの遅延を加算した結果を出力することが好ましい。
【００１６】
本発明の前記メモリインタフェース回路において、前記マスク制御回路からの前記マスク制御信号が入力されるとともに、前記マスク制御信号の立ち上がりで前記データストローブ信号のマスクを解除したマスク解除状態にし、前記マスク制御信号の立ち下がり後の次の前記データストローブ信号の立ち下がりで前記データストローブ信号をマスクするマスク状態にするためのマスク信号を出力するマスク信号生成回路と、システムクロックを反転させたクロック信号を生成して出力するクロック生成回路と、前記クロック生成回路からの前記クロック信号を受信してメモリに向けて出力するクロック出力バッファと、前記メモリから出力された前記データストローブ信号を受信して出力するデータストローブ入力バッファと、前記マスク信号生成回路からの前記マスク信号に基づいて、前記データストローブ入力バッファからの前記データストローブ信号をマスクするマスク用ＡＮＤゲートと、を備えることが好ましい。
【００１７】
本発明の前記メモリインタフェース回路において、前記内部遅延値は、前記クロック生成回路から前記クロック出力バッファまでの間の遅延値と、前記データストローブ入力バッファから前記マスク用ＡＮＤゲートまでの間の遅延値との合計値であり、前記Ｉ／Ｏバッファ遅延値は、前記クロック出力バッファでの遅延値と、前記データストローブ入力バッファでの遅延値との合計値であることが好ましい。
【発明の効果】
【００１８】
本発明によれば、回路規模を縮小させることができる。その理由は、従来技術で構成される回路素子の大きいＩ／Ｏレプリカ回路、可変遅延回路を使用せず、遅延計算回路によりマスクのタイミングを制御するからである。また、本発明によれば、消費電力の増加を防止できる。その理由は、従来技術で搭載されるＩ／Ｏレプリカ回路と可変遅延回路は、メモリインタフェースのバス幅に応じて複数搭載（通常８ｂｉｔ当り１個）する必要があるのに対し、本発明ではバス幅によらず回路規模が一定であるためである。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施例１に係るメモリインタフェース回路の一構成例を模式的に示したブロック図である。
【図２】本発明の実施例１に係るメモリインタフェース回路における遅延計算回路の一構成例を模式的に示したブロック図である。
【図３】本発明の実施例１に係るメモリインタフェース回路におけるマスク信号生成回路の一構成例を示した模式図である。
【図４】本発明の実施例１に係るメモリインタフェース回路において用いられる（Ａ）ドライブ制御コードに対するＩ／Ｏ遅延特性例、及び、（Ｂ）遅延制御コードに対する内部遅延特性例を模式的に示したグラフである。
【図５】本発明の実施例１に係るメモリインタフェース回路における８バーストリード動作時の内部遅延の無い理想状態のタイミングチャートである。
【図６】本発明の実施例１に係るメモリインタフェース回路にいて遅延Ａが生じた場合のマスク動作タイミングを示したタイミングチャートである。
【図７】本発明の実施例１に係るメモリインタフェース回路にいて遅延Ｂが生じた場合のマスク動作タイミングを示したタイミングチャートである。
【図８】本発明の実施例２に係るメモリインタフェース回路の一構成例を模式的に示したブロック図である。
【図９】従来例に係るメモリインタフェース回路の一構成例を模式的に示したブロック図である。
【発明を実施するための形態】
【００２０】
本発明の実施形態に係るメモリインタフェース回路では、ドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子とを比較し、両素子の特性が一致するか否かを示す調整用モニタ信号を出力するドライブ調整用バッファ（図１の２０）と、前記ドライブ調整用バッファからの前記調整用モニタ信号に応じて、前記Ｉ／Ｏバッファの特性と比例関係にあるドライブ制御コードを出力するドライブ能力制御回路（図１の１４）と、システムクロックに応じて、前記システムクロックの１クロックに相当する遅延値に対応する遅延制御コードを出力する遅延制御回路（図１の１３）と、前記ドライブ能力制御回路からの前記ドライブ制御コードと前記遅延制御回路からの前記遅延制御コードとに基づいて遅延データを計算する遅延計算回路（図１の１６）と、前記遅延計算回路からの前記遅延データに基づいて、リード時のデータストローブ信号のマスクタイミングを制御するマスク制御回路（図１の１７）と、を備え、前記第１素子は、前記ドライブ能力制御回路からの前記ドライブ制御コードに応じてドライブ特性が変化する。
【実施例１】
【００２１】
本発明の実施例１に係るメモリインタフェース回路について図面を用いて説明する。図１は、本発明の実施例１に係るメモリインタフェース回路の一構成例を模式的に示したブロック図である。
【００２２】
メモリインタフェース回路１０は、ＤＤＲ  ＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory；図１ではＤＤＲ２  ＳＤＲＡＭ２４）からデータの読み出し（リード）を制御する回路であり、データＤＱを転送するタイミングを知らせるためのデータストローブ信号ＤＱＳを受信し、当該データストローブ信号ＤＱＳに応じてデータを受信する。メモリインタフェース回路１０は、主な構成部として、ＣＫ生成回路１１と、リードデータ取込回路１２と、遅延制御回路１３と、ドライブ能力制御回路１４と、ストローブ信号用可変遅延回路１５と、遅延計算回路１６と、マスク制御回路１７と、マスク信号生成回路１８と、マスク用ＡＮＤゲート１９と、ドライブ調整用バッファ２０と、ＤＱＳ入力バッファ２１と、ＤＱ入力バッファ２２と、ＣＫ出力バッファ２３と、を有する。
【００２３】
ＣＫ生成回路１１は、システムクロックが入力され、システムクロックに基づいてＣＫ信号を生成し、生成したＣＫ信号をＣＫ出力バッファ２３に向けて出力する。なお、システムクロックは、システムにおいてタイミングを取る（同期を取る）ために使用される周期的な信号である。ＣＫ信号は、システムクロックを反転したクロック信号である。
【００２４】
リードデータ取込回路１２は、ＤＱ入力バッファ２２からのＤＱＩＮ信号と、ストローブ信号用可変遅延回路１５からのＤＱＳＣ信号とが入力され、ＤＱＳＣ信号に応じてＤＱＩＮ信号をＲＤ１端子又はＲＤ２端子へ出力する。リードデータ取込回路１２は、Ｄフリップフロップ回路で構成されるラッチ回路であり、クロック入力端子にＤＱＳＣ信号が入力され、ＤＱＳＣ信号の立ち上がりでＤＱＩＮ信号をラッチしてＲＤ１端子へ出力し、ＤＱＳＣ信号の立ち下がりでＤＱＩＮ信号をラッチしてＲＤ２端子へ出力する（図５参照）。
【００２５】
遅延制御回路１３は、システムクロックが入力され、システムクロックに基づいて遅延制御コードを生成し、生成した遅延制御コードをストローブ信号用可変遅延回路１５及び遅延計算回路１６に向けて出力する。遅延制御回路１３は、遅延制御回路１３の内部の可変遅延回路の遅延を順次変化させ、内部の位相比較により検知することで、システムクロックの１クロックに相当する遅延を決定する。遅延制御回路１３は、システムクロックの１クロックに相当する遅延値に対応する遅延制御コードを、ストローブ信号用可変遅延回路１５へ出力する。遅延制御回路１３は、ストローブ信号用可変遅延回路１５の回路素子の遅延が小さくなる場合には遅延制御コードを大きな値に、ストローブ信号用可変遅延回路１５の回路素子の遅延が大きくなる場合には遅延制御コードを小さな値にすることで遅延が一定になるように制御する。なお、遅延制御コードは、ストローブ信号用可変遅延回路１５の遅延や位相を一定に保つようにするためのコードである。遅延制御コードの詳細は後述する（図４（Ｂ）参照）。
【００２６】
ドライブ能力制御回路１４は、ドライブ調整用バッファ２０からの調整用モニタ信号が入力され、調整用モニタ信号に応じてドライブ制御コードを生成し、生成されたドライブ制御コードを遅延計算回路１６及びドライブ調整用バッファ２０に向けて出力する。ドライブ能力制御回路１４は、自身の回路内で予め設定されているドライブ制御コードを、調整用モニタ信号に応じて順次変化させて、遅延計算回路１６及びドライブ調整用バッファ２０に向けて出力する。ドライブ能力制御回路１４は、ドライブ調整用バッファ２０でドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子との特性が一致した時のドライブ制御コードを遅延計算回路１６に向けて出力する。なお、ドライブ制御コードは、ドライブ調整用バッファ２０においてＩ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子と一致するように変化させるためのコードである。ドライブ制御コードの詳細は後述する（図４（Ａ）参照）。
【００２７】
ストローブ信号用可変遅延回路１５は、マスク用ＡＮＤゲート１９からのＤＱＳＭ信号と、遅延制御回路１３からの遅延制御コードとが入力され、遅延制御コードに基づいてＤＱＳＣ信号を生成し、生成されたＤＱＳＣ信号をリードデータ取込回路１２に向けて出力する。ＤＱＳＣ信号は、ＤＱ入力バッファ２２からのＤＱＩＮ信号とともに、リードデータ取込回路１２に入力される。なお、ＤＱＳＣ信号は、遅延制御コードに応じてＤＱＳＭ信号を遅延させたデータストローブ信号であり、リードデータ取込回路１２にてＤＱＩＮ信号をラッチするための信号である。
【００２８】
遅延計算回路１６は、遅延制御回路１３からの遅延制御コードと、ドライブ能力制御回路１４からのドライブ制御コードとが入力され、遅延制御コード及びドライブ制御コードに基づいて遅延データを計算し、計算された遅延データをマスク制御回路１７に向けて出力する。遅延計算回路１６の詳細は後述する（図２参照）。なお、遅延データは、ＤＱＳＩＮ信号のマスクタイミングを決定するために必要なデータであり、メモリインタフェース回路１０の内部遅延に相当する遅延値である。
【００２９】
マスク制御回路１７は、外部からのＲＥＡＤ＿ＲＱ信号と、遅延計算回路１６からの遅延データと、システムクロックとが入力され、ＲＥＡＤ＿ＲＱ信号、遅延データ、及びシステムクロックに基づいてＭＳＫＣＴＲ信号を生成し、生成されたＭＳＫＣＴＲ信号をマスク信号生成回路１８に向けて出力する。マスク制御回路１７は、遅延データに応じてＤＱＳマスクのタイミングを制御する。マスク制御回路１７は、遅延計算回路１６からの遅延データと、システムクロックからの基準遅延値（システムクロックから半周期単位の時間）とを比較し、遅延データが基準遅延値よりも大きい場合に、ＭＳＫＣＴＲ信号を基準遅延値だけ遅らせて出力する。なお、ＲＥＡＤ＿ＲＱ信号は、外部から入力されるリード要求信号である。ＭＳＫＣＴＲ信号は、ＤＱＳＩＮ信号のハイインピーダンス状態をマスクするタイミングを制御するための信号である。
【００３０】
マスク信号生成回路１８は、外部からのＲＳＴＢ信号と、マスク用ＡＮＤゲート１９からのＤＱＳＭ信号と、マスク制御回路１７からのＭＳＫＣＴＲ信号とが入力され、ＲＳＴＢ信号、ＤＱＳＭ信号、及びＭＳＫＣＴＲ信号に基づいてＭＡＳＫＢ信号を生成し、生成されたＭＡＳＫＢ信号をマスク用ＡＮＤゲート１９に向けて出力する。なお、ＲＳＴＢ信号は、外部から入力されるリセット信号であり、「Ｌ」のときにマスク信号生成回路１８の内部状態レジスタを強制的に初期状態に戻すための信号である。ＭＡＳＫＢ信号は、「Ｌ」のときにＤＱＳＩＮ信号のハイインピーダンス状態をマスクするための信号である。
【００３１】
マスク用ＡＮＤゲート１９は、ＤＱＳ入力バッファ２１からのＤＱＳＩＮ信号と、マスク信号生成回路１８からのＭＡＳＫＢ信号とが入力され、ＤＱＳＩＮ信号及びＭＡＳＫＢ信号に基づいてＤＱＳＭ信号を出力する。マスク用ＡＮＤゲート１９から出力されたＤＱＳＭ信号は、マスク信号生成回路１８へフィードバックされ、また、ストローブ信号用可変遅延回路１５とへ入力される。ＤＱＳＭ信号は、ＤＱＳＩＮ信号におけるハイインピーダンス状態をマスクしたデータストローブ信号である。
【００３２】
ドライブ調整用バッファ２０は、ドライブ能力制御回路１４からのドライブ制御コードが入力され、ドライブ制御コードに基づいて調整用モニタ信号を生成し、生成された調整用モニタ信号をドライブ能力制御回路１４に向けて出力する。ドライブ調整用バッファ２０は、ドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子とを比較し、特性が一致したことを調整用モニタ信号としてドライブ能力制御回路１４へフィードバックする。なお、調整用モニタ信号は、ドライブ制御コードに応じてドライブ特性が変化する第１素子と、Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子とを比較し、特性が一致するか否かを示すための信号である。
【００３３】
ＤＱＳ入力バッファ２１は、ＤＤＲ２  ＳＤＲＡＭ２４のＤＱＳ端子から出力されたデータストローブ信号を受信してＤＱＳＩＮ信号をマスク用ＡＮＤゲート１９に向けて出力する。なお、ＤＱＳＩＮ信号は、ＤＤＲ２  ＳＤＲＡＭ２４のＤＱＳ端子からＤＱＳ入力バッファ２１を介して出力された、データＤＱを転送するタイミングを知らせるためのデータストローブ信号である。
【００３４】
ＤＱ入力バッファ２２は、ＤＤＲ２  ＳＤＲＡＭ２４のＤＱ端子から出力されたデータ信号を受信してＤＱＩＮ信号をリードデータ取込回路１２に向けて出力する。なお、ＤＱＩＮ信号は、ＤＤＲ２  ＳＤＲＡＭ２４のＤＱ端子からＤＱ入力バッファ２２を介して出力されたデータ信号である。
【００３５】
ＣＫ出力バッファ２３は、ＣＫ生成回路１１からのＣＫ信号を受信し、受信したＣＫ信号をＤＤＲ２  ＳＤＲＡＭ２４のＣＫ端子に向けて出力する。
【００３６】
ＤＤＲ２  ＳＤＲＡＭ２４は、メモリインタフェース回路１０からのＣＫ信号に応じてメモリに記憶されたデータを読み出し、読み出されたデータＤＱとともに、データＤＱを転送するタイミングを知らせるためのデータストローブ信号ＤＱＳをメモリインタフェース回路１０に向けて出力する。
【００３７】
次に、本発明の実施例１に係るメモリインタフェース回路における遅延計算回路について図面を用いて説明する。図２は、本発明の実施例１に係るメモリインタフェース回路における遅延計算回路の一構成例を模式的に示したブロック図である。
【００３８】
遅延計算回路１６は、構成部として、内部遅延変換テーブル３１と、遅延制御コード変換回路３２と、ドライブ制御コード変換回路３３と、Ｉ／Ｏバッファ遅延変換テーブル３４と、加算器３５と、を有する。
【００３９】
ドライブ制御コード変換回路３３は、ドライブ能力制御回路（図１の１４）からのドライブ制御コード（Ｉ／Ｏ遅延に相当）が入力され、入力されたドライブ制御コードをＩ／Ｏバッファ遅延変換テーブル３４に向けて出力する。
【００４０】
Ｉ／Ｏバッファ遅延変換テーブル３４は、予めドライブ制御コードに対応するＩ／Ｏバッファ遅延値が設定されており、ドライブ制御コード変換回路３３からのドライブ制御コードが入力され、入力されたドライブ制御コードに対応するＩ／Ｏバッファ遅延値（ＣＫ出力バッファ（図１の２３）でのＩ／Ｏ遅延と、ＤＱＳ入力バッファ（図１の２１）でのＩ／Ｏ遅延との合計に相当、以下「Ｉ／Ｏ遅延」と言う）を抽出し、抽出されたＩ／Ｏバッファ遅延値をドライブ制御コード変換回路３３に向けて出力する。
【００４１】
ドライブ制御コード変換回路３３は、Ｉ／Ｏバッファ遅延変換テーブル３４からのＩ／Ｏバッファ遅延値を加算器３５に向けて出力する。
【００４２】
遅延制御コード変換回路３２は、遅延制御回路（図１の１３）からの遅延制御コード（内部遅延に比例したコード）が入力され、入力された遅延制御コードを内部遅延変換テーブル３１に向けて出力する。
【００４３】
内部遅延変換テーブル３１は、予め遅延制御コードに対応する内部遅延値が設定されており、遅延制御コード変換回路３２からの遅延制御コードが入力され、入力された遅延制御コードに対応する内部遅延値（ＣＫ生成回路（図１の１１）の出力からＣＫ出力バッファ（図１の２３）までの遅延とＤＱＳ入力バッファ２１からマスク用ＡＮＤゲート１９までの遅延との合計に相当、以下、内部遅延と言う）を抽出し、抽出された内部遅延値を遅延制御コード変換回路３２に向けて出力する。
【００４４】
遅延制御コード変換回路３２は、内部遅延変換テーブル３１からの内部遅延値を加算器３５に向けて出力する。
【００４５】
加算器３５は、ドライブ制御コード変換回路３３からのＩ／Ｏ遅延に相当するＩ／Ｏバッファ遅延値と、遅延制御コード変換回路３２からの内部遅延に相当する内部遅延値とを加算した遅延データを演算し、演算された遅延データをマスク制御回路（図１の１７）に向けて出力する。
【００４６】
次に、本発明の実施例１に係るメモリインタフェース回路におけるマスク信号生成回路について図面を用いて説明する。図３は、本発明の実施例１に係るメモリインタフェース回路におけるマスク信号生成回路の一構成例を示した模式図である。
【００４７】
マスク信号生成回路１８は、フリップフロップ４１よりなる。フリップフロップ４１は、Ｓ入力端子（セット入力端子）にマスク制御回路（図１の１７）からのＭＳＫＣＴＲ信号が入力され、Ｄ入力端子には「Ｌ」状態の信号が入力され、クロック入力端子にはマスク用ＡＮＤゲート（図１の１９）からのＤＱＳＭ信号が入力され、ＲＢ入力端子（リセット端子）には外部からのＲＳＴＢ信号が入力され、Ｑ出力端子からマスク用ＡＮＤゲート（図１の１９）に向けてＭＡＳＫＢ信号を出力する。ＭＳＫＣＴＲ信号がフリップフロップ４１のＳ入力端子に入力されると、ＭＳＫＣＴＲ信号の立ち上がりでＭＡＳＫＢ信号が「Ｈ」であるＤＱＳマスク解除状態となり、ＭＳＫＣＴＲ信号の立ち下がり後の次のＤＱＳＭ信号の立ち下がりでＭＡＳＫＢ信号が「Ｌ」であるＤＱＳマスク状態となる（図５参照）。
【００４８】
次に、本発明の実施例１に係るメモリインタフェース回路において用いられるドライブ制御コード及び遅延制御コードについて図面を用いて説明する。図４は、本発明の実施例１に係るメモリインタフェース回路において用いられる（Ａ）ドライブ制御コードに対するＩ／Ｏ遅延特性例、及び、（Ｂ）遅延制御コードに対する内部遅延特性例を模式的に示したグラフである。
【００４９】
ドライブ制御コードは、ドライブ調整用バッファ（図１の２０）においてＩ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子と一致するように変化させる。そのため、ドライブ制御コードとＩ／Ｏバッファ遅延値（Ｉ／Ｏ遅延値）は、図４（Ａ）のグラフに示すような比例関係になる。Ｉ／Ｏバッファの特性と比例関係にあるドライブ特性の第２素子と一致するようなドライブ制御コードを求めることにより、Ｉ／Ｏバッファ遅延値を求めることができる。
【００５０】
遅延制御コードは、ストローブ信号用可変遅延回路（図１の１５）の回路素子の遅延が小さくなる場合には大きな値とし、ストローブ信号用可変遅延回路（図１の１５）の回路素子の遅延が大きくなる場合には小さな値とする。これにより、遅延が一定になるように制御されるので、遅延制御コードと内部回路の遅延値は、図４（Ｂ）のグラフに示すような遅延制御コードと内部回路の遅延値（内部遅延値）の関係が得られる。これにより、遅延制御コードから内部回路の遅延値を求めることができる。
【００５１】
なお、遅延制御回路（図１の１３）は、ストローブ信号用可変遅延回路（図１の１５）の遅延や位相を一定に保つように遅延制御コードを出力する。このことから、マスク制御に必要となるＤＱＳパス経路の遅延と可変遅延回路の遅延とを比較しておけば、遅延制御コードに対してパス経路の遅延値の関係を図４（Ｂ）の遅延制御コードと内部遅延値のグラフのように得ることができる。
【００５２】
また、同様に、ＣＫ出力バッファ（図１の２３）とＤＱＳ入力バッファ（図１の２１）のＩ／Ｏバッファ遅延に対する部分は、ドライブ調整コードに対するＩ／Ｏバッファ遅延値の関係を図４（Ａ）のドライブ制御コードとＩ／Ｏ遅延値のグラフのように得られる。
【００５３】
これらの遅延を遅延計算回路（図１の１６）で計算してＤＱＳのパス遅延値の合計を求めることができ、パス遅延値の合計からマスク制御回路（図１の１７）でＤＱＳのハイインピーダンス状態をマスクするＭＡＳＫＢ信号を制御することができる。
【００５４】
次に、本発明の実施例１に係るメモリインタフェース回路の動作について説明する。
【００５５】
まず、バーストリード動作時の内部遅延の無い理想状態のメモリインタフェース回路の動作について図面を用いて説明する。図５は、本発明の実施例１に係るメモリインタフェース回路におけるバーストリード動作時の内部遅延の無い理想状態のタイミングチャートである。
【００５６】
ＲＥＡＤ＿ＲＱ信号は、システムクロック（ＣＬＫ）のＴ１のタイミングからリードのバースト長に応じて「Ｈ」となる。これにより、マスク制御回路（図１の１７）は、ＲＥＡＤ＿ＲＱ信号からＭＳＫＣＴＲ信号を出力する。ＭＳＫＣＴＲ信号は、リードＤＱＳのプリアンブル期間の真ん中となるシステムクロック（ＣＬＫ）のＴ２のタイミングで「Ｈ」となり、システムクロック（ＣＬＫ）のＴ５のタイミングで「Ｌ」となる。
【００５７】
ストローブ信号用可変遅延回路（図１の１５）において、ＤＱＳＣ信号の変化がＤＱＩＮ信号のデータ変化の中央になるように、ＤＱＳＭ信号を１／４クロック遅延したＤＱＳＣ信号をリードデータ取込回路１２に向けて出力する。リードデータ取込回路（図１の１２）は、ＤＱＳＣ信号の立ち上がりでＤＱＩＮ信号をラッチしてＲＤ１へ出力し、ＤＱＳＣ信号の立ち下がりでＤＱＩＮ信号をラッチしてＲＤ２へ出力する。
【００５８】
理想状態では、マスク用ＡＮＤゲート（図１の１９）から出力されたＤＱＳＭ信号をストローブ信号用可変遅延回路（図１の１５）により１／４クロック遅延させたＤＱＳＣ信号を生成し、ＤＱＳＣ信号に応じてＤＱ入力バッファ２２から出力されたＤＱＩＮ信号をリードデータ取込回路（図１の１２）によりラッチすることによって、正しいデータを出力することができる。
【００５９】
次に、内部遅延とＩ／Ｏ遅延によりＤＱＳ信号に遅延が発生する場合の動作について図面を用いて説明する。図６は、本発明の実施例１に係るメモリインタフェース回路にいて遅延Ａが生じた場合のマスク動作タイミングを示したタイミングチャートである。図７は、本発明の実施例１に係るメモリインタフェース回路にいて遅延Ｂが生じた場合のマスク動作タイミングを示したタイミングチャートである。
【００６０】
内部遅延に相当する遅延値とＩ／Ｏ遅延に相当する遅延値の和である遅延ＡがシステムクロックＣＬＫの１／２周期よりも小さい場合、つまり、遅延計算回路（図１の１６）の遅延データがシステムクロックの１／２周期の遅延よりも小さい値となった場合、マスク制御回路（図１の１７）が出力するＭＳＫＣＴＲ信号のタイミングは理想状態と同じにする。このとき、図６のマスク解除タイミングとＤＱＳ（遅延Ａ）のハイインピーダンス状態との間隔である時間Ｙ１は、図５の理想状態よりも小さくなるが、ハイインピーダンス状態をマスクしているため、ハイインピーダンスを内部に伝播することは無い。
【００６１】
内部遅延に相当する遅延値とＩ／Ｏ遅延に相当する遅延値の和である遅延Ｂがシステムクロックの１／２周期よりも大きい場合、つまり、遅延計算回路（図１の１６）の遅延データがシステムクロックＣＬＫの１／２周期の遅延よりも大きい値となった場合、マスク制御回路（図１の１７）が出力するＭＳＫＣＴＲ信号のタイミングを理想状態からシステムクロックＣＬＫの１／２クロック遅れたタイミングにすることによって、ＭＳＫＣＴＲ信号はＴ３のタイミングで立ち上がり、Ｔ６のタイミングで立ち下がる。この場合、ＭＡＳＫＢ信号が立ち上がるＴ３のマスク解除タイミングとＤＱＳ（遅延Ｂ）のハイインピーダンス状態の間隔は時間Ｙ２で示すマージンがあるため、ハイインピーダンスが内部に伝播することは無い。
【００６２】
このように、マスク制御回路（図１の１７）がＤＱＳの遅延に応じてマスク解除タイミングを生成することにより、リード時にＤＱＳのハイインピーダンス状態のマスクを行うことができる。
【００６３】
また、図７の動作タイミングのように、ＭＡＳＫＢ信号のマスク解除のタイミングをＤＱＳのハイインピーダンス状態にかからないようにプリアンブル期間の中央側へ制御することが可能になり、従来例のＩ／Ｏレプリカ回路（図９の１０３）、可変遅延回路（図９の１０５）のような大きな回路素子を使用せず、小さい回路規模でマスクタイミングの制御を実現することができる。
【００６４】
なお、マスク解除タイミングの調整ステップではシステムクロックＣＬＫの１／２クロックとなっているが、システムクロックＣＬＫよりも高速なクロックを用いることでさらに細かいステップで制御してもよい。また、ステップ数を増やして調整範囲を広くすることも可能である。
【００６５】
実施例１によれば、以下のような効果を奏する。
【００６６】
第１の効果として、回路規模を縮小することができる。その理由としては、従来例で構成される回路素子の大きいＩ／Ｏレプリカ回路（図９の１０３）、可変遅延回路（図９の１０５）を使用せず、遅延計算回路（図１の１６）によりマスク制御回路（図１の１７）のタイミングを制御するからである。
【００６７】
第２の効果として、消費電力の増加を防止できる。その理由としては、従来例で搭載されるＩ／Ｏレプリカ回路（図９の１０３）と可変遅延回路（図９の１０５）は、メモリインタフェースのバス幅に応じて複数搭載（通常８ｂｉｔ当り１個）する必要があるのに対し、実施例１ではバス幅によらず回路規模が一定であるためである。
【実施例２】
【００６８】
本発明の実施例２に係るメモリインタフェース回路について図面を用いて説明する。図８は、本発明の実施例２に係るメモリインタフェース回路の一構成例を模式的に示したブロック図である。
【００６９】
実施例２は、実施例１の変形例であり、実施例１のマスク制御回路（図１の１７）において外部から与えられるマスクタイミング調整用クロックのＭＣＬＫ信号と、周波数設定との入力端子を追加したマスク制御回路３７を用い、実施例１の遅延計算回路（図１の１６）にフライトタイム設定の入力端子を追加した遅延計算回路３６を用いたものである。その他の構成は、実施例１と同様である。
【００７０】
なお、フライトタイムは、メモリインタフェース回路１０のＣＫ端子からＤＤＲ２  ＳＤＲＡＭ２４のＣＫ端子までと、ＤＤＲ２  ＳＤＲＡＭ２４のＤＱＳ端子からメモリインタフェース回路１０のＤＱＳ端子までの、プリント基板（図示せず）上における伝送路遅延の和を指す。
【００７１】
マスク制御回路３７は、システムクロックではなくＭＣＬＫ信号に同期したタイミングでＭＳＫＣＴＲ信号を動作させる。また、マスク制御回路３７は、周波数設定の入力により、設定に応じたＭＳＫＣＴＲ信号のタイミングステップで制御の選択を可能とする。
【００７２】
遅延計算回路３６は、実施例１での遅延データにフライトタイムの遅延を加算した結果を出力する。
【００７３】
実施例２によれば、実施例１と同様な効果を奏するとともに、ＭＳＫＣＴＲ信号がＭＣＬＫ信号に同期して動作することが可能になることから、ＭＣＬＫ信号にシステムクロックより高い周波数を入力することでＭＳＫＣＴＲ信号の制御ステップを細かく設定することができる。そのため、高速動作に対応することができる。また、マスク制御回路３７に周波数設定を入力することで、ＭＳＫＣＴＲ信号の制御を動作周波数に応じた最適なタイミングにすることができるため、動作周波数が多様なシステムに対応することができる。さらに、遅延計算回路３６にフライトタイム設定を追加することで、多様なフライトタイムをもったシステムにも対応することができる。
【符号の説明】
【００７４】
１０  メモリインタフェース回路
１１  ＣＫ生成回路
１２  リードデータ取込回路
１３  遅延制御回路
１４  ドライブ能力制御回路
１５  ストローブ信号用可変遅延回路
１６  遅延計算回路
１７  マスク制御回路
１８  マスク信号生成回路
１９  マスク用ＡＮＤゲート
２０  ドライブ調整用バッファ
２１  ＤＱＳ入力バッファ
２２  ＤＱ入力バッファ
２３  ＣＫ出力バッファ
２４  ＤＤＲ２  ＳＤＲＡＭ
３１  内部遅延変換テーブル
３２  遅延制御コード変換回路
３３  ドライブ制御コード変換回路
３４  Ｉ／Ｏバッファ遅延変換テーブル
３５  加算器
３６  遅延計算回路
３７  マスク制御回路
４１  フリップフロップ
１００  メモリインタフェース回路
１０１  データ入出力（Ｉ／Ｏ）レシーバ（バッファ）
１０２  データストローブ信号のＩ／Ｏレシーバ（バッファ）
１０３  Ｉ／Ｏレプリカ回路
１０４、１０５  可変遅延回路
１０６  データストローブ信号（ＤＱＳ）マスク回路
１０６１  論理積回路
１０６２  マスク信号発生回路
１０７  マスク制御信号発生回路
１０８  リードデータ再同期回路
１０８１  ＦＩＦＯライトストローブ発生回路
１０８２  再同期ストローブ制御回路
１０８３  ＦＩＦＯレジスタ
１０８４  再同期レジスタ
１０９  クロック送信Ｉ／Ｏバッファ
１１０  クロック生成回路
【図１】
2011242838.tif 000003
【図２】
2011242838.tif 000004
【図３】
2011242838.tif 000005
【図４】
2011242838.tif 000006
【図５】
2011242838.tif 000007
【図６】
2011242838.tif 000008
【図７】
2011242838.tif 000009
【図８】
2011242838.tif 000010
【図９】
2011242838.tif 000011