(57)【要約】【課題】遷移故障の有無を検出できるとともに、遷移故障が生じている箇所を容易に特定する。【解決手段】半導体装置は、Ｌ段（Ｌ≧３）のフリップフロップ群ＧＲ＿１〜ＧＲ＿Ｌと、Ｌ段のフリップフロップ群ＧＲ＿１〜ＧＲ＿Ｌの間に１個ずつ配置されたＬ−１個の組み合わせ論理回路ＣＬＣ＿１〜ＣＬＣ＿Ｌ−１とを備える。スキャンチェーンは、初段のフリップフロップ群ＧＲ＿１から最終段のフリップフロップ群ＧＲ＿Ｌまでフリップフロップ群ごとに１つのスキャンフリップフロップＳＦＦを順に接続した後に、再び初段のフリップフロップ群ＧＲ＿１から最終段のフリップフロップ群ＧＲ＿Ｌまでフリップフロップ群ごとに１つのスキャンフリップフロップＳＦＦを順に接続することを繰り返すように構成されている。【選択図】図１４
2014089055.tif 000002
【特許請求の範囲】
【請求項１】
ｎ段（ｎ≧３）のフリップフロップ群に区分され、スキャンチェーンの構成要素として機能するスキャン動作モードおよび通常のフリップフロップとして動作する通常動作モードに切替え可能な複数のスキャンフリップフロップと、
前記ｎ段のフリップフロップ群の間に１個ずつ配置されることによって、前記ｎ段のフリップフロップ群とともにパイプライン回路を構成するｎ−１個の組み合わせ論理回路とを備え、
前記スキャンチェーンは、前記パイプライン回路の初段のフリップフロップ群から最終段のフリップフロップ群までフリップフロップ群ごとに１つのスキャンフリップフロップを順に接続した後に、再び初段のフリップフロップ群から最終段のフリップフロップ群までフリップフロップ群ごとに１つのスキャンフリップフロップを順に接続することを繰り返すように構成されている、半導体装置。
【請求項２】
各フリップフロップ群ごとに個別にスキャンイネーブル信号が入力され、
各スキャンフリップフロップは、対応のスキャンイネーブル信号に応じて、前記スキャン動作モードまたは前記通常動作モードに切替わる、請求項１に記載の半導体装置。
【請求項３】
半導体装置のテスト方法であって、
前記半導体装置は、
ｎ段（ｎ≧３）のフリップフロップ群に区分され、スキャンチェーンの構成要素として機能するスキャン動作モードおよび通常のフリップフロップとして動作する通常動作モードに切替え可能な複数のスキャンフリップフロップと、
前記ｎ段のフリップフロップ群の間に１個ずつ配置されることによって、前記ｎ段のフリップフロップ群とともにパイプライン回路を構成するｎ−１個の組み合わせ論理回路とを備え、
前記スキャンチェーンは、前記パイプライン回路の初段のフリップフロップ群から最終段のフリップフロップ群までフリップフロップ群ごとに１つのスキャンフリップフロップを順に接続した後に、再び初段のフリップフロップ群から最終段のフリップフロップ群までフリップフロップ群ごとに１つのスキャンフリップフロップを順に接続することを繰り返すように構成されており、
前記テスト方法は、
前記スキャンチェーンを介したデータ転送によって、第ｉ−１段目（ｉは、２≦ｉ≦ｎ−１を満たす任意の整数）のフリップフロップ群に、前記パイプライン回路の先頭側から第ｉ番目の組み合わせ論理回路をテストするためのテスト入力データを保持させ、第ｉ段目のフリップフロップ群に初期入力データを保持させるステップを備え、
前記初期入力データは、前記テスト入力データに対する出力の期待値を反転させた値が、テスト対象の組み合わせ論理回路から出力されるように設定され、
さらに、第ｉ段目のフリップフロップ群を前記スキャン動作モードに切替えるとともに、第ｉ＋１段目のフリップフロップ群を前記通常動作モードに切替えた状態で、各スキャンフリップフロップに２クロックパルスを入力するステップと、
前記スキャンチェーンを介したデータ転送によって、第ｉ番目の組み合わせ論理回路へのテスト入力データに対する出力値を第ｉ＋１段目のフリップフロップ群から取り出すステップとを備えた半導体装置のテスト方法。
【請求項４】
前記スキャンチェーンを介したデータ転送によって、最終段のフリップフロップ群に、前記パイプライン回路の先頭側から第１番目の組み合わせ論理回路をテストするためのテスト入力データを保持させ、初段のフリップフロップ群に初期入力データを保持させるステップと、
初段のフリップフロップ群を前記スキャン動作モードに切替えるとともに、第２段目のフリップフロップ群を前記通常動作モードに切替えた状態で、前記スキャンチェーンの先頭のスキャンフリップフロップのスキャン入力ノードに、前記先頭のスキャンフリップフロップを介して第１番目の組み合わせ論理回路に与えるテスト入力データを入力し、その後、各スキャンフリップフロップに２クロックパルスを入力するステップと、
前記スキャンチェーンを介したデータ転送によって、第１番目の組み合わせ論理回路へのテスト入力データに対する出力値を第２段目のフリップフロップ群から取り出すステップとをさらに備える、請求項３に記載の半導体装置のテスト方法。
【請求項５】
前記スキャンチェーンを介したデータ転送によって、初段のフリップフロップ群に、前記パイプライン回路の先頭側から第１番目の組み合わせ論理回路をテストする際の初期入力データを保持させるステップと、
初段および第２段目のフリップフロップ群を前記通常動作モードに切替えた状態で、初段のフリップフロップ群を構成するスキャンフリップフロップの通常入力ノードに、第１番目の組み合わせ論理回路をテストするためのテスト入力データを入力し、その後、各スキャンフリップフロップに２クロックパルスを入力するステップと、
前記スキャンチェーンを介したデータ転送によって、第１番目の組み合わせ論理回路へのテスト入力データに対する出力値を第２段目のフリップフロップ群から取り出すステップとをさらに備える、請求項３に記載の半導体装置のテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体装置およびそのテスト方法に関し、たとえば、スキャンチェーンが設けられたパイプライン構成の順序回路（パイプライン回路）に好適に用いられるものである。
【背景技術】
【０００２】
論理回路の故障には、縮退故障と遷移故障（ＡＣ故障とも称する）とがある。縮退故障とは、入力に拘らず出力の論理レベルが“０”または“１”に固定される故障をいう。遷移故障とは、データ信号とクロック信号との間のタイミングのずれによって誤動作が生じる故障をいう。
【０００３】
たとえば、特開２００４−１５７０２９号公報（特許文献１）は、パイプライン回路において縮退故障の有無とともに縮退故障が生じた位置を検出可能な方法を開示する。特にこの文献では、スキャンチェーンの縮退故障の位置も検出可能な方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１５７０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
スキャンチェーンを利用した従来の故障検出方法では、半導体集積回路装置が大規模になると全ての遷移故障を検出することが困難になる。さらに、従来の方法では自動化が容易でないために、遷移故障が発生した箇所を特定する際に人手によって多大な労力を費やしている。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態による半導体装置は、ｎ段（ｎ≧３）のフリップフロップ群と、ｎ段のフリップフロップ群の間に１個ずつ配置されたｎ−１個の組み合わせ論理回路とを備える。スキャンチェーンは、初段のフリップフロップ群から最終段のフリップフロップ群までフリップフロップ群ごとに１つのスキャンフリップフロップを順に接続した後に、再び初段のフリップフロップ群から最終段のフリップフロップ群までフリップフロップ群ごとに１つのスキャンフリップフロップを順に接続することを繰り返すように構成されている。
【発明の効果】
【０００８】
上記の一実施の形態によれば、遷移故障の有無を検出できるとともに、遷移故障が生じている箇所を容易に特定することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施の形態による半導体装置の全体構成を模式的に示すブロック図である。
【図２】遷移故障について説明するための図である。
【図３】この実施の形態による遷移故障のテスト方法の原理を説明するための図である。
【図４】図３のＡＮＤゲートの入力データとＡＮＤゲートの後段のＤフリップフリップフロップに保持された出力値との関係を表形式で示す図である。
【図５】図１のパイプライン回路の構成例を示す図である。
【図６】図５の組み合わせ論理回路ＣＬＣ（Ｂ）のテスト手順を示すフローチャートである。
【図７】スキャンチェーンについて説明するための図である。
【図８】図６の２クロックパルスを入力するステップについて説明するための図である。
【図９】図５の組み合わせ論理回路ＣＬＣ（Ａ）のテスト手順を示すフローチャートである。
【図１０】図９の２クロックパルスを入力するステップについて説明するための図である。
【図１１】図５の組み合わせ論理回路ＣＬＣ（Ａ）の他のテスト手順を示すフローチャートである。
【図１２】図１１の２クロックパルスを入力するステップについて説明するための図である。
【図１３】この実施の形態の変形例１としてのパイプライン回路の構成を示すブロック図である。
【図１４】この実施の形態の変形例２としてのパイプライン回路の構成を示すブロック図である。
【図１５】この実施の形態の変形例３としてのパイプライン回路の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、実施の形態について図面を参照して詳しく説明する。なお、同一または相当する部分には同一の参照符号を付して、その説明を繰返さない。
【００１１】
［半導体装置の概要］
図１は、一実施の形態による半導体装置の全体構成を模式的に示すブロック図である。図１を参照して、半導体装置１は、パイプライン回路２と、デバッグ用のインターフェース回路３と、クロック生成器５と、セレクタ６と、入出力インターフェース回路７とを含む。図１には、さらに、プログラムに従って半導体装置１のテストを自動的に実行するホストコンピュータ９が示されている。
【００１２】
セレクタ６は、クロック生成器５またはデバッグ用インターフェース回路３から供給されるクロックの択一的に選択するだけでなく、クロックの分周や指定された期間にクロックを出力する回路であっても良い。
【００１３】
パイプライン回路２は、スキャンチェーンを構成する複数のスキャンフリップフロップと、複数の組み合わせ論理回路とを含む。複数のスキャンフリップフロップは、Ｌ個（Ｌ≧３）のフリップフロップ群に区分される。図５で後述するように、パイプライン回路２は、Ｌ個のＤフリップフロップ群と複数の組み合わせ論理回路とが１つずつ交互に直列に接続された構成を有する。
【００１４】
インターフェース回路３は、ＪＴＡＧ（Joint  Test  Action  Group）方式のインターフェースである。インターフェース回路３は、端子群ＴＧを介して外部のホストコンピュータ９と接続される。インターフェース回路３は、外部のホストコンピュータ９からクロック信号ＳＣＡＮ＿ＣＬＫ、命令ＳＣＡＮ＿ＣＭＤ、およびスキャンデータＳＣＡＮ＿ＩＮの入力を受け、ホストコンピュータ９にスキャンデータＳＣＡＮ＿ＯＵＴを出力する。入力された命令ＳＣＡＮ＿ＣＭＤに応じて、内部のシーケンサ４からスキャンイネーブル信号ＳＥＮおよびテスト信号ＴＳＴなどの制御信号が出力される。
【００１５】
クロック生成器５は、パイプライン回路２に供給するためのクロック信号を生成する。セレクタ６は、テスト信号ＴＳＴに応じて、パイプライン回路に供給するクロック信号ＣＬＫとして、クロック生成器５によって生成されたクロック信号とスキャンクロック信号ＳＣＡＮ＿ＣＬＫとの一方を選択する。パイプライン回路２のテスト時には、テスト信号ＴＳＴが活性化され、これによってスキャンクロック信号ＳＣＡＮ＿ＣＬＫがクロック信号ＣＬＫとしてパイプライン回路２に供給される。
【００１６】
入出力インターフェース回路７は、半導体装置１の外部との間でデータの入出力を行なう。パイプライン回路２から出力された出力データＤＡＴＡ＿ＯＵＴは、入出力インターフェース回路７を介して半導体装置１の外部に出力される。半導体装置１の外部から入力されたデータは、入出力インターフェース回路７を介して入力データＤＡＴＡ＿ＩＮとしてパイプライン回路２に入力される。
【００１７】
［遷移故障について］
図２は、遷移故障について説明するための図である。図２（Ａ）、（Ｂ）および（Ｃ）の各図では、上から順にＤフリップフロップ（ＦＦ：Flip-Flop）への入力信号、クロック信号ＣＬＫ、およびＤフリップフロップからの出力信号が示されている。
【００１８】
図２（Ａ）に示す正常な場合には、クロック信号ＣＬＫの立上がり時に（時刻ｔ１）、データＤＴ１がＤフリップフロップに保持され、これによりＤフリップフロップの出力がデータＤＴ１に切替わる。次のクロック信号の立上がり時には（時刻ｔ２）、次のデータＤＴ２がＤフリップフロップに保持され、これによりＤフリップフロップの出力がデータＤＴ２に切替わる。
【００１９】
遷移故障では、データ信号のタイミングがより早くなる場合と、より遅くなる場合の両方の場合があり得る。たとえば、ＭＯＳ（Metal  Oxide  Semiconductor）トランジスタの経年劣化によってゲートのコンタクト不良が生じた結果、ゲート・ソース間電圧が低下した場合には、ターンオンのタイミングが遅くなる。ゲート酸化膜のリークによってゲート・ドレイン間電圧が低下した場合には、ターンオンのタイミングが早くなる。
【００２０】
図２（Ｂ）に示す遷移故障の場合には、データ信号のタイミングがクロック信号のタイミングよりも早くなっている。このため、時刻ｔ１，ｔ２には、それぞれデータ信号ＤＴ２，ＤＴ３がＤフリップフロップに保持されており、図２（Ａ）の場合と比較してタイミングのずれが生じている。
【００２１】
図２（Ｃ）に示す遷移故障の場合には、データ信号のタイミングがクロック信号ＣＬＫのタイミングよりも遅くなっている。このため、時刻ｔ１、ｔ２には、それぞれデータ信号ＤＴ０，ＤＴ１がＤフリップフロップに保持されており、図２（Ａ）の場合と比較してタイミングのずれが生じている。
【００２２】
［遷移故障のテスト方法の原理］
図３は、この実施の形態による遷移故障のテスト方法の原理を説明するための図である。図３には、一例として、ＡＮＤゲートＡＧの遷移故障をテストする場合の回路構成が示されている。具体的に、ＡＮＤゲートＡＧの第１の入力端子ＩＮ１にはＤフリップフロップＦＦ１ａの出力端子Ｑが接続され、ＤフリップフロップＦＦ１ａの入力端子ＤにはＤフリップフロップＦＦ１ｂの出力端子Ｑが接続される。ＡＮＤゲートＡＧの第２の入力端子ＩＮ２にはＤフリップフロップＦＦ２ａの出力端子Ｑが接続され、ＤフリップフロップＦＦ２ａの入力端子ＤにはＤフリップフロップＦＦ２ｂの出力端子Ｑが接続される。ＡＮＤゲートＡＧの出力端子ＯＵＴにはＤフリップフロップＦＦ０の入力端子Ｄが接続される。
【００２３】
図４は、図３のＡＮＤゲートの入力データとＡＮＤゲートの後段のＤフリップフリップフロップに保持された出力値との関係を表形式で示す図である。
【００２４】
図３および図４を参照して、ＡＮＤゲートＡＧをテストする場合には、４通りのテスト入力データ（０，０）,（０，１），（１，０），（１，１）にそれぞれ対応して、出力の期待値“０”，“０”，“０”，“１”が出力側のＤフリップフロップＦＦ０に保持されたか否かを確認する。ここで、出力の期待値“０（１）”がＤフリップフロップＦＦ０に保持されているか否かを確認するためには、期待値と反対の初期出力値“１（０）”をＤフリップフロップＦＦ０に予め保持しておく必要がある。このため、４通りのテスト入力データ（０，０）,（０，１），（１，０），（１，１）の前に初期入力データ（１，１），（１，１），（１，１），（０，０）がＡＮＤゲートＡＧにそれぞれ入力される。ＡＮＤゲートＡＧは、各初期入力データに応じて出力期待値と反対の論理レベルの初期出力値を生成する。初期入力データ（０，０）に代えて（０，１）または（１，０）でも構わない。
【００２５】
たとえば、テスト入力データ（０，０）に対して出力期待値“０”が得られるか否かをテストするためには、予めＤフリップフロップＦＦ１ａ，ＦＦ１ｂに初期入力データ“１”、“１”がそれぞれ保持され、ＤフリップフロップＦＦ２ａ，ＦＦ２ｂにテスト入力データ“０”、“０”がそれぞれ保持される。この状態では、初期入力データ（１，１）に対応する初期出力値“１”がＤフリップフロップＦＦ０の入力端子Ｄに与えられているが、ＤフリップフロップＦＦ０に取り込まれていない。
【００２６】
次に、２クロックパルスが各Ｄフリップフロップのクロック端子に入力される。クロックパルス間の間隔は実動作の際のクロック周期と同じである。最初のクロックパルスによって、初期出力値“１”がＤフリップフロップＦＦ０に保持されるとともに、テスト入力データ“０”および“０”がＤフリップフロップＦＦ１ａ，ＦＦ１ｂにそれぞれ保持される。次のクロックパルスによって、テスト入力データ（０，０）に対応する出力値がＤフリップフロップＦＦ０に保持される。Ｄフリップフロップに保持された出力値が出力期待値“０”に等しいか否かを確認することによって、遷移故障が生じているか否かを確認することができる。
【００２７】
他のテスト入力データ（０，１），（１，０），（１，１）についても同様の手順でテストを行なう。
【００２８】
［パイプライン回路の構成例］
図５は、図１のパイプライン回路の構成例を示す図である。図５を参照して、パイプライン回路２は、３段のフリップフロップ群ＧＲ＿Ａ，ＧＲ＿Ｂ，ＧＲ＿Ｃと、３個の組み合わせ論理回路ＣＬＣ（Ａ），ＣＬＣ（Ｂ），ＣＬＣ（Ｃ）とを含む。フリップフロップ群は最低でも３段必要である。フリップフロップ群ＧＲ＿Ａ，ＧＲ＿Ｂ，ＧＲ＿Ｃと組み合わせ論理回路ＣＬＣ（Ａ），ＣＬＣ（Ｂ），ＣＬＣ（Ｃ）とは交互に直列に接続される。すなわち、フリップフロップ群ＧＲ＿Ａ，ＧＲ＿Ｂ，ＧＲ＿Ｃの間に組み合わせ論理回路ＣＬＣ（Ａ），ＣＬＣ（Ｂ）が１個ずつ配置される。
【００２９】
各フリップフロップ群ＧＲは、３個のスキャンフリップフロップＳＦＦによって構成される。以下の説明では、フリップフロップ群ＧＲ＿Ａに含まれる３つのスキャンフリップフロップをスキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）と記載する。フリップフロップ群ＧＲ＿Ｂに含まれる３つのスキャンフリップフロップをスキャンフリップフロップＳＦＦ（２，１），ＳＦＦ（２，２），ＳＦＦ（２，３）と記載する。フリップフロップ群ＧＲ＿Ｃに含まれる３つのスキャンフリップフロップをスキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２），ＳＦＦ（３，３）と記載する。
【００３０】
各スキャンフリップフロップＳＦＦは、スキャン入力ノードＳＩＮと、通常入力ノードＮＩＮと、出力ノードＳＯＵＴと、セレクタＳＬと、ＤフリップフロップＦＦとを含む。セレクタＳＬは、スキャンイネーブル信号ＳＥＮに応じてスキャン入力ノードＳＩＮおよび通常入力ノードＮＩＮの一方を選択し、選択された入力ノードに入力された信号をＤフリップフロップＦＦの入力端子に転送する。ＤフリップフロップＦＦに保持されている論理値に応じた出力信号が、スキャンフリップフロップＳＦＦの出力ノードＳＯＵＴから出力される。なお、以下の説明では、各ＤフリップフロップＦＦを区別する場合にも、上記のスキャンフリップフロップＳＦＦと同様にＤフリップフロップＦＦ（１，１）のように記載する。
【００３１】
この実施の形態の場合、スキャンイネーブル信号ＳＥＮがＨレベル（High  Level）すなわち論理値“１”のとき、スキャン入力ノードＳＩＮに入力された信号がＤフリップフロップＦＦに入力される。以下、この場合のスキャンフリップフロップＳＦＦの動作モードをスキャン動作モードと称する。スキャン動作モードでは、スキャンフリップフロップＳＦＦはスキャンチェーンの要素として動作する。
【００３２】
一方、スキャンイネーブル信号ＳＥＮがＬレベル（Low  Level）すなわち“０”のとき、通常入力ノードに入力された信号がＤフリップフロップＦＦに入力される。以下、この場合のスキャンフリップフロップＳＦＦの動作モードを通常動作モードと称する。通常動作モードでは、スキャンフリップフロップＳＦＦは通常のＤフリップフロップとして動作する。
【００３３】
スキャンイネーブル信号ＳＥＮは、フリップフロップ群ＧＲごとに個別に入力される。図５の場合には、フリップフロップ群ＧＲ＿Ａ，ＧＲ＿Ｂ，ＧＲ＿Ｃにそれぞれ対応してスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ＿ＳＥＮ＿Ｃが図１のインターフェース回路３からパイプライン回路３に供給される。
【００３４】
以下、図５に示すパイプライン回路２の各構成要素の接続、特にスキャンチェーンの構成について説明する。
【００３５】
初段のフリップフロップ群ＧＲ＿Ａを構成するスキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）の通常入力ノードＮＩＮには図１の入出力インターフェース回路７から入力データＤＡＴＡ＿ＩＮが入力される。スキャンフリップフロップＳＦＦ（１，１）のスキャン入力ノードＳＩＮにはスキャンデータＳＣＡＮ＿ＩＮが入力される。スキャンフリップフロップＳＦＦ（１，２）のスキャン入力ノードＳＩＮは、スキャンパスを介してスキャンフリップフロップＳＦＦ（３，１）の出力ノードＳＯＵＴと接続される。スキャンフリップフロップＳＦＦ（１，３）のスキャン入力ノードＳＩＮは、スキャンパスを介してスキャンフリップフロップＳＦＦ（３，２）の出力ノードＳＯＵＴと接続される。
【００３６】
スキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）の出力ノードＳＯＵＴは、スキャンフリップフロップＳＦＦ（２，１），ＳＦＦ（２，２），ＳＦＦ（２，３）のスキャン入力ノードＳＩＮとスキャンパスを介してそれぞれ直結される。さらに、スキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）の出力ノードＳＯＵＴは、組み合わせ論理回路ＣＬＣ（Ａ）を通過する通常パスを介してスキャンフリップフロップＳＦＦ（２，１），ＳＦＦ（２，２），ＳＦＦ（２，３）の通常入力ノードＮＩＮにそれぞれ接続される。
【００３７】
同様に、スキャンフリップフロップＳＦＦ（２，１），ＳＦＦ（２，２），ＳＦＦ（２，３）の出力ノードＳＯＵＴは、スキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２），ＳＦＦ（３，３）のスキャン入力ノードＳＩＮとスキャンパスを介してそれぞれ直結される。さらに、スキャンフリップフロップＳＦＦ（２，１），ＳＦＦ（２，２），ＳＦＦ（２，３）の出力ノードＳＯＵＴは、組み合わせ論理回路ＣＬＣ（Ｂ）を通過する通常パスを介してスキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２），ＳＦＦ（３，３）の通常入力ノードＮＩＮにそれぞれ接続される。
【００３８】
スキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２），ＳＦＦ（３，３）の出力ノードＳＯＵＴから出力された信号は組み合わせ論理回路ＣＬＣ（Ｃ）に入力され、組み合わせ論理回路ＣＬＣ（Ｃ）の出力信号が、出力データＤＡＴＡ＿ＯＵＴとして図１の入出力インターフェース回路７に与えられる。スキャンフリップフロップＳＦＦ（３，３）の出力ノードＳＯＵＴからはスキャンデータＳＣＡＮ＿ＯＵＴが出力される。
【００３９】
この実施の形態のスキャンチェーンは、初段のフリップフロップ群ＧＲ＿Ａから最終段のフリップフロップ群ＧＲ＿Ｃまでフリップフロップ群ごとに１つのスキャンフリップフロップＳＦＦを順に接続した後に、再び初段のフリップフロップ群ＧＲ＿Ａから最終段のフリップフロップ群ＧＲ＿Ｃまでフリップフロップ群ごとに１つのスキャンフリップフロップＳＦＦを順に接続することを繰り返すように構成されている。
【００４０】
図５の場合には、スキャンチェーンは、ＳＦＦ（１，１），ＳＦＦ（２，１），ＳＦＦ（３，１），ＳＦＦ（１，２），ＳＦＦ（２，２），ＳＦＦ（３，２），ＳＦＦ（１，３），ＳＦＦ（２，３），ＳＦＦ（３，３）の順でスキャンフリップフロップが接続されることによって構成されている。
【００４１】
図５のスキャンチェーンの構成に代えて、ＳＦＦ（１，１），ＳＦＦ（２，３），ＳＦＦ（３，２），ＳＦＦ（１，３），ＳＦＦ（２，２），ＳＦＦ（３，１），ＳＦＦ（１，２），ＳＦＦ（２，１），ＳＦＦ（３，３）の順にスキャンフリップフロップを接続することによってスキャンチェーンを構成してもよい。
【００４２】
［パイプライン回路のテスト方法について］
１．組み合わせ論理回路ＣＬＣ（Ｂ）のテスト方法
図６は、図５の組み合わせ論理回路ＣＬＣ（Ｂ）のテスト手順を示すフローチャートである。図６の各ステップは、図１のホストコンピュータ９による命令の発行およびデータの入力によって実行される。
【００４３】
図５、図６を参照して、まず、ホストコンピュータ９は、全てのスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ，ＳＥＮ＿ＣをＨレベル（“１”）に設定する（ステップＳ１００）。これによって、パイプライン回路２の全てのスキャンフリップフロップＳＦＦはスキャンチェーンの要素として機能する。
【００４４】
図７は、スキャンチェーンについて説明するための図である。図７の太線で示す経路がスキャンチェーンＳＣＨを示している。各フリップフロップにクロックパルスが複数回入力されることによって、先頭のスキャンフリップフロップＳＦＦ（１，１）に入力されたスキャンデータＳＣＡＮ＿ＩＮが各スキャンフリップフロップＳＦＦに順次転送される（図６のステップＳ１０５）。
【００４５】
ホストコンピュータ９は、スキャンチェーンＳＣＨを介したデータ転送によって、フリップフロップ群ＧＲ＿Ａを構成するスキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）に、組み合わせ論理回路ＣＬＣ（Ｂ）をテストするためのテスト入力データを保持させる。さらに、ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、フリップフロップ群ＧＲ＿Ｂを構成するスキャンフリップフロップＳＦＦ（２，１），ＳＦＦ（２，２），ＳＦＦ（２，３）に、初期入力データを保持させる。初期入力データは、テスト入力データに対する出力の期待値を反転させた値が、テスト対象の組み合わせ論理回路ＣＬＣ（Ｂ）から出力されるように設定されている。
【００４６】
再び図５、図６を参照して、ホストコンピュータ９は、次に、スキャンイネーブル信号ＳＥＮ＿ＢをＨレベル（“１”）に設定し、スキャンイネーブル信号ＳＥＮ＿ＣをＬレベル（“０”）に設定する（ステップＳ１１０）。スキャンイネーブル信号ＳＥＮ＿ＡはＨレベルおよびＬレベルのいずれでも構わない。この状態で、ホストコンピュータ９は、各スキャンフリップフロップＳＦＦに２クロックパルスを入力する（ステップＳ１１５）。この２クロックパルスの間隔は、図１のクロック生成器５から出力される実動作でのクロック信号の周期と同じにする。
【００４７】
図８は、図６の２クロックパルスを入力するステップについて説明するための図である。図８を参照して、クロックパルスが入力されていない状態では、フリップフロップ群ＧＲ＿Ｂに保持されている初期入力データに応じた信号が組み合わせ論理回路ＣＬＣ（Ｂ）に入力されている。組み合わせ論理回路ＣＬＣ（Ｂ）の出力信号は、フリップフロップ群ＧＲ＿ＣのセレクタＳＬを通過してＤフリップフロップＦＦ（３，１），ＦＦ（３，２），ＦＦ（３，３）の入力端子に与えられているが、ＤフリップフロップＦＦ（３，１），ＦＦ（３，２），ＦＦ（３，３）には取り込まれていない。さらに、フリップフロップ群にＧＲ＿Ａに保持されているテスト入力データに応じた信号は、スキャンパスを介してフリップフロップ群ＧＲ＿Ｂに入力されている。このテスト入力データに応じた信号は、フリップフロップ群ＧＲ＿ＢのセレクタＳＬを通過してＤフリップフロップＦＦ（２，１），ＦＦ（２，２），ＦＦ（２，３）の入力端子に与えられているが、ＤフリップフロップＦＦ（２，１），ＦＦ（２，２），ＦＦ（２，３）には取り込まれていない。
【００４８】
次に１クロックパルスが入力されると、初期入力データに対応する組み合わせ論理回路ＣＬＣ（Ｂ）の出力値がフリップフロップ群ＧＲ＿ＣのＤフリップフロップＦＦ（３，１），ＦＦ（３，２），ＦＦ（３，３）に保持される。さらに、テスト入力データがフリップフロップ群ＧＲ＿ＢのＤフリップフロップＦＦ（２，１），ＦＦ（２，２），ＦＦ（２，３）に保持される。続いて、１クロックパルスが入力されると、テスト入力データに対応する組み合わせ論理回路ＣＬＣ（Ｂ）の出力値がフリップフロップ群ＧＲ＿ＣのＤフリップフロップＦＦ（３，１），ＦＦ（３，２），ＦＦ（３，３）に保持される。
【００４９】
再び図５、図６を参照して、ホストコンピュータ９は、次に全てのスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ，ＳＥＮ＿ＣをＨレベル（“１”）に設定する（ステップＳ１２０）。これによって、パイプライン回路２の全てのスキャンフリップフロップＳＦＦはスキャンチェーンの要素として機能する。ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、フリップフロップ群ＧＲ＿ＣのＤフリップフロップＦＦ（３，１），ＦＦ（３，２），ＦＦ（３，３）に保持されている出力値を取り出す（ステップＳ１２５）。
【００５０】
取り出した出力値が期待値に一致するか否かを確認することによって、遷移故障が生じているか否かを判定することができ、さらには、遷移故障が生じている場所を特定することができる。
【００５１】
上記は、フリップフロップ群ＧＲが３段の場合について説明したが、より一般的にＬ段（Ｌ≧３）のフリップフロップ群ＧＲが設けられているパイプライン回路において、パイプライン回路の先頭側から２番目以降の組み合わせ論理回路ＣＬＣのテストも上記と同様の手順で行なうことができる。以下、パイプライン回路の先頭側から第ｉ番目（ｉは、２≦ｉ≦Ｌ−１を満たす任意の整数）の組み合わせ論理回路ＣＬＣのテストを行なう手順について説明する。
【００５２】
まず、ホストコンピュータ９は、全てのフリップフロップ群をスキャン動作モードに切替える。そして、ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、第ｉ−１番目のフリップフロップ群に、第ｉ番目の組み合わせ論理回路をテストするためのテスト入力データを保持させ、第ｉ番目のフリップフロップ群に初期入力データを保持させる。ここで、初期入力データは、テスト入力データに対する出力の期待値を反転させた値が、テスト対象の第ｉ番目の組み合わせ論理回路から出力されるように設定されている。
【００５３】
次に、ホストコンピュータ９は、第ｉ番目のフリップフロップ群をスキャン動作モードに切替えるとともに、第ｉ＋１番目のフリップフロップ群を通常動作モードに切替えた状態で、各フリップフロップに２クロックパルスを入力する。
【００５４】
次に、ホストコンピュータ９は、全てのフリップフロップ群をスキャン動作モードに切替える。そして、ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、第ｉ番目の組み合わせ論理回路へのテスト入力データに対する出力値を第ｉ＋１番目のフリップフロップ群から取り出す。
【００５５】
取り出した出力値が期待値に一致するか否かを確認することによって、遷移故障が生じているか否かを判定することができ、さらには、遷移故障が生じている場所を特定することができる。
【００５６】
２．第１番目の組み合わせ論理回路ＣＬＣ（Ａ）のテスト方法
図９は、図５の組み合わせ論理回路ＣＬＣ（Ａ）のテスト手順を示すフローチャートである。図９の各ステップは、図１のホストコンピュータ９による命令の発行およびデータの入力によって実行される。
【００５７】
図５、図９を参照して、まず、ホストコンピュータ９は、全てのスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ，ＳＥＮ＿ＣをＨレベル（“１”）に設定する（ステップＳ２００）。ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、初段のフリップフロップ群ＧＲ＿Ａを構成するスキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）に、組み合わせ論理回路ＣＬＣ（Ａ）をテストする際の初期入力データを保持させる（ステップＳ２０５）。初期入力データは、テスト入力データに対する出力の期待値を反転させた値が、テスト対象の組み合わせ論理回路ＣＬＣ（Ａ）から出力されるように設定されている。
【００５８】
次に、ホストコンピュータ９は、スキャンイネーブル信号ＳＥＮ＿Ａおよび号ＳＥＮ＿ＢをＬレベル（“０”）に設定する（ステップＳ２１０）。スキャンイネーブル信号ＳＥＮ＿Ｃは、Ｈレベル（“１”）でもＬレベル（“０”）でもよいが、Ｌレベル（“０”）にしたほう好ましい。この場合、テスト対象ではない組み合わせ論理回路ＣＬＣ（Ｂ）の出力値が２次的に得られ、何らかのテストに使用することができるからである。
【００５９】
次に、ホストコンピュータ９は、初段のフリップフロップ群ＧＲ＿Ａを構成するスキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）の通常入力ノードＮＩＮに、組み合わせ論理回路ＣＬＣ（Ａ）をテストするためのテスト入力データを与える（ステップＳ２１５）。この状態で、ホストコンピュータ９は、各スキャンフリップフロップＳＦＦに２クロックパルスを入力する（ステップＳ２２０）。
【００６０】
図１０は、図９の２クロックパルスを入力するステップについて説明するための図である。図１０において太線はデータの転送経路を示す。
【００６１】
図１０を参照して、最初のクロックパルスが入力されると、フリップフロップ群ＧＲ＿Ａに保持されていた初期入力データに対応する組み合わせ論理回路ＣＬＣ（Ａ）の出力値が、フリップフロップ群ＧＲ＿Ｂに保持される。さらに、フリップフロップ群ＧＲ＿Ａの通常入力端子ＮＩＮに入力されていたテスト入力データがフリップフロップ群ＧＲ＿ＡのＤフリップフロップＦＦ（１，１），ＦＦ（１，２），ＦＦ（１，３）に保持される。次のクロックパルスが入力されると、テスト入力データに対応する組み合わせ論理回路ＣＬＣ（Ａ）の出力値がフリップフロップ群ＧＲ＿Ｂに保持される。
【００６２】
再び図５、図９を参照して、次に全てのスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ，ＳＥＮ＿ＣをＨレベル（“１”）に設定する（ステップＳ２２５）。ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、フリップフロップ群ＧＲ＿ＢのＤフリップフロップＦＦ（２，１），ＦＦ（２，２），ＦＦ（２，３）に保持されている出力値を取り出す（ステップＳ２３０）。
【００６３】
取り出した出力値が期待値に一致するか否かを確認することによって、遷移故障が生じているか否かを判定することができ、さらには、遷移故障が生じている場所を特定することができる。
【００６４】
３．第１番目の組み合わせ論理回路ＣＬＣ（Ａ）の他のテスト方法
図１１は、図５の組み合わせ論理回路ＣＬＣ（Ａ）の他のテスト手順を示すフローチャートである。図１１の各ステップは、図１のホストコンピュータ９による命令の発行およびデータの入力によって実行される。
【００６５】
図５、図１１を参照して、まず、ホストコンピュータ９は、全てのスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ，ＳＥＮ＿ＣをＨレベル（“１”）に設定する（ステップＳ３００）。ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、初段のフリップフロップ群ＧＲ＿Ａを構成するスキャンフリップフロップＳＦＦ（１，１），ＳＦＦ（１，２），ＳＦＦ（１，３）に、組み合わせ論理回路ＣＬＣ（Ａ）をテストする際の初期入力データを保持させる（ステップＳ３０５）。初期入力データは、テスト入力データに対する出力の期待値を反転させた値が、テスト対象の組み合わせ論理回路ＣＬＣ（Ａ）から出力されるように設定される。ホストコンピュータ９は、さらに、最終段のフリップフロップ群ＧＲ＿Ｃを構成するスキャンフリップフロップＳＦＦ（３，１），（３，２）に（スキャンチェーンの最後尾のスキャンフリップフロップＳＦＦ（３，３）を除く）、組み合わせ論理回路ＣＬＣ（Ａ）をテストするためのテスト入力データを保持させる。
【００６６】
次に、ホストコンピュータ９は、スキャンイネーブル信号ＳＥＮ＿ＡをＨレベル（“１”）に設定し、スキャンイネーブル信号ＳＥＮ＿ＢをＬレベル（“０”）に設定する（ステップＳ３１０）。スキャンイネーブル信号ＳＥＮ＿Ｃは、Ｈレベル（“１”）でもＬレベル（“０”）でもよいが、Ｌレベル（“０”）にするほうが、テスト対象ではない組み合わせ論理回路ＣＬＣ（Ｂ）の出力値が２次的に得られるので好ましい。
【００６７】
次に、ホストコンピュータ９は、初段のフリップフロップ群ＧＲ＿Ａを構成するスキャンフリップフロップＳＦＦ（１，１）（スキャンチェーンの先頭）のスキャン入力ノードＳＩＮに、組み合わせ論理回路ＣＬＣ（Ａ）をテストするためのテスト入力データを与える（ステップＳ３１５）。この状態で、ホストコンピュータ９は、各スキャンフリップフロップＳＦＦに２クロックパルスを入力する（ステップＳ３２０）。
【００６８】
図１２は、図１１の２クロックパルスを入力するステップについて説明するための図である。図１２において太線はデータの転送経路を示す。
【００６９】
図１２を参照して、最初のクロックパルスが入力されると、フリップフロップ群ＧＲ＿Ａに保持されていた初期入力データに対応する組み合わせ論理回路ＣＬＣ（Ａ）の出力値が、フリップフロップ群ＧＲ＿Ｂに保持される。さらに、スキャンフリップフロップＳＦＦ（１，１）のスキャン入力ノードＳＩＮに入力されるとともにスキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２）に保持されていたテスト入力データが、フリップフロップ群ＧＲ＿ＡのＤフリップフロップＦＦ（１，１），ＦＦ（１，２），ＦＦ（１，３）に転送される。次のクロックパルスが入力されると、テスト入力データに対応する組み合わせ論理回路ＣＬＣ（Ａ）の出力値がフリップフロップ群ＧＲ＿Ｂに保持される。
【００７０】
再び図５、図１１を参照して、次に全てのスキャンイネーブル信号ＳＥＮ＿Ａ，ＳＥＮ＿Ｂ，ＳＥＮ＿ＣをＨレベル（“１”）に設定する（ステップＳ３２５）。ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、フリップフロップ群ＧＲ＿ＢのＤフリップフロップＦＦ（２，１），ＦＦ（２，２），ＦＦ（２，３）に保持されている出力値を取り出す（ステップＳ３３０）。
【００７１】
取り出した出力値が期待値に一致するか否かを確認することによって、遷移故障が生じているか否かを判定することができ、さらには、遷移故障が生じている場所を特定することができる。
【００７２】
［パイプライン回路の変形例］
（変形例１）
図１３は、この実施の形態の変形例１としてのパイプライン回路の構成を示すブロック図である。図１３に示すパイプライン回路２Ａは、フリップフロップ群ＧＲ＿Ｄおよび組み合わせ論理回路ＣＬＣ（Ｄ）をさらに含む点で図５のパイプライン回路２と異なる。フリップフロップ群ＧＲ＿Ｄは、３個のスキャンフリップフロップＳＦＦ（４，１），ＳＦＦ（４，２），ＳＦＦ（４，３）によって構成される。追加されたフリップフロップ群ＧＲ＿Ｄおよび組み合わせ論理回路ＣＬＣ（Ｄ）の接続は次のとおりである。
【００７３】
スキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２），ＳＦＦ（３，３）の出力ノードＳＯＵＴは、スキャンフリップフロップＳＦＦ（４，１），ＳＦＦ（４，２），ＳＦＦ（４，３）のスキャン入力ノードＳＩＮとスキャンパスを介してそれぞれ直結される。さらに、スキャンフリップフロップＳＦＦ（３，１），ＳＦＦ（３，２），ＳＦＦ（３，３）の出力ノードＳＯＵＴは、組み合わせ論理回路ＣＬＣ（Ｃ）を通過する通常パスを介してスキャンフリップフロップＳＦＦ（４，１），ＳＦＦ（４，２），ＳＦＦ（４，３）の通常入力ノードＮＩＮにそれぞれ接続される。
【００７４】
スキャンフリップフロップＳＦＦ（４，１），ＳＦＦ（４，２），ＳＦＦ（４，３）の出力ノードＳＯＵＴから出力された信号は組み合わせ論理回路ＣＬＣ（Ｄ）に入力され、組み合わせ論理回路ＣＬＣ（Ｄ）の出力信号が、出力データＤＡＴＡ＿ＯＵＴとして図１の入出力インターフェース回路７に与えられる。さらに、スキャンフリップフロップＳＦＦ（４，１），ＳＦＦ（４，２）の出力ノードＳＯＵＴは、スキャンパスを介してスキャンフリップフロップＳＦＦ（１，２），（１，３）のスキャン入力ノードＳＩＮにそれぞれ接続される。スキャンフリップフロップＳＦＦ（４，３）の出力ノードＳＯＵＴからはスキャンデータＳＣＡＮ＿ＯＵＴが出力される。
【００７５】
４段構成のパイプライン回路の場合には、２個の組み合わせ論理回路のテストを同時に行なうことができる。図１３には、組み合わせ論理回路ＣＬＣ（Ａ）およびＣＬＣ（Ｃ）を同時にテストする場合のデータの転送経路が太線で示されている。
【００７６】
テスト時には、最初に、図１のホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、組み合わせ論理回路ＣＬＣ（Ａ）のテスト入力データをフリップフロップ群ＧＲ＿ＤのスキャンフリップフロップＳＦＦ（４，１），ＳＦＦ（４，２）に保持させる。さらに、ホストコンピュータ９は、組み合わせ論理回路ＣＬＣ（Ａ）をテストする際の初期入力データをフリップフロップ群ＧＲ＿Ａに保持させる。さらに、ホストコンピュータ９は、組み合わせ論理回路ＣＬＣ（Ｃ）のテスト入力データをフリップフロップ群ＧＲ＿Ｂに保持させ、組み合わせ論理回路ＣＬＣ（Ｃ）をテストする際の初期入力データをフリップフロップ群ＧＲ＿Ｃに保持させる。
【００７７】
次に、ホストコンピュータ９は、スキャンイネーブル信号ＳＥＮ＿ＡおよびＳＥＮ＿ＣをＨレベル（“１”）に設定し、スキャンイネーブル信号ＳＥＮ＿ＢおよびＳＥＮ＿ＤをＬレベル（“０”）に設定する。さらに、ホストコンピュータ９は、スキャンフリップフロップＳＦＦ（１，１）のスキャン入力ノードＳＩＮに、組み合わせ論理回路ＣＬＣ（Ａ）をテストするためのテスト入力データを与える。
【００７８】
次に１クロックパルスが入力されると、フリップフロップ群ＧＲ＿Ａに保持されていた初期入力データに対応する組み合わせ論理回路ＣＬＣ（Ａ）の出力値がフリップフロップ群ＧＲ＿Ｂに保持される。組み合わせ論理回路ＣＬＣ（Ａ）をテストするためのテスト入力データがフリップフロップ群ＧＲ＿Ａに保持される。さらに、フリップフロップ群ＧＲ＿Ｃに保持されていた初期入力データに対応する組み合わせ論理回路ＣＬＣ（Ｃ）の出力値がフリップフロップ群ＧＲ＿Ｄに保持される。組み合わせ論理回路ＣＬＣ（Ｃ）をテストするためのテスト入力データがフリップフロップ群ＧＲ＿Ｃに保持される。
【００７９】
続いて、１クロックパルスが入力されると、フリップフロップ群ＧＲ＿Ａに保持されていたテスト入力データに対応する組み合わせ論理回路ＣＬＣ（Ａ）の出力値がフリップフロップ群ＧＲ＿Ｂに保持される。フリップフロップ群ＧＲ＿Ｃに保持されていたテスト入力データに対応する組み合わせ論理回路ＣＬＣ（Ｃ）の出力値がフリップフロップ群ＧＲ＿Ｄに保持される。
【００８０】
次に、ホストコンピュータ９は、スキャンチェーンを介したデータ転送によって、フリップフロップ群ＧＲ＿Ｂに保持されている組み合わせ論理回路ＣＬＣ（Ａ）の出力値と、フリップフロップ群ＧＲ＿Ｄに保持されている組み合わせ論理回路ＣＬＣ（Ｃ）の出力値とを取り出す。取り出した出力値が期待値に一致するか否かを確認することによって、組み合わせ論理回路ＣＬＣ（Ａ）およびＣＬＣ（Ｃ）において遷移故障が生じているか否かを判定することができ、さらには、遷移故障が生じている場所を特定することができる。
【００８１】
（変形例２）
図１４は、この実施の形態の変形例２としてのパイプライン回路の構成を示すブロック図である。図１４に示すパイプライン回路２Ｂは、Ｌ段（Ｌ≧３）のフリップフロップ群ＧＲ＿１〜ＧＲ＿Ｌと、Ｌ個の組み合わせ論理回路ＣＬＣ＿１〜ＣＬＣ＿Ｌとを含む。フリップフロップ群ＧＲ＿１〜ＧＲ＿Ｌと組み合わせ論理回路ＣＬＣ＿１〜ＣＬＣ＿Ｌとは、交互に１つずつ直列に接続される。すなわち、組み合わせ論理回路ＣＬＣ_１〜ＣＬＣ＿Ｌ−１は、Ｌ段のフリップフロップ群ＧＲ＿１〜ＧＲ＿Ｌの間に１つずつ配置される。
【００８２】
各フリップフロップ群ＧＲは、Ｍ個のスキャンフリップフロップを含む。組み合わせ論理回路ＣＬＣ＿ｊ（ただし、１≦ｊ≦Ｌ−１）は、前段のフリップフロップ群ＧＲ＿ｊのＭ個のスキャンフリップフロップから通常パスを介してＭビットの信号の入力を受け、Ｍビットの信号を後段のフリップフロップ群ＧＲ＿ｊ＋１のＭ個のスキャンフリップフロップに出力する。変形例２の場合には、組み合わせ論理回路ＣＬＣ＿ｊは、さらに、Ｎｊビットの出力データＤＡＴＡ＿ＯＵＴ＿ｊをパイプライン回路２Ｂの外部に出力する。
【００８３】
最後尾の組み合わせ論理回路ＣＬＣ＿Ｌは、最終段のフリップフロップ群ＧＲ＿ＬのＭ個のスキャンフリップフロップからＭビットの信号の入力を受け、ＮＬビットの出力データＤＡＴＡ＿ＯＵＴ＿Ｌをパイプライン回路２Ｂの外部に出力する。
【００８４】
スキャンチェーンは、初段のフリップフロップ群ＧＲ＿１から最終段のフリップフロップ群ＧＲ＿Ｌまでフリップフロップ群ごとに１つのスキャンフリップフロップＳＦＦを順に接続する。スキャンチェーンは、最終段のフリップフロップ群ＧＲ＿Ｌの１つのフリップフロップを接続した後に、再び初段のフリップフロップ群ＧＲ＿１から最終段のフリップフロップ群ＧＲ＿Ｌまでフリップフロップ群ごとに１つのスキャンフリップフロップＳＦＦを順に接続することを繰り返すように構成されている。図１４においてスキャンパスを太線で示す。
【００８５】
フリップフロップ群ＧＲ＿１〜ＧＲ＿Ｌには、それぞれ対応のスキャンイネーブル信号ＳＥＮ［１］〜ＳＥＮ［Ｌ］が入力されている。各スキャンフリップフロップは、対応のスキャンイネーブル信号ＳＥＮに応じて、フリップフロップ群ＧＲごとにスキャン動作モードと通常動作モードとに切替わる。
【００８６】
以上の構成によって、テスト対象となる組み合わせ論理回路ＣＬＣ＿１〜ＣＬＣ＿Ｌ−１の全ての遷移故障が検出可能になる。
【００８７】
（変形例３）
図１５は、この実施の形態の変形例３としてのパイプライン回路の構成を示すブロック図である。
【００８８】
図１５に示すパイプライン回路２Ｃは、ｘ個のパイプライン回路ＰＣ＿１〜ＰＣ＿ｘを従属接続した構成を有する。各パイプライン回路ＰＣは、図１４に示すパイプライン回路２Ｂにおいて、組み合わせ論理回路ＣＬＣ＿ｊ（ただし、１≦ｊ≦Ｌ−１）から出力データＤＡＴＡ＿ＯＵＴ＿ｊが外部に出力されていない構成と同じである。具体的に、任意の第ｋ番目のパイプライン回路ＰＣ＿ｋ（ただし、１≦ｋ≦ｘ）は、Ｌ段のフリップフロップ群を含み、各フリップフロップ群は、Ｎ＿ｋ−１個のスキャンフリップフロップを含む。
【００８９】
図１５の構成のパイプライン回路においても、テスト対象となる組み合わせ論理回路の全ての遷移故障が検出可能になる。
【００９０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【符号の説明】
【００９１】
１  半導体装置、２，２Ａ，２Ｂ，２Ｃ  パイプライン回路、３  インターフェース回路、ＣＬＣ  組み合わせ論理回路、ＦＦ  Ｄフリップフロップ、ＧＲ  フリップフロップ群、ＮＩＮ  通常入力ノード、ＳＥＮ  スキャンイネーブル信号、ＳＦＦ  スキャンフリップフロップ、ＳＩＮ  スキャン入力ノード、ＳＯＵＴ  出力ノード。
【図１】
2014089055.tif 000003
【図２】
2014089055.tif 000004
【図３】
2014089055.tif 000005
【図４】
2014089055.tif 000006
【図５】
2014089055.tif 000007
【図６】
2014089055.tif 000008
【図７】
2014089055.tif 000009
【図８】
2014089055.tif 000010
【図９】
2014089055.tif 000011
【図１０】
2014089055.tif 000012
【図１１】
2014089055.tif 000013
【図１２】
2014089055.tif 000014
【図１３】
2014089055.tif 000015
【図１４】
2014089055.tif 000016
【図１５】
2014089055.tif 000017