(57)【要約】【課題】  テスト回路の単位面積当たりの故障検出率を向上させる。【解決手段】  スキャンテスト設計に値固定が必要なノードか否かの判別ステップＳ１０６が設けられる。そして、値固定が必要なノードには観測用テストポイントを挿入することを決定する一方で、値固定が必要でないノードには制御用テストポイント挿入仮定ステップＳ１０７にて制御用テストポイントを挿入したと仮定し、また、観測用テストポイント挿入仮定ステップＳ１０９にて観測用テストポイントを挿入したと仮定し、各テスト回路の単位面積当たりの故障検出率をそれぞれ算出する。続いて、テスト効率比較ステップＳ１１１にて両者を比較し、テストポイント挿入ノード決定ステップＳ１１２において観測用テストポイント及び制御用テストポイントのうち、テスト効率がより高い方を選択し、挿入されるノードを決定する。【選択図】      図５
2006084427.tif 000002
【特許請求の範囲】
【請求項１】
半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して故障検出を可能とするためのテストポイントを挿入する方法であって、
値固定されているノードの値固定が必要か否かを判別するステップ（ａ）と、
前記ステップ（ａ）において値固定が必要であると判別されたノードによりディスエーブルされているノードに、このノードを観測可能とする観測用テストポイントを挿入することを決定するステップ（ｂ）と、
前記ステップ（ａ）において値固定が必要でないと判別されたノードに、このノードを制御可能とする制御用テストポイントを挿入することと、前記値固定が必要でないと判別されたノードによりディスエーブルされているノードに、このノードを観測可能とする観測用テストポイントを挿入することとのうちのいずれの方がテスト効率が高くなるかを比較するステップ（ｃ）と、
前記ステップ（ｃ）における比較結果に基づいて、制御用テストポイント及び観測用テストポイントのうち、テスト効率が高くなる方を選択し、選択されたテストポイントが挿入されるノードを決定するステップ（ｄ）と、
前記ステップ（ｄ）において決定されたノードに、前記選択されたテストポイントを挿入するステップ（ｅ）とを備え、
故障検出率が目標値に達するまで、異なるノードに関して前記ステップ（ａ）〜（ｄ）の処理を繰り返し、故障検出率が目標値に達すると、前記ステップ（ｅ）の処理を行う
テストポイント挿入方法。
【請求項２】
請求項１に記載のテストポイント挿入方法において、
前記ステップ（ａ）は、値固定されているノードの値固定が必要か否かの判別を、スキャンテスト時に値固定の必要なノードについての情報であるスキャンテスト時ノード固定情報を参照して行うものであるテストポイント挿入方法。
【請求項３】
請求項２に記載のテストポイント挿入方法において、
スキャンテスト時に値固定する入力端子についての情報に基づいて、固定された値が伝播した結果を求めるステップと、
スキャンテスト時に最低限固定されていなければならないノードの情報に基づいて、そのノードの入力コーン中のノードを求めるステップと、
前記固定された値が伝播した結果から、前記入力コーン中のノードに関する情報を、前記スキャンテスト時ノード固定情報として選択するステップとを更に備えるテストポイント挿入方法。
【請求項４】
請求項１に記載のテストポイント挿入方法において、
前記ステップ（ａ）は、
スキャンテスト時に最低限固定されていなければならないノードの情報に基づいて、そのノードの入力コーン中のノードを求めるステップと、
前記値固定されているノードが前記入力コーン中に含まれる場合には、前記値固定されているノードの値固定が必要であると判別し、その他の場合には、前記値固定されているノードの値固定が必要ではないと判別するステップとを有するものであるテストポイント挿入方法。
【請求項５】
半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路のノードに故障検出を可能とするためのテストポイントを挿入するステップ（ａ）と、
前記ステップ（ａ）の後にセルの配置を行うステップ（ｂ）と、
前記ステップ（ｂ）の後に共有可能なテストポイントを共有させるステップ（ｃ）とを備えるテストポイント挿入方法。
【請求項６】
請求項５に記載のテストポイント挿入方法において、
テストポイントを挿入するノード間の直線距離が指定距離以内であればテストポイントの共有を可能とするテストポイント共有条件が与えられ、
前記ステップ（ｃ）では、前記テストポイント共有条件に基づいてテストポイントの共有の可否を判断するテストポイント挿入方法。
【請求項７】
請求項５に記載のテストポイント挿入方法において、
テストポイントを挿入するノード間のマンハッタン距離が指定距離以内であればテストポイントの共有を可能とするテストポイント共有条件が与えられ、
前記ステップ（ｃ）では、前記テストポイント共有条件に基づいてテストポイントの共有の可否を判断するテストポイント挿入方法。
【請求項８】
請求項５に記載のテストポイント挿入方法において、
テストポイントを挿入するノード間の配線混雑度が指定混雑度以内であればテストポイントの共有を可能とするテストポイント共有条件が与えられ、
前記ステップ（ｃ）では、前記テストポイント共有条件に基づいてテストポイントの共有の可否を判断するテストポイント挿入方法。
【請求項９】
請求項８に記載のテストポイント挿入方法において、
前記指定混雑度は、セル配置時において配線の見積もりで使用される単位エリア内の配線本数により指定するテストポイント挿入方法。
【請求項１０】
半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して故障検出を可能とするためのテストポイントを挿入するノードを決定するステップ（ａ）と、
前記ステップ（ａ）の後にセルの配置を行うステップ（ｂ）と、
前記ステップ（ｂ）において配置されたセル及び配線の混雑度が所定の基準値よりも低いエリアにテストポイントを分散させて配置するステップ（ｃ）と、
前記ステップ（ａ）において決定されたテストポイントを挿入するノードと前記ステップ（ｃ）において配置されたテストポイントとを接続するステップ（ｄ）とを備えるテストポイント挿入方法。
【請求項１１】
請求項１０に記載のテストポイント挿入方法において、
前記ステップ（ａ）でテストポイントの挿入が決定されたノードの情報を出力すると共に前記ステップ（ｂ）でクリティカルパスの情報を出力し、
前記ステップ（ｄ）では、前記テストポイントの挿入が決定されたノードの情報及び前記クリティカルパスの情報に基づいてノードとテストポイントとを接続するテストポイント挿入方法。
【請求項１２】
半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して故障検出を可能とするためのテストポイントを挿入するノードを決定するステップ（ａ）と、
前記ステップ（ａ）においてテストポイントの挿入が決定されたノードのうち制御用テストポイントを挿入するノードに制御用テストポイントを挿入するために必要な論理回路を挿入するステップ（ｂ）と、
前記ステップ（ｂ）の後にセルの配置を行うステップ（ｃ）と、
前記ステップ（ｃ）において配置されたセル及び配線の混雑度が所定の基準値よりも低いエリアにテストポイントを分散させて配置するステップ（ｄ）と、
前記ステップ（ｂ）において挿入された論理回路の端子に前記ステップ（ｄ）において配置された制御用テストポイントを接続するステップ（ｅ）とを備えるテストポイント挿入方法。
【請求項１３】
請求項１２に記載のテストポイント挿入方法において、
前記ステップ（ａ）でテストポイントの挿入が決定されたノードの情報を出力すると共に前記ステップ（ｃ）でクリティカルパス情報を出力し、
前記ステップ（ｅ）では、前記テストポイントの挿入が決定されたノードの情報及び前記クリティカルパス情報に基づいてノードとテストポイントとを接続するテストポイント挿入方法。
【請求項１４】
半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路のノードに故障検出を可能とするためのテストポイントを挿入するステップ（ａ）と、
前記ステップ（ａ）の後にセルの配置を行うステップ（ｂ）と、
前記ステップ（ｂ）の後に回路仕様の変更や回路の修正が生じた際に、テストポイントをリペアセルとして使用して回路の修正を行うステップ（ｃ）とを備えるテストポイント挿入方法。
【請求項１５】
請求項１４に記載のテストポイント挿入方法において、
前記ステップ（ａ）でノードに挿入したテストポイントの情報を追加レジスタ情報として出力すると共に前記ステップ（ｂ）でテストポイントの座標情報を追加レジスタ情報に追加し、
前記ステップ（ｃ）では、前記追加レジスタ情報に基づいて回路の修正を行うテストポイント挿入方法。
【請求項１６】
請求項１５に記載のテストポイント挿入方法において、
制御用テストポイントと観測用テストポイントとのうち、制御用テストポイントのみをリペアセルとして使用可能とする制約が与えられ、
前記ステップ（ｃ）では、前記制約及び前記追加レジスタ情報に基づいて回路の修正を行うテストポイント挿入方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のスキャンテスト設計における故障検出を可能とするためのテストポイント挿入方法に関する。
【背景技術】
【０００２】
半導体集積回路のスキャンテスト設計において、故障検出率が目標値に達していない場合、故障検出できていないノードの故障検出を可能とするために、当該ノードにテストポイントと呼ばれるテスト回路を挿入して故障検出率を向上させる技術が存在する。このスキャンテスト設計では、テストポイントを挿入するノードを決定した後、テストポイントの挿入が決定されたノードにテストポイントを挿入する。
【０００３】
従来のスキャンテスト設計としては、必要な配線にスキャン回路を挿入してゲート数の冗長や遅延の増加を抑制するスキャンテスト方式が知られている。このスキャンテスト方式は、各回路の入力端或いは出力端の故障の有無を確認できる容易性、即ち確認容易性や各回路の入力端に所定の信号を入力できる容易性、即ち制御容易性を算出し、これらを悪い順に出力して確認容易性や制御容易性の悪い配線から順にスキャン回路を挿入するものである（例えば、特許文献１参照）。
【０００４】
また、従来のスキャンテスト設計としては、テストポイントを追加することによって近非巡回的回路の試験可能性を改善する方法が知られている。この方法は、回路を自己ループフリップフロップと一次出力ブロックとに分解した後、各ノードの可制御性、可観測性、及び故障検出確率を計算するステップと、特定のノードの故障を選択するステップと、可制御性、可観測性、及び故障検出率の各値が規定範囲内に存在しない場合にテストポイントとしてのフリップフロップを追加するステップとからなる（例えば、特許文献２参照）。
【特許文献１】特開昭６３−１３４９７０号公報
【特許文献２】特開平６−３３１７０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記特許文献１のスキャンテスト方式では、任意の一箇所の故障検出の有無を確認できる容易性を向上させるために、スキャン回路として観測用テストポイントと制御用テストポイントのどちらを配線に挿入する方がテスト効率が良いのかを考慮していない。
【０００６】
図１は、半導体集積回路の回路図である。同図に示す組み合わせ回路群において、セレクタｓｅｌ１には、制御ノードｎ２と入力ノードｎ１４，ｎ１５と出力ノードｎ１６とが設けられている。制御ノードｎ２は、組み合わせ回路ｃｃ１の出力ノードｎ１とバッファの入力ノードｎ３とに接続している。入力ノードｎ１５は、組み合わせ回路ｃｃ４の出力ノードｎ１３に接続している。ＯＲ回路ｏｒ１には、入力ノードｎ７，ｎ８と出力ノードｎ１１とが設けられている。入力ノードｎ７は、バッファの出力ノードｎ４に接続している。入力ノードｎ８は、組み合わせ回路ｃｃ２の出力ノードｎ５に接続している。ＯＲ回路ｏｒ２には、入力ノードｎ９，ｎ１０と出力ノードｎ１２とが設けられている。入力ノードｎ９は、バッファの出力ノードｎ４に接続している。入力ノードｎ１０は、組み合わせ回路ｃｃ３の出力ノードｎ６に接続している。
【０００７】
この組み合わせ回路群では、スキャンテスト時にノードｎ２を値固定するためにノードｎ１を値固定しており、ノードｎ１の値固定の伝播によってノードｎ１の枝先であるノードｎ３，ｎ４，ｎ７，ｎ９が値固定されているものとする。現状の技術では、スキャンモード時に値固定されているノードをチェックするステップが存在しないために、不要に値固定されたノードをチェックすることができない。そして、この誤った値固定により、スキャンモード時において組み合わせ回路ｃｃ２，ｃｃ３の状態が観測不能となり、故障検出率が低下する。
【０００８】
この場合、組み合わせ回路ｃｃ２，ｃｃ３の状態を観測可能とするため、出力ノードｎ５，ｎ６に観測用テストポイントを挿入する。一方、ノードｎ３に制御用テストポイントを挿入すれば、組み合わせ回路ｃｃ２とｃｃ３とに含まれる０縮退故障及び１縮退故障以外の故障、即ちｎ３の０縮退故障、ｎ４の０縮退故障、ｎ７の０縮退故障、及びｎ９の０縮退故障も検出可能となり、付加するテスト回路の面積を削減しつつ故障検出率を向上させることができる。
【０００９】
また、前記特許文献２のテストポイントを追加することによって近非巡回的回路の試験可能性を改善する方法では、テストポイントの挿入による回路面積の増加や通常動作時のタイミング違反を生じるおそれがある。
【００１０】
図２は、半導体集積回路の回路図である。同図に示す組み合わせ回路群において、ＯＲ回路ｏｒ３には、出力ノードｎ４と、組み合わせ回路ｃｃ２の出力ノードｎ５に接続する入力ノードｎ２と、組み合わせ回路ｃｃ１の出力ノードｎ１に接続する入力ノードｎ３とが設けられている。スキャンテスト時には、スキャンモード信号によって出力ノードｎ５が１に固定され、出力ノードｎ５の値固定の伝播によって入力ノードｎ２，ｎ４も値固定される。このため、組み合わせ回路ｃｃ１の状態が観測不能となり、故障検出率が低下する。
【００１１】
そこで、故障検出率を向上させるための方策として、図３に示すように、テスト回路である観測用テストポイントｔｐ１を出力ノードｎ１に挿入し、組み合わせ回路ｃｃ１の状態を観測可能とする。尚、観測用テストポイントは、通常、観測不能となっている組み合わせ回路のノード群の最終出力ノードに分岐させて挿入し、そのノードの値を観測可能とする。或いは、図４に示すように、テスト回路であるＡＮＤ回路ａｎｄ１及び制御用テストポイントｔｐ２を出力ノードｎ５に挿入し、スキャンテスト時に入力ノードｎ２を０／１制御可能とする。この際、通常動作時には制御用テストポイントｔｐ２の出力が常に１となるように設計しておき、通常動作時の回路の動作に影響が出ないようにする。
【００１２】
これら観測用テストポイント及び制御用テストポイントの挿入方法にあたっては、論理回路の数やテストポイントとしてのフリップフロップの数が増加してテスト回路の面積が増加するだけでなく、テスト回路の単位面積当たりの故障検出率が低下するおそれがある。また、ノードの分岐により配線容量が減少したり、論理回路の挿入によりセル遅延が増加することにより、テストポイントを挿入したノードを含むパス全体の遅延が増加し、タイミング違反を生じるおそれがある。
【００１３】
本発明は、テスト回路の単位面積当たりの故障検出率を向上させるテストポイント挿入方法を提供すること、及び通常動作時の回路へのタイミングダメージを軽減できるテストポイント挿入方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するため、請求項１の発明が講じた手段は、半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して故障検出を可能とするためのテストポイントを挿入する方法であって、値固定されているノードの値固定が必要か否かを判別するステップ（ａ）と、前記ステップ（ａ）において値固定が必要であると判別されたノードによりディスエーブルされているノードに、このノードを観測可能とする観測用テストポイントを挿入することを決定するステップ（ｂ）と、前記ステップ（ａ）において値固定が必要でないと判別されたノードに、このノードを制御可能とする制御用テストポイントを挿入することと、前記値固定が必要でないと判別されたノードによりディスエーブルされているノードに、このノードを観測可能とする観測用テストポイントを挿入することとのうちのいずれの方がテスト効率が高くなるかを比較するステップ（ｃ）と、前記ステップ（ｃ）における比較結果に基づいて、制御用テストポイント及び観測用テストポイントのうち、テスト効率が高くなる方を選択し、選択されたテストポイントが挿入されるノードを決定するステップ（ｄ）と、前記ステップ（ｄ）において決定されたノードに、前記選択されたテストポイントを挿入するステップ（ｅ）とを備え、故障検出率が目標値に達するまで、異なるノードに関して前記ステップ（ａ）〜（ｄ）の処理を繰り返し、故障検出率が目標値に達すると、前記ステップ（ｅ）の処理を行うものである。
【００１５】
これによると、値固定が必要でないと判別されたノードに、このノードを制御可能とする制御用テストポイントを挿入することと、前記値固定が必要でないと判別されたノードによりディスエーブルされているノードに、このノードを観測可能とする観測用テストポイントを挿入することとのうちのいずれの方がテスト効率が高くなるかを比較し、テスト効率が高くなる方を選択するので、ノードに挿入するテストポイントの数を減少させてテスト回路の面積を削減することができる。したがって、テスト回路の単位面積当たりの故障検出率を向上させることができる。テスト効率は、例えば、ノードに挿入されるテスト回路の単位面積当たりの故障検出率で表すことができる。
【００１６】
請求項２の発明では、請求項１に記載のテストポイント挿入方法において、前記ステップ（ａ）は、値固定されているノードの値固定が必要か否かの判別を、スキャンテスト時に値固定の必要なノードについての情報であるスキャンテスト時ノード固定情報を参照して行うものである。
【００１７】
これによると、ステップ（ａ）において、スキャンテスト時ノード固定情報に含まれているノードは、スキャンテスト時に値固定が必要なノードであると判別することができる。
【００１８】
請求項３の発明は、請求項２に記載のテストポイント挿入方法において、スキャンテスト時に値固定する入力端子についての情報に基づいて、固定された値が伝播した結果を求めるステップと、スキャンテスト時に最低限固定されていなければならないノードの情報に基づいて、そのノードの入力コーン中のノードを求めるステップと、前記固定された値が伝播した結果から、前記入力コーン中のノードに関する情報を、前記スキャンテスト時ノード固定情報として選択するステップとを更に備えるものである。
【００１９】
これによると、スキャンテスト時ノード固定情報を求めることができる。
【００２０】
請求項４の発明では、請求項１に記載のテストポイント挿入方法において、前記ステップ（ａ）は、スキャンテスト時に最低限固定されていなければならないノードの情報に基づいて、そのノードの入力コーン中のノードを求めるステップと、前記値固定されているノードが前記入力コーン中に含まれる場合には、前記値固定されているノードの値固定が必要であると判別し、その他の場合には、前記値固定されているノードの値固定が必要ではないと判別するステップとを有するものである。
【００２１】
これによると、スキャンテスト時に最低限固定されていなければならないノードの情報に基づいて、ノードの値固定が必要であるか否かを判別することができる。
【００２２】
請求項５の発明は、半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路のノードに故障検出を可能とするためのテストポイントを挿入するステップ（ａ）と、前記ステップ（ａ）の後にセルの配置を行うステップ（ｂ）と、前記ステップ（ｂ）の後に共有可能なテストポイントを共有させるステップ（ｃ）とを備えるものである。
【００２３】
これによると、セルの配置状態を確認しながら共有可能なテストポイントを共有させることができるので、配線エリアの混雑度を緩和することができる。また、従来よりも配線の長さを短くして配線エリアを縮小することができ、配線容量を抑えて通常動作時の回路へのタイミングダメージを軽減することができる。
【００２４】
請求項６の発明では、請求項５に記載のテストポイント挿入方法において、テストポイントを挿入するノード間の直線距離が指定距離以内であればテストポイントの共有を可能とするテストポイント共有条件が与えられ、前記ステップ（ｃ）では、前記テストポイント共有条件に基づいてテストポイントの共有の可否を判断するものである。
【００２５】
これによると、ステップ（ｃ）において、テストポイントを挿入するノード間の直線距離が指定距離以内であればテストポイント共有条件に一致すると判断され、テストポイントの共有化が行われる。
【００２６】
請求項７の発明では、請求項５に記載のテストポイント挿入方法において、テストポイントを挿入するノード間のマンハッタン距離が指定距離以内であればテストポイントの共有を可能とするテストポイント共有条件が与えられ、前記ステップ（ｃ）では、前記テストポイント共有条件に基づいてテストポイントの共有の可否を判断するものである。
【００２７】
これによると、ステップ（ｃ）において、テストポイントを挿入するノード間のマンハッタン距離が指定距離以内であればテストポイント共有条件に一致すると判断され、テストポイントの共有化が行われる。ここで、マンハッタン距離とは、各ノードの座標成分の値の差を成分ごとに求め、成分ごとの値の差の絶対値を足したものである。
【００２８】
請求項８の発明では、請求項５に記載のテストポイント挿入方法において、テストポイントを挿入するノード間の配線混雑度が指定混雑度以内であればテストポイントの共有を可能とするテストポイント共有条件が与えられ、前記ステップ（ｃ）では、前記テストポイント共有条件に基づいてテストポイントの共有の可否を判断するものである。
【００２９】
これによると、ステップ（ｃ）において、テストポイントを挿入するノード間の配線混雑度が指定混雑度以内であればテストポイント共有条件に一致すると判断され、テストポイントの共有化が行われる。ここで、配線混雑度は、単位エリア内の配線の最大本数に対する実際の配線本数により表される。つまり、単位エリア内の配線本数が多いほど配線混雑度が高くなり、配線本数が少ないほど配線混雑度が低くなる。
【００３０】
請求項９の発明では、請求項８に記載のテストポイント挿入方法において、前記指定混雑度は、セル配置時において配線の見積もりで使用される単位エリア内の配線本数により指定するものである。
【００３１】
これによると、指定混雑度を単位エリア内の配線本数で表すことができる。
【００３２】
請求項１０の発明は、テストポイント挿入方法として、半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して故障検出を可能とするためのテストポイントを挿入するノードを決定するステップ（ａ）と、前記ステップ（ａ）の後にセルの配置を行うステップ（ｂ）と、前記ステップ（ｂ）において配置されたセル及び配線の混雑度が所定の基準値よりも低いエリアにテストポイントを分散させて配置するステップ（ｃ）と、前記ステップ（ａ）において決定されたテストポイントを挿入するノードと前記ステップ（ｃ）において配置されたテストポイントとを接続するステップ（ｄ）とを備えるものである。
【００３３】
これによると、ステップ（ａ）においてテストポイントを挿入するノードを決定し、ステップ（ｂ）でセルの配置を行った後に、ステップ（ｃ）でテストポイントを分散させて配置する。ここで、分散させて配置するというのは、既に配置されたセル及び配線の混雑度を確認しながら、混雑度の低いエリアに、テストポイントを挿入するノードにできるだけ近く、且つ集中しないように配置することを意味する。これにより、通常動作時の回路の動作に殆ど影響与えることなくテストポイントをノードに挿入することができ、テストポイントの挿入によるタイミング違反を軽減することができる。
【００３４】
請求項１１の発明は、請求項１０に記載のテストポイント挿入方法において、前記ステップ（ａ）でテストポイントの挿入が決定されたノードの情報を出力すると共に前記ステップ（ｂ）でクリティカルパスの情報を出力し、前記ステップ（ｄ）では、前記テストポイントの挿入が決定されたノードの情報及び前記クリティカルパスの情報に基づいてノードとテストポイントとを接続するものである。
【００３５】
これによると、クリティカルパスの情報を用いるので、配置合成時のクリティカルパスに対してテストポイントの挿入を回避することができ、有効にタイミング設計を行うことができる。
【００３６】
請求項１２の発明は、テストポイント挿入方法として、半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して故障検出を可能とするためのテストポイントを挿入するノードを決定するステップ（ａ）と、前記ステップ（ａ）においてテストポイントの挿入が決定されたノードのうち制御用テストポイントを挿入するノードに制御用テストポイントを挿入するために必要な論理回路を挿入するステップ（ｂ）と、前記ステップ（ｂ）の後にセルの配置を行うステップ（ｃ）と、前記ステップ（ｃ）において配置されたセル及び配線の混雑度が所定の基準値よりも低いエリアにテストポイントを分散させて配置するステップ（ｄ）と、前記ステップ（ｂ）において挿入された論理回路の端子に前記ステップ（ｄ）において配置された制御用テストポイントを接続するステップ（ｅ）とを備えるものである。
【００３７】
これによると、セルの配置を行う前に、ステップ（ｂ）において制御用テストポイントを挿入するノードに制御用テストポイントを挿入するために必要な論理回路を挿入する。このように、制御用テストポイントの挿入に必要な論理回路をセルの配置前に挿入しておくことで、有効にタイミング設計を行うことができる。
【００３８】
請求項１３の発明は、請求項１２に記載のテストポイント挿入方法において、前記ステップ（ａ）でテストポイントの挿入が決定されたノードの情報を出力すると共に前記ステップ（ｃ）でクリティカルパス情報を出力し、前記ステップ（ｅ）では、前記テストポイントの挿入が決定されたノードの情報及び前記クリティカルパス情報に基づいてノードとテストポイントとを接続するものである。
【００３９】
これによると、クリティカルパスの情報を用いるので、配置合成時のクリティカルパスに対してテストポイントの挿入を回避することができ、有効にタイミング設計を行うことができる。
【００４０】
請求項１４の発明は、テストポイント挿入方法として、半導体集積回路のスキャンテスト設計時において、スキャンモード信号の値固定の伝播によってディスエーブルされる回路のノードに故障検出を可能とするためのテストポイントを挿入するステップ（ａ）と、前記ステップ（ａ）の後にセルの配置を行うステップ（ｂ）と、前記ステップ（ｂ）の後に回路仕様の変更や回路の修正が生じた際に、テストポイントをリペアセルとして使用して回路の修正を行うステップ（ｃ）とを備えるものである。
【００４１】
これによると、故障検出率を向上させるためのテストポイントを回路の修正に使用できるので、通常リペアセルと呼ばれる接続情報のないセルにレジスタを配置しておく必要がなく、より一層テスト回路の面積を削減することが可能となる。
【００４２】
請求項１５の発明は、請求項１４に記載のテストポイント挿入方法において、前記ステップ（ａ）でノードに挿入したテストポイントの情報を追加レジスタ情報として出力すると共に前記ステップ（ｂ）でテストポイントの座標情報を追加レジスタ情報に追加し、前記ステップ（ｃ）では、前記追加レジスタ情報に基づいて回路の修正を行うものである。
【００４３】
これによると、テストポイントの座標情報を用いて、テストポイントを回路の修正に使用できる。
【００４４】
請求項１６の発明は、請求項１５に記載のテストポイント挿入方法において、  制御用テストポイントと観測用テストポイントとのうち、制御用テストポイントのみをリペアセルとして使用可能とする制約が与えられ、前記ステップ（ｃ）では、前記制約及び前記追加レジスタ情報に基づいて回路の修正を行うものである。
【００４５】
これによると、制御用テストポイントのみをリペアセルとして使用可能とするので、観測用テストポイントをリペアセルとして使用する場合よりも故障検出率を向上させることができる。
【発明の効果】
【００４６】
本発明のテストポイント挿入方法によれば、ノードに挿入するテストポイントの数を減少させてテスト回路の面積を削減することができ、テスト回路の単位面積当たりの故障検出率を向上させることができる。また、テストポイント共有条件に基づき共有可能なテストポイントを共有化させることにより、配線エリアの混雑度を緩和することができる。そして、配線長を短くして配線エリアを縮小することができ、配線容量を抑えて通常動作時の回路へのタイミングダメージを軽減することができる。
【発明を実施するための最良の形態】
【００４７】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００４８】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るテストポイント挿入方法の対象とされる半導体集積回路の回路図である。同図に示す組み合わせ回路群は、４つの組み合わせ回路ｃｃ１〜ｃｃ４と、１６個のノードｎ１〜ｎ１６と、２つのＯＲ回路ｏｒ１，ｏｒ２と、セレクタｓｅｌ１と、バッファとを備えている。
【００４９】
図１に示すように、セレクタｓｅｌ１には、制御ノードｎ２と入力ノードｎ１４，ｎ１５と出力ノードｎ１６とが設けられている。制御ノードｎ２は、組み合わせ回路ｃｃ１の出力ノードｎ１とバッファの入力ノードｎ３とに接続している。入力ノードｎ１５は、組み合わせ回路ｃｃ４の出力ノードｎ１３に接続している。ＯＲ回路ｏｒ１には、入力ノードｎ７，ｎ８と出力ノードｎ１１とが設けられている。入力ノードｎ７は、バッファの出力ノードｎ４に接続している。入力ノードｎ８は、組み合わせ回路ｃｃ２の出力ノードｎ５に接続している。ＯＲ回路ｏｒ２には、入力ノードｎ９，ｎ１０と出力ノードｎ１２とが設けられている。入力ノードｎ９は、バッファの出力ノードｎ４に接続している。入力ノードｎ１０は、組み合わせ回路ｃｃ３の出力ノードｎ６に接続している。
【００５０】
図５は、第１の実施形態に係るスキャンテスト設計手順を示すフロー図である。まず、ＲＴＬ設計ステップＳ１０１において、ＲＴＬ記述により回路の設計を行う。続いて、論理合成ステップＳ１０２において、論理合成ツールを用いて回路の最適化を行う。
【００５１】
次に、故障検出率算出ステップＳ１０３において、回路の故障検出率を算出する。故障検出率判定ステップＳ１０４では、故障検出率算出ステップＳ１０３で算出した故障検出率が、目標故障検出率に達しているか否かが判定される。故障検出率判定ステップＳ１０４で故障検出率が目標故障検出率に達していると判定されると、スキャンテストは終了する。一方、故障検出率判定ステップＳ１０４において、故障検出率が目標故障検出率に達していないと判定されると、スキャンモードによる値固定ノード探索ステップＳ１０５へ進む。このステップＳ１０５以降の処理は、図１に示された回路を含む、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対して行われる。
【００５２】
スキャンモードによる値固定ノード探索ステップＳ１０５では、スキャンモード時に値固定されているノードを探索して抽出する。一方、スキャンテスト時ノード固定情報Ｓ１１４には、スキャンテスト時に値固定が必要なノードをリスト化したものが含まれている。値固定が必要なノードか否かの判別ステップＳ１０６では、スキャンテスト時ノード固定情報Ｓ１１４を参照して、スキャンモードによる値固定ノード探索ステップＳ１０５で抽出されたノードについて、値固定が必要か否かが判別される。このスキャンテスト時ノード固定情報Ｓ１１４は、スキャンテスト設計の仕様を作成する段階で予め作成しておく。
【００５３】
判別ステップＳ１０６において判別されたノードが値固定が必要なものである場合、観測用テストポイント挿入箇所決定ステップＳ１１３へ進む。観測用テストポイント挿入箇所決定ステップＳ１１３において、スキャンテスト時には値固定が必要なノードの値を変更することができないため、そのノードによってディスエーブルされている組み合わせ回路群の最終出力ノードに観測用テストポイントを挿入することを決定する。そして、故障検出率算出ステップＳ１０３へ戻って故障検出率を算出する。
【００５４】
一方、判別ステップＳ１０６において判別されたノードが値固定が必要なものではない場合、制御用テストポイント挿入仮定ステップＳ１０７と観測用テストポイント挿入仮定ステップＳ１０９のそれぞれへ進む。
【００５５】
制御用テストポイント挿入仮定ステップＳ１０７では、値固定が必要でないノードのうち根元のノードに制御用テストポイントを挿入したと仮定してそのノードの０／１制御が可能になったとする。そして、この仮定に基づき可制御性及び可観測性を計算し、故障検出率算出ステップＳ１０８において故障検出率を算出する。
【００５６】
また、観測用テストポイント挿入仮定ステップＳ１０９では、値固定が必要でないノードによりディスエーブルされている組み合わせ回路の出力ノードに観測用テストポイントを挿入したと仮定する。そして、この仮定に基づき可観測性を計算し、故障検出率算出ステップＳ１１０において故障検出率を算出する。
【００５７】
続いて、テスト効率比較ステップＳ１１１へ進む。テスト効率比較ステップＳ１１１では、故障検出率算出ステップＳ１０８や故障検出率算出ステップＳ１１０で算出した故障検出率に対して向上した故障検出率をそれぞれに必要なテスト回路の面積で割った値を算出し、両者を比較する。このテスト回路は、ノードに観測用テストポイントを挿入する場合にはフリップフロップとなり、ノードに制御用テストポイントを挿入する場合にはフリップフロップと論理回路となる。
【００５８】
その後、テストポイント挿入ノード決定ステップＳ１１２において、テスト効率比較ステップＳ１１１でのテスト効率の比較結果に基づいて、制御用テストポイント及び観測用テストポイントのうち、テスト効率が高くなる方を選択し、選択されたテストポイントが挿入されるノードを決定する。その際、テストポイントの挿入が決定されたノードの番号が、メモリ７００に記憶される。そして、故障検出率算出ステップＳ１０３へ戻って故障検出率を算出する。
【００５９】
また、図１に示す回路以外の、スキャンモード信号の値固定の伝播によってディスエーブルされる回路に対しても、テストポイントを挿入するノードを順次変えてゆき、故障検出率が目標故障検出率に達するまでステップＳ１０５からＳ１１４までの各ステップを繰り返し行う。その際、テストポイント挿入ノード決定ステップＳ１１２で決定されたテストポイントを挿入するノードの番号がメモリ７００に記憶されてゆき、制御用テストポイント挿入仮定ステップＳ１０７や観測用テストポイント挿入仮定ステップＳ１０９では、メモリ７００に記憶されている以外のノードに対して処理を行う。
【００６０】
そして、故障検出率が目標故障検出率に達するまでステップＳ１０５からＳ１１４までの各ステップを繰り返すことにより、テストポイント挿入ノード決定ステップＳ１１２で決定された観測用テストポイント又は制御用テストポイントを挿入する各ノードの順番が決定され、観測用テストポイント挿入箇所決定ステップＳ１１３で決定された観測用テストポイントを挿入する各ノードの順番が決定される。故障検出率が目標故障検出率に達すると、決定された順番に従って各ノードに観測用テストポイント又は制御用テストポイントを挿入する。
【００６１】
図５に示すフロー図の各ステップを、図１に示す半導体集積回路の回路図を参照しながら具体的に説明する。
【００６２】
前記組み合わせ回路群は、組み合わせ回路ｃｃ１の出力ノードｎ１を１に固定することにより、スキャンテスト時にノードｎ２を１に固定するように構成されている。従って、スキャンテスト設計では、全てのノードのうちノードｎ２を固定するという情報がスキャンテスト時ノード固定情報Ｓ１１４として与えられている。
【００６３】
ここで、組み合わせ回路ｃｃ１，ｃｃ２，ｃｃ３，ｃｃ４のそれぞれに含まれるノード数を順にＮ＿１＝５，Ｎ＿２＝５，Ｎ＿３＝５，Ｎ＿４＝５と仮定する。また、組み合わせ回路ｃｃ１，ｃｃ２，ｃｃ３，ｃｃ４のそれぞれに含まれる故障の数を順にＦ＿１，Ｆ＿２，Ｆ＿３，Ｆ＿４とし、Ｆ＿１＝１０，Ｆ＿２＝１０，Ｆ＿３＝１０，Ｆ＿４＝１０と仮定する。尚、ここでいう故障は、各ノードに対する１縮退故障，０縮退故障の縮退故障モデルを定義する。
【００６４】
また、組み合わせ回路群における全ての故障の数をＦ＿ａｌｌとする。このような故障には、｛ｃｃ１の故障，ｃｃ２の故障，ｃｃ３の故障，ｃｃ４の故障，ｎ３の故障，ｎ４の故障，ｎ７の故障，ｎ８の故障，ｎ９の故障，ｎ１０の故障，ｎ１１の故障，ｎ１２の故障，ｎ１４の故障，ｎ１５の故障，ｎ１６の故障｝があるので、Ｆ＿ａｌｌ＝１０＋１０＋１０＋１０＋２０＝６０となる。
【００６５】
また、ノードｎ１が１に固定された状態での検出可能な故障の数をＦ＿ｄとする。このような故障には、｛ｎ１の０縮退故障，ｎ２の０縮退故障，ｎ３の０縮退故障，ｎ４の０縮退故障，ｎ７の０縮退故障，ｎ９の０縮退故障，ｎ１１の０縮退故障，ｎ１２の０縮退故障，ｎ１４の０／１縮退故障，ｎ１６の０／１縮退故障｝があるので、Ｆ＿ｄ＝１２となる。尚、ここでいう検出可能な故障とは、外部出力、若しくはスキャンフリップフロップにおいて観測可能である故障と定義する。また、本実施形態では、目標故障検出率を９５％に設定する。
【００６６】
図５に示すように、故障検出率算出ステップＳ１０３では、（Ｆ＿ｄ／Ｆ＿ａｌｌ）×１００［％］の式で故障検出率が求められる。この式に前記の各値を代入すると、故障検出率は、（１２／６０）×１００＝２０％となる。一方、目標故障検出率は９５％である。よって、故障検出率判定ステップＳ１０４では、故障検出率算出ステップＳ１０３で算出した故障検出率が目標故障検出率に達していないと判定され、スキャンモードによる値固定ノード探索ステップＳ１０５へ進む。
【００６７】
組み合わせ回路群では、ノードｎ１，ｎ２が値固定されており、これによりノードｎ３，ｎ４，ｎ７，ｎ９，ｎ１１，ｎ１２も値固定されている。このため、スキャンモードによる値固定ノード探索ステップＳ１０５では、値固定されているノードｎ１，ｎ２，ｎ３，ｎ４，ｎ７，ｎ９，ｎ１１，ｎ１２が抽出される。抽出された８個のノードは、値固定が必要なノードか否かの判別ステップＳ１０６において、スキャンテスト時ノード固定情報Ｓ１１４と照合しながら、値固定が必要なノードか否か判別される。
【００６８】
上述のように、スキャンテスト時ノード固定情報Ｓ１１４には、全てのノードのうちノードｎ２を固定するという情報が入力されている。このため、値固定が必要なノードか否かの判別ステップＳ１０６では、８個のノードのうちノードｎ２のみが値固定が必要なノードと判別され、ノードｎ２を除く７個のノードが値固定が必要でないノードと判別される。
【００６９】
このうち値固定が必要であると判別されたノードｎ２に関しては、観測用テストポイント挿入箇所決定ステップＳ１１３において、ノードｎ２が値固定されているために観測不能となっている組み合わせ回路ｃｃ４の出力ノードｎ１３に観測用テストポイントを挿入することを決定する。出力ノードｎ１３に観測用テストポイントを挿入した場合に、故障検出率算出ステップＳ１０３では、｛（Ｆ＿ｄ＋Ｆ＿４）／Ｆ＿ａｌｌ｝×１００［％］の式で故障検出率が求められる。この式に前記の各値を代入すると、故障検出率は、｛（１２＋１０）／６０｝×１００≒３７％となる。
【００７０】
値固定が必要でないと判別された７個のノードｎ１，ｎ３，ｎ４，ｎ７，ｎ９，ｎ１１，ｎ１２に関しては、まず、制御用テストポイント挿入仮定ステップＳ１０７において、これら値固定されているノードのうち根元のノードｎ３に制御用テストポイントを挿入したと仮定してノードｎ３の０／１制御が可能になったとする。この状態では、｛Ｆ＿２，Ｆ＿３，ｎ３の１縮退故障，ｎ４の１縮退故障，ｎ７の１縮退故障，ｎ９の１縮退故障，ｎ１１の１縮退故障，ｎ１２の１縮退故障｝の故障が検出可能となる。
【００７１】
そして、この仮定に基づき可制御性及び可観測性を計算し、故障検出率算出ステップＳ１０８において故障検出率を算出する。故障検出率算出ステップＳ１０８では、｛（Ｆ＿ｄ＋Ｆ＿４＋Ｆ＿２＋Ｆ＿３＋６）／Ｆ＿ａｌｌ｝×１００［％］の式で故障検出率が求められる。この式に前記の各値を代入すると、故障検出率は、｛（１２＋１０＋１０＋１０＋６）／６０｝×１００＝８０％となる。
【００７２】
次に、観測用テストポイント挿入仮定ステップＳ１０９において、これら値固定されている７個のノードのうちノードｎ７，ｎ９により観測不能となっている組み合わせ回路ｃｃ２，ｃｃ３の出力ノードｎ５，ｎ６に観測用テストポイントを挿入したと仮定する。この状態では、｛Ｆ＿２，Ｆ＿３，ｎ８の０／１縮退故障，ｎ１０の０／１縮退故障｝の故障が検出可能となる。
【００７３】
そして、この仮定に基づき可観測性を計算し、故障検出率算出ステップＳ１１０において故障検出率を算出する。故障検出率算出ステップＳ１１０では、｛（Ｆ＿ｄ＋Ｆ＿４＋Ｆ＿２＋Ｆ＿３＋４）／Ｆ＿ａｌｌ｝×１００［％］の式で故障検出率が求められる。この式に前記の各値を代入すると、故障検出率は、｛（１２＋１０＋１０＋１０＋４）／６０｝×１００≒７７％となる。
【００７４】
続いて、テスト効率比較ステップＳ１１１において、故障検出率算出ステップＳ１０８で算出した故障検出率に対するテスト回路の単位面積当たりの向上した故障検出率（以下、制御用テストポイント挿入テスト効率と称する）と、故障検出率算出ステップＳ１１０で算出した故障検出率に対するテスト回路の単位面積当たりの向上した故障検出率（以下、観測用テストポイント挿入テスト効率と称する）とを算出し、両者を比較する。
【００７５】
ここで、１箇所のノードに制御用テストポイントを挿入するために必要なテスト回路は、２入力セレクタ１個とフリップフロップ１個である。通常の回路では、２入力セレクタの面積の方がフリップフロップの面積よりも小さい。よって、本実施形態では、例えば２入力セレクタの面積をＡｒｅａ＿Ｓ＝１、フリップフロップの面積をＡｒｅａ＿Ｆ＝２とする。このとき、制御用テストポイント挿入テスト効率は、
［｛（Ｆ＿ｄ＋Ｆ＿４＋Ｆ＿２＋Ｆ＿３＋６）／Ｆ＿ａｌｌ｝×１００−｛（Ｆ＿ｄ＋Ｆ＿４）／Ｆ＿ａｌｌ｝×１００］／（Ａｒｅａ＿Ｓ＋Ａｒｅａ＿Ｆ）
＝（Ｆ＿２＋Ｆ＿３＋６）×１００／｛Ｆ＿ａｌｌ×（Ａｒｅａ＿Ｓ＋Ａｒｅａ＿Ｆ）｝［％］
の式で求められる。この式に前記の各値を代入すると、制御用テストポイント挿入テスト効率は、（１０＋１０＋６）×１００／｛６０×（１＋２）｝＝１４．４４％となる。
【００７６】
一方、１箇所のノードに観測用テストポイントを挿入するために必要なテスト回路は、フリップフロップ１個である。本実施形態では、２箇所のノード、即ち出力ノードｎ５，ｎ６に観測用テストポイントを挿入するため、観測用テストポイント挿入テスト効率は、
［｛（Ｆ＿ｄ＋Ｆ＿４＋Ｆ＿２＋Ｆ＿３＋４）／Ｆ＿ａｌｌ｝×１００−｛（Ｆ＿ｄ＋Ｆ＿４）／Ｆ＿ａｌｌ｝×１００］／（Ａｒｅａ＿Ｆ＋Ａｒｅａ＿Ｆ）
＝（Ｆ＿２＋Ｆ＿３＋４）×１００／（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）［％］
の式で求められる。この式に前記の各値を代入すると、観測用テストポイント挿入テスト効率は、（１０＋１０＋４）×１００／（６０×２×２）＝１０％となる。
【００７７】
そして、制御用テストポイント挿入テスト効率と、観測用テストポイント挿入テスト効率とを比較すると、これらの比ＲＥは、
ＲＥ
＝（制御用テストポイント挿入テスト効率）／（観測用テストポイント挿入テスト効率）
＝［（Ｆ＿２＋Ｆ＿３＋６）／｛Ｆ＿ａｌｌ×（Ａｒｅａ＿Ｓ＋Ａｒｅａ＿Ｆ）｝］／｛（Ｆ＿２＋Ｆ＿３＋４）／（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）｝
ここで、Ｆ＿２＋Ｆ＿３＝Ｆ＿２３とおくと、
ＲＥ
＝［（Ｆ＿２３＋６）／｛Ｆ＿ａｌｌ×（Ａｒｅａ＿Ｓ＋Ａｒｅａ＿Ｆ）｝］／｛（Ｆ＿２３＋４）／（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）｝
＝｛（Ｆ＿２３＋６）×（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）｝／［（Ｆ＿２３＋４）×｛Ｆ＿ａｌｌ×（Ａｒｅａ＿Ｓ＋Ａｒｅａ＿Ｆ）｝］
通常の回路では、２入力セレクタの面積の方がフリップフロップの面積よりも小さい。このため、
ＲＥ
＞｛（Ｆ＿２３＋６）×（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）｝／｛（Ｆ＿２３＋４）×（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）｝
＝（Ｆ＿２３＋６）／（Ｆ＿２３＋４）＞１
以上より、
（制御用テストポイント挿入テスト効率）／（観測用テストポイント挿入テスト効率）
＝｛（Ｆ＿２３＋６）×（Ｆ＿ａｌｌ×２Ａｒｅａ＿Ｆ）｝／［（Ｆ＿２３＋４）×｛Ｆ＿ａｌｌ×（Ａｒｅａ＿Ｓ＋Ａｒｅａ＿Ｆ）｝］＞１
である。
【００７８】
特に、本実施形態においては、（制御用テストポイント挿入テスト効率）／（観測用テストポイント挿入テスト効率）＝１４．４４／１０＝１．４４となる。このように、テスト効率比較ステップＳ１１１では、制御用テストポイント挿入テスト効率の方が観測用テストポイント挿入テスト効率よりも高いことがわかる。従って、テストポイント挿入ノード決定ステップＳ１１２において、ノードｎ３に制御用テストポイントを挿入することを決定する。
【００７９】
本実施形態では、スキャンテスト設計に値固定が必要なノードか否かの判別ステップＳ１０６を設けている。そして、値固定が必要なノードには観測用テストポイントを挿入することを決定する一方で、値固定が必要でないノードには制御用テストポイント挿入仮定ステップＳ１０７にて制御用テストポイントを挿入したと仮定し、また、観測用テストポイント挿入仮定ステップＳ１０９にて観測用テストポイントを挿入したと仮定して、各テスト回路の単位面積当たりの向上した故障検出率を比較しながらテストポイントの種類とテストポイントを挿入するノードとを決定している。
【００８０】
ここで、従来のスキャンテスト方式では、任意の一箇所の故障検出の有無を確認できる容易性を向上させるために、観測用テストポイントと制御用テストポイントのどちらを配線に挿入する方がテスト効率が良いのかを考慮していなかった。このため、観測用テストポイントを配線に挿入する場合には、テスト回路の面積が増大するだけでなく、テスト回路の単位面積当たりの故障検出率が低下するという問題があった。
【００８１】
それに対し、本実施形態では、観測用テストポイントを挿入するノードと制御用テストポイントを挿入するノードのうちテスト効率が良くなる方のノードに観測用テストポイント又は制御用テストポイントを挿入することを決定する。これにより、ノードに挿入するテストポイントの数を減少させてテスト回路の面積を削減することができ、テスト回路の単位面積当たりの故障検出率を向上させることができる。
【００８２】
スキャンテスト時ノード固定情報Ｓ１１４を作成する方法の１つとして、以下の方法がある。図６は、図１の回路を変形した回路の回路図である。図６の回路は、図１において、組み合わせ回路ｃｃ１を、外部入力端子ＳＣＡＮ＿ＭＯＤＥを入力とするバッファ回路で置き換えたものである。この端子ＳＣＡＮ＿ＭＯＤＥは、スキャンテスト時には１に固定されるようになっている。
【００８３】
図７は、スキャンテスト時ノード固定情報Ｓ１１４を作成する処理を示すフローチャートである。まず、スキャンテスト時に値固定する入力端子についての情報であるスキャンテスト時入力端子固定情報Ｓ１２１としてＳＣＡＮ＿ＭＯＤＥ＝１が与えられ、スキャンテスト時に最低限固定されていなければならないノードの情報であるスキャンテスト時固定必要最低限ノード情報Ｓ１２６としてｎ２＝１が与えられる。
【００８４】
論理伝播ステップＳ１２２では、この入力端子固定情報Ｓ１２１に基づいて、スキャンテスト時の固定値が論理伝播した結果を求める。すると、｛ｎ０＝１，ｎ１＝１，ｎ２＝１，ｎ３＝１，ｎ４＝１，ｎ７＝１，ｎ９＝１，ｎ１１＝１，ｎ１２＝１｝となる論理伝播結果ノード固定情報Ｓ１２３が得られる。
【００８５】
一方、入力コーン抽出ステップＳ１２７では、スキャンテスト時固定必要最低限ノード情報Ｓ１２６に基づいて、そのノードの入力コーン中のノードを、スキャンテスト時固定必要ノード入力コーン中のノード情報Ｓ１２８｛ｎ０，ｎ１，ｎ２｝として求める。
【００８６】
ノード固定必要判別ステップＳ１３１では、論理伝播結果ノード固定情報Ｓ１２３｛ｎ０＝１，ｎ１＝１，ｎ２＝１，ｎ３＝１，ｎ４＝１，ｎ７＝１，ｎ９＝１，ｎ１１＝１，ｎ１２＝１｝から、スキャンテスト時固定必要ノード入力コーン中のノード情報Ｓ１２８｛ｎ０，ｎ１，ｎ２｝中のノードに関する情報を選択して、ノードｎ０〜ｎ２に関する｛ｎ０＝１，ｎ１＝１，ｎ２＝１｝を、スキャンテスト時ノード固定情報Ｓ１１４として求める。
【００８７】
図８は、図５の処理の変形例を示すフロー図である。図８の値固定が必要なノードか否かの判別ステップＳ１４６においては、図７の入力コーン抽出ステップＳ１２７の処理を行った後に、値固定されているノードの値固定が必要か否かが判別される。
【００８８】
この際、判別ステップＳ１４６では、値固定されているノードが、スキャンテスト時に固定することが必要なノードの入力コーン中に含まれる場合には、値固定されているノードの値固定が必要であると判別し、その他の場合には、値固定されているノードの値固定が必要ではないと判別する。
【００８９】
（第２の実施形態）
本実施形態では、共有可能なテストポイントを共有させるテストポイント挿入方法について説明する。
【００９０】
図９は、テストポイントの共有化についての説明図である。例えば、組み合わせ回路ｃｃ１の出力ノードに挿入される観測用テストポイントｔｐ１と、組み合わせ回路ｃｃ２の出力ノードにセレクタｓｅｌ２を介して挿入される制御用テストポイントｔｐ２とが共有可能であるとき、これらのテストポイントｔｐ１，ｔｐ２をテストポイントｔｐ３に置き換えて共有化する技術が広く知られている。
【００９１】
図１０は、第２の実施形態に係るスキャンテスト設計手順を示すフロー図である。本実施形態におけるスキャンテスト設計手順を示すフロー図は、基本的には第１の実施形態と同様であるので、第１の実施形態と異なる点を説明する。このフローにおいては、テストポイントを共有できるか否かの判断が、セルを配置した後に行われる。
【００９２】
まず、ＲＴＬ設計ステップＳ１０１及び論理合成ステップＳ１０２により作成されたネットリストに基づき、テストポイント挿入ステップＳ２０３において各ノードにテストポイントを挿入する。テストポイントとは、観測用テストポイントや制御用テストポイントである。これらのテストポイントは、第１の実施形態と同様にして求められる。配置ステップＳ２０４においてセルの配置を行った後、テストポイント位置情報抽出ステップＳ２０５へ進む。
【００９３】
テストポイント位置情報抽出ステップＳ２０５では、テストポイント及びセルが配置された回路において、テストポイントが配置されている座標と、その座標周辺の配線エリアの混雑度とを抽出する。この配線エリア混雑度とは、セル配置時の概略配線において使用する、配線エリアのボックス単位内での配線エリア使用状況を指す。
【００９４】
次に、テストポイント共有可否判断ステップＳ２０６において、テストポイント共有条件Ｓ２１０に基づき、配置されたテストポイントが共有可能か否かの判断を行う。このテストポイント共有条件Ｓ２１０は、例えば、テストポイントを挿入する各ノード間の距離がどの程度以下であるとか、各テストポイント間の周辺の配線混雑度がどれ位であるかといった物理的な指定である。この指定は、回路の特性や使用する製造プロセスに応じて、これらの特長を把握した上で、セルの配置や概略配線時にファンクション設計に影響を及ぼさないよう行うものとする。
【００９５】
テストポイント共有可否判断ステップＳ２０６においてテストポイントが共有可能であると判断された場合は、テストポイント共有化ＥＣＯステップＳ２０７へ進み、テストポイントが共有不能であると判断された場合は、配線ステップＳ２０９へ進む。
【００９６】
テストポイント共有化ＥＣＯステップＳ２０７では、ＥＣＯ（Engineering Change Order）によって回路の修正を行い、共有可能なテストポイントを共有化する。続いて、配置修正ステップＳ２０８において、共有化したテストポイント及びこのテストポイント周辺のセルについて配置の修正を行う。配置修正ステップＳ２０８では、この作業を全ての共有化したテストポイントについて繰り返し行う。配線ステップＳ２０９において共有化したテストポイントとノードとの配線の接続を行った後、その後の半導体集積回路設計ステップへ進む。
【００９７】
図１０に示すフロー図の各ステップを、図１１及び図１２に示す半導体集積回路のレイアウトイメージ図を参照しながら具体的に説明する。
【００９８】
図１１は、テストポイント挿入ステップＳ２０３においてテストポイントＴＰ１，ＴＰ２を挿入し、その後の配置ステップＳ２０４においてセルの配置を行った後のものを示している。テストポイントＴＰ１が挿入される第１のノードｎ２１と、テストポイントＴＰ２が挿入される第２のノードｎ２２とは、直線距離がｄ＿Ｘ以内となる位置に存在している。ここで、テストポイント共有条件Ｓ２１０として、「テストポイントを挿入するノード間の直線距離がｄ＿Ｘ以内」という指定を与える。テストポイント共有可否判断ステップ２０６において、テストポイントＴＰ１，ＴＰ２は、テストポイント共有条件２１０に一致するためにテストポイント共有可能と判断される。
【００９９】
テストポイント共有化ＥＣＯステップＳ２０７では、テストポイントＴＰ２を削除すると共にテストポイントＴＰ１をＴＰ１’に変更し、テストポイントＴＰ１，ＴＰ２をテストポイントＴＰ１’に共有させる。或いは、図示しないが、テストポイント共有化ＥＣＯステップＳ２０７において、テストポイントＴＰ１を削除すると共にテストポイントＴＰ２をＴＰ２’に変更し、テストポイントＴＰ１，ＴＰ２をテストポイントＴＰ２’に共有させてもよい。
【０１００】
続いて、配置修正ステップＳ２０８において、共有させたテストポイントＴＰ１’及びこのテストポイント周辺のセルに対して若干の配置修正を行う。本実施形態では、配置修正ステップＳ２０８において、セルｃ１３とセルｃ１４の間隔を広げるといった配置修正を行う（図１２を参照）。配置修正の方法に関しては従来より知られている一般的な方法でよく、通常動作を行う回路にもタイミングにあまり影響を与えない程度の変更が加えられる。その後、配線ステップＳ２０９において、第１のノードｎ２１と第２のノードｎ２２の両方をテストポイントＴＰ１’に接続する。
【０１０１】
尚、テストポイント共有条件Ｓ２１０として、「テストポイントを挿入するノード間の直線距離がｄ＿Ｘ以内」という指定に限らず、「テストポイントを挿入するノード間のマンハッタン距離がｄ＿Ｘ以内」という指定を与えてもよい。このマンハッタン距離とは、各ノードの座標成分の値の差を成分ごとに求め、成分ごとの値の差の絶対値を足したものである。また、テストポイント共有条件Ｓ２１０として、「テストポイントを挿入するノード間の混雑度がｄ＿ｎ以内」という指定を与えてもよい。この混雑度は、一般的に、セル配置時において配線の見積もりに使用する単位エリア内の配線本数の最大数を以って表すことができる。
【０１０２】
ここで、従来には、テストポイントを共有できるか否かの判断をセルを配置する前に行っていた。このため、予めネットリスト上で共有させておいたテストポイントとノードとの距離がセルの配置時に遠くなってしまい、テストポイントとノードとを接続する配線の長さが長くなって配線エリアが拡大するという問題があった。
【０１０３】
それに対し、本実施形態では、配置ステップＳ２０４の後にテストポイント共有可否判断ステップＳ２０６を設けており、セルの配置状態を確認しながら共有可能なテストポイントを共有させる。これにより、配線エリアの混雑度を緩和することができる。また、従来よりも配線の長さを短くして配線エリアを縮小することができ、配線容量を抑えて通常動作時の回路へのタイミングダメージを軽減することができる。
【０１０４】
（第３の実施形態）
図１３は、第３の実施形態に係るスキャンテスト設計手順を示すフロー図である。本実施形態におけるスキャンテスト設計手順を示すフロー図は、基本的には第１の実施形態と同様であるので、第１の実施形態と異なる点を説明する。
【０１０５】
まず、ＲＴＬ設計ステップＳ１０１及び論理合成ステップＳ１０２により作成されたネットリストに基づき、テストポイント挿入ノード決定ステップＳ３０３においてテストポイントを挿入するノードを決定する。テストポイントは、第１の実施形態と同様にして求められる。このテストポイント挿入ノード決定ステップＳ３０３では、テストポイントの挿入が決定されたノードの情報をテストポイント挿入ノード情報Ｓ３０７として出力する。尚、テストポイント挿入ノード決定ステップＳ３０３では、テストポイントを挿入するノードを決定する作業のみを行い、実際にテストポイントをノードに挿入する作業は行わない。
【０１０６】
続いて、配置ステップＳ３０４においてセルの配置を行い、その際にクリティカルパス情報Ｓ３０８を出力する。これらテストポイント挿入ノード情報Ｓ３０７及びクリティカルパス情報Ｓ３０８は、データベースのような形態でメモリ７０１に記憶される。
【０１０７】
次に、テストポイントランダム配置ステップＳ３０５において、メモリ７０１に記憶されているテストポイントの挿入が決定されたノードの数と等しい数のフリップフロップをランダムに配置する。例えば、制御用テストポイントを配置する場合、制御可能とする構成に必要な論理回路、つまり、０制御用に必要なＡＮＤ回路、１制御用に必要なＯＲ回路、或いはセレクタ等もそのフリップフロップ付近に配置させる。ここで、ランダムに配置するというのは、既に配置されているセルの配置状況を確認しながら、セル及び配線の混雑度が所定の基準値よりも低いエリアに、集中しないよう分散させて配置することを意味する。
【０１０８】
続いて、テストポイント接続ＥＣＯ修正ステップＳ３０６において、メモリ７０１に記憶されているテストポイント挿入ノード情報Ｓ３０７及びクリティカルパス情報Ｓ３０８に基づき、ランダムに配置されたテストポイントと、テストポイントを挿入するノードとの接続情報を作成してゆく。全てのノードに対してテストポイントの接続情報を作成した後、ＥＣＯによって実際に接続修正を行う。
【０１０９】
図１３に示すフロー図の各ステップを、図１４、図１５、及び図１６に示す半導体集積回路のレイアウトイメージ図を参照しながら具体的に説明する。
【０１１０】
図１４は、テストポイント挿入ノード決定ステップＳ３０３においてセルｃ１６，ｃ２１の端子から出ているノードｎ１６，ｎ２１にテストポイントを挿入することを決定した後、配置ステップＳ３０４においてセルの配置を行ったものを示している。テストポイント挿入ノード情報Ｓ３０７には、ノードｎ１６，ｎ２１が含まれている。クリティカルパス情報Ｓ３０８には、ノードｎ２１が含まれているとする。
【０１１１】
まず、図１５に示すように、テストポイントランダム配置ステップＳ３０５において、テストポイントの挿入が決定されたノードの数と等しい２つのフリップフロップをランダムに配置する。次に、図１６に示すように、テストポイントＴＰ１，ＴＰ２がセル配置エリアに収まるよう、セルｃ１１とセルｃ１２の間隔及びセルｃ１３とセルｃ１４の間隔を広げるといった配置修正を行う。この配置を修正する機能としては、市販のレイアウトツールに備わっているものを用いることができる。
【０１１２】
続いて、テストポイント接続ＥＣＯ修正ステップＳ３０６において、メモリ７０１に記憶されているテストポイント挿入ノード情報Ｓ３０７及びクリティカルパス情報Ｓ３０８に基づき、テストポイントＴＰ１，ＴＰ２とノードｎ１６，ｎ２１との接続情報を作成してゆく。そして、ＥＣＯによってテストポイントＴＰ１とノードｎ１６及びテストポイントＴＰ２とノードｎ２１の接続修正を行う。
【０１１３】
本実施形態では、配置ステップＳ３０４の後にテストポイントランダム配置ステップＳ３０５を設けており、セルを配置した後にテストポイントの配置を行う。よって、通常動作時の回路の動作に殆ど影響与えることなくテストポイントをノードに挿入することができ、テストポイントの挿入によるタイミング違反を軽減することができる。
【０１１４】
また、テストポイント接続ＥＣＯ修正ステップＳ３０６では、テストポイント挿入ノード情報Ｓ３０７及びクリティカルパス情報Ｓ３０８に基づき、テストポイントとノードとの接続修正を行う。よって、配置合成時のクリティカルパスに対してテスト回路の挿入を回避することができ、有効にタイミング設計を行うことができる。
【０１１５】
（第４の実施形態）
図１７は、第４の実施形態に係るスキャンテスト設計手順を示すフロー図である。本実施形態におけるスキャンテスト設計手順を示すフロー図は、基本的には第３の実施形態と同様であるので、第３の実施形態と異なる点を説明する。
【０１１６】
本実施形態では、テストポイント挿入ノード決定ステップＳ３０３と配置ステップＳ３０４との間に、テストポイント挿入に必要な論理回路の挿入ステップＳ４０１が設けられている。
【０１１７】
テストポイント挿入に必要な論理回路の挿入ステップＳ４０１は、制御用テストポイントの構成に必要なＡＮＤ回路、ＯＲ回路、或いはセレクタを挿入するステップである。この制御用テストポイントは、０制御を可能とするためにＡＮＤ回路を挿入する構成、１制御を可能とするためにＯＲ回路を挿入する構成、或いは０／１制御を可能とするためにスキャンイネーブル信号が１の場合に制御用レジスタの経路を選択するセレクタを挿入する構成をとる。
【０１１８】
具体的に、図４に示す組み合わせ回路群において、スキャンテスト時には組み合わせ回路ｃｃ２の出力ノードｎ５が１に固定される。このため、テストポイント挿入に必要な論理回路の挿入ステップＳ４０１において、出力ノードｎ５にＡＮＤ回路ａｎｄ１を挿入する。その際、ＡＮＤ回路ａｎｄ１の一方の入力ノードを出力ノードｎ５に接続し、ＡＮＤ回路ａｎｄ１の出力ノードをＯＲ回路ｏｒ３の入力ノードｎ２に接続する。
【０１１９】
また、図１８に示す組み合わせ回路群において、スキャンテスト時には組み合わせ回路ｃｃ２の出力ノードｎ５が０に固定される。このため、テストポイント挿入に必要な論理回路の挿入ステップＳ４０１において、出力ノードｎ５にＯＲ回路ｏｒ４を挿入する。その際、ＯＲ回路ｏｒ４の一方の入力ノードを出力ノードｎ５に接続し、ＯＲ回路ｏｒ４の出力ノードをＯＲ回路ｏｒ３の入力ノードｎ２に接続する。
【０１２０】
また、図１９に示す組み合わせ回路群において、スキャンテスト時には組み合わせ回路ｃｃ２の出力ノードｎ５が値固定される。このため、テストポイント挿入に必要な論理回路の挿入ステップＳ４０１において、出力ノードｎ５にセレクタｓｅｌ３を挿入する。その際、セレクタｓｅｌ３の一方の入力ノードを出力ノードｎ５に接続し、セレクタｓｅｌ３の出力ノードをＯＲ回路ｏｒ３の入力ノードｎ２に接続する。
【０１２１】
そして、例えば、図１８に示すように１制御を可能にするための構成の場合、通常動作時に回路の論理に影響のないよう、ＯＲ回路ｏｒ４の入力端子のうち制御用テストポイントに接続する方の入力端子を電源に接続しておく（図２０を参照）。これが０制御のためのＡＮＤ回路であればＡＮＤ回路ａｎｄ１の一方の入力端子をグラウンドに接続し、セレクタであればセレクタｓｅｌ３の端子の信号が通常時に常にＯＦＦとなるよう設計しておく。尚、図１８に示す回路は、テストポイント接続ＥＣＯ修正ステップＳ３０６において、図２０に示す回路のＯＲ回路ｏｒ４の一方の入力ノードに制御用テストポイントｔｐ２を接続したものである。
【０１２２】
本実施形態では、配置ステップＳ３０４の前にテストポイント挿入に必要な論理回路の挿入ステップＳ４０１を設けている。このように、テストポイント挿入に必要な論理回路をセルの配置前に挿入しておくことで、より一層有効にタイミング設計を行うことができる。
【０１２３】
（第５の実施形態）
図２１は、第５の実施形態に係るスキャンテスト設計手順を示すフロー図である。本実施形態におけるスキャンテスト設計手順を示すフロー図は、基本的には第１の実施形態と同様であるので、第１の実施形態と異なる点を説明する。
【０１２４】
まず、ＲＴＬ設計ステップＳ１０１及び論理合成ステップＳ１０２により作成されたネットリストに基づき、テストポイント挿入ステップＳ５０３においてテストポイントを各ノードに挿入する。テストポイントは、第１の実施形態と同様にして求められる。この際、テストポイント挿入ステップＳ５０３において、テストポイントの情報を追加レジスタ情報Ｓ５０７として出力する。続いて、配置ステップＳ５０４において、セルの配置を行う。この際、配置ステップＳ５０４において、テストポイントの座標情報を追加レジスタ情報Ｓ５０７に追加する。この追加レジスタ情報Ｓ５０７は、データベースのような形態でメモリ７０２に記憶される。
【０１２５】
次に、回路仕様変更・回路修正必要判別ステップＳ５０５において、回路の仕様変更や回路の修正を行う必要があるか否かの判別を行う。そして、回路の仕様変更や回路の修正を行う必要がある場合には、ＥＣＯ修正ステップＳ５０６へ進む。ＥＣＯ修正ステップＳ５０６では、レジスタを使用した回路修正用の部品として、すなわち、リペアセルの一部として、追加レジスタ情報Ｓ５０７にあるテストポイントを用いて回路の修正を行う。回路の仕様変更や回路の修正を行う必要がない場合には、配線ステップＳ２０９へ進む。
【０１２６】
図２１に示すフロー図の各ステップを、図２２及び図２３に示す半導体集積回路のレイアウトイメージ図を参照しながら具体的に説明する。
【０１２７】
図２２において、組み合わせ回路群のＯＲ回路ｏｒ３には、出力ノードｎ４と入力ノードｎ２，ｎ３とが設けられている。入力ノードｎ３は組み合わせ回路ｃｃ１の出力ノードｎ１に接続し、入力ノードｎ２は組み合わせ回路ｃｃ２の出力ノードｎ５に接続している。組み合わせ回路ｃｃ３の出力ノードｎ６は、組み合わせ回路ｃｃ４の入力ノードｎ７に接続している。
【０１２８】
スキャンテスト時には、組み合わせ回路ｃｃ２の出力ノードｎ５が１に固定される。このため、テストポイント挿入ステップＳ５０３において、観測不能となっている組み合わせ回路ｃｃ１の出力ノードｎ１に観測用テストポイントｔｐ１を挿入する。この際、テストポイント挿入ステップＳ５０３において、観測用テストポイントｔｐ１が観測しているノード名ｎ１、インスタンス名ｔｐ１、及びセル名ＦＦ１（ここでは、セルＦＦ１を使用していると仮定）を追加レジスタ情報Ｓ５０６として出力する。続いて、配置ステップＳ３０４において、セルの配置を行い、観測用テストポイントｔｐ１の座標情報を追加レジスタ情報Ｓ５０６に追加する。
【０１２９】
ここで、組み合わせ回路ｃｃ３とｃｃ４との間にレジスタを１つ挟むように回路を修正する必要が生じたと仮定する。すると、回路仕様変更・回路修正必要判別ステップＳ５０４において、回路の修正の必要があると判別され、ＥＣＯ修正ステップＳ５０５へ進む。図２３に示すように、ＥＣＯ修正ステップＳ５０５では、追加レジスタ情報Ｓ５０６に基づき、観測用テストポイントｔｐ１のノードｎ１からのデータ入力接続を切断し、互いに接続している出力ノードｎ６と入力ノードｎ７とを切断する。その上で、出力ノードｎ６を観測用テストポイントｔｐ１のデータ入力に接続し、入力ノードｎ７を観測用テストポイントｔｐ１のデータ出力に接続する。
【０１３０】
本実施形態では、ＥＣＯ修正ステップＳ５０６において、追加レジスタ情報Ｓ５０７に基づき回路の修正を行う。よって、セルを配置した後に回路を修正する必要が生じた場合に、故障検出率を向上させるためのテストポイントを、リペアセルとして回路の修正に用いることができる。従って、本実施形態によれば、通常リペアセルと呼ばれる接続情報のないセルにレジスタを配置しておく必要がなく、より一層テスト回路の面積を削減することが可能となる。
【０１３１】
（第６の実施形態）
図２４は、第６の実施形態に係るスキャンテスト設計手順を示すフロー図である。本実施形態におけるスキャンテスト設計手順を示すフロー図は、基本的には第５の実施形態と同様であるので、第５の実施形態と異なる点を説明する。
【０１３２】
本実施形態では、ＥＣＯ修正の際に制御用テストポイントのみをレジスタに使用可能とする制約Ｓ６０１が設けられている。そして、ＥＣＯ修正ステップＳ５０６では、この制約Ｓ６０１に基づいて回路の修正を行う。
【０１３３】
図２４に示すフロー図の各ステップを、図２５及び図２６に示す半導体集積回路のレイアウトイメージ図を参照しながら具体的に説明する。
【０１３４】
図２５において、組み合わせ回路群では、ＯＲ回路ｏｒ３に出力ノードｎ４と入力ノードｎ２，ｎ３とが設けられている。入力ノードｎ３は組み合わせ回路ｃｃ１の出力ノードｎ１に接続し、入力ノードｎ２は組み合わせ回路ｃｃ２の出力ノードｎ５に接続している。また、組み合わせ回路群では、ＯＲ回路ｏｒ５に出力ノードｎ１２と入力ノードｎ１０，ｎ１１とが設けられている。入力ノードｎ１０はセレクタｓｅｌ４の出力ノードｎ１４に接続し、入力ノードｎ１１は組み合わせ回路ｃｃ１の出力ノードｎ９に接続している。また、セレクタｓｅｌ４の入力ノードのうち、一方は組み合わせ回路ｃｃ２の入力ノードｎ８に接続している。
【０１３５】
スキャンテスト時には、組み合わせ回路ｃｃ２の出力ノードｎ５が１に固定されるか、或いは組み合わせ回路ｃｃ２の出力ノードｎ８が値固定される。このため、テストポイント挿入ステップＳ５０３において、組み合わせ回路ｃｃ１の出力ノードｎ１に観測用テストポイントｔｐ１を、セレクタｓｅｌ４の入力ノードｎ１３に制御用テストポイントｔｐ２をそれぞれ挿入する。この際、テストポイント挿入ステップＳ５０３において、観測用テストポイントｔｐ１及び制御用テストポイントｔｐ２の接続ノード名、インスタンス名、及びセル名である｛ｎ１，ｔｐ１，ＦＦ１｝と｛ｎ１３，ｔｐ２，ＦＦ１｝とを追加レジスタ情報Ｓ５０６として出力する。
【０１３６】
続いて、配置ステップＳ３０４においてセルの配置を行い、観測用テストポイントｔｐ１と制御用テストポイントｔｐ２との座標情報を追加レジスタ情報Ｓ５０６に追加する。
【０１３７】
ここで、第５の実施形態と同様に、組み合わせ回路ｃｃ３とｃｃ４との間にレジスタを１つ挟むように回路を修正する必要が生じたと仮定する。図２６に示すように、ＥＣＯ修正ステップＳ５０５において、メモリ７０２に記憶されている追加レジスタ情報Ｓ５０６及び制御用テストポイントｔｐ２をレジスタに使用可能とする制約Ｓ６０１に基づき、制御用テストポイントｔｐ２のノードｎ１３からのデータ出力接続を切断し、互いに接続している出力ノードｎ６と入力ノードｎ７とを切断する。その上で、出力ノードｎ６を制御用テストポイントｔｐ２のデータ入力に接続し、入力ノードｎ７を制御用テストポイントｔｐ２のデータ出力に接続する。
【０１３８】
本実施形態では、ＥＣＯ修正ステップＳ５０６に制御用テストポイントのみをレジスタに使用可能とする制約Ｓ６０１を設けている。この制約Ｓ６０１を設けることによって、観測用テストポイントｔｐ１と制御用テストポイントｔｐ２のうち観測用テストポイントｔｐ１をレジスタに使用する場合よりも故障検出率を向上させることができる。
【産業上の利用可能性】
【０１３９】
以上説明したように、本発明は、半導体集積回路のスキャンテスト設計における故障検出率を向上させるために用いるテストポイントの挿入方法に関して有用である。
【図面の簡単な説明】
【０１４０】
【図１】本発明の第１の実施形態に係るテストポイント挿入方法の対象とされる半導体集積回路の回路図である。
【図２】半導体集積回路における値固定ノードを有する回路図である。
【図３】図２の半導体集積回路に観測用テストポイントを挿入した図である。
【図４】図２の半導体集積回路に制御用テストポイントを挿入した図である。
【図５】第１の実施形態に係るスキャンテスト設計手順を示すフロー図である。
【図６】図１の回路を変形した回路の回路図である。
【図７】スキャンテスト時ノード固定情報を作成する処理を示すフローチャートである。
【図８】図５の処理の変形例を示すフロー図である。
【図９】テストポイントの共有化についての説明図である。
【図１０】第２の実施形態に係るスキャンテスト設計手順を示すフロー図である。
【図１１】第２の実施形態に係る半導体集積回路のレイアウトイメージ図である。
【図１２】第２の実施形態に係る半導体集積回路のレイアウトイメージ図である。
【図１３】第３の実施形態に係るスキャンテスト設計手順を示すフロー図である。
【図１４】第３の実施形態に係る半導体集積回路のレイアウトイメージ図である。
【図１５】第３の実施形態に係る半導体集積回路のレイアウトイメージ図である。
【図１６】第３の実施形態に係る半導体集積回路のレイアウトイメージ図である。
【図１７】第４の実施形態に係るスキャンテスト設計手順を示すフロー図である。
【図１８】第４の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【図１９】第４の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【図２０】第４の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【図２１】第５の実施形態に係るスキャンテスト設計手順を示すフロー図である。
【図２２】第５の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【図２３】第５の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【図２４】第６の実施形態に係るスキャンテスト設計手順を示すフロー図である。
【図２５】第６の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【図２６】第６の実施形態に係るスキャンテスト設計における半導体集積回路の回路図である。
【符号の説明】
【０１４１】
Ｓ１０１  ＲＴＬ設計ステップ
Ｓ１０２  論理合成ステップ
Ｓ１０３  故障検出率算出ステップ
Ｓ１０４  故障検出率判定ステップ
Ｓ１０５  スキャンモードによる値固定ノード探索ステップ
Ｓ１０６  値固定が必要なノードか否かの判別ステップ
Ｓ１０７  制御用テストポイント挿入仮定ステップ
Ｓ１０８  故障検出率算出ステップ
Ｓ１０９  観測用テストポイント挿入仮定ステップ
Ｓ１１０  故障検出率算出ステップ
Ｓ１１１  テスト効率比較ステップ
Ｓ１１２  テストポイント挿入ノード決定ステップ
Ｓ１１３  観測用テストポイント挿入箇所決定ステップ
Ｓ１１４  スキャンテスト時ノード固定情報
Ｓ１２２  論理伝播ステップ
Ｓ１２７  入力コーン抽出ステップ
Ｓ１３１  ノード固定必要判別ステップ
Ｓ２０３  テストポイント挿入ステップ
Ｓ２０４  配置ステップ
Ｓ２０５  テストポイント位置情報抽出ステップ
Ｓ２０６  テストポイント共有可否判断ステップ
Ｓ２０７  テストポイント共有化ＥＣＯステップ
Ｓ２０８  配置修正ステップ
Ｓ２０９  配線ステップ
Ｓ２１０  テストポイント共有条件
Ｓ３０３  テストポイント挿入ノード決定ステップ
Ｓ３０４  配置ステップ
Ｓ３０５  テストポイントランダム配置ステップ
Ｓ３０６  テストポイント接続ＥＣＯ修正ステップ
Ｓ３０７  テストポイント挿入ノード情報
Ｓ３０８  クリティカルパス情報
Ｓ４０１  テストポイント挿入に必要な論理回路の挿入ステップ
Ｓ５０３  テストポイント挿入ステップ
Ｓ５０４  回路仕様変更・回路修正必要判別ステップ
Ｓ５０５  ＥＣＯ修正ステップ
Ｓ５０６  追加レジスタ情報
Ｓ６０１  制約
【図１】
2006084427.tif 000003
【図２】
2006084427.tif 000004
【図３】
2006084427.tif 000005
【図４】
2006084427.tif 000006
【図５】
2006084427.tif 000007
【図６】
2006084427.tif 000008
【図７】
2006084427.tif 000009
【図８】
2006084427.tif 000010
【図９】
2006084427.tif 000011
【図１０】
2006084427.tif 000012
【図１１】
2006084427.tif 000013
【図１２】
2006084427.tif 000014
【図１３】
2006084427.tif 000015
【図１４】
2006084427.tif 000016
【図１５】
2006084427.tif 000017
【図１６】
2006084427.tif 000018
【図１７】
2006084427.tif 000019
【図１８】
2006084427.tif 000020
【図１９】
2006084427.tif 000021
【図２０】
2006084427.tif 000022
【図２１】
2006084427.tif 000023
【図２２】
2006084427.tif 000024
【図２３】
2006084427.tif 000025
【図２４】
2006084427.tif 000026
【図２５】
2006084427.tif 000027
【図２６】
2006084427.tif 000028