(57)【要約】【課題】  キャリブレーションを定期的に行うシステムにおいて、キャリブレーション毎に、キャリブレーション開始時の遅延量を基準に所定の範囲で増減し、増減した各遅延量でのデータのラッチ、チェックパターンとの比較といった動作確認が必要であり、キャリブレーションに多くの時間を要している。【解決手段】  キャリブレーション履歴から、遅延量が増加傾向にあれば遅延量を増加しての動作確認を、遅延量が減少傾向にあれば遅延量を減少しての動作確認を省略することで、キャリブレーションに要する時間を短縮することが可能になる。【選択図】  図１
2012044329.tif 000002
【特許請求の範囲】
【請求項１】
基準遅延量の増減傾向を示す履歴を格納する格納手段と、
前記履歴に基づいて遅延量を設定する制御手段と、
前記制御手段の設定した遅延量の其々に基づいて、入力データを遅延させる遅延手段と、
ラッチ信号を用いて前記遅延手段が遅延させた入力データをラッチするラッチ手段と、
前記ラッチ手段がラッチした各ラッチデータと所定のパターンとを比較し、基準遅延量を決定する決定手段と
を有することを特徴とするキャリブレーション装置。
【請求項２】
基準遅延量の増減傾向を示す履歴を格納する格納手段と、
前記履歴に基づいて遅延量を設定する制御手段と、
前記制御手段の設定した遅延量の其々に基づいて、ラッチ信号を遅延させる遅延手段と、
前記遅延手段が遅延させたラッチ信号を用いて入力データをラッチするラッチ手段と、
前記ラッチ手段がラッチした各ラッチデータと所定のパターンとを比較し、基準遅延量を決定する決定手段と
を有することを特徴とするキャリブレーション装置。
【請求項３】
前記遅延手段は、直列に接続された複数の遅延素子と前記制御手段の設定する遅延量に基づいて前記複数の遅延素子のうちの１つの出力を選択する選択手段とを備えることを特徴とする請求項１又は２に記載のキャリブレーション装置。
【請求項４】
前記遅延手段は、前記ラッチ信号の遅延を調節するＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）を備えることを特徴とする請求項２に記載のキャリブレーション装置。
【請求項５】
前記ラッチ手段は、Ｎ（Ｎは１以上の整数）ビットのデータを、Ｍ（Ｍは１以上の整数）回ラッチし、Ｎ×Ｍビットのラッチデータとして記憶装置へ出力することを特徴とする請求項１乃至４のいずれか１項に記載のキャリブレーション装置。
【請求項６】
前記制御手段は、前記格納手段の履歴が遅延量の増加を示している場合、前記制御手段は前回のキャリブレーション時に決定した基準遅延量から増加させた遅延量が前記所定のパターンと一致するものとして設定を省略し、前記基準遅延量から減少させた遅延量を設定し、一方で、前記格納手段の履歴が遅延量の減少を示している場合、前記制御手段は前記基準遅延量から減少させた遅延量が前記所定のパターンと一致するものとして設定を省略し、前記基準遅延量から増加させた遅延量を設定することを特徴とする請求項１乃至５のいずれか１項に記載のキャリブレーション装置。
【請求項７】
前記制御手段は、前記格納手段の履歴が遅延量の増加を示している場合、前記制御手段は前回のキャリブレーション時に決定した基準遅延量から減少させた遅延量が前記所定のパターンと一致しないものとして設定を省略し、前記基準遅延量から増加させた遅延量を選択し、一方で、前記格納手段の履歴が遅延量の減少を示している場合、前記基準遅延量から増加させた遅延量が前記所定のパターンと一致しないものとして設定を省略し、前記基準遅延量から減少させた遅延量を出力することを特徴とする請求項１乃至５のいずれか１項に記載のキャリブレーション装置。
【請求項８】
前記制御手段は、前記所定のパターンと一致する遅延量の中心値を基準遅延量として設定することを特徴とする請求項１乃至７のいずれか１項に記載のキャリブレーション装置。
【請求項９】
基準遅延量の増減傾向を示す履歴を格納する格納手段を備えるキャリブレーション装置におけるキャリブレーション方法であって、
前記履歴情報に基づいて遅延量を設定する制御工程と、
前記制御工程で設定された遅延量の其々に基づいて、入力データ又はラッチ信号を遅延させる遅延工程と、
前記遅延工程で遅延させた入力データ又はラッチ信号を用いて入力データをラッチするラッチ工程と、
前記ラッチ工程によりラッチされた各ラッチデータと所定のパターンとを比較し、基準遅延量を決定する決定工程と
を有することを特徴とするキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）やメモリなどの半導体回路から入力される又は出力されるデータをラッチする際のラッチタイミングを調整するキャリブレーション装置、キャリブレーション方法およびプログラムに関する。
【背景技術】
【０００２】
一般に、半導体回路から入力される又は出力されるデータの遅延は周囲温度や電源電圧などの動作条件に起因して経時的に変化する。クロック周波数が低い場合、遅延の経時変化に対してラッチタイミングに余裕があるため、動作条件が多少変わっても正しくデータをラッチする（取り込む）ことが可能である。しかし、データの受信に用いるクロック周波数の向上により、遅延の経時変化を吸収できるだけのラッチタイミングの余裕がなくなり、遅延の経時変化を考慮せずに正しくデータをラッチすることは困難になってきている。
【０００３】
図６に従来のキャリブレーション装置６００の構成を示す。タイミング調整回路６０１は、入力データとラッチ信号間で生じるズレを遅延量制御回路６０３から入力される遅延量に基づいて調整する。データラッチ回路６０２は、タイミング調整回路６０１が出力するデータを、同じくタイミング調整回路６０１が出力するラッチ信号でラッチする。遅延量制御回路６０３は、キャリブレーションが開始すると、開始時点で選択されている遅延量を基準に所定の範囲で遅延量を増減してタイミング調整回路６０１へ通知する。（ここで、開始時点で選択されている遅延量は、前回のキャリブレーションで決定した遅延量である。）タイミング調整回路６０１へ通知する各遅延量において、キャリブレーション用に予め決められているパターンを入力データとして要求し、データラッチ回路が６０２ラッチしたデータを正しくラッチできたかを確認するためのチェックパターンと比較する。
【０００４】
所定の範囲内の各遅延量での比較が完了すると、比較結果を基に適切な遅延量を選択しタイミング調整回路６０１へ通知して、キャリブレーションを完了する。キャリブレーション完了から次キャリブレーション開始までの間、タイミング調整回路６０１は遅延量制御回路６０３が選択した適切な遅延量でデータとクロック間のズレを調整する。これにより、周辺温度や電源電圧の状況に応じたデータのラッチタイミングの動的な調整を行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１８５６０８
【特許文献２】特登録０３８９１９７９
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した装置では遅延量を所定の範囲で増減し、増減した各遅延量において予め定められているパターンのデータを入力しラッチデータを作成して、チェックパターンとの比較を繰り返す必要がある。“キャリブレーション開始時の遅延量”をＡとし、遅延量を増減する範囲を−２〜＋２とした場合は“Ａ−２，Ａ−１，Ａ＋１，Ａ＋２”の夫々において一連の処理が必要となるので時間がかかる。
【０００７】
そこで、本発明の目的は、上記課題を解決し、キャリブレーションに要する時間を短縮するためのキャリブレーション装置、キャリブレーション方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明に係るキャリブレーション装置は、基準遅延量の増減傾向を示す履歴を格納する格納手段と、前記履歴に基づいて複数の遅延量の一部を選択する制御手段と、前記制御手段の選択した遅延量の其々に基づいて、入力データを遅延させる遅延手段と、ラッチ信号を用いて前記遅延手段が遅延させた入力データをラッチするラッチ手段と、前記ラッチ手段がラッチした各ラッチデータと所定のパターンとを比較し、基準遅延量を決定する決定手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、キャリブレーションにおける遅延量変化の傾向から、遅延量の範囲を決定し、取り込んだデータとチェックパターンとの比較を行う回数を減らせるので、キャリブレーションに要する時間を短縮することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】キャリブレーション装置の概略構成を示すブロック図である。
【図２】他の調整回路を有するキャリブレーション装置の概略構成を示すブロック図である。
【図３】他の調整回路を有するキャリブレーション装置の概略構成を示すブロック図である。
【図４】本発明の第１の実施形態におけるキャリブレーションのフローチャートである。
【図５】本発明の第２の実施形態におけるキャリブレーションのフローチャートである。
【図６】従来のキャリブレーション装置の概略構成を示す図であるである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態を図面により詳細に説明する。
【００１２】
［実施形態１］
図１〜３は、本発明の第１の実施形態におけるキャリブレーション装置４００である。図１、図２、図３はタイミング調整回路１０１の構成が夫々異なっている。キャリブレーション装置１００は、タイミング調整回路１０１、データラッチ回路１０２、遅延量制御回路１０３、履歴格納バッファ１０６を有している。
【００１３】
タイミング調整回路１０１は、データとデータをラッチする（取り込む）ためのラッチ信号（ＣＬＫ）間のズレを調整するものであり、入力データ１０７とラッチするためのＣＬＫ１０８間の遅延を遅延量制御回路１０３が出力する遅延量信号１１４が示す遅延量に基づいて調整する。なお実際には、データとラッチ信号間のズレとは、入力データに対してラッチ信号の示すデータ取り込みタイミングが早い場合（遅い場合）である。（ここで、ラッチ信号は周期的な信号であるので、入力データに対してタイミングが早い場合と遅い場合とはほぼ同義である。）そして、データ又はラッチ信号を適切に遅延させることで入力データとラッチ信号間で生じるズレを解消させることができる。
【００１４】
図１に示すタイミング調整回路１０１は、直列接続の複数の遅延素子を備え、入力データ１０７が遅延量選択回路１０４からの遅延量信号１１４に対応する個数の遅延素子を通過するように制御することで、入力データ１０７を遅延させて遅延量を調整している。詳細には、タイミング調整回路１０１のマルチプレクサが遅延量信号に応じた個数の遅延素子の出力を選択している。しかし、図２に示す構成のようにＤＬＬ（Ｄｅｌａｙ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）のような位相調節回路でラッチ信号となるＣＬＫ１０８を遅延量選択回路１０４からの遅延量信号１１４に対応する期間だけ調節させてもよい。または、図３に示す構成のように直列接続の複数の遅延素子を備え、ＣＬＫ１０８を遅延量選択回路１０４からの遅延量信号１１４の示す個数の遅延素子に通過するようにして遅延させてもよい。
【００１５】
データラッチ回路１０２はタイミング調整回路１０１が出力する遅延データ１０９と遅延ラッチ信号１１０を受け、受け取った遅延ラッチ信号１１０により遅延データ１０９をラッチし、ラッチデータ１１１を出力する。データラッチ回路はＮ（Ｎは１以上の整数）ビットのデータを、Ｍ（Ｍは１以上の整数）回ラッチした後、Ｎ×Ｍビットのラッチデータとしてデータを転送する記憶装置（メモリなど）へ出力する。
【００１６】
遅延量制御回路１０３は遅延量選択回路１０４と比較器１０５を有する。比較器１０５はデータラッチ回路１０２が出力するラッチデータ１１１とレジスタ１１２の保持するチェックパターン（以下、レジスタ１１２の保持するチェックパターンをチェックパターン１１２と略記する。）を比較する。チェックパターン１１２はキャリブレーション時の入力データ１０７に対する期待値であり、比較器１０５は一致を判定し、データラッチ回路１０２が正しくデータをラッチできているかを示す比較結果１１３を遅延量選択回路１０４へ出力する。
【００１７】
キャリブレーション開始信号１１７は、データとクロック間にズレが生じても、遅延量信号１１４が示す遅延量でデータラッチ回路１０２が正しくデータをラッチできることを保証する間隔で周期的にアサートされる。遅延量選択回路１０４は、キャリブレーション開始信号１１７のアサートによりキャリブレーション開始がすると、履歴格納バッファ１０６の履歴情報１１６を用いて遅延量を増減する範囲を決定する。なお、増減させる基準となる遅延量（基準遅延量）は前回のキャリブレーションによって決定された遅延量である（但し装置が初期状態である場合を除く）。基準となる遅延量は遅延量選択回路の有する不図示のレジスタに保持され、キャリブレーションを完了し実際にデータを取り込む場合にはタイミング調整回路１０１のマルチプレクサにレジスタの値を遅延量信号１１４として遅延量制御回路１０３が出力し続ける。
【００１８】
そして、基準遅延量を決定された範囲で増減し、複数の遅延量を遅延量信号１１４として順に出力する。例えば、装置を起動したばかりの初期状態で履歴格納バッファに保持している履歴情報１１６が無い場合は、“キャリブレーション開始時の遅延量”をＡとし、遅延量を増減する範囲を−２〜＋２とした場合は、遅延量選択回路１０４は“Ａ−２，Ａ−１，Ａ＋１，Ａ＋２”の夫々を１回ずつ出力する。（なお、以降は“Ａ＋１”を単に＋１と表記する。なお、“Ａ＋０”を出力しないのは、前回の遅延量で正しくデータをラッチできることが保証される間隔でキャリブレーション開始信号１１７がアサートされているためである。）
なお、本実施形態では遅延量を増減させる範囲−２〜＋２としているが、増減させる範囲はこれに限定されない。キャリブレーション開始時の遅延量の増加方向と減少方向とで変動させる個数が異なっていてもよい。
【００１９】
遅延量を遅延量信号１１４へ出力後、入力データ要求信号１１９をアサートして、キャリブレーション用に予め決められているパターンである入力データ１０７を要求する。その後、比較器１０５から比較結果１１３が通知されるまで待ち、これらの処理を、遅延量を増減する範囲の全ての遅延量について実施する。
【００２０】
比較器１０５から各遅延量に対する比較結果１１３が通知されると、全比較結果と履歴情報１１６から適切な遅延量を選択し、遅延量信号１１４へ出力する。この時、キャリブレーション開始時に選択されている遅延量（前回のキャリブレーションで決定した基準遅延量）と比べて、選択した適切な遅延量が増加したか、減少したか、変化していないかを示す遅延量増減情報１１５と、選択した適切な遅延量（新しく決定した基準遅延量）とを履歴格納バッファ１０６へ格納する。遅延量増減情報１１５は、“１０”で（キャリブレーション開始時に選択されていた遅延量）＞（選択された適切な遅延量）を示す。一方、“００”で（キャリブレーション開始時に選択されていた遅延量）＝（選択された適切な遅延量）、また、“０１”で（キャリブレーション開始時に選択されていた遅延量）＜（選択された適切な遅延量を表す）。なお、遅延量増減情報１１５も履歴の一部とする。
【００２１】
履歴格納バッファ１０６は受信した順番で遅延量増減情報１１５を保持し、保持している全遅延量増減情報を履歴情報１１６として出力する。履歴格納バッファ１０６は自身が保持可能な数以上の遅延量増減情報を受信した場合、格納している最も古い遅延量増減情報を削除し、受信した遅延量増減情報を新たに保持する。本実施形態において、履歴格納バッファ１０６が保持できる遅延量増減情報の数は２としている。履歴情報１１６としては最新の２回のキャリブレーションにおける遅延量増減情報、つまりは、前回キャリブレーションと前々回キャリブレーション時の遅延量増減情報を出力する。履歴格納バッファ１０６は１つ以上の遅延量増減情報を保持できれば、所定の効果を見込むことができる。
【００２２】
続いて、図１に示す遅延量選択回路１０４の動作について図４を用いて説明する。図４は遅延量選択回路１０４がキャリブレーション時に実行する処理のフローチャートである。
【００２３】
キャリブレーション開始信号１１７がアサートされると、遅延量選択回路１０４はキャリブレーションの処理を開始する。ステップＳ２０１では、遅延量選択回路１０４が履歴格納バッファ１０６より出力される履歴情報１１６を確認する。
【００２４】
ステップＳ２０２では、履歴情報１１６の前回と前々回キャリブレーションの遅延量増減情報がともに増加“０１”を示しているかを判定する。前回と前々回とも増加“０１”を示している場合はステップＳ２０３へ、それ以外はステップＳ２０４へ進む。本実施形態では履歴格納バッファ１０６が保持できる遅延量増減情報の数は２であるが、Ｌの場合はステップＳ２０２では履歴情報１１６のＬ個の遅延量増減情報が全て“０１”を示しているかを判定する。
【００２５】
ステップＳ２０３では、遅延量は増加傾向にあることから、遅延量“＋１，＋２”においてデータのラッチは成功すると予測し、遅延量の増減範囲を“−２、−１”に制限する。
【００２６】
ステップＳ２０４では、履歴情報１１６の前回と前々回キャリブレーションの遅延量増減情報がともに減少“１０”を示しているかを判定する。前回と前々回とも減少“１０”を示している場合はステップＳ２０５へ、それ以外はステップＳ２０６へ進む。ステップＳ２０２と同様に、履歴格納バッファ１０６がＬ個の遅延量増減情報を保持できる場合は、履歴情報１１６のＬ個の遅延量増減情報が全て“１０”を示しているかを判定する。
【００２７】
ステップＳ２０５では、遅延量が減少傾向にあることから、遅延量“−２，−１”においてデータのラッチは成功すると予測し、遅延量の増減範囲を“＋１，＋２”に制限する。
【００２８】
ステップＳ２０６では、遅延量の変化に傾向がなく遅延量の増減範囲を制限できないため、遅延量の増減範囲は基準遅延量をＡとして“Ａ−２、Ａ−１、Ａ＋１、Ａ＋２”の全てとなる。
【００２９】
ステップＳ２０７では、遅延量の増減範囲から１つの遅延量を選択し、遅延量信号１１４としてタイミング調整回路１０１へ出力する。これにより、タイミング調整回路１０１は入力データ１０７とラッチ信号であるＣＬＫ１０８間の遅延量を調整する。
【００３０】
ステップＳ２０８では、入力データ要求信号１１９をアサートし、キャリブレーション用に予め決められているパターンを入力データ１０７として要求する。要求されたパターンはタイミング調整回路１０１を通過してデータラッチ回路１０２にラッチされ、ラッチデータ１１１として比較器１０５へ入力される。比較器１０５はラッチデータ１１１とチェックパターン１１２とチェックパターン１１２を比較し、比較結果１１３を遅延量選択回路１０４へ通知する。
【００３１】
ステップＳ２０９にて遅延量選択回路１０４が比較結果１１３を受信するとステップＳ２１０へ進む。ステップＳ２１０では、遅延量選択回路１０４は遅延量の増減範囲にある全ての遅延量で比較結果を受信したかを判定する。全てを受信していた場合はステップＳ２１１へ、それ以外はステップＳ２０７へ進む。
【００３２】
ステップＳ２１１では、比較結果と履歴情報１１６から適切な遅延量を選択する。本実施形態では比較結果は“Ａ−２、Ａ−１、Ａ＋０、Ａ＋１、Ａ＋２”のそれぞれについて保持している。ここで、ステップＳ２０３、Ｓ２０５、Ｓ２０６にて遅延量の増減範囲から外れた遅延量については実際には比較を行わなかったが、比較結果は“成功”として保持される。つまり、ステップＳ２０３を通過した場合は“０、＋１、＋２”、ステップＳ２０５を通過した場合は“０、−１、−２”、ステップＳ２０６を通過した場合は“０”の比較結果が“成功”として保存される。（ここでは、履歴情報１１６から直前のキャリブレーション時の遅延量の増減傾向を参照して、成功する見込みの高い比較を省略している。なお、本実施形態では基準遅延量で比較結果が成功するような間隔でキャリブレーションが実施されているのでＡ＋０は常に“成功”として保持されている。）
【００３３】
本実施形態では、遅延量選択回路１０４がステップＳ２１１で選択する遅延量は、“成功”の比較結果が連続している中心の遅延量とする。例えば、比較結果が、遅延量“−２”で“失敗”、遅延量“−１”で“失敗”、遅延量“０”で“成功”、遅延量“＋１”で“成功”、遅延量“＋２”で成功である場合、遅延量“０、＋１、＋２”で“成功”が連続しているので、この中心の  遅延量“（キャリブレーション開始時に選択されていた遅延量）＋１”を選択する。
【００３４】
一方、遅延量が“−２”で“成功”、“−１”で“成功”、“０”で“成功”、“＋１”で“失敗”、“＋２”で“失敗”であった場合は遅延量“（キャリブレーション開始時に選択されていた遅延量）−１”を選択する。成功が連続している個数が偶数の場合、中心に位置する２つの遅延量のうち、中心に位置する２つの遅延量のうち０に近いものを選択する。選択された適切な遅延量は遅延量信号１１４としてタイミング調整回路１０１に出力する。そして、タイミング調整回路１０１は遅延量信号１１４に基づいて入力データ１０７とラッチ信号であるＣＬＫ１０８間の遅延量を調整する。
【００３５】
ステップＳ２１２では、選択した適切な遅延量がキャリブレーション開始時に選択していた遅延量から増加した場合は“０１（増加）”、減少した場合は“１０（減少）”、変化しなかった場合は“００（変化なし）”を遅延量増減情報１１５として履歴格納バッファ１０６に出力する。そして、履歴格納バッファ１０６は遅延量増減情報１１５を保持する。ステップＳ２１３では、遅延量選択回路１０４はキャリブレーション完了信号をアサートし、キャリブレーションを完了する。
【００３６】
以上の動作により、キャリブレーション完了後のタイミング調整回路１０１には遅延量選択回路１０４によって適切な遅延量が設定されている。
【００３７】
以上のように、キャリブレーションによる遅延量増減情報を履歴として保持し、遅延量が増加傾向にあれば遅延量を増加しての動作確認を、遅延量が減少傾向にあれば遅延量を減少しての動作確認を次回キャリブレーション時に省略する。このように、複数の遅延量から遅延量の増減に基づいてその一部についてのみ比較処理をすることでキャリブレーションに要する時間を短縮することが可能になる。
【００３８】
［実施形態２］
実施形態２は、履歴格納バッファ１０６からの履歴情報１１６に基づいて、遅延量の増減傾向を判定するまでの処理は実施形態１と同じであるが、増加傾向に基づいて省略する遅延量の選択の仕方などが異なる。実施形態１では、遅延量の増減傾向に基づいて、成功しそうな遅延量についての比較を省略したが、実施形態２では遅延量の増減傾向に基づいて失敗しそうな遅延量についての比較を失敗するものとして省略する。
【００３９】
実施形態２における遅延量選択回路１０４の動作について図５を用いて説明する。図５は実施形態２における遅延量選択回路１０４のキャリブレーション処理を示すフローチャートである。図５のステップＳ３０１、Ｓ３０２、Ｓ３０４、Ｓ３０６〜Ｓ３１０、Ｓ３１２、Ｓ３１３の説明は、図４のステップＳ２０１、Ｓ２０２、Ｓ２０４、Ｓ２０６〜Ｓ２１０、Ｓ２１２、Ｓ２１３と同様であるため、説明を省略する。なお、実施形態２のキャリブレーション装置１００の構成は図１〜図３と同様である。
【００４０】
図５について、ステップＳ３０３では、遅延量が増加傾向にあることから、キャリブレーション開始時に選択されていた遅延量“−２、−１”においてデータのラッチは失敗すると予測し、キャリブレーション中の遅延量の増減範囲を“＋１、＋２”とする。
【００４１】
ステップＳ３０５では、遅延量が減少傾向にあることから、キャリブレーション開始時に選択されていた遅延量“＋１、＋２”においてデータのラッチは失敗すると予測し、遅延量の増減範囲を“−２、−１”に制限する。ステップＳ３１１では、比較結果と履歴情報１１６から適切な遅延量を選択する。
【００４２】
比較結果は“−２、−１、０、＋１、＋２”のそれぞれについて保持されており、ステップＳ３０３、Ｓ３０５、Ｓ３０６にて遅延量の増減範囲に入らなかった“０”以外の遅延量の比較結果は“失敗”、“０”の比較結果は成功として扱われる。つまり、ステップＳ３０３を通過した場合は遅延量“−２”で比較結果は“失敗”、（以下同様の表記で、）  “−１”で“失敗”、“０”で“成功”となる。一方、ステップＳ３０５を通過した場合は“０”で“成功”、“＋１”で“失敗”、“＋２”で“失敗”となり、ステップＳ３０６を通過した場合は“０”で“成功“となる。
【００４３】
本実施形態において、適切な遅延量は、比較結果のうち成功が連続している箇所の中心に位置する遅延量となる。例えば、比較結果が、“−２”で“失敗”、“−１”で“失敗”、“０”で“成功”、“＋１”で“成功”、“＋２”で“成功”である場合、“０、＋１、＋２”の遅延量にて成功が連続している。この中心は“＋１”であるため、適切な遅延量は“（キャリブレーション開始時に選択されていた遅延量）＋１”となる。
【００４４】
また、“−２”で“成功”、“−１”で“成功”、“０”で“成功”、“＋１”で“失敗”、“＋２”で“失敗”であった場合、適切な遅延量は“（キャリブレーション開始時に選択されていた遅延量）−１”となる。比較結果の“成功”が連続している個数が偶数の場合、中心に位置する２つの遅延量のうち０に近いものが適切な遅延量とする。選択された適切な遅延量は遅延量信号１１４としてタイミング調整回路１０１に出力する。そして、タイミング調整回路１０１は遅延量信号１１４に基づいて入力データ１０７とラッチ信号であるＣＬＫ１０８間の遅延量を調整する。
【００４５】
以上のように、キャリブレーションによる遅延量増減情報を履歴として保持し、遅延量が増加傾向にあれば遅延量を減少しての動作確認を、遅延量が減少傾向にあれば遅延量を増加しての動作確認を次回キャリブレーション時に省略する。これにより、キャリブレーションに要する時間を短縮することが可能になる。
【００４６】
上述の実施形態では、比較結果の“成功”が連続している個数が偶数の場合、中心に位置する２つの遅延量のうち０に近いものが適切な遅延量としているが、２つの遅延量のうち「キャリブレーション開始時に選択されていた遅延量」に近い方を選択してもよい。
【００４７】
なお、入力データの記憶先が着脱式の記憶媒体であり、記憶媒体を装着してすぐにキャリブレーションを行う場合は、遅延が一番小さい場合が多いと考えられる（その後、記憶媒体の温度が上昇し遅延が増加するため）。従って、このような場合は、遅延量の増減が予測できるため、履歴格納バッファ１０６に遅延量増幅情報１１５が保持されていない場合は、遅延量が増加するとして遅延量選択回路１０４が減少方向の遅延量のキャリブレーションを実施しないように制御してもよい。
【００４８】
また、上述の実施形態では、キャリブレーション開始信号１１７が、データとクロック間にズレが生じても基準遅延量でラッチが成功するような間隔で周期的にアサートされているので、基準遅延量＋０の比較を省略している。しかし、キャリブレーション開始信号１１７が基準遅延量でラッチが成功することを保証されない場合には、“基準遅延量＋０”を示す遅延量情報１１４を遅延量選択回路１０４がタイミング調整回路１０１へ出力してもよい。基準遅延量でラッチが成功しそうにない様な場合としては、例えば、装置を初期化した場合や、起動直後の場合、キャリブレーションが不定期もしくはデータとクロック間のズレが大きい場合が考えられる。
【００４９】
また、上述の実施形態では、増減傾向を示す情報を履歴情報１１６として履歴格納バッファから読みだしているが、履歴格納バッファに過去のキャリブレーションで決定した基準遅延量を複数保持し、遅延量選択回路が過去の複数の基準遅延量から遅延量の増減傾向を判断するようにしてもよい。
【００５０】
また、上述の実施形態では、２つの遅延量増減情報（前回のキャリブレーションと前々回のキャリブレーション時の増減）を用いてタイミング調整回路１０１へ出力する遅延量を決定しているが、前回の１つだけでもよいし、３つ以上の遅延量増減情報を用いてもよい。また、上述の説明では遅延量の増減範囲を−２〜＋２としているがこれに限らない。
【００５１】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するプログラムを、ネットワーク又は各種記憶媒体を介して装置に供給し、その装置のＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）がプログラムを読み出して実行する。
【符号の説明】
【００５２】
１００  キャリブレーション装置
１０１  タイミング調整回路
１０２  データラッチ回路
１０３  遅延量制御回路
１０４  遅延量選択回路
１０５  比較器
１０６  履歴格納バッファ
１０７  入力データ
１０８  ＣＬＫ（ラッチ信号）
１０９  遅延データ
１１０  遅延ラッチ信号
１１１  ラッチデータ
１１２  チェックパターン
１１３  比較結果
１１４  遅延量信号
１１５  遅延量増減情報
１１６  履歴情報
１１７  キャリブレーション開始信号
１１８  キャリブレーション完了信号
１１９  入力データ要求信号
【図１】
2012044329.tif 000003
【図２】
2012044329.tif 000004
【図３】
2012044329.tif 000005
【図４】
2012044329.tif 000006
【図５】
2012044329.tif 000007
【図６】
2012044329.tif 000008