(57)【要約】【課題】スキャンテストに対応した半導体集積回路について、故障検出率の低下及び／又はテストパタン数の増加を抑制する。【解決手段】半導体集積回路が、スキャン入力とデータ入力とを有するスキャンフリップフロップと、キャプチャモードにおいて、前記スキャンフリップフロップが前記スキャン入力に入力された値をキャプチャするように前記スキャンフリップフロップを制御可能に構成されたスキャン制御回路部とを備えている。【選択図】図２
2019145048.tif 000002
【特許請求の範囲】
【請求項１】
スキャン入力とデータ入力とを有するスキャンフリップフロップと、
キャプチャモードにおいて、前記スキャンフリップフロップが前記スキャン入力に入力された値をキャプチャするように前記スキャンフリップフロップを制御可能に構成されたスキャン制御回路部
とを備える
半導体集積回路。
【請求項２】
前記スキャン制御回路部が、スキャンテストが行われるときにアサートされる制御信号を前記スキャンフリップフロップのスキャンイネーブル端子に供給可能に構成された
請求項１に記載の半導体集積回路。
【請求項３】
前記スキャン制御回路部が、スキャンモード信号を前記スキャンフリップフロップのスキャンイネーブル端子に供給可能に構成された
請求項２に記載の半導体集積回路。
【請求項４】
前記スキャン制御回路部が、前記スキャンフリップフロップのスキャンイネーブル端子に、前記スキャンモード信号とスキャンイネーブル信号とを選択的に供給可能に構成された
請求項３に記載の半導体集積回路。
【請求項５】
前記スキャン制御回路部が、前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンテストの種類に応じて前記スキャンモード信号とスキャンイネーブル信号とを選択的に供給可能に構成された
請求項４に記載の半導体集積回路。
【請求項６】
前記スキャン制御回路部が、前記スキャンフリップフロップのスキャンイネーブル端子に、当該半導体集積回路の外部から供給される制御信号に応じて前記スキャンモード信号とスキャンイネーブル信号とを選択的に供給可能に構成された
請求項４に記載の半導体集積回路。
【請求項７】
更に、
前記スキャンフリップフロップを含むスキャンチェーンを含む複数のスキャンチェーンと、
圧縮テストデータを展開して前記複数のスキャンチェーンに供給するテストデータを生成する展開回路部と、
前記複数のスキャンチェーンから出力される出力応答に基づいて圧縮テスト結果データを生成する圧縮回路部
とを備える
請求項１に記載の半導体集積回路。
【請求項８】
コンピュータが、少なくとも一のスキャンフリップフロップが、キャプチャモードにおいて、スキャン入力に入力された値をキャプチャ可能であるように、前記スキャンフリップフロップを含む半導体集積回路のネットリストを生成することを含む
半導体集積回路の設計方法。
【請求項９】
前記ネットリストが、スキャンテストが行われるときにアサートされる制御信号を前記スキャンフリップフロップのスキャンイネーブル端子に供給可能であるように生成される
請求項８に記載の半導体集積回路の設計方法。
【請求項１０】
前記ネットリストが、前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンモード信号とスキャンイネーブル信号とを選択的に供給可能であるように生成される
請求項９に記載の半導体集積回路の設計方法。
【請求項１１】
前記ネットリストが、前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンテストの種類に応じて前記スキャンモード信号とスキャンイネーブル信号とを選択的に供給可能であるように生成される
請求項１０に記載の半導体集積回路の設計方法。
【請求項１２】
前記ネットリストが、前記スキャンフリップフロップのスキャンイネーブル端子に、前記半導体集積回路の外部から供給される制御信号に応じて前記スキャンモード信号とスキャンイネーブル信号とを選択的に供給可能であるように生成される
請求項１０に記載の半導体集積回路の設計方法。
【請求項１３】
前記ネットリストを生成することは、
前記コンピュータが、一の設定について、データ入力に接続された回路から不定値をキャプチャするスキャンフリップフロップを抽出することと、
抽出された前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンモード信号が供給可能であるように前記ネットリストを生成することを含む
請求項８に記載の半導体集積回路の設計方法。
【請求項１４】
前記ネットリストを生成することは、
前記コンピュータが、一の設定について、データ入力に接続された回路から不定値をキャプチャする可能性があるスキャンフリップフロップを抽出することと、
抽出された前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンモード信号が供給可能であるように前記ネットリストを生成することを含む
請求項８に記載の半導体集積回路の設計方法。
【請求項１５】
前記ネットリストを生成するステップは、
前記スキャンフリップフロップを含むスキャンチェーンを含む複数のスキャンチェーンと、圧縮テストデータを展開して前記複数のスキャンチェーンに供給するテストデータを生成する展開回路部と、前記複数のスキャンチェーンから出力される出力応答に基づいて圧縮テスト結果データを生成する圧縮回路部とを挿入するステップ
とを含む
請求項８に記載の半導体集積回路の設計方法。
【請求項１６】
少なくとも一のスキャンフリップフロップが、キャプチャモードにおいて、スキャン入力に入力された値をキャプチャ可能であるように、前記スキャンフリップフロップを含む半導体集積回路のネットリストを生成するステップを、コンピュータに実行させる
プログラム。
【請求項１７】
前記ネットリストが、スキャンテストが行われるときにアサートされる制御信号を前記スキャンフリップフロップのスキャンイネーブル端子に供給可能であるように生成される
請求項１６に記載のプログラム。
【請求項１８】
前記ネットリストを生成することは、
前記コンピュータが、一の設定について、データ入力に接続された回路から不定値をキャプチャするスキャンフリップフロップを抽出することと、
抽出された前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンモード信号が供給可能であるように前記ネットリストを生成することを含む
請求項１６に記載のプログラム。
【請求項１９】
前記ネットリストを生成することは、
前記コンピュータが、一の設定について、データ入力に接続された回路から不定値をキャプチャする可能性があるスキャンフリップフロップを抽出することと、
抽出された前記スキャンフリップフロップのスキャンイネーブル端子に、スキャンモード信号が供給可能であるように前記ネットリストを生成することを含む
請求項１６に記載のプログラム。
【請求項２０】
請求項１６乃至１９のいずれか１項に記載のプログラムを記憶する記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、及びその設計技術に関する。
【背景技術】
【０００２】
スキャンテストは、テスト容易化設計技術の一つとして用いられる。スキャンテストに対応した半導体集積回路には、スキャンフリップフロップが直列に接続されたスキャンチェーンが集積化される。テストが行われる場合、テストデータがテスト対象の回路の入力に接続されたスキャンフリップフロップに設定され、テスト対象の回路が動作される。更に、テスト対象の回路の出力に接続されたスキャンフリップフロップから出力応答が取り出され、取り出された出力応答に基づいて半導体集積回路の故障検出が行われる。
【０００３】
回路の大規模化に伴うテスト時間の増加に対応するために、圧縮スキャンと呼ばれる手法が導入され得る。圧縮スキャンとは、圧縮テストデータを展開回路で展開して複数のスキャンチェーンのそれぞれにテストデータを供給すると共に、該複数のスキャンチェーンから出力される出力応答を圧縮して半導体集積回路の外部に出力する技術である。テスタでは、圧縮された出力応答に基づいて半導体集積回路の故障検出が行われる。圧縮スキャンによれば、各スキャンチェーンの長さを短くすることができるので、テスト時間を短縮することができる。
【０００４】
スキャンフリップフロップが不定値をキャプチャする場合には、該スキャンフリップフロップから得られる出力応答に基づく故障検出ができなくなり、故障検出率の低下及び／又はテストパタン数の増加を招くことがある。
【発明の概要】
【０００５】
一の実施形態では、半導体集積回路が、回路の出力に接続されたデータ入力を有するスキャンフリップフロップと、キャプチャモードにおいて、該スキャンフリップフロップがスキャン入力に入力されたデータをキャプチャするように該スキャンフリップフロップを制御可能に構成されたスキャン制御回路部とを備えている。
【０００６】
他の実施形態では、半導体集積回路の設計方法が、コンピュータが、少なくとも一のスキャンフリップフロップが、キャプチャモードにおいて、スキャン入力に入力された値をキャプチャ可能であるように、前記スキャンフリップフロップを含む半導体集積回路のネットリストを生成することを含む。
【０００７】
他の実施形態では、プログラムが、少なくとも一のスキャンフリップフロップが、キャプチャモードにおいて、スキャン入力に入力された値をキャプチャ可能であるように、前記スキャンフリップフロップを含む半導体集積回路のネットリストを生成するステップをコンピュータに実行させる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態の半導体集積回路の構成を示すブロック図である。
【図２】一実施形態の半導体集積回路の構成を示す回路図である。
【図３】参考例の半導体集積回路の構成を示す回路図である。
【図４】一実施形態において行われるＡＣスキャンを示す回路図である。
【図５】参考例において行われるＡＣスキャンを示す回路図である。
【図６】一実施形態の半導体集積回路の構成を示す回路図である。
【図７】一実施形態の半導体集積回路の構成を示す回路図である。
【図８】一実施形態の半導体集積回路の構成を示す回路図である。
【図９】一実施形態の半導体集積回路の構成を示す回路図である。
【図１０】一実施形態の半導体集積回路の構成を示す回路図である。
【図１１】一実施形態における集積回路設計装置の構成を示すブロック図である。
【図１２】一実施形態における半導体集積回路の設計手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら、本開示の実施形態を説明する。
【００１０】
図１に示す一実施形態では、半導体集積回路１００が、展開回路１１と、スキャンチェーン１２１〜１２４と、圧縮回路１３とを備えている。
【００１１】
展開回路１１は、スキャンイン端子１４に供給された圧縮テストデータを展開してテストデータを生成し、生成したテストデータをスキャンチェーン１２１〜１２４のそれぞれに供給する。
【００１２】
スキャンチェーン１２１〜１２４は、それぞれ、直列に接続されたスキャンフリップフロップＳＦＦを備えている。本実施形態では、スキャンチェーン１２１がスキャンフリップフロップＳＦＦ１１〜ＳＦＦ１４を備えており、スキャンチェーン１２２がスキャンフリップフロップＳＦＦ２１〜ＳＦＦ２４を備えている。同様に、スキャンチェーン１２３がスキャンフリップフロップＳＦＦ３１〜ＳＦＦ３４を備えており、スキャンチェーン１２４がスキャンフリップフロップＳＦＦ４１〜ＳＦＦ４４を備えている。なお、スキャンチェーン１２の数及び各スキャンチェーン１２に含まれるスキャンフリップフロップの数は、半導体集積回路１００の構成に合わせて適宜に変更され得る。
【００１３】
圧縮回路１３は、スキャンチェーン１２１〜１２４から出力される出力応答を圧縮して圧縮テスト結果データを生成し、圧縮テスト結果データをスキャンアウト端子１５から出力する。圧縮テスト結果データは、例えば、半導体集積回路１００の外部のテスタに供給され、該テスタにより半導体集積回路１００の故障検出が行われる。
【００１４】
本実施形態では、圧縮回路１３は、ＸＯＲ回路１３ａ〜１３ｃを備えており、スキャンチェーン１２１〜１２４のそれぞれから出力される出力応答の排他的論理和を圧縮テスト結果データとして出力する。例えば、スキャンフリップフロップＳＦＦ１４、ＳＦＦ２４、ＳＦＦ３４、ＳＦＦ４４に格納された出力応答が、それぞれ、“１”、“０”、“０”、“１”である場合、圧縮回路１３から出力される圧縮テスト結果データの該出力応答に対応するビットは、“０”である。同様に、スキャンフリップフロップＳＦＦ１３、ＳＦＦ２３、ＳＦＦ３３、ＳＦＦ４３に格納された出力応答が、それぞれ、“１”、“１”、“０”、“１”である場合、圧縮回路１３から出力される圧縮テスト結果データの該出力応答に対応するビットは、“１”である。
【００１５】
図２に示すように、各スキャンフリップフロップＳＦＦは、データ入力ＤＡＴＡ、スキャン入力ＳＩＮ、スキャンイネーブル端子ＳＥ、クロック端子ＣＬＫ及びデータ出力Ｑを有している。図２には、スキャンチェーン１２２のスキャンフリップフロップＳＦＦ２１〜２４のみが図示されているが、他のスキャンフリップフロップＳＦＦも同様に構成されている。
【００１６】
各スキャンフリップフロップＳＦＦのデータ入力ＤＡＴＡは、スキャンテストにおいて出力値をキャプチャすべき回路の出力に接続される。図２の構成では、スキャンフリップフロップＳＦＦ２１、ＳＦＦ２２、ＳＦＦ２３及びＳＦＦ２４が、それぞれ、テスト対象の回路＃１、回路＃２、回路＃３及び回路＃４に接続されている。
【００１７】
スキャン入力ＳＩＮは、スキャンチェーンの他のスキャンフリップフロップのデータ出力Ｑ又は展開回路に接続される。図２の構成では、スキャンフリップフロップＳＦＦ２１のスキャン入力ＳＩＮが、展開回路１１に接続され、スキャンフリップフロップＳＦＦ２２、ＳＦＦ２３及びＳＦＦ２４のスキャン入力ＳＩＮが、それぞれ、スキャンフリップフロップＳＦＦ２１、ＳＦＦ２２及びＳＦＦ２３のデータ出力Ｑに接続されている。
【００１８】
クロック端子ＣＬＫには、クロック信号（図示されない）が供給される。各スキャンフリップフロップＳＦＦは、クロック端子ＣＬＫに入力されたクロック信号に同期してデータ入力ＤＡＴＡ又はスキャン入力ＳＩＮの入力値をキャプチャするように構成される。
【００１９】
各スキャンフリップフロップＳＦＦは、スキャンイネーブル端子ＳＥの値に応じて、データ入力ＤＡＴＡとスキャン入力ＳＩＮを選択し、選択した入力に入力された値をキャプチャするように構成される。スキャンイネーブル端子ＳＥがディスイネーブルにされると（一実施形態では、“０”に設定されると）、各スキャンフリップフロップＳＦＦは、データ入力ＤＡＴＡの入力値をキャプチャする。一方、スキャンイネーブル端子ＳＥがイネーブルにされると（一実施形態では“１”に設定されると）、各スキャンフリップフロップＳＦＦは、スキャン入力ＳＩＮの入力値をキャプチャする。各スキャンフリップフロップＳＦＦがキャプチャした値は、データ出力Ｑから出力される。
【００２０】
本実施形態では、半導体集積回路１００が、スキャンテストにおいて設定される動作モードとして、シフトモードとキャプチャモードとを有している。シフトモードとは、スキャンチェーンをシフトレジスタとして動作させ、シフト動作によって各スキャンフリップフロップＳＦＦへの所望の値の設定、及び、キャプチャモードでキャプチャした値の読み出しを行う動作モードである。キャプチャモードとは、スキャンチェーンがそのスキャンフリップフロップＳＦＦのデータ入力に接続された回路から値をキャプチャする動作モードである。ただし、後述されるように、本実施形態では、全てのスキャンフリップフロップＳＦＦがデータ入力に接続された回路から値をキャプチャするとは限らない。本実施形態では、少なくとも一のスキャンフリップフロップＳＦＦが、キャプチャモードにおいてスキャン入力ＳＩＮから値をキャプチャ可能であるように構成される。
【００２１】
本実施形態の半導体集積回路１００は、キャプチャモードに設定されたときに、スキャンフリップフロップＳＦＦの少なくとも一つがスキャン入力ＳＩＮを選択可能であるように構成されている。他のスキャンフリップフロップＳＦＦは、半導体集積回路１００がキャプチャモードに設定されたときに、データ入力を選択する。
【００２２】
詳細には、本実施形態では、各スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに、スキャンイネーブル信号ＳＣＡＮ＿ＥＮ又はスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかがスキャン制御回路部１６から供給される。ここで、スキャンイネーブル信号ＳＣＡＮ＿ＥＮは、スキャンテストにおいて半導体集積回路１００がシフトモードに設定されたときにアサートされ（一実施形態では、“１”に設定され）、キャプチャモードに設定されたときにディアサートされる（一実施形態では、“０”に設定される）信号である。また、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥは、半導体集積回路１００をスキャンモードに設定するための信号であり、半導体集積回路１００のスキャンテストが行われる間、常にアサートされる。
【００２３】
スキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮが供給されるスキャンフリップフロップＳＦＦは、半導体集積回路１００がキャプチャモードに設定された場合に、データ入力ＤＡＴＡを選択する。このようなスキャンフリップフロップＳＦＦは、キャプチャモードにおいて、データ入力ＤＡＴＡへの入力値をキャプチャすることになる。
【００２４】
一方、スキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給されるスキャンフリップフロップＳＦＦは、半導体集積回路１００がキャプチャモードに設定された場合でも、スキャン入力ＳＩＮを選択する。このようなスキャンフリップフロップＳＦＦは、キャプチャモードにおいて、スキャン入力ＳＩＮへの入力値をキャプチャすることになる。
【００２５】
スキャン制御回路部１６は、所望のスキャンフリップフロップＳＦＦにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥを供給すると共に、残りのスキャンフリップフロップＳＦＦにスキャンイネーブル信号ＳＣＡＮ＿ＥＮを供給するように構成されている。本実施形態では、スキャン制御回路部１６は、スキャンイネーブル信号線１６ａとスキャンモード信号線１６ｂとを備えている。スキャンイネーブル信号線１６ａは、スキャンイネーブル信号ＳＣＡＮ＿ＥＮの供給に用いられ、スキャンモード信号線１６ｂは、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥの供給に用いられる。一実施形態では、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥは、半導体集積回路１００に集積化されたレジスタ（図示されない）によって生成され、スキャンモード信号線１６ｂに供給される。
【００２６】
各スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮ又はスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれが供給されるかは、データ入力ＤＡＴＡに接続される回路の特性に応じて選択される。
【００２７】
具体的には、半導体集積回路１００のスキャンテストにおいて、データ入力ＤＡＴＡに接続された回路から確定した値（“１”又は“０”）をキャプチャするスキャンフリップフロップＳＦＦについては、スキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮが供給される。
【００２８】
一方、一の設定について、データ入力ＤＡＴＡに接続された回路から不定値（Ｘ）をキャプチャするスキャンフリップフロップＳＦＦについては、スキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮが供給される。スキャンフリップフロップＳＦＦがデータ入力ＤＡＴＡに接続された回路から不定値をキャプチャする例としては、例えば、下記が挙げられる。
【００２９】
第１の例は、データ入力ＤＡＴＡに接続された回路が、ブラックボックスとして扱われるマクロである場合である。
【００３０】
第２の例は、スキャンテストにおける設定により、キャプチャモード時に当該スキャンフリップフロップＳＦＦが不定値をキャプチャするように設定される場合である。
【００３１】
第３の例は、スキャンフリップフロップＳＦＦのデータ入力ＤＡＴＡが、スキャンチェーンに属していないフリップフロップのデータ出力に接続されている場合である。ただし、テストパタンが、順序回路のテストが可能であるように生成される場合、例えば、テストパタンの生成にシーケンシャルＡＴＰＧ（automatic test pattern generation）が用いられる場合には、データ入力ＤＡＴＡにスキャンチェーンに属していないフリップフロップが接続されていても、キャプチャする値が確定できる場合もある。
【００３２】
第４の例は、データ入力ＤＡＴＡへのパスが、フォールスパス又はマルチサイクルパスとして指定されている場合である。
【００３３】
図２の構成では、スキャンテスト時に、スキャンフリップフロップＳＦＦ２３が、特定の設定について回路＃３から不定値をキャプチャする。これに対応して、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが入力される。以下において、あるスキャンフリップフロップＳＦＦが不定値をキャプチャする場合、該不定値を“Ｘ”と表記することがある。図２の回路＃３に付された記号“Ｘ”は、一の設定についてスキャンフリップフロップＳＦＦ２３が回路＃３から不定値をキャプチャすることを示している。一方、スキャンフリップフロップＳＦＦ２１、ＳＦＦ２２、ＳＦＦ２４のスキャンイネーブル端子ＳＥにはスキャンイネーブル信号ＳＣＡＮ＿ＥＮが入力される。
【００３４】
一実施形態では、図１、図２に示された構成の半導体集積回路１００のスキャンテストが、下記のようにして行われる。まず、ＤＣスキャンを行う場合の半導体集積回路１００の動作を説明する。ＤＣスキャンとは、縮退故障を検出するために行われる低速のスキャンテストである。
【００３５】
スキャンモード信号ＳＣＡＮ＿ＭＯＤＥをアサートすることにより半導体集積回路１００がスキャンモードに設定される。
【００３６】
更に、スキャンイネーブル信号ＳＣＡＮ＿ＥＮをアサートすることにより半導体集積回路１００がシフトモードに設定され、スキャンシフト動作が行われる。これにより、各スキャンフリップフロップＳＦＦはスキャン入力ＳＩＮを選択する状態に設定され、スキャン入力ＳＩＮを介して各スキャンフリップフロップＳＦＦにテストデータが設定される。ただし、図２には、テスト対象の回路＃１〜＃４の入力に接続されて回路＃１〜＃４にテストデータを供給するスキャンフリップフロップや外部入力端子は図示されていない。
【００３７】
続いて、スキャンイネーブル信号ＳＣＡＮ＿ＥＮをディアサートすることにより半導体集積回路１００がキャプチャモードに設定される。この状態では、スキャンフリップフロップＳＦＦ２１、ＳＦＦ２２、ＳＦＦ２４は、スキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮが入力されているので、データ入力ＤＡＴＡを選択する。一方で、スキャンフリップフロップＳＦＦ２３は、スキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給されているので、スキャン入力ＳＩＮを選択する。
【００３８】
続いて、各スキャンフリップフロップＳＦＦのクロック端子ＣＬＫにクロックパルスが供給され、各スキャンフリップフロップＳＦＦは、キャプチャ動作を行う。スキャンフリップフロップＳＦＦ２１、ＳＦＦ２２、ＳＦＦ２４は、それぞれ、回路＃１、＃２、＃４の出力値をキャプチャする。一方、スキャンフリップフロップＳＦＦ２３は、スキャンフリップフロップＳＦＦ２２の出力値をキャプチャする。
【００３９】
このような動作によれば、回路＃３が不定値を出力する場合でも、圧縮回路１３から出力される圧縮テスト結果データの値の期待値が確定できる。
【００４０】
図３に示すように、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮが供給される構成では、スキャンフリップフロップＳＦＦ２３が不定値をキャプチャすることになる。このため、スキャンフリップフロップＳＦＦ１３、ＳＦＦ２３、ＳＦＦ３３、ＳＦＦ４３から出力される出力応答を圧縮して得られる圧縮テスト結果データの値の期待値が確定できない。よって、スキャンフリップフロップＳＦＦ２３のデータ入力ＤＡＴＡに接続されている回路＃３の故障検出ができない上に、スキャンフリップフロップＳＦＦ１３、ＳＦＦ３３、ＳＦＦ４３のデータ入力に接続されている回路の故障検出もできない。これは、故障検出率を低下させ、及び／又はテストパタン数を増加させ得る。
【００４１】
一方、図２に示す本実施形態の構成では、キャプチャモードにおいて、スキャンフリップフロップＳＦＦ２３がスキャンフリップフロップＳＦＦ２２から既知の値（“１”又は“０”）をキャプチャする。このような動作では、スキャンフリップフロップＳＦＦ１３、ＳＦＦ２３、ＳＦＦ３３、ＳＦＦ４３に格納された出力応答を圧縮して生成される圧縮テスト結果データの値の期待値が確定できる。よって、スキャンフリップフロップＳＦＦ１３、ＳＦＦ３３、ＳＦＦ４３のデータ入力に接続されている回路の故障検出を行うことができる。これは、故障検出率の向上とテストパタン数の低減に有効である。
【００４２】
本実施形態の半導体集積回路１００の構成は、２クロック以上のキャプチャクロックを印加するスキャンテストにおける、スキャンフリップフロップＳＦＦ２２のデータ出力Ｑに接続された回路の故障検出にも有効である。このようなスキャンテストの例としては、シーケンシャルＡＴＰＧを用いたＤＣスキャン及びＡＣスキャンが挙げられる。ここで、ＡＣスキャンとは、遅延故障の検出を行うための実速度のスキャンテストである。
【００４３】
例えば、本実施形態の半導体集積回路１００の構成は、図４に示すように、スキャンフリップフロップＳＦＦ２３のデータ出力Ｑに接続されている回路１７の遅延故障を、ＡＣスキャンによって検出可能にするために有効である。回路１７の出力にはスキャンフリップフロップＳＦＦ５１が接続され、回路１７の遅延故障は、スキャンフリップフロップＳＦＦ５１がキャプチャした値に基づいて検出される。
【００４４】
回路１７が、全体として、入力信号を反転した出力信号を出力するように構成されており、且つ、回路１７の出力の立ち下がりが遅れる故障を検出する場合、シフトモードにおけるシフト動作により、スキャンフリップフロップＳＦＦ２３に値“０”が設定され、スキャンフリップフロップＳＦＦ２２に値“１”が設定される。
【００４５】
その後、スキャンイネーブル信号ＳＣＡＮ＿ＥＮがディアサートされ、半導体集積回路１００がキャプチャモードに設定される。このとき、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥにはスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給されているから、スキャンフリップフロップＳＦＦ２３は、スキャン入力ＳＩＮを選択する。
【００４６】
更に、各スキャンフリップフロップＳＦＦのクロック端子ＣＬＫに２つのクロックパルスが供給され、各スキャンフリップフロップＳＦＦは、キャプチャ動作を行う。スキャンフリップフロップＳＦＦ２３は、第１のクロックパルスに同期してスキャンフリップフロップＳＦＦ２２の出力値をキャプチャし、キャプチャした値を回路１７に出力する。その後、第２のクロックパルスに同期して、スキャンフリップフロップＳＦＦ５１が、回路１７の出力値をキャプチャする。このような動作によれば、スキャンフリップフロップＳＦＦ２３の出力値は、確定的に“０”から“１”に遷移する。よって、スキャンフリップフロップＳＦＦ５１がキャプチャする値に基づいて、回路１７の出力の立ち下がりが遅れる故障を検出することができる。例えば、スキャンフリップフロップＳＦＦ５１がキャプチャする値が“１”のままで変化しなければ、回路１７は、出力の立ち下がりが遅れる故障を有しているものと判断できる。
【００４７】
本実施形態の半導体集積回路１００の構成の有用性は、図５に示した構成との対比からも理解され得る。図５に示すように、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥにスキャンイネーブル信号ＳＣＡＮ＿ＥＮが供給されている場合には、スキャンフリップフロップＳＦＦ２３が回路＃３から不定値をキャプチャする。よって、スキャンフリップフロップＳＦＦ２３の出力値が不定となる。よって、回路１７の遅延故障をＡＣスキャンによって検出することができない。
【００４８】
なお、不定値を出力する回路がデータ入力ＤＡＴＡに接続されたスキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに供給される信号は、半導体集積回路１００がスキャンモードに設定されるときにアサートされる信号であればよく、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥに限られない。例えば、図６に示すように、スキャンモードにおいて値“１”に設定されるフリップフロップＦＦ１１がスキャン制御回路部１６に用意され、フリップフロップＦＦ１１のデータ出力Ｑから出力される出力信号が、スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに供給されてもよい。
【００４９】
図７に示す一実施形態では、スキャンモードにおいて複数の種類のスキャンテストが行われ、半導体集積回路１００Ａが、スキャンテストの種類に応じて、各スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに供給される信号が、スキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥから選択されるように構成される。具体的には、本実施形態では、スキャンモードにおいてＤＣスキャンとＡＣスキャンとが行われる。データ入力に接続される回路の特性に加え、ＤＣスキャンとＡＣスキャンのいずれが行われるかに応じて各スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに供給される信号が選択される。
【００５０】
本実施形態では、半導体集積回路１００Ａが、各スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに、スキャンイネーブル信号ＳＣＡＮ＿ＥＮ又はスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかを供給するスキャン制御回路部２６を備えている。
【００５１】
スキャン制御回路部２６は、スキャンイネーブル信号線２６ａとスキャンモード信号線２６ｂとセレクタ２６ｃとを備えている。スキャンイネーブル信号線２６ａは、スキャンイネーブル信号ＳＣＡＮ＿ＥＮを供給し、スキャンモード信号線２６ｂは、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥを供給する。セレクタ２６ｃは、スキャンイネーブル信号ＳＣＡＮ＿ＥＮ、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかを選択し、選択した信号を出力する。
【００５２】
本実施形態では、セレクタ２６ｃにＡＣスキャンモード信号ＡＣ＿ＳＣＡＮが供給され、セレクタ２６ｃは、ＡＣスキャンモード信号ＡＣ＿ＳＣＡＮに応じてスキャンイネーブル信号ＳＣＡＮ＿ＥＮ、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかを選択する。ＡＣスキャンモード信号ＡＣ＿ＳＣＡＮは、ＡＣスキャン、ＤＣスキャンのいずれが行われるかを指定する信号であり、ＡＣスキャンが行われる場合にアサートされ、ＤＣスキャンが行われる場合にディアサートされる。
【００５３】
本実施形態では、回路＃２は、その出力値が、ＤＣスキャンとＡＣスキャンのいずれが行われる場合についても不定値であるように構成されている。これに対応して、スキャン制御回路部２６は、回路＃２にデータ入力ＤＡＴＡが接続されているスキャンフリップフロップＳＦＦ２２のスキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥを供給する。
【００５４】
また、回路＃３は、その出力値が、ＡＣスキャンが行われる場合に不定値であるように構成されている。ＤＣスキャンの際には、出力値が“０”又は“１”のいずれかに確定する。これに対応して、スキャン制御回路部２６は、回路＃３にデータ入力ＤＡＴＡが接続されているスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに、セレクタ２６ｃによりＡＣスキャンモード信号ＡＣ＿ＳＣＡＮに応じて選択された信号を供給する。ＡＣスキャンが行われる場合、ＡＣスキャンモード信号ＡＣ＿ＳＣＡＮがアサートされ、セレクタ２６ｃは、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥをスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給する。ＤＣスキャンが行われる場合、ＡＣスキャンモード信号ＡＣ＿ＳＣＡＮがディアサートされ、セレクタ２６ｃは、スキャンイネーブル信号ＳＣＡＮ＿ＥＮをスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給する。
【００５５】
回路＃１、＃４にデータ入力ＤＡＴＡが接続されているスキャンフリップフロップＳＦＦ２１、ＳＦＦ２４のスキャンイネーブル端子ＳＥには、スキャンイネーブル信号ＳＣＡＮ＿ＥＮが供給される。
【００５６】
図７の半導体集積回路１００Ａの構成では、スキャンテストの種類に応じて、各スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに供給される信号を適切に選択可能である。
【００５７】
なお、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給される信号の選択に用いられる信号は、ＡＣスキャンモード信号ＡＣ＿ＳＣＡＮに限られない。スキャンテストの種類に応じて任意の選択信号が生成され、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給される信号が、当該選択信号に応じてスキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥとのうちから選択されてもよい。この場合、当該選択信号がセレクタ２６ｃに供給され、セレクタ２６ｃが、当該選択信号に応じてスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給される信号を、スキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥとのうちから選択してもよい。
【００５８】
例えば、図８に示すように、スキャンテストの種類に応じた値に設定されるフリップフロップＦＦ１２がスキャン制御回路部２６に用意され、フリップフロップＦＦ１２のデータ出力Ｑから出力される出力信号が、セレクタ２６ｃに供給されてもよい。この場合、セレクタ２６ｃは、フリップフロップＦＦ１２から受け取った該出力信号に応じてスキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかを選択し、選択した信号をスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給する。一実施形態では、ＡＣスキャンが行われる場合にフリップフロップＦＦ１２に値“１”が設定され、フリップフロップＦＦ１２のデータ出力Ｑから出力される出力信号がアサートされる。セレクタ２６ｃは、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥをスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給する。一方、ＤＣスキャンが行われる場合にはフリップフロップＦＦ１２に値“０”が設定され、フリップフロップＦＦ１２のデータ出力Ｑから出力される出力信号がディアサートされる。セレクタ２６ｃは、スキャンイネーブル信号ＳＣＡＮ＿ＥＮをスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給する。
【００５９】
図９に示す一実施形態では、少なくとも一のスキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに供給される信号を制御するＳＥ制御信号ＳＥ＿ＣＴＲＬが半導体集積回路１００Ｂの外部から供給される。該スキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥには、スキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのうちからＳＥ制御信号ＳＥ＿ＣＴＲＬに応じて選択された信号が供給される。
【００６０】
このような構成は、データ入力ＤＡＴＡからキャプチャする値が不定値であり得るが不定値である確率が１００％未満であるようなスキャンフリップフロップＳＦＦが存在する場合に有用である。半導体集積回路１００Ｂの構成や動作によっては、あるスキャンフリップフロップＳＦＦがデータ入力ＤＡＴＡからキャプチャする値が不定値であり得るが、１００％の確率で不定値であるとは特定できない場合がある。データ入力ＤＡＴＡからキャプチャする値が不定値である確率が１００％未満であるスキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに、スキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのうちからＳＥ制御信号ＳＥ＿ＣＴＲＬに応じて選択された信号を供給する構成は、故障検出率の向上及びテストパタン数の低減に有効である。
【００６１】
例えば、図９の構成では、スキャンフリップフロップＳＦＦ２２が回路＃２からキャプチャする値が１００％の確率で不定値である一方で、スキャンフリップフロップＳＦＦ２３が回路＃３からキャプチャする値が不定値である確率は、０％より大きいが、１００％未満である。スキャンフリップフロップＳＦＦ２２のスキャンイネーブル端子ＳＥには、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給される。一方、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥには、スキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのうちからＳＥ制御信号ＳＥ＿ＣＴＲＬに応じて選択された信号が供給される。本実施形態では、スキャン制御回路部２６のセレクタ２６ｃにＳＥ制御信号ＳＥ＿ＣＴＲＬが供給される。セレクタ２６ｃは、ＳＥ制御信号ＳＥ＿ＣＴＲＬに応じてスキャンイネーブル信号ＳＣＡＮ＿ＥＮ、スキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかを選択し、選択した信号をスキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥに供給する。
【００６２】
ＳＥ制御信号ＳＥ＿ＣＴＲＬのアサート／ディアサートは、故障検出率が向上するように適宜に選択される。一実施形態では、ＳＥ制御信号ＳＥ＿ＣＴＲＬのアサート／ディアサートが半導体集積回路１００Ｂのテストに用いられるＡＴＰＧツールによって判断されてもよい。他の実施形態では、ＳＥ制御信号ＳＥ＿ＣＴＲＬがアサートされるテストパタンとディアサートされるテストパタンの両方が作成され、作成された両テストパタンがスキャンテストに用いられてもよい。
【００６３】
図１０に示すように、ＳＥ制御信号ＳＥ＿ＣＴＲＬを半導体集積回路１００Ｂの外部から供給する代わりに、外部から値を設定可能なスキャンフリップフロップＳＦＦ６１がスキャン制御回路部２６に設けられ、スキャンフリップフロップＳＦＦ６１のデータ出力Ｑから出力される出力信号がＳＥ制御信号ＳＥ＿ＣＴＲＬとしてセレクタ２６ｃに供給されてもよい。スキャンフリップフロップＳＦＦ６１は、適宜のスキャンチェーンに組み込まれる。スキャンテストが行われる場合、シフトモードにおけるシフト動作により、所望の値がスキャンフリップフロップＳＦＦ６１に設定される。
【００６４】
スキャンテストにおいては、スキャンフリップフロップＳＦＦ６１に設定された値に応じてＳＥ制御信号ＳＥ＿ＣＴＲＬがアサート又はディアサートされる。セレクタ２６ｃは、ＳＥ制御信号ＳＥ＿ＣＴＲＬに応じてスキャンイネーブル信号ＳＣＡＮ＿ＥＮとスキャンモード信号ＳＣＡＮ＿ＭＯＤＥのいずれかを選択する。
【００６５】
一実施形態では、半導体集積回路１００、１００Ａ、１００Ｂは、図１１に図示されている集積回路設計装置４０によって設計されてもよい。集積回路設計装置４０は、記憶装置４１と、プロセッサ４２と、入出力装置４３とを備えるコンピュータとして構成される。
【００６６】
記憶装置４１には、圧縮スキャン挿入ツール４１ａ及びパタン生成ツール４１ｂがインストールされる。記憶装置４１は、圧縮スキャン挿入ツール４１ａ及びパタン生成ツール４１ｂを記憶する非一時的記憶媒体（non-transitory tangible storage medium）として用いられる。圧縮スキャン挿入ツール４１ａ及びパタン生成ツール４１ｂは、いずれも、半導体集積回路１００、１００Ａ、１００Ｂの設計に用いられるソフトウェアプログラムである。圧縮スキャン挿入ツール４１ａ及びパタン生成ツール４１ｂは、コンピュータプログラム製品(computer program product)として、適宜のコンピュータ読み取り可能記憶媒体(computer-readable storage medium)４４に記憶されて、又は、サーバからダウンロードされて提供されてもよい。加えて、記憶装置４１には、半導体集積回路１００、１００Ａ、１００Ｂの設計において使用され、又は生成されるデータが格納される。
【００６７】
プロセッサ４２は、圧縮スキャン挿入ツール４１ａ及びパタン生成ツール４１ｂを実行する。一実施形態では、ＣＰＵ（central processing unit）がプロセッサ４２として使用され得る。
【００６８】
入出力装置４３は、半導体集積回路１００、１００Ａ、１００Ｂの設計に用いられるデータを外部から受け取り、又は、集積回路設計装置４０によって生成された設計データ、例えば、ネットリスト及びパタンデータを外部に出力する。
【００６９】
一実施形態では、半導体集積回路１００、１００Ａ、１００Ｂが、集積回路設計装置４０を用いて、図１２に示す設計手順で設計されてもよい。
【００７０】
この設計手順では、まず、半導体集積回路１００、１００Ａ、１００Ｂのネットリスト３１が用意される。ネットリスト３１は、半導体集積回路１００、１００Ａ、１００Ｂに含まれる回路素子及びその接続関係を記述している。一実施形態では、ネットリスト３１の生成の際にスキャンフリップフロップへのマッピングが行われてもよい。この場合、ネットリスト３１にスキャンフリップフロップが記述されている。ただし、ネットリスト３１に記述されている半導体集積回路１００、１００Ａ、１００Ｂの構成では、展開回路１１、スキャンチェーン１２、圧縮回路１３及びスキャン制御回路部１６、２６が含まれていない。ネットリスト３１は、記憶装置４１に格納されてもよい。
【００７１】
ステップＳ０１では、ネットリスト３１に対して、展開回路１１、スキャンチェーン１２及び圧縮回路１３を挿入する処理が行われる。ステップＳ０１の挿入処理は、プロセッサ４２が圧縮スキャン挿入ツール４１ａを実行することによって行われ、展開回路１１、スキャンチェーン１２及び圧縮回路１３を挿入されたネットリストは、記憶装置４１に格納される。
【００７２】
詳細には、ステップＳ０１の挿入処理では、まず、ネットリスト３１、ライブラリ３３及びスキャン設定ファイル３４が読み込まれる。ネットリスト３１、ライブラリ３３及びスキャン設定ファイル３４は、記憶装置４１に格納されてもよい。スキャン設定ファイル３４は、半導体集積回路１００、１００Ａ、１００Ｂに対して行われるスキャンテストの設定を記述している。
【００７３】
更に、ライブラリ３３及びスキャン設定ファイル３４を参照しながら、スキャンチェーン１２、展開回路１１及び圧縮回路１３が挿入される。ネットリスト３１に（スキャンフリップフロップフロップではなく）通常のフリップフロップが記述されている場合、スキャンチェーン１２の挿入において、ネットリスト３１に記述されているフリップフロップの少なくとも一部が、スキャンフリップフロップに置換されるようにネットリスト３１が修正されてもよい。更に、該スキャンフリップフロップが直列に接続されてスキャンチェーン１２が構成されるようにネットリスト３１の記述が修正される。図１の半導体集積回路１００の例では、スキャンフリップフロップＳＦＦ１１〜ＳＦＦ１４が直列に接続されてスキャンチェーン１２１が構成され、スキャンフリップフロップＳＦＦ２１〜ＳＦＦ２４が直列に接続されてスキャンチェーン１２２が構成され、スキャンフリップフロップＳＦＦ３１〜ＳＦＦ３４が直列に接続されてスキャンチェーン１２３が構成され、スキャンフリップフロップＳＦＦ４１〜ＳＦＦ４４が直列に接続されてスキャンチェーン１２４が構成されるようにネットリスト３１が修正される。加えて、展開回路１１及び圧縮回路１３が挿入されるようにネットリスト３１が修正される。
【００７４】
ステップＳ０２では、一の設定についてデータ入力に接続されている回路から不定値をキャプチャするスキャンフリップフロップが抽出される。上記のように、スキャンフリップフロップＳＦＦがデータ入力ＤＡＴＡから不定値をキャプチャする例としては、該回路がブラックボックスとして扱われるマクロである場合、該回路の出力値が不定値であるように設定される場合、データ入力ＤＡＴＡがスキャンチェーンに属していないフリップフロップのデータ出力に接続されている場合、データ入力ＤＡＴＡへのパスが設定によりフォールスパス又はマルチサイクルパスとして指定される場合が挙げられる。
【００７５】
ステップＳ０２において、一の設定について、データ入力に接続されている回路から不定値をキャプチャする可能性があるスキャンフリップフロップが抽出されてもよい。一実施形態では、一の設定について１００％の確率でデータ入力に接続されている回路から不定値をキャプチャするスキャンフリップフロップに加え、一の設定についてデータ入力に接続されている回路から不定値をキャプチャする確率が０％ではないが１００％未満であるスキャンフリップフロップを抽出してもよい。図１、図２、図６、図７、図８に示す半導体集積回路１００、１００Ａを設計する場合には、１００％の確率でデータ入力に接続されている回路から不定値をキャプチャするスキャンフリップフロップを抽出してもよい。図９、図１０に図示されているような半導体集積回路１００Ｂが設計される場合には、１００％の確率でデータ入力に接続されている回路から不定値をキャプチャするスキャンフリップフロップに加え、データ入力に接続されている回路から不定値をキャプチャする確率が０％ではないが１００％未満であるスキャンフリップフロップを抽出してもよい。
【００７６】
ステップＳ０３では、展開回路１１、スキャンチェーン１２及び圧縮回路１３が挿入されたネットリスト３１に対してスキャン制御回路部１６、２６を挿入する処理が行われ、圧縮スキャン回路付きネットリスト３２が生成される。スキャン制御回路部１６、２６の挿入は、ステップＳ０２で抽出されたスキャンフリップフロップＳＦＦを、キャプチャモードにおいて、スキャン入力に入力された値をキャプチャするように制御することができるように行われる。ステップＳ０３において得られる圧縮スキャン回路付きネットリスト３２は、図１、図２、図６、図７、図８に示す半導体集積回路１００、１００Ａ、又は、図９、図１０に示す半導体集積回路１００Ｂに含まれる回路素子及びその接続関係を記述している。
【００７７】
一実施形態では、ネットリスト３１の記述が、ステップＳ０２で抽出されたスキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給されるように、圧縮スキャン回路付きネットリスト３２が生成される。
【００７８】
他の実施形態では、ステップＳ０２で抽出されたスキャンフリップフロップＳＦＦのスキャンイネーブル端子ＳＥに、セレクタによってスキャンモード信号ＳＣＡＮ＿ＭＯＤＥとスキャンイネーブル信号ＳＣＡＮ＿ＥＮのうちから選択された信号が供給されるように圧縮スキャン回路付きネットリスト３２が生成される。例えば図７の半導体集積回路１００Ａの例では、スキャンフリップフロップＳＦＦ２２のスキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給され、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥにセレクタ２６ｃの出力が接続されるように圧縮スキャン回路付きネットリスト３２が生成される。
【００７９】
更に他の実施形態では、１００％の確率でデータ入力に接続されている回路から不定値をキャプチャするスキャンフリップフロップのスキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給され、データ入力に接続されている回路から不定値をキャプチャする確率が０％ではないが１００％未満であるスキャンフリップフロップのスキャンイネーブル端子ＳＥに、セレクタによってスキャンモード信号ＳＣＡＮ＿ＭＯＤＥとスキャンイネーブル信号ＳＣＡＮ＿ＥＮのうちから選択された信号が供給されるように圧縮スキャン回路付きネットリスト３２が生成される。例えば、図９の半導体集積回路１００Ｂの例では、スキャンフリップフロップＳＦＦ２２のスキャンイネーブル端子ＳＥにスキャンモード信号ＳＣＡＮ＿ＭＯＤＥが供給され、スキャンフリップフロップＳＦＦ２３のスキャンイネーブル端子ＳＥにセレクタ２６ｃの出力が接続されるように圧縮スキャン回路付きネットリスト３２が生成される。
【００８０】
このようにして生成された圧縮スキャン回路付きネットリスト３２は、記憶装置４１に格納される。
【００８１】
ステップＳ０４では、圧縮スキャン回路付きネットリスト３２に基づいて、半導体集積回路１００、１００Ａ、１００Ｂのテストに用いられるテストパタン３５が生成される。テストパタン３５の生成においては、ライブラリ３６とパタン設定ファイル３７とが参照される。テストパタン３５の生成は、プロセッサ４２がパタン生成ツール４１ｂを実行することによって行われ、生成されたテストパタン３５は、記憶装置４１に格納される。
【００８２】
半導体集積回路１００、１００Ａ、１００Ｂは、ステップＳ０１、Ｓ０２、Ｓ０３で作成された圧縮スキャン回路付きネットリスト３２から生成されたレイアウトデータに基づいて製造される。この製造工程において行われるスキャンテストにおいて、ステップＳ０４で作成されたテストパタン３５が用いられる。
【００８３】
なお、ステップＳ０１の処理（即ち、展開回路１１、スキャンチェーン１２及び圧縮回路１３を挿入する処理）を行う前に、ステップＳ０２の処理（即ち、データ入力に接続された回路から不定値をキャプチャするスキャンフリップフロップ、又は、不定値をキャプチャする可能性があるスキャンフリップフロップを抽出する処理）を行ってもよい。
【００８４】
以上には、本開示の様々な実施形態が具体的に記載されているが、本開示に記載された技術は、様々な変更と共に実施され得る。
【符号の説明】
【００８５】
１００、１００Ａ、１００Ｂ：半導体集積回路
１１      ：展開回路
１２１〜１２４：スキャンチェーン
１３      ：圧縮回路
１３ａ、１３ｂ、１３ｃ：ＸＯＲ回路
１４      ：スキャンイン端子
１５      ：スキャンアウト端子
１６      ：スキャン制御回路部
１６ａ    ：スキャンイネーブル信号線
１６ｂ    ：スキャンモード信号線
１７      ：回路
２６      ：スキャン制御回路部
２６ａ    ：スキャンイネーブル信号線
２６ｂ    ：スキャンモード信号線
２６ｃ    ：セレクタ
３１      ：ネットリスト
３２      ：圧縮スキャン回路付きネットリスト
３３      ：ライブラリ
３４      ：スキャン設定ファイル
３５      ：テストパタン
３６      ：ライブラリ
３７      ：パタン設定ファイル
４０      ：集積回路設計装置
４１      ：記憶装置
４１ａ    ：圧縮スキャン挿入ツール
４１ｂ    ：パタン生成ツール
４２      ：プロセッサ
４３      ：入出力装置
４４      ：コンピュータ読み取り可能記憶媒体
ＳＦＦ１１〜ＳＦＦ１４、ＳＦＦ２１〜ＳＦＦ２４、ＳＦＦ３１〜ＳＦＦ３４、ＳＦＦ４１〜ＳＦＦ４４、ＳＦＦ５１、ＳＦＦ６１：スキャンフリップフロップ
ＦＦ１１、ＦＦ１２：フリップフロップ
【図１】
2019145048.tif 000003
【図２】
2019145048.tif 000004
【図３】
2019145048.tif 000005
【図４】
2019145048.tif 000006
【図５】
2019145048.tif 000007
【図６】
2019145048.tif 000008
【図７】
2019145048.tif 000009
【図８】
2019145048.tif 000010
【図９】
2019145048.tif 000011
【図１０】
2019145048.tif 000012
【図１１】
2019145048.tif 000013
【図１２】
2019145048.tif 000014