(57)【要約】【課題】  量産に適用されるような一般的なテスタでも遅延回路の遅延量の測定が可能なメモリ制御装置及びその遅延量測定方法を提供することを課題とする。【解決手段】  本メモリ制御装置は、半導体記憶装置にデータを書き込むメモリ制御装置であって、入力信号を遅延させて出力する複数の遅延回路を有し、通常動作時に、前記複数の遅延回路は、互いに独立し、個々の遅延回路に入力される信号を個々に遅延して出力し、テスト動作時に、前記複数の遅延回路は、テスト用入力信号が全ての遅延回路を経由し、それぞれの遅延量の合計分だけ遅延するように接続され、遅延後の前記テスト用入力信号は、テスト用出力信号として、前記メモリ制御装置の外部に出力されていることを要件とする。【選択図】  図３
2010191485.tif 000002
【特許請求の範囲】
【請求項１】
半導体記憶装置にデータを書き込むメモリ制御装置であって、
入力信号を遅延させて出力する複数の遅延回路を有し、
通常動作時に、前記複数の遅延回路は、互いに独立し、個々の遅延回路に入力される信号を個々に遅延して出力し、
テスト動作時に、前記複数の遅延回路は、テスト用入力信号が全ての遅延回路を経由し、それぞれの遅延量の合計分だけ遅延するように接続され、
遅延後の前記テスト用入力信号は、テスト用出力信号として、前記メモリ制御装置の外部に出力されていることを特徴とするメモリ制御装置。
【請求項２】
前記テスト動作時に、前記複数の遅延回路は、一方の端部に配置された遅延回路に入力される前記テスト用入力信号が、前記テスト用出力信号として、他方の端部に配置された遅延回路から出力されるようにチェーン状に接続されることを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記テスト動作時に、前記複数の遅延回路は、反転回路を介してリング状に接続された発振回路を構成し、
前記テスト用入力信号は、前記発振回路により自励発振した信号であることを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
更に、基準クロックに基づいて遅延値を生成する遅延値生成回路と、
前記遅延値生成回路の出力及び入力される遅延設定値から、前記複数の遅延回路に遅延量の設定を行う遅延演算回路と、を有することを特徴とする請求項１乃至３の何れか一項記載のメモリ制御装置。
【請求項５】
前記遅延値生成回路は、生成した前記遅延値を、前記メモリ制御装置の外部に配置されたＣＰＵに出力可能に構成されており、
前記遅延演算回路は、前記ＣＰＵが前記遅延値生成回路の出力した前記遅延値に基づいて設定した前記遅延設定値を入力可能に構成されていることを特徴とする請求項４記載メモリ制御装置。
【請求項６】
前記遅延値生成回路は、生成した前記遅延値を、前記メモリ制御装置の外部に配置されたＣＰＵに出力可能に構成されており、
前記複数の遅延回路は、前記ＣＰＵが前記遅延値生成回路の出力した前記遅延値に基づいて設定した前記遅延設定値を、前記ＣＰＵから直接入力可能に構成されていることを特徴とする請求項４記載メモリ制御装置。
【請求項７】
前記複数の遅延回路は、それぞれ異なる遅延量に設定できることを特徴とする請求項１乃至６の何れか一項記載のメモリ制御装置。
【請求項８】
半導体記憶装置にデータを書き込むメモリ制御装置を構成する遅延回路の遅延量測定方法であって、
テスト動作を行うテストモードに設定する第１ステップと、
複数の遅延回路を、テスト用入力信号が全ての遅延回路を経由し、それぞれの遅延量の合計分だけ遅延するように接続する第２ステップと、
前記複数の遅延回路のうち、任意の遅延回路に第１の遅延量を設定する第３ステップと、
前記テスト用入力信号が全ての遅延回路を経由して出力された信号である第１のテスト用出力信号を観測する第４ステップと、
前記任意の遅延回路に第２の遅延量を設定する第５ステップと、
前記テスト用入力信号が全ての遅延回路を経由して出力された信号である第２のテスト用出力信号を観測する第６ステップと、
前記第１のテスト用出力信号と前記第２のテスト用出力信号の遅延量の差分から前記任意の遅延回路の合計の遅延量を算出する第７ステップと、
前記合計の遅延量と前記任意の遅延回路の個数とに基づいて、前記任意の遅延回路の個々の遅延量を算出する第８ステップと、を有することを特徴とする遅延量測定方法。
【請求項９】
前記第２ステップにおいて、前記複数の遅延回路を、一方の端部に配置された遅延回路に入力される前記テスト用入力信号が、前記第１のテスト用出力信号又は前記第２のテスト用出力信号として、他方の端部に配置された遅延回路から出力されるようにチェーン状に接続することを特徴とする請求項８記載の遅延量測定方法。
【請求項１０】
前記第２ステップにおいて、前記複数の遅延回路を、反転回路を介してリング状に接続し、前記テスト用入力信号を自励発振する発振回路を構成するように接続することを特徴とする請求項８記載の遅延量測定方法。
【請求項１１】
前記第３ステップ及び前記第５ステップにおいて、前記第１の遅延量及び前記第２の遅延量は、前記メモリ制御装置の外部に配置されたＣＰＵから、遅延演算回路を介して設定することを特徴とする請求項８乃至１０の何れか一項記載の遅延量測定方法。
【請求項１２】
前記第３ステップ及び前記第５ステップにおいて、前記第１の遅延量及び前記第２の遅延量は、前記メモリ制御装置の外部に配置されたＣＰＵから、それぞれの前記遅延回路に直接設定することを特徴とする請求項８乃至１０の何れか一項記載の遅延量測定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリにデータを書き込むメモリ制御装置及びその遅延量測定方法に関する。
【背景技術】
【０００２】
大容量メモリとして使用されるＤＲＡＭ（Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）は、同期式のＤＤＲ１−ＳＤＲＡＭやＤＤＲ２−ＳＤＲＡＭ等のダブルデータレート方式が主流となっている。特に、ＤＤＲ２−ＳＤＲＡＭは、クロックレートにつき４００ＭＨｚ〜８００ＭＨｚの仕様がＪＥＤＥＣ（Ｊｏｉｎｔ Ｅｌｅｃｔｒｏｎ Ｄｅｖｉｃｅ Ｅｎｇｉｎｅｅｒｉｎｇ Ｃｏｕｎｃｉｌ）により規格化されている。
【０００３】
今後、ＤＤＲ−ＳＤＲＡＭの動作速度は更に速くなり、ＤＤＲ３−ＳＤＲＡＭが主流となることが予想される。ＤＤＲ３−ＳＤＲＡＭにはデータレートが８００ＭＨｚ（ＤＤＲ３―８００）から１．６ＧＨｚ（ＤＤＲ３−１６００）までの仕様がＪＥＤＥＣにより規格化されている。同期式のメモリ、特に複数本のデータを持つパラレルバスであっても動作速度は新規格が出るたびに高速化している。この高速化の流れは、メモリやメモリ制御装置等の半導体装置自体の製造プロセスの進化があるからこそ実現できるものである。
【０００４】
ところが、メモリやメモリ制御装置を一つのボード上に配置した機器においては、メモリやメモリ制御装置の動作周波数が高速化されても、メモリとメモリ制御装置間インターフェースのボード上配線に関わる転送速度は高速化されているわけではない。そのため、メモリやメモリ制御装置等の半導体装置の高速化に伴い、ボード上の配線遅延の影響が動作上のボトルネックとなりつつある。
【０００５】
パラレルバス方式のインターフェース装置において、その動作周波数が１００ＭＨｚ以下の時代においては、ボード上の配線遅延にマージンを持った値を用いてＡＣタイミングを満たすように、メモリ制御装置を搭載した半導体装置を作ることは可能であった。又、動作周波数が１００ＭＨｚを超えるようになってからは、メモリ制御装置内にＰＬＬを内蔵し、ボード上のタイミングと同期を図ることにより、或いは、ボード上の配線を等長配線することにより、メモリとメモリ制御装置間の動作の保証を行ってきた。
【０００６】
ＤＤＲ３−ＳＤＲＡＭのデータレートは最大１．６ＧＨｚすなわち６２５ｐｓとなり、ボード上の配線遅延が１ｎｓの場合、１００ＭＨｚのデータレートでは無視できる程度であったが、ＤＤＲ３−ＳＤＲＡＭにとっては動作周波数以上の遅延となり、ＰＬＬによる同期化やボード上の等長配線だけでは対処できないレベルとなっている。
【０００７】
ＤＤＲ３−ＳＤＲＡＭの規格（ＪＥＤＥＣ  Ｓｔａｎｄａｒｄ  Ｎｏ．７９−３ｘ）の新規機能として、メモリとメモリ制御装置間のタイミングを制御する機能が追加されている。ライトレベリング機能と、ＭＰＲ（Ｍｕｌｔｉ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ）による固定値リードデータ出力機能がそれに該当する。
【０００８】
前者はメモリへ入力されるクロックと、メモリ制御装置がライト時に出力するＤＱＳ（データストローブ信号）のタイミング調整に関わり、後者は、メモリ制御装置が正しいリードデータを取り込むためのタイミング調整に関わるものである。ＤＤＲ３−ＳＤＲＡＭの規格自体には、これらの機能の使い方については言及されておらず、どのように使うかはメモリ制御装置の仕様に依存する。
【０００９】
ライトレベリング機能と、ＭＰＲによる固定値リードデータ出力の機能をメモリ制御装置が使いこなすには、少なくともＤＱＳの出力タイミングと、ＤＱ（データ）／ＤＱＳの入力タイミングを調整する機能がメモリ制御装置に装備されていることが必須である。しかし、ＤＱＳ出力とＤＱ／ＤＱＳの入力タイミングだけ調整できれば高速動作のＤＤＲ３−ＳＤＲＡＭに対応するメモリ制御装置が構成できるのではなく、メモリ制御装置の全ての入出力端子においてタイミング調整機能を持たなければ、ＤＤＲ３−ＳＤＲＡＭの新規機能対応および高速動作を保証するのが難しいことは自明である。
【００１０】
入出力端子のタイミング調整を行う手法に、ＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）を用いたものがある。ＤＬＬに入力される基準クロックの周期に対応した値を遅延演算回路に設定することにより、安定した遅延を供給することができる。なお、基準クロックとメモリクロックとは、任意の関係である。例えば、基準クロック＝メモリクロックの関係としてもよいし、メモリクロックを２逓倍したものを基準クロックとしてもよい。
【００１１】
図１は、従来のメモリ制御装置の構成を例示するブロック図である。図１を参照するに、メモリ制御装置１００は、制御部１０１と、遅延回路１０２（１）〜１０２（ｉ）と、バッファ１０３（１）〜１０３（ｉ）と、入出力端子１０４（１）〜１０４（ｊ）とを有する。なお、ｉ及びｊは自然数である。制御部１０１は、遅延回路１０２（１）〜１０２（ｉ）に接続されている。遅延回路１０２（１）〜１０２（ｉ）は、バッファ１０３（１）〜１０３（ｉ）に接続されている。バッファ１０３（１）〜１０３（ｉ）は、入出力端子１０４（１）〜１０４（ｊ）に接続されている。
【００１２】
図２は、図１の遅延回路周辺部の構成を例示するブロック図である。同図中、図１と同一構成部分には同一符号を付し、その説明は省略する場合がある。図２を参照するに、ＤＬＬ（Ｄｅｌａｙ Ｌｏｃｋｅｄ Ｌｏｏｐ）回路１０５へ基準クロックが入力され、ＤＬＬ回路１０５の出力は遅延演算回路１０７に接続されている。遅延演算回路１０７へ遅延設定値が入力され、遅延演算回路１０７の出力は遅延回路１０２（１）に接続されている。ここでは、メモリクロック＝基準クロックとし、その周期をｔｃｋとする。なお、遅延回路１０２（１）以外の各遅延回路周辺部の構成も図２と同様である。
【００１３】
図１及び図２に示すように、メモリ制御装置１００は、入出力端子１０４（１）〜１０４（ｊ）に遅延回路１０２（１）〜１０２（ｉ）を装備しており、ＤＬＬ回路１０５の出力と遅延設定値とを遅延演算回路１０７に入力することにより、遅延演算回路１０７の遅延設定ができるような構成となっている。すなわち、遅延設定回路１０７は、ＤＬＬ回路１０５の出力と所望の遅延設定値を用いて遅延量を演算し、演算した遅延量を遅延回路１０２（１）〜１０２（ｉ）に出力する。そして、遅延回路１０２（１）〜１０２（ｉ）は、遅延設定回路１０７から入力された遅延量に基づいて遅延値を決定する。
【００１４】
例えば、遅延演算回路１０７に入力される遅延設定値がｎ値の場合、遅延演算回路１０７がｎ／３２ｔＣＫの遅延量を持つように設定される。この構成により、遅延回路１０２（１）〜１０２（ｉ）の出力信号の遅延量を、基準クロックに対応して個別に設定できる。
【００１５】
メモリ制御装置１００を半導体装置で実現した場合、テストにより遅延回路が所望の遅延量を有することを確認して正常品の選別ができることが必要である。
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、例えばＤＤＲ３−１６００の場合、メモリクロック（周期ｔＣＫ）が８００ＭＨｚであり、１／３２ｔＣＫは３９ｐｓの時間差に相当する。３９ｐｓの時間差を量産に適用されるような汎用のテスタで測定することは不可能である。
【００１７】
上記の点に鑑みて、量産に適用されるような一般的なテスタでも遅延回路の遅延量の測定が可能なメモリ制御装置及びその遅延量測定方法を提供することを課題とする。
【課題を解決するための手段】
【００１８】
本メモリ制御装置は、半導体記憶装置にデータを書き込むメモリ制御装置であって、入力信号を遅延させて出力する複数の遅延回路を有し、通常動作時に、前記複数の遅延回路は、互いに独立し、個々の遅延回路に入力される信号を個々に遅延して出力し、テスト動作時に、前記複数の遅延回路は、テスト用入力信号が全ての遅延回路を経由し、それぞれの遅延量の合計分だけ遅延するように接続され、遅延後の前記テスト用入力信号は、テスト用出力信号として、前記メモリ制御装置の外部に出力されていることを要件とする。
【００１９】
本遅延量測定方法は、半導体記憶装置にデータを書き込むメモリ制御装置を構成する遅延回路の遅延量測定方法であって、テスト動作を行うテストモードに設定する第１ステップと、複数の遅延回路を、テスト用入力信号が全ての遅延回路を経由し、それぞれの遅延量の合計分だけ遅延するように接続する第２ステップと、前記複数の遅延回路のうち、任意の遅延回路に第１の遅延量を設定する第３ステップと、前記テスト用入力信号が全ての遅延回路を経由して出力された信号である第１のテスト用出力信号を観測する第４ステップと、前記任意の遅延回路に第２の遅延量を設定する第５ステップと、前記テスト用入力信号が全ての遅延回路を経由して出力された信号である第２のテスト用出力信号を観測する第６ステップと、前記第１のテスト用出力信号と前記第２のテスト用出力信号の遅延量の差分から前記任意の遅延回路の合計の遅延量を算出する第７ステップと、前記合計の遅延量と前記任意の遅延回路の個数とに基づいて、前記任意の遅延回路の個々の遅延量を算出する第８ステップと、を有することを要件とする。
【発明の効果】
【００２０】
本発明によれば、量産に適用されるような一般的なテスタでも遅延回路の遅延量の測定が可能なメモリ制御装置及びその遅延量測定方法を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】従来のメモリ制御装置の構成を例示するブロック図である。
【図２】図１の遅延回路周辺部の構成を例示するブロック図である。
【図３】第１の実施の形態に係るメモリ制御装置の構成を例示するブロック図である。
【図４】遅延回路の遅延量を計測する方法を示すフローチャートの例である。
【図５】テストモード時の動作タイミングを例示する図（その１）である。
【図６】第２の実施の形態に係るメモリ制御装置の構成を例示するブロック図である。
【図７】テストモード時の動作タイミングを例示する図（その２）である。
【図８】変形例１に係るメモリ制御装置の構成を例示するブロック図である。
【図９】テストモード時の動作タイミングを例示する図（その３）である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、実施の形態の説明を行う。
【００２３】
〈第１の実施の形態〉
図３は、第１の実施の形態に係るメモリ制御装置の構成を例示するブロック図である。図３を参照するに、メモリ制御装置１０は、制御部１１と、ＤＬＬ回路１２と、遅延演算回路１３（１）〜１３（ｋ）と、遅延回路１４（１）〜１４（ｋ）と、バッファ１５（１）〜１５（ｋ）と、入出力端子１６（１）〜１６（ｋ）と、バッファ１７（１）及び１７（２）と、入出力端子１８（１）及び１８（２）とを有する。なお、ｋは自然数である。
【００２４】
制御部１１は、クロックジェネレータ等を含んで構成されており、ＤＬＬ回路１２に基準クロックを、遅延演算回路１３（１）〜１３（ｋ）に遅延設定値１〜ｋを、遅延回路１４（１）〜１４（ｋ）に通常出力信号１〜ｋを出力する。なお、通常出力信号とは、例えば制御信号（アドレス、Ras#、Cas#、We# etc）やデータ信号（DQxx）、データストローブ信号(DQS)等である。
【００２５】
ＤＬＬ回路１２は、制御部１１から入力される基準クロックに基づいて所定の遅延値を生成し、遅延演算回路１３（１）〜１３（ｋ）に出力する遅延値生成回路である。ここでは、メモリクロック＝基準クロックとし、その周期をｔｃｋとする。なお、図３においてＤＬＬ回路１２の出力は遅延演算回路１３（１）のみに入力されているが、実際には遅延演算回路１３（１）〜１３（ｋ）に入力されている。
【００２６】
遅延演算回路１３（１）〜１３（ｋ）は、ＤＬＬ回路１２から入力される遅延値と、制御部１１から入力される遅延設定値１〜ｋに基づいて遅延量を演算し、演算した遅延量を遅延回路１４（１）〜１４（ｋ）に出力する。例えば、遅延演算回路１３（１）〜１３（ｋ）に入力される遅延設定値がｎ値の場合、遅延演算回路１３（１）〜１３（ｋ）がｎ／３２ｔＣＫの遅延量を持つように設定される。この構成により、遅延回路１４（１）〜１４（ｋ）の出力信号の遅延量を、基準クロックに対応して個別に設定できる。
【００２７】
遅延回路１４（１）〜１４（ｋ）には、制御部１１からの通常出力信号１〜ｋと、メモリ制御装置１０の外部からのテスト用入力信号とが入力される。遅延回路１４（１）〜１４（ｋ）は、入力される通常出力信号１〜ｋとテスト用入力信号の何れか一方を選択し、遅延演算回路１３（１）〜１３（ｋ）から入力された遅延量だけ遅延させて出力する。なお、通常出力信号１〜ｋとテスト用入力信号との選択回路を遅延回路１４（１）〜１４（ｋ）の外部に設けても構わない。
【００２８】
ここで、遅延回路１４（１）〜１４（ｋ）が通常出力信号を選択する場合を通常動作モードと称し、遅延回路１４（１）〜１４（ｋ）がテスト用入力信号を選択する場合をテストモードと称する。又、通常動作モードで動作している場合を通常動作時と称し、テストモードで動作している場合をテスト動作時と称する。
【００２９】
通常動作モードとテストモードとは、例えば、メモリ制御装置１０の外部に配置されたＣＰＵ等からコマンドを入力することにより切り替えることができる。又、メモリ制御装置１０の所定の入出力端子を所定の電位に設定することにより切り替えても構わない。例えば、所定の入出力端子を電源に接続したときは通常動作モードに、基準電位に接続したときはテストモードに切り替えるが如くである。
【００３０】
通常動作モードにおいて、遅延回路１４（１）〜１４（ｋ）は、制御部１１から入力される通常出力信号１〜ｋを選択し、通常出力信号１〜ｋを遅延演算回路１３（１）〜１３（ｋ）から入力された遅延量だけ遅延させて、バッファ１５（１）〜１５（ｋ）を介して入出力端子１６（１）〜１６（ｋ）に出力する。
【００３１】
テストモードにおいて、遅延回路１４（１）〜１４（ｋ）は、メモリ制御装置１０の外部からのテスト用入力信号を選択し、テスト用入力信号を遅延演算回路１３（１）〜１３（ｋ）から入力された遅延量だけ遅延させて出力する。テストモードの場合には遅延回路１４（１）〜１４（ｋ）の全てにおいてテスト用入力信号が選択されるため、遅延回路１４（１）〜１４（ｋ）はチェーン状（直列）に接続されることになる。
【００３２】
すなわち、メモリ制御装置１０の外部から入出力端子１８（１）及びバッファ１７（１）を介して遅延回路１４（１）に入力されたテスト用入力信号は、所定量だけ遅延されて遅延回路１４（２）に入力される。遅延回路１４（２）に入力されたテスト用入力信号は、更に所定量だけ遅延されて遅延回路１４（３）に入力される。テスト用入力信号は、同様に遅延回路１４（４）〜１４（ｋ−１）を経由して、遅延回路１４（ｋ）に入力される。遅延回路１４（ｋ）に入力されたテスト用入力信号は、所定量だけ遅延されてバッファ１７（２）及び入出力端子１８（２）を介して、メモリ制御装置１０の外部に出力される。
【００３３】
このように、遅延回路１４（１）〜１４（ｋ）をチェーン状（直列）に接続し、メモリ制御装置１０の外部から入力したテスト用入力信号を、遅延回路１４（１）〜１４（ｋ）を経由させて遅延させ、テスト用出力信号としてメモリ制御装置１０の外部に出力する。そして、メモリ制御装置１０の外部に出力されたテスト用出力信号を用いて、遅延回路１４（１）〜１４（ｋ）の遅延量を計測することができる。
【００３４】
図４及び図５を参照しながら、遅延回路１４（１）〜１４（ｋ）の遅延量を計測する方法を具体的に説明する。図４は、遅延回路の遅延量を計測する方法を示すフローチャートの例である。図５は、テストモード時の動作タイミングを例示する図（その１）である。
【００３５】
始めにステップ１００において、メモリ制御装置１０をテストモードに設定する（Ｓ１００）。メモリ制御装置１０をテストモードに設定すると、遅延回路１４（１）〜１４（ｋ）はテスト用入力信号を選択し、チェーン状に接続される。
【００３６】
次いでステップ１１０において、全ての遅延回路１４（１）〜１４（ｋ）に第１の遅延量を設定する（Ｓ１１０）。ここでは、一例として、第１の遅延量を１／３２ｔＣＫとする。次いでステップ１２０において、入出力端子１８（１）からテスト用入力信号を入力し、入出力端子１８（２）でテスト用出力信号１を観測する（Ｓ１２０）。図５に示すように、テスト用入力信号としてＬからＨに立ち上がる信号を入力した場合に、テスト用出力信号１はテスト用入力信号の立ち上がりに対して所定量ｔ１だけ遅延してＬからＨに立ち上がる。観測したテスト用出力信号１は、任意の記憶装置で記憶される。
【００３７】
次いでステップ１３０において、全ての遅延回路１４（１）〜１４（ｋ）に第２の遅延量を設定する（Ｓ１３０）。ここでは、一例として、第２の遅延量を２／３２ｔＣＫとする。次いでステップ１４０において、入出力端子１８（１）からテスト用入力信号を入力し、入出力端子１８（２）でテスト用出力信号２を観測する（Ｓ１４０）。図５に示すように、テスト用出力信号２は、テスト用出力信号１の立ち上がりに対して所定量ｔ２だけ遅延してＬからＨに立ち上がる（テスト用入力信号の立ち上がりに対して所定量ｔ１＋ｔ２だけ遅延してＬからＨに立ち上がる）。観測したテスト用出力信号２は、任意の記憶装置で記憶される。
【００３８】
次いでステップ１５０において、記憶されたテスト用出力信号１とテスト用出力信号２の遅延量の差分ｔ２から遅延回路１４（１）〜１４（ｋ）の合計の遅延量を算出する（Ｓ１５０）。すなわち、差分ｔ２が遅延回路１４（１）〜１４（ｋ）の合計の遅延量であり、遅延回路１４（１）〜１４（ｋ）の設定の差２／３２ｔＣＫ−１／３２ｔＣＫ＝１／３２ｔＣＫに遅延回路１４（１）〜１４（ｋ）の総数ｋを掛けた値に相当する。
【００３９】
次いでステップ１６０において、遅延回路１４（１）〜１４（ｋ）の合計の遅延量（ｔ２）と、遅延回路１４（１）〜１４（ｋ）の総数ｋとに基づいて、遅延回路１４（１）〜１４（ｋ）の個々の遅延量を算出する（Ｓ１６０）。以下に遅延回路１４（１）〜１４（ｋ）の個々の遅延量を算出する一例を示す。
【００４０】
例えばＤＤＲ３−１６００の場合、メモリクロック（周期ｔＣＫ）が８００ＭＨｚであり、１／３２ｔＣＫは３９ｐｓの時間差に相当する。一般に、ＤＤＲ方式のメモリ制御装置の信号の数は、データバス６４ビットの場合、データ６４ビット＋アドレス１５ビット＋RAS／CAS／WE／CKE／CS／ODTで８５個になる。更に、データバスの双方向分や出力イネーブルを考慮すると１５個以上増えて、結局、メモリ制御装置の信号の総数ｋは１００個以上となる。
【００４１】
従って、メモリ制御装置の信号のそれぞれが遅延回路を備えているとすると、遅延回路の総数も１００個以上となる。仮に、遅延回路の総数ｋを１００個とすると、ｔ２＝３９ｐｓ×１００＝３．９ｎｓとなる。遅延回路１個分の遅延量３９ｐｓは量産に適用されるような一般的なテスタでは測定できないが、ｔ２＝３．９ｎｓは量産に適用されるような一般的なテスタで測定可能な範囲である。すなわち、遅延回路１００個分の遅延量である３．９ｎｓを量産に適用されるような一般的なテスタで測定し、遅延回路の総数１００で割ることにより、遅延回路１個分の遅延量３．９ｐｓを算出することができる。
【００４２】
このように、第１の実施の形態によれば、テストモードにおいて、遅延回路をチェーン状（直列）に接続することにより、量産に適用されるような一般的なテスタを用いても個々の遅延回路の遅延量の測定が可能となる。なお、第１の実施の形態では、ＤＬＬ回路の出力を遅延演算回路を通して遅延回路に入力している。これは本来のメモリ制御装置が出力（又は入力）タイミングの設定を行う場合と同じ動作なので、メモリ制御装置の遅延制御のａｔ  ｓｐｅｅｄテスト（実際の動作周波数における動作テスト）に相当する。
【００４３】
〈第２の実施の形態〉
図６は、第２の実施の形態に係るメモリ制御装置の構成を例示するブロック図である。同図中、図３と同一構成部分には同一符号を付し、その説明は省略する場合がある。図６を参照するに、メモリ制御装置２０は、遅延回路１４（ｋ）の出力がインバータ２１（反転回路）を介して遅延回路１４（１）に入力されている点、バッファ１７（１）及び入出力端子１８（１）が削除された点がメモリ制御装置１０とは異なり、それ以外はメモリ制御装置１０と同様の構成である。以下、メモリ制御装置２０について、メモリ制御装置１０と異なる部分を中心に説明する。
【００４４】
テストモードにおいて、遅延回路１４（１）〜１４（ｋ）は、テスト用入力信号を選択し、テスト用入力信号を遅延演算回路１３（１）〜１３（ｋ）から入力された遅延量だけ遅延させて出力する。テストモードの場合には遅延回路１４（１）〜１４（ｋ）の全てにおいてテスト用入力信号が選択されるため、遅延回路１４（１）〜１４（ｋ）はインバータ２１を介してリング状に接続されることになる。
【００４５】
すなわち、テストモードにおいて、遅延回路１４（１）〜１４（ｋ）及びインバータ２１は発振回路を構成し自励発振する。そして、発振信号は、バッファ１７（２）及び入出力端子１８（２）を介してモニタすることができる。なお、自励発振とは、出力側から入力側に正帰環をかけることにより、その系で最も都合のよい安定した状態で自己発振する現象である。
【００４６】
このように、遅延回路１４（１）〜１４（ｋ）をインバータ２１を介してリング状に接続して発振回路を構成し自励発振させる。そして、メモリ制御装置２０の外部で発振信号の波形をモニタすることによって、遅延回路１４（１）〜１４（ｋ）の遅延量を計測することができる。
【００４７】
図４及び図７を参照しながら、遅延回路１４（１）〜１４（ｋ）の遅延量を計測する方法を具体的に説明する。図７は、テストモード時の動作タイミングを例示する図（その２）である。
【００４８】
始めにステップ１００において、メモリ制御装置２０をテストモードに設定する（Ｓ１００）。メモリ制御装置２０をテストモードに設定すると、遅延回路１４（１）〜１４（ｋ）はテスト用入力信号を選択し、インバータ２１を介してリング状に接続され、テスト用入力信号を自励発振する発振回路を構成する。
【００４９】
次いでステップ１１０において、全ての遅延回路１４（１）〜１４（ｋ）に第１の遅延量を設定する（Ｓ１１０）。ここでは、一例として、第１の遅延量を１／３２ｔＣＫとする。次いでステップ１２０において、入出力端子１８（２）でテスト用出力信号３を観測する（Ｓ１２０）。図７に示すように、テスト用出力信号３は周期ｔ３の発振波形となる。観測したテスト用出力信号３は、任意の記憶装置で記憶される。
【００５０】
次いでステップ１３０において、全ての遅延回路１４（１）〜１４（ｋ）に第２の遅延量を設定する（Ｓ１３０）。ここでは、一例として、第２の遅延量を２／３２ｔＣＫとする。次いでステップ１４０において、入出力端子１８（２）でテスト用出力信号４を観測する（Ｓ１４０）。図７に示すように、テスト用出力信号４は周期ｔ４の発振波形となる。観測したテスト用出力信号４は、任意の記憶装置で記憶される。
【００５１】
次いでステップ１５０において、記憶されたテスト用出力信号３の周期ｔ３とテスト用出力信号４の周期ｔ４から遅延回路１４（１）〜１４（ｋ）の合計の遅延量を算出する（Ｓ１５０）。すなわち、周期ｔ３と周期ｔ４の差分ｔ５が遅延回路１４（１）〜１４（ｋ）の合計の遅延量であり、遅延回路１４（１）〜１４（ｋ）の設定の差２／３２ｔＣＫ−１／３２ｔＣＫ＝１／３２ｔＣＫに遅延回路１４（１）〜１４（ｋ）の総数ｋを掛けた値に相当する。
【００５２】
次いでステップ１６０において、遅延回路１４（１）〜１４（ｋ）の合計の遅延量（ｔ５）と、遅延回路１４（１）〜１４（ｋ）の総数ｋとに基づいて、遅延回路１４（１）〜１４（ｋ）の個々の遅延量を算出する（Ｓ１６０）。以下に遅延回路１４（１）〜１４（ｋ）の個々の遅延量を算出する一例を示す。
【００５３】
第１の実施の形態と同様に遅延回路の総数を１００個とすると、ｔ５＝３９ｐｓ×１００＝３．９ｎｓとなる。遅延回路１個分の遅延量３９ｐｓは量産に適用されるような一般的なテスタでは測定できないが、３．９ｎｓは量産に適用されるような一般的なテスタで測定可能な範囲である。すなわち、遅延回路１００個分の遅延量であるｔ５＝３．９ｎｓを量産に適用されるような一般的なテスタで測定し、遅延回路の総数１００で割ることにより、遅延回路１個分の遅延量３．９ｐｓを算出することができる。
【００５４】
このように、第２の実施の形態によれば、テストモードにおいて、遅延回路をインバータを介してリング状に接続して発振回路を構成し自励発振させることにより、量産に適用されるような一般的なテスタを用いても個々の遅延回路の遅延量の測定が可能となる。なお、第２の実施の形態では、第１の実施の形態と同様にＤＬＬ回路の出力を遅延演算回路を通して遅延回路に入力している。これは本来のメモリ制御装置が出力（又は入力）タイミングの設定を行う場合と同じ動作なので、メモリ制御装置の遅延制御のａｔ  ｓｐｅｅｄテスト（実際の動作周波数における動作テスト）に相当する。
【００５５】
〈変形例１〉
変形例１は、第１の実施の形態及び第２の実施の形態の変形例である。
【００５６】
図８は、変形例１に係るメモリ制御装置の構成を例示するブロック図である。同図中、図３及び図６と同一構成部分には同一符号を付し、その説明は省略する場合がある。図８を参照するに、メモリ制御装置３０のＤＬＬ出力値レジスタ３１、遅延量設定レジスタ３２、及び遅延段数設定レジスタ３３は、メモリ制御装置３０の外部に配置されたＣＰＵバス４０を介して、メモリ制御装置３０の外部に配置されたＣＰＵ５０と接続されている。
【００５７】
又、遅延演算回路１３（１）の出力及び遅延段数設定レジスタ３３の出力は選択回路３４に入力されており、選択回路３４の出力は遅延回路１４（１）に入力されている。なお、遅延回路１４（２）〜１４（ｋ）の周辺部の回路構成は、遅延回路１４（１）の周辺部の回路構成と同様であるため、図８においては省略されている。
【００５８】
ＤＬＬ出力値レジスタ３１は、ＤＬＬ回路１２で計算された遅延段数を保存するレジスタである。遅延段数は、ＤＬＬ回路１２に入力される基準クロックに応じた値、例えば、基準クロック周期に相当する必要遅延段数の値である。遅延量設定レジスタ３２は、遅延量設定を保存するレジスタである。例えば、遅延演算回路１３（１）を介して遅延回路１４（１）に遅延段数を設定する場合、Ｎ／３２ｔＣＫの設定ができるとする。その場合のNが遅延量設定レジスタの値に相当する。
【００５９】
遅延段数設定レジスタ３３は、遅延回路１４（１）に設定する値を保存するレジスタである。選択回路３４は、遅延演算回路１３（１）で計算した結果の値を遅延回路１４（１）に設定するか、又は、遅延段数設定レジスタ３３の値を遅延回路１４（１）に設定するかを選択する回路である。
【００６０】
例えば、ＣＰＵ５０がＤＬＬ出力値レジスタ３１の値＝１６（この値が基準クロックの周期を示す）を読み取り、読み取った値（＝１６）の１／４＝４の設定を、遅延段数設定レジスタ３３に書き込んだとする。この場合、選択回路３４が遅延単数設定レジスタ３３を選択していれば、遅延回路１４（１）の遅延量は基準クロック周期の１／４となる。例えば、基準クロックがメモリクロックの２逓倍の関係だとすると、遅延回路１４（１）には１／８ｔＣＫの遅延が設定される。
【００６１】
このように、変形例１によれば、第１の実施の形態及び第２の実施の形態と同様の効果を奏するが、更に以下の効果を奏する。すなわち、ＣＰＵ５０はＤＬＬ出力値レジスタ３１の値をＣＰＵバス４０を介して読み出すことができる。又、遅延回路１４（１）の設定値を遅延演算回路１３（１）の介入無しに設定することも可能である（遅延演算回路１３（１）は存在しなくても構わない）。更に、テストモードと通常動作モードをＣＰＵ５０からの指令により切り替えることができる。
【００６２】
〈変形例２〉
第１の実施の形態及び第２の実施の形態では、全ての遅延回路に対して同一の遅延量（例えば１／３２ｔＣＫ）を設定する例を示した。変形例２では、各遅延回路に対して個別に
遅延量を設定する例を示す。個別に遅延量を設定することにより、テストの制御のバリエーションを増やすことができる。
【００６３】
遅延回路に個別に遅延量を設定できないと、例えば１００個の遅延回路をもつ回路は常に１００個の平均値としてしか測定できない。この場合には、１個では量産に適用されるような一般的なテスタの精度では正確に遅延特性の測定をすることはできないが、１００個まとめれば量産に適用されるような一般的なテスタの精度でも測定可能になるという利点がある。しかしながら、将来、量産に適用されるような一般的なテスタの測定精度が上がっても１００個まとめてしか測定できないことになる。遅延回路に個別に遅延量を設定できれば、将来、量産に適用されるような一般的なテスタの測定精度が向上した場合に、任意の個数の遅延回路に個別に遅延量を設定して、遅延量の測定をすることができる。
【００６４】
又、遅延量を１００個の平均としてしか測定できない場合には、数個の遅延回路の特性が悪かったとしても判別できない虞がある。この場合にも、量産に適用されるような一般的なテスタの精度が許すなら、例えば１００個の中からランダムに２５個を選択して、選択した２５個だけに遅延量を設定して遅延量の測定を行う。これを複数回繰り返し、遅延量の測定値が所定の閾値を超えたらＮＧと判断するようにすれば解決できる可能性がある。
【００６５】
以下に遅延回路に個別に遅延量を設定する例を示す。図９は、テストモード時の動作タイミングを例示する図（その３）である。図９において、テスト用出力信号５〜７は、メモリ制御装置２０の遅延回路１４（ｋ）からバッファ１７（２）及び入出力端子１８（２）を介してメモリ制御装置２０の外部に出力された信号を示している。
【００６６】
ただし、テスト用出力信号５は全ての遅延回路１４（１）〜１４（ｋ）の遅延量を１／３２ｔＣＫに設定した場合の出力信号であり、テスト用出力信号６は全ての遅延回路１４（１）〜１４（ｋ）の遅延量を２／３２ｔＣＫに設定した場合の出力信号である。又、テスト用出力信号７は遅延回路１４（１）〜１４（ｋ）のうちｋ／２個の遅延量を１／３２ｔＣＫに設定し、残りのｋ／２個の遅延量を３／３２ｔＣＫに設定した場合の出力信号である。なお、ｋ＝１００とする。
【００６７】
テスト用出力信号５とテスト用出力信号６の差分を遅延回路の個数＝１００で割ると、遅延回路１個あたりの遅延量を１／３２ｔＣＫに設定したときの実測値の平均を求めることができる。テスト用出力信号５とテスト用出力信号７の差分は、５０個の遅延回路に対し、（３／３２ｔＣＫ−１／３２ｔＣＫ）×５０に相当する。従って、テスト用出力信号５とテスト用出力信号７の差分を１００で割ると、遅延回路１個あたりの遅延量を１／３２ｔＣＫに設定したときの実測値の平均を求めることができる。
【００６８】
これら何れの測定も、使用した遅延回路の個数や遅延量の設定は異なるが、遅延回路１個あたりの遅延量を１／３２ｔＣＫに設定したとき遅延量の平均を測定したことに変わりはなない。図９のｔ６は、１／３２ｔＣＫから２／３２ｔＣＫへ設定変更した場合に増加する遅延量と、２／３２ｔＣＫから３／３２ｔＣＫへ設定変更した場合に増加する遅延量が、同じ１／３２ｔＣＫであっても、測定結果が異なる場合があることを示している。すなわち、図９におけるｔ６は、遅延量のバラツキに相当する。遅延回路に個別に遅延量を設定することにより、例えば図９におけるｔ６のような遅延量のバラツキを測定することが可能となる。
【００６９】
このように、変形例２によれば、第１の実施の形態及び第２の実施の形態と同様の効果を奏するが、更に以下の効果を奏する。すなわち、遅延回路に個別に遅延量を設定することにより、全ての遅延回路に同じ設定しかできない場合と比較して、テストのバリエーションを増やすことができる。
【００７０】
以上、好ましい実施の形態及びその変形例について詳説したが、上述した実施の形態及びその変形例に制限されることはなく、特許請求の範囲に記載された範囲を逸脱することなく、上述した実施の形態及びその変形例に種々の変形及び置換を加えることができる。
【符号の説明】
【００７１】
１０，２０，３０  メモリ制御装置
１１  制御部
１２  ＤＬＬ回路
１３（１）〜１３（ｋ）  遅延演算回路
１４（１）〜１４（ｋ）  遅延回路
１５（１）〜１５（ｋ），１７（１），１７（２）  バッファ
１６（１）〜１６（ｋ），１８（１），１８（２）  入出力端子
２１  インバータ
３１  ＤＬＬ出力値レジスタ
３２  遅延量設定レジスタ
３３  遅延段数設定レジスタ
３４  選択回路
４０  ＣＰＵバス
５０  ＣＰＵ
ｔ１〜ｔ６  時間
【先行技術文献】
【特許文献】
【００７２】
【特許文献１】特許第３４８３４３７号
【特許文献２】特開２００８−００８７２０号公報
【特許文献３】特開２００７−１２４１９６号公報
【特許文献４】特開２０００−０６５９０２号公報
【特許文献５】特開２００８−０７１２４９号公報
【図１】
2010191485.tif 000003
【図２】
2010191485.tif 000004
【図３】
2010191485.tif 000005
【図４】
2010191485.tif 000006
【図５】
2010191485.tif 000007
【図６】
2010191485.tif 000008
【図７】
2010191485.tif 000009
【図８】
2010191485.tif 000010
【図９】
2010191485.tif 000011