(57)【特許請求の範囲】
【請求項１】
複数の遅延回路と、前記複数の遅延回路のうちデータ信号を伝達する遅延回路の接続数を、複数の制御線を介して受ける複数の制御値に応じて切り替える複数の切替回路と、前記複数の制御線に設定する前記複数の制御値を保持する複数の制御レジスタと、前記複数の制御線のうち、２つの制御線に現れる論理値の排他的論理和をそれぞれ演算する複数の排他的論理和回路と、前記複数の排他的論理和回路から出力される論理値をそれぞれ保持する複数の診断レジスタと、前記複数の排他的論理和回路から出力される論理値の論理和を演算する論理和回路を含み、メモリコントローラに搭載され、前記メモリコントローラと前記メモリコントローラに接続される記憶装置との間で転送されるデータ信号の遅延量を前記複数の遅延回路の接続数に応じて変更する可変遅延制御回路の縮退故障診断方法において、
前記複数の制御レジスタに論理０を設定し、前記論理和回路から出力される論理値と期待値との比較に基づいて、前記複数の制御線のいずれかに発生した論理１の縮退故障を検出し、
前記複数の制御レジスタに論理１を設定し、前記論理和回路から出力される論理値と期待値との比較に基づいて、前記複数の制御線のいずれかに発生した論理０の縮退故障を検出することを特徴とする可変遅延制御回路の縮退故障診断方法。
【請求項２】
前記複数の制御線のいずれかに発生した論理１の縮退故障を検出した場合、前記複数の診断レジスタに保持された論理値を読み出し、
前記複数の診断レジスタに保持された論理値に基づいて、前記複数の制御線のうち、論理１の縮退故障が発生した制御線を特定し、
前記複数の制御線のいずれかに発生した論理０の縮退故障を検出した場合、前記複数の診断レジスタに保持された論理値を読み出し、
前記複数の診断レジスタに保持された論理値に基づいて、前記複数の制御線のうち、論理０の縮退故障が発生した制御線を特定することを特徴とする請求項１記載の可変遅延制御回路の縮退故障診断方法。
【請求項３】
前記論理和回路から出力される論理値と期待値との比較に基づいて、前記複数の制御線に縮退故障が発生していないことを検出した場合、データ信号を前記可変遅延制御回路に入力して前記複数の遅延回路を含むデータ経路に伝達させ、前記可変遅延制御回路から出力されるデータ信号が期待値と異なる場合、前記データ経路に発生した縮退故障を検出することを特徴とする請求項１または請求項２記載の可変遅延制御回路の縮退故障診断方法。
【請求項４】
縮退故障が特定された制御線に接続された切替回路が、前記複数の遅延回路のうち、前記メモリコントローラを搭載する半導体装置の動作仕様により使用されない遅延回路に対応して設けられる場合、データ信号を前記可変遅延制御回路に入力して前記使用されない遅延回路を除く遅延回路を含むデータ経路に伝達させ、前記可変遅延制御回路から出力されるデータ信号が期待値と異なる場合、前記データ経路に発生した縮退故障を検出することを特徴とする請求項１または請求項２記載の可変遅延制御回路の縮退故障診断方法。
【請求項５】
前記複数の制御線は、３以上の制御線を含む少なくとも１つの制御線群に分類され、
前記制御線群の各々において、２つの制御線は、前記複数の排他的論理和回路のいずれか１つの入力にそれぞれ接続され、前記２つの制御線を除く制御線の各々は、前記複数の排他的論理和回路のうち一対の排他的論理和回路の入力に共通に接続されることを特徴とする請求項１ないし請求項４のいずれか１項記載の可変遅延制御回路の縮退故障診断方法。
【請求項６】
データ信号が転送される記憶装置に接続され、可変遅延制御回路を有するメモリコントローラにおいて、
前記可変遅延制御回路は、
複数の遅延回路と、
前記複数の遅延回路のうちデータ信号を伝達する遅延回路の接続数を、複数の制御線を介して受ける複数の制御値に応じて切り替える複数の切替回路と、
前記複数の制御線に設定する前記複数の制御値を保持する複数の制御レジスタと、
前記複数の制御線のうち、２つの制御線に現れる論理値の排他的論理和をそれぞれ演算する複数の排他的論理和回路と、
前記複数の排他的論理和回路から出力される論理値をそれぞれ保持する複数の診断レジスタと、
前記複数の排他的論理和回路から出力される論理値の論理和を演算する論理和回路を含み、
前記可変遅延制御回路は、データ信号の遅延量を前記複数の遅延回路の接続数に応じて変更することを特徴とする可変遅延制御回路を有するメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラに関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）等の半導体装置では、内部信号のタイミングを可変遅延制御回路により調整することで、内部回路の動作タイミングが変更され、内部回路の動作マージンは改善される。この種の可変遅延制御回路に制御ゲート等を含む試験回路を追加し、試験信号を可変遅延制御回路の入力端子に与えたときに出力端子に現れる論理値を判定することで、可変遅延制御回路内の縮退故障の有無が診断可能になる（例えば、特許文献１、２参照）。ここで、縮退故障は、信号線のショートまたは断線等により、信号線が論理０または論理１に固定される故障である。
【０００３】
また、直列に接続された４つの可変遅延制御回路の初段に入力クロックを与え、各可変遅延制御回路から出力される４つの遅延クロックを用いて出力クロックの遷移エッジを生成するクロック発生回路が提案されている（例えば、特許文献３参照）。クロック発生回路は、可変遅延制御回路の遅延時間の調整により、最終段から出力される遅延クロックの位相を入力クロックの位相に揃えることで、入力クロックに対して２倍の周波数を有し、５０％のデューティ比を有する出力クロックを生成する。製造誤差等により発生する可変遅延制御回路間での遅延時間のずれは、複数の可変遅延制御回路を電気的に分離して共通のテスト信号を供給し、可変遅延制御回路のいずれか２つの出力を受ける排他的論理和回路の出力レベルをラッチに保持することで検出される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１１−１０１８５２号公報
【特許文献２】特開平５−２９１９０１号公報
【特許文献３】特開平８−８６９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
半導体装置のクロック周波数が高くなるのに伴い、半導体装置内で伝達される内部信号のタイミングマージンは減少する傾向にある。また、半導体装置に含まれるトランジスタ等の素子構造の微細化により、半導体装置の製造工程に起因して発生する縮退故障が増加する傾向にある。縮退故障は、試験パターンを半導体装置に供給し、半導体装置から出力される値を期待値と比較することで検出されるが、試験パターンが複雑になるほど試験時間は長くなり、半導体装置の製造コストは増加する。
【０００６】
１つの側面では、本件開示の可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラは、従来に比べて短い試験時間で、可変遅延制御回路で発生した縮退故障の有無を診断することを目的とする。
【課題を解決するための手段】
【０００７】
一つの観点によれば、複数の遅延回路と、複数の遅延回路のうちデータ信号を伝達する遅延回路の接続数を、複数の制御線を介して受ける複数の制御値に応じて切り替える複数の切替回路と、複数の制御線に設定する複数の制御値を保持する複数の制御レジスタと、複数の制御線のうち、２つの制御線に現れる論理値の排他的論理和をそれぞれ演算する複数の排他的論理和回路と、複数の排他的論理和回路から出力される論理値をそれぞれ保持する複数の診断レジスタと、複数の排他的論理和回路から出力される論理値の論理和を演算する論理和回路を含み、メモリコントローラに搭載され、メモリコントローラとメモリコントローラに接続される記憶装置との間で転送されるデータ信号の遅延量を複数の遅延回路の接続数に応じて変更する可変遅延制御回路の縮退故障診断方法は、複数の制御レジスタに論理０を設定し、論理和回路から出力される論理値と期待値との比較に基づいて、複数の制御線のいずれかに発生した論理１の縮退故障を検出し、複数の制御レジスタに論理１を設定し、論理和回路から出力される論理値と期待値との比較に基づいて、複数の制御線のいずれかに発生した論理０の縮退故障を検出する。
【０００８】
別の観点によれば、データ信号が転送される記憶装置に接続され、可変遅延制御回路を有するメモリコントローラにおいて、可変遅延制御回路は、複数の遅延回路と、複数の遅延回路のうちデータ信号を伝達する遅延回路の接続数を、複数の制御線を介して受ける複数の制御値に応じて切り替える複数の切替回路と、複数の制御線に設定する複数の制御値を保持する複数の制御レジスタと、複数の制御線のうち、２つの制御線に現れる論理値の排他的論理和をそれぞれ演算する複数の排他的論理和回路と、複数の排他的論理和回路から出力される論理値をそれぞれ保持する複数の診断レジスタと、複数の排他的論理和回路から出力される論理値の論理和を演算する論理和回路を含み、可変遅延制御回路は、データ信号の遅延量を複数の遅延回路の接続数に応じて変更する。
【発明の効果】
【０００９】
本件開示の可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラは、従来に比べて短い試験時間で、可変遅延制御回路で発生した縮退故障の有無を診断することができる。
【図面の簡単な説明】
【００１０】
【図１】可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラの一実施形態を示す図である。
【図２】図１に示すメモリコントローラを搭載する半導体装置を含む情報処理装置の一例を示す図である。
【図３】図２に示すＳＤＲＡＭのタイミング仕様の一例を示す図である。
【図４】図１に示す可変遅延制御回路の動作の一例を示す図である。
【図５】図１に示す可変遅延制御回路において、遅延部Ｕ０−Ｕ３を使用する場合の機能試験の一例を示す図である。
【図６】図１に示す可変遅延制御回路の動作試験の一例を示す図である。
【図７】図５に示す動作試験を実行する試験環境の一例を示す図である。
【図８】可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラの別の実施形態を示す図である。
【図９】図８に示す可変遅延制御回路の動作の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。信号が伝達される信号線および端子には、信号名と同じ符号を使用する。末尾に”＃”の付いている信号は、負論理を示す。
【００１２】
図１は、可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラの一実施形態を示す。図１に示すメモリコントローラＭＣＮＴは、可変遅延制御回路ＶＤＬＹ１を有する。なお、メモリコントローラＭＣＮＴに搭載される可変遅延制御回路ＶＤＬＹ１の数は、１つに限定されず、図２に示すように複数でもよい。
【００１３】
可変遅延制御回路ＶＤＬＹ１は、試験レジスタＴ０、Ｔ１、複数の遅延部Ｕ（Ｕ０、Ｕ１、Ｕ２、Ｕ３）、および複数の制御レジスタＣ（Ｃ０、Ｃ１、Ｃ２、Ｃ３）を有する。また、可変遅延制御回路ＶＤＬＹ１は、複数の排他的論理和回路ＥＯＲ（ＥＯＲ０、ＥＯＲ１、ＥＯＲ２）、複数の診断レジスタＲ（Ｒ０、Ｒ１、Ｒ２）および論理和回路ＯＲを有する。
【００１４】
例えば、試験レジスタＴ０−Ｔ１、制御レジスタＣ０−Ｃ３および診断レジスタＲ０−Ｒ２は、データ入力端子Ｄと、図示しないスキャン入力端子およびスキャンモード端子とを有するスキャンフリップフロップである。スキャンフリップフロップは、メモリコントローラＭＣＮＴを搭載する半導体装置ＳＥＭ（図２）がシステムとしての動作を実行する通常動作モード中に、データ入力端子Ｄで受ける論理値をクロックＲＣＫの立ち上がりエッジに同期してラッチする。そして、スキャンフリップフロップは、ラッチした論理値をデータ出力端子Ｑから出力する。また、スキャンフリップフロップは、半導体装置ＳＥＭのスキャン試験等の動作試験を実行する試験モード中に、スキャン入力端子で受ける論理値をクロックＲＣＫの立ち上がりエッジに同期してラッチし、ラッチした論理値をデータ出力端子Ｑから出力する。試験モード中、データ出力端子Ｑから出力される論理値は、スキャンパスＳＰ（図２）を介して隣接するスキャンフリップフロップのスキャン入力端子に転送される。通常動作モードまたは試験モードに対応するスキャンフリップフロップの動作は、スキャンモード端子に供給されるスキャンモード信号の論理値に応じて切り替えられる。
【００１５】
可変遅延制御回路ＶＤＬＹ１は、データ信号等の入力信号ＩＮを伝達する遅延部Ｕの接続数を、制御レジスタＣ０−Ｃ２に設定される論理値に基づいて変更することで、入力信号ＩＮに対する出力信号ＯＵＴの遅延量を変化させる。出力信号ＯＵＴは、入力信号ＩＮを可変遅延制御回路ＶＤＬＹ１により遅延させて生成されるデータ信号等である。試験レジスタＴ０、Ｔ１、排他的論理和回路ＥＯＲ０−ＥＯＲ２、診断レジスタＲ０−Ｒ２および論理和回路ＯＲは、可変遅延制御回路ＶＤＬＹ１の動作試験時（試験モード時）に使用される。
【００１６】
試験レジスタＴ０−Ｔ１、制御レジスタＣ０−Ｃ３および診断レジスタＲ０−Ｒ２は、レジスタ設定用のクロックＲＣＫに同期して動作する。例えば、クロックＲＣＫは、図２に示す半導体装置ＳＥＭに搭載される図示しないＰＬＬ（Phase Locked Loop）回路を用いて生成される。クロックＲＣＫの周波数は、半導体装置ＳＥＭに搭載されるＣＰＵ（Central Processing Unit；図２）で使用するクロックＣＬＫの周波数より低い。
【００１７】
遅延部Ｕが正常に機能するか否かを判定する機能試験を実行する場合、試験レジスタＴ０は、クロックＲＣＫに同期して入力信号ＩＮを生成し、試験レジスタＴ１は、入力信号ＩＮを遅延させた出力信号ＯＵＴの論理値をクロックＲＣＫに同期して保持する。そして、試験レジスタＴ１に保持された論理値と期待値との比較に基づいて、遅延部Ｕが正常に機能するか否かが判定される。機能試験の例は、図５に示される。
【００１８】
なお、図２に示す半導体装置ＳＥＭがシステムとしての動作を実行する通常動作モード中、試験レジスタＴ０の出力端子Ｑは、入力信号線ＩＮから切り離される。そして、図２に示すデータ信号ＤＱ等の入力信号ＩＮは、試験レジスタＴ０の出力とは別の経路を介して遅延部Ｕ０に供給される。また、出力信号ＯＵＴは、通常動作モード中に動作する図示しない回路に供給される。
【００１９】
遅延部Ｕ０は、インバータＩＶ００、ＩＶ０１およびセレクタＳＥＬ０を有し、遅延部Ｕ１は、インバータＩＶ１０、ＩＶ１１およびセレクタＳＥＬ１を有する。遅延部Ｕ２は、インバータＩＶ２０、ＩＶ２１およびセレクタＳＥＬ２を有し、遅延部Ｕ３は、インバータＩＶ３０、ＩＶ３１およびセレクタＳＥＬ３を有する。インバータＩＶ００、ＩＶ０１、インバータＩＶ１０、ＩＶ１１、インバータＩＶ２０、ＩＶ２１およびインバータＩＶ３０、ＩＶ３１のペアの各々は、遅延回路の一例である。セレクタＳＥＬ（ＳＥＬ０、ＳＥＬ１、ＳＥＬ２、ＳＥＬ３）は、制御レジスタＣから受ける複数の制御値に応じて、データ信号等の入力信号ＩＮを伝達する遅延回路の接続数を切り替える切替回路の一例である。なお、各セレクタＳＥＬは、各遅延部Ｕの外部に配置されてもよい。
【００２０】
インバータＩＶ００、ＩＶ１０、ＩＶ２０、ＩＶ３０は、直列に接続され、インバータＩＶ００、ＩＶ１０、ＩＶ２０、ＩＶ３０の各々の出力は、セレクタＳＥＬ（ＳＥＬ０、ＳＥＬ１、ＳＥＬ２、ＳＥＬ３）の一方の入力に接続される。セレクタＳＥＬ３、インバータＩＶ３１、セレクタＳＥＬ２、インバータＩＶ２１、セレクタＳＥＬ１、インバータＩＶ１１、セレクタＳＥＬ０およびインバータＩＶ０１は、直列に接続される。インバータＩＶ００は、入力信号ＩＮを受け、インバータＩＶ０１は、出力信号ＯＵＴを出力する。
【００２１】
セレクタＳＥＬ０は、制御レジスタＣ０から論理０が出力される期間、インバータＩＶ１１の出力を選択し、制御レジスタＣ０から論理１が出力される期間、インバータＩＶ００の出力を選択する。セレクタＳＥＬ１は、制御レジスタＣ１から論理０が出力される期間、インバータＩＶ２１の出力を選択し、制御レジスタＣ１から論理１が出力される期間、インバータＩＶ１０の出力を選択する。セレクタＳＥＬ２は、制御レジスタＣ２から論理０が出力される期間、インバータＩＶ３１の出力を選択し、制御レジスタＣ２から論理１が出力される期間、インバータＩＶ２０の出力を選択する。セレクタＳＥＬ３は、制御レジスタＣ３から論理０が出力される期間、論理０を選択し、制御レジスタＣ３から論理１が出力される期間、インバータＩＶ３０の出力を選択する。すなわち、セレクタＳＥＬ０−ＳＥＬ３は、ノードｎ０−ｎ３を介してそれぞれ受ける論理値に応じて、２つの入力端子のいずれかを出力端子に接続する。
【００２２】
そして、可変遅延制御回路ＶＤＬＹ１は、遅延部Ｕ０のみ、２つの遅延部Ｕ０−Ｕ１、３つの遅延部Ｕ０−Ｕ２、または４つの遅延部Ｕ０−Ｕ３を使用して、入力信号ＩＮを遅延させた信号を出力信号ＯＵＴとして出力する。すなわち、可変遅延制御回路ＶＤＬＹ１は、入力信号ＩＮを遅延部Ｕ０、Ｕ１、Ｕ２、Ｕ３のいずれかで折り返すことで、入力信号ＩＮに対する出力信号ＯＵＴの遅延量を調整する。なお、各遅延部Ｕは、一対のインバータＩＶの代わりに、容量素子Ｃと抵抗素子Ｒとを含むＣＲ時定数回路を有してもよい。
【００２３】
排他的論理和回路ＥＯＲ０−ＥＯＲ２、診断レジスタＲ０−Ｒ２および論理和回路ＯＲは、制御レジスタＣ０、Ｃ１、Ｃ２、Ｃ３の出力ノードｎ０、ｎ１、ｎ２、ｎ３の縮退故障を検出するために可変遅延制御回路ＶＤＬＹ１に搭載される。制御レジスタＣ（Ｃ０、Ｃ１、Ｃ２、Ｃ３）には、出力ノードｎ（ｎ０、ｎ１、ｎ２、ｎ３）に設定する制御値（論理値）がそれぞれ保持される。ここで、出力ノードｎ０、ｎ１、ｎ２、ｎ３は、制御レジスタＣ０、Ｃ１、Ｃ２、Ｃ３の出力に接続される信号線上の一点ではなく、信号配線の全体を示すものとする。制御レジスタＣ０、Ｃ１、Ｃ２、Ｃ３から出力され、出力ノードｎ０、ｎ１、ｎ２、ｎ３に現れる論理値は、セレクタＳＥＬ０、ＳＥＬ１、ＳＥＬ２、ＳＥＬ３の動作を制御する制御値の一例である。出力ノードｎ０、ｎ１、ｎ２、ｎ３は、制御レジスタＣ０、Ｃ１、Ｃ２、Ｃ３にそれぞれ保持された制御値をセレクタＳＥＬ０、ＳＥＬ１、ＳＥＬ２、ＳＥＬ３に伝達する制御線の一例であり、制御線群の一例である。以下の説明では、出力ノードｎ０、ｎ１、ｎ２、ｎ３は、単にノードｎ０、ｎ１、ｎ２、ｎ３とも称される。
【００２４】
ノードｎ０は、１つの排他的論理和回路ＥＯＲ０の入力に接続され、ノードｎ１は、一対の排他的論理和回路ＥＯＲ０、ＥＯＲ１の入力に共通に接続される。ノードｎ２は、一対の排他的論理和回路ＥＯＲ１、ＥＯＲ２の入力に共通に接続され、ノードｎ３は、１つの排他的論理和回路ＥＯＲ２の入力に接続される。そして、排他的論理和回路ＥＯＲ０は、ノードｎ０、ｎ１に現れる論理値の排他的論理和を演算し、演算結果を診断レジスタＲ０および論理和回路ＯＲに出力する。排他的論理和回路ＥＯＲ１は、ノードｎ１、ｎ２に現れる論理値の排他的論理和を演算し、演算結果を診断レジスタＲ１および論理和回路ＯＲに出力する。排他的論理和回路ＥＯＲ２は、ノードｎ２、ｎ３に現れる論理値の排他的論理和を演算し、演算結果を診断レジスタＲ２および論理和回路ＯＲに出力する。
【００２５】
診断レジスタＲ０は、排他的論理和回路ＥＯＲ０から出力される論理値を保持し、診断レジスタＲ１は、排他的論理和回路ＥＯＲ１から出力される論理値を保持し、診断レジスタＲ２は、排他的論理和回路ＥＯＲ２から出力される論理値を保持する。
【００２６】
ノードｎ０−ｎ３において２つのノードｎ０、ｎ３を除くノードｎ１（またはｎ２）は、一対の排他的論理和回路ＥＯＲ０、ＥＯＲ１（またはＥＯＲ１、ＥＯＲ２）の入力に共通に接続される。これにより、図４で説明するように、最小限の数の排他的論理和回路ＥＯＲを用いて、縮退故障が発生したノードｎを検出することができる。なお、可変遅延制御回路ＶＤＬＹ１が、８つの遅延部Ｕと、８つのノードｎを有する場合、４つのノードｎのグループ（ノード群）毎に、図１に示す３つの排他的論理和回路ＥＯＲ０−ＥＯＲ２を接続してもよい。
【００２７】
論理和回路ＯＲは、排他的論理和回路ＥＯＲ０−ＥＯＲ２の出力の論理和を演算し、演算結果をフェイル信号ＦＡＩＬとして出力する。図４で説明するように、論理１のフェイル信号ＦＡＩＬは、ノードｎ０−ｎ３のいずれかに縮退故障が発生したことを示し、論理０のフェイル信号ＦＡＩＬは、ノードｎ０−ｎ３のいずれにも縮退故障が発生していないことを示す。
【００２８】
なお、ノードｎ０−ｎ３を、排他的論理和回路ＥＯＲ０−ＥＯＲ２を介することなく、論理和回路ＯＲの入力に直接接続する場合、ノードｎ０−ｎ３のいずれかの論理０の縮退故障の発生を、フェイル信号ＦＡＩＬの論理値に基づいて検出することは困難である。一方、ノードｎ０−ｎ３を論理和回路ＯＲの入力に直接接続することで、ノードｎ０−ｎ３のいずれかの論理１の縮退故障の発生を、フェイル信号ＦＡＩＬの論理値に基づいて検出することができる。しかしながら、この場合、ノードｎ０−ｎ３の配線長が図１に比べて長くなるため、ノードｎ０−ｎ３の負荷容量は増加する。また、論理和回路ＯＲを配置する位置に応じてノードｎ０−ｎ３の配線長がばらつくため、ノードｎ０−ｎ３の負荷容量はばらつく。このため、制御レジスタＣ０−Ｃ３に設定された制御値がセレクタＳＥＬ０−ＳＥＬ３に到達するまでの時間は、図１に比べて長くなるとともに、ばらついてしまう。この結果、入力信号ＩＮに対する出力信号ＯＵＴの遅延量を切り替えるまでの時間は、図１に示す可変遅延制御回路ＶＤＬＹ１に比べて長くなり、可変遅延制御回路ＶＤＬＹ１の性能は低下してしまう。
【００２９】
なお、図１では、説明を分かりやすくするために、４つの遅延部Ｕを有する可変遅延制御回路ＶＤＬＹ１を示している。しかしながら、実際のメモリコントローラＭＣＮＴでは、可変遅延制御回路ＶＤＬＹ１は、３つの遅延部Ｕまたは５つ以上の遅延部Ｕを有してもよい。この場合、可変遅延制御回路ＶＤＬＹ１は、遅延部Ｕの数と等しい数の制御レジスタＣと、遅延部Ｕの数より少ない数の排他的論理和回路ＥＯＲと、排他的論理和回路ＥＯＲの数と等しい数の診断レジスタＲとを有する。例えば、可変遅延制御回路ＶＤＬＹ１で調整される遅延量の刻み（各遅延部Ｕの遅延時間）は、図２に示すクロックＣＬＫの１周期より短い。
【００３０】
図２は、図１に示すメモリコントローラＭＣＮＴを搭載する半導体装置ＳＥＭを含むサーバ等の情報処理装置ＩＰＥの一例を示す。例えば、半導体装置ＳＥＭは、ＣＰＵ等の演算処理装置とメモリコントローラＭＣＮＴとを含み、可変遅延制御回路ＶＤＬＹ１（ＶＤＬＹ１（１）−ＶＤＬＹ１（８））は、メモリコントローラＭＣＮＴのメモリインタフェース部ＭＩＦ内に搭載される。
【００３１】
ＣＰＵは、メモリコントローラＭＣＮＴにクロックＣＬＫ、コマンド信号ＣＭＤ、アドレス信号ＡＤおよびデータ信号ＤＱ（書き込みデータ信号）を出力し、メモリコントローラＭＣＮＴからデータ信号ＤＱ（読み出しデータ信号）を受ける。なお、コマンド信号ＣＭＤ、アドレス信号ＡＤおよびデータ信号ＤＱは、パケットとして、ＣＰＵとメモリコントローラＭＣＮＴとの間で送受信されてもよい。そして、ＣＰＵは、メモリコントローラＭＣＮＴを介して、半導体装置ＳＥＭに接続される複数のＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）にアクセスする。例えば、ＳＤＲＡＭは、ＤＩＭＭ（Dual Inline Memory Module）に搭載される。ＳＤＲＡＭおよびＤＩＭＭは、半導体装置ＳＥＭに接続される記憶装置の一例である。
【００３２】
メモリコントローラＭＣＮＴは、ＣＰＵから出力されるコマンド信号ＣＭＤおよびアドレス信号ＡＤを含むメモリアクセス要求に基づいて、ＤＩＭＭの動作を制御し、ＳＤＲＡＭに読み出し動作および書き込み動作等を実行させる。半導体装置ＳＥＭとＤＩＭＭの間に接続されるデータストローブ信号線ＤＱＳ、ＤＱＳ＃およびデータ信号線ＤＱは、双方向の信号を伝達する。
【００３３】
図２に示す例では、可変遅延制御回路ＶＤＬＹ１は、ＳＤＲＡＭ毎に、ＳＤＲＡＭに出力されるデータストローブ信号ＤＱＳ（ＤＱＳ＃）およびデータ信号ＤＱにそれぞれ対応して設けられる。また、可変遅延制御回路ＶＤＬＹ１は、ＳＤＲＡＭ毎に、ＳＤＲＡＭから受けるデータストローブ信号ＤＱＳ（ＤＱＳ＃）およびデータ信号ＤＱにそれぞれ対応して設けられる。各ＳＤＲＡＭは、例えば、８ビットのデータ端子ＤＱを有するが、図が煩雑になることを避けるため、図２では、１ビットのみを示す。データ端子ＤＱが８ビットの場合、メモリインタフェース部ＭＩＦは、８つの可変遅延制御回路ＶＤＬＹ１（３）、８つの可変遅延制御回路ＶＤＬＹ１（４）、８つの可変遅延制御回路ＶＤＬＹ１（７）および８つの可変遅延制御回路ＶＤＬＹ１（８）を有する。なお、メモリインタフェース部ＭＩＦは、データストローブ信号ＤＱＳ、ＤＱＳ＃に対応して、可変遅延回路ＶＤＬＹ１の代わりに、他の可変遅延制御回路を有してもよい。すなわち、可変遅延制御回路ＶＤＬＹ１は、データ信号ＤＱのみに対応して設けられてもよい。
【００３４】
可変遅延制御回路ＶＤＬＹ１（１）、ＶＤＬＹ１（３）、ＶＤＬＹ１（５）、ＶＤＬＹ１（７）は、ＳＤＲＡＭに出力するデータストローブ信号ＤＱＳ、ＤＱＳ＃とデータ信号ＤＱ（書き込みデータ信号）とを互いに同期させるために使用される。すなわち、可変遅延制御回路ＶＤＬＹ１（１）、ＶＤＬＹ１（３）、ＶＤＬＹ１（５）、ＶＤＬＹ１（７）は、ＳＤＲＡＭに出力されるデータストローブ信号ＤＱＳ、ＤＱＳ＃に対して、ＳＤＲＡＭに書き込まれるデータ信号ＤＱの遅延量を調整する。
【００３５】
可変遅延制御回路ＶＤＬＹ１（２）、ＶＤＬＹ１（４）、ＶＤＬＹ１（６）、ＶＤＬＹ１（８）は、ＳＤＲＡＭから受けるデータストローブ信号ＤＱＳ、ＤＱＳ＃とデータ信号ＤＱ（読み出しデータ信号）とを互いに同期させるために使用される。すなわち、可変遅延制御回路ＶＤＬＹ１（２）、ＶＤＬＹ１（４）、ＶＤＬＹ１（６）、ＶＤＬＹ１（８）は、ＳＤＲＡＭから受信するデータストローブ信号ＤＱＳ、ＤＱＳ＃に対して、ＳＤＲＡＭから読み出されるデータ信号ＤＱの遅延量を調整する。
【００３６】
メモリインタフェース部ＭＩＦは、ＳＤＲＡＭ毎に、データストローブ信号ＤＱＳ、ＤＱＳ＃およびデータ信号ＤＱ（書き込みデータ信号）をＳＤＲＡＭにそれぞれ出力する複数の出力バッファＯＢを有する。また、メモリインタフェース部ＭＩＦは、ＳＤＲＡＭ毎に、ＳＤＲＡＭからデータストローブ信号ＤＱＳ、ＤＱＳ＃およびデータ信号ＤＱ（読み出しデータ信号）のそれぞれを受ける複数の入力バッファＩＢを有する。
【００３７】
メモリインタフェース部ＭＩＦ内に斜線で示す矩形は、スキャンパスＳＰを介して直列に接続されたスキャンフリップフロップＳＦＦを示す。スキャンパスＳＰは、試験モード中に、スキャンフリップフロップＳＦＦに試験データを設定するとともに、スキャンフリップフロップＳＦＦから試験結果を読み出す試験経路である。スキャンパスＳＰおよびスキャンパスＳＰに接続されたスキャンフリップフロップＳＦＦは、スキャンチェーンとも称される。
【００３８】
スキャンフリップフロップＳＦＦのデータ出力端子を、スキャンパスＳＰを介して隣接するスキャンフリップフロップＳＦＦのスキャン入力端子に順次に接続することで、スキャンフリップフロップＳＦＦは、シフトレジスタとして機能する。そして、スキャンフリップフロップＳＦＦを利用して、メモリコントローラＭＣＮＴ内のロジック回路等の機能試験（スキャン試験）が実行される。なお、スキャンチェーンは、メモリコントローラＭＣＮＴ内だけでなく、メモリコントローラＭＣＮＴの外部に亘って配置されてもよい。
【００３９】
スキャン試験では、半導体装置ＳＥＭを試験する試験装置は、スキャンイン端子ＳＩＮを介して試験データをスキャンフリップフロップＳＦＦに順次設定した後、半導体装置ＳＥＭに所定の動作を実行させる。この後、試験装置は、スキャンアウト端子ＳＯＵＴから順次受ける試験結果を示す情報に基づいて、半導体装置ＳＥＭの良否を判定する。
【００４０】
なお、図２では、可変遅延制御回路ＶＤＬＹ１毎に、可変遅延制御回路ＶＤＬＹ１内に信号を出力する１つのスキャンフリップフロップＳＦＦと、可変遅延制御回路ＶＤＬＹ１内から信号を受ける１つのスキャンフリップフロップＳＦＦとを示している。しかしながら、実際には、各可変遅延制御回路ＶＤＬＹ１は、可変遅延制御回路ＶＤＬＹ１内に信号を出力する複数のスキャンフリップフロップＳＦＦ（例えば、図１に示す試験レジスタＴ０と制御レジスタＣ０−Ｃ３）を有する。また、各可変遅延制御回路ＶＤＬＹ１は、可変遅延制御回路ＶＤＬＹ１から信号を受ける複数のスキャンフリップフロップＳＦＦ（例えば、図１に示す試験レジスタＴ１と診断レジスタＲ０−Ｒ２）を有する。
【００４１】
可変遅延制御回路ＶＤＬＹ１（１）、ＶＤＬＹ１（５）において、入力端子ＩＮには、ＳＤＲＡＭに出力するデータストローブ信号ＤＱＳ、ＤＱＳ＃の元となる信号が供給される。可変遅延制御回路ＶＤＬＹ１（２）、ＶＤＬＹ１（６）において、入力端子ＩＮには、ＳＤＲＡＭから出力されるデータストローブ信号ＤＱＳ、ＤＱＳ＃を入力バッファＩＢで受けた信号が供給される。
【００４２】
可変遅延制御回路ＶＤＬＹ１（３）、ＶＤＬＹ１（７）において、入力端子ＩＮには、ＳＤＲＡＭに出力するデータ信号ＤＱ（書き込みデータ信号）の元となる信号が供給される。可変遅延制御回路ＶＤＬＹ１（４）、ＶＤＬＹ１（８）において、入力端子ＩＮには、ＳＤＲＡＭから出力されるデータ信号ＤＱ（読み出しデータ信号）を入力バッファＩＢで受けた信号が供給される。
【００４３】
メモリコントローラＭＣＮＴは、ＳＤＲＡＭにクロックＣＬＫ、ＣＬＫ＃、コマンド信号ＣＭＤおよびアドレス信号ＡＤを出力する。例えば、コマンド信号ＣＭＤは、ロウアドレスストローブ信号、コラムアドレスストローブ信号およびライトイネーブル信号を含む。そして、メモリコントローラＭＣＮＴは、コマンド信号ＣＭＤに応じて、ＳＤＲＡＭにデータＤＱを書き込む書き込み動作またはＳＤＲＡＭからデータＤＱを読み出す読み出し動作を、ＳＤＲＡＭに実行させる。
【００４４】
ＳＤＲＡＭが複数ビットのデータ端子ＤＱを有する場合、入力バッファＩＢおよび出力バッファＯＢの半導体装置ＳＥＭ上での位置に応じて、データ信号線ＤＱの配線長は互いに相違し、配線の負荷は互いに相違する。これにより、メモリインタフェース部ＭＩＦで受ける複数のデータ信号ＤＱ（読み出しデータ信号）間にスキューが発生し、データストローブ信号ＤＱＳ、ＤＱＳ＃に対するタイミングマージンは、データ信号ＤＱ毎に相違してしまう。同様に、メモリインタフェース部ＭＩＦからＳＤＲＡＭに出力される複数のデータ信号ＤＱ（書き込みデータ信号）間にスキューが発生し、データストローブ信号ＤＱＳ、ＤＱＳ＃に対するタイミングマージンは、データ信号ＤＱ毎に相違してしまう。
【００４５】
図２に示すメモリコントローラＭＣＮＴでは、可変遅延制御回路ＶＤＬＹ１により遅延時間を調整することにより、複数のデータ信号ＤＱ（書き込みデータ信号または読み出しデータ信号）間のスキューを抑えることができる。これにより、データストローブ信号ＤＱＳ、ＤＱＳ＃に対する複数のデータ信号ＤＱのタイミングマージンを互いに同等にすることができる。データ信号ＤＱのタイミングマージンについては、図３で説明される。
【００４６】
図３は、図２に示すＳＤＲＡＭのタイミング仕様の一例を示す。例えば、ＳＤＲＡＭは、ＤＤＲ３（Double-Data-Rate3）ＳＤＲＡＭである。
【００４７】
読み出し動作では、ＳＤＲＡＭは、データ信号ＤＱ０−ＤＱ７（読み出しデータ信号ＲＤ）の出力を開始するクロックサイクルの１つ前のクロックサイクルで、データストローブ信号ＤＱＳを論理０に設定する。そして、ＳＤＲＡＭは、クロックＣＬＫに同期して生成するデータストローブ信号ＤＱＳの立ち上がりエッジと立ち下がりエッジのそれぞれに同期してデータ信号ＤＱ０−ＤＱ７（読み出しデータ信号ＲＤ）をメモリコントローラＭＣＮＴに出力する。メモリコントローラＭＣＮＴは、読み出し動作において、データストローブ信号ＤＱＳの論理０を検出したクロックサイクルの次のクロックサイクルから読み出しデータ信号ＲＤを順次受ける。
【００４８】
ここで、可変遅延制御回路ＶＤＬＹ１で調整される遅延時間は、クロックＣＬＫの１周期より短く、各遅延部Ｕによる入力信号ＩＮ（図１）の遅延時間は、クロックＣＬＫの１周期より十分に短い。このため、図１に示す可変遅延制御回路ＶＤＬＹ１による遅延時間の調整により、データストローブ信号ＤＱＳの立ち上がりエッジまたは立ち上がりエッジと、データ信号ＤＱ０−ＤＱ７の各ビットの受信タイミングとをそれぞれ一致させることができる。すなわち、可変遅延制御回路ＶＤＬＹ１により遅延時間を調整しない場合に比べて、読み出しデータ信号ＲＤのスキューを低減することができ、読み出しデータ信号ＲＤのタイミングマージンを向上することができる。
【００４９】
一方、書き込み動作では、メモリコントローラＭＣＮＴは、データ信号ＤＱ０−ＤＱ７（書き込みデータ信号ＷＤ）の出力を開始するクロックサイクルで、クロックＣＬＫに同期したデータストローブ信号ＤＱＳの生成を開始する。そして、メモリコントローラＭＣＮＴは、データストローブ信号ＤＱＳの立ち下がりエッジと立ち上がりエッジとのそれぞれに同期してデータ信号ＤＱ０−ＤＱ７（書き込みデータ信号ＷＤ）をＳＤＲＡＭに順次出力する。
【００５０】
図１に示す可変遅延制御回路ＶＤＬＹ１による遅延時間の調整により、データストローブ信号ＤＱＳの立ち上がりエッジまたは立ち上がりエッジに対するデータ信号ＤＱ０−ＤＱ７のセットアップ時間ｔＳとホールド時間ｔＨとを互いに等しく設定することができる。すなわち、データストローブ信号線ＤＱＳの遷移エッジを、書き込みデータ信号ＷＤの各ビットの出力期間の中央に合わせることができる。また、可変遅延制御回路ＶＤＬＹ１による遅延時間の調整をしない場合に比べて、書き込みデータ信号ＷＤのスキューを低減することができ、書き込みデータ信号ＷＤのタイミングマージンを向上することができる。
【００５１】
例えば、データストローブ信号ＤＱＳに対する読み出しデータ信号ＲＤの遅延時間の調整は、図２に示す可変遅延制御回路ＶＤＬＹ１（４）、ＶＤＬＹ１（８）により調整される。なお、データストローブ信号ＤＱＳに対する読み出しデータ信号ＲＤの遅延時間の調整は、図２に示す可変遅延制御回路ＶＤＬＹ１（２）、ＶＤＬＹ１（４）、ＶＤＬＹ１（６）、ＶＤＬＹ１（８）により調整されてもよい。データストローブ信号ＤＱＳに対する書き込みデータ信号ＷＤの遅延時間の調整は、図２に示す可変遅延制御回路ＶＤＬＹ１（３）、ＶＤＬＹ１（７）により調整される。なお、データストローブ信号ＤＱＳに対する書き込みデータ信号ＷＤの遅延時間の調整は、図２に示す可変遅延制御回路ＶＤＬＹ１（１）、ＶＤＬＹ１（３）、ＶＤＬＹ１（５）、ＶＤＬＹ１（７）により調整されてもよい。
【００５２】
図４は、図１に示す可変遅延制御回路ＶＤＬＹ１の動作の一例を示す。図４の右側は、可変遅延制御回路ＶＤＬＹ１の縮退故障診断方法の一例を示す。
【００５３】
入力信号ＩＮに対する出力信号ＯＵＴの遅延時間の調整は、図４の左側に示すように、制御レジスタＣ０−Ｃ３の設定により、ノードｎ０−ｎ３の論理値を変更することで実行される。この場合、入力信号ＩＮを折り返す遅延部Ｕに対応するノードｎが論理１に設定され、他のノードｎは論理０に設定される。例えば、出力信号ＯＵＴを入力信号ＩＮに対して遅延部Ｕの２段分遅らせる場合（遅延部Ｕの接続数＝”２”）、入力信号ＩＮを折り返す遅延部Ｕ１に対応するノードｎ１が論理１に設定され、他のノードｎ０、ｎ２、ｎ３は論理０に設定される。出力信号ＯＵＴを入力信号ＩＮに対して遅延部Ｕの３段分遅らせる場合（遅延部Ｕの接続数＝”３”）、遅延部Ｕ２に対応するノードｎ２が論理１に設定され、他のノードｎ０、ｎ１、ｎ３は論理０に設定される。なお、遅延部Ｕの接続数は、遅延部Ｕのそれぞれに含まれる一対のインバータＩＶ（遅延回路）の接続数に等しい。
【００５４】
出力信号ＯＵＴを入力信号ＩＮに対して遅延部Ｕの２段分遅らせる場合、入力信号ＩＮは、遅延部Ｕ２、Ｕ３に伝達されず、遅延部Ｕ２、Ｕ３は使用されない。使用されない遅延部Ｕ（例えば、Ｕ２、Ｕ３）に接続されるノードｎを論理０に設定することで、図１において、末尾の数値が”１”のインバータＩＶ（例えば、ＩＶ２１、ＩＶ３１）の入力を論理０に固定することができる。これにより、入力信号ＩＮの論理値の変化に応じてインバータＩＶ２１、ＩＶ３１に充放電電流が流れることを抑止することができ、インバータＩＶ２１、ＩＶ３１の充放電電流により可変遅延制御回路ＶＤＬＹ１の消費電力が増加することを抑止することができる。
【００５５】
各可変遅延制御回路ＶＤＬＹ１に設定する最適な遅延時間は、半導体装置ＳＥＭの製造後に実施される試験に基づいて決定され、決定された最適な遅延時間に基づいて、ノードｎ０−ｎ３に設定する論理値が決定される。例えば、ノードｎ０−ｎ３の論理値は、半導体装置ＳＥＭの製造工程において、半導体装置ＳＥＭに搭載される不揮発性のプログラム素子に書き込まれ、半導体装置ＳＥＭのパワーオン時にプログラム素子から制御レジスタＣ０−Ｃ３に転送される。なお、各可変遅延制御回路ＶＤＬＹ１に設定した遅延時間は、半導体装置ＳＥＭの電源電圧の変更または温度の変化に応じて、微調整されてもよい。
【００５６】
一方、半導体装置ＳＥＭの試験工程において、ノードｎ０−ｎ３の縮退故障を検出する場合、図４の右側に示すように、制御レジスタＣ０−Ｃ３にオール０およびオール１が順次設定される。制御レジスタＣ０−Ｃ３の設定により、ノードｎ０−ｎ３は、オール０またはオール１に設定される。なお、図４に示す縮退故障の検出動作は、可変遅延制御回路ＶＤＬＹ１の各ノードｎ０−ｎ３のいずれか１つのみに縮退故障が発生する単一縮退故障を想定している。図４において、”（１）”は、論理１の縮退故障の発生を示し、”（０）”は、論理０の縮退故障の発生を示す。
【００５７】
縮退故障がない場合、オール０とオール１のいずれの試験パターンにおいても排他的論理和回路ＥＯＲ０−ＥＯＲ２は、論理０を出力する。これにより、診断レジスタＲ０−Ｒ２は、論理０を保持し、論理和回路ＯＲは、論理０のフェイル信号ＦＡＩＬを出力する。すなわち、論理和回路ＯＲが出力する論理０のフェイル信号ＦＡＩＬは、ノードｎ０−ｎ３に縮退故障がないことを示す。
【００５８】
ノードｎ０に論理１または論理０の縮退故障がある場合、排他的論理和回路ＥＯＲ０、ＥＯＲ１、ＥＯＲ２は、論理１、論理０、論理０をそれぞれ出力し、診断レジスタＲ０、Ｒ１、Ｒ２は、論理１、論理０、論理０をそれぞれ保持する。ノードｎ１に論理１または論理０の縮退故障がある場合、排他的論理和回路ＥＯＲ０、ＥＯＲ１、ＥＯＲ２は、論理１、論理１、論理０をそれぞれ出力し、診断レジスタＲ０、Ｒ１、Ｒ２は、論理１、論理１、論理０をそれぞれ保持する。
【００５９】
ノードｎ２に論理１または論理０の縮退故障がある場合、排他的論理和回路ＥＯＲ０、ＥＯＲ１、ＥＯＲ２は、論理０、論理１、論理１をそれぞれ出力し、診断レジスタＲ０、Ｒ１、Ｒ２は、論理０、論理１、論理１をそれぞれ保持する。ノードｎ３に論理１または論理０の縮退故障がある場合、排他的論理和回路ＥＯＲ０、ＥＯＲ１、ＥＯＲ２は、論理０、論理０、論理１をそれぞれ出力し、診断レジスタＲ０、Ｒ１、Ｒ２は、論理０、論理０、論理１をそれぞれ保持する。
【００６０】
ノードｎ０−ｎ３のいずれかに論理１または論理０の縮退故障がある場合、排他的論理和回路ＥＯＲ０−ＥＯＲ２の少なくとも１つは、論理１を出力するため、論理和回路ＯＲは、論理１のフェイル信号ＦＡＩＬを出力する。フェイル信号ＦＡＩＬは、図２に示すように、スキャンパスＳＰを介することなく、フェイル端子ＦＡＩＬを介して試験装置等に直接出力される。
【００６１】
したがって、半導体装置ＳＥＭを試験する試験装置は、論理１のフェイル信号ＦＡＩＬを受けることで、ノードｎ０−ｎ３のいずれかに論理１または論理０の縮退故障が発生したか否かを診断することができる。換言すれば、スキャンパスＳＰを介して診断レジスタＲ０−Ｒ２に保持された値を読み出すことなく、ノードｎ０−ｎ３のいずれかに論理１または論理０の縮退故障が発生したか否かを診断することができる。
【００６２】
フェイル端子ＦＡＩＬが論理０の場合、ノードｎ０−ｎ３に縮退故障は発生していないため、スキャンパスＳＰを介して診断レジスタＲ０−Ｒ２に保持された値を読み出す動作を省略することができる。この結果、スキャンパスＳＰを用いてノードｎ０−ｎ３の縮退故障の有無を診断する場合に比べて、試験時間を短縮することができ、試験効率を向上することができる。
【００６３】
なお、フェイル信号ＦＡＩＬは、図２に示すように、複数の可変遅延制御回路ＶＤＬＹ１に共通に生成される。すなわち、半導体装置ＳＥＭから出力されるフェイル信号ＦＡＩＬは、複数の可変遅延制御回路ＶＤＬＹ１の各々から出力されるフェイル信号ＦＡＩＬ（図１）の論理和を示す信号である。これにより、半導体装置ＳＥＭが複数の可変遅延制御回路ＶＤＬＹ１を有する場合にも、フェイル端子ＦＡＩＬを増やすことなく、複数の可変遅延制御回路ＶＤＬＹ１のノードｎ０−ｎ３のいずれかの縮退故障の発生を外部に通知することができる。そして、試験装置は、複数の可変遅延制御回路ＶＤＬＹ１におけるノードｎ０−ｎ３のいずれかの縮退故障の発生を検出することができる。複数の可変遅延制御回路ＶＤＬＹ１の縮退故障を一括して検出することで、複数の可変遅延制御回路ＶＤＬＹ１の縮退故障を個別に検出する場合に比べて、試験時間を短縮することができ、試験コストを削減することができる。
【００６４】
ここで、図１に示すように、ノードｎ１は、一対の排他的論理和回路ＥＯＲ０、ＥＯＲ１の入力に共通に接続され、ノードｎ２は、一対の排他的論理和回路ＥＯＲ１、ＥＯＲ２の入力に共通に接続される。これにより、図４に示すように、診断レジスタＲ０−Ｒ２に保持される論理値［Ｒ２：Ｒ０］の組み合わせを、縮退故障が発生したノードｎに応じて相違させることができる。したがって、試験装置は、フェイル信号ＦＡＩＬに基づいてノードｎ０−ｎ３の縮退故障を検出した場合、論理値［Ｒ２：Ｒ０］に基づいて、最小限の数の排他的論理和回路ＥＯＲにより、縮退故障が発生したノードｎを特定することができる。
【００６５】
これに対して、例えば、ノードｎ０、ｎ１を１つの排他的論理和回路ＥＯＲに接続し、ノードｎ２、ｎ３を他の排他的論理和回路ＥＯＲに接続し、２つの排他的論理和回路ＥＯＲが出力する論理値を、２つの診断レジスタＲに保持するとする。この場合、ノードｎ０に発生した縮退故障を２つの診断レジスタＲが保持する値から判断することは困難である。すなわち、ノードｎ０、ｎ１のいずれで縮退故障が発生したかを、２つの診断レジスタＲが保持する値から判断することが困難である。
【００６６】
なお、図１に示す可変遅延制御回路ＶＤＬＹ１において、入力信号ＩＮが伝達される経路に発生する縮退故障を含む不良は、入力信号ＩＮを可変遅延制御回路ＶＤＬＹ１に供給した場合の出力信号ＯＵＴの論理値に基づいて判定することができる。入力信号ＩＮが伝達される経路に発生する縮退故障を含む不良を判定する例は、図５で説明される。
【００６７】
図５は、図１に示す可変遅延制御回路ＶＤＬＹ１において、遅延部Ｕ０−Ｕ３を使用する場合の機能試験の一例を示す。図５に示す機能試験は、半導体装置ＳＥＭを試験するＬＳＩテスタ等の試験装置により実行される。遅延部Ｕ０−Ｕ３を用いて、入力信号ＩＮを遅延させ、出力信号ＯＵＴを生成する場合、入力信号ＩＮを遅延部Ｕ３で折り返すために、ノードｎ３は、論理１に設定され、他のノードｎ０−ｎ２は、論理０に設定される。
【００６８】
図５（Ａ）は、可変遅延制御回路ＶＤＬＹ１に縮退故障等の不良が存在せず、可変遅延制御回路ＶＤＬＹ１が正常に動作する場合を示す。試験装置は、試験レジスタＴ０の入力をクロックＲＣＫの立ち上がりエッジより前に論理１に設定し、クロックＲＣＫの次の立ち上がりエッジ（検出エッジ）の後に論理０に設定する（図５（ａ）、（ｂ））。試験レジスタＴ０は、クロックＲＣＫの最初の立ち上がりエッジに同期して入力信号ＩＮを論理０から論理１に変化させる（図５（ｃ））。入力信号ＩＮは、可変遅延制御回路ＶＤＬＹ１の遅延部Ｕ０−Ｕ３に伝達され、遅延部Ｕ３で折り返されて遅延部Ｕ３−Ｕ０を通過し、出力信号ＯＵＴとして出力される（図５（ｄ））。ここで、試験装置は、半導体装置ＳＥＭに搭載されるＰＬＬ回路の動作を制御し、クロックＲＣＫの周期を、遅延部Ｕ０−Ｕ３による入力信号ＩＮの遅延時間より僅かに長く設定する。このため、入力信号ＩＮを遅延部Ｕ０−Ｕ３により遅延させた出力信号ＯＵＴは、クロックＲＣＫの検出エッジより前に論理１に変化する。試験装置は、検出エッジに同期して試験レジスタＴ１にラッチされた出力信号ＯＵＴの論理値が、期待値（論理１）であることに基づいて試験がパスしたことを判定する。
【００６９】
図５（Ｂ）は、可変遅延制御回路ＶＤＬＹ１のノードｎ２に論理１の縮退故障が発生した場合を示す（図５（ｅ））。ノードｎ２と出力信号ＯＵＴの波形以外は、図５（Ａ）と同じである。ノードｎ２に論理１の縮退故障が発生した場合、入力信号ＩＮは、遅延部Ｕ２で折り返されて遅延部Ｕ２−Ｕ０を通過し、遅延部Ｕ３を通ることなく出力信号ＯＵＴとして出力される。このため、出力信号ＯＵＴが論理０から論理１に変化するタイミングは、図５（Ａ）より早くなる（図５（ｆ））。しかしながら、図５（Ａ）と同様に、出力信号ＯＵＴがクロックＲＣＫの検出エッジより前に論理１に変化するため、試験はパスする。すなわち、ノードｎ２の論理１の縮退故障は、機能試験では検出されない。但し、図４に示す手法では、ノードｎ２を含むノードｎ０−ｎ３の論理１または論理０の縮退故障を検出することができる。
【００７０】
図５（Ｃ）および図５（Ｄ）は、機能試験を利用した可変遅延制御回路ＶＤＬＹ１の縮退故障診断方法の一例を示す。機能試験を利用して縮退故障を検出する場合、例えば、遅延部Ｕの接続数は最大に設定され、入力信号ＩＮは、全ての遅延部Ｕ０−Ｕ３に伝達され、出力信号ＯＵＴとして出力される。
【００７１】
図５（Ｃ）は、可変遅延制御回路ＶＤＬＹ１の遅延部Ｕ３のインバータＩＶ３１の出力に論理１の縮退故障が発生した場合を示す。出力信号ＯＵＴの波形以外は、図５（Ａ）と同じである。インバータＩＶ３１の出力に論理１の縮退故障が発生した場合、出力信号ＯＵＴは論理０に固定される。このため、試験装置は、出力信号ＯＵＴの論理値が期待値（論理１）と異なることに基づいて試験がフェイルしたことを判定する（図５（ｇ））。すなわち、インバータＩＶ３１の出力で発生した論理１の縮退故障を、機能試験を利用して検出することができる。インバータＩＶ００、ＩＶ２０の出力で発生した論理１の縮退故障、インバータＩＶ１０、ＩＶ３０の出力で発生した論理０の縮退故障、およびセレクタＳＥＬ０、ＳＥＬ２の出力で発止した論理１の縮退故障等も、図５（Ｃ）と同様に検出することができる。
【００７２】
図５（Ｄ）は、可変遅延制御回路ＶＤＬＹ１の遅延部Ｕ３のインバータＩＶ３１の出力に論理０の縮退故障が発生した場合を示す。図５（Ｄ）では、試験装置は、試験レジスタＴ０の入力をクロックＲＣＫの立ち上がりエッジより前に論理０に設定し、クロックＲＣＫの次の立ち上がりエッジ（検出エッジ）の後に論理１に設定する（図５（ｈ）、（ｉ））。インバータＩＶ３１の出力に論理０の縮退故障が発生した場合、出力信号ＯＵＴは論理１に固定される。このため、試験装置は、出力信号ＯＵＴの論理値が期待値（論理０）と異なることに基づいて試験のフェイルを検出する（図５（ｊ））。すなわち、インバータＩＶ３１の出力で発生した論理０の縮退故障を、機能試験を利用して検出することができる。
【００７３】
インバータＩＶ００、ＩＶ２０の出力で発生した論理０の縮退故障、インバータＩＶ１０、ＩＶ３０の出力で発生した論理１の縮退故障、およびセレクタＳＥＬ０、ＳＥＬ２の出力で発生した論理０の縮退故障等も、図５（Ｄ）と同様に検出することができる。なお、可変遅延制御回路ＶＤＬＹ１に縮退故障等の不良がなく、可変遅延制御回路ＶＤＬＹ１が正常に動作する場合、入力信号ＩＮの論理１から論理０への変化に伴い、出力信号ＯＵＴの論理値は、検出エッジより前に論理１から論理０に変化する。このため、可変遅延制御回路ＶＤＬＹ１が正常に動作する場合、出力信号ＯＵＴの波形は、図５（Ａ）の出力信号ＯＵＴの波形を反転した波形になる。図５（Ｄ）において、可変遅延制御回路ＶＤＬＹ１に縮退故障がない場合、出力信号ＯＵＴが検出エッジより前に期待値である論理０に変化するため、試験はパスする。
【００７４】
このように、可変遅延制御回路ＶＤＬＹ１において、入力信号ＩＮが伝達される経路（インバータＩＶの入力および出力と、セレクタＳＥＬの入力および出力）の縮退故障も、可変遅延制御回路ＶＤＬＹ１の機能試験により検出することができる。
【００７５】
図６は、図１に示す可変遅延制御回路ＶＤＬＹ１の動作試験の一例を示す。図６に示す処理は、半導体装置ＳＥＭを試験するＬＳＩテスタ等の試験装置が試験プログラムを実行することにより実行される。ステップＳ１０からステップＳ２０は、図４に示す縮退故障の検出動作に対応する動作である。縮退故障は、ステップＳ２４による機能試験を利用しても検出される。すなわち、図６は、可変遅延制御回路ＶＤＬＹ１の縮退故障診断方法の一例を示す。
【００７６】
まず、ステップＳ１０において、試験装置は、遅延制御回路ＶＤＬＹ１内の全ての制御レジスタＣ０−Ｃ３に論理０を設定する。次に、ステップＳ１２において、試験装置は、フェイル信号ＦＡＩＬが論理１の場合、ノードｎ０−ｎ３のいずれかに論理１の縮退故障が発生したことを検出し、動作をステップＳ１４に移行する。一方、フェイル信号ＦＡＩＬが論理０の場合、試験装置は、ノードｎ０−ｎ３に論理１の縮退故障が発生していないと判定し、動作をステップＳ１６に移行する。
【００７７】
ステップＳ１４において、試験装置は、診断レジスタＲ０−Ｒ２に保持された値［Ｒ２：Ｒ０］（図４）を、スキャンパスＳＰを用いて読み出し、読み出した値［Ｒ２：Ｒ０］に基づいて論理１の縮退故障が発生したノードｎを特定する。ステップＳ１４の後、動作はステップＳ２２に移行される。
【００７８】
ステップＳ１６において、試験装置は、遅延制御回路ＶＤＬＹ１内の全ての制御レジスタＣ０−Ｃ３に論理１を設定する。次に、ステップＳ１８において、試験装置は、フェイル信号ＦＡＩＬが論理１の場合、ノードｎ０−ｎ３のいずれかに論理０の縮退故障が発生したことを検出し、動作をステップＳ２０に移行する。一方、フェイル信号ＦＡＩＬが論理０の場合、試験装置は、ノードｎ０−ｎ３に論理０の縮退故障が発生していないと判定し、動作をステップＳ２４に移行する。
【００７９】
このように、試験装置は、ノードｎ０−ｎ３のいずれにも論理１および論理０の縮退故障が発生していないことを、スキャンパスＳＰを用いて診断レジスタＲ０−Ｒ２に保持された値を読み出すことなく、フェイル信号ＦＡＩＬにより判定することができる。この結果、診断レジスタＲ０−Ｒ２に保持された値に基づいてノードｎ０−ｎ３に縮退故障が発生していないことを判定する場合に比べて、半導体装置ＳＥＭの試験時間を短縮することができ、試験効率を向上することができる。これにより、半導体装置ＳＥＭの試験コストを削減することができる。
【００８０】
ステップＳ２０において、試験装置は、診断レジスタＲ０−Ｒ２に保持された値［Ｒ２：Ｒ０］（図４）を、スキャンパスＳＰを用いて読み出し、読み出した値［Ｒ２：Ｒ０］に基づいて論理０の縮退故障が発生したノードｎを特定する。
【００８１】
次に、ステップＳ２２において、試験装置は、縮退故障が発生したノードｎに対応する遅延部Ｕを、図２に示す情報処理装置ＩＰＥ内でシステムとして動作する半導体装置ＳＥＭで使用しない場合、動作をステップＳ２４に移行する。すなわち、試験装置は、縮退故障が発生したノードｎに対応する遅延部Ｕに含まれるインバータＩＶのペア（遅延回路）が、半導体装置ＳＥＭの動作仕様により使用されない場合、動作をステップＳ２４に移行する。
【００８２】
例えば、情報処理装置ＩＰＥ内でシステムとして動作する半導体装置ＳＥＭが、可変遅延制御回路ＶＤＬＹ１の遅延部Ｕ０−Ｕ２を使用して、遅延時間を３段階に切り替え、遅延部Ｕ３を使用しないとする。この場合、入力信号ＩＮは遅延部Ｕ３に伝達されず、遅延部Ｕ３に対応するノードｎ３に縮退故障がある場合にも、遅延制御回路ＶＤＬＹ１は正常に動作するため、縮退故障による電流不良がない場合、半導体装置ＳＥＭを良品として扱うことができる。なお、電流不良は、図６に示す動作試験を実行する前に試験装置により実行される電流試験により検出される。これにより、縮退故障により不良と判定された半導体装置ＳＥＭを救済することが可能になり、不良を救済しない場合に比べて、半導体装置ＳＥＭの良品率である歩留りを向上することができる。
【００８３】
一方、試験装置は、ステップＳ２２において、縮退故障が発生したノードｎに対応する遅延部Ｕを、図２に示す情報処理装置ＩＰＥ内でシステムとして動作する半導体装置ＳＥＭで使用する場合、半導体装置ＳＥＭを不良品と判定し、動作を終了する。すなわち、試験装置は、フェイル信号ＦＡＩＬに基づいてノードｎのいずれかの縮退故障を検出した場合、ステップＳ２４による遅延部Ｕ０−Ｕ３の機能試験を実行することなく、半導体装置ＳＥＭの不良を判定することができる。これにより、半導体装置ＳＥＭの試験時間を従来に比べて短縮することができ、試験効率を従来に比べて向上することができる。
【００８４】
ステップＳ２４において、試験装置は、図５に示す機能試験を実行する。例えば、機能試験は、ノードｎ０−ｎ３のいずれか１つを論理１に順次設定し、使用する遅延部Ｕの数を切り替えて実行される。この際、入力信号ＩＮに対する出力信号ＯＵＴの遅延時間に合わせてクロックＲＣＫの周期が設定される。図５で説明したように、入力信号ＩＮが伝達される経路（インバータＩＶの入力および出力と、セレクタＳＥＬの入力および出力）の縮退故障は、ステップＳ２４の機能試験により検出可能である。
【００８５】
次に、ステップＳ２６において、試験装置は、機能試験がパスした場合、半導体装置ＳＥＭが良品であると判定し、機能試験がフェイルした場合、半導体装置ＳＥＭが不良品であると判定し、動作試験を終了する。
【００８６】
図７は、図５に示す動作試験を実行する試験環境の一例を示す。例えば、ＬＳＩテスタ等の試験装置は、複数の半導体装置ＳＥＭの各々に搭載される可変遅延制御回路ＶＤＬＹ１の動作試験を並列に実行する。ＬＳＩテスタが動作試験を並列に実行する可変遅延制御回路ＶＤＬＹ１の数は、ＬＳＩテスタの端子数に依存して決まる。
【００８７】
以上、図１から図７に示す実施形態では、スキャンパスＳＰを介して診断レジスタＲ０−Ｒ２に保持された値を読み出すことなく、オール０とオール１の試験パターンにより、ノードｎ０−ｎ３のいずれかに縮退故障が発生したか否かを診断することができる。この結果、スキャンパスＳＰを用いて診断レジスタＲ０−Ｒ２に保持された値を読み出してノードｎ０−ｎ３の縮退故障の有無を診断する場合に比べて、縮退故障の発生の有無を短時間で診断することができ、試験効率を向上することができる。すなわち、従来に比べて短い試験時間で、可変遅延制御回路ＶＤＬＹ１で発生した縮退故障の有無を診断することができる。
【００８８】
試験装置は、フェイル信号ＦＡＩＬに基づいてノードｎのいずれかの縮退故障を検出した場合、遅延部Ｕ０−Ｕ３の機能試験を実行することなく、半導体装置ＳＥＭの不良を判定することができる。これにより、半導体装置ＳＥＭの試験効率を従来に比べて向上することができる。また、半導体装置ＳＥＭを試験する試験装置は、フェイル信号ＦＡＩＬに基づいて縮退故障を検出した場合、スキャンパスＳＰを用いて診断レジスタＲ２−Ｒ０に保持された値［Ｒ２：Ｒ０］を読み出すことで、縮退故障が発生したノードｎを特定することができる。
【００８９】
試験装置は、フェイル信号ＦＡＩＬに基づいて縮退故障が検出されたノードｎに接続された遅延部Ｕが、半導体装置ＳＥＭの動作仕様により使用されない場合、半導体装置ＳＥＭを良品として扱い、遅延部Ｕ０−Ｕ３の機能試験を実行する。これにより、縮退故障により不良であると判定された半導体装置ＳＥＭを救済することが可能になり、不良を救済しない場合に比べて、半導体装置ＳＥＭの歩留りを向上することができる。
【００９０】
ノードｎ０−ｎ３において２つのノードｎ０、ｎ３を除くノードｎ１（または、ｎ２）は、一対の排他的論理和回路ＥＯＲ０、ＥＯＲ１（または、ＥＯＲ１、ＥＯＲ２）の入力に共通に接続される。これにより、最小限の数の排他的論理和回路ＥＯＲを用いて、縮退故障が発生したノードｎを検出することができる。
【００９１】
図８は、可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラの別の実施形態を示す。図１に示した実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図８に示すメモリコントローラＭＣＮＴは、可変遅延制御回路ＶＤＬＹ２を有する。メモリコントローラＭＣＮＴは、可変遅延制御回路ＶＤＬＹ１の代わりに可変遅延制御回路ＶＤＬＹ２を有することを除き、図２に示す構成と同様である。すなわち、メモリコントローラＭＣＮＴは、ＣＰＵとともに半導体装置ＳＥＭに搭載され、ＤＩＭＭに接続され、ＤＩＭＭの動作を制御する。
【００９２】
可変遅延制御回路ＶＤＬＹ２は、遅延部Ｕ（Ｕ０、Ｕ１、Ｕ２、Ｕ３）の構成が、図１に示す遅延部Ｕの構成と異なることを除き、図１に示す可変遅延制御回路ＶＤＬＹ１と同様である。すなわち、可変遅延制御回路ＶＤＬＹ２は、図１と同様に、試験レジスタＴ０、Ｔ１、遅延部Ｕ０−Ｕ３、制御レジスタＣ０−Ｃ３、排他的論理和回路ＥＯＲ０−ＥＯＲ２、診断レジスタＲ０−Ｒ２および論理和回路ＯＲを有する。
【００９３】
各遅延部Ｕは、図１に示す各遅延部Ｕと同様に、一対のインバータＩＶ（ＩＶ００、ＩＶ０１等）およびセレクタＳＥＬ（ＳＥＬ０等）を有する。しかし、可変遅延制御回路ＶＤＬＹ２は、一対のインバータＩＶとセレクタＳＥＬとの接続関係と、遅延部Ｕ間の接続関係とが、図１に示す遅延部Ｕと相違する。
【００９４】
遅延部Ｕ０は、入力端子ＩＮまたは論理０のいずれかをノードｎ０に現れる論理値に応じて選択するセレクタＳＥＬ０と、セレクタＳＥＬ０の出力に直列に接続されたインバータＩＶ００、ＩＶ０１とを有する。遅延部Ｕ１は、入力端子ＩＮまたはインバータＩＶ０１の出力のいずれかをノードｎ１に現れる論理値に応じて選択するセレクタＳＥＬ１と、セレクタＳＥＬ１の出力に直列に接続されたインバータＩＶ１０、ＩＶ１１とを有する。遅延部Ｕ２は、入力端子ＩＮまたはインバータＩＶ１１の出力のいずれかをノードｎ２に現れる論理値に応じて選択するセレクタＳＥＬ２と、セレクタＳＥＬ２の出力に直列に接続されたインバータＩＶ２０、ＩＶ２１とを有する。遅延部Ｕ３は、入力端子ＩＮまたはインバータＩＶ２１の出力のいずれかをノードｎ３に現れる論理値に応じて選択するセレクタＳＥＬ３と、セレクタＳＥＬ３の出力に直列に接続されたインバータＩＶ３０、ＩＶ３１とを有する。インバータＩＶ３１の出力は、出力端子ＯＵＴに接続される。
【００９５】
可変遅延制御回路ＶＤＬＹ２は、図１に示す可変遅延制御回路ＶＤＬＹ１と同様に、入力信号ＩＮが伝達される遅延部Ｕの接続数を制御レジスタＣ０−Ｃ２に設定される論理値に基づいて変更することで、入力信号ＩＮに対する出力信号ＯＵＴの遅延量を変化させる。但し、可変遅延制御回路ＶＤＬＹ２では、遅延部Ｕ３のみ、２つの遅延部Ｕ２−Ｕ３、３つの遅延部Ｕ１−Ｕ３、または４つの遅延部Ｕ０−Ｕ３を使用して、データ信号等の入力信号ＩＮを遅延させた信号を出力信号ＯＵＴとして出力する。使用する遅延部Ｕの数（接続数）とノードｎ０−ｎ３に設定する論理値との関係は、図９に示される。
【００９６】
なお、可変遅延制御回路ＶＤＬＹ２は、３つの遅延部Ｕまたは５つ以上の遅延部Ｕを有してもよい。この場合、可変遅延制御回路ＶＤＬＹ２は、遅延部Ｕの数と等しい数の制御レジスタＣと、遅延部Ｕの数より少ない数の排他的論理和回路ＥＯＲと、排他的論理和回路ＥＯＲの数と等しい数の診断レジスタＲとを有する。
【００９７】
図９は、図８に示す可変遅延制御回路ＶＤＬＹ２の動作の一例を示す。ノードｎ０−ｎ３の縮退故障を検出する検出動作（図９の右側に示す動作）は、図４の右側に示す動作と同じである。
【００９８】
入力信号ＩＮに対する出力信号ＯＵＴの遅延時間の調整は、図９の左側に示すように、制御レジスタＣ０−Ｃ３の設定により、ノードｎ０−ｎ３に設定する論理値を変更することで実行される。図９に示す例では、入力信号ＩＮを選択して後段のインバータＩＶに出力するセレクタＳＥＬに接続されたノードｎが論理１に設定され、他のノードｎは論理０に設定される。例えば、出力信号ＯＵＴを入力信号ＩＮに対して遅延部Ｕの２段分遅らせる場合、遅延部Ｕ２に対応するノードｎ２が論理１に設定され、他のノードｎ０、ｎ１、ｎ３は論理０に設定される。出力信号ＯＵＴを入力信号ＩＮに対して遅延部Ｕの３段分遅らせる場合、遅延部Ｕ１に対応するノードｎ１が論理１に設定され、他のノードｎ０、ｎ２、ｎ３は論理０に設定される。
【００９９】
図４の説明と同様に、入力信号ＩＮが伝達されない遅延部Ｕ（すなわち、動作仕様により使用されない遅延部Ｕ）に接続されるノードｎを論理０に設定することで、使用されない遅延部ＵのインバータＩＶに充放電電流が流れることを抑止することができる。また、図１に示す可変遅延制御回路ＶＤＬＹ１と同様に、可変遅延制御回路ＶＤＬＹ２に設定する最適な遅延時間は、半導体装置ＳＥＭの製造後に実施される試験に基づいて決定され、ノードｎ０−ｎ３に設定する論理値が決定される。可変遅延制御回路ＶＤＬＹ２の機能試験の例は、ノードｎ０−ｎ３に設定される論理値が異なることを除き、図５と同様である。可変遅延制御回路ＶＤＬＹ２の動作試験の例は、図６と同じである。
【０１００】
以上、図８および図９に示す実施形態においても、図１から図７に示す実施形態と同様の効果を得ることができる。すなわち、従来に比べて短い試験時間で、可変遅延制御回路ＶＤＬＹ２で発生した縮退故障の有無を診断することができる。縮退故障が検出された場合、スキャンパスＳＰを用いて、診断レジスタＲ２−Ｒ０に保持された値［Ｒ２：Ｒ０］を読み出すことで、縮退故障が発生したノードｎを特定することができる。この際、最小限の数の排他的論理和回路ＥＯＲを用いて、縮退故障が発生したノードｎを検出することができる。
【０１０１】
遅延部Ｕ０−Ｕ３の機能試験を実行することなく、ノードｎのいずれかの縮退故障による半導体装置ＳＥＭの不良を判定することができ、半導体装置ＳＥＭの試験効率を従来に比べて向上することができる。縮退故障が検出されたノードｎに接続された遅延部Ｕが、半導体装置ＳＥＭの動作仕様により使用されない場合、縮退故障により不良と判定された半導体装置ＳＥＭを救済することが可能になり、半導体装置ＳＥＭの歩留りを向上することができる。
【０１０２】
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
複数の遅延回路と、前記複数の遅延回路のうちデータ信号を伝達する遅延回路の接続数を、複数の制御線を介して受ける複数の制御値に応じて切り替える複数の切替回路と、前記複数の制御線に設定する前記複数の制御値を保持する複数の制御レジスタと、前記複数の制御線のうち、２つの制御線に現れる論理値の排他的論理和をそれぞれ演算する複数の排他的論理和回路と、前記複数の排他的論理和回路から出力される論理値をそれぞれ保持する複数の診断レジスタと、前記複数の排他的論理和回路から出力される論理値の論理和を演算する論理和回路を含み、メモリコントローラに搭載され、前記メモリコントローラと前記メモリコントローラに接続される記憶装置との間で転送されるデータ信号の遅延量を前記複数の遅延回路の接続数に応じて変更する可変遅延制御回路の縮退故障診断方法において、
前記複数の制御レジスタに論理０を設定し、前記論理和回路から出力される論理値と期待値との比較に基づいて、前記複数の制御線のいずれかに発生した論理１の縮退故障を検出し、
前記複数の制御レジスタに論理１を設定し、前記論理和回路から出力される論理値と期待値との比較に基づいて、前記複数の制御線のいずれかに発生した論理０の縮退故障を検出することを特徴とする可変遅延制御回路の縮退故障診断方法。
（付記２）
前記複数の制御線のいずれかに発生した論理１の縮退故障を検出した場合、前記複数の診断レジスタに保持された論理値を読み出し、
前記複数の診断レジスタに保持された論理値に基づいて、前記複数の制御線のうち、論理１の縮退故障が発生した制御線を特定し、
前記複数の制御線のいずれかに発生した論理０の縮退故障を検出した場合、前記複数の診断レジスタに保持された論理値を読み出し、
前記複数の診断レジスタに保持された論理値に基づいて、前記複数の制御線のうち、論理０の縮退故障が発生した制御線を特定することを特徴とする付記１記載の可変遅延制御回路の縮退故障診断方法。
（付記３）
前記複数の診断レジスタに保持された論理値を、前記複数の診断レジスタを直列に接続したスキャンチェーンを介して読み出すことを特徴とする付記２記載の可変遅延制御回路の縮退故障診断方法。
（付記４）
前記論理和回路から出力される論理値と期待値との比較に基づいて、前記複数の制御線に縮退故障が発生していないことを検出した場合、データ信号を前記可変遅延制御回路に入力して前記複数の遅延回路を含むデータ経路に伝達させ、前記可変遅延制御回路から出力されるデータ信号が期待値と異なる場合、前記データ経路に発生した縮退故障を検出することを特徴とする付記１ないし付記３のいずれか１項記載の可変遅延制御回路の縮退故障診断方法。
（付記５）
縮退故障が特定された制御線に接続された切替回路が、前記複数の遅延回路のうち、前記メモリコントローラを搭載する半導体装置の動作仕様により使用されない遅延回路に対応して設けられる場合、データ信号を前記可変遅延制御回路に入力して前記使用されない遅延回路を除く遅延回路を含むデータ経路に伝達させ、前記可変遅延制御回路から出力されるデータ信号が期待値と異なる場合、前記データ経路に発生した縮退故障を検出することを特徴とする付記１ないし付記３のいずれか１項記載の可変遅延制御回路の縮退故障診断方法。
（付記６）
前記複数の制御線は、３以上の制御線を含む少なくとも１つの制御線群に分類され、
前記制御線群の各々において、２つの制御線は、前記複数の排他的論理和回路のいずれか１つの入力にそれぞれ接続され、前記２つの制御線を除く制御線の各々は、前記複数の排他的論理和回路のうち一対の排他的論理和回路の入力に共通に接続されることを特徴とする付記１ないし付記５のいずれか１項記載の可変遅延制御回路の縮退故障診断方法。
（付記７）
データ信号が転送される記憶装置に接続され、可変遅延制御回路を有するメモリコントローラにおいて、
前記可変遅延制御回路は、
複数の遅延回路と、
前記複数の遅延回路のうちデータ信号を伝達する遅延回路の接続数を、複数の制御線を介して受ける複数の制御値に応じて切り替える複数の切替回路と、
前記複数の制御線に設定する前記複数の制御値を保持する複数の制御レジスタと、
前記複数の制御線のうち、２つの制御線に現れる論理値の排他的論理和をそれぞれ演算する複数の排他的論理和回路と、
前記複数の排他的論理和回路から出力される論理値をそれぞれ保持する複数の診断レジスタと、
前記複数の排他的論理和回路から出力される論理値の論理和を演算する論理和回路を含み、
前記可変遅延制御回路は、データ信号の遅延量を前記複数の遅延回路の接続数に応じて変更することを特徴とする可変遅延制御回路を有するメモリコントローラ。
【０１０３】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１０４】
ＡＤ…アドレス信号；Ｃ（Ｃ０、Ｃ１、Ｃ２、Ｃ３）…制御レジスタ；ＣＬＫ、ＣＬＫ＃…クロック；ＣＭＤ…コマンド信号；ＤＱ…データ信号；ＤＱＳ、ＤＱＳ＃…データストローブ信号；ＥＯＲ（ＥＯＲ０、ＥＯＲ１、ＥＯＲ２）…排他的論理和回路；ＦＡＩＬ…フェイル信号；ＩＢ…入力バッファ；ＩＮ…入力信号；ＩＰＥ…情報処理装置；ＩＶ（ＩＶ００、ＩＶ０１、ＩＶ１０、ＩＶ１１、ＩＶ２０、ＩＶ２１、ＩＶ３０、ＩＶ３１）…インバータ；ＭＣＮＴ…メモリコントローラ；ＭＩＦ…メモリインタフェース部；ｎ（ｎ０、ｎ１、ｎ２、ｎ３）…出力ノード；ＯＢ…出力バッファ；ＯＲ…論理和回路；ＯＵＴ…出力信号；Ｒ（Ｒ０、Ｒ１、Ｒ２）…診断レジスタ；ＲＣＫ…クロック；ＳＥＬ（ＳＥＬ０、ＳＥＬ１、ＳＥＬ２、ＳＥＬ３）…セレクタ；ＳＥＭ…半導体装置；ＳＩＮ…スキャンイン端子；ＳＯＵＴ…スキャンアウト端子；ＳＰ…スキャンパス；Ｔ０、Ｔ１…試験レジスタ；Ｕ（Ｕ０、Ｕ１、Ｕ２、Ｕ３）…遅延部；ＶＤＬＹ１、ＶＤＬＹ２…可変遅延制御回路
【図１】
0006500693.tif 000002
【図２】
0006500693.tif 000003
【図３】
0006500693.tif 000004
【図４】
0006500693.tif 000005
【図５】
0006500693.tif 000006
【図６】
0006500693.tif 000007
【図７】
0006500693.tif 000008
【図８】
0006500693.tif 000009
【図９】
0006500693.tif 000010