(57)【要約】【課題】定期的なスキュー調整を不要とし、任意の時期にスキュー調整を要求する信号を出力する。【解決手段】メモリインタフェース回路は、遅延回路と、検査回路と、判定回路とを具備する。遅延回路は、メモリ回路から入力する信号に遅延を与えて出力する。検査回路は、遅延回路の遅延量を調整して設定し、遅延回路の遅延量を調整値算出回路によって設定された値から所定の量増減し検査する。判定回路は、信号に基づいて取り出すデータに関するリードエラーの発生を検知して制御回路にスキューの再調整を要求する。【選択図】図３
2011150759.tif 000002
【特許請求の範囲】
【請求項１】
チップ外部からのデータとクロックが入力され、チップ内部へと出力するメモリインタフェース回路において、
スキュー検査モードと通常動作モードとを切り替えるモード切替信号を入力することにより、スキュー検査モード時には、前記データあるいは前記クロックに所定の遅延を与える遅延回路と、
前記モード切替信号に応じて、前記所定の遅延を変化させてスキュー検査を行う検査回路と、
前記検査回路の出力に応じて、前記遅延回路に所定の遅延値を設定する遅延値設定回路と、
前記遅延回路の出力に応じて、前記メモリインタフェース回路の出力にエラーが出力されるかを判定し、エラーが出力されるときに、スキュー調整をチップ外部に要求する要求信号を出力する判定回路と
を有することを特徴とするメモリインタフェース回路。
【請求項２】
前記遅延値設定回路は、
前記検査回路から指示された遅延値を保持するレジスタと、
前記レジスタに保持する値から所定の値を減算する減算回路と
前記レジスタに保持する値に所定の値を加算する加算回路と、
前記レジスタの出力と、前記減算回路の出力と、前記加算回路の出力とのうちいずれかを前記検査回路の指示の基づき出力するセレクタと
を備える請求項１に記載のメモリインタフェース回路。
【請求項３】
前記判定回路は、前記データあるいは前記クロックのどちらか一方に対し、他方の遅延回路の遅延量を増減したときに、前記メモリインタフェース回路の出力エラーを検出する
請求項１に記載のメモリインタフェース回路。
【請求項４】
前記遅延回路に入力する信号は、前記チップ外部からの前記クロックである
請求項１から請求項３のいずれかに記載のメモリインタフェース回路。
【請求項５】
前記遅延回路に入力する信号は、前記チップ外部からの前記データである
請求項１から請求項３のいずれかに記載のメモリインタフェース回路。
【請求項６】
前記前記検査回路は、前記モード切替信号に基づき検査を起動する回路と、
前記遅延回路の出力に応じて、予め設定された遅延値に対して、前記設定された値から所定の量増減するように前記遅延値設定回路に指示するスキュー検査制御回路とを備える請求項１に記載のメモリインタフェース回路。
【請求項７】
前記検査回路における検査を起動する回路は、
一定時間カウントするカウンタ回路と、
前記モード切替信号と、前記カウンタ回路の出力信号との論理積を求める論理積回路と
を備える請求項２に記載のメモリインタフェース回路。
【請求項８】
前記メモリ回路は、メモリクロック信号と、前記メモリクロック信号の立ち上がり及び立ち下がりエッジに同期して出力される複数のメモリデータ信号とを出力する
請求項１から請求項７のいずれかに記載のメモリインタフェース回路。
【請求項９】
メモリ回路から入力する信号に遅延を与えて遅延信号を出力するステップと、
前記信号に与える遅延量を調整するステップと、
前記信号に与える遅延量を前記調整するステップにおいて設定された値から所定の量増減するステップと、
前記信号に基づいて取り出すデータに関するリードエラーの発生を検知するステップと、
を具備する
メモリインタフェース方法。
【請求項１０】
前記リードエラーの発生を検知したとき、制御回路にスキューの再調整を要求するステップ
を具備する
請求項９に記載のメモリインタフェース方法。
【請求項１１】
前記増減するステップは、
前記制御回路が出力する検査許可信号を監視するステップと、
前記検査許可信号に基づいて前記信号に与える遅延量の増減を開始するステップとを含む
請求項９および請求項１０に記載のメモリインタフェース方法。
【請求項１２】
前記増減するステップは、
前記信号に与える遅延量を前記調整するステップにおいて設定された値から増減したときに、前記メモリ回路から読み出したデータが前記メモリ回路に書き込んだデータと異なる場合にリードエラーの発生を検出するステップを含む
請求項９または請求項１１に記載のメモリインタフェース方法。
【請求項１３】
前記信号は、前記メモリ回路から出力されるクロック信号であり、
前記検知するステップは、前記増減するステップによって前記クロック信号の位相を変えて前記リードエラーの発生を検出するステップを備える
請求項１２に記載のメモリインタフェース方法。
【請求項１４】
遅延信号を出力するステップは、
前記クロック信号に遅延を与えるステップと、
前記クロック信号に与える遅延量を設定するステップと
を含み、
前記クロック信号に与える遅延量を設定するステップは、
前記調整するステップにおいて指示される調整値を保持するステップと、
前記調整値から所定の値を減算するステップと、
前記調整値に所定の値を加算するステップと、
前記調整値と、前記減算された値と、前記加算された値とのうちのいずれかを選択するステップと
を備える
請求項１３に記載のメモリインタフェース方法。
【請求項１５】
前記信号は、前記メモリ回路から出力される複数のデータ信号であり、
前記検知するステップは、
前記複数のデータ信号のうちの所定のデータ信号に与える遅延量を増加するステップと、
前記複数のデータ信号のうちの他のデータ信号に与える遅延量を削減するステップと、
前記増加するステップと削減するステップとを同時に実行して前記リードエラーの発生を検出するステップと
を備える
請求項１２に記載のメモリインタフェース方法。
【請求項１６】
遅延信号を出力するステップは、
前記複数のデータ信号のそれぞれに遅延を与えるステップと、
前記複数のデータ信号のそれぞれに与える遅延量を設定するステップと
を含み、
前記複数のデータ信号のそれぞれに与える遅延量を設定するステップは、
前記複数のデータ信号のそれぞれに対応して前記調整するステップにおいて指示される前記複数のデータ信号毎の調整値を保持するステップと、
前記複数のデータ信号毎の調整値から所定の値をそれぞれ減算するステップと、
前記複数のデータ信号毎の調整値に所定の値をそれぞれ加算するステップと、
前記複数のデータ信号毎の調整値と、前記それぞれ減算された値と、前記それぞれ加算された値とのうちのいずれかをそれぞれ選択するステップと
を備え、
前記それぞれ選択するステップのうちのいずれかのステップは前記減算された値を選択するステップであり、前記それぞれ選択するステップのうちの他のステップは前記加算された値を選択するステップである
請求項１５に記載のメモリインタフェース方法。
【請求項１７】
前記スキューの再調整を要求するステップにより、前記スキューの再調整が要求されたとき、前記スキューの再調整を実施するステップをさらに具備する
請求項９から請求項１６のいずれかに記載のメモリインタフェース方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリとの間でデータの書き込み、読み出しを行うメモリインタフェース回路、メモリインタフェース回路を搭載する半導体装置に関する。
【背景技術】
【０００２】
メモリに対するデータの書き込み、読み出し動作において、近年動作周波数の高速化によりクロックとデータのタイミングマージンが厳しくなってきている。そのためタイミングマージンを確保するための調整機能やその精度向上の必要性が高まってきている。
【０００３】
特開２００７−１２１６６号公報には、データとクロックとを入力される半導体装置のタイミング調整に関する技術が開示されている。この半導体装置は、図１に示されるように、ディレイヤ５２０と、ディレイ調整部５６０とを備える。ディレイヤ５２０は、データまたはクロックに可変な遅延を与える。ディレイ調整部５６０は、ディレイヤ５２０の遅延量を制御する。ＤＤＲメモリ５０１は、同相でリードデータＤＱと、リードデータ並走クロックＤＱＳを半導体装置５００に送出する。リードデータＤＱは、入力バッファ５１０を介してディレイヤ５２０に入力される。ディレイヤ５２０によってディレイ調整部５６０が指示する量のディレイを受けた信号は、ラッチ回路５３０、５３１に入力される。ラッチ回路５３１には正相のリードデータ並走クロックが供給され、ラッチ回路５３０にはインバータ回路５４０によって反転された逆相のリードデータ並走クロックが供給されている。ＤＤＲデータ取り出し部５５０は、ラッチ回路５３０、５３１から出力される２信号をＳＤＲに変換してリードデータを出力する。
【０００４】
ディレイヤ５２０は、直列に接続される１５段のディレイ素子の各段の出力とディレイヤ５２０の入力とのうちのいずれかをセレクタで選択して出力する。したがって、ディレイヤ５２０は、ディレイ素子０〜１５段分の遅延量を与えることができる。ディレイ調整部５６０は、そのセレクタをコントロールする。ディレイ調整部５６０の設定値は、正しくメモリをアクセスできるようにトレーニングにより決定される。図１に示されるように、ディレイヤ５２０は、リードデータに遅延を与えるため、リードデータ幅が多ビットの場合には１ビット毎または１バイト毎のきめ細かい調整が可能である。
【０００５】
図２は、そのタイミングを調整する回路の動作を示すタイミング図である。リードデータ並走クロックＤＱＳ（図２（ａ））の立ち上がりから立ち下がりまでの半周期間、および、立ち下がりから立ち上がりまでの半周期間に対応して、それぞれ１組のリードデータＤＱ（図２（ｂ））がＤＤＲメモリ５０１から出力される。半導体装置５００は、リードデータ並走クロックＤＱＳに同期してリードデータＤＱを読み込む。そのため、図２（ｃ）に示されるように、ディレイヤ５２０によってリードデータＤＱを概ね４分の１周期遅延させたリードデータＤＤＱを取り込む。ディレイヤ５２０の遅延量は、データの有効期間の中央付近で取り込むように調整される。
【０００６】
このようなメモリインタフェースにおいて、周囲温度や動作電圧等の環境変化により、メモリインタフェース回路の遅延量は変動する。変動が大きい場合にはリードエラーを起こす可能性がある。リードエラーが発生すると、データ信号・クロック信号間のスキューの再調整が必要となる。特許文献１では、データ信号・クロック信号間のスキューの再調整は、定期的なトレーニング手法というシステムがメモリアクセスの動作を停止して行う特別なモードで行う技術が示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１２１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１の技術では、データ信号・クロック信号間のスキューの再調整は可能であるが、遅延値変動やスキュー悪化を判定する手段がメモリインタフェース部にないため、定期的にスキュー調整のキャリブレーションを行う必要がある。しかし、キャリブレーション実行中はメモリに対して通常のメモリアクセスが行えないため、メモリを使用するシステムは、その間一時的に停止させる必要がある。例えば、システムが画像や音声を出力しているときにキャリブレーションが実行されると、画面の切り替わりや音声出力の応答が遅れることになる。スキュー調整には、１Ｇビット／秒の転送速度のＤＤＲメモリでは数十ミリ秒を必要とする。このようにキャリブレーションの実行時間は長時間を必要とし、定期的に実行するとシステムのパフォーマンスが低下するという問題がある。本発明の目的は、スキュー調整が必要な時期にのみ、外部でのスキュー調整を要求する信号を、自発的に出力する機能を備えるメモリインタフェース回路、メモリインタフェース回路を備える半導体装置およびメモリインタフェース方法を提供する。
【課題を解決するための手段】
【０００９】
以下に、［発明を実施するための形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明の観点では、メモリインタフェース回路（２２、２３）は、第１遅延回路（１０１）と、第２遅延回路（１０２）と、第１遅延値設定回路（２１１）と、第２遅延値設定回路（１１２）と、検査回路（１８２）と、判定回路（１７０）とを具備する。第１遅延回路（１０１）は、メモリ回路（１０）から入力する第１の信号（ＤＱ）に遅延を与えて出力する。第２遅延回路（１０２）は、メモリ回路（１０）から入力する第２の信号（ＤＱＳ）に遅延を与えて出力する。検査回路（１８２）は、第１及び第２遅延回路（１０１、１０２）の遅延量を調整し、第１遅延回路（１０１）の遅延量を設定された値に固定し、第２遅延回路（１０２）の遅延量を設定された値から所定の量増減し、判定回路１７０は、第１及び第２の信号に基づいて取り出すデータに関するリードエラーの発生を検知して制御回路（２１）にスキューの再調整を要求する。
【００１１】
本発明の他の観点では、メモリインタフェース方法は、第１遅延信号（ＤＤＱ）を出力するステップと、第２遅延信号（ＤＤＱＳ）を出力するステップと、調整するステップと、増減するステップと、検知するステップと、スキューの再調整を要求するステップとを具備する。第１遅延信号（ＤＤＱ）を出力するステップでは、メモリ回路（１０）から入力する第１の信号（ＤＱ）に遅延が与えられて出力される。第２遅延信号（ＤＤＱＳ）を出力するステップでは、メモリ回路（１０）から入力する第２の信号（ＤＱＳ）に遅延が与えられて出力される。調整するステップでは、第１の信号（ＤＱ）に与える遅延量と、第２の信号（ＤＱＳ）に与える遅延量とが調整される。増減するステップでは、第１の信号（ＤＱ）に与える遅延量は調整するステップにおいて設定された値に固定され、第２の信号（ＤＱＳ）に与える遅延量は調整するステップにおいて設定された値から所定の量増減される。検知するステップでは、第１及び第２の信号に基づいて取り出すデータに関するリードエラーの発生が検知される。スキューの再調整を要求するステップでは、リードエラーの発生を検知したとき、制御回路（２１）にスキューの再調整が要求される。
【発明の効果】
【００１２】
本発明によれば、任意の時期にスキュー調整を要求する信号を出力するメモリインタフェース回路、そのメモリインタフェース回路を備える半導体装置およびメモリインタフェース方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】従来のスキュー調整付メモリインタフェース回路の構成を示すブロック図である。
【図２】従来のスキュー調整付メモリインタフェース回路のタイミングを示す図である。
【図３】本発明の第１の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図４】本発明の第１の実施の形態に係るＤＱＳ遅延値設定回路の構成を示すブロック図である。
【図５】本発明の第１の実施の形態に係る各検査状態におけるデータ信号ＤＤＱとクロック信号ＤＤＱＳとのタイミング関係を示す図である。
【図６】本発明の第１の実施の形態に係る半導体装置の動作を示すフローチャートである。
【図７】本発明の第１の実施の形態に係る各制御信号のタイミングを示す図である。
【図８】本発明の第２の実施の形態に係る検査回路の構成を示すブロック図である。
【図９】本発明の第３の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図１０】本発明の第４の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図１１】本発明の第５の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図１２】本発明の第５の実施の形態に係るＤＱ遅延値設定回路の構成を示すブロック図である。
【図１３】本発明の第５の実施の形態に係る各検査状態におけるデータ信号ＤＤＱとクロック信号ＤＤＱＳとのタイミング関係を示す図である。
【図１４】本発明の第５の実施の形態に係る半導体装置の動作を示すフローチャートである。
【図１５】本発明に係わる情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１４】
（第１の実施の形態）
図３に、第１の実施の形態に係る情報処理装置の構成を示すブロック図が示される。第１の実施の形態に係る情報処理装置は、ＣＰＵ等を含む制御回路２１とメモリインタフェース回路２２とを備える半導体装置２０と、メモリ回路１０とを具備する。メモリ回路１０は、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）メモリ等の高速にデータの入出力を行うメモリである。図３では、メモリインタフェース回路２２は、スキュー調整に関わる部分を示し、制御回路との間でデータの入出力を行う部分に関しては、当業者によく知られているため、省略する。
【００１５】
半導体装置２０は、遅延回路１０２、ＤＤＲデータ取出し部１５０、遅延値設定回路１１２、判定回路１７０、検査回路１８２を備える。遅延回路１０２は、処理する信号線数に応じた回路数を有する。ＤＤＲデータ取出し部１５０は、ＤＤＲデータをＳＤＲデータとして取り出し、判定回路１７０にデータ信号ＳＤを出力する。遅延値設定回路１１２は、加減算機能を有し、保持する遅延値に対して所定の値を加減算して遅延回路１０２の遅延量を制御する。
【００１６】
検査回路１８２は、制御回路２１の指示に基づいて、メモリインタフェース回路２２の再調整判定の動作を制御する。判定回路１７０は、スキューの再調整が必要であるか否かを判定し、再調整が必要であるか否かを示す信号ＲＲＱを制御回路２１に出力する。
【００１７】
メモリ回路１０のデータはｎビット単位で入出力され、ｎ本のデータ信号ＤＱ〔ｎ−１：０〕が半導体装置２０に接続されている。メモリ回路１０から出力されるデータ信号ＤＱ〔ｎ−１：０〕は、ｎ回路を備えてｎ回路の遅延部を有する遅延回路１０１に入力される。メモリ回路１０から出力されるクロック信号ＤＱＳは、遅延回路１０２に入力される。遅延回路１０２で遅延を与えられたクロック信号ＤＱＳは、ＤＤＲデータ取り出し部１５０でクロック信号ＤＱＳの正転および反転でデータを取り込む。
【００１８】
遅延回路１０２によって信号に与えられる遅延量は、加減算機能付きのＤＱＳ遅延値設定回路１１２により制御される。
【００１９】
遅延回路１０２の出力は、パラレルにＤＤＲデータ取り出し部１５０に供給される。ＤＤＲデータ取り出し部１５０は、パラレルに入力されたデータをＳＤＲ（Ｓｉｎｇｌｅ  Ｄａｔａ  Ｒａｔｅ）のデータに変換し、判定回路１７０に供給する。
【００２０】
判定回路１７０は、再度スキュー調整が必要であるか否かを判定し、再調整要求信号ＲＲＱを制御回路に出力する。検査回路１８２は、メモリインタフェース回路２２のスキュー調整判定動作を制御する。すなわち、検査回路１８２は、制御回路２１からモード切替信号ＴＥＮを入力し、スキュー調整判定動作を開始するように、ＤＱＳ遅延値設定回路１１２に通知する。
【００２１】
図４に、加減算機能付きＤＱＳ遅延値設定回路１１２の構成を示すブロック図が示される。ＤＱＳ遅延値設定回路１１２は、遅延値設定レジスタ１４１と、遅延値減算回路１４２と、遅延値加算回路１４３と、セレクタ１４４とを備える。遅延値設定レジスタ１４１の出力は、遅延値減算回路１４２、遅延値加算回路１４３、セレクタ１４４に供給される。遅延値減算回路１４２は、遅延値設定レジスタ１４１から供給される遅延値に対して所定の量を減算した遅延値をセレクタ１４４に出力する。遅延値加算回路１４３は、遅延値設定レジスタ１４１から供給される遅延値に対して所定の量を加算した遅延値をセレクタ１４４に出力する。セレクタ１４４は、遅延値設定レジスタ１４１の出力、遅延値減算回路１４２の出力、遅延値加算回路１４３の出力のうちのいずれかを検査回路１８２の指示に基づいて選択し、遅延回路１０２に出力する。通常のメモリアクセス時には、遅延値設定レジスタ１４１の出力が選択される。スキュー状態を検査するときは、遅延値減算回路１４２の出力または遅延値加算回路１４３の出力が選択される。
【００２２】
図５は、スキューを検査するときのデータ信号ＤＤＱ及びクロック信号ＤＤＱＳのタイミングチャートを示す。
【００２３】
スキューが調整された直後では、図５（ａ）、（ｂ）に示されるように、クロック信号ＤＤＱＳの変化点は、データ信号ＤＤＱの変化点間のほぼ中央に位置する。すなわち、データ信号ＤＤＱが安定している期間をクロック信号ＤＤＱＳの変化点が示すように、それぞれの遅延時間が調整される。
【００２４】
これに対して検査状態Ａでは、図５（ｃ）、（ｄ）に示されるように、遅延値減算回路１４２によって、初期化、キャリブレーションの結果で設定された遅延値から値ｔ１を減算された値がセレクタ１４４によって選択される。初期化、キャリブレーションは、公知の一般的な方法で行うため、特に説明はしないが、ここでは、図４に示されるように、初期化後の遅延値が遅延値設定レジスタ１４１に遅延調整値ＤＬＶとして入力されて初期値となる。すなわち、ＤＱＳ遅延値設定回路１１２から出力されるクロック信号ＤＤＱＳ（図５（ｄ））は、図５（ｂ）に示されるクロック信号ＤＤＱＳに比べて時間ｔ１だけ早く出力されるようになる。したがって、検査状態Ａでは、データ信号ＤＤＱのセットアップ時間ｔ２は、理想状態に比べて厳しい状態となる。検査状態Ｂでは、図５（ｅ）、（ｆ）に示されるように、遅延値加算回路１４３によって、初期化、キャリブレーションの結果で設定された遅延値に値ｔ１を加算した値がセレクタ１４４によって選択される。すなわち、ＤＱＳ遅延値設定回路１１２から出力されるクロック信号ＤＤＱＳ（図５（ｆ））は、図５（ｂ）に示されるクロック信号ＤＤＱＳに比べて時間ｔ１だけ遅く出力されるようになる。したがって、検査状態Ｂでは、データ信号ＤＤＱのホールド時間ｔ３は、理想状態に比べて厳しい状態となる。
【００２５】
検査状態Ａまたは検査状態Ｂにおいて、リードエラーが検出されると、クロック信号ＤＤＱＳの変化点がデータ信号ＤＤＱの変化点間のほぼ中央を示すタイミングから許容範囲±ｔ１を超えてずれていることが分かる。リードエラーが検出されなければ、クロック信号ＤＤＱＳの変化点はデータ信号ＤＤＱの変化点間のほぼ中央を示すタイミングから許容範囲±ｔ１内にあることが分かる。すなわち、判定回路１７０は、検査状態Ａまたは検査状態Ｂにおいてリードエラーが検出されると、スキューの再調整が必要であると判定し、再調整要求信号ＲＲＱを立てる。検査回路１８２は、スキュー検査が終了すると、制御回路２１にスキューの再調整を促す再調整要求信号ＲＲＱを出力する。
【００２６】
図６は、メモリインタフェース回路２２の動作を示すフローチャートである。
【００２７】
半導体装置２０に電源が投入されると、メモリ回路１０の初期化が行われる（ステップＳ１１０）。続いて、スキューを調整するキャリブレーションが行われる（ステップＳ１２０）。初期化、キャリブレーションは、よく知られる方法で行われる。キャリブレーションの結果、データ信号ＤＱに対する遅延値、クロック信号ＤＱＳに対する遅延値が設定される。キャリブレーションが終了すると、以降、制御回路２１は、メモリ回路１０に対して通常のメモリアクセスを行う（ステップＳ１３０）。
【００２８】
制御回路２１は、アイドル期間等のメモリアクセスを一時的に行わない期間を判断し、メモリインタフェース回路２２にスキュー検査を行うように指示するモード切替信号ＴＥＮをオン状態にする。モード切替信号ＴＥＮがオンになると、メモリインタフェース回路２２は、判定ステータス信号ＢＳＹをオン状態にする（ステップＳ１４０）。判定ステータス信号ＢＳＹは、メモリインタフェース回路２２がスキュー検査を実施していることを示し、判定ステータス信号ＢＳＹがオン状態の間はメモリ回路１０に通常のアクセスができないことを示す。
【００２９】
スキュー検査が開始されると、検査回路１８２は、図５（ｃ）、（ｄ）に示されるように、セットアップ時間の検査を行う（検査状態Ａ）。すなわち、検査回路１８２は、ＤＱＳ遅延値設定回路１１２に対して、セレクタ１４４が遅延値減算回路１４２の出力を選択して出力するように、信号ＳＥＬを出力する。したがって、遅延回路１０２は、クロック信号ＤＱＳに対する遅延時間を設定値に比べて時間ｔ１短くしたクロック信号ＤＤＱＳを出力する（ステップＳ１４２）。
【００３０】
メモリ回路１０に対してテスト用データが書き込まれ読み出される（ステップＳ１４４）。判定回路１７０は、データリード時にエラーが起きるか否かを監視する（ステップＳ１４６）。エラーが起きると（ステップＳ１４６−否）、判定回路１７０は、再調整要求信号ＲＲＱをオン状態にする（ステップＳ１６０）。
【００３１】
エラーなく正常にデータが読み出せた場合（ステップＳ１４６−良）、検査回路１８２は、図５（ｅ）、（ｆ）に示されるように、ホールド時間の検査を行う（検査状態Ｂ）。すなわち、検査回路１８２は、ＤＱＳ遅延値設定回路１１２に対して、セレクタ１４４が遅延値加算回路１４３の出力を選択して出力するように、信号ＳＥＬを出力する。したがって、遅延回路１０２は、クロック信号ＤＱＳに対する遅延時間を設定値に比べて時間ｔ１長くしたクロック信号ＤＤＱＳを出力する（ステップＳ１５２）。
【００３２】
メモリ回路１０から既に書き込まれているテスト用データが読み出される（ステップＳ１５４）。判定回路１７０は、データリード時にエラーが起きるか否かを監視する（ステップＳ１５６）。エラーが起きると（ステップＳ１５６−否）、判定回路１７０は、再調整要求信号ＲＲＱをオン状態にする（ステップＳ１６０）。
【００３３】
セットアップ時間検査、ホールド時間検査が終了すると、検査回路１８２は、判定ステータス信号ＢＳＹをオフする（ステップＳ１７０）。このとき、再調整要求信号ＲＲＱがオフであれば（ステップＳ１７２−ＮＯ）、スキューに問題がないので、制御回路２１は通常のメモリアクセスを開始する（ステップＳ１３０）。再調整要求信号ＲＲＱがオンになっていると（ステップＳ１７２−ＹＥＳ）、判定回路１７０は、再調整要求信号ＲＲＱをアクティブにして制御回路２１に出力する（ステップＳ１８０）。制御回路２１は、再調整要求信号ＲＲＱがアクティブであることを検出すると、スキュー調整キャリブレーションを実施して、スキューを調整する（ステップＳ１２０）。スキューの調整が終了すると、通常のメモリアクセスを行い（ステップＳ１３０）、以降繰り返す。
【００３４】
ここでは、セットアップ時間検査、ホールド時間検査の順に実施しているが、逆順でもよい。また、セットアップ時間検査でエラーが起きても、ホールド時間検査を実施してもよい。また、ステップＳ１５４において、メモリ回路１０からテスト用データを読み出しているが、ステップＳ１４４と同様に、書き込み／読み出しを行ってもよい。テスト用データとしては、各ビットのデータが時系列的に１／０（オン／オフ）を交互に繰り返すようなデータが好ましい。また、テスト用データは、図示されない書き込み制御回路に保持してメモリ回路１０に供給してもよいし、制御回路２１から図示されない経路を経てメモリ回路１０に供給されてもよい。
【００３５】
図７に、スキュー検査中（上記ステップＳ１４０〜ステップＳ１８０）の各制御信号のタイミングチャートを示す。制御回路２１がメモリ回路１０に対して通常のアクセスを行い（ステップＳ１３０）、スキュー検査を行うことが可能な時刻ｔ４において、制御回路２１はモード切替信号ＴＥＮをハイレベル（オン状態）にする。モード切替信号ＴＥＮ（ハイレベル）に応答して、検査回路１８２は、スキュー検査を開始し、時刻ｔ５において、判定ステータス信号ＢＳＹをハイレベル（オン状態）にする（ステップＳ１４０）。判定ステータス信号ＢＳＹをハイレベルにすることにより、メモリインタフェース回路２２は、スキュー検査中でメモリ回路１０に対する通常のアクセスができないことを制御回路２１に示す。
【００３６】
時刻ｔ６において、スキュー検査の終了により検査回路１８２は、判定ステータス信号ＢＳＹをロウレベル（オフ状態）にする（ステップＳ１７０）。判定ステータス信号ＢＳＹによってスキュー検査の終了を検知した制御回路２１は、時刻ｔ７において、モード切替信号ＴＥＮをロウレベル（オフ状態）にする。再調整要求信号ＲＲＱが立っていない場合は、その後通常のメモリアクセスに戻り、半導体装置２０は通常の動作を行う。このように、スキューに問題がない場合、スキュー検査は、時刻ｔ４〜ｔ７の動作を繰り返す。
【００３７】
スキューの再調整が必要な場合は、次のように動作する。制御回路２１がメモリ回路１０に対して通常のアクセスを行い（ステップＳ１３０）、スキュー検査を行うことが可能な時刻ｔ８において、制御回路２１はモード切替信号ＴＥＮをハイレベル（オン状態）にする。モード切替信号ＴＥＮ（ハイレベル）に応答して、検査回路１８２は、スキュー検査を開始し、時刻ｔ９において、判定ステータス信号ＢＳＹをハイレベル（オン状態）にする（ステップＳ１４０）。
【００３８】
時刻ｔ１０において、スキュー検査の終了により検査回路１８２は、判定ステータス信号ＢＳＹをロウレベル（オフ状態）にする（ステップＳ１７０）。判定ステータス信号ＢＳＹがオフになったことによってスキュー検査の終了を検知した制御回路２１は、時刻ｔ１１においてモード切替信号ＴＥＮをロウレベル（オフ状態）にする。ステップＳ１６０において再調整要求信号ＲＲＱをオン状態にすると、時刻ｔ１２において、判定回路１７０は、再調整要求信号ＲＲＱをハイレベル（オン状態）にする。再調整要求信号ＲＲＱがハイレベルであると、電源投入直後と同じように、スキュー調整のキャリブレーションが実施される（ステップＳ１２０）。時刻ｔ１３において、スキュー調整キャリブレーションが終了すると、検査回路１８２に新たな遅延値が設定され、再調整要求信号ＲＲＱはロウレベルに戻る。
【００３９】
このように、本発明の実施の形態に係る半導体装置は、メモリインタフェース回路２２において、クロック信号ＤＱＳのスキューを遅延回路１０２によって調整する。メモリインタフェース回路２２は、遅延回路１０２に対して予め設定された値及びその値から加減算された値を供給してスキュー検査を行う。スキュー検査では、メモリ回路１０にテスト用データを書き込み／読み出しが行われ、判定回路１７０がエラーの有無によってスキューの再調整の要否を判定する。スキュー再調整の要否は、再調整要求信号ＲＲＱによって制御回路２１に通知される。スキュー検査は、スキュー調整のキャリブレーションを行う時間に対して１０００分の１以下の時間で実施可能である。したがって、メモリ回路１０にアクセスできなくなる時間が短いため、システムのパフォーマンスを低下させずに処理の合間にスキュー調整が必要であるか否かの判定を行うことができる。スキュー調整が必要な場合のみ長い時間がかかるスキュー調整のキャリブレーションを行えばよく、システムのパフォーマンスを低下させることが無い。
【００４０】
（第２の実施の形態）
図８に、第２の実施の形態に係る検査回路１８２の構成を示す。第１の実施例においては、モード切替信号ＴＥＮは、通常動作時において、アイドル期間等のメモリアクセスを一時的に行わない期間を判断し、メモリインタフェース回路２２にスキュー検査を自発的に行うように指示する検査許可信号であるが、本実施例では、所定の時間をカウントするカウンタ１３５と出力との論理積をとることで定期的な間隔でスキュー検査を実施することができ、より効率化を図れる。実施例２のスキュー検査制御回路１８１は、スキュー検査制御回路本体１８０と、一定時間をカウントするカウンタ回路１３５とＡＮＤ回路１３６とで構成される。制御回路２１からのモード切替信号ＴＥＮと、一定時刻をカウントするカウンタ１３５の出力とをＡＮＤ回路１３６に入力し、前記ＡＮＤ回路１３６の出力をスキュー検査制御回路本体１８０に入力している。他は、同じであるので、詳細な説明は省略する。本機能の構成は１例を示したにすぎず、別回路で構成することも可能であり、また、本機能を制御回路に持たせても問題はない。
【００４１】
（第３の実施の形態）
図９に、第３の実施の形態に係る情報処理装置の構成が示される。第３の実施の形態に係る情報処理装置は、ＣＰＵ等を含む制御回路２１とメモリインタフェース回路２２とを備える半導体装置２０と、メモリ回路１０とを具備する。第３の実施の形態に係る情報処理装置は、第１の実施の形態に係る情報処理装置とほぼ同じように構成される。第１の実施の形態に係るメモリインタフェース回路２２の検査回路１８２に遅延調整回路１６０を備えたことが異なる。初期化、キャリブレーションの結果、データ信号ＤＱに対する遅延値、クロック信号ＤＱＳに対する遅延値が調整値算出回路１６０に設定される。また、調整値算出回路１６０は、リード結果からスキューを調整するためのビット毎の遅延の調整値を算出し、遅延調整値ＤＬＶとしてＤＱＳ遅延値設定回路１１２へ出力する。他は、同じであるので、詳細な説明は省略する。
【００４２】
（第４の実施の形態）
図１０に、第４の実施の形態に係る情報処理装置の構成が示される。第４の実施の形態に係る情報処理装置は、ＣＰＵ等を含む制御回路２１とメモリインタフェース回路２２とを備える半導体装置２０と、メモリ回路１０とを具備する。第４の実施の形態に係る情報処理装置は、第１の実施の形態に係る情報処理装置とほぼ同じように構成される。第１の実施の形態に係るメモリインタフェース回路２２の検査回路１８２内のスキュー検査制御回路本体１８０に判定ステータス信号ＢＳＹを備えたことが異なる。制御回路２１からモード切替信号ＴＥＮを入力し、スキュー調整判定動作を開始するように、ＤＱＳ遅延値設定回路１１２に通知して判定ステータス信号ＢＳＹをオン状態にする。動作が終了すると、スキュー検査制御回路本体１８０は、判定ステータス信号ＢＳＹをオフ状態にし、判定結果を示す再調整要求信号ＲＲＱを制御回路２１に出力する。
【００４３】
（第５の実施の形態）
図１１に、第５の実施の形態に係る情報処理装置の構成が示される。第５の実施の形態に係る情報処理装置は、ＣＰＵ等を含む制御回路２１とメモリインタフェース回路２３とを備える半導体装置２０と、メモリ回路１０とを具備する。第２の実施の形態に係る情報処理装置は、第１の実施の形態に係る情報処理装置とほぼ同じように構成される。第１の実施の形態に係るメモリインタフェース回路２２は、ＤＱＳ遅延回路１０２、ＤＱＳ遅延値設定回路１１２を備えるが、メモリインタフェース回路２３は、ＤＱ遅延回路１０１、ＤＱ遅延値設定回路２１１を備えることが異なる。他は、同じであるので、詳細な説明は省略する。
【００４４】
ＤＱ遅延値設定回路２１１は、加減算機能を有し、保持する遅延値に対して所定の値を加減算して遅延回路１０１の遅延量をデータ信号線毎に独立して制御する。
【００４５】
図１２に示されるように、ＤＱ遅延値設定回路２１１は、遅延値設定レジスタ２４１と、遅延値減算回路２４２、３４２と、遅延値加算回路２４３、３４３と、セレクタ２４４、３４４とを備える。遅延値設定レジスタ２４１は、調整値算出回路１６０から供給される各ビット別に求められたスキュー調整の遅延値を保持する。遅延値設定レジスタ２４１は、データ信号ＤＱの各ビット（信号線）に対応する複数のレジスタを含む。ここでは、データ信号ＤＱは、ｎビットで構成されるため、遅延値設定レジスタ２４１は、ｎ個のレジスタを含む。
【００４６】
遅延値減算回路２４２、３４２は、遅延値設定レジスタ２４１に設定された遅延値から所定の値を減算してセレクタ２４４、３４４に出力する。遅延値減算回路２４２は、データ信号ＤＱの半数のビットに接続される複数の減算回路を含み、遅延値減算回路３４２は、データ信号ＤＱの残りの半数のビットに接続される複数の減算回路を含む。ここでは、遅延値減算回路２４２、３４２は、それぞれｎ／２個の減算回路を含む。
【００４７】
遅延値加算回路２４３、３４３は、遅延値設定レジスタ２４１に設定された遅延値に所定の値を加算してセレクタ２４４、３４４に出力する。遅延値加算回路２４３は、データ信号ＤＱの半数のビットに対応する複数の加算回路を含み、遅延値加算回路３４３は、データ信号ＤＱの残りの半数のビットに対応する複数の加算回路を含む。ここでは、遅延値加算回路２４３、３４３は、それぞれｎ／２個の加算回路を含む。
【００４８】
遅延値設定レジスタ２４１のデータ信号ＤＱの半数のビットに対応するレジスタの出力はセレクタ２４４の１入力に接続され、遅延値減算回路２４２の出力はセレクタ２４４の２入力に接続され、遅延値加算回路２４３の出力はセレクタ２４４の３入力に接続される。遅延値設定レジスタ２４１のデータ信号ＤＱの残りの半数のビットに対応するレジスタの出力はセレクタ３４４の１入力に接続され、遅延値減算回路３４２の出力はセレクタ３４４の３入力に接続され、遅延値加算回路３４３の出力はセレクタ３４４の２入力に接続される。
【００４９】
セレクタ２４４、３４４は、検査回路１８２から出力される選択信号ＳＥＬに基づいて、通常動作時には、１入力に供給される値を選択して出力し、スキュー検査時は、２入力または３入力に供給される値を選択して出力する。セレクタ２４４、３４４の出力は、遅延回路１０１に供給される。
【００５０】
すなわち、データ信号ＤＱのビット毎に遅延値設定レジスタ２４１と、遅延値減算回路２４２または３４２と、遅延値加算回路２４３または３４３と、セレクタ２４４または３４４とを備え、ビット毎に遅延値が独立して制御される。ビット毎に分けると、第１の実施の形態において説明された図４に示されるＤＱＳ遅延値設定回路１１２と同じ構成である。スキュー検査時には、データ信号ＤＱの半数のビットの遅延値が減算され、残りの半数のビットの遅延値は加算されるように、セレクタ２４４、３４４が制御される。
【００５１】
図１３は、第５の実施の形態における、スキュー検査時のデータ信号ＤＤＱ及びクロック信号ＤＤＱＳのタイミングチャートである。ここでは、データ信号ＤＱは、８ビット構成であり、各ビットを明示してデータ信号ＤＱ〔７：０〕と表記する。データ信号ＤＱ〔３：０〕に対して与える遅延は、ＤＱ遅延値設定回路２１１において、遅延値減算回路２４２、遅延値加算回路２４３が接続されるセレクタ２４４から出力される値に設定される。データ信号ＤＱ〔７：４〕に対して与える遅延は、ＤＱ遅延値設定回路２１１において、遅延値減算回路３４２、遅延値加算回路３４３が接続されるセレクタ３４４から出力される値に設定される。
【００５２】
図１３（ａ）、（ｂ）に示されるように、スキュー調整が実施された直後の理想的なタイミングでは、遅延回路１０１の出力であるデータ信号ＤＤＱ〔７：０〕の変化点は、遅延回路１０２の出力であるクロック信号ＤＤＱＳの変化点間の概ね中間に位置する。すなわち、データ信号ＤＤＱが安定している期間をクロック信号ＤＤＱＳの変化点が示すように、それぞれの遅延時間が調整される。調整値算出回路１６０の出力は、このときの遅延値を保持して、ＤＱ遅延値設定回路２１１、ＤＱＳ遅延値設定回路２１２に供給する。
【００５３】
これに対して検査状態Ｃでは、検査回路１８２は、セレクタ２４４、３４４に対して２入力の値を出力するように、信号ＳＥＬをＤＱ遅延値設定回路２１１に出力する。したがって、遅延値減算回路２４２によって調整値算出回路１６０が設定する遅延値から値ｔ１を減算された値がセレクタ２４４によって選択され、データ信号ＤＤＱ〔３：０〕は、図１３（ｃ）に示されるように、クロック信号ＤＤＱＳ（図１３（ｅ））に対して時間ｔ１だけ早く出力される。また、遅延値加算回路３４３に調整値算出回路１６０が設定する遅延値に値ｔ１を加算した値がセレクタ３４４によって選択され、データ信号ＤＤＱ〔７：４〕は、図１３（ｄ）に示されるように、クロック信号ＤＤＱＳ（図１３（ｅ））に対して時間ｔ１だけ遅く出力される。すなわち、検査状態Ｃでは、データ信号ＤＤＱ〔３：０〕のホールド時間ｔ３は理想状態に比べて厳しい状態となり、データ信号ＤＤＱ〔７：４〕のセットアップ時間ｔ２は理想状態に比べて厳しい状態となる。
【００５４】
検査状態Ｄでは、検査回路１８２は、セレクタ２４４、３４４に対して３入力の値を出力するように、信号ＳＥＬをＤＱ遅延値設定回路２１１に出力する。したがって、遅延値加算回路２４３によって調整値算出回路１６０が設定する遅延値に値ｔ１を加算した値がセレクタ２４４によって選択され、データ信号ＤＤＱ〔３：０〕は、図１３（ｆ）に示されるように、クロック信号ＤＤＱＳ（図１３（ｈ））に対して時間ｔ１だけ遅く出力される。また、遅延値減算回路３４２に調整値算出回路１６０が設定する遅延値から値ｔ１を減算した値がセレクタ３４４によって選択され、データ信号ＤＤＱ〔７：４〕は、図１３（ｇ）に示されるように、クロック信号ＤＤＱＳ（図１３（ｈ））に対して時間ｔ１だけ早く出力される。すなわち、検査状態Ｄでは、データ信号ＤＤＱ〔３：０〕のセットアップ時間ｔ２は理想状態に比べて厳しい状態となり、データ信号ＤＤＱ〔７：４〕のホールド時間ｔ３は理想状態に比べて厳しい状態となる。
【００５５】
検査状態Ｃまたは検査状態Ｄにおいて、リードエラーが検出されると、クロック信号ＤＤＱＳの変化点がデータ信号ＤＤＱの変化点間のほぼ中央を示すタイミングから許容範囲±ｔ１を超えてずれていることが分かる。リードエラーが検出されなければ、クロック信号ＤＤＱＳの変化点はデータ信号ＤＤＱの変化点間のほぼ中央を示すタイミングから許容範囲±ｔ１内にあることが分かる。すなわち、判定回路１７０は、検査状態Ａまたは検査状態Ｂにおいてリードエラーが検出されると、スキューの再調整が必要であると判定し、スキュー検査が終了すると、制御回路２１にスキューの再調整を促す再調整要求信号ＲＲＱを出力する。
【００５６】
図１４は、第５の実施の形態に係るメモリインタフェース回路２３の動作を示すフローチャートである。図６に示される第１の実施の形態に係るメモリインタフェース回路２２の動作と同じ部分は、同じ符号を付している。
【００５７】
半導体装置２０に電源が投入されると、メモリ回路１０の初期化が行われる（ステップＳ１１０）。続いて、スキューを調整するキャリブレーションが行われる（ステップＳ１２０）。初期化、キャリブレーションは、よく知られる方法で行われる。キャリブレーションの結果、データ信号ＤＱに対する遅延値、クロック信号ＤＱＳに対する遅延値が検査回路１８２内の調整値算出回路１６０に設定される。キャリブレーションが終了すると、以降、制御回路２１は、メモリ回路１０に対して通常のメモリアクセスを行う（ステップＳ１３０）。
【００５８】
制御回路２１は、アイドル期間等のメモリアクセスを一時的に行わない期間を判断し、メモリインタフェース回路２３にスキュー検査を行うように指示するモード切替信号ＴＥＮをオン状態にする。モード切替信号ＴＥＮがオンになると、メモリインタフェース回路２３は、判定ステータス信号ＢＳＹをオン状態にする（ステップＳ１４０）。判定ステータス信号ＢＳＹは、メモリインタフェース回路２３がスキュー検査を実施していることを示し、判定ステータス信号ＢＳＹがオン状態の間はメモリ回路１０に通常のアクセスができないことを示す。
【００５９】
スキュー検査が開始されると、検査回路１８２は、図１３（ｃ）、（ｄ）、（ｅ）に示されるように、セットアップ時間、ホールド時間の検査を行う（検査状態Ｃ）。検査回路１８２は、セレクタ２４４、３４４が２入力に供給される値を選択して出力するように、信号ＳＥＬを出力する。すなわち、セレクタ２４４は、遅延値減算回路２４２の出力を選択して遅延回路１０１に出力し、セレクタ３４４は、遅延値加算回路３４３の出力を選択して遅延回路１０１に出力する。したがって、遅延回路１０１は、データ信号ＤＤＱ〔３：０〕の遅延時間を設定値に比べて時間ｔ１短く、データ信号ＤＤＱ〔７：４〕の遅延時間を設定値に比べて時間ｔ１長くして出力する（ステップＳ２４２）。
【００６０】
メモリ回路１０に対してテスト用データが書き込まれ読み出される（ステップＳ１４４）。判定回路１７０は、データリード時にエラーが起きるか否かを監視する（ステップＳ１４６）。エラーが起きると（ステップＳ１４６−否）、判定回路１７０は、再調整要求信号ＲＲＱをオン状態にする（ステップＳ１６０）。
【００６１】
エラーなく正常にデータが読み出せた場合（ステップＳ１４６−良）、検査回路１８２は、図１３（ｆ）、（ｇ）、（ｈ）に示されるように、セットアップ時間、ホールド時間の検査を行う（検査状態Ｄ）。ＤＱ遅延値設定回路２１１に対して、セレクタ２４４、３４４が３入力に供給される値を選択して出力するように、信号ＳＥＬを出力する。すなわち、セレクタ３４４は、遅延値加算回路２４３の出力を選択して遅延回路１０１に出力し、セレクタ３４４は、遅延値減算回路３４２の出力を選択して遅延回路１０１に出力する。したがって、遅延回路１０１は、データ信号ＤＤＱ〔３：０〕の遅延時間を設定値に比べて時間ｔ１長く、データ信号ＤＤＱ〔７：４〕の遅延時間を設定値に比べて時間ｔ１短くして出力する（ステップＳ２５２）。
【００６２】
メモリ回路１０から既に書き込まれているテスト用データが読み出される（ステップＳ１５４）。判定回路１７０は、データリード時にエラーが起きるか否かを監視する（ステップＳ１５６）。エラーが起きると（ステップＳ１５６−否）、判定回路１７０は、再調整要求信号ＲＲＱをオン状態にする（ステップＳ１６０）。
【００６３】
セットアップ時間検査、ホールド時間検査が終了すると、検査回路１８２は、判定ステータス信号ＢＳＹをオフする（ステップＳ１７０）。このとき、再調整要求信号ＲＲＱがオフであれば（ステップＳ１７２−ＮＯ）、スキューに問題がないので、制御回路２１は通常のメモリアクセスを開始する（ステップＳ１３０）。再調整要求信号ＲＲＱがオンになっていると（ステップＳ１７２−ＹＥＳ）、検査回路１８２は、再調整要求信号ＲＲＱをアクティブにして制御回路２１に出力する（ステップＳ１８０）。制御回路２１は、再調整要求信号ＲＲＱがアクティブであることを検出すると、スキュー調整キャリブレーションを実施して、スキューを調整する（ステップＳ１２０）。スキューの調整が終了すると、通常のメモリアクセスを行い（ステップＳ１３０）、以降繰り返す。
【００６４】
ここでは、データ信号ＤＤＱ〔３：０〕、データ信号〔７：４〕に分けてセットアップ時間検査、ホールド時間検査を実施しているが、どのように分けてもよいし、セットアップ時間検査を実施する信号とホールド時間検査を実施する信号とを１本ずつにしてもよい。また、ステップＳ１５４において、メモリ回路１０からテスト用データを読み出しているが、ステップＳ１４４と同様に、書き込み／読み出しを行ってもよい。テスト用データとしては、各ビットのデータが時系列的に１／０（オン／オフ）を交互に繰り返すようなデータが好ましい。また、テスト用データは、図示されない書き込み制御回路に保持してメモリ回路１０に供給してもよいし、制御回路２１から図示されない経路を経てメモリ回路１０に供給されてもよい。
【００６５】
このように、セットアップ時間検査と、ホールド時間検査とを同時に実行することによって、セットアップ不足またはホールド不足であることが１度の検査で測定でき、検査状態Ｃで検査するだけで再調整が必要か否かを検出できる可能性が高くなる。これは、データ信号ＤＱ〔７：０〕の各信号線を遅延させる遅延回路１０１が同じ構成であることから、あるビットはセットアップタイムが不足し、あるビットはホールドタイムが不足するというビット毎に異なる結果となることが起き難く、全ビットがセットアップタイム不足かホールドタイム不足になる可能性が高いからである。したがって、スキューの再調整が必要な場合は、ステップＳ１４４の書き込み読み出し動作によってほとんど検出することができる。すなわち、ステップＳ１４６−Ｓ２５２−Ｓ１５４−Ｓ１５６の各ステップを実施することが少なくなり、検出時間の短縮になる。第１の実施の形態では、テストデータの書き込みが１回、読み出しが２回必要であったが、第５の実施の形態ではテストデータの書き込みが１回、読み出しが１回で済むようになり、検査時間が３分の２になる。
【００６６】
このように、本発明によれば、システムのアイドル時間等を利用してスキュー検査を実行することが可能となり、スキュー検査の結果再調整が必要な場合だけキャリブレーションを行えばよい。したがって、定期的なキャリブレーション動作が不要になる。また、必要なときだけキャリブレーションを行うため、実質的にキャリブレーションの実施回数が少なくなる。そのため、メモリ回路および半導体装置の消費電力を削減することができる。また、従来はキャリブレーションを行う条件を検出するために、外部の温度センサー等を設けて周辺環境の変化を感知するなど大掛かりな仕掛けが必要になることがあったが、本発明では簡単な回路の追加のみで実現でき、システム全体のコストを削減することができる。
【００６７】
次に、本発明を適用した一般的なメモリインタフェース回路を含んだシステムを図１５に示す本システム構成図で説明する。メモリ回路１０のデータはｎビット単位で入出力され、ｎ本のデータ信号ＤＱ〔ｎ−１：０〕が半導体装置２０に接続されている。メモリ回路１０から出力されるデータ信号ＤＱ〔ｎ−１：０〕は、ｎ回路を備える入力バッファ回路１３１を介してｎ回路の遅延部を有する遅延回路１０１に入力される。遅延回路１０１で遅延を与えられたデータ信号ＤＤＱ〔ｎ−１：０〕は、ｎ回路を備えるラッチ回路１２１及び１２２に入力される。メモリ回路１０から出力されるクロック信号ＤＱＳは、入力バッファ回路１３２を介して遅延回路１０２に入力される。遅延回路１０２で遅延を与えられたクロック信号ＤＤＱＳは、ＤＤＲデータ取り出し部１５０でクロック信号ＤＤＱＳの正転および反転でデータを取り込む。ラッチ回路１２１の正転クロック入力、ラッチ回路１２２の反転クロック入力に供給される。したがって、メモリ回路１０から出力されたデータは、クロック信号ＤＤＱＳの立ち上がりでラッチ回路１２１に取り込まれ、クロック信号ＤＤＱＳの立ち下がりでラッチ回路１２２に取り込まれる。遅延回路１０２によって信号に与えられる遅延量は、加減算機能付きのＤＱＳ遅延値設定回路１１２により制御される。遅延回路１０２の出力は、ＤＱＳの立ち上がりでラッチ回路１０３に取り込まれ、ＤＱＳの立ち下がりでラッチ回路１０４に取り込まれる。ラッチ回路１２１、１２２の出力は、パラレルにＤＤＲデータ取り出し部１５０に供給される。ＤＤＲデータ取り出し部１５０は、パラレルに入力されたデータをＳＤＲ（Ｓｉｎｇｌｅ  Ｄａｔａ  Ｒａｔｅ）のデータに変換し、調整値算出回路１６０および判定回路１７０に供給する。調整値算出回路１６０は、ＤＱ遅延値設定回路２１１と加減算機能付きのＤＱＳ遅延値設定回路１１２とに遅延調整値を供給する。上述した構成により、本提案の実施例が適用される。
【００６８】
以上、実施の形態を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではなく、矛盾のない限り組み合わせても実施可能である。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００６９】
１０  メモリ回路（ＤＤＲメモリ）
２０  半導体装置
２１  制御回路
２２、２３  メモリインタフェース回路
１０１、１０２  遅延回路
２１１  ＤＱ遅延値設定回路
１１２  遅延値設定回路
１２１、１２２  ラッチ回路
１３１、１３２  入力バッファ回路
１３５  カウンタ回路
１３６  ＡＮＤ回路
１４１、２４１  遅延値設定レジスタ
１４２、２４２、３４２  遅延値減算回路
１４３、２４３、３４３  遅延値加算回路
１４４、２４４、３４４  セレクタ
１５０  ＤＤＲデータ取出し部
１６０  調整値算出回路
１７０  判定回路
１８０  スキュー検査制御回路本体
１８１  スキュー検査制御回路
１８２  検査回路
５００  半導体装置
５０１  ＤＤＲメモリ
５１０  入力バッファ
５２０  ディレイヤ
５３０、５３１  ラッチ回路
５４０  インバータ回路
５５０  ＤＤＲデータ取り出し部
５６０  ディレイ調整部
【図１】
2011150759.tif 000003
【図２】
2011150759.tif 000004
【図３】
2011150759.tif 000005
【図４】
2011150759.tif 000006
【図５】
2011150759.tif 000007
【図６】
2011150759.tif 000008
【図７】
2011150759.tif 000009
【図８】
2011150759.tif 000010
【図９】
2011150759.tif 000011
【図１０】
2011150759.tif 000012
【図１１】
2011150759.tif 000013
【図１２】
2011150759.tif 000014
【図１３】
2011150759.tif 000015
【図１４】
2011150759.tif 000016
【図１５】
2011150759.tif 000017