(57)【要約】【課題】スキャンチェーンにおける故障位置特定方法において、配線数の減少、設計工数の減少を図りながら、故障位置特定の精度を向上させる。【解決手段】複数のフリップフロップＦＦ１〜ＦＦ１０をすべてＮＱ出力構成でかつリセット可能とし、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップＦＦ１〜ＦＦ１０を繰り返し接続して構成されたスキャンチェーンＳＣ２を検査対象として、リセットにより各フリップフロップのすべてを“０”にセットしてそれぞれの出力をすべて“１”に初期設定するステップと、次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することによりスキャンチェーン上の故障位置を特定するステップとを含む。【選択図】図３
2007051936.tif 000002
【特許請求の範囲】
【請求項１】
スキャンチェーン内の複数のフリップフロップをＮＱ出力可能とし、初段のフリップフロップのＮＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンを検査対象として、
システムリセットにより前記各フロップフロップを所定の初期値にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むスキャンチェーンにおける故障位置特定方法。
【請求項２】
スキャンチェーン内の複数のフリップフロップをすべてＮＱ出力構成でかつリセット可能とし、初段のフリップフロップのＮＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンを検査対象として、
リセットにより前記各フリップフロップのすべてを“０”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むスキャンチェーンにおける故障位置特定方法。
【請求項３】
スキャンチェーン内の複数のフリップフロップをすべてＮＱ出力構成でかつプリセット可能とし、初段のフリップフロップのＮＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンを検査対象として、
プリセットにより各フリップフロップのすべてを“１”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むスキャンチェーンにおける故障位置特定方法。
【請求項４】
スキャンチェーン内の複数のフリップフロップをすべてリセット可能とし、初段のフリップフロップのＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続し、第３段のフリップフロップのＱ出力端子を第４段のフリップフロップのデータ入力端子に接続するといった具合に、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」のようにＱ出力とＮＱ出力のフリップフロップを交互に接続して構成されたスキャンチェーンを検査対象として、
リセットにより前記各フリップフロップのすべてを“０”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むスキャンチェーンにおける故障位置特定方法。
【請求項５】
スキャンチェーン内の複数のフリップフロップをすべてプリセット可能とし、初段のフリップフロップのＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続し、第３段のフリップフロップのＱ出力端子を第４段のフリップフロップのデータ入力端子に接続するといった具合に、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」のようにＱ出力とＮＱ出力のフリップフロップを交互に接続して構成されたスキャンチェーンを検査対象として、
プリセットにより前記各フリップフロップのすべてを“１”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むスキャンチェーンにおける故障位置特定方法。
【請求項６】
前記「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の順に代えて、「ＱＮ出力→Ｑ出力→ＱＮ出力→Ｑ出力→…」のようにＱＮ出力とＱ出力のフリップフロップが交互に接続されたスキャンチェーンを検査対象とする請求項４または請求項５に記載のスキャンチェーンにおける故障位置特定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はスキャンチェーンにおける故障位置（不良フリップフロップ）を特定する方法に関する。
【背景技術】
【０００２】
シリアルスキャンチェーンについて簡単に説明する。図１１（ａ）に示すスキャンチェーンＳＣ１０は、３段のフリップフロップＦＦ１〜ＦＦ３がシリアルに接続されている。各フリップフロップには、図１１（ｂ）に示すように、同じタイミングでクロックが印加される。フリップフロップＦＦ１はクロック１回目でデータを取り込み、フリップフロップＦＦ２はクロック２回目でデータを取り込み、フリップフロップＦＦ３はクロック３回目でデータを取り込む。
【０００３】
しかし、図１１（ｃ）に示すように、クロックは配線遅延等によりタイミングがずれる場合がある。この例では、フリップフロップＦＦ２のクロックに遅延がある。そのため、フリップフロップＦＦ２は、クロック１回目でデータを取り込んでしまう。結果、フリップフロップＦＦ２はスキャンシフトの動作をせず、データがすり抜けてしまう。このようなフリップフロップを不良フリップフロップと呼ぶ。
【０００４】
スキャン設計は、論理回路のテストを容易化する一手法であり、故障検出率の高いテストパターンを効率良く生成できることから、近年さかんに利用されるようになってきた。従来のシリアルスキャンチェーンにおける不良フリップフロップの検出方法を図１２および図１３を用いて説明する。
【０００５】
図１２（ａ）に示すスキャンチェーンはフリップフロップＦＦ１〜ＦＦ５のシリアル接続で構成され、クロックの印加により１段前のフリップフロップのデータをデータ入力端子Ｄから取り込んでＱ出力端子に出力し、次段のフリップフロップに送出する。各フリップフロップＦＦ１〜ＦＦ５は共通に接続されるリセット端子Ｒを備え、１段おきのフリップフロップＦＦ２，ＦＦ４はプリセット端子Ｓを備えている。
【０００６】
不良フリップフロップの検出に際しては、まず、リセット端子Ｒにパルスを印加して全段のフリップフロップＦＦ１〜ＦＦ５を“０”クリアする。次いで、プリセット端子Ｓにパルスを印加して１段おきのフリップフロップＦＦ２，ＦＦ４を“１”にセットする。セットされたデータ列は初段から順に、“０１０１０”となる。
【０００７】
次いでスキャンシフトさせ、シフトアウトからの出力ビット列を期待値ビット列（初期値ビット列）“０１０１０”と比較する。正常なスキャンシフトの動作のときは、図１３（ａ）に示すように、出力ビット列が期待値ビット列と一致する。不一致のときは、スキャンチェーン内に不良フリップフロップがあることになる。例えば、図１２（ｂ）のように第２段のフリップフロップＦＦ２が不良である場合には、図１３（ｂ）で示すように出力ビット列は、下から上に向けて、“Ｘ００１０”となる。
【０００８】
出力ビット列：Ｘ００１０
期待値ビット列：０１０１０
である。後ろ（上）から３ビット分は“０１０”で一致しており、４ビット目で不一致となっている。不一致の４ビット目は前（下）から２ビット目であり、これが不良フリップフロップに該当する。このように、出力ビット列は、期待値ビット列に対して不良フリップフロップを境として不動となるために、２段目のフリップフロップＦＦ２を不良フリップフロップと特定する。同様に、もし出力ビット列が下から上に向けて“ＸＸ１１０”の場合には、
出力ビット列：ＸＸ１１０
期待値ビット列：０１０１０
であり、フリップフロップＳＳ３を不良フリップフロップと特定する。
【特許文献１】特開平６−２３００７５号公報（第２−３頁、第１−２図）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記従来の構成では、スキャンチェーンを構成するフリップフロップはリセット以外にプリセット可能に構成する必要があり、配線が増えたりレイアウトが大きくなるなどの課題がある。また、１段おきにプリセット端子をもつフリップフロップを設ける配置配線は、現状のＥＤＡ（Electronic Design Automation）ツールでは手間がかかり、設計工数の増加となる。
【００１０】
本発明は、上記従来の問題点を解決するもので、スキャンチェーンにおける故障位置特定方法において、配線数の減少、設計工数の減少を図りながら、故障位置特定の精度を向上させることを目的とする。
【課題を解決するための手段】
【００１１】
本発明によるスキャンチェーンにおける故障位置特定方法は、
スキャンチェーン内の複数のフリップフロップをＮＱ出力可能とし、初段のフリップフロップのＮＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンを検査対象として、
システムリセットにより前記各フロップフロップを所定の初期値にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むものである。これは、フリップフロップとして、プリセット端子無しでリセット端子付きのフリップフロップとリセット端子無しでプリセット端子付きのフリップフロップとがどのような順序に並んでいても対応できるようにするものである。
【００１２】
これによれば、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＮＱ出力の繰り返し接続としたので、不良フリップフロップがないときのスキャンアウトからの出力ビット列である期待値ビット列は、初期出力ビット列において１ビットおきに論理が反転したものとなる。不良フリップフロップがあれば、その不良フリップフロップに対応する位置のビットにおいて、前記の１ビットおきの論理反転が変化し、さらにその不良フリップフロップよりも前のフリップフロップのビットでも前記の１ビットおきの論理反転が変化する。その結果、フリップフロップのシリアル接続をＮＱ出力繰り返しとするというフリッププロップの接続の調整を行うだけで、スキャンチェーンにおける故障位置特定の精度を確保することができる。
【００１３】
また、本発明によるスキャンチェーンにおける故障位置特定方法は、
スキャンチェーン内の複数のフリップフロップをすべてＮＱ出力構成でかつリセット可能とし、初段のフリップフロップのＮＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンを検査対象として、
リセットにより前記各フリップフロップのすべてを“０”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むものである。
【００１４】
これによれば、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＮＱ出力の繰り返し接続とした上で、リセットによりすべてのフリップフロップを“０”に初期設定し、それぞれの出力をすべて“１”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に負論理・正論理（または正論理・負論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、ＮＱ出力繰り返し型のスキャンチェーンにおけるフリップフロップをプリセット端子無しでリセット端子付きのフリップフロップで構成し、テスト時にオールリセット可能にするだけで、スキャンチェーンにおける故障位置特定の精度を向上させることができる。
【００１５】
また、本発明によるスキャンチェーンにおける故障位置特定方法は、
スキャンチェーン内の複数のフリップフロップをすべてＮＱ出力構成でかつプリセット可能とし、初段のフリップフロップのＮＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンを検査対象として、
プリセットにより各フリップフロップのすべてを“１”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むものである。
【００１６】
これによれば、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＮＱ出力の繰り返し接続とした上で、プリセットによりすべてのフリップフロップを“１”に初期設定し、それぞれの出力をすべて“０”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に正論理・負論理（または負論理・正論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、ＮＱ出力繰り返し型のスキャンチェーンにおけるフリップフロップをリセット端子無しでプリセット端子付きのフリップフロップで構成し、テスト時にオールプリセット可能にするだけで、スキャンチェーンにおける故障位置特定の精度を向上させることができる。
【００１７】
また、本発明によるスキャンチェーンにおける故障位置特定方法は、
スキャンチェーン内の複数のフリップフロップをすべてリセット可能とし、初段のフリップフロップのＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続し、第３段のフリップフロップのＱ出力端子を第４段のフリップフロップのデータ入力端子に接続するといった具合に、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」のようにＱ出力とＮＱ出力のフリップフロップを交互に接続して構成されたスキャンチェーンを検査対象として、
リセットにより前記各フリップフロップのすべてを“０”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むものである。
【００１８】
これによれば、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続とした上で、リセットによりすべてのフリップフロップを“０”に初期設定し、それぞれの出力を交互に“０”と“１”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に２ビット単位で正論理・負論理（または負論理・正論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、Ｑ出力・ＮＱ出力の交互繰り返し型のスキャンチェーンにおけるフリップフロップをプリセット端子無しでリセット端子付きのフリップフロップで構成し、テスト時にオールリセット可能にするだけで、２ビット単位であるが、スキャンチェーンにおける故障位置特定の精度を確保することができる。
【００１９】
なお、上記において、前記「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の順に代えて、「ＱＮ出力→Ｑ出力→ＱＮ出力→Ｑ出力→…」のようにＱＮ出力とＱ出力のフリップフロップが交互に接続されたスキャンチェーンを検査対象として、上記と同様のステップ処理を行うのでもよく、同様の効果が発揮される。
【００２０】
また、本発明によるスキャンチェーンにおける故障位置特定方法は、
スキャンチェーン内の複数のフリップフロップをすべてプリセット可能とし、初段のフリップフロップのＱ出力端子を次段のフリップフロップのデータ入力端子に接続し、次段のフリップフロップのＮＱ出力端子を第３段のフリップフロップのデータ入力端子に接続し、第３段のフリップフロップのＱ出力端子を第４段のフリップフロップのデータ入力端子に接続するといった具合に、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」のようにＱ出力とＮＱ出力のフリップフロップを交互に接続して構成されたスキャンチェーンを検査対象として、
プリセットにより前記各フリップフロップのすべてを“１”にセットするステップと、
次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することにより前記スキャンチェーン上の故障位置を特定するステップとを含むものである。
【００２１】
これによれば、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続とした上で、プリセットによりすべてのフリップフロップを“１”に初期設定し、それぞれの出力を交互に“１”と“０”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に２ビット単位で負論理・正論理（または正論理・負論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、Ｑ出力・ＮＱ出力の交互繰り返し型のスキャンチェーンにおけるフリップフロップをリセット端子無しでプリセット端子付きのフリップフロップで構成し、テスト時にオールプリセット可能にするだけで、２ビット単位であるが、スキャンチェーンにおける故障位置特定の精度を確保することができる。
【００２２】
なお、上記において、前記「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の順に代えて、「ＱＮ出力→Ｑ出力→ＱＮ出力→Ｑ出力→…」のようにＱＮ出力とＱ出力のフリップフロップが交互に接続されたスキャンチェーンを検査対象として、上記と同様のステップ処理を行うのでもよく、同様の効果が発揮される。
【発明の効果】
【００２３】
本発明によれば、論理回路のテスト容易化のスキャン設計において、スキャンチェーンを構成するフリップフロップの接続形態の工夫により、適正な回路規模、設計工数で故障位置の特定を簡単に行うことができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明にかかわるスキャンチェーンにおける故障位置特定方法の実施の形態を図面に基づいて詳細に説明する。
【００２５】
（実施の形態１）
本発明の実施の形態１は、フリップフロップとして、プリセット端子無しでリセット端子付きのフリップフロップとリセット端子無しでプリセット端子付きのフリップフロップとがどのような順序に並んでいても対応できるようにするものである。本発明の実施の形態１にかかわるスキャンチェーンにおける故障位置特定方法を図１および図２を用いて説明する。
【００２６】
図１（ａ）は実施の形態１の場合のスキャンチェーンＳＣ１の回路構成を示し、図１（ｂ）はその不良例を示す。スキャンチェーンＳＣ１は、複数のフリップフロップＦＦ１，ＦＦ２…ＦＦ１０を配線パターンを介して接続して構成されている。各フリップフロップは、クロックの印加により１段前のデータ入力端子Ｄからデータを取り込み、取り込んだデータをＮＱ出力端子に出力し、次段のフリップフロップに送出するように構成されている。また、スキャンチェーンＳＣ１内の複数のフリップフロップをＮＱ出力で接続を繰り返しておく。各フリップフロップはＬＳＩのシステムリセットにより初期値にセット可能であり、“０”または“１”にセットされる。図示例では、フリップフロップＦＦ３はプリセット端子Ｓを有していてシステムリセットで“１”にセットされ、それ以外のすべてのフリップフロップはリセット端子Ｒを有していてシステムリセットで“０”にセットされるようになっている。もちろん、これは一例にすぎず、他の任意の形態をとり得ることはいうまでもない。
【００２７】
本実施の形態は、スキャンチェーンＳＣ１内の複数のフリップフロップＦＦ１〜ＦＦ１０をＮＱ出力可能とし、初段のフリップフロップＦＦ１のＮＱ出力端子を次段のフリップフロップＦＦ２のデータ入力端子に接続し、次段のフリップフロップＦＦ２のＮＱ出力端子を第３段のフリップフロップＦＦ３のデータ入力端子に接続し、第３段のフリップフロップＦＦ３のＮＱ出力端子を第４段のフリップフロップＦＦ４のデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンＳＣ１を検査対象とする。そして、システムリセットにより各フロップフロップＦＦ１〜ＦＦ１０を所定の初期値にセットするステップと、次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することによりスキャンチェーンＳＣ１上の故障位置を特定するステップとを含むものである。
【００２８】
本実施の形態において、スキャンチェーンＳＣ１のスキャンシフトの動作の確認は以下の手順で行われる。
【００２９】
まず、システムリセットを印加して全段のフリップフロップＦＦ１〜ＦＦ１０に初期値を与える。次いで、スキャンチェーンＳＣ１をスキャンシフトする。クロックを９個印加したときのビット列シフト図を図２（ａ）に示す。個々のビットデータは、斜め矢印のように遷移する。ビットデータは、次段のフリップフロップにシフトするたびに反転する。すなわち、矢印に沿って、“１”→“０”→“１”→“０”…のように遷移する。あるいは、“０”→“１”→“０”→“１”…のように遷移する。フリップフロップＦＦ１０の出力であるスキャンアウトから出力される出力ビット列（ビットパターン）は、次のようになる。フリップフロップＦＦ１〜ＦＦ１０における初期出力ビット列は、左から右に向けて、
初期出力ビット列：１１０１１１１１１１
である。フリップフロップＦＦ１０の出力であるスキャンアウトの出力ビット列は、下から上に向けて、
出力ビット列：０１１１０１０１０１
である。これは不良フリップフロップのない場合である。初期出力ビット列と出力ビット列とを対比すると、奇数ビット目は“１”→“０”または“０”→“１”のように反転しており、偶数ビット目はビット反転はない。この不良フリップフロップのない場合の出力ビット列が期待値ビット列となる。これは、フリップフロップの数が１０の偶数の場合である。
【００３０】
もし、フリップフロップの数が９のように奇数であれば、初期出力ビット列と出力ビット列との対比で、
初期出力ビット列：１１０１１１１１１
出力ビット列：１０００１０１０１
となる。この場合、偶数ビット目は“１”→“０”または“０”→“１”のように反転し、奇数ビット目はビット反転はない。この場合も、不良フリップフロップのない場合の出力ビット列が期待値ビット列となる。
【００３１】
以上のように、スキャンチェーンＳＣ１を構成する複数のフリップフロップＦＦ１〜ＦＦ１０のシリアル接続状態をＮＱ出力の繰り返し接続としたので、不良フリップフロップがないときのスキャンアウトからの出力ビット列である期待値ビット列は、初期出力ビット列において１ビットおきに論理反転したものとなる。
【００３２】
そして、図２（ａ）の正常時のスキャンアウトの出力ビット列を期待値ビット列と比較する（いずれも下から上に向けて）。
【００３３】
出力ビット列：０１１１０１０１０１
期待値ビット列：０１１１０１０１０１
このように、不良フリップフロップがないときは、出力ビット列は期待値ビット列に対して全ビットが一致する。
【００３４】
一方、期待値ビット列と異なった出力ビット列が観察された場合には、スキャンチェーンＳＣ１内に不良フリップフロップがあることになり、以下の方法で不良フリップフロップを特定する。
【００３５】
すなわち、図１（ｂ）に示すように例えば第６段のフリップフロップＦＦ６が不良である場合には、出力ビット列は図２（ｂ）のように“Ｘ０００１００１０１”となる。
【００３６】
出力ビット列：Ｘ０００１００１０１
期待値ビット列：０１１１０１０１０１
である。後ろ（上）から４ビット分“１０１０”（逆順記載）は互いに一致しており、５ビット目で不一致となっている。不一致の５ビット目は前（下）から６ビット目であり、これが不良フリップフロップに該当する。このようにして、スキャンチェーンＳＣ１における故障位置（不良フリップフロップの位置）を特定することができる。
【００３７】
まとめると、不良フリップフロップがあれば、その不良フリップフロップに対応する位置のビットにおいて、前記の１ビットおきの論理反転が変化し、さらにその不良フリップフロップよりも前のフリップフロップのビットでも前記の１ビットおきの論理反転が変化する。その結果、フリップフロップのシリアル接続をＮＱ出力繰り返しとするというフリッププロップの接続の調整を行うだけで、スキャンチェーンにおける故障位置特定の精度を確保することができる。そして、フリップフロップとして、プリセット端子無しでリセット端子付きのフリップフロップとリセット端子無しでプリセット端子付きのフリップフロップとがどのような順序に並んでいても対応することができる。
【００３８】
なお、初期値が“１”，“０”と交互になるようなフリップフロップ接続のスキャンチェーンに本実施の形態の方法を適用した場合には、不良フリップフロップを見逃す可能性がある。これに対して、検出精度を上げる実施の形態について、以下に説明する。
【００３９】
（実施の形態２）
本発明の実施の形態２は、スキャンチェーン内の複数のフリップフロップをすべてＮＱ出力構成でかつリセット可能とするものである。本発明の実施の形態２にかかわるスキャンチェーンにおける故障位置特定方法を図３および図４を用いて説明する。
【００４０】
図３（ａ）は実施の形態２の場合のスキャンチェーンＳＣ２の回路構成を示し、図３（ｂ）はその不良例を示す。スキャンチェーンＳＣ２内の複数のフリップフロップＦＦ１〜ＦＦ１０をＮＱ出力で接続を繰り返しておく。各フリップフロップＦＦ１〜ＦＦ１０のリセット端子Ｒに対して、システムリセットとソフトリセットとがＯＲゲート５を介して入力されており、各フリップフロップＦＦ１〜ＦＦ１０はシステムリセットだけでなくソフトリセットによっても“０”にセット可能となっている。その他の構成については実施の形態１の場合の図１と同様であるので、説明を省略する。
【００４１】
本実施の形態は、スキャンチェーンＳＣ２内の複数のフリップフロップＦＦ１〜ＦＦ１０をすべてＮＱ出力構成でかつリセット可能とし、初段のフリップフロップＦＦ１のＮＱ出力端子を次段のフリップフロップＦＦ２のデータ入力端子に接続し、次段のフリップフロップＦＦ２のＮＱ出力端子を第３段のフリップフロップＦＦ３のデータ入力端子に接続し、第３段のフリップフロップＦＦ３のＮＱ出力端子を第４段のフリップフロップＦＦ４のデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンＳＣ２を検査対象とする。そして、リセットにより各フリップフロップＦＦ１〜ＦＦ１０のすべてを“０”にセットするステップと、次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することによりスキャンチェーンＳＣ２上の故障位置を特定するステップとを含むものである。フリップフロップＦＦ１〜ＦＦ１０のシリアル接続状態をＮＱ出力の繰り返し接続としてあるので、リセットによりすべてのフリップフロップＦＦ１〜ＦＦ１０を“０”に初期設定すれば、それぞれの出力はすべて“１”に初期設定される。これが、図４（ａ），（ｂ）においてソフトリセットの段に示されている。
【００４２】
本実施の形態において、スキャンチェーンＳＣ２のスキャンシフトの動作の確認は以下の手順で行われる。
【００４３】
まず、ソフトリセット（またはシステムリセット）を印加してフリップフロップＦＦ１〜ＦＦ１０全段にその出力の初期値として“１”をセットする。次いで、スキャンチェーンＳＣ２をスキャンシフトする。クロックを９個印加したときのビット列シフト図を図４（ａ）に示す。個々のビットデータは、斜め矢印のように遷移する。ビットデータは、次段のフリップフロップにシフトするたびに反転する。すなわち、矢印に沿って、“１”→“０”→“１”→“０”…のように遷移する。スキャンアウトからの出力ビット列（ビットパターン）を、図４（ａ）の正常時のスキャンアウトの期待値ビット列“０１０１０１０１０１”（下から）と比較する。スキャンアウトからは時系列的に負論理・正論理を交互とする状態の出力となっている。
【００４４】
期待値ビット列と異なった出力ビット列が観察された場合には、スキャンチェーンＳＣ２内に不良フリップフロップがあることになり、以下の方法で不良フリップフロップを特定する。
【００４５】
すなわち、図３（ｂ）に示すように例えば第６段のフリップフロップＦＦ６が不良である場合には、出力ビット列は図４（ｂ）のように、下から上に向けて、“Ｘ０１０１００１０１”となる。
【００４６】
出力ビット列：Ｘ０１０１００１０１
期待値ビット列：０１０１０１０１０１
である。後ろ（上）から４ビット分“１０１０”（逆順記載）は互いに一致しており、５ビット目で不一致となっている。不一致の５ビット目は前（下）から６ビット目であり、これが不良フリップフロップに該当する。このようにして、スキャンチェーンＳＣ２における故障位置（不良フリップフロップの位置）を特定することができる。
【００４７】
まとめると、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＮＱ出力の繰り返し接続とした上で、リセットによりすべてのフリップフロップを“０”に初期設定し、それぞれの出力をすべて“１”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に負論理・正論理（または正論理・負論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、ＮＱ出力繰り返し型のスキャンチェーンにおけるフリップフロップをプリセット端子無しでリセット端子付きのフリップフロップで構成し、テスト時にオールリセット可能にするだけで、スキャンチェーンにおける故障位置特定の精度を向上させることができる。
【００４８】
（実施の形態３）
本発明の実施の形態３は、スキャンチェーン内の複数のフリップフロップをすべてＮＱ出力構成でかつプリセット可能とするものである。本発明の実施の形態３にかかわるスキャンチェーンにおける故障位置特定方法を図５および図６を用いて説明する。
【００４９】
図５（ａ）は実施の形態３の場合のスキャンチェーンＳＣ３の回路構成を示し、図５（ｂ）はその不良例を示す。スキャンチェーンＳＣ３内の複数のフリップフロップＦＦ１〜ＦＦ１０をＮＱ出力で接続を繰り返しておく。各フリップフロップＦＦ１〜ＦＦ１０はプリセット端子Ｓを有し、プリセットにより“１”にセットし、それぞれの出力の初期値を“０”にセット可能となっている。その他の構成については実施の形態１の場合の図１と同様であるので、説明を省略する。
【００５０】
本実施の形態は、スキャンチェーンＳＣ３内の複数のフリップフロップＦＦ１〜ＦＦ１０をすべてＮＱ出力構成でかつプリセット可能とし、初段のフリップフロップＦＦ１のＮＱ出力端子を次段のフリップフロップＦＦ２のデータ入力端子に接続し、次段のフリップフロップＦＦ２のＮＱ出力端子を第３段のフリップフロップＦＦ３のデータ入力端子に接続し、第３段のフリップフロップＦＦ３のＮＱ出力端子を第４段のフリップフロップＦＦ４のデータ入力端子に接続するといった具合に、「ＮＱ出力→ＮＱ出力→…」のようにＮＱ出力のフリップフロップを繰り返し接続して構成されたスキャンチェーンＳＣ３を検査対象とする。そして、プリセットにより各フリップフロップＦＦ１〜ＦＦ１０のすべてを“１”にセットするステップと、次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することによりスキャンチェーンＳＣ３上の故障位置を特定するステップとを含むものである。フリップフロップＦＦ１〜ＦＦ１０のシリアル接続状態をＮＱ出力の繰り返し接続としてあるので、プリセットによりすべてのフリップフロップＦＦ１〜ＦＦ１０を“１”に初期設定すれば、それぞれの出力はすべて“０”に初期設定される。これが、図６（ａ），（ｂ）においてプリセットの段に示されている。
【００５１】
本実施の形態において、スキャンチェーンＳＣ３のスキャンシフトの動作の確認は以下の手順で行われる。
【００５２】
まず、プリセットを印加してフリップフロップＦＦ１〜ＦＦ１０全段にその出力の初期値として“０”をセットする。次いで、スキャンチェーンＳＣ３をスキャンシフトする。クロックを９個印加したときのビット列シフト図を図６（ａ）に示す。個々のビットデータは、斜め矢印のように遷移する。ビットデータは、次段のフリップフロップにシフトするたびに反転する。すなわち、矢印に沿って、“０”→“１”→“０”→“１”…のように遷移する。スキャンアウトからの出力ビット列（ビットパターン）を、図６（ａ）の正常時のスキャンアウトの期待値ビット列“１０１０１０１０１０”（下から）と比較する。スキャンアウトからは時系列的に正論理・負論理を交互とする状態の出力となっている。
【００５３】
期待値ビット列と異なった出力ビット列が観察された場合には、スキャンチェーンＳＣ３内に不良フリップフロップがあることになり、以下の方法で不良フリップフロップを特定する。
【００５４】
すなわち、図５（ｂ）に示すように例えば第６段のフリップフロップＦＦ６が不良である場合には、出力ビット列は図６（ｂ）のように、下から上に向けて、“Ｘ１０１０１１０１０”となる。
【００５５】
出力ビット列：Ｘ１０１０１１０１０
期待値ビット列：１０１０１０１０１０
である。後ろ（上）から４ビット分“０１０１”（逆順記載）は互いに一致しており、５ビット目で不一致となっている。不一致の５ビット目は後ろから６ビット目であり、これが不良フリップフロップに該当する。このようにして、スキャンチェーンＳＣ３における故障位置（不良フリップフロップの位置）を特定することができる。
【００５６】
まとめると、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＮＱ出力の繰り返し接続とした上で、プリセットによりすべてのフリップフロップを“１”に初期設定し、それぞれの出力をすべて“０”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に正論理・負論理（または負論理・正論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、ＮＱ出力繰り返し型のスキャンチェーンにおけるフリップフロップをリセット端子無しでプリセット端子付きのフリップフロップで構成し、テスト時にオールプリセット可能にするだけで、スキャンチェーンにおける故障位置特定の精度を向上させることができる。
【００５７】
なお、２クロック分、データがすり抜ける場合には、不良フリップフロップを見逃す可能性がある。これに対して、検出精度を上げる実施の形態について、以下に説明する。
【００５８】
（実施の形態４）
本発明の実施の形態４は、スキャンチェーン内の複数のフリップフロップのシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続とした上で、リセットを可能とするものである。本発明の実施の形態４にかかわるスキャンチェーンにおける故障位置特定方法を図７および図８を用いて説明する。
【００５９】
図７（ａ）は実施の形態４の場合のスキャンチェーンＳＣ４の回路構成を示し、図７（ｂ）はその不良例を示す。スキャンチェーンＳＣ４の各フリップフロップＦＦ１〜ＦＦ１０は、クロックの印加により１段前のデータ入力端子Ｄからデータを取り込み、取り込んだデータを交互にＱ出力端子とＮＱ出力端子に出力し、次段のフリップフロップに送出するように構成されている。また、スキャンチェーンＳＣ４内の複数のフリップフロップＦＦ１〜ＦＦ１０はＱ出力とＮＱ出力の交互の接続を繰り返しておく。各フリップフロップＦＦ１〜ＦＦ１０のリセット端子Ｒに対して、システムリセットとソフトリセットとがＯＲゲート５を介して入力されており、各フリップフロップＦＦ１〜ＦＦ１０はシステムリセットだけでなくソフトリセットによっても“０”にセット可能となっている。その他の構成については実施の形態１の場合の図１と同様であるので、説明を省略する。
【００６０】
本実施の形態は、スキャンチェーンＳＣ４内の複数のフリップフロップＦＦ１〜ＦＦ１０をすべてリセット可能とし、初段のフリップフロップＦＦ１のＱ出力端子を次段のフリップフロップＦＦ２のデータ入力端子に接続し、次段のフリップフロップＦＦ２のＮＱ出力端子を第３段のフリップフロップＦＦ３のデータ入力端子に接続し、第３段のフリップフロップＦＦ３のＱ出力端子を第４段のフリップフロップＦＦ４のデータ入力端子に接続するといった具合に、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」のようにＱ出力とＮＱ出力のフリップフロップを交互に接続して構成されたスキャンチェーンＳＣ４を検査対象とする。そして、リセットにより各フリップフロップＦＦ１〜ＦＦ１０のすべてを“０”にセットするステップと、次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することによりスキャンチェーンＳＣ４上の故障位置を特定するステップとを含むものである。フリップフロップＦＦ１〜ＦＦ１０のシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続としてあるので、リセットによりすべてのフリップフロップＦＦ１〜ＦＦ１０を“０”に初期設定すれば、それぞれの出力は交互に“０”，“１”，“０”，“１”…のように初期設定される。これが、図８（ａ），（ｂ）においてソフトリセットの段に示されている。
【００６１】
本実施の形態において、スキャンチェーンＳＣ４のスキャンシフトの動作の確認は以下の手順で行われる。
【００６２】
まず、ソフトリセット（またはシステムリセット）を印加してフリップフロップＦＦ１〜ＦＦ１０全段にその初期値として“０”を設定する。すなわち、各フリップフロップＦＦ１〜ＦＦ１０にその出力の初期値として、交互に“０”と“１”をセットする。次いで、スキャンチェーンＳＣ４をスキャンシフトする。クロックを９個印加したときのビット列シフト図を図８（ａ）に示す。個々のビットデータは、斜め矢印のように遷移する。ビットデータは、次段のフリップフロップにシフトするたびに、同一ビットを２度続けたあと反転する。すなわち、矢印に沿って、
“１”→“１”→“０”→“０”→“１”→“１”…
のように遷移する。あるいは、
“０”→“１”→“１”→“０”→“０”…
のように遷移する。“１”で開始するときは直後に“１”を繰り返す。“０”で開始するときは直後に“１”に変化する。スキャンアウトからの出力ビット列（ビットパターン）を、図８（ａ）の正常時のスキャンアウトの期待値ビット列“１１００１１００１１”（下から）と比較する。スキャンアウトからは時系列的に２ビット単位で正論理・負論理を交互とする状態の出力となっている。
【００６３】
期待値ビット列と異なった出力ビット列が観察された場合には、スキャンチェーンＳＣ４内に不良フリップフロップがあることになり、以下の方法で不良フリップフロップを特定する。
【００６４】
図７（ｂ）に示すように例えば第６段のフリップフロップＦＦ６が不良である場合を考える。
【００６５】
まず、不良フリップフロップがない場合には、図８（ａ）において、フリップフロップＦＦ５の出力から始めて斜め下へたどっていくと、
“０”→“１”→“１”→“０”→“０”→“１”
と原則通りに遷移する。これに対して、第６段のフリップフロップＦＦ６が不良である場合に、図８（ｂ）において、同じくフリップフロップＦＦ５の出力から始めて斜め下へたどっていくと、
“０”→“１”→“０”→“１”→“１”→“０”
となり、相違する。また、不良フリップフロップがない場合には、図８（ａ）において、フリップフロップＦＦ３の出力から始めて斜め下へたどっていくと、
“０”→“１”→“１”→“０”→“０”→“１”→“１”→“０”
と原則通りに遷移する。これに対して、第６段のフリップフロップＦＦ６が不良である場合に、図８（ｂ）において、同じくフリップフロップＦＦ３の出力から始めて斜め下へたどっていくと、
“０”→“１”→“１”→“０”→“１”→“０”→“０”→“１”
となり、相違する。
【００６６】
次に、出力ビット列についてみると、フリップフロップＦＦ６に不良があるときは、出力ビット列は図８（ｂ）のように、下から上に向けて、“Ｘ１１００１００１１”となる。
【００６７】
出力ビット列：Ｘ１ １０ ０１ ００ １１
期待値ビット列：１１ ００ １１ ００ １１
である。本実施の形態の場合は「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の交互出力であるので、２ビットを単位として考える。後ろ（上）から２ビットの２組の４ビット分は“１１００”（逆順記載）で一致しており、５，６ビット目で不一致となっている。不一致の５，６ビット目は前（下）から６，５ビット目であり、これが不良フリップフロップに該当する。このようにして、スキャンチェーンＳＣ４における故障位置（不良フリップフロップの位置）を特定することができる。不良フリップフロップについて２つの可能性があるが、２点に絞れば、レイアウト検証により故障位置を容易に特定することが可能となる。
【００６８】
まとめると、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続とした上で、リセットによりすべてのフリップフロップを“０”に初期設定し、それぞれの出力を交互に“０”と“１”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に２ビット単位で正論理・負論理（または負論理・正論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、Ｑ出力・ＮＱ出力の交互繰り返し型のスキャンチェーンにおけるフリップフロップをプリセット端子無しでリセット端子付きのフリップフロップで構成し、テスト時にオールリセット可能にするだけで、２ビット単位であるが、スキャンチェーンにおける故障位置特定の精度を確保することができる。
【００６９】
なお、上記において、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の順に代えて、「ＱＮ出力→Ｑ出力→ＱＮ出力→Ｑ出力→…」のようにＱＮ出力とＱ出力のフリップフロップが交互に接続されたスキャンチェーンを検査対象として、上記と同様のステップ処理を行うのでもよく、同様の効果が発揮される。
【００７０】
（実施の形態５）
本発明の実施の形態５は、スキャンチェーン内の複数のフリップフロップのシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続とした上で、プリセットを可能とするものである。本発明の実施の形態５にかかわるスキャンチェーンにおける故障位置特定方法を図９および図１０を用いて説明する。
【００７１】
図９（ａ）は実施の形態５の場合のスキャンチェーンＳＣ５の回路構成を示し、図９（ｂ）はその不良例を示す。スキャンチェーンＳＣ５の各フリップフロップＦＦ１〜ＦＦ１０はプリセット端子Ｓを有し、プリセットにより“１”にセットし、それぞれの出力の初期値を交互に“１”と“０”にセット可能となっている。その他の構成については実施の形態４の場合の図７と同様であるので、説明を省略する。
【００７２】
本実施の形態は、スキャンチェーンＳＣ５内の複数のフリップフロップＦＦ１〜ＦＦ１０をすべてプリセット可能とし、初段のフリップフロップＦＦ１のＱ出力端子を次段のフリップフロップＦＦ２のデータ入力端子に接続し、次段のフリップフロップＦＦ２のＮＱ出力端子を第３段のフリップフロップＦＦ３のデータ入力端子に接続し、第３段のフリップフロップＦＦ３のＱ出力端子を第４段のフリップフロップＦＦ４のデータ入力端子に接続するといった具合に、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」のようにＱ出力とＮＱ出力のフリップフロップを交互に接続して構成されたスキャンチェーンを検査対象とする。そして、プリセットにより各フリップフロップＦＦ１〜ＦＦ１０のすべてを“１”にセットするステップと、次いでスキャンシフトによりスキャンアウトから出力されるビット列を期待値ビット列と比較することによりスキャンチェーンＳＣ５上の故障位置を特定するステップとを含むものである。フリップフロップＦＦ１〜ＦＦ１０のシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続としてあるので、プリセットによりすべてのフリップフロップＦＦ１〜ＦＦ１０を“１”に初期設定すれば、それぞれの出力は交互に“１”，“０”，“１”，“０”…のように初期設定される。これが、図１０（ａ），（ｂ）においてプリセットの段に示されている。
【００７３】
本実施の形態において、スキャンチェーンＳＣ５のスキャンシフトの動作の確認は以下の手順で行われる。
【００７４】
まず、プリセットを印加してフリップフロップＦＦ１〜ＦＦ１０全段にその初期値として“１”を設定する。すなわち、各フリップフロップＦＦ１〜ＦＦ１０にその出力の初期値として、交互に“１”と“０”をセットする。次いで、スキャンチェーンＳＣ５をスキャンシフトする。クロックを９個印加したときのビット列シフト図を図１０（ａ）に示す。個々のビットデータは、斜め矢印のように遷移する。ビットデータは、次段のフリップフロップにシフトするたびに、同一ビットを２度続けたあと反転する。すなわち、矢印に沿って、
“０”→“０”→“１”→“１”→“０”→“０”…
のように遷移する。あるいは、
“１”→“０”→“０”→“１”→“１”…
のように遷移する。“０”で開始するときは直後に“０”を繰り返す。“１”で開始するときは直後に“０”に変化する。スキャンアウトからの出力ビット列（ビットパターン）を、図１０（ａ）の正常時のスキャンアウトの期待値ビット列“００１１００１１００”（下から）と比較する。スキャンアウトからは時系列的に２ビット単位で負論理・正論理を交互とする状態の出力となっている。
【００７５】
期待値ビット列と異なった出力ビット列が観察された場合には、スキャンチェーンＳＣ５内に不良フリップフロップがあることになり、以下の方法で不良フリップフロップを特定する。
【００７６】
図９（ｂ）に示すように例えば第６段のフリップフロップＦＦ６が不良である場合を考える。
【００７７】
まず、不良フリップフロップがない場合には、図１０（ａ）において、フリップフロップＦＦ５の出力から始めて斜め下へたどっていくと、
“１”→“０”→“０”→“１”→“１”→“０”
と原則通りに遷移する。これに対して、第６段のフリップフロップＦＦ６が不良である場合に、図１０（ｂ）において、同じくフリップフロップＦＦ５の出力から始めて斜め下へたどっていくと、
“１”→“０”→“１”→“０”→“１”→“１”
となり、相違する。また、不良フリップフロップがない場合には、図１０（ａ）において、フリップフロップＦＦ３の出力から始めて斜め下へたどっていくと、
“１”→“０”→“０”→“１”→“１”→“０”→“０”→“１”
と原則通りに遷移する。これに対して、第６段のフリップフロップＦＦ６が不良である場合に、図１０（ｂ）において、同じくフリップフロップＦＦ３の出力から始めて斜め下へたどっていくと、
“１”→“０”→“０”→“１”→“１”→“１”→“１”→“０”
となり、相違する。
【００７８】
次に、出力ビット列についてみると、フリップフロップＦＦ６に不良があるときは、出力ビット列は図１０（ｂ）のように、下から上に向けて、“Ｘ００１１０１１００”となる。
【００７９】
出力ビット列：Ｘ０ ０１ １０ １１ ００
期待値ビット列：００ １１ ００ １１ ００
である。本実施の形態の場合は「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の交互出力であるので、２ビットを単位として考える。後ろ（上）から２ビットの２組の４ビット分は“００１１”（逆順記載）で一致しており、５，６ビット目で不一致となっている。不一致の５，６ビット目は前（下）から６，５ビット目であり、これが不良フリップフロップに該当する。このようにして、スキャンチェーンＳＣ５における故障位置（不良フリップフロップの位置）を特定することができる。不良フリップフロップについて２つの可能性があるが、２点に絞れば、レイアウト検証により故障位置を容易に特定することが可能となる。
【００８０】
まとめると、スキャンチェーンを構成する複数のフリップフロップのシリアル接続状態をＱ出力・ＮＱ出力の交互繰り返し接続とした上で、プリセットによりすべてのフリップフロップを“１”に初期設定し、それぞれの出力を交互に“１”と“０”に初期設定するように構成したので、スキャンシフトを行えば、スキャンアウトからは時系列的に２ビット単位で負論理・正論理（または正論理・負論理）を交互とする状態の出力が可能となる。その結果、不良フリップフロップの存在に起因する出力ビット列の期待値ビット列からのビット反転の位置の特定が行いやすくなる。すなわち、Ｑ出力・ＮＱ出力の交互繰り返し型のスキャンチェーンにおけるフリップフロップをリセット端子無しでプリセット端子付きのフリップフロップで構成し、テスト時にオールプリセット可能にするだけで、２ビット単位であるが、スキャンチェーンにおける故障位置特定の精度を確保することができる。
【００８１】
なお、上記において、「Ｑ出力→ＮＱ出力→Ｑ出力→ＮＱ出力→…」の順に代えて、「ＱＮ出力→Ｑ出力→ＱＮ出力→Ｑ出力→…」のようにＱＮ出力とＱ出力のフリップフロップが交互に接続されたスキャンチェーンを検査対象として、上記と同様のステップ処理を行うのでもよく、同様の効果が発揮される。
【産業上の利用可能性】
【００８２】
本発明のスキャンチェーンにおける故障位置特定方法は、スキャンチェーンを有する半導体集積回路において、スキャンチェーン上のフリップフロップ群における不良フリップフロップを高精度に特定する技術として有用である。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施の形態１におけるスキャンチェーンの回路構成図とその不良例図
【図２】本発明の実施の形態１におけるスキャンチェーンにおける故障位置特定方法の動作を説明するビット列シフト図
【図３】本発明の実施の形態２におけるスキャンチェーンの回路構成図とその不良例図
【図４】本発明の実施の形態２におけるスキャンチェーンにおける故障位置特定方法の動作を説明するビット列シフト図
【図５】本発明の実施の形態３におけるスキャンチェーンの回路構成図とその不良例図
【図６】本発明の実施の形態３におけるスキャンチェーンにおける故障位置特定方法の動作を説明するビット列シフト図
【図７】本発明の実施の形態４におけるスキャンチェーンの回路構成図とその不良例図
【図８】本発明の実施の形態４におけるスキャンチェーンにおける故障位置特定方法の動作を説明するビット列シフト図
【図９】本発明の実施の形態５におけるスキャンチェーンの回路構成図とその不良例図
【図１０】本発明の実施の形態５におけるスキャンチェーンにおける故障位置特定方法の動作を説明するビット列シフト図
【図１１】スキャンチェーンの一般的説明図
【図１２】従来の技術におけるスキャンチェーンの回路構成図とその不良例図
【図１３】従来の技術におけるスキャンチェーンにおける故障位置特定方法の動作を説明するビット列シフト図
【符号の説明】
【００８４】
ＦＦ１〜ＦＦ１０  スキャンチェーンを構成するフリップフロップ
ＳＣ１〜ＳＣ５  スキャンチェーン
【図１】
2007051936.tif 000003
【図２】
2007051936.tif 000004
【図３】
2007051936.tif 000005
【図４】
2007051936.tif 000006
【図５】
2007051936.tif 000007
【図６】
2007051936.tif 000008
【図７】
2007051936.tif 000009
【図８】
2007051936.tif 000010
【図９】
2007051936.tif 000011
【図１０】
2007051936.tif 000012
【図１１】
2007051936.tif 000013
【図１２】
2007051936.tif 000014
【図１３】
2007051936.tif 000015