(57)【要約】【課題】配線長やビア数に起因する不良の流出を削減すること。【解決手段】本発明では、複数のセルと複数の信号線とを含む回路の接続を表す第１の回路情報に基づいてレイアウトを実行し（Ｓ２１）、その回路情報を第２の回路情報とすると共に、レイアウトの実行結果から、複数の信号線の各々の配線長と、複数の信号線の各々が経由するビアホールの数であるビア数とを抽出する（Ｓ２２）。第２の回路情報に対して故障シミュレーションを実行し、故障の検出ができないノードである故障未検出ポイントを抽出する（Ｓ２３）。故障未検出ポイントのそれぞれに対して、配線長及びビア数を用いて重み付けを施し（Ｓ２４）。故障未検出ポイントの中から、重み付けの結果を表す算出値が設定値を超える故障未検出ポイントを選択し、その故障未検出ポイントに対してテストポイントを挿入する（Ｓ２５）。【選択図】図６
2011164921.tif 000002
【特許請求の範囲】
【請求項１】
複数のセルと複数の信号線とを含む半導体集積回路の接続を表す回路情報である第１の回路情報に基づいて前記複数のセル及び前記複数の信号線の配置を決定するレイアウトを実行するレイアウト処理部と、
前記第１の回路情報に対して前記レイアウトを実行した後の回路情報である第２の回路情報を生成すると共に、前記レイアウトの実行結果から、前記複数の信号線の各々の配線長と、前記複数の信号線の各々が経由するビアホールの数であるビア数とを抽出する配線情報処理部と、
前記第２の回路情報に対して故障シミュレーションを実行し、故障の検出ができないノードである故障未検出ポイントを抽出する故障シミュレーション処理部と、
前記故障未検出ポイントのそれぞれに対して、前記配線長及び前記ビア数を用いて重み付けを施し、前記故障未検出ポイントと、前記故障未検出ポイントに接続された信号線と、前記重み付けの結果を表す算出値とを対応付ける第１の重み付け結果リストを生成する重み付け処理部と、
前記第１の重み付け結果リストが表す前記故障未検出ポイントの中から、前記算出値が設定値を超える故障未検出ポイントを第１の選択故障未検出ポイントとして選択し、前記第１の選択故障未検出ポイントに対してテストポイントを挿入する第１挿入処理を実行するテストポイント挿入部と
を具備する半導体集積回路の設計装置。
【請求項２】
前記故障シミュレーション処理部は、前記第１挿入処理が実行された後の回路情報である前記第３の回路情報に対して故障未検出ポイントの検出及び故障検出率の算出を行ない、
その故障シミュレーションの実行により得られる故障検出率が所定の故障検出率に満たない場合には、
前記重み付け処理部は、前記第３の回路情報に対応する故障未検出ポイントのそれぞれと前記重み付けの結果を表す算出値とを対応付ける第２の重み付け結果リストを生成し、
前記テストポイント挿入部は、前記第２の重み付け結果リストが表す前記故障未検出ポイントの中から、前記算出値が最も高いものから降順に所定数の故障未検出ポイントを第２の選択故障未検出ポイントとして選択し、前記第２の選択故障未検出ポイントに対して前記テストポイントを挿入する第２挿入処理を実行する
請求項１に記載の半導体集積回路の設計装置。
【請求項３】
前記故障シミュレーション処理部は、前記第１挿入処理又は前記第２挿入処理が実行された後の回路情報に対して、故障未検出ポイントの検出及び故障検出率の算出を行ない、
その故障シミュレーションの実行により得られる故障検出率が所定の故障検出率以上の場合には、
前記テストポイント挿入部は新たなテストポイントの追加を行なわず、
前記配線情報処理部は、前記第１挿入処理又は前記第２挿入処理が実行された後の回路情報を第４の回路情報として出力する
請求項２に記載の半導体集積回路の設計装置。
【請求項４】
前記テストポイント挿入部は、前記第１選択故障未検出ポイント又は前記第２の選択故障未検出ポイントに前記テストポイントを挿入する場合に、各ノードの出力端の近傍に前記テストポイントを挿入する
請求項１又は２に記載の半導体集積回路の設計装置。
【請求項５】
前記配線長、前記ビア数をそれぞれＡ、Ｂとし、その重み付け係数をＫＡ、ＫＢとしたとき、前記重み付けの結果を表す前記算出値Ｃは、
Ｃ＝Ａ×ＫＡ＋Ｂ×ＫＢ
により算出される
請求項１〜４のいずれかに記載の半導体集積回路の設計装置。
【請求項６】
前記レイアウトが実行される前であり、且つ、前記半導体集積回路の接続を表す回路情報に基づいて、前記半導体集積回路の故障検出率が所定の値以上となるように前記テストポイントを挿入する挿入処理部
を更に具備し、
前記第１の回路情報は、前記レイアウトの実行前の回路情報に対して前記テストポイントを挿入した後の前記半導体集積回路の接続を表す回路情報である
請求項１〜５のいずれかに記載の半導体集積回路の設計装置。
【請求項７】
複数のセルと複数の信号線とを含む半導体集積回路の接続を表す回路情報である第１の回路情報に基づいて前記複数のセル及び前記複数の信号線の配置を決定するレイアウトを実行するステップと、
前記第１の回路情報に対して前記レイアウトを実行した後の回路情報である第２の回路情報を生成するステップと、
前記レイアウトの実行結果から、前記複数の信号線の各々の配線長と、前記複数の信号線の各々が経由するビアホールの数であるビア数とを抽出するステップと、
前記第２の回路情報に対して故障シミュレーションを実行し、故障の検出ができないノードである故障未検出ポイントを抽出するステップと、
前記故障未検出ポイントのそれぞれに対して、前記配線長及び前記ビア数を用いて重み付けを施し、前記故障未検出ポイントと、前記故障未検出ポイントに接続された信号線と、前記重み付けの結果を表す算出値とを対応付ける第１の重み付け結果リストを生成するステップと、
前記第１の重み付け結果リストが表す前記故障未検出ポイントの中から、前記算出値が設定値を超える故障未検出ポイントを第１の選択故障未検出ポイントとして選択するステップと、
前記第１の選択故障未検出ポイントに対してテストポイントを挿入する第１挿入処理を実行するステップと
を具備する半導体集積回路の設計方法。
【請求項８】
前記第１挿入処理が実行された後の回路情報である前記第３の回路情報に対して故障未検出ポイントの検出及び故障検出率の算出を行なうステップと、
その故障シミュレーションの実行により得られる故障検出率が所定の故障検出率に満たない場合には、
前記第３の回路情報に対応する故障未検出ポイントのそれぞれと前記重み付けの結果を表す算出値とを対応付ける第２の重み付け結果リストを生成するステップと、
前記第２の重み付け結果リストが表す前記故障未検出ポイントの中から、前記算出値が最も高いものから降順に所定数の故障未検出ポイントを第２の選択故障未検出ポイントとして選択し、前記第２の選択故障未検出ポイントに対して前記テストポイントを挿入する第２挿入処理を実行するステップと
を更に具備する請求項７に記載の半導体集積回路の設計方法。
【請求項９】
前記第１挿入処理又は前記第２挿入処理が実行された後の回路情報に対して、故障未検出ポイントの検出及び故障検出率の算出を行なうステップと、
その故障シミュレーションの実行により得られる故障検出率が所定の故障検出率以上の場合には、新たなテストポイントの追加を行なわずに、前記第１挿入処理又は前記第２挿入処理が実行された後の回路情報を第４の回路情報として出力するステップと
を更に具備する請求項８に記載の半導体集積回路の設計方法。
【請求項１０】
前記第１選択故障未検出ポイント又は前記第２の選択故障未検出ポイントに前記テストポイントを挿入する場合に、各ノードの出力端の近傍に前記テストポイントを挿入するステップ
を更に具備する請求項７又は８に記載の半導体集積回路の設計方法。
【請求項１１】
前記配線長、前記ビア数をそれぞれＡ、Ｂとし、その重み付け係数をＫＡ、ＫＢとしたとき、前記重み付けの結果を表す前記算出値Ｃは、
Ｃ＝Ａ×ＫＡ＋Ｂ×ＫＢ
により算出される
請求項７〜１０のいずれかに記載の半導体集積回路の設計方法。
【請求項１２】
前記レイアウトが実行される前であり、且つ、前記半導体集積回路の接続を表す回路情報に基づいて、前記半導体集積回路の故障検出率が所定の値以上となるように前記テストポイントを挿入するステップ
を更に具備し、
前記第１の回路情報は、前記レイアウトの実行前の回路情報に対して前記テストポイントを挿入した後の前記半導体集積回路の接続を表す回路情報である
請求項７〜１１のいずれかに記載の半導体集積回路の設計方法。
【請求項１３】
回路の接続情報である第１の回路情報に基づいて、前記回路の故障検出率が所定の値以上となるようにテストポイントの追加を行なう第１のテストポイント挿入処理部と、前記第１のテストポイントを追加した後の回路の接続情報である第２の回路情報に基づいて、前記第２の回路情報に含まれる素子及び配線の配置を決定するレイアウトを実行し、前記レイアウト実行後の回路の接続情報である第３の回路情報に基づいてテストポイントの追加を行なう第２のテストポイント挿入処理部と、を有する半導体集積回路の設計方法であって、
前記第２のテストポイント挿入処理部が、前記第２の回路情報に基づいて、前記第２の回路情報に含まれる素子及び配線の配置を決定するレイアウトを実行するステップと、
前記第２のテストポイント挿入処理部が、前記レイアウト実行後の回路の接続情報である前記第３の回路情報を生成するステップと、
前記第２のテストポイント挿入処理部が、前記レイアウトの結果から、前記配線の長さである配線長と、前記配線が経由するビアホールの数であるビア数とを抽出するステップと、
前記第２のテストポイント挿入処理部が、前記第３の回路情報に対して故障シミュレーションを実行し、故障の検出ができないノードである故障未検出ポイントを抽出するステップと、
前記第２のテストポイント挿入処理部が、前記故障未検出ポイントに対して、前記配線長及び前記ビア数を用いて重み付けを施し、前記故障未検出ポイントと、前記重み付けの結果を表す算出値とを対応付ける重み付け結果リストを生成するステップと、
前記第２のテストポイント挿入処理部が、前記重み付け結果リストが表す前記故障未検出ポイントの中から、前記算出値が設定値を超える故障未検出ポイントを第１の選択故障未検出ポイントとして選択するステップと、
前記第２のテストポイント挿入処理部が、前記第１の選択故障未検出ポイントに対してテストポイント回路を挿入する第１挿入処理を実行するステップと
を具備する半導体集積回路の設計方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路の該当箇所にテストポイントを挿入する半導体集積回路の設計装置、及び、半導体集積回路の設計方法に関する。
【背景技術】
【０００２】
半導体集積回路に対する故障シミュレーションを実施し、該当箇所である信号線にテストポイントを挿入する設計装置が、従来の半導体集積回路の設計装置として、特開２０００−２５０９４６号公報に記載されている。
【０００３】
図１は、従来の半導体集積回路の設計装置の構成を示している。その設計装置は、コンピュータ１０１と、入力装置１０４と、出力装置１０５とを具備している。
【０００４】
コンピュータ１０１は、処理部１０２と、記憶部１０３とを備えている。記憶部１０３には、コンピュータ１に実行させるためのコンピュータプログラムが格納されている。処理部２は、起動時などに記憶部１０３からコンピュータプログラムを読み取って実行する。
【０００５】
処理部１０２は、テストポイント挿入処理部１１０を備えている。このテストポイント挿入処理部１１０は、故障シミュレーション処理部１１を含んでいる。故障シミュレーション処理部１１は、乱数的に複数のテストパターンを発生して故障シミュレーションを実行する。
【０００６】
図２は、従来の半導体集積回路の設計装置の動作（従来の半導体集積回路の設計方法）を示すフローチャートである。
【０００７】
テストポイント挿入処理部１１０は、半導体集積回路の接続を表す回路情報である回路情報６（ネットリスト）を入力し、記憶部１０３に格納する。回路情報６が表す半導体集積回路は、複数のセル（複数の素子）と複数の信号線とを備え、回路情報６は、複数のセルと複数の信号線との接続を表している（ステップＳ１）。
【０００８】
ここで、設計者は、入力装置４の操作によって、パターンの数、目標故障検出率などを含む設計条件をコンピュータ１に与える。テストポイント挿入処理部１１０の故障シミュレーション処理部１１は、設計条件に含まれるパターンの数に基づいて乱数的に複数のテストパターンを発生し、複数のテストパターンに基づいて、回路情報６に対して故障シミュレーションを実行する（ステップＳ２）。
【０００９】
テストポイント挿入処理部１１０は、その故障シミュレーションの実行により得られる故障検出率が、設計条件に含まれる目標故障検出率に到達したか否かを調べる（ステップＳ３）。
【００１０】
ここで、故障検出率が目標故障検出率に到達していない場合（ステップＳ３−ＮＯ）、テストポイント挿入処理部１１０は、回路情報６が表す半導体集積回路の複数の信号線のうちの、故障シミュレーションによって故障が阻止された信号線を故障阻止信号線群としたとき、その故障阻止信号線群の各々を表す情報と、故障シミュレーションによって故障が阻止された回数（故障阻止情報）とを対応付ける故障阻止情報リストを生成する。テストポイント挿入処理部１１０は、故障阻止情報リストが表す故障阻止信号線群の中から、故障が阻止された回数の多い方から順に所定数の信号線、あるいは、故障が阻止された回数が所定回数を超える信号線を挿入候補信号線として抽出し、それを表すテストポイント候補リストを生成する（ステップＳ６）。
【００１１】
テストポイント挿入処理部１１０は、テストポイント候補リストが表す挿入候補信号線の中に、テストポイント挿入についての評価が行なわれていない信号線が存在するか否かを調べる（ステップＳ７）。
【００１２】
挿入候補信号線の中に、テストポイント挿入についての評価が行なわれていない信号線が存在する場合（ステップＳ７−ＹＥＳ）、テストポイント挿入処理部１１０は、挿入候補信号線の中から、１つの挿入候補信号線を挿入対象信号線として選択する（ステップＳ８）。
【００１３】
テストポイント挿入処理部１１０は、回路情報６が表す半導体集積回路の上記挿入対象信号線に対して、仮想的にテストポイントを挿入する（ステップＳ９）。
【００１４】
テストポイント挿入処理部１１０の故障シミュレーション処理部１１は、回路情報６に対して故障シミュレーションを実行する（ステップＳ１０）。
【００１５】
テストポイント挿入処理部１１０は、その故障シミュレーションの実行により得られる故障検出率が目標故障検出率に到達したか否かを調べる（ステップＳ１１）。
【００１６】
故障検出率が目標故障検出率に到達していない場合（ステップＳ１１−ＮＯ）、テストポイント挿入処理部１１０は、再度、ステップＳ７を実行する。
【００１７】
一方、故障検出率が目標故障検出率に到達した場合（ステップＳ１１−ＹＥＳ）、テストポイント挿入処理部１１０は、上記挿入対象信号線を表すテストポイント挿入リストを生成する（ステップＳ１２）。このとき、テストポイント挿入処理部１１０は、テストポイント候補リストが表す挿入候補信号線の中から、上記挿入対象信号線を表す情報を除外し、再度、ステップＳ７を実行する。
【００１８】
挿入候補信号線の中に、テストポイント挿入についての評価が行なわれていない信号線が存在しない場合（ステップＳ７−ＮＯ）、テストポイント挿入処理部１１０は、再度、ステップＳ３を実行する。
【００１９】
ここで、故障検出率が目標故障検出率に到達した場合（ステップＳ３−ＹＥＳ）、テストポイント挿入処理部１１０は、回路情報６が表す半導体集積回路の挿入候補信号線のうちの、テストポイント挿入リストが表す挿入対象信号線に対してテストポイントを挿入する（ステップＳ４）。
【００２０】
テストポイント挿入処理部１１０は、回路情報６に対してテストポイントを挿入した後の回路情報（複数のセルと複数の信号線とテストポイント）を第２の回路情報７（ネットリスト）として出力装置５に出力する（ステップＳ５）。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２０００−２５０９４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
しかし、従来の半導体集積回路の設計装置では、レイアウト後に生成される配線の長さである配線長や、配線が経由するビアホールの数であるビア数による故障率への影響が考慮されていない。例えば、第２の回路情報７（半導体集積回路の複数のセル、複数の信号線、テストポイント）に対してレイアウトが実行されたときに、配線長が基準よりも長い信号線、又は、ビア数が基準よりも多い信号線にも、テストポイントが配置されない場合がある。このため、配線長やビア数に起因する故障が検出できず、不良が出る確率（不良流出率）が理論値よりも大きくなってしまう場合がある。
【課題を解決するための手段】
【００２３】
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。
【００２４】
本発明の半導体集積回路の設計装置は、レイアウト処理部（２１）と配線情報処理部（２２）と故障シミュレーション処理部（２３）と重み付け処理部（２４）とテストポイント挿入部（２５）とを具備している。レイアウト処理部（２１）は、複数のセルと複数の信号線とを含む半導体集積回路の接続を表す回路情報である第１の回路情報（７）に基づいて複数のセル及び複数の信号線の配置を決定するレイアウトを実行する（Ｓ２１）。配線情報処理部（２２）は、第１の回路情報（７）に対してレイアウトを実行した後の回路情報である第２の回路情報（８）を生成すると共に、レイアウトの実行結果から、複数の信号線の各々の配線長と、複数の信号線の各々が経由するビアホールの数であるビア数とを抽出する（Ｓ２２）。故障シミュレーション処理部（２３）は、第２の回路情報（８）に対して故障シミュレーションを実行し、故障の検出ができないノードである故障未検出ポイントを抽出する（Ｓ２３）。重み付け処理部（２４）は、故障未検出ポイントのそれぞれに対して、配線長及びビア数を用いて重み付けを施し、故障未検出ポイントと、故障未検出ポイントに接続された信号線と、重み付けの結果を表す算出値とを対応付ける第１の重み付け結果リスト（３２）を生成する（Ｓ２４）。テストポイント挿入部（２５）は、第１の重み付け結果リスト（３２）が表す故障未検出ポイントの中から、算出値が設定値を超える故障未検出ポイントを第１の選択故障未検出ポイントとして選択し、第１の選択故障未検出ポイントに対してテストポイントを挿入する第１挿入処理を実行する（Ｓ２５）。
【発明の効果】
【００２５】
以上により、本発明の半導体集積回路の設計装置によれば、レイアウトを考慮して、配線長が長く、ビア数が多い第１の選択故障未検出ポイントにテストポイントを挿入する。このため、配線長やビア数に起因する不良の流出を削減することができる。
【図面の簡単な説明】
【００２６】
【図１】図１は、従来の設計システムの構成を示している。
【図２】図２は、従来の設計システムの動作（従来の半導体集積回路の設計方法）として、テストポイント挿入処理（ステップＳ１０１）を示すフローチャートである。
【図３】図３は、本発明の第１実施形態による設計システムの構成を示している。
【図４】図４は、本発明の第１実施形態による設計システムの動作（本発明の第１実施形態による半導体集積回路の設計方法）を示すフローチャートである。
【図５】図５は、図４の第１のテストポイント挿入処理（ステップＳ１０１）を示すフローチャートである。
【図６】図６は、図４の第２のテストポイント挿入処理（ステップＳ１０２）を示すフローチャートである。
【図７】図７は、レイアウト結果情報リスト２１を示している。
【図８Ａ】図８Ａは、配線長及びビア数を説明するための図である。
【図８Ｂ】図８Ｂは、配線長及びビア数を説明するための図であり、チップの配線層を上下に切った断面図である。
【図９】図９は、第１重み付け結果リスト３２を示している。
【図１０Ａ】図１０Ａは、ステップＳ３０を説明するための図である。
【図１０Ｂ】図１０Ｂは、ステップＳ３０を説明するための図である。
【図１１】図１１は、本発明の第２実施形態による設計システムの動作（本発明の第２実施形態による半導体集積回路の設計方法）として、テストポイント挿入処理（ステップＳ１０２）を示すフローチャートである。
【発明を実施するための形態】
【００２７】
以下に添付図面を参照して、本発明の実施形態による半導体集積回路の設計装置について詳細に説明する。
【００２８】
（第１実施形態）
図３は、本発明の第１実施形態による半導体集積回路の設計装置の構成を示している。その設計装置は、コンピュータ１と、入力装置４と、出力装置５とを具備している。出力装置５は、表示装置、印刷装置及び電子データの出力装置を含んでいる。コンピュータ１は、処理部２と、記憶部３とを備えている。処理部２は、テストポイント挿入処理部１１０（以下、第１のテストポイント挿入処理部１１０と称する）と、テストポイント挿入処理部２０（以下、第２のテストポイント挿入処理部２０と称する）とを備えている。
【００２９】
第２のテストポイント挿入処理部２０は、レイアウト処理部２１、配線情報処理部２２、故障シミュレーション処理部２３、重み付け処理部２４、テストポイント挿入部２５を含んでいる。
【００３０】
図４は、本発明の第１実施形態による半導体集積回路の設計装置の動作（本発明の第１実施形態による半導体集積回路の設計方法）を示すフローチャートである。
【００３１】
第１のテストポイント挿入処理部１１０は、第１のテストポイント挿入処理を実行する（ステップＳ１０１）。
【００３２】
図５は、図４の第１のテストポイント挿入処理（ステップＳ１０１）を示すフローチャートである。
【００３３】
前述のように、第１のテストポイント挿入処理部１１０の故障シミュレーション処理部１１は、複数のセルと複数の信号線とを含む半導体集積回路の接続を表す回路情報である回路情報６に対して故障シミュレーションを実行する（ステップＳ１、Ｓ２）。第１のテストポイント挿入処理部１１０は、その故障シミュレーションの実行により得られる故障検出率が目標故障検出率に到達していない場合、複数の信号線のうちの該当する信号線（挿入候補信号線）に対してテストポイント（以下、第１のテストポイントと称する）を挿入し（ステップＳ３、Ｓ６〜Ｓ１２、Ｓ４）、回路情報６に対して第１のテストポイントを挿入した後の回路情報（複数のセルと複数の信号線と第１のテストポイント）である回路情報７を出力する（ステップＳ５）。
【００３４】
この第１のテストポイント挿入処理は、従来の半導体集積回路の設計装置の動作（従来の半導体集積回路の設計方法）と同じであるため、その詳細については省略する。ただし、設計者が入力装置４の操作によって設計条件をコンピュータ１に与えるときに、設計条件は、パターンの数、目標故障検出率などに加えて、基準値として設定配線長、設定ＶＩＡ（ビア）数を含んでいるものとする。
【００３５】
第１のテストポイント挿入処理（ステップＳ１０１）が実行された後に、第２のテストポイント挿入処理部２０は、第２のテストポイント挿入処理を実行する（ステップＳ１０２）。
【００３６】
図６は、図４の第２のテストポイント挿入処理（ステップＳ１０２）を示すフローチャートである。
【００３７】
レイアウト処理部２１は、回路情報７に基づいて複数のセル及び複数の信号線の配置を決定するレイアウトを実行し、そのレイアウトの実行結果を生成する（ステップＳ２１）。
【００３８】
配線情報処理部２２は、後述の処理を実行する（ステップＳ２２）。
【００３９】
配線情報処理部２２は、回路情報７に対してレイアウトを実行した後の回路情報である回路情報８（ネットリスト）を生成する。レイアウト処理部２１は前述したレイアウトの実行時に、所定の性能を維持するために必要に応じて回路にバッファ、インバータ等を自動的に追加する場合があるため、回路情報８は回路情報７と異なる場合がある。
【００４０】
また、配線情報処理部２２は、レイアウトの実行結果から、複数の信号線の各々の配線長と、複数の信号線の各々がそれぞれ経由するビアホールの数であるビア数とを抽出し、図７に示されるようなレイアウト結果リスト３１を生成して記憶部３に格納する。レイアウト結果リスト３１は、複数の信号線の各々を表す情報と、複数の信号線の各々の配線長を表す情報と、複数の信号線の各々のビア数を表す情報とを対応付ける。
【００４１】
例えば、図８Ａに示されるように、複数のセルのうちのセル４１の出力端子とセル４２の入力端子は、複数の信号線のうちの信号線４０に接続されている。図８Ｂに示されるように、信号線４０の配線長は、複数段の配線層の長さの合計値を示し、信号線４０のビア数は、複数段の配線層の間に設けられるビアホールの数を示している。
【００４２】
配線情報処理部２２は、回路情報８とレイアウト結果リスト３１とを記憶部３に出力する。ここで、配線情報処理部２２は、その処理に負荷をかけないように、第１、２の配線情報処理部２２に分け、第１の配線情報処理部２２が、レイアウトの実行結果から、回路情報８を生成する処理を実行し、第２の配線情報処理部２２が、レイアウトの実行結果から、複数の信号線の各々の配線長と、複数の信号線の各々に生成されるビアの数であるビア数とを抽出してもよい。
【００４３】
故障シミュレーション処理部２３は、回路情報８と設計条件に基づいてＡＴＰＧ（Ａｕｔｏｍａｔｉｃ  ｔｅｓｔ  ｐａｔｔｅｒｎ  ｇｅｎｅｒａｔｉｏｎ）等によってテストパターンを発生し、このテストパターンに基づいて、回路情報８に対して故障シミュレーションを実行する。このとき、故障シミュレーション処理部２３は、故障シミュレーションを実行した結果として、回路情報８が表す半導体集積回路の故障を検出できないノード（信号あるいはネット）である故障未検出ポイントや故障検出率を求める（ステップＳ２３）。
【００４４】
ここで、故障検出率は回路内の故障のうちどの程度の故障を検出できるかを表す数値であり、
（故障検出数  ÷  故障定義数）×１００（％）
等として表される。ここで、故障検出数は用意されたテストパターンで検出できる故障の総数であり、故障定義数は起こりうる故障の総数を示す。故障定義数を決めるには故障モデルを決める必要があり縮退故障モデルが使われることが多い。
【００４５】
尚、故障検出率の算出方法については、必ずしも上記の算出方法によるものである必要はなく、任意の算出方法によるもので良い。
【００４６】
重み付け処理部２４は、レイアウト結果リスト３１が表す複数の信号線のうちの、故障未検出ポイントのそれぞれに対して、配線長及びビア数を用いて重み付けを施し、図９に示されるような第１の重み付け結果リスト３２を生成して記憶部３に格納する。例えば、配線長、ビア数をそれぞれＡ、Ｂとし、その重み付け係数をＫＡ、ＫＢとしたとき、重み付けの結果を表す算出値Ｃは、
Ｃ＝Ａ×ＫＡ＋Ｂ×ＫＢ
により算出される。第１の重み付け結果リスト３２は、故障未検出ポイントそれぞれのネット名と、その配線長、ビア数と、上述の算出値を表す情報とを対応付ける（ステップＳ２４）。
【００４７】
テストポイント挿入部２５は、第１の重み付け結果リスト３２が表す故障未検出ポイントの中から、算出値が所定の設定値を超える故障未検出ポイントを第１の選択故障未検出ポイントとして選択する。この場合、第１の選択故障未検出ポイントに接続された信号線の配線長が設定配線長より長い、又は、その信号線のビア数が設定ビア数より多い。テストポイント挿入部２５は、第１の選択故障未検出ポイントに対してテストポイント（第２のテストポイントと称する）を挿入する第１挿入処理を実行する（ステップＳ２５）。
【００４８】
故障シミュレーション処理部２３は、第１挿入処理が実行された後の回路情報である回路情報９に対して故障シミュレーションを実行し、故障未検出ポイント及び故障検出率を求める（ステップＳ２６）。このとき、故障シミュレーション処理部２３は、その故障シミュレーションの実行により得られる故障検出率が目標故障検出率に到達したか否かを調べる（ステップＳ２７）。
【００４９】
故障検出率が目標とする故障検出率に満たない場合（ステップＳ２７−ＮＯ）には、重み付け処理部２４は、回路情報９に対応する故障未検出ポイントのそれぞれに対応する配線長、ビア数、算出値とを対応付ける第２の重み付けリストを生成する。テストポイント挿入部２５は、第２の重み付け結果リストが表す故障未検出ポイントの中から、算出値が最も高いものから降順に所定数の故障未検出ポイントを第２の選択故障未検出ポイントとして選択する。テストポイント挿入部２５は、第２の選択故障未検出ポイントに対してテストポイント（第３のテストポイントと称する）を挿入する第２挿入処理を実行する（ステップＳ２８）。
【００５０】
故障シミュレーション処理部２３は、第２挿入処理が実行された後の回路情報である回路情報１０に対して故障シミュレーションを実行する（ステップＳ２６）。このとき、故障シミュレーション処理部２３は、その故障シミュレーションの実行により得られる故障検出率が目標故障検出率に到達したか否かを調べる（ステップＳ２７）。
【００５１】
故障検出率が目標故障検出率に到達していない場合（ステップＳ２７−ＮＯ）、再度、ステップＳ２８が実行される。
【００５２】
一方、故障検出率が目標とする故障検出率以上となった場合（ステップＳ２７−ＹＥＳ）には、テストポイント挿入部２５は、新たなテストポイントの挿入を行なわずに、次のステップであるＳ２９へ移行する。
【００５３】
配線情報処理部２２は、第１、２挿入処理が完了した後の回路情報９、１０（ネットリスト）と、テストポイントを挿入したノードのリストとを記憶部３に出力し、記憶部３はそれを記憶する（ステップＳ２９）。
【００５４】
尚、第２のテストポイント挿入処理（ステップＳ１０２）を実行した後にレイアウトを実行する場合には、回路変更しない既存のセルや信号線を極力動かさないように、ステップＳ３０として、セルの位置や配線情報を保つＥＣＯ（Ｅｎｇｉｎｅｅｒｉｎｇ  Ｃｈａｎｇｅ  Ｏｒｄｅｒ）で実施することが望ましい。
【００５５】
また、テストポイント挿入部２５は、ステップＳ２５、Ｓ２８において、複数のセルのうちの１つのセルの出力端子と他の１つのセルの入力端子との間の信号線に、テストポイントを挿入する場合、そのテストポイントを、１つのセルの出力端子の近傍ではなく、他の１つのセルの入力端子の近傍に設ける。これにより、配線長が長い、又はビア数の多い配線による故障を効果的に検出できる。
【００５６】
例えば、図１０Ａに示されるように、セル６１、６２は信号線５０に接続され、インバータ回路６３〜６５は、その入力がそれぞれ信号線５０〜５２に接続され、その出力がそれぞれ信号線５１〜５３に接続され、修正対象テストポイントがセル６１の出力端子の近傍に設けられているものとする。この場合、配線長やビア数に起因する不良の流出に対する削減効果が下がってしまう。そこで、図１０Ｂに示されるように、テストポイント挿入部２５は、修正対象テストポイントがセル６２の入力端子の近傍に設けられるように、信号線５０に代えて、故障未検出信号線５３に修正対象テストポイントを挿入する。
【００５７】
このように、テストポイント挿入部２５は、１つのセル６１と他の１つのセル６２との間の信号線上に複数段のインバータ回路６３〜６５が設けられ、１つのセル６１の出力端子と複数段のインバータ回路６３〜６５のうちの１段目のインバータ回路６３との間の第１の信号線５０に修正対象テストポイントが挿入される場合、ステップＳ２５、Ｓ２８において、第１の信号線５０に代えて、複数段のインバータ回路６３〜６５のうちの最終段目のインバータ回路６５と他の１つのセル６２の入力端子との間の第２の信号線５３に修正対象テストポイントを挿入する。
【００５８】
設計者は、記憶部３に記憶された回路情報９、１０、レイアウト等の情報の中から、設計者が必要とする情報を出力装置５より得ることができる。この場合、設計者は、設計者が必要とする情報を所定のフォーマットで出力するための出力指示を処理部２に与える。配線情報処理部２２は、出力指示に応じて、設計者が必要とする情報を記憶部３から読み出して、所定のフォーマットで出力装置５に出力する。
【００５９】
以上の説明により、本発明の第１実施形態による半導体集積回路の設計装置によれば、配線長やビア数に起因する不良の流出を削減することができる。
【００６０】
その理由として、回路情報７（半導体集積回路の複数のセル、複数の信号線、第１のテストポイント）に対してレイアウトが実行されたときに、配線長が基準よりも長い信号線、又は、ビア数が基準よりも多い信号線にも、バッファやインバータなどのセルが生成される場合がある。この場合、不良が出る確率（不良流出率）が理論値よりも大きくなってしまう。
【００６１】
そこで、本発明の第１実施形態による半導体集積回路の設計装置では、第２のテストポイント挿入処理部２０により、上述の第２のテストポイント挿入処理（ステップＳ１０２）が実行された場合、レイアウト後の故障未検出ポイントのそれぞれについて配線長とビア数で重み付けされた算出値が所定の値より大きい故障未検出ポイントにテストポイント（第２、３のテストポイント）を挿入する。このため、配線長やビア数に起因する故障を効果的に検出することができる。
【００６２】
尚、本発明の第１実施形態による半導体集積回路の設計装置では、第１のテストポイント挿入処理部１１０と第２のテストポイント挿入処理部２０とが別々の装置に設けられてもよい。
【００６３】
（第２実施形態）
図１１は、本発明の第２実施形態による設計システムの動作（本発明の第２実施形態による半導体集積回路の設計方法）として、テストポイント挿入処理（ステップＳ１０２）を示すフローチャートである。
【００６４】
第１実施形態では、ネットリストに基づいてテストポイントの挿入処理を行なう第１のテストポイント挿入処理（ステップＳ１０１）を行なった後に、レイアウト後の配線長とビア数に基づいてテストポイントの挿入を行なう第２のテストポイント挿入処理（ステップＳ１０２）を行なっていたが、第２実施形態では、第１のテストポイント挿入処理（ステップＳ１０１）が実施されない。
【００６５】
尚、第２実施形態については、第１実施形態から第１のテストポイント挿入処理（ステップＳ１０１）を削除したのみであるため、フローチャートの詳細な説明は省略する。
【００６６】
第２実施形態では、第１実施形態の第２のテストポイント挿入処理（ステップＳ１０２）と同様に、配線長の長い又はビア数の多い配線にはテストポイントが挿入されるため、第２実施形態においても配線長やビア数に起因する不良の流出を削減することができる。
【００６７】
（第３実施形態）
第１及び２実施形態による半導体集積回路の設計装置では、重み付け処理部２４にて故障未検出ポイントのそれぞれに対して、配線長及びビア数に基づいて重み付けを行なった後、テストポイント挿入部２５により、所定の設定値を超える故障未検出ポイントにテストポイントを挿入するものとしたが、第３実施形態として、重み付け処理部２４による重み付けを行なわずに、所定の設定値以上の配線長を有する故障未検出ポイントの全てにテストポイントを追加、更には所定値以上のビア数を経由する故障未検出ポイントの全てにテストポイントを追加する処理を行なっても良い。
【００６８】
第３実施形態においても、配線長の長い又はビア数の多い配線にはテストポイントが挿入されるため、配線長やビア数に起因する不良の流出を削減することができる。
【符号の説明】
【００６９】
１    コンピュータ、
２    処理部、
３    記憶部、
４    入力装置、
５    出力装置、
６    回路情報、
７    回路情報、
８    回路情報、
９    回路情報、
１０    回路情報、
１１    故障シミュレーション処理部、
２０    テストポイント挿入処理部（第２のテストポイント挿入処理部）、
２１    レイアウト処理部、
２２    配線情報処理部、
２３    故障シミュレーション処理部、
２４    重み付け処理部、
２５    テストポイント挿入部、
３１    レイアウト結果リスト、
３２    第１の重み付け結果リスト、
４０    信号線、
４１、４２    セル、
５０〜５３    信号線、
６１、６２    セル、
６３〜６５    インバータ回路、
１０１    コンピュータ、
１０２    処理部、
１０３    記憶部、
１０４    入力装置、
１０５    出力装置、
１１０    テストポイント挿入処理部（第１のテストポイント挿入処理部）
【図１】
2011164921.tif 000003
【図２】
2011164921.tif 000004
【図３】
2011164921.tif 000005
【図４】
2011164921.tif 000006
【図５】
2011164921.tif 000007
【図６】
2011164921.tif 000008
【図７】
2011164921.tif 000009
【図８Ａ】
2011164921.tif 000010
【図８Ｂ】
2011164921.tif 000011
【図９】
2011164921.tif 000012
【図１０Ａ】
2011164921.tif 000013
【図１０Ｂ】
2011164921.tif 000014
【図１１】
2011164921.tif 000015