(57)【要約】【課題】  多相クロック方式を採用している半導体装置の故障位置及び原因解析を容易化する。【解決手段】  集積回路の動作の不具合の発生を検知するエラー検出部ＥＲＤと、２相以上のクロックの所定期間の位相状態の情報を保持するクロック状態保持部ＣＬＫＳＴと、エラー検出部が集積回路の動作の不具合の発生を検出するのに応じて、２相以上のクロックの所定期間の位相状態の情報を出力する出力部ＳＣＯＵＴとを有する。【選択図】  図１
2011169708.tif 000002
【特許請求の範囲】
【請求項１】
２相以上のクロックを受けて動作する集積回路を含む半導体装置であって、
前記集積回路の動作の不具合の発生を検知するエラー検出部と、
前記２相以上のクロックの所定期間の位相状態の情報を保持するクロック状態保持部と、
前記エラー検出部が前記集積回路の動作の不具合の発生を検出するのに応じて、前記２相以上のクロックの所定期間の位相状態の情報を出力する出力部とを有する半導体装置。
【請求項２】
請求項１において、
前記クロック状態保持部は、前記２相以上のクロックの周波数よりも高い周波数の記録用クロックに基づき、前記２相以上のクロックの状態を記録する半導体装置。
【請求項３】
請求項１において、
前記クロック状態保持部のフリップフロップはスキャン化されており、スキャンアウト回路により、前記クロック状態保持部に保持された前記２相以上のクロックの所定期間の位相状態が前記半導体装置の外部に読み出される半導体装置。
【請求項４】
請求項１において、
前記２相以上のクロックは互いに周波数の異なるクロックである半導体装置。
【請求項５】
請求項１において、
前記集積回路はスキャン化されており、スキャンアウト回路により、前記エラー検出部が前記集積回路の動作の不具合の発生を検出したときの前記集積回路のフリップフロップに保持された値を前記半導体装置の外部に読み出される半導体装置。
【請求項６】
請求項１において、
前記エラー検出部による不具合検出前の動作状態から不具合が発生した状態を、不具合が検出された通常動作と同じ位相関係を有する２相以上の再現クロックで再現させるためのクロック再現部を有する半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置およびその故障解析方法に関する。特に、多相クロック方式を採用する半導体装置およびその故障解析方法に関するものである。
【背景技術】
【０００２】
半導体集積回路に発生した故障の解析を行なうため、信号入力に対する信号出力を観測し、故障位置および原因を推定する。集積回路の機能をモデル化して同一の動作を模擬できるようにした計算機によって、信号入力に対する信号出力の期待値を求めることができる。集積回路が正常であれば、集積回路の出力信号値は計算機によって求めた期待値と一致する。逆に、一致しない場合は故障があるといえる。次のステップとして、計算機に構築した機能モデルがどのように変化した場合（これを「故障モデル」と称する）に、集積回路が出力した信号出力と同じ出力期待値となるのかを推測する。ある故障モデルの出力期待値が集積回路の出力信号値と一致するならば、その故障モデルは集積回路の故障と機能的に等しいということができる。これにより、故障の位置及び原因を解析できる。
【０００３】
このような解析を行なうため、集積回路が期待値と異なる動作をする条件を見つける必要がある。例えば、信号線の信号値が０ないしは１に固定されるような故障（短絡）は、集積回路に入力する入力信号値の組合せのバリエーションを積み重ねることによって、比較的容易に出力信号値と期待値との不一致を発見できると期待できる。これに対して、ある特定の条件にならない限り故障が発現せず、一見、正常な集積回路として振舞うものがある。例えば、電源電圧、温度、クロックの周波数、電源ノイズ等に起因して生じる故障である。このような集積回路では、製品に組み込んで動作させた場合には動作の不具合が観測されるものの、故障解析を目的として製品から集積回路（チップ）を取り外してＬＳＩテスタで動作させると、あらゆる入力信号の組合せに対して出力の期待値が一致してしまい、正常のＬＳＩと見分けが付かない場合がある（故障の不再現）。
【０００４】
故障の再現には、チップを製品に組み込んだ際の動作条件に可能な限り、測定の条件を近付ける必要がある。このため、ＬＳＩテスタは、電源電圧、温度、クロックの周波数、等の条件を変更する機能を持っており、期待値に対して異なる動作をする条件を探す（故障の再現）ための努力が払われる。しかしながら、故障を発現させる要因のうち、クロック周波数、電源ノイズ等に関しては、現在のＬＳＩテスタでは対応が難しい場合がある。例えば、高いクロック周波数に対応するＬＳＩテスタは高価であり、またＬＳＩテスタでは製品に組み込まれた場合の電源ノイズを完全に模擬できる動作環境を作ることは難しい。
【０００５】
そのため、集積回路を製品に組み込んだ状態のままで動作させることによって故障を再現させようとする試みが提案されている。集積回路を製品に組み込んだ状態のままで故障位置および故障原因の解析を行なう方法としては、特許文献１に記載されたものがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−１０１２０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年の集積回路では、入力クロックとして多相クロック方式を採用しているものが多い。多相クロック方式を採用した集積回路には複数のクロックが入力され、各クロックはタイミングとしてそれぞれ独立しており、お互いに非同期の関係にある。集積回路は、回路ごとに接続されているそれぞれのクロックに同期して動いている。多相クロック方式のＬＳＩの故障は、故障に関係する２つ以上の回路が動作するタイミングの位置に関係して発生することが多い。
【０００８】
低い動作電圧で動作し、微細化の進んだ半導体集積回路においては、多数の論理回路が動作することによって生じる電源ノイズや、信号配線間で生じるクロストークの影響によって故障が生じることがある。位相、及び／または周波数の異なるクロックに同期して動作する論理回路の信号配線間でクロストークにより不具合が発生する場合、不具合が発生した時のそれぞれのクロック同士の位相関係、タイミングの情報を取得する必要がある。しかし、従来は集積回路が単相のクロックで動作することが想定されており、各クロックのタイミング関係がどうなった場合に故障が再現しているのか調査する手段がなかった。
【０００９】
本発明の目的は、入力クロックとして、多相クロック方式を採用している半導体装置において、ＬＳＩを製品に組み込んだ状態のままで故障が発生した状況を多相クロックの位相状態を含めて記録、保存することができ、さらに各クロックの位相状態に依存して故障が再現しているのか調査することにより、ＬＳＩの故障位置および故障原因の解析を容易にできる技術を提供することにある。
【００１０】
その他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。
【００１２】
２相以上のクロックを受けて動作する集積回路を含む半導体装置に、集積回路の動作の不具合の発生を検知するエラー検出部と、２相以上のクロックの所定期間の位相状態の情報を保持するクロック状態保持部と、エラー検出部が前記集積回路の動作の不具合の発生を検出するのに応じて、２相以上のクロックの所定期間の位相状態の情報を出力する出力部を設ける。
【発明の効果】
【００１３】
多相クロック方式を採用する半導体装置の故障の再現性が向上し、故障位置および原因の解析が容易化できる。
【図面の簡単な説明】
【００１４】
【図１】半導体装置とその故障解析を行うワークステーションである。
【図２】半導体装置の故障解析のフローである。
【図３】クロック状態記憶部の構成例である。
【図４】図３のクロック状態記憶部の動作波形である。
【図５】図５（ａ）はクロック状態記憶部のフリップフロップの値、図５（ｂ）は再現したい多相クロックの波形、図５（ｃ）は再現させる多相クロックの波形である。
【図６】クロック再現部CLKRPの構成例である。
【図７】クロック再現回路６０１ａの詳細な構成例である。
【図８】図８（ａ）はクロック再現回路６０１ａのレジスタに値を設定した例を示す図であり、図８（ｂ）は再現クロックの波形図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１６】
図１に本発明の半導体装置１０１とその故障解析を行うワークステーションＷＳを示す。また、半導体装置１０１の本発明に係る主要構成を示している。半導体装置１０１は、多相クロック方式を採用する。本例ではＰＬＬが生成する原クロックclk0を分周器DIVによって分周することによって多相クロックclk1, clk2を生成する。いうまでもなく、多相クロックはこの例に限られず、周波数、デューティ、位相の異なるクロックを集積回路１０２に供給するものであってもよい。通常動作時は、多相クロックclk1, clk2が集積回路１０２に供給され、集積回路１０２に論理回路LOG及びメモリRAMは供給されるクロックに同期して動作する。故障解析の対象とするのは集積回路１０２である。
【００１７】
故障解析時の動作を図２を用いて説明する。ワークステーションＷＳは、半導体装置１０１を起動し、故障状態を再現させるため半導体装置１０１を起動し、動作させる（ステップ１）。故障解析時には半導体装置１０１のクロック状態記憶部CLKSTは集積回路１０２に供給される多相クロックの状態を記録する。クロック状態記憶部CLKSTの構成例を図３に示す。この例は４相クロックを記録することができるクロック状態記憶部である。また、図３のクロック状態記憶部CLKSTの動作波形を図４に示す。
【００１８】
図３に示すように、クロック状態記憶部CLKSTは、セレクタ３０１とフリップフロップ３０２の組が直列接続されてなる。各フリップフロップ３０２には、記録用クロックclk0が入力される。図４に示すように、記憶用クロックclk0は記録対象である多相クロック（この例では第１〜第４クロック）よりも高い周波数の信号を用いる。たとえば、記憶用クロックclk0として、図１のＰＬＬから出力される原クロックclk0を用いることが可能である。セレクタ３０１は集積回路１０２でエラーが発生したことを示すエラー検出信号errが「Low」である場合には、各クロック信号をフリップフロップ３０２の入力として選択する。これにより、記録用クロックclk0の立ち上がり時における多相クロックの状態がフリップフロップ３０２に取り込まれる。なお、図４のウィンドウ４０１は記憶可能時間であり、クロックが入力されるフリップフロップ３０２の数に依存して定まる。フリップフロップ３０２の数を多くすることにより、記憶可能時間４０１を長くとることができる。
【００１９】
一方、半導体装置１０１のエラー検出部ERDでは集積回路１０２の動作を監視しており、エラーが検出されるとエラー検出信号errを「Low」から「High」にする。エラー検出信号errはワークステーションＷＳに伝達されるとともに、エラー検出信号errが「High」となったときの集積回路１０２の動作状態とクロック位相状態との記憶を保持する（図２：ステップ２）。なお、エラー検出部ERDは任意の公知の方法を適用することができる。エラー検出には、データのパリティチェックや一部回路を二重化して動作させその不一致を検出するといった方法を適用することができる。
【００２０】
図１に示されるように、エラー検出部ERDからエラー検出信号errが「High」レベルとなるとアンドゲートAND1, AND2により多相クロックの集積回路１０２への入力が遮断される。これにより、集積回路１０２の動作（すなわち、論理回路LOGに含まれるフリップフロップの更新やメモリRAMの更新）が停止される。一方、図３、図４に示されるように、エラー検出信号errが「High」レベルになると、クロック状態記憶部CLKSTのセレクタ３０１は対応するフリップフロップ３０２の出力を選択するようになる。これにより、フリップフロップへのクロック信号の入力は停止され、エラー検出信号errが「High」レベルとなったときのクロック位相状態がクロック状態記憶部CLKSTに保持される。
【００２１】
この後、ワークステーションＷＳは、半導体装置１０１に保持された保持記憶をワークステーションＷＳに出力させる（図２：ステップ３）。図示しないが、集積回路１０２の論理回路LOG、メモリRAMのＲＡＭＢＩＳＴ論理回路はスキャン化されている。エラー検出信号errが「High」レベルとなったときの論理回路LOGのフリップフロップの値及びメモリRAMの値（sout）は、スキャンアウト回路SCOUTを通じてワークステーションＷＳに読み出される。同様に、クロック状態記憶部CLKSTのフリップフロップ３０２はスキャン化されており、エラー検出信号errが「High」レベルとなったクロック状態記憶部CLKSTのフリップフロップの値ckstも、スキャンアウト回路SCOUTを通じてワークステーションＷＳに読み出される。
【００２２】
これにより、ワークステーションＷＳは、エラーが発生したときの集積回路１０２の動作状態と多相クロックの位相状態とを得ることができる。そこで、解析者は不具合が生じた動作状態の情報から不具合発生直前の情報を推定する。たとえば、不具合箇所及びその周辺の保持記憶を基にモジュールの動作状態を推測し、論理的に逆算して、不具合発生時に異常値を保持したフリップフロップ以外全ての保持記憶を再現する状態（つまり論理的には不具合を再現しない状態）を推定する。また１〜数サイクル前の状態が一意に特定出来ない箇所は、可能性の数だけ複数の状態を候補とする。
【００２３】
不具合が生じた動作状態に到るには、不具合発生直前の動作状態についていくつかの候補が存在するのが一般的である。半導体装置１０１の動作状態を不具合発生直前の動作状態にセットし、不具合が生じたときと同じ位相関係で多相クロックを入力して動作させ、同じエラーが生じれば故障が再現されたと判定できる（図２：ステップ４〜７）。なお、ステップ７で再現が判定されなければ、別の候補に対してステップ４〜７を繰り返す。最終的に故障が再現されることで、故障解析が可能になる（図２：ステップ９）。
【００２４】
ステップ４では解析者が推定した不具合発生前の動作状態とその状態からのクロック再現設定を行う。不具合発生前の動作状態は、スキャンイン回路SCINを通じてワークステーションＷＳから集積回路１０２に書き込む。また、クロック再現するための設定情報ckregをクロック再現部CLKRPに書き込む。ステップ５では、クロック再現部では、設定情報ckregに基づき、不具合が生じたときと同じ位相関係で多相クロックを再現して、半導体装置１０１を動作させる。
【００２５】
多相クロックの再現にあたっては、例えば、特開２００３―２２２６５６号公報に開示の方法が適用できる。図５〜図８を用いて多相クロックの再現方法について説明する。図４に示される状態において不具合が発生したとする。クロック状態記憶部CLKSTのフリップフロップの値ckst（図５（ａ））はワークステーションＷＳにとりこまれる。値ckstにより、記録用クロックclk0の立ち上がり時の各クロックの値が分かるので、再現したい多相クロックの波形が分かる（図５（ｂ）のウィンドウ５０１）。故障再現のために再現させるクロック波形は、解析者が設定した不具合発生前の動作状態から不具合が発生したときに到るまでのクロック波形であり、ウィンドウ５０１の一部または全部を再現させることになる。この本例では、図５（ｃ）のうち、太く示しているパルスを再現させる例について説明する。
【００２６】
図６にクロック再現部CLKRPの構成を示す。クロック再現部CLKRPはクロック再現回路６０１と波形比較回路６０２とを有する。また、ワークステーションＷＳからの設定情報ckregには、タイミング設定情報tmsと波形設定情報wfsとを含み、タイミング設定情報tmsは波形比較回路６０２に、波形設定情報wfsはクロック再現回路６０１にそれぞれ入力される。
【００２７】
図５（ｃ）を用いて再現パルスの指定方法について説明する。本実施例では、再現パルスは、基準となるタイミング５０２を指定し、その後に現われるクロックの立下りからいくつ目のパルスを再現するという形で指定する。そのため、タイミング設定情報tmsとして、基準となるタイミングにおける各クロックの状態を設定する。図５（ｃ）の例では、基準となるタイミング５０２での各クロック（clk1, clk2, clk3, clk4）の値がそれぞれ（Low, High, High, High）であるので、タイミング設定情報tmsとして（0, 1, 1, 1）を設定する。また、第１クロックclk1の場合は、再現したいパルスが基準となるタイミング後の第１クロックの立下りから３つのパルスを再現し、４番目のパルスの再現は不要であるところから、第１クロックclk1の再現クロックrclk1の波形設定情報wfsとして（1, 1, 1, 0）を設定する。第２クロックclk2〜第４クロックclk4についても同様に波形設定情報wfsを設定する。
【００２８】
図７にクロック再現回路６０１ａの詳細構成例を示す。シフトレジスタ６０３ａは、セレクタ７０３とフリップフロップ７０４の組の直列接続よりなる。直列接続された組の数が多いほど、再現できる最大パルス数が大きくなる。フリップフロップ７０４は第１クロックclk1をインバータ７０２を通して逆相としたクロック信号に同期して動作する。セレクタ７０３は、波形比較回路が多相クロックが基準となるタイミングになるまでは「１」入力を選択するため、再現クロックrclk1の出力は「Low」のままである。
【００２９】
波形比較回路６０２では、原クロックclk0のタイミングで各クロックの値を比較し、多相クロックの位相状態がタイミング設定情報tmsで設定した状態と一致するタイミングとなると信号が「０」から「１」に変化する。これにより、シフトレジスタ６０３ａのセレクタ７０３は「０」入力を選択する。なお、原クロックclk0のタイミングで各クロックの値を比較するのは、図６の記録用クロックclk0としてＰＬＬの原クロックを用いることを想定しているためである。波形比較は、多相クロックの記録を行うために用いた記録用クロック信号を基準として行う必要がある。
【００３０】
図８（ａ）にレジスタ７０１に図５（ｃ）の再現クロックrclk1用の波形設定情報wfsを設定した状態を示す。また、図８（ｂ）に再現クロックの波形を示す。既に述べたように、波形比較回路６０２の出力が「０」から「１」に変化すると、セレクタ７０３は「０」出力を選択する。これにより、基準となるタイミングの後、最初に現われる立下りからレジスタ７０１に指定されるパルス（すなわち、レジスタ値が１）がゲート６０４を通過し、再現クロックrclkが出力される。
【００３１】
ステップ５（図２）では、スキャンイン回路SCINを通じて不具合発生前の状態を設定し、トリガtrgによって半導体装置１０１を動作させる。このときの動作クロックは図５〜図８で説明したように再現される再現クロックによって動作させる。これによる動作状態は、ステップ３と同様に記録させ、ワークステーションＷＳに出力させることが可能である。
【００３２】
不具合発生時の動作状態情報と再度動作時の動作状態情報とが一致した時、不具合発生前後の集積回路１０２の動作状態とクロックタイミングの情報が得られたことになる。ワークステーションＷＳは、これらの情報を基に、集積回路１０２の故障位置および故障原因の解析を行なう。
【００３３】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【００３４】
１０１：半導体装置、１０２：集積回路、３０１：セレクタ、３０２：フリップフロップ、６０１：クロック再現回路、６０２：波形比較回路。
【図１】
2011169708.tif 000003
【図２】
2011169708.tif 000004
【図３】
2011169708.tif 000005
【図４】
2011169708.tif 000006
【図５】
2011169708.tif 000007
【図６】
2011169708.tif 000008
【図７】
2011169708.tif 000009
【図８】
2011169708.tif 000010