(57)【要約】【課題】回路規模が増大する問題があった。【解決手段】複数の回路ブロックと、入力するクロック信号を遅延制御信号に基づいて遅延したクロック信号を対応する前記複数の回路ブロックに供給する複数のクロック遅延回路と、前記複数の回路ブロックの遅延試験を行う制御回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報を記憶する救済グループ記憶回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの遅延値情報を記憶する、所定数の遅延設定回路と、前記救済グループ記憶回路が記憶した回路ブロックの情報に対応したクロック遅延回路に対し、前記遅延設定回路が記憶した遅延値情報に応じた前記遅延制御信号を割り当てる遅延設定割当制御回路と、を有する半導体集積回路のクロック信号調整回路。【選択図】図１
2011221574.tif 000002
【特許請求の範囲】
【請求項１】
遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、
前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、
前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、
外部からの設定信号で設定される前記遅延制御信号によって、前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行う制御回路と、
前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報を記憶する救済グループ記憶回路と、
前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの遅延値情報を記憶する、前記複数の回路ブロックの数よりも少ない所定数の遅延設定回路と、
前記救済グループ記憶回路が記憶した回路ブロックの情報に対応したクロック遅延回路に対し、前記遅延設定回路が記憶した遅延値情報に応じた前記遅延制御信号を割り当てる遅延設定割当制御回路と、を有する
半導体集積回路のクロック信号調整回路。
【請求項２】
前記遅延設定回路の所定数は、前記複数の回路ブロックの遅延故障が発生する確率に応じて決定される
請求項１に記載の半導体集積回路のクロック信号調整回路。
【請求項３】
前記救済グループ記憶回路は、前記複数の回路ブロックのそれぞれに対応する第１の不揮発性記憶素子を有し、前記遅延試験の結果に応じて、前記遅延処理が必要な回路ブロックに対応した第１の不揮発性記憶素子に情報を書き込む
請求項１または請求項２に記載の半導体集積回路のクロック信号調整回路。
【請求項４】
前記遅延処理が必要な回路ブロックに対応した第１の不揮発性記憶素子は、ヒューズの切断により情報が書き込まれる
請求項３に記載の半導体集積回路のクロック信号調整回路。
【請求項５】
前記遅延設定回路は、前記クロック遅延回路が入力するクロック信号を遅延させる遅延精度に応じた個数の第２の不揮発性記憶素子を有する
請求項１〜請求項４のいずれか１項に記載の半導体集積回路のクロック信号調整回路。
【請求項６】
前記救済グループ記憶回路は、前記複数の回路ブロックの遅延故障が発生する確率に応じて決定される前記遅延設定回路の所定数と、前記複数の回路ブロックの個数と、による組み合わせの数に応じた個数の第１の不揮発性記憶素子を有する
請求項１または請求項２に記載の半導体集積回路のクロック信号調整回路。
【請求項７】
遅延設定割当制御回路は、遅延設定割当回路と、遅延制御切替回路とを有し、
前記所定数の遅延設定回路は、それぞれ記憶した前記遅延処理が必要な回路ブロックの遅延値情報を、遅延設定信号として出力し、
前記遅延設定割当回路は、前記遅延設定回路が出力した遅延設定信号を、前記救済グループ記憶回路が記憶した遅延処理が必要な回路ブロックの情報に応じて割り当て、割当遅延設定信号として出力し、
前記遅延制御切替回路は、前記救済グループ記憶回路が記憶した遅延処理が必要な回路ブロックの情報に応じて、前記割当遅延設定信号を前記遅延制御信号として、遅延処理が必要な回路ブロックに対応するクロック遅延回路へ出力する
請求項１〜請求項６のいずれか１項に記載の半導体集積回路のクロック信号調整回路。
【請求項８】
前記制御回路は、前記外部からの設定信号に応じて、前記複数の回路ブロックに対して遅延処理を行う前記遅延試験用の遅延調整信号を出力し、
前記遅延制御切替回路は、前記遅延試験のとき前記遅延調整信号を前記遅延制御信号として出力する
請求項７に記載の半導体集積回路のクロック信号調整回路。
【請求項９】
遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、
前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、
前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、を有する
半導体集積回路のクロック信号調整回路の制御方法であって、
前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行い、
前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報及びその回路ブロックの遅延値情報を記憶し、
その記憶した回路ブロックの情報に対応した前記クロック遅延回路に対して、前記遅延値情報に基づいた遅延制御信号を割り当てる
半導体集積回路のクロック信号調整回路の制御方法。
【請求項１０】
前記遅延試験において、遅延処理が必要な回路ブロックの数が、前記複数の回路ブロックの遅延故障が発生する確率に応じて決定される数以上であった場合、救済不可信号を生成する
請求項９に記載の半導体集積回路のクロック信号調整回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のクロック遅延調整回路およびその制御方法に関するものである。
【背景技術】
【０００２】
近年、半導体集積回路の製造プロセスの微細化および高速動作化の要求が高くなっている。それに伴い、デバイス性能向上では製造バラツキがカバーしきれなくなってきている。また、統計的ＳＴＡ手法に代表されるような、極力少ないタイミングマージンでの設計がなされるようになってきている。このため、チップ内のあらゆる場所における、遅延故障の発生による歩留り低下が懸念されるようになってきている。半導体集積回路に含まれる数個の特定マクロだけではなく、より多くのランダムにばらついたマクロに対する遅延故障救済への要求が高まってきた。なお、以下ではマクロとは、半導体集積回路を構成する各機能ブロックを指すものとする。
【０００３】
遅延故障救済が可能な従来の技術として特許文献１に開示されているシステムＬＳＩ１のようなものがある。図１０に、システムＬＳＩ１の構成を示す。システムＬＳＩ１は、ロジック回路１０と、ＲＯＭ２０と、クロック遅延回路３０と、遅延設定回路４０と、遅延調整端子５１、５２と、セレクタ４３、６１と、チェックサム計算回路６０と、チェックサム出力端子６２とを有する。
【０００４】
ロジック回路１０は、ＣＰＵや図示しないＲＡＭや入出力回路等の複数の回路ブロック１１と、クロックツリーバッファ１２とを有する。
【０００５】
ここで、回路ブロックとは、予め機能と回路パターンが決定されている論理回路部品で、ハードマクロと呼ばれることもある。そして、この回路ブロックは、目的のシステムＬＳＩの機能に合わせて、各種回路パターンを適宜半導体基板上に配置することで実現される。さらに、この回路ブロックに信号及び電源の配線パターンで接続すると共に、各回路ブロックへのクロック供給経路を設ける。このことにより、所望の機能を有するシステムＬＳＩを構成することができるようになっている。
【０００６】
ロジック回路１０には動作の基本となるクロック信号ＣＫ０が与えられ、このクロック信号ＣＫ０がクロックツリーバッファ１２で位相調整されて、ＣＰＵ等の各回路ブロック１１に供給されるようになっている。
【０００７】
例えば、回路ブロック１１をＣＰＵとすると（以下、ＣＰＵ１１と称す）、ＣＰＵ１１のクロック端子Ｃには、クロックツリーバッファ１２の最終の出力側から、クロック信号ＣＫ２が与えられている。
【０００８】
また、クロックツリーバッファ１２の中間ノードからは、このシステムＬＳＩにおいて試験対象となる特定の回路ブロック２０、例えばＲＯＭ（以下では、ＲＯＭ２０と称す）へ供給するためのクロック信号ＣＫ１が出力される。但し、クロック信号ＣＫ１は、クロック遅延回路３０を経由して与えられる。
【０００９】
クロック遅延回路３０は、縦続接続された複数の遅延素子（ＤＬ）３１ａ〜３１ｃと、セレクタ３２とで構成される。クロック遅延回路３０は、遅延調整信号ＤＣＮの指定によってクロック信号ＣＫ１または、これらの遅延素子３１ａ〜３１ｃで遅延されたクロック信号を遅延クロック信号ＤＣＫとして出力する。
【００１０】
遅延クロック信号ＤＣＫは、ＲＯＭ２０のクロック端子Ｃに与えられる。ＲＯＭ２０は、ＣＰＵ１１で実行するプログラムや固定データが記憶されたもので、アドレス信号ＡＤで指定された領域の記憶内容を読み出し、データＲＤとして出力する。
【００１１】
遅延設定回路４０は、製造後の試験で得られたクロック遅延回路３０の適切な遅延調整量を記憶させておく。例えば電源電位ＶＤＤと接地電位ＧＮＤの間にヒューズ４１と抵抗４２からなる直列回路を複数並列に接続し、そのヒューズ４１と抵抗４２の各接続点からヒューズ４１の切断／未切断の状態を、遅延設定信号ＤＳＴとして出力する。
【００１２】
遅延設定信号ＤＳＴは、セレクタ４３の入力端子Ａに与えられる。また、このセレクタ４３の入力端子Ｂには、遅延調整端子５１から遅延調整信号ＤＡＤが与えられるようになっている。セレクタ４３は、モード指定端子５２から与えられるモード信号ＭＯＤによって通常動作モードが指定されたときに入力端子Ａを選択し、試験動作モードが指定されたときには入力端子Ｂを選択する。そして、その選択した信号を出力端子Ｑから遅延調整信号ＤＣＮとして、クロック遅延回路３０に出力する。
【００１３】
チェックサム計算回路６０及びセレクタ６１は、システムＬＳＩ１の製造後の試験を行う。チェックサム計算回路６０は、クロック端子Ｃに与えられるクロック信号ＣＫ２に従ってアドレス信号ＡＤＴを０から順次増加させて出力する。更に、それと共にＲＯＭ２０の各アドレスから読み出された読み出しデータＲＤを累積加算（但し、桁上がりは無視）して、その結果をチェックサムＳＵＭとしてチェックサム出力端子６２に出力する。
【００１４】
チェックサム計算回路６０のアドレス信号ＡＤＴは、セレクタ６１の入力端子Ｂに与えられている。セレクタ６１の入力端子Ａには、ＣＰＵ１１からアドレス信号ＡＤＲが与えられ、このセレクタ６１の出力端子Ｑからアドレス信号ＡＤがＲＯＭ２０に与えられている。また、ＲＯＭ２０から出力される読み出しデータＲＤは、ＣＰＵ１１とチェックサム計算回路６０に与えられるようになっている。
【００１５】
以下、このシステムＬＳＩ１の製造直後の試験調整処理を説明する。まず、遅延調整端子５１、モード指定端子５２及びチェックサム出力端子６２に、ＬＳＩテスタ等の試験治具を接続し、モード信号ＭＯＤを試験動作モード（例えば、レベル"Ｈ"）に設定する。これにより、セレクタ４３、６１では入力端子Ｂ側が選択され、遅延調整端子５１から与えられる遅延調整信号ＤＡＤが、遅延調整信号ＤＣＮとしてクロック遅延回路３０に出力される。また、チェックサム計算回路６０から出力されるアドレス信号ＡＤＴが、ＲＯＭ２０へアドレス信号ＡＤとして与えられる。
【００１６】
次に、遅延調整信号ＤＡＤを０に設定して、所定のクロック信号ＣＫ０を与える。これにより、チェックサム計算回路６０から順次出力されるアドレス信号ＡＤＴに従って、これに対応するＲＯＭ２０の記憶内容が読み出され、読み出しデータＲＤとして出力される。
チェックサム計算回路６０では、順次読み出された読み出しデータＲＤの累積加算が行われ、その結果がチェックサムＳＵＭとして出力される。
【００１７】
そして、ＲＯＭ２０の全記憶内容に対するチェックサムＳＵＭが出力された時点で、その値が予めＲＯＭ２０の記憶内容に基づいて算出されている値と比較して、正しいか否かを判定する。このようなチェックサムによる試験を、設定可能な遅延調整信号ＤＡＤの値に対して順次実施する。そして、正しいチェックサムが得られたときに、その遅延調整信号ＤＡＤの値を、遅延設定回路４０にヒューズ４１の切断／未切断の状態として記憶させる。
【００１８】
このようにして、製造後の試験調整が行われたシステムＬＳＩは、装置に組み込まれて使用される。このとき、通常動作モードが指定されるように、モード指定端子５２はレベル"Ｌ"に固定接続される。これにより、クロック遅延回路３０には、遅延設定回路４０に設定された遅延設定信号ＤＳＴが、遅延調整信号ＤＣＮとして与えられるので、このクロック遅延回路３０から適切な遅延時間を有する遅延クロック信号ＤＣＫが出力されてＲＯＭ２０に供給される。また、ＣＰＵ１１から出力されるアドレス信号ＡＤＲが、ＲＯＭ２０に対するアドレス信号ＡＤとして与えられる。
【００１９】
以上のように、この実施例１のシステムＬＳＩ１は、ＲＯＭ２０に対するクロック信号の遅延時間を製造後に調整するためのクロック遅延回路３０及びチェックサム計算回路６０を有すると共に、調整した値を記憶するための遅延設定回路４０を有している。これにより、製造プロセスのばらつきによってクロック信号のタイミングが設計値からずれてしまった場合でも、製造後の製品に応じてクロック信号のタイミングを補正することができるので、動作ノイズによる誤動作や、クロックタイミングのずれによる誤動作を抑制することが可能になり、製品不良を回避することができるという利点がある。
【００２０】
また、内部ブロックへの各クロック遅延量を遅延測定回路で測定し、その測定結果に基いて遅延調整回路（クロック遅延回路に相当）で各クロックの遅延量を調整し、その調整値を不揮発性メモリで記憶させることで、製造ばらつきによって発生した想定外のクロック遅延を修正するという特許文献２のような技術もある。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２００６−１２０４６号公報
【特許文献２】特開２００４−２２８５０４号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
上述した従来の技術では、チップに含まれる全てのマクロを遅延故障救済の対象とした場合、救済に必要な情報を記憶する非揮発性記憶回路（ヒューズ回路）を個々のマクロに対して必要となる。このため、不揮発性記憶回路の数が膨大になり、チップに占める不揮発性記憶回路の回路規模が大きくなってしまう問題が発生する。このため、不揮発性記憶回路の規模を増やさずに、全てのマクロの遅延故障に対する救済可能な機構が求められている。
【課題を解決するための手段】
【００２３】
本発明の一態様は、遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、外部からの設定信号で設定される前記遅延制御信号によって、前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行う制御回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報を記憶する救済グループ記憶回路と、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの遅延値情報を記憶する、前記複数の回路ブロックの数よりも少ない所定数の遅延設定回路と、前記救済グループ記憶回路が記憶した回路ブロックの情報に対応したクロック遅延回路に対し、前記遅延設定回路が記憶した遅延値情報に応じた前記遅延制御信号を割り当てる遅延設定割当制御回路と、を有する半導体集積回路のクロック信号調整回路である。
【００２４】
本発明の他の態様は、遅延試験対象となる、特定の機能ブロックを、それぞれ備える複数の回路ブロックと、前記複数の回路ブロックに、クロック信号を分配するクロックツリーバッファと、前記クロックツリーバッファから入力するクロック信号を遅延制御信号に基づいた遅延値で遅延させ、その遅延したクロック信号を、対応する前記複数の回路ブロックに供給する遅延処理を行う複数のクロック遅延回路と、を有する
半導体集積回路のクロック信号調整回路の制御方法であって、前記複数の回路ブロックに対して行った遅延処理により、前記複数の回路ブロックの遅延試験を行い、前記遅延試験の結果に応じて、前記複数の回路ブロックのうち遅延処理が必要な回路ブロックの情報及びその回路ブロックの遅延値情報を記憶し、その記憶した回路ブロックの情報に対応した前記クロック遅延回路に対して、前記遅延値情報に基づいた遅延制御信号を割り当てる
半導体集積回路のクロック信号調整回路の制御方法である。
【００２５】
本発明により、複数の回路ブロックの全てに対応した遅延設定回路を必要としない。このため、最小限の数の遅延設定回路により、遅延処理が必要な回路ブロックの遅延故障を救済でき、回路規模の増大を抑えることが可能となる。
【発明の効果】
【００２６】
本発明は、半導体集積回路の回路規模の増大を抑えることが可能である。
【図面の簡単な説明】
【００２７】
【図１】実施の形態にかかるクロック遅延自動調整回路のブロック構成の一例である。
【図２】実施の形態にかかるクロック遅延回路の構成の一例である。
【図３】実施の形態にかかる遅延設定回路の構成の一例である。
【図４】実施の形態にかかる救済グループ記憶回路の一例である。
【図５】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図６】実施の形態にかかるテスター結果ファイルの一例である。
【図７】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図８】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図９】実施の形態にかかるクロック遅延自動調整回路の動作を説明するフローチャートである。
【図１０】従来のクロック遅延自動調整回路のブロック構成である。
【発明を実施するための形態】
【００２８】
発明の実施の形態
【００２９】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を半導体集積回路のクロック遅延自動調整回路に適用したものである。図１に本実施の形態にかかるクロック遅延自動調整回路ＣＨＩＰ１００の構成を示す。
【００３０】
クロック遅延自動調整回路ＣＨＩＰ１００は、ロジック回路１０と、マクログループ１３０、１３１、１３２と、クロック遅延回路３０、３１、３２と、遅延制御切替回路１１２と、遅延設定割当回路１１３と、救済グループ記憶回路１１４と、制御回路１１５と、遅延設定回路１１６、１１７とを有する。なお、遅延制御切替回路１１２と、遅延設定割当回路１１３とで、遅延設定割当制御回路を構成する。
【００３１】
ロジック回路１０は、ＣＰＵ１１等の特定の回路ブロックおよびクロックツリーバッファ１２を有する。クロックツリーバッファ１２は、図１の例では、遅延素子ＤＬＹ１２ａ〜ＤＬＹ１２ｃを有する。
【００３２】
ここで、ロジック回路１０は、動作の基本となるクロック信号ＣＫ０を入力する。そして、クロック信号ＣＫ０は、クロックツリーバッファ１２で位相調整され、ＣＰＵ１１等の各回路ブロックに供給されるようになっている。
【００３３】
クロックツリーバッファ１２の遅延素子ＤＬＹ１２ａ〜ＤＬＹ１２ｃは、順に直列接続されている。遅延素子ＤＬＹ１２ａは、クロック信号ＣＫ０を所定の遅延させたクロック信号ＣＫ１を出力する。遅延素子ＤＬＹ１２ｂは、クロック信号ＣＫ１を所定の遅延させたクロック信号ＣＫ２を出力する。遅延素子ＤＬＹ１２ｃは、クロック信号ＣＫ２を所定の遅延させたクロック信号ＣＫ３を出力する。
【００３４】
例えば、回路ブロック１０をＣＰＵとすると（以下、ＣＰＵ１１と称す）、ＣＰＵ１１のクロック端子Ｃには、クロックツリーバッファ１２の最終の出力側から、クロック信号ＣＫ２が与えられている。
【００３５】
マクログループ１３０、１３１、１３２はそれぞれ、例えば、ＲＯＭ等の特定の回路ブロックを有する。本実施の形態では、マクログループ１３０は、ＲＯＭ１３０ａ〜１３０ｃを有する。マクログループ１３１は、ＲＯＭ１３１ａ〜１３１ｃを有する。マクログループ１３２は、ＲＯＭ１３２ａ〜１３２ｃを有する。
【００３６】
マクログループ１３０、１３１、１３２は、ロジック回路１０とそれぞれデータ入出力を行う構成となっている。例えばＲＯＭ１３０ａは、ＣＰＵ１１で実行するプログラムや固定データが記憶されたもので、アドレス信号ＡＤで指定された領域の記憶内容を、読み出しデータＲＤとして出力する。マクログループ１３０、１３１、１３２に含まれるＲＯＭ１３０ａ〜１３０ｃ、１３１ａ〜１３１ｃ、１３２ａ〜１３２ｃは、それぞれ専用のアドレス信号、データＲＤを有しているものとする。
【００３７】
遅延設定回路１１６、１１７は、クロックタイミング等の不良の救済を行うマクログループの数だけ搭載され、その数はマクログループの総数以下である。図１に示すクロック遅延自動調整回路ＣＨＩＰ１００では、３つのマクログループ（マクログループ１３０、１３１、１３２）に対して、２つの遅延設定回路（遅延設定回路１１６、１１７）を有している構成とする。
【００３８】
遅延設定回路１１６は、遅延設定制御入力端子１０６と、遅延設定値入力端子１０８とを入力端子とし、遅延設定信号ＤＳ０を遅延設定割当回路１１３に出力する。同様に、遅延設定回路１１７は、遅延設定制御入力端子１０７、遅延設定値入力端子１０９と、を入力端子とし、遅延設定信号ＤＳ１を遅延設定割当回路１１３に出力する。なお、遅延設定制御入力端子１０６、１０７及び遅延設定値入力端子１０８、１０９は、半導体集積回路が構成されるチップの外部端子である。また、遅延設定回路１１６、１１７の構成として、図１０の遅延設定回路４０と同様な構成の不揮発性記憶回路であってもよい。つまり、内部にヒューズを有し、そのヒューズの切断、未切断で情報を記憶する。
【００３９】
救済グループ記憶回路１１４は、救済グループ設定制御入力端子１１０より与えられる救済グループ設定制御信号と、救済グループ選択入力端子１１１より与えられる救済グループ選択信号を入力し、救済グループ設定信号ＲＧＳを遅延設定割当回路１１３と遅延制御切替回路１１２に出力する。なお、救済グループ設定制御入力端子１１０、救済グループ選択入力端子１１１は、半導体集積回路が構成されるチップの外部端子である。
【００４０】
遅延設定割当回路１１３は、遅延設定回路１１６、１１７の出力信号である遅延設定信号ＤＳ０、ＤＳ１と、救済グループ記憶回路１１４の出力である救済グループ設定信号ＲＧＳを入力する。そして、割当遅延設定信号ＤＳＡ０〜ＤＳＡ２を、それぞれ遅延制御切替回路１１２に出力する。なお、割当遅延設定信号ＤＳＡ０〜ＤＳＡ２は、それぞれマクログループ１３０〜１３２に対応する信号である。なお、必要に応じて、割当遅延設定信号ＤＳＡ０〜ＤＳＡ２をまとめて割当遅延設定信号ＤＳＡとする。
【００４１】
制御回路１１５は、クロック遅延初期値入力端子ＩＮ１００によるクロック遅延初期値信号と、クロック遅延終了値入力端子ＩＮ１０１によるクロック遅延終了値信号と、Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２によるＰａｓｓ／Ｆａｉｌ判定信号を入力する。そして、制御回路１１５は、クロック遅延上限値信号をクロック遅延上限値出力端子ＯＵＴ１０３へ出力、クロック遅延下限値信号をクロック遅延下限値出力端子ＯＵＴ１０４へ出力、救済要否信号を救済要否出力端子ＯＵＴ１０５へ出力、救済可否信号を救済可否出力端子ＯＵＴ１２９へ出力する。
【００４２】
なお、クロック遅延初期値入力端子ＩＮ１００は、クロック遅延初期値入力端子ＩＮ１００ａ、ＩＮ１００ｂ、ＩＮ１００ｃを有する。クロック遅延終了値入力端子ＩＮ１０１は、クロック遅延終了値入力端子ＩＮ１０１ａ、ＩＮ１０１ｂ、ＩＮ１０１ｃを有する。Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２は、Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２ａ、ＩＮ１０２ｂ、ＩＮ１０２ｃを有する。クロック遅延上限値出力端子ＯＵＴ１０３は、クロック遅延上限値出力端子ＯＵＴ１０３ａ、ＯＵＴ１０３ｂ、ＯＵＴ１０３ｃを有する。クロック遅延下限値出力端子ＯＵＴ１０４は、クロック遅延下限値出力端子ＯＵＴ１０４ａ、ＯＵＴ１０４ｂ、ＯＵＴ１０４ｃを有する。救済要否出力端子ＯＵＴ１０５は、救済要否出力端子ＯＵＴ１０５ａ、ＯＵＴ１０５ｂ、ＯＵＴ１０５ｃを有する。
【００４３】
更に、制御回路１１５は、遅延制御切替回路１１２へ遅延調整信号ＤＡＤ０〜ＤＡＤ２を出力する。なお、遅延調整信号ＤＡＤ０〜ＤＡＤ２は、それぞれマクログループ１３０〜１３２に対応する信号である。なお、必要に応じて、遅延調整信号ＤＡＤ０〜ＤＡＤ２をまとめて遅延調整信号ＤＡＤとする。
【００４４】
クロック遅延初期値入力端子ＩＮ１００は、クロック遅延初期値入力端子ＩＮ１００ａ〜ＩＮ１００ｃを有する。クロック遅延初期値入力端子ＩＮ１００ａ〜ＩＮ１００ｃそれぞれマクログループ１３０〜１３２に対応する入力端子である。同様に、クロック遅延終了値入力端子ＩＮ１０１は、クロック遅延終了値入力端子ＩＮ１０１ａ〜ＩＮ１０１ｃを有する。クロック遅延終了値入力端子ＩＮ１０１ａ〜ＩＮ１０１ｃは、それぞれマクログループ１３０〜１３２に対応する入力端子である。
【００４５】
同様に、Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２は、Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２ａ〜ＩＮ１０２ｃを有する。Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２ａ〜ＩＮ１０２ｃは、それぞれマクログループ１３０〜１３２に対応する入力端子である。同様に、クロック遅延上限値出力端子ＯＵＴ１０３は、クロック遅延上限値出力端子ＯＵＴ１０３ａ〜ＯＵＴ１０３ｃを有する。クロック遅延上限値出力端子ＯＵＴ１０３ａ〜ＯＵＴ１０３ｃは、それぞれマクログループ１３０〜１３２に対応する出力端子である。
【００４６】
同様に、クロック遅延下限値出力端子ＯＵＴ１０４は、クロック遅延下限値出力端子ＯＵＴ１０４ａ〜ＯＵＴ１０４ｃを有する。クロック遅延下限値出力端子ＯＵＴ１０４ａ〜ＯＵＴ１０４ｃは、それぞれマクログループ１３０〜１３２に対応する出力端子である。同様に、救済要否出力端子ＯＵＴ１０５は、救済要否出力端子ＯＵＴ１０５ａ〜ＯＵＴ１０５ｃを有する。救済要否出力端子ＯＵＴ１０５ａ〜ＯＵＴ１０５ｃは、それぞれマクログループ１３０〜１３２に対応する出力端子である。
【００４７】
遅延制御切替回路１１２は、遅延調整信号ＤＡＤ０〜ＤＡＤ２と、遅延設定割当回路１１３の出力信号である割当遅延設定信号ＤＳＡ０〜ＤＳＡ２と、救済グループ記憶回路１１４の出力信号である救済グループ設定信号ＲＧＳを入力する。また、遅延制御切替回路１１２は、遅延制御信号ＤＣＮ０〜ＤＣＮ２を、それぞれクロック遅延回路３０〜３２に出力する。なお、必要に応じて、遅延制御信号ＤＣＮ０〜ＤＣＮ２をまとめて、遅延制御信号ＤＣＮとする。
【００４８】
クロック遅延回路３０〜３２は、それぞれ遅延制御信号ＤＣＮ０〜ＤＣＮ２及びクロック信号ＣＫ０〜ＣＫ２を入力する。そして、クロック遅延回路３０〜３２は、それぞれ遅延クロック信号ＤＣＫ０〜ＤＣＫ２を出力する。遅延クロック信号ＤＣＫ０〜ＤＣＫ２は、それぞれマクログループ１３０〜１３２に対応する。なお、必要に応じて、遅延クロック信号ＤＣＫ０〜ＤＣＫ２をまとめて、遅延クロック信号ＤＣＫとする。
【００４９】
以下に、クロック遅延回路３０〜３２の構成を示す。但し、クロック遅延回路３０〜３２は同様な構成であり、図２には代表してクロック遅延回路３０のみを示す。なお、この構成は基本的に図１０のクロック遅延回路３０と同じである。クロック遅延回路３０は、セレクタＳＥＬ３０と、遅延素子ＤＬＹ３１〜ＤＬＹ３３とを有する。
【００５０】
遅延素子ＤＬＹ３１〜ＤＬＹ３３は、順に直列接続されている。遅延素子ＤＬＹ３１はクロック信号ＣＫ０を入力し、所定の遅延を持たせて出力する。遅延素子ＤＬＹ３２、ＤＬＹ３３も同様に、入力した信号を所定の遅延を持たせて出力する。
【００５１】
セレクタＳＥＬ３０は、遅延制御信号ＤＣＮ０に応じて、クロック信号ＣＫ０もしくは遅延素子ＤＬＹ３１〜ＤＬＹ３３の出力信号のうちいずれか１つを選択して出力する。
【００５２】
以上のように、クロック遅延回路３０〜３２は、それぞれ入力したクロック信号ＣＫ０〜ＣＫ２の遅延した信号を、それぞれ遅延制御信号ＤＣＮ０〜ＤＣＮ２に応じて出力することができる。
【００５３】
図３に遅延設定回路１１６の構成の一例を示す。なお、遅延設定回路１１７も、遅延設定回路１１６と同様の構成であるため、ここでの説明は省略する。
【００５４】
ここで、クロック遅延回路３０〜３２がそれぞれ遅延クロック信号ＤＣＫの遅延量をＫ通りに調整可能である場合、遅延設定回路１１６、１１７はそれぞれｌｏｇ２（Ｋ）の小数点以下を切り上げた数だけのヒューズ回路を有する。Ｋ＝４とする場合、ヒューズ回路が２個となり、図３のように遅延設定回路１１６は、ヒューズ回路１１８、１１９を有する。
【００５５】
ヒューズ回路１１８は、値入力端子１１８ａと、値設定端子１１８ｂとを有する。ヒューズ回路１１９は、値入力端子１１９ａと、値設定端子１１９ｂとを有する。ヒューズ回路１１８、１１９は、それぞれ値設定端子１１８ｂ、１１９ｂに"０"もしくは"１"を入力することで、値入力端子１１８ａ、１１９ａに入力された値が記憶される。なお、以下では、値設定端子１１８ｂ、１１９ｂに"１"が入力される場合に、値入力端子１１８ａ、１１９ａに入力された値が記憶されるものとする。
【００５６】
遅延設定回路１１６のヒューズ回路１１８、１１９のそれぞれの値入力端子１１８ａ、１１９ａは、遅延設定値入力端子１０８に接続される。遅延設定回路１１６のヒューズ回路１１８、１１９のそれぞれの値設定端子１１８ｂ、１１９ｂは、遅延設定制御入力端子１０６に接続される。なお、遅延設定回路１１６のヒューズ回路１１８、１１９のそれぞれの出力端子１１８ｃ、１１９ｃから出力される信号は、遅延設定回路１１６の出力端子１２５から遅延設定信号ＤＳ０として遅延設定割当回路１１３に出力される。
【００５７】
同様に、遅延設定回路１１７のヒューズ回路１１８、１１９のそれぞれの値入力端子１１８ａ、１１９ａは、遅延設定値入力端子１０９に接続される。遅延設定回路１１７のヒューズ回路１１８、１１９のそれぞれの値設定端子１１８ｂ、１１９ｂは、遅延設定制御入力端子１０７に接続される。なお、遅延設定回路１１７のヒューズ回路１１８、１１９のそれぞれの出力端子１１８ｃ、１１９ｃから出力される信号は、遅延設定信号ＤＳ１として遅延設定割当回路１１３に出力される。
【００５８】
図４に救済グループ記憶回路１１４の構成の一例を示す。救済グループ記憶回路１１４は、ヒューズ回路１２０、１２１、１２２を有する。なお、ヒューズ回路１２０、１２１、１２２は、それぞれマクログループ１３０、１３１、１３２に対応しているものとする。
【００５９】
ヒューズ回路１２０〜１２２のそれぞれの値入力端子１２０ａ〜１２２ａは、救済グループ選択入力端子１１１に接続される。ヒューズ回路１２０〜１２２のそれぞれの値設定端子１２０ｂ〜１２２ｂは、救済グループ設定制御入力端子１１０に接続される。なお、ヒューズ回路１２０〜１２２のそれぞれの出力端子１２０ｃ〜１２２ｃから出力される信号は、救済グループ設定信号ＲＧＳとして、遅延設定割当回路１１３と遅延制御切替回路１１２に出力される。
【００６０】
また、ＣＰＵ１１は、ＲＯＭ１３０ａ〜１３０ｃ、１３１ａ〜１３１ｃ、１３２ａ〜１３２ｃのファンクション動作時における入出力パス上の論理回路を有するものとする。また、ＣＰＵ１１は、ＲＯＭ１３０ａ〜１３０ｃ、１３１ａ〜１３１ｃ、１３２ａ〜１３２ｃの遅延故障テストを行うテスト回路を有する。なお、ＲＯＭ１３０ａ〜１３０ｃ、１３１ａ〜１３１ｃ、１３２ａ〜１３２ｃは、それぞれ図１０のＲＯＭ２０と同等な機能を有している。また、クロック遅延回路３０〜３２は、それぞれ図１０のクロック遅延回路３０と同等な機能を有している。
【００６１】
なお、図１に示すクロック遅延回路３０〜３２は、それぞれ複数のＲＯＭにクロック信号線を通じて接続しているが、単一のＲＯＭのみに接続していてもよい。さらに、接続する回路はＲＯＭに限らず、遅延故障テストさえ行うことができれば一般的なマクロでよい。１つのクロック遅延回路にクロック信号線を通じて接続されているすべてのマクロの集合（マクログループ１３０〜１３２）が遅延故障テストおよび故障救済の対象である。なお、各クロック遅延回路３０〜３２の出力クロック信号線は、それぞれ対応するマクログループに含まれる全マクロのクロック信号の入力のみに接続されている。
【００６２】
以下に、本実施の形態のクロック遅延自動調整回路ＣＨＩＰ１００の動作について説明する。図５にクロック遅延自動調整回路ＣＨＩＰ１００の動作を説明するフローチャートを示す。この図５に示すフローチャートは、例えば複数のクロック遅延自動調整回路ＣＨＩＰ１００のチップ（以下、必要に応じて単にチップと称す）が形成されるウエハに対して適用した動作フローである。
【００６３】
このウエハテストでは、例えば、高温テストと低温テストが、それぞれテスターを用いて行われるものとする。なお、それぞれのテストの順番を考慮しなくても良いように、ここでは１回目テスター処理、２回目テスター処理と呼ぶ。
【００６４】
図５に示すように、まず、１回目テスター処理を行う（Ｓ１００）。１回目テスター処理の結果が、テスタプログラムによりファイルとして、テスターに保存される。このファイルのことを、１回目テスター結果ファイルと称す。この１回目テスター結果ファイルの一例を図６に示す。なお、図６の１回目テスター結果ファイルでは、例として一枚のウエハー上にＮ個の半導体集積回路チップが存在し、各チップには３つずつのマクログループが存在しているとする。図６の１回目テスター結果ファイルには、チップごとに救済可否が記載されており、またチップごとに全マクログループについてクロック遅延下限値、クロック遅延上限値、救済要否が記載されている。
【００６５】
次に、１回目テスター結果ファイルをテスターに入力し、２回目テスター処理を行う（Ｓ１０１）。２回目テスター処理の結果が、テスタプログラムによりファイルとして、テスターに保存される。このファイルのことを、２回目テスター結果ファイルと称す。この２回目テスター結果ファイルは、図６と同様の構成で記載される。
【００６６】
次に、ステップＳ１０１より得た２回目テスター結果ファイルに記載された、チップ毎の救済可否情報を参照し、救済可能とされたチップに対して救済グループ設定処理を行う（Ｓ１０２）。このステップＳ１０２の救済グループ設定処理では、以下のことが行われる。
【００６７】
まず、テスタプログラムが２回目テスター結果ファイルに記載された各マクログループ１３０〜１３２に対応する救済要否の判定を行う。
【００６８】
その判定結果に従って、救済グループ記憶回路１１４が救済グループ選択入力端子１１１より、救済が行われるマクログループ（以降、救済グループと呼ぶ）を示す信号を入力する。更に、救済グループ設定制御入力端子１１０よりヒューズ切断制御信号を入力する。
【００６９】
このことにより、救済グループ記憶回路１１４のヒューズ回路１２０〜１２２において、救済グループ選択入力端子１１１より入力された救済グループを示す信号が記憶され、チップ全体の電源を落としても、救済グループが記憶される。ヒューズ回路１２０〜１２２に記憶された設定値は、図４の選択グループ出力端子１２６〜１２８により救済グループ設定信号ＲＧＳとして出力される。
【００７０】
例えば、マクログループ１３０、１３２を救済する場合、ヒューズ回路１２０、１２２に接続する救済グループ選択入力端子１１１に"１"を入力する。また、ヒューズ回路１２１に接続する救済グループ選択入力端子１１１には"０"を入力する。そして、全ての救済グループ設定制御入力端子１１０に"１"を入力することで、救済グループがマクログループ１３０、１３２であることが記憶される。この結果、救済グループ設定信号ＲＧＳ＝"１０１"が出力される。
【００７１】
なお、図４の救済グループ記憶回路１１４は、マクログループ１３０〜１３２にそれぞれ対応したヒューズ回路１２０〜１２２を有している。つまり、救済グループ記憶回路１１４には、マクログループの個数分のヒューズ回路１２０〜１２２が必要である。但し、以下に述べるような救済グループの全組み合わせが表現できるビット分のみで構成することも出来る。
【００７２】
例えば、マクログループの個数が５個、救済個数が２個である場合を考える。この場合、救済グループ記憶回路１１４が、"０００００"、"００００１"、"０００１０"、"００１００"、"０１０００"、"１００００"、"０００１１"、"００１１０"、"０１１００"、"１１０００"、"００１０１"、"０１０１０"、"１０１００"、"０１００１"、"１００１０"、"１０００１"の計１６個の出力状態が記憶できればよい。このため、救済グループ記憶回路１１４において、ヒューズ回路を４個だけ用意すればよい。但し、この場合デコーダ回路が必要になる。
【００７３】
そして、救済グループ記憶回路１１４は、上述したような救済グループが記憶されると救済グループを示す救済グループ設定信号ＲＧＳを、遅延設定割当回路１１３及び遅延制御切替回路１１２へ出力する。
【００７４】
遅延設定割当回路１１３では、救済グループ設定信号ＲＧＳに従って遅延設定回路１１６、１１７の設定値である遅延設定信号ＤＳ０、ＤＳ１を、対応するマクログループの割当遅延設定信号ＤＳＡ出力ポートに割当て、遅延制御切替回路１１２へ出力する。なお、ここでは、マクログループ１３０〜１３２には識別番号"０"、"１"、"２"が与えられているものとする。また、遅延設定回路１１６、１１７にも別の識別番号"０"、"１"が与えられるものとする。
【００７５】
遅延設定割当回路１１３は、対応するマクログループの識別番号が小さい順に割当遅延設定信号ＤＳＡ出力ポート（ＤＳＡ０、ＤＳＡ１、ＤＳＡ２）を、識別番号が小さい遅延設定回路の遅延設定信号に割り当てる。
【００７６】
例えば、救済グループがマクログループ１３０のみである場合は、上述した動作により救済グループ記憶回路１１４が、救済グループ設定信号ＲＧＳ＝"１００"を出力する。この場合、遅延設定割当回路１１３において、識別番号"０"であるマクログループ１３０に対応する割当遅延設定信号ＤＳＡ０には、識別番号"０"である遅延設定回路１１６による遅延設定信号ＤＳ０が出力される。なお、他のマクログループに対応する割当遅延設定信号ＤＳＡ１、ＤＳＡ２は、任意の値を出力する。
【００７７】
また他の例として、救済グループがマクログループ１３０、１３２の場合、救済グループ記憶回路１１４が、救済グループ設定信号ＲＧＳ＝"１０１"を出力する。この場合、遅延設定割当回路１１３において、識別番号"０"であるマクログループ１３０に対応する割当遅延設定信号ＤＳＡ０には、識別番号"０"である遅延設定回路１１６による遅延設定信号ＤＳ０が出力され、識別番号"２"であるマクログループ１３２に対応する割当遅延設定信号ＤＳＡ２には、識別番号"１"である遅延設定回路１１７による遅延設定信号ＤＳ１が出力される。なお、マクログループ１３１に対応する割当遅延設定信号ＤＳＡ１は、任意の値を出力する。
【００７８】
次に、遅延制御切替回路１１２は、救済グループ設定信号ＲＧＳに従って、クロック遅延回路３０、３１、３２にそれぞれ対応する遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２を、遅延調整信号ＤＡＤ０、ＤＡＤ１、ＤＡＤ２か、割当遅延設定信号ＤＳＡ０、ＤＳＡ１、ＤＳＡ２か、に切り替える。なお、遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２には、制御回路１１５が出力するそれぞれ遅延調整信号ＤＡＤ０、ＤＡＤ１、ＤＡＤ２が対応する。同様に、遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２には、遅延設定割当回路１１３が出力するそれぞれ割当遅延設定信号ＤＳＡ０、ＤＳＡ１、ＤＳＡ２が対応する。この遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２によりそれぞれクロック遅延回路３０、３１、３２に対して遅延量制御を行う。
【００７９】
上記の遅延設定割当回路１１３および遅延制御切替回路１１２の動作により、救済グループに対応する遅延制御信号ＤＣＮには、対応する割当遅延設定信号ＤＳＡが出力され、救済が行われないマクログループに対応する遅延制御信号ＤＣＮには、対応する遅延調整信号ＤＡＤが出力される。
【００８０】
なお、チップの設計段階の制御回路１１５は、全ての遅延調整信号ＤＡＤに固定値を出力する。このとき、救済グループ記憶回路１１４は未設定である。よって、遅延制御切替回路１１２は、全ての遅延制御信号ＤＣＮとして、遅延調整信号ＤＡＤを出力する。そのためチップの設計段階では、制御回路１１５より出力される固定値の遅延調整信号ＤＡＤにより、全てのクロック遅延回路３０、３１、３２のクロック遅延量が固定されて設計される。
【００８１】
次に、ステップＳ１０１で得られた２回目テスター結果ファイルに記載された、チップ毎の救済可否情報を参照し、救済可能とされたチップに対して遅延設定処理を行う（Ｓ１０３）。まず、この遅延設定処理では、テスタプログラムが、２回目テスター結果ファイルに記載された各救済グループの有効設定範囲から各救済グループのクロック遅延設定値を求める。例えば、この遅延設定値として、中央値を求める。そして、それぞれ対応する遅延設定回路１１６、１１７の遅延設定値入力端子１０８、１０９にこの設定値を入力する。更に、遅延設定制御入力端子１０６、１０７より遅延設定制御信号を入力して、救済グループのクロック遅延値を記憶する。
【００８２】
以下に図３の遅延設定回路１１６での具体的な動作例を示す。まず、遅延設定値入力端子１０８より設定する遅延値を入力する。次に、遅延設定制御入力端子１２３に"１"を入力し、ヒューズ回路１１８、１１９の切断を行う。この後は、チップの電源を落としても設定値が記憶されており、記憶された設定値が遅延設定値出力端子１２５より遅延設定信号ＤＳ０として出力される。なお、遅延設定回路１１７も同様の動作を行い、設定値が記憶され、遅延設定回路１１７の遅延設定値出力端子１２５より遅延設定信号ＤＳ１が出力される。
【００８３】
より具体的な数値を用いて、遅延設定信号ＤＳ０の動作を説明する。なお、前提として遅延設定回路１１６に対応するマクログループを、マクログループ１３０とする。そして、クロック遅延回路３０が、遅延制御信号ＤＣＮ０のパターン"００"により遅延クロック信号ＤＣＫ０の遅延量が１．０ｎｓ、"０１"により１．１ｎｓ、"１０"により１．２ｎｓ、"１１"により１．３ｎｓに設定可能であるとする。
【００８４】
この前提条件にて、遅延クロック信号ＤＣＫ０の遅延量を１．２ｎｓに設定する場合、ヒューズ回路１１８に対応する遅延設定値入力端子１０８には"１"、ヒューズ回路１１９に対応する遅延設定値入力端子１０８には"０"を入力する。次に、遅延設定制御入力端子１２３に"１１"を入力することで、この遅延設定値入力端子１０８に入力した値が記憶される。その後、チップの電源を落としても設定値が記憶されており、遅延設定値出力端子１２５から"１０"が出力される。
【００８５】
図７に、1回目のテスター処理のフローチャートを示す。この図７のフローチャートを用いて、図５のステップＳ１００における１回目テスター処理の動作を説明する。
【００８６】
まず、テスターのテストプログラムにより、制御回路１１５は、それぞれクロック遅延初期値として、各マクログループ１３０、１３１、１３２に対応するクロック遅延回路３０、３１、３２で調整可能な最小値を、クロック遅延初期値入力端子ＩＮ１００ａ、ＩＮ１００ｂ、ＩＮ１００ｃより入力する。同様に、それぞれクロック遅延終了値として、各マクログループ１３０、１３１、１３２に対応するクロック遅延回路３０、３１、３２で調整可能な最大値を、クロック遅延終了値入力端子ＩＮ１０１ａ、ＩＮ１０１ｂ、ＩＮ１０１ｃより入力する（Ｓ１１０）。
【００８７】
次に、テスタプログラムがクロック遅延自動調整回路ＣＨＩＰ１００に遅延調整処理を行わせる（Ｓ１１１）。このステップＳ１１１にて、クロック遅延回路３０〜３２は、対応する各マクログループ１３０〜１３２に対して、ステップＳ１１０で設定したクロック遅延初期値からクロック遅延終了値まで、段階的にクロック遅延値を増加させていく。そして、各マクログループ１３０〜１３２に、それぞれのクロック遅延値に対した遅延故障テストが実施される。
【００８８】
次に、ステップＳ１１１にて、各マクログループ１３０〜１３２のクロック遅延下限値およびクロック遅延上限値が判定され、この判定結果を有効設定範囲とし、遅延調整処理の結果として、テスターのテスタプログラムが、制御回路１１５より得る（Ｓ１１２）。なお、マクログループ毎のクロック遅延下限値はクロック遅延下限値出力端子ＯＵＴ１０４ａ、ＯＵＴ１０４ｂ、ＯＵＴ１０４ｃより出力される。また、マクログループ毎のクロック遅延上限値は、クロック遅延上限値出力端子ＯＵＴ１０３ａ、ＯＵＴ１０３ｂ、ＯＵＴ１０３ｃより出力される。
【００８９】
また、各マクログループ１３０、１３１、１３２の救済要否の判定が、それぞれ救済要否出力端子ＯＵＴ１０５ａ、ＯＵＴ１０５ｂ、ＯＵＴ１０５ｃより得られ、現在処理対象のチップの救済可否の判定は救済可否出力端子ＯＵＴ１２９より得られる。
【００９０】
ウエハ上の全てのクロック遅延自動調整回路ＣＨＩＰ１００に対して上記処理が終了していない場合（Ｓ１１３ＮＯ）、他のクロック遅延自動調整回路ＣＨＩＰ１００に対して、ステップＳ１１０〜Ｓ１１２の処理が行われる。そして、ウエハ上の全てのクロック遅延自動調整回路ＣＨＩＰ１００に対して上記処理が終了した場合（Ｓ１１３ＹＥＳ）、全てのチップにおける救済可否およびマクログループ毎のクロック遅延下限値、クロック遅延上限値、救済要否が、１回目テスター結果ファイルとしてテスタプログラムにより保存され、1回目のテスター処理を終了する。
【００９１】
図８に、２回目のテスター処理のフローチャートを示す。この図８のフローチャートを用いて、図５のステップＳ１０１における２回目テスター処理の動作を説明する。
【００９２】
まず、テスターのテストプログラムにより、制御回路１１５は、それぞれクロック遅延初期値として、１回目テスター結果ファイルに記載された現在処理対象としているチップの全てのマクログループ１３０、１３１、１３２のクロック遅延下限値を、クロック遅延初期値入力端子ＩＮ１００ａ、ＩＮ１００ｂ、ＩＮ１００ｃより入力する。同様に、それぞれクロック遅延終了値として、１回目テスター結果ファイルに記載された現在処理対象としているチップの全てのマクログループ１３０、１３１、１３２のクロック遅延上限値を、クロック遅延終了値入力端子ＩＮ１０１ａ、ＩＮ１０１ｂ、ＩＮ１０１ｃより入力する（Ｓ１２０）。
【００９３】
次に、テスタプログラムがクロック遅延自動調整回路ＣＨＩＰ１００に遅延調整処理を行わせる（Ｓ１２１）。このステップＳ１２１にて、クロック遅延回路３０〜３２は、対応する各マクログループ１３０〜１３２に対して、ステップＳ１２０で設定したクロック遅延初期値からクロック遅延終了値まで、段階的にクロック遅延値を増加させていく。そして、各マクログループ１３０〜１３２に、それぞれのクロック遅延値に対した遅延故障テストが実施される。
【００９４】
次に、ステップＳ１２１にて、各マクログループ１３０〜１３２のクロック遅延下限値およびクロック遅延上限値が判定され、この判定結果を有効設定範囲とし、遅延調整処理の結果として、テスターのテスタプログラムが、制御回路１１５より得る。なお、マクログループ毎のクロック遅延下限値はクロック遅延下限値出力端子ＯＵＴ１０４ａ、ＯＵＴ１０４ｂ、ＯＵＴ１０４ｃより出力される。また、マクログループ毎のクロック遅延上限値は、クロック遅延上限値出力端子ＯＵＴ１０３ａ、ＯＵＴ１０３ｂ、ＯＵＴ１０３ｃより出力される。
【００９５】
また、各マクログループ１３０、１３１、１３２の救済要否の判定が、それぞれ救済要否出力端子ＯＵＴ１０５ａ、ＯＵＴ１０５ｂ、ＯＵＴ１０５ｃより得られ、現在処理対象のチップの救済可否の判定は救済可否出力端子ＯＵＴ１２９より得られる。
【００９６】
ウエハ上の全てのクロック遅延自動調整回路ＣＨＩＰ１００に対して上記処理が終了していない場合（Ｓ１２３ＮＯ）、他のクロック遅延自動調整回路ＣＨＩＰ１００に対して、ステップＳ１２０〜Ｓ１２２の処理が行われる。そして、ウエハ上の全てのクロック遅延自動調整回路ＣＨＩＰ１００に対して上記処理が終了した場合（Ｓ１２３ＹＥＳ）、全てのチップにおける救済可否およびマクログループ毎のクロック遅延下限値、クロック遅延上限値、救済要否が、２回目テスター結果ファイルとしてテスタプログラムにより保存され、２回目のテスター処理を終了する。
【００９７】
図９に、１回目、２回目テスター処理のステップＳ１１１、Ｓ１２１の遅延調整処理のフローチャートを示す。図９のフローチャートを用いて遅延調整処理の動作を説明する。
【００９８】
制御回路１１５が、クロック遅延初期値入力端子ＩＮ１００ａ、ＩＮ１００ｂ、ＩＮ１００ｃの入力情報により各マクログループ１３０、１３１、１３２のクロック遅延値の初期値を設定する（Ｓ２００）。各初期値は、マクログループ１３０に対応するものが遅延調整信号ＤＡＤ０より、マクログループ１３１に対応するものが遅延調整信号ＤＡＤ１より、マクログループ１３２に対応するものが遅延調整信号ＤＡＤ２より設定される。
【００９９】
なお、救済グループ記憶回路１１４の記憶処理を行うまでは、遅延制御切替回路１１２の出力である遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２は、それぞれ制御回路１１５による遅延調整信号ＤＡＤ０、ＤＡＤ１、ＤＡＤ２が出力される。このため、この遅延調整処理のフローチャートにおいては、常に制御回路１１５により、クロック遅延回路３０、３１、３２の遅延量が制御されるものとする。
【０１００】
次に、制御回路１１５が、クロック遅延終了値入力端子ＩＮ１０１ａ、ＩＮ１０１ｂ、ＩＮ１０１ｃの入力情報により各マクログループ１３０、１３１、１３２のクロック遅延値の終了値を設定する（Ｓ２０１）。
【０１０１】
次に、ＣＰＵ１１に含まれるテスト回路が、現在のクロック遅延設定値において未実行の、１つの遅延故障テストパターンを実行する（Ｓ２０２）。そして、ＣＰＵ１１内のテスト回路が、各テストパターンの実行結果であるＰａｓｓ／Ｆａｉｌ判定信号を出力し、制御回路１１５の対応するマクログループのＰａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２に入力される。なお、チップ外部でテストパターンの期待値照合を行う場合には、Ｐａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２は、チップ外部端子としてもよい。
【０１０２】
制御回路１１５が、ステップＳ２０２で実行された遅延故障テストパターンに対する、Ｐａｓｓ／Ｆａｉｌ判定結果をＰａｓｓ／Ｆａｉｌ判定入力端子ＩＮ１０２より受け取る。この判定結果がＰａｓｓであれば（Ｓ２０３ＰＡＳＳ）、ステップＳ２０４へ進む。
【０１０３】
ステップＳ２０４では、全ての遅延故障テストパターンがＰａｓｓしたかどうかを制御回路１１５が判定し、遅延故障テストパターン全てがＰａｓｓであれば（Ｓ２０４ＹＥＳ）、ステップＳ２０５へ進む。未実行の遅延故障テストパターンがあれば（Ｓ２０４ＮＯ）、ステップＳ２０２へ戻る。
【０１０４】
上記ステップＳ２０４にて遅延故障テストパターンが全てＰａｓｓした場合（Ｓ２０４ＹＥＳ）、この全ての遅延故障テストパターンをＰａｓｓしたのが、現在のクロック遅延設定値が初めてなのかを、制御回路１１５が判定する（Ｓ２０５）。初めてであれば（Ｓ２０５ＹＥＳ）、制御回路１１５は、現在のクロック遅延設定値を、現在処理対象のマクログループのクロック遅延下限値として、対応するマクログループのクロック遅延下限値出力端子ＯＵＴ１０４より出力する（Ｓ２０６）。
【０１０５】
クロック遅延回路３０、３１、３２は、それぞれ遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２の値により出力する遅延クロック信号ＤＣＫの遅延量を決定する。但し、図５のステップＳ１０２の救済グループ記憶回路の設定を行う前では、制御回路１１５より出力された遅延調整信号ＤＡＤ０、ＤＡＤ１、ＤＡＤ２が、それぞれ遅延制御信号ＤＣＮ０、ＤＣＮ１、ＤＣＮ２として遅延制御切替回路１１２より出力される。このため、各クロック遅延回路３０、３１、３２の遅延クロック信号ＤＣＫの遅延量は、それぞれ遅延調整信号ＤＡＤ０、ＤＡＤ１、ＤＡＤ２により決定される。つまり、各マクログループのクロック遅延値は、制御回路１１５により制御される。
【０１０６】
なお、制御回路１１５が、クロック遅延回路３０、３１、３２の遅延クロック信号ＤＣＫの遅延量を調整する際、1つのチップ内のあるマクログループに対応するクロック遅延回路において、設定可能なクロック遅延値のうち、現在のクロック遅延値よりも１つだけ小さいクロック遅延値を実現するクロック遅延設定値のことを、以降、前遅延設定値と呼ぶ。更に、１つだけ大きいクロック遅延値を実現するクロック遅延設定値のことを、以降、次遅延設定値と呼ぶ。
【０１０７】
ステップＳ２０５において、全ての遅延故障テストパターンをＰａｓｓしたのが現在のクロック遅延設定値が初めてではない場合（Ｓ２０５ＮＯ）、つまり、前遅延設定値でも全ての遅延故障テストパターンがＰａｓｓしていた場合は、ステップＳ２０６は実行されず、クロック遅延下限値は出力しない。
【０１０８】
次に、現在のクロック遅延設定値が最終値なのかどうかを、制御回路１１５が判定する（Ｓ２０７）。最終値であれば（Ｓ２０７ＹＥＳ）、現在のクロック遅延設定値を現在処理対象のマクログループのクロック遅延上限値として、制御回路１１５が対応するマクログループのクロック遅延上限値出力端子ＯＵＴ１０３より出力する（Ｓ２０８）。
【０１０９】
最終値でなければ（Ｓ２０７ＮＯ）、制御回路１１５がクロック遅延設定値を次遅延設定値にし、ステップＳ２０２へ進む。
【０１１０】
ここで、ステップＳ２０３にて、ある遅延故障テストパターンがＦａｉｌした場合、前遅延設定値で全ての遅延故障テストパターンがＰａｓｓしていたかどうかを、制御回路１１５が判定する（Ｓ２０９）。Ｐａｓｓしていた場合（Ｓ２０９ＹＥＳ）、前遅延設定値を現在処理対象のマクログループのクロック遅延上限値として、制御回路１１５が対応するマクログループのクロック遅延上限値出力端子ＯＵＴ１０３より出力（Ｓ２１０）し、ステップＳ２１６に進む。
【０１１１】
ステップＳ２０９にて、前遅延設定値で、ある遅延故障テストパターンがＦａｉｌしていた、もしくは現在のクロック遅延設定値が初期値であった場合（Ｓ２０９ＮＯ）、現在のクロック遅延設定値が終了値かどうかを制御回路１１５が判定する（Ｓ２１１）。終了値であれば（Ｓ２１１ＹＥＳ）、どのクロック遅延設定値においてもＦａｉｌしていたことを意味する。このため、制御回路１１５がステップＳ２１４にて救済可否信号＝"０"を救済可否出力端子ＯＵＴ１２９より出力する（Ｓ２１４）。終了値でなければ（Ｓ２１１ＮＯ）、制御回路１１５がクロック遅延設定値を次遅延設定値にし（Ｓ２１２）、ステップＳ２０２へ進む。
【０１１２】
チップごとの全てのマクログループ１３０〜１３２に対して、上記ステップＳ２０２〜Ｓ２１２を実行していない場合（Ｓ２１６ＮＯ）、実行していないマクログループに対して、上記ステップＳ２０２〜Ｓ２１２を実行する。
【０１１３】
一方、チップごとの全てのマクログループ１３０〜１３２に対して、上記ステップＳ２０２〜Ｓ２１２を実行完了した場合（Ｓ２１６ＹＥＳ）、制御回路１１５が救済可否信号＝"１"を救済可否出力端子ＯＵＴ１２９より出力する（Ｓ２１３）。
【０１１４】
次に、救済が必要なマクログループ（要救済グループ）の数を求め、予め決められた救済可能数（＝遅延設定回路１１６、１１７の数）よりも多い場合は（Ｓ２１７ＹＥＳ）、ステップＳ２１４に進み、救済可否信号＝"０"を救済可否出力端子ＯＵＴ１２９より出力する（Ｓ２１４）。
【０１１５】
一方、要救済グループ数が、救済可能数以下である場合（Ｓ２１７ＮＯ）、制御回路１１５は、ウエハテスト終了時に各マクログループ１３０〜１３２に救済が必要かどうかを判定し、チップ外部端子である救済要否出力端子ＯＵＴ１０５ａ、ＯＵＴ１０５ｂ、ＯＵＴ１０５ｃに、それぞれマクログループ１３０、１３１、１３２の救済要否信号を出力する（Ｓ２１８）。例えば救済必要ならば"１"、救済不要ならば"０"を出力する。
【０１１６】
なお、各マクログループ１３０〜１３２に救済が必要かどうかの判定は、それぞれ設計時に使用していた固定値の遅延調整信号ＤＡＤが、それぞれの有効設定範囲内に含まれるかどうかにより判定される。例えば、２回目テスター処理終了時点で、あるチップの救済可否信号＝"１"であった場合、この対応する救済要否信号＝"１"であるマクログループに対しては、１回目と２回目の両方のテスター処理で、全ての遅延故障テストパターンがＰａｓｓするクロック遅延値の有効設定範囲が、クロック遅延上限値出力端子ＯＵＴ１０３およびクロック遅延下限値出力端子ＯＵＴ１０４より得られているため、救済可能である。
【０１１７】
なお、ステップＳ２０２のパターン実行については、例えばスキャンチェーンをマクログループ１３０〜１３２毎に分けて構成しておき、設計時に予め遅延故障検出率の高いパターンおよび期待値を生成しておき、期待値比較自体はチップ外部でテスタプログラムにて行うという方法をとることによって、実現可能である。
【０１１８】
本発明は、救済グループ記憶回路１１４及び遅延設定回路１１６〜１１７と、遅延制御切替回路１１２との間に接続された遅延設定割当回路１１３とを備えている。このことで、マクログループ１３０〜１３２の救済を行う個数だけ搭載した遅延設定回路１１６〜１１７が、救済グループに割り当てられる。このため、少ない不揮発性記憶回路で、チップに含まれる全てのマクロを遅延故障救済できる。
【０１１９】
以下にマクログループを５００個搭載したチップを具体例として説明する。この例では、遅延設定回路、救済グループ記憶回路の面積は、４００[μｍ２／ｂｉｔ]とする。また、遅延設定回路は、５[ｂｉｔ]で構成されるものとする。また、各マクログループで遅延故障が発生する確率は、０．０００５（＝０．０５％）とし、歩留り目標は、９９％とする。
【０１２０】
チップに搭載される全てのマクログループを救済の対象とする場合、各マクログループに対してクロック遅延回路が必要である。そして、従来技術の場合、クロック遅延回路の設定値を保持するための遅延設定回路は、それぞれのクロック遅延回路に対して必要となっていた。このため、遅延設定回路全体で、不揮発性記憶回路（ヒューズ回路）の面積Ｓ１は、以下のような式（１）で求められる。
Ｓ１＝（遅延設定回路の面積）×（ｂｉｔ数）×（マクロ数）  ・・・（１）
【０１２１】
この式（１）に上記想定した各値を代入すると、式（２）のような結果となる。
Ｓ１＝４００[μｍ２／ｂｉｔ]×５[ｂｉｔ]×５００個
＝１，０００，０００[μｍ２]   ・・・（２）
【０１２２】
ここで、本発明の場合、各マクログループに対してクロック遅延回路が必要なのは従来技術と同じであるが、次に求める数だけ遅延設定回路を有していればよい。まず、ｎ個のマクログループで遅延故障が発生する確率Ｐ（ｎ）は次の式（３）で求められる。
Ｐ（ｎ）＝０．０００５＾ｎ×（１−０．０００５）＾（５００−ｎ）×Ｃ（５００，ｎ）
・・・（３）
【０１２３】
但し、Ｃ（ｍ，ｎ）はｍ個からｎ個を抽出する組合せである。この式（３）から、
Ｐ（０）＝７７．８８％
Ｐ（１）＝１９．４８％
Ｐ（２）＝２．４３％
となるため、以下に示すような式（４）、式（５）になる。
Ｐ（０）＋Ｐ（１）＝９７．３５％  ・・・（４）
Ｐ（０）＋Ｐ（１）＋Ｐ（２）＝９９．７８％  ・・・（５）
【０１２４】
歩留まり目標は、９９％であるため、式（４）、式（５）より式（６）が成り立つ。
Ｐ（０）＋Ｐ（１）＜９９％＜Ｐ（０）＋Ｐ（１）＋Ｐ（２）  ・・・（６）
【０１２５】
式（６）より、２個までのマクログループが救済できれば歩留り目標である９９％が達成できる。そのため本発明での不揮発性記憶回路の面積をＳ２とすると、以下の式（７）のようになる。
Ｓ２＝（遅延設定回路の面積）＋（救済グループ記憶回路の面積）・・・（７）
【０１２６】
式（７）に上記想定した各値を代入すると、式（８）のような結果となる。
Ｓ２＝４００[μｍ２／ｂｉｔ]×５[ｂｉｔ]×２個＋４００[μｍ２／ｂｉｔ]×５００[ｂｉｔ]
＝２０４，０００[μｍ２]   ・・・（８）
【０１２７】
よって、従来技術の不揮発性記憶回路面積Ｓ１と本発明の不揮発性記憶回路面積Ｓ２の比は、式（９）で示される。
Ｓ１：Ｓ２＝１，０００，０００：２０４，０００      ・・・（９）
【０１２８】
以上のことから、式（９）に示されるように、本発明では、不揮発性記憶回路面積が、従来技術の２０．４％にすることが可能である。結果として、本発明では、従来技術と比較し、少ない不揮発性記憶回路で、チップに含まれる全てのマクロを遅延故障救済できることが可能となる。これは、救済グループ記憶回路が、救済を必要とするマクログループを記憶し、遅延設定割当回路が、マクログループの救済を行う個数だけ搭載した遅延設定回路をマクログループに割り当てることにより可能とする。
【０１２９】
なお、本発明は上記実施の形態に限られたものでなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【０１３０】
ＣＨＩＰ１００  クロック遅延自動調整回路
１０  ロジック回路（ＣＰＵ）
１３０、１３１、１３２  マクログループ
１３０ａ〜１３０ｃ、１３１ａ〜１３１ｃ、１３２ａ〜１３２ｃ  ＲＯＭ
３０、３１、３２  クロック遅延回路
１１２  遅延制御切替回路
１１３  遅延設定割当回路
１１４  救済グループ記憶回路
１１５  制御回路
１１６、１１７  遅延設定回路
１２  クロックツリーバッファ
ＤＬＹ１２ａ〜ＤＬＹ１２ｃ  遅延素子
１１８、１１９、１２０、１２１、１２２  ヒューズ回路
ＩＮ１００ａ、ＩＮ１００ｂ、ＩＮ１００ｃ  クロック遅延初期値入力端子
ＩＮ１０１ａ、ＩＮ１０１ｂ、ＩＮ１０１ｃ  クロック遅延終了値入力端子
ＩＮ１０２ａ、ＩＮ１０２ｂ、ＩＮ１０２ｃ  Ｐａｓｓ／Ｆａｉｌ判定入力端子
ＯＵＴ１０３ａ、ＯＵＴ１０３ｂ、ＯＵＴ１０３ｃ  クロック遅延上限値出力端子
ＯＵＴ１０４ａ、ＯＵＴ１０４ｂ、ＯＵＴ１０４ｃ  クロック遅延下限値出力端子
ＯＵＴ１０５ａ、ＯＵＴ１０５ｂ、ＯＵＴ１０５ｃ  救済要否出力端子
ＯＵＴ１２９  救済可否出力端子
【図１】
2011221574.tif 000003
【図２】
2011221574.tif 000004
【図３】
2011221574.tif 000005
【図４】
2011221574.tif 000006
【図５】
2011221574.tif 000007
【図６】
2011221574.tif 000008
【図７】
2011221574.tif 000009
【図８】
2011221574.tif 000010
【図９】
2011221574.tif 000011
【図１０】
2011221574.tif 000012