JP2012099028A - 半導体集積回路の設計装置及び設計方法 - Google Patents

半導体集積回路の設計装置及び設計方法 Download PDF

Info

Publication number
JP2012099028A
JP2012099028A JP2010247903A JP2010247903A JP2012099028A JP 2012099028 A JP2012099028 A JP 2012099028A JP 2010247903 A JP2010247903 A JP 2010247903A JP 2010247903 A JP2010247903 A JP 2010247903A JP 2012099028 A JP2012099028 A JP 2012099028A
Authority
JP
Japan
Prior art keywords
inspection point
failure
fault
logic
inspection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2010247903A
Other languages
English (en)
Inventor
Tsunetomo Kamihira
常友 上平
Tsutomu Okawa
勉 大川
Akihiro Yamaji
晃弘 山路
Hiroyuki Sekiguchi
啓之 関口
Shintaro Nagai
慎太郎 永井
Yasunao Sakai
泰直 坂井
Natsuki Kurokawa
夏樹 黒川
Takuya Kobayashi
拓也 小林
Ryoji Shioda
良治 塩田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2010247903A priority Critical patent/JP2012099028A/ja
Publication of JP2012099028A publication Critical patent/JP2012099028A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】故障検出の向上に効果的な箇所に最小限の数を挿入することで、品質向上と低コストを両立できる半導体集積回路の設計装置を提供する。
【解決手段】論理回路のネットリストと、論理回路の中で故障検出が不可能な論理ゲートの情報、又は故障検出処理が打ち切られた論理ゲートの情報を用いて、検査点の挿入を行う。故障検出が不可能な箇所では、故障検出を妨げる論理ゲート若しくは端子又はハードマクロである故障検出障害箇所から見て論理段数が最も少ない位置に存在する未検出論理に検査点を挿入する。また、故障検出処理が打ち切られた箇所では、組合せ回路に信号を送信するフリップフロップと、その組合せ回路から出力される信号を受信するフリップフロップ間の論理経路において、組合せ回路に信号を送信するフリップフロップの出力端子から最も論理段数が少ない位置にある未検出箇所に接続する信号線に検査点を挿入する。
【選択図】図2

Description

本発明は、半導体集積回路の設計装置及び設計方法に関する。
半導体集積回路(以下「LSI」という)においては、ATPG(Automatic Test Pattern Generator)ツールを用いて自動でテストパタンを生成し、このテストパタンをテスタでLSIに印加し、その結果を観測することで、検査が行われる。検査の結果、故障が検出されない場合、LSIは製品として出荷される。
デジタル論理回路である場合、ほとんどの回路に関し、スキャン設計といわれるテスト容易化設計(DFT)が可能である。その回路構成を用いて、EDA(Electronic Design Automation)ツールによりテストパタンをATPGで生成することが可能である。大多数のLSIはこの設計方法を取り入れている。この設計方法は、一般にスキャン設計といわれる設計手法である。スキャン設計として広く用いられているものは、LSIを構成する論理セルの端子が1又は0にショートした状態を、縮退故障モデルとして用いたATPGである。
生成したテストパタンで検査できる回路の割合を表す数値として故障検出率がある。この故障検出率は、LSIを構成する全論理セルの端子数の2倍の値(全故障数)に対する、故障検出が可能な論理セルの端子数の2倍の値(検出故障数:DT)の割合で求められる。ここで、2倍の値が用いられるのは、縮退故障モデルでは、前述した通り、1と0の2通りのモデルがあるからである。故障検出率はLSIの品質を表す1つの指標になっており、一般的に98〜99%前後の値となることが多い。
スキャン設計では、理想的に、全てのフリップフロップ(FF)をスキャンFF(SFF)化する必要がある。SFFは、FFに比べ、データ入力端子にセレクタが接続されており、LSIの実動作を行う場合のデータ入力端子(D)とテスト動作を行う場合のデータ入力端子(DT)をセレクタの選択端子で切り替える構成を有する。
セレクタの選択信号は、スキャンイネーブル(SE)といわれる信号で制御される。SFFでは、スキャンチェーンといわれる、SFFのDT端子と出力端子が互いに接続されたチェーン構成にする必要がある。初段のSFFのDT端子に接続されているLSIの端子(SI)と終端のSFFの出力端子に接続されているLSIの端子(SO)がテスタに接続され、テストデータの印加と観測を行うことで、検査が行われる。
テストのシーケンスでは、まず、テスタからSEを値1にして、テスト動作を行う信号を選択し、SIにテストパタンを印加すると、クロックに同期してテストデータがDT経由でSFFに取り込まれ、順次スキャンチェーンをシリアルシフトしていく。全てのSFFにテストデータがシフトし終わった後、SEを値0にすることで、LSIの実動作を行う信号経路が選択され、その時にクロックを印加することで、テストデータに対する実動作信号経路の応答結果を、その実動作信号経路の先にあるSFFで取り込む。次に、SEを値1にすることで、取り込んだ応答結果をスキャンチェーンでシフトしてSOに出力し、テスタで観測することで、検査が行われる。
ATPGツールでは、一般的に、前述したようなテスト動作モード(以下「スキャンモード」という)時に、ブラックボックス(以下「BB」という。特に、アナログマクロセルやメモリマクロセル等の、デジタル記述できないマクロセル)やノンスキャンフリップフロップ(以下「NFF」という。スキャン化できないFF)に対し、スキャンチェーンを用いても任意の値を設定することができない。このため、BBやNFFの出力が不定値(0か1かわからない値)となる。
この場合、ATPGツールは、該当するBBやNFFの出力端子から先が、1又は0にショートした故障検出が不可能(以下「AU故障」という)と判断する。また、スキャンモード設定のために1又は0に固定されるような外部端子では、論理の入力値も固定してしまう。例えば、外部端子が値1に固定されている場合でかつ、ORゲートに接続されているような場合、ORゲートの出力信号は値1にしかならないので、その出力信号が値1にショートした故障検出はAU故障と判断する。
また、論理回路が複雑である等の理由で、SFFまで論理の応答結果が伝播し難く、故障の観測ができない場合、ATPGは故障検出の処理を打ち切る(以下「UO故障」という)。また同様に、論理回路が複雑である等の理由で、故障を検出するための制御が難しい場合も、ATPGは故障検出の処理を打ち切る(以下「UC故障」という)。
このように、AU故障、UO故障、UC故障は、未検出故障といわれ、テストパタンの生成ができないので、テスタでの検査ができない箇所(未検出故障箇所)となる。また、これらの未検出故障と等価な未検出故障はEQ故障といわれ、AU、UO、UC故障箇所に接続するバッファやインバータ等の入力や出力端子等がこれに相当する。この箇所に存在するEQ故障も未検出故障となる。
一般に、ATPGツールは、LSI中の論理の端子に関し、故障検出ができたか否かの情報を出力することができる。さらに、EQ故障を含め、AU、UC、UO等の故障リストといわれるリストにそれぞれ分けて出力することができる。
一方、LSIの大規模化が進み、全故障(以下「FU」という)数が数千万箇所から数億箇所以上と膨大な数になっている。これは、回路規模の増大により論理セル数も増加するためである。このような大規模LSIでATPGを行い、算出した故障検出率は98〜99%程度となる。つまり、未故障検出率も1〜2%あり、仮に全故障を1億個とすると、100〜200万個の未検出故障、つまり、テスタで検査できない箇所が存在し、LSIの品質を低下させる原因となっている。
このため、これらの未検出故障箇所に検査点を挿入して故障検出率を上げて未検出故障数を減らし、テスタで検査できる箇所を増やすための、検査点挿入の手法が提案されている。ここで、検査点とは、故障検出ができない、あるいは難しい箇所に、SFF等を挿入することで、故障検出を可能とする回路である。この検査点の挿入は、広く一般に用いられるが、故障検出ができない箇所が、数千〜数万箇所、又は、前述したように100万箇所になる場合が大多数であるので、効率的に検査点を挿入する手法が提案されている。
特許文献1,2では、スキャンモード設定時の端子固定により、出力の値が固定される回路に検査点を挿入する方法や、ATPGの限界を超える論理箇所に検査点を挿入する方法が提案されている。
特開2006−259820号公報 特開2008−9827号公報
特許文献1,2に示すような、スキャンモード設定時の端子固定箇所あるいはその周辺に単に検査点を挿入する方法では、検査点までの経路の値を観測するのみである。また、固定値が論理を固定することで、固定の影響が後段に伝播して故障検出の制御ができなくなる点の考慮が不足しているので、故障検出できる箇所は限られてしまう。
また、ATPGの限界は、ATPGツールが市販ツールの場合、その限界を知ることは現実的ではなく、仮に故障検出を打ち切った箇所のことだとすると、打ち切った箇所全てに検査点を挿入することは、コスト的に現実的ではない。また、ATPGツールによっては、ATPGの限界値を上げる設定が可能なものもあるが、その場合、テストパタン数を多くすることで故障検出をしようとするので、テストコストが上昇する可能性が高い。
また、未検出故障は、一般に、故障検出不可能、故障検出処理の打ち切り等により発生するが、その中でも特に故障検出不可能な故障の原因となる、NFF、BB等への対処が不足している。このため、従来技術で検出できるようになる未検出箇所は少なく、大多数の未検出故障箇所の故障検出はできないと推定される。
本発明の目的は、故障検出の向上に効果的な箇所に最小限の数を挿入することで、品質向上と低コストを両立できる半導体集積回路の設計装置及び設計方法を提供することである。
本発明の請求項1に記載の設計装置は、複数の論理ゲートの端子が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置であって、前記論理回路のネットリストを入力するネットリスト入力部と、前記論理回路のうち、故障検出が不可能な論理ゲートの端子の故障と前記故障検出が不可能な論理ゲートの端子と等価な故障をAU故障の集合としてその情報を入力する故障情報入力部と、前記AU故障の集合のうち、前記AU故障が同一信号経路上に複数個存在する場合、故障検出を妨げる論理ゲート若しくは端子又はハードマクロである故障検出障害箇所の出力属性端子が接続する方向の信号経路上で、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第1検査点挿入部と、前記検査点が挿入されたネットリストを出力するネットリスト出力部と、を備える。
この構成により、同一パス上に複数個存在するAU故障の中でも、AU故障の発生源に一番近い箇所にあるAU故障に検査点を挿入できるので、1つの検査点で多くのAU故障を検出できるようになる。これは、AU故障の箇所はATPG不可能な箇所であって、ATPGツールがテストデータを設定できないからであるが、検査点を挿入してテストデータの設定ができるようになると、検査点が挿入されたAU故障の後段の論理に対し、最初のSFFまでの間の論理に対してテストデータが設定でき、その値に基づく応答結果を後段のSFFで観測することで、故障検出の可能性が飛躍的に高まり、多くの未検出故障箇所を故障検出できるようになるからである。
本発明の請求項2に記載の設計装置は、複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置であって、前記論理回路のネットリストを入力するネットリスト入力部と、前記論理回路のうち、故障検出制御ができないために故障検出処理が打ち切られた論理ゲートの端子の故障と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUC故障の集合としてその情報を入力する故障情報入力部と、前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数の少ない位置のUC故障に接続される信号線に検査点を挿入する第1検査点挿入部と、前記検査点が挿入されたネットリストを出力するネットリスト出力部と、を備える。
この構成により、同一パス上に複数個存在するUC故障においては、UC故障は後段に影響を及ぼすが、一番送信側のフリッププロップに近いUC箇所に検査点を挿入できるので、1つの検査点で多くのUC故障を検出できるようになる。これは、UC故障の箇所がATPG処理を打ち切った箇所であり、ATPGツールが既存のSFFのみへのテストデータの設定では、故障検出のための制御が困難なためであるが、UC箇所へ検査点を挿入してテストデータの設定ができるようになると、UC箇所の後段方向の論理回路に対し、最初のSFFまでの間の論理回路に対してテストデータを設定でき、その値に基づく応答結果を後段のSFFで観測することで、故障検出の可能性が高まり、多くの未検出故障箇所を故障検出できるようになるからである。
本発明の請求項3に記載の設計装置は、複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置であって、前記論理回路のネットリストを入力するネットリスト入力部と、前記論理回路のうち、故障観測ができないために故障検出処理が打ち切られた論理ゲートの端子の故障と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUO故障の集合としてその情報を入力する故障情報入力部と、前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路から出力される信号を受信するフリップフロップのデータ入力端子から一番論理段数の少ない位置のUO故障に接続される信号線に検査点を挿入する第1検査点挿入部と、前記検査点が挿入されたネットリストを出力するネットリスト出力部と、を備える。
この構成により、同一パス上に複数個存在するUO故障に対して、UO故障は後段に影響を及ぼすが、一番受信側のフリップフロップに近いUO箇所に検査点を挿入するので、最小限の検査点で多くのUO故障を検出できるようになる。これは、UO箇所は、ATPG処理を打ち切った箇所であり、ATPGツールが既存のSFFのみへのテストデータの設定では、故障検出のための観測が困難なためであるが、UO箇所に検査点を挿入してテストデータの設定ができるようになると、UO箇所の前段方向の論理回路に対し、最初のSFFまでの間の論理回路に対してテストデータに基づく応答結果を検査点で観測することで、故障検出の可能性が高まり、多くの未検出故障箇所を故障検出できるようになるからである。
本発明の請求項4に記載の設計装置は、請求項1に記載の設計装置であって、さらに、前記検査点に関して挿入すべき数値の情報を入力する数値情報入力部と、複数存在する前記AU故障の各々に関して、前記AU故障とこれに等価とされる未検出故障の和を算出する未検出故障和算出部と、を備え、前記第1検査点挿入部は、前記和の大きい順に前記AU故障に検査点を挿入する。
この構成により、請求項1の効果に加え、挿入する検査点数を設定するので、検査点が占有するチップ面積の概算が把握できる。このため、LSIのチップ面積に影響の無い範囲、つまりコストアップしない範囲での検査点の挿入が可能となる。また、あるAU故障とこれと等価とされる未検出故障の数を足し算し、その数値(和)が大きい順に検査点を挿入するので、1つの検査点で検出できる数が大きい順に検査点を挿入できることになり、許されたチップ面積増の範囲で検査点の挿入効果を最大にすることができる。
本発明の請求項5に記載の設計装置は、請求項1又は4に記載の設計装置であって、さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力部と、前記AU故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断部と、前記AU故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入部と、を備える。
この構成により、請求項1の効果に加え、検査点の挿入禁止箇所や論理回路の指定が可能となるので、例えば、LSI設計でスキャン化しない方針のブロックへの検査点挿入を防ぐことができる。また別のケースとして、テストモードを決定しているブロック(TMDBK)は、通常、外部端子(テストモード決定端子)で固定値を印加することでテストモードを決めている。外部端子数が少ない等の理由で、テストモード決定端子が別のブロックの入力端子等と兼用して設計せざるをえない場合がある。その場合、テストモード決定端子からTMDBK間の信号経路と、TMDBK内に検査点を挿入すると、スキャンテスト時に印加されスキャンチェーンをシフトしていくデータによっては、スキャンテストモードから外れてしまう不具合が発生する可能性がある。しかし、テストモード決定端子からTMDBK間のパスと、TMDBK内を検査点挿入禁止として設定することで、この不具合を防ぐことができる。
本発明の請求項6に記載の設計装置は、請求項1又は4に記載の設計装置であって、前記論理回路の検査点挿入許可情報を入力する許可情報入力部と、前記AU故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断部と、前記AU故障の集合の情報のうち、前記検査点挿入許可情報に含まれないAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入部と、を備える。
この構成により、請求項1の効果に加え、検査点の挿入許可箇所や論理回路の指定が可能となる。テストモードを決定しているブロック(TMDBK)は、通常、外部端子(テストモード決定端子)で固定値を印加することでテストモードを決めている。外部端子数が少ない等の理由で、テストモード決定端子が別のブロックの入力端子等と兼用して設計せざるをえない場合がある。その場合、テストモード決定端子からTMDBK間のパスと、TMDBK内に検査点を挿入すると、スキャンテスト時に印加されスキャンチェーンをシフトしていくデータによっては、スキャンテストモードから外れてしまう不具合が発生する可能性がある。しかし、検査点挿入許可ブロックとして、これらの論理回路を指定しないことで、この不具合を防ぐことができる。
本発明の請求項7に記載の設計装置は、請求項1、4、5及び6のいずれか一項に記載の設計装置であって、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力部と、前記検査点挿入箇所と、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップとの間の論理経路において、前記検査点挿入箇所と、前記フリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障との論理経路間に存在する、AU故障数と前記AU故障と等価な故障数の総和を求める総故障数和導出部と、前記総故障数和導出部によって求められた故障数の総和を、検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する故障検出率算出部と、前記検査点挿入後の故障検出率を出力する故障検出率出力部と、を備える。
この構成により、請求項1の効果に加え、つぎのような効果がある。すなわち、検査点挿入箇所から受信フリップフロップまでの間にあるAU故障数と、それと等価な故障の数を足し合わせて、検査点挿入によりその数の未検出故障箇所が検出できると推測し、その推定数を検査点挿入前の検出数と足し合わせ、この足し合わせた後の数を故障検出数として、総故障数との割合で故障検出率を概算することができる。これにより、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
本発明の請求項8に記載の設計装置は、請求項7に記載の設計装置であって、さらに、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障に接続される信号経路に関して、前記故障検出障害箇所への信号経路ではない信号経路でのAU故障数と前記AU故障と等価な故障数の総和を算出する総故障数算出部と、前記総故障数算出部によって算出された総和に、前記総故障数和導出部で求めた総和を加算する総和加算部と、を備え、前記故障検出率算出段は、前記総和加算部が求めた値を、前記検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する。
この構成により、請求項7で算出された故障数と、故障発生源への信号経路ではない信号経路でのAU故障数とAU故障と等価な故障数の総和を、加算した数値を計算し、検査点挿入によりその加算した数値の未検出故障箇所が検出できると推測し、その推定数を検査点挿入前の検出数と足し合わせ、この足し合わせた後の数を故障検出数として、総故障数との割合で故障検出率を概算することができる。これにより、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。このように、故障検出率として、請求項7では最低限の推測値であり、請求項8では最大限の推測値となる。
本発明の請求項9に記載の設計装置は、請求項2に記載の設計装置であって、さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力部と、複数存在する前記UC故障の各々に関して、前記UC故障と前記UC故障と等価とされる未検出故障数の和を算出する第1未検出故障数和算出部と、前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UC故障に検査点を挿入する第2検査点挿入部と、を備えた。
この構成により、請求項2の効果に加え、挿入する検査点数を設定できるので、検査点が占有するチップ面積の概算が可能となる。このため、LSIのチップ面積に影響の無い範囲、つまりコストアップしない範囲での検査点の挿入が可能となる。また、あるUC故障とそれと等価とされる未検出故障の数を足し算し、その数値が大きい順に検査点を挿入するので、1つの検査点で検出できる数が大きい順に検査点を挿入できることになり、許されたチップ面積増の範囲で検査点の挿入効果を最大にすることができる。
本発明の請求項10に記載の設計装置は、請求項2又は9に記載の設計装置であって、さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力部と、前記UC故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断部と、前記UC故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入部と、を備える。
この構成により、請求項2の効果に加え、検査点の挿入禁止箇所(ブロック)や論理回路の指定が可能となるので、例えば、LSI設計でスキャン化しない方針のブロックや論理回路への検査点挿入を防ぐことができる。また別のケースとして、テストモードを決定しているブロック(TMDBK)は、通常、外部端子(テストモード決定端子)で固定値を印加することでテストモードを決めているが、外部端子数が少ない等の理由で、テストモード決定端子が別のブロックの入力端子等と兼用して設計せざるをえない場合がある。その場合、テストモード決定端子からTMDBK間のパスと、TMDBK内に検査点を挿入すると、スキャンテスト時に印加されスキャンチェーンをシフトしていくデータによっては、スキャンテストモードから外れてしまう不具合が発生する可能性がある。しかし、テストモード決定端子からTMDBK間の信号経路と、TMDBK内を検査点挿入禁止論理として設定することで、この不具合を防ぐことができる。また、タイミング余裕の無いブロック等への挿入も防ぐことができる。
本発明の請求項11に記載の設計装置は、請求項2又は9に記載の設計装置であって、さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力部と、前記UC故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断部と、前記UC故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入部と、を備える。
この構成により、請求項2の効果に加え、検査点の挿入許可箇所(ブロック)や論理回路の指定が可能となる。前述した請求項10の効果と類似するが、テストモードを決定しているブロック(TMDBK)は、通常、外部端子(テストモード決定端子)で固定値を印加することでテストモードを決めている。外部端子数が少ない等の理由で、テストモード決定端子が別のブロックの入力端子等と兼用して設計せざるをえない場合がある。その場合、テストモード決定端子からTMDBK間のパスと、TMDBK内に検査点を挿入すると、スキャンテスト時に印加されスキャンチェーンをシフトしていくデータによっては、スキャンテストモードから外れてしまう不具合が発生する可能性がある。しかし、検査点挿入許可ブロックとして、これらの論理を指定しないことで、この不具合を防ぐことができる。
本発明の請求項12に記載の設計装置は、請求項3に記載の設計装置であって、さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力部と、複数存在する前記UO故障の各々に関して、前記UO故障と前記UO故障と等価とされる未検出故障数の和を算出する未検出故障数和算出部と、前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UO故障に検査点を挿入する第2検査点挿入部と、を備える。
この構成により、請求項3の効果に加え、挿入する検査点数を設定できるので、検査点が占有するチップ面積の概算がわかる。このため、LSIのチップ面積に影響の無い範囲、つまりコストアップしない範囲での検査点の挿入が可能となる。また、あるUO故障とそれと等価とされる未検出故障の数を足し算し、その数値が大きい順に検査点を挿入するので、1つの検査点で検出できる数が大きい順に検査点を挿入できることになり、許されたチップ面積増の範囲で検査点の挿入効果を最大にすることができる。
本発明の請求項13に記載の設計装置は、請求項3又は12に記載の設計装置であって、さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力部と、前記UO故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断部と、前記UO故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入部と、を備える。
この構成により、請求項3及び12の効果に加え、検査点の挿入禁止箇所(ブロック)や論理回路の指定が可能となる。したがって、例えば、LSI設計でスキャン化しない方針のブロックや論理回路、タイミング余裕の無いブロックや信号経路等への検査点挿入を防ぐことができる。
本発明の請求項14に記載の設計装置は、請求項3又は12に記載の設計装置であって、さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力部と、前記UO故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断部と、前記UO故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入部と、を備える。
この構成により、請求項3及び12の効果に加え、検査点の挿入許可箇所(ブロック)や論理回路の指定が可能となる。前述した請求項13の効果と類似するが、検査点挿入許可ブロックとして、スキャン化する方針のブロックや、タイミングに問題が無いブロックを指定することで、意図しないブロックや信号経路への挿入を防ぐことができる。
本発明の請求項15に記載の設計装置は、請求項2、9、10及び11のいずれか一項に記載の設計装置であって、さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力部と、前記検査点を挿入したUC故障と前記UC故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出部と、前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出部と、を備える。
この構成により、請求項2及び9の効果に加え、検査点挿入箇所から受信フリップフロップ間にあるUC故障と、それと等価な故障の数を足し合わせて、検査点挿入によりその数の未検出故障箇所が検出できると推測し、その推定数を検査点挿入前の検出数と足し合わせ、この足し合わせた後の数を故障検出数として、総故障数との割合で故障検出率を概算することができる。これにより、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
本発明の請求項16に記載の設計装置は、請求項3、12、13及び14のいずれか一項に記載の設計装置であって、さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力部と、前記検査点を挿入したUO故障と前記UO故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出部と、前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出部と、を備える。
この構成により、請求項3及び12の効果に加え、検査点挿入箇所から受信フリップフロップ間にあるUO故障と、それと等価な故障の数を足し合わせて、検査点挿入によりその数の未検出故障箇所が検出できると推測し、その推定数を検査点挿入まえの検出数と足し合わせる、この足し合わせた後の数を故障検出数として、総故障数との割合で故障検出率を概算することができる。これにより、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
このような設計装置を構築することで、より短い設計期間でミス無く、検査点を挿入することが可能となる。
本発明の請求項17に記載の半導体集積回路の設計装置の設計方法は、複数の論理ゲートの端子が信号線で接続された論理回路に検査点を挿入する設計装置の設計方法であって、前記設計装置が、前記論理回路のネットリストを入力するネットリスト入力ステップと、前記論理回路のうち、故障検出が不可能な論理ゲートの端子の故障と前記故障検出が不可能な論理ゲートの端子と等価な故障をAU故障の集合としてその情報を入力する故障情報入力ステップと、前記AU故障の集合のうち、前記AU故障が同一信号経路上に複数個存在する場合、故障検出を妨げる論理ゲート若しくは端子又はハードマクロである故障検出障害箇所の出力属性端子が接続する方向の信号経路上で、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第1検査点挿入ステップと、前記検査点が挿入されたネットリストを出力するネットリスト出力ステップと、を有する。
この構成により、同一パス上に複数個存在するAU故障の中でも、AU故障の発生源に一番近い箇所にあるAU故障に検査点を挿入できるので、1つの検査点で多くのAU故障を検出できるようになる。
本発明の請求項18に記載の半導体集積回路の設計装置の設計方法は、複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する設計装置の設計方法であって、前記設計装置が、前記論理回路のネットリストを入力するネットリスト入力ステップと、前記論理回路のうち、故障検出制御ができないために故障検出処理が打ち切られた論理ゲートの端子と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUC故障の集合としてその情報を入力する故障情報入力ステップと、前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数の少ない位置のUC故障に接続される信号線に検査点を挿入する第1検査点挿入ステップと、前記検査点が挿入されたネットリストを出力するネットリスト出力ステップと、を有する設計方法。
この構成により、同一パス上に複数個存在するUC故障においては、UC故障は後段に影響を及ぼすが、一番送信側のフリッププロップに近いUC箇所に検査点を挿入できるので、1つの検査点で多くのUC故障を検出できるようになる。
本発明の請求項19に記載の半導体集積回路の設計装置の設計方法は、複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する設計装置の設計方法であって、前記設計装置が、前記論理回路のネットリストを入力するネットリスト入力ステップと、前記論理回路のうち、故障観測ができないために故障検出処理が打ち切られた論理ゲートの端子の故障と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUO故障の集合としてその情報を入力する故障情報入力ステップと、前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路から出力される信号を受信するフリップフロップのデータ入力端子から一番論理段数の少ない位置のUO故障に接続される信号線に検査点を挿入する第1検査点挿入ステップと、前記検査点が挿入されたネットリストを出力するネットリスト出力ステップと、を有する。
この構成により、同一パス上に複数個存在するUO故障に対して、UO故障は後段に影響を及ぼすが、一番受信側のフリップフロップに近いUO箇所に検査点を挿入するので、最小限の検査点で多くのUO故障を検出できるようになる。
本発明の請求項20に記載の設計装置の設計方法は、請求項17に記載の設計方法であって、前記設計装置が、さらに、前記検査点に関して挿入すべき数値の情報を入力する数値情報入力ステップと、複数存在する前記AU故障の各々に関して、前記AU故障とこれに等価とされる未検出故障の和を算出する未検出故障和算出ステップと、を有し、前記第1検査点挿入ステップでは、前記和の大きい順に前記AU箇所に検査点を挿入する。
この構成により、挿入する検査点数を設定するので、検査点が占有するチップ面積の概算が把握できる。
本発明の請求項21に記載の設計装置の設計方法は、請求項17又は20に記載の設計方法であって、前記設計装置が、さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力ステップと、前記AU故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断ステップと、前記AUの集合の情報のうち、前記検査点挿入禁止情報に含まれるAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入ステップと、を有する。
この構成により、検査点の挿入禁止箇所や論理回路の指定が可能となるので、例えば、LSI設計でスキャン化しない方針のブロックへの検査点挿入を防ぐことができる。
本発明の請求項22に記載の設計装置の設計方法は、請求項17又は21に記載の設計方法であって、前記設計装置が、前記論理回路の検査点挿入許可情報を入力する許可情報入力ステップと、前記AU故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断ステップと、前記AU故障の集合の情報のうち、前記検査点挿入許可情報に含まれないAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入ステップと、を有する。
この構成により、検査点の挿入許可箇所や論理回路の指定が可能となる。
本発明の請求項23に記載の設計装置の設計方法は、請求項17、20、21及び22のいずれか一項に記載の設計方法であって、前記設計装置が、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力ステップと、前記検査点挿入箇所と、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップとの間の論理経路において、前記検査点挿入箇所と、前記フリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障との論理経路間に存在する、AU故障数と前記AU故障と等価な故障数の総和を求める総故障数和導出ステップと、前記総故障数和導出ステップで求められた故障数の総和を、検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する故障検出率算出ステップと、前記検査点挿入後の故障検出率を出力する故障検出率出力ステップと、を有する。
この構成により、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
本発明の請求項24に記載の設計装置の設計方法は、請求項23に記載の設計方法であって、前記設計装置が、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障に接続する信号経路に関して、前記故障検出障害箇所への信号経路ではない信号経路でのAU故障数と前記AU故障と等価な故障数の総和を算出する総故障数算出ステップと、前記総故障数算出ステップで算出された総和に、前記総故障数和導出ステップで求めた総和を加算する総和加算ステップと、を有し、前記故障検出率算出ステップでは、前記総和加算ステップで求めた値を、前記検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する。
この構成により、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
本発明の請求項25に記載の設計装置の設計方法は、請求項18に記載の設計方法であって、前記設計装置が、さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力ステップと、複数存在する前記UC故障の各々に関して、前記UC故障と前記UC故障と等価とされる未検出故障数の和を算出する第1未検出故障数和算出ステップと、前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UC故障に検査点を挿入する第2検査点挿入ステップと、を有する。
この構成により、許されたチップ面積増の範囲で検査点の挿入効果を最大にすることができる。
本発明の請求項26に記載の設計装置の設計方法は、請求項18又は25に記載の設計方法であって、前記設計装置が、さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力ステップと、前記UC故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断するステップと、前記UC故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、を有する。
この構成により、検査点の挿入禁止箇所(ブロック)や論理回路の指定が可能となるので、例えば、LSI設計でスキャン化しない方針のブロックや論理回路への検査点挿入を防ぐことができる。
本発明の請求項27に記載の設計装置の設計方法は、請求項18又は25に記載の設計方法であって、前記設計装置が、さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力ステップと、前記UC故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断ステップと、前記UC故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、を有する。
この構成により、検査点の挿入許可箇所(ブロック)や論理回路の指定が可能となる。
本発明の請求項28に記載の設計装置の設計方法は、請求項19に記載の設計方法であって、前記設計装置が、さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力ステップと、複数存在する前記UO故障の各々に関して、前記UO故障と前記UO故障と等価とされる未検出故障数の和を算出する未検出故障数和算出ステップと、前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UO故障に検査点を挿入する第2検査点挿入ステップと、を有する設計方法。
この構成により、挿入する検査点数を設定できるので、検査点が占有するチップ面積の概算がわかる。
本発明の請求項29に記載の設計装置の設計方法は、請求項19又は28に記載の設計方法であって、前記設計装置が、さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力ステップと、前記UO故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断ステップと、前記UO故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、を有する。
この構成により、検査点の挿入禁止箇所(ブロック)や論理回路の指定が可能となる。
本発明の請求項30に記載の設計装置の設計方法は、請求項19又は28に記載の設計方法であって、前記設計装置が、さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力ステップと、前記UO故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断ステップと、前記UO故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、を有する。
この構成により、検査点の挿入許可箇所(ブロック)や論理回路の指定が可能となる。
本発明の請求項31に記載の設計装置の設計方法は、請求項18、25、26及び27のいずれか一項に記載の設計方法であって、前記設計装置が、さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力ステップと、前記検査点を挿入したUC故障と前記UC故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出ステップと、前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出ステップと、を有する。
この構成により、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
本発明の請求項32に記載の設計装置の設計方法は、請求項19、28、29及び30のいずれか一項に記載の設計方法であって、前記設計装置が、さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力ステップと、前記検査点を挿入したUO故障と前記UO故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出ステップと、前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出ステップと、を有する。
この構成により、通常、数十時間の処理時間を要するATPGを実施しなくても、検査点挿入後のおおよその故障検出率の算出が可能となる。
本発明によれば、故障検出の向上に効果的な箇所に最小限の数を挿入することで、品質向上と低コストを両立できる。
第1の実施形態におけるLSI設計装置の構成を示すブロック図 検査点を挿入した後のネットリストとして出力される論理回路の例を示す図 第1の実施形態の適用前の図2に相当する論理回路の例を示す図 検査点の構成を示す回路図 自動検査点挿入処理の手順を示すフローチャート 第2の実施形態の適用前のネットリストである論理回路の例を示す図 一般的な検査点の構成を示す回路図 自動検査点挿入処理の手順を示すフローチャート 第3の実施形態の適用前のネットリストである論理回路の例を示す図 一般的な検査点の構成を示す回路図 自動検査点挿入処理の手順を示すフローチャート (A),(B)は第4の実施形態の適用前のネットリストである論理回路の例を示す図 自動検査点挿入処理の手順を示すフローチャート 第5の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図 自動検査点挿入処理の手順を示すフローチャート 自動検査点挿入処理の手順を示すフローチャート 第7の実施形態におけるLSI設計装置の構成を示すブロック図 自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャート 第5の実施形態に適用された場合の自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャート 第6の実施形態に適用された場合の自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャート (A),(B)は第9の実施形態の適用前のネットリストである論理回路を示す図 自動検査点挿入処理の手順を示すフローチャート 第10の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図 自動検査点挿入処理の手順を示すフローチャート 自動検査点挿入処理の手順を示すフローチャート (A),(B)は第12の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図 自動検査点挿入処理の手順を示すフローチャート 第13の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図 自動検査点挿入処理の手順を示すフローチャート 自動検査点挿入処理の手順を示すフローチャート 自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャート 自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャート
本発明に係る半導体集積回路の設計装置及び設計方法の実施形態について、図面を参照して説明する。以下説明する半導体集積回路の設計装置は、ネットリストとして出力される論理回路に検査点を自動で挿入するLSI設計装置に適用される。なお、以下説明する用語「論理回路」は、ANDやOR、NOT等といった少なくとも1つの論理ゲートを含む論理演算回路を意味する。
(第1の実施形態)
図1は、第1の実施形態におけるLSI設計装置の構成を示すブロック図である。LSI設計装置50は、ATPG部51と、未検出故障リスト生成部52と、入力部53と、始点リスト生成部54と、パスリスト生成部55と、TPIリスト生成部56と、検査点挿入部57と、出力部58とを備える。
ATPG部51は、対象となる論理回路のネットリストと、検出したい故障のリストを入力すると、その故障を検出するためのテストパタンを自動的に生成する。未検出故障リスト生成部52は、ATPG処理結果から、未検出故障リストを生成する。ここでは、未検出故障リストとして、AU(UC、UO)故障リストが生成される。入力部53は、検査点挿入前のネットリスト及び未検出故障リストを入力する。
始点リスト生成部54は、入力されたAU(UC、UO)故障リストのうち、AU(UC、UO)故障だけを抽出してAU(UC、UO)始点リストを生成する。パスリスト生成部55は、トレースを行い、このトレース結果から、AU(UC、UO)始点から終点までの論理ゲートの接続関係をパスリストとして生成する。
TPIリスト生成部56は、論理パス中の最終のAU(UC、UO)箇所までトレースを行い、そのAU(UC、UO)箇所の論理ゲートと端子をTPIリストとして生成する。検査点挿入部57は、端子に接続されている信号線に検査点を挿入する。出力部58は、検査点挿入後のネットリストを出力する。
図2は、検査点を挿入した後のネットリストとして出力される論理回路の例を示す図である。図2に示す論理回路100は、複数の論理ゲートの端子が信号線で接続された論理回路であり、ブラックボックス(以下「BB」という)BLK1、組合せ回路や順序回路で構成される論理回路BLK2、非スキャン化されたフリップフロップ(以下「NFF」という)等を含む論理回路BLK3、スキャンモード設定用論理回路151、及びIO端子IO1を有する。
IO端子IO1は、スキャンモード状態に設定する信号であって、かつ、論理回路BLK2へ信号を印加する外部入力端子である。
論理回路BLK2を構成する論理回路は、スキャンフリップフロップ(以下「SFF」という)(1)10と、3入力の論理ゲート11と、1入力の論理ゲート12と、1入力の論理ゲート13と、本実施形態の適用後に挿入される検査点1(以下「TP1」という)14と、本実施形態の適用後に挿入される検査点2(以下「TP2」という)15と、2入力の論理ゲート16と、1入力の論理ゲート17とを有する。各論理ゲートはそれぞれ信号線で接続されている。
論理回路BLK3を構成する論理回路は、1入力の論理ゲート18と、本実施形態の適用後に挿入される検査点3(以下「TP3」という)19と、NFF110と、2入力の論理ゲート111と、1入力の論理ゲート112と、SFF(2)113と、1入力の論理ゲート114と、SFF(3)115とを有する。
図2の各論理回路の中に記載されている、符号AU1〜AU3は、ATPGツール(ATPG部51)でAU故障と判断された論理ゲートの端子である。また、符号EQ1〜EQ20は入力側のAU故障と等価、つまりAU故障と同じであると判断された論理ゲートの端子である。なお、「AU故障」とは、該当する論理ゲートの端子の故障(0又は1にショートしたと仮定した故障)を検出するためのテストパタンを生成することができない故障のことである。
図3は、第1の実施形態の適用前の図2に相当する論理回路の例を示す図である。図3に示す論理回路450は、複数の論理回路が信号線で接続された論理回路である。論理回路450は、論理回路BLK401と、組合せ回路や順序回路で構成される論理回路BLK402と、NFF等を含む論理回路BLK403と、スキャンモード設定用論理回路451と、IO端子40とを有する。
IO端子40は、スキャンモード状態に設定する信号を論理回路BLK402に印加するための外部入力端子である。
論理回路BLK402を構成する論理回路は、SFF(1)400、3入力の論理ゲート401、1入力の論理ゲート402、1入力の論理ゲート403、2入力の論理ゲート406、及び1入力の論理ゲート407である。これらの論理ゲートはそれぞれ信号線で接続されている。
論理回路BLK403を構成する論理回路は、1入力の論理ゲート408、NFF4010、2入力の論理ゲート4011、1入力の論理ゲート4012、SFF(2)4013、1入力の論理ゲート4014、及びSFF(3)4015である。これらの論理ゲートはそれぞれ信号線で接続されている。
図3の各論理ゲートの中に記載されている、符号AU1〜AU3は、ATPGツールでAU故障と判断された論理ゲートの端子である。また、符号EQ1〜EQ20は、入力側のAU故障と等価、つまりAU故障と同じであると判断された論理ゲートの端子である。
まず、図3の論理回路に対するATPG処理から説明する。ATPGツール(ATPG部51)は、SFF(2)4013やSFF(3)4015等のスキャンチェーン接続されているSFF(図3では、スキャンチェーンの記載は省略されている)に対し、スキャンチェーン経由で任意の値を設定し、その設定値に応じた論理出力をSFF(1)400で取り込み、その値をスキャンチェーン経由で出力する。この出力された論理出力を外部出力端子で観測することで、SFF(2)4013やSFF(3)4015からSFF(1)400までの間の論理パス上の論理ゲートの故障検出が行われる。
しかし、スキャンチェーンに接続されていないブラックボックスBLK401、NFF4010、及びATPGを実施するスキャンモードに固定されたIO端子40については、任意の値を設定することができない。このため、ブラックボックスBLK401とNFF4010から不定値が、また、IO端子40から固定値が出力される。したがって、ブラックボックスBLK401、NFF4010、IO端子40とSFF400との間の論理パスには、故障検出ができない箇所ができてしまう。
ATPGツールは、ブラックボックスBLK401に接続されている論理ゲート403の入力端子をAU故障と判断し、出力端子をAU故障と等価のEQ故障と判断する。さらに、ATPGツールは、論理ゲート403の出力に接続される論理ゲート402や、その論理ゲート402が接続されている論理ゲート401の端子(LSIでは、論理ゲート401の入力ゲート)に対してもAU故障と等価のEQ故障と判断する。
また、IO端子40は、スキャンモードに設定するために、値1に固定されなければならない設計の場合、値1に固定されると、例えば論理ゲート401がORゲートの場合、ORゲートの出力は値1にしかならない。このため、ATPGツールは、その出力信号が値1にショートしたような故障検出が不可能であると判断する。
さらに、NFF4010は、スキャンチェーンに接続されていないので、その出力が不定となる。したがって、論理ゲート408及び論理ゲート407はAU故障又はEQ故障となる。
また、SFF(2)4013とSFF(3)4015はSFFであるので、ATPGツールは、値を任意に設定して、故障検出可能なはずである。しかし、論理ゲート406がORゲートの場合、NFF4010が論理ゲート407を経由して接続されているORゲートの入力には不定な信号が印加されるため、その出力は値1にしかならず、値1にショートしている故障を検出することができない。
このように、BB、NFF、固定された外部IO端子があることで、図3の例では、本来の故障検出すべき箇所のうち、半分程度しか故障検出することができないので、回路品質が大きく低下することになる。これは、LSI製造過程で、配線や論理ゲートの入力ゲートや出力箇所に発生する可能性がある、物理的な欠陥を検査するためのテストパタンを生成することができなくなることに繋がり、LSI内の該当部の検査ができないことから不良品を出荷してしまう可能性が高くなるからである。
次に、図2を用いて第1の実施形態のLSI設計装置について説明する。論理回路の構成は、検査点14、検査点15及び検査点19以外、図3と同様である。
LSI設計装置50は、図3のネットリストを用いてATPG処理を行い、その結果をもとに、BB、IO端子、NFFにおいて、一番論理段数の少ないAU故障箇所の信号線に対し、検査点を挿入する。そして、検査点を挿入した後の論理回路は図2に示すとおりである。
ATPG処理では、図3の説明と同様、スキャンモード時に、図2の論理ゲート13の入力端子がAU故障と判断される。これは、BBから出力される値が不定なためである。ここで、論理ゲート13の入力端子が接続されている、実動作経路116に検査点を挿入する。
図4は、検査点の構成を示す回路図である。検査点には、一般的に図4に示すような構成の回路が使用される。検査点14はSFF181とセレクタ182で主に構成される。なお、検査点15、19も同様の構成を有する。
SFF181には、スキャンチェーンが接続され、テストデータが入力されるDT端子、データを入力するD端子、クロック端子、及び受信したデータを出力するQ端子が設けられる。SFF181では、SFF自身の故障を検出するために、D端子はQ端子に接続されている。
セレクタ182には、実動作の信号経路2が接続される0端子とSFF181のQ端子が接続される1端子、及び実動作の信号経路1が接続されるY端子が設けられる。
検査点14は、破線で示されており、検査点挿入前、実動作の信号経路1と信号経路2は直結されているので、実動作の信号経路に割り込むように挿入される。
検査点を挿入する場合、検査点14では、図4における実動作の信号経路1を実動作経路116に接続し、図4における実動作の信号経路2を実動作経路117に接続する。スキャンモード時、検査点のセレクト信号は、スキャンモードで値1になるので、セレクタ182の1端子側を選択することで、ブラックボックス(BB)BLK1からの不定値を遮断する。
この時、検査点14のSFF181には、スキャンインからATPGツールが設定した値が入力され、この値がセレクタの1端子を経由して実動作の信号経路1、つまり、実動作経路116に供給される。この検査点14の挿入により、ATPGツールは、任意の値を論理ゲート13に設定できるようになるので、論理ゲート13はAU故障ではなくなるとともに、論理ゲート12はEQ故障でなくなり、故障検出が可能な状況になる。
本実施形態では、ブラックボックス(BB)BLK1に一番近いAU故障箇所に検査点を挿入することで、2つの論理ゲートの故障検出が可能となる。実際のLSIでは、論理ゲート13,12に相当する論理段数が数十段になる場合もあるので、1つの検査点で数十段分の故障検出が可能となる。したがって、このような検査点の挿入は、製品の品質向上につながり、かつ、チップ面積の点で非常に効率的である。
また、IO端子IO1は、スキャンモードに設定するために、値1に固定される。AU故障と判定された論理ゲート11のAU3端子も、IO端子から一番論理段数の少ないAU故障箇所の信号線に検査点15を挿入することで、故障検出可能な状態となる。すなわち、ATPGツールが検査点15内のSFF経由で、論理ゲート11のAU3端子に対し、任意に値を設定することで、論理ゲート11は故障検出可能な状態となる。
なお、このとき、スキャンモード設定用論理回路151に検査点を挿入しないのは、検査点をスキャンモード設定用論理回路151に挿入すると、ATPGツールの設定によって、ATPGモードの設定から外れてしまうことを防ぐためである。この詳細については、後述する実施形態において説明する。
また、検査点19も、検査点15と同様、NFF110に一番近いAU故障箇所の論理ゲート18の信号線に挿入することで、効率的に故障検出が可能になる。これにより、論理ゲート16のEQ8端子は、ATPGツールで任意の値に設定できるようになった。したがって、論理ゲート16のEQ6端子が接続されている論理ゲート111,112,114の論理出力は、SFF113とSFF115で設定された任意の値により値を論理ゲート16の先まで伝播できるようになり、これらの故障検出が可能な状態となった。
このように、検査点14,15,19の挿入により、論理ゲート11の入力値はATPGツールで任意に設定できるようになったことで、確実に全ての論理ゲートの出力値がSFF10に伝播されるようになり、その値を外部端子で観測できるようになった。
また、検査点はAU故障の発生源に最も近い箇所に挿入されるので、検査点の挿入数に対し、検出が可能になった未検出故障の割合が最大となる。このため、コスト面や品質面で非常に有利である。本実施形態の検査点の挿入を用いない場合、これらのAUやEQのどこかに検査点を挿入することになり、かつ、複数の検査点を挿入する可能性もある。したがって、効率的な検査点の挿入とはならない。
LSI設計装置50は、検査点挿入部57により、この検査点を挿入したネットリストを出力し、次の工程で使用する。
図5は、自動検査点挿入処理の手順を示すフローチャートである。LSI設計装置50は、まず、予めネットリスト(図3参照)に対してATPG処理を行い、未検出故障リストを生成しておく(ステップS1)。ネットリストとは、LSIを構成する複数の論理ゲートとそれらを接続する信号線等で構成される。また、未検出故障リストとは、故障検出が不可能な論理ゲートとその端子群のリスト(AU故障リスト)や、故障検出に必要な値の観測が困難であるために故障検出処理を打ち切った論理ゲートとその端子群のリスト(UO故障リスト)や、故障検出に必要な論理ゲートの入力値の制御が困難であるために故障検出処理を打ち切った論理ゲートとその端子群のリスト(UC故障リスト)等である。これらのリストは、「AU インスタンス名/端子名」、「UO インスタンス名/端子名」や「UC インスタンス名/端子名」という記述の羅列である。
LSI設計装置50は、ネットリストと、ステップS1で生成した未検出故障リストを入力する(ステップS2)。ここでは、未検出故障リストとして、AU故障リストを指す。
LSI設計装置50は、入力されたAU故障リスト中に存在する、AU故障とそれと等価な故障(EQ故障)のうち、AU故障だけを抽出し、AU始点リストを生成する(ステップS3)。ここで、EQ故障は、故障リスト中に「EQ インスタンス名/端子名」等で記載されている。
LSI設計装置50は、AU始点リストを用いてパスリストを生成する(ステップS4)。このパスリストの生成では、AU始点リストに記載されている、1つのAUの論理ゲートの端子について、まず、その端子の入力方向へのトレースを行う。このトレースは、SFF、NFF、BB、IO端子(ここでは、それらを終点という言葉で表す)に到達するまで行われる。LSI設計装置50は、このトレース結果から、AU始点から終点までの論理ゲートの接続関係をパスリストとして生成する。LSI設計装置50は、AU始点リストに記載されている残りのAU全てに関しても、同様にトレースを行い、パスリストに記載する。
LSI設計装置50は、AUの発生源の特定を行う(ステップS5)。まず、LSI設計装置50は、パスリスト内の1つのパスに関して、AU始点の論理ゲートの端子から、その端子の入力方向へのトレースを最初のAU発生源まで行う。ここで、AU発生源とは、NFF、BBやIO端子である。
LSI設計装置50は、ステップS5でトレースした論理パスを、逆方向に、つまりAU発生源の論理ゲートの端子の出力方向にトレースする(ステップS6)。このトレースは、論理パス中の最初のAU箇所まで行われる。LSI設計装置50は、そのAU箇所の論理ゲートと端子をTPIリストとして生成する。
LSI設計装置50は、ステップS5,6のトレースがパスリスト中の全てのパスで行われたか否かを判断する(ステップS7)。全てのパスでトレースが行われていない場合、LSI設計装置50は、再度、ステップS5、S6でパスリストに記載されているパスに対してトレースを行う。一方、全てのパスでトレースが行われている場合、LSI設計装置50は、TPIリストを完成させたとして、ステップS8の処理に進む。
LSI設計装置50は、TPIリストに記載されているAU箇所の論理ゲートと端子に関し、端子に接続されている信号線に検査点を挿入する(ステップS8)。そして、LSI設計装置50は、検査点挿入後のネットリストを出力する(ステップS9)。この後、LSI設計装置50は、自動検査点挿入処理を終了する。
ここで、本フローチャートにおける効率化の観点について説明を追加する。通常、AU故障は、LSIの規模にもよるが、数万箇所から数十万箇所と非常に多く存在する。これら全ての箇所に検査点を挿入することは、LSIのコスト面から現実的ではない。
このため、検査点の挿入を最小限にし、かつ、故障検出能力を最大限に高めることが重要となる。また、AU故障箇所が多いため、検査点挿入箇所を特定するためのコンピュータ処理の負荷も非常に重くなる。これら検査点挿入の効率化、及び処理の軽減を実現するための方法として、ステップS5、S6の処理について説明を追加する。
まず、ステップS5の処理では、処理負荷の軽減について説明する。AU論理ゲートは、LSIの規模によって数万箇所から数十万箇所になるが、その1つ1つを入力方向にトレースすると、膨大な処理時間とメモリが必要となり、コンピュータ処理が現実的ではなくなる。
このため、まず、AU論理ゲートの端子の入力方向へトレースを行う際、トレースした論理ゲートの端子には、プログラム内でフラグを立てることにする。
次に、残りのパスリスト中のパスに関してトレースを行うが、その際、フラグが立っている論理ゲートの端子がAU始点の場合、そのAU始点のトレースを行わない。また、トレース過程でフラグが立っている論理ゲートの端子が出現した場合、2つの方法がある。1つは、そのフラグから入力方向のトレースを破棄し、現在のトレースを有効としてAU発生源までトレースし、AUの原因となっている論理ゲートの端子を特定する。
もう1つは、既存のフラグから入力方向へのトレース結果と、既存のトレースを発見した現在のトレース結果を足し合わせることで、AU発生源を特定する。このことにより、ある論理パスに重複するAU論理ゲートの端子があった場合、重複するトレースを行わないので、処理負荷を軽減しつつ、AU発生源を特定することができる。
また、ステップS6の処理では、検査点挿入の効率化について説明する。通常、論理パス中にAU箇所がある場合、その影響を受け、AU箇所に接続する出力側の後段の論理ゲートもAUとなり、それが、次の後段へと続いていく。あるAU論理ゲートからAU発生源までの論理ゲートの経路中に、複数のAU論理ゲートが存在する場合、一番、AU発生源に近いAU論理ゲートの端子に接続されている信号線に検査点を挿入し、故障を検出することで、そのAU論理ゲートの後段に存在するAU論理ゲートも故障を検出できる可能性が出てくる。
このことにより、少ない検査点の挿入で、多くの未検出箇所を検出できるようになる。検査点挿入後のネットリストで、再度、ATPG処理を行ったとき、仮に前記論理経路にAU論理ゲートが残っている場合、再度、本実施形態のステップを実行することで、未検出故障を検出できるようになる。
(第2の実施形態)
第2の実施形態のLSI設計装置の構成は第1の実施形態と同様であるので、その説明を省略する。
図6は、第2の実施形態の適用前のネットリストである論理回路の例を示す図である。図6に示す論理回路200は、信号受信のスキャンフリップフロップ(以下「受信SFF」という)201と、2入力の論理ゲート202と、1入力の論理ゲート203と、3入力の論理ゲート204と、2入力の論理ゲート205と、2入力の論理ゲート206と、組合せ論理回路群207と、信号送信のスキャンフリップフロップ(以下「送信SFF」という)208とを有する。このように、論理回路200は、組み合わせ回路及び順序回路から構成される。また、図6には、検査点209の挿入箇所が示されている。
また、UC故障は、論理ゲート206の入力端子において制御性が悪いために故障検出が打ち切られた故障(以下「UC」という)を表す。また、EQ故障は各論理ゲートの入力端子と出力端子でUC故障と等価な故障の箇所を表す。
LSI設計装置50において、検査点挿入前の図6のネットリストを用いてATPG処理を実施すると、組合せ論理回路群207中の何らかの要因で論理ゲート206の入力端子の故障検出のための制御性が悪く、ATPG処理が打ち切られる。この場合、論理ゲート206の入力端子はUC故障と判断される。
また、論理ゲート206の出力端子から論理ゲート202の入力端子への信号経路の各論理ゲートの入力端子と出力端子はEQ故障と判断され、故障検出ができない。このような場合、LSI設計装置50は、検査点挿入前のネットリストと、このATPG処理の際に出力される故障リストを用いて、送信SFF208の出力端子Qから最も論理段数が少ないUC故障の端子が接続されている信号線に検査点を挿入する。
図7は、一般的な検査点の構成を示す回路図である。検査点209は、SFF252とセレクタ251で構成される。SFF252には、スキャンチェーンが接続され、テストデータが入力されるDT端子、実動作データが入力されるD端子、クロック端子、及び受信したデータを出力するQ端子が設けられる。
なお、D端子は、実動作の信号経路2に接続され、その故障を観測する。また、セレクタ251には、実動作の信号経路2が接続される0端子、SFF252のQ端子が接続される1端子、及び実動作の信号経路1が接続するY端子が設けられる。
実動作の信号経路1、2は検査点挿入前に直結されているので、検査点209を実動作の信号経路に割り込ませる。すなわち、検査点209を挿入する場合、実動作の信号経路1、2を検査点209の信号線の箇所に割り込ませるようにする。
スキャンモード時、検査点209のセレクト信号はスキャンモードで値1になるので、LSI設計装置50は、セレクタ251の1端子側を選択することで、組合せ論理群7からの信号を遮断する。
検査点209のSFF252には、スキャンインからATPGツールが設定する値が入力されると、この値がセレクタ251の1端子を経由して実動作の信号経路1、つまり、論理ゲート206に供給される。この検査点の挿入により、ATPGツールは、任意の値を論理ゲート206に設定できるようになるので、制御性が良くなる。したがって、UC故障自体が無くなり、論理ゲート206から論理ゲート202の等価な故障であるEQ故障も無くなる。
ATPGツールが設定した値に応じた論理ゲートの出力値は、受信SFF201で取り込まれ、スキャンチェーンに出力され、外部端子で観測される。これにより、故障検出が可能になる。
本実施形態のLSI設計装置によれば、送信SFF208のQ端子から論理段数が一番少ない箇所にあるUC箇所の信号線に1つの検査点209を挿入することで、8つの論理の故障検出が可能となる。したがって、製品の品質向上に繋がり、かつ、チップ面積の点で非常に効率的である。一方、本実施形態の検査点の挿入を用いない場合、これらのUC箇所やEQ箇所のどこかに検査点を挿入することになり、かつ、複数の検査点を挿入する可能性もあるので、効率的な検査点の挿入とはならない。
この後、LSI設計装置50は、この検査点209を挿入したネットリストを出力し、次の工程で使用する。
図8は、自動検査点挿入処理の手順を示すフローチャートである。LSI設計装置50は、まず、予めネットリスト(図6参照)に対してATPG処理を行い、未検出故障リストを生成しておく(ステップS11)。
ここで、ネットリストとは、LSIを構成する複数の論理回路とそれらを接続する信号線等で構成される。また、未検出故障リストとは、故障検出が不可能な論理ゲートとその端子群のリスト(AU故障リスト)や、故障検出に必要な値の観測が困難であるために故障検出処理を打ち切った論理ゲートとその端子群のリスト(UO故障リスト)や、故障検出に必要な論理ゲートの入力値の制御が困難であるために故障検出処理を打ち切った論理ゲートとその端子群のリスト(UC故障リスト)等である。これらのリストは、「AU インスタンス名/端子名」、「UO インスタンス名/端子名」や「UC インスタンス名/端子名」という記述の羅列である。
LSI設計装置50は、ネットリストと、ステップS11で生成した未検出故障リストを入力する(ステップS12)。ここでは、未検出故障リストとして、UC故障リストの場合を示す。LSI設計装置50は、入力されたUC故障リスト中に存在する、UC故障数とそれと等価な故障(EQ故障)数を合算し、その数が多い順にUC故障のみを抽出してUC始点リストを生成する(ステップS13)。ここで、EQ故障は、故障リスト中に「EQ インスタンス名/端子名」等で記載されている。
LSI設計装置50は、UC始点リストを用いてパスリストを生成する(ステップS14)。このパスリストの生成では、UC始点リストに記載されている、1つのUCの論理ゲートの端子について、その端子の入力方向へ送信SFF間までのトレースを行う。ここで、送信SFFは、具体的に図6の送信SFF208である。LSI設計装置50は、このトレース結果から、トレース結果をUC始点から送信SFFまでの論理ゲートの接続関係をパスリストとして生成する。LSI設計装置50は、UC始点リストに記載されている残りのUC故障全てに関しても、同様にトレースを行い、パスリストに記載する。
LSI設計装置50は、パスリスト内の1つのパスに関し、送信SFF208の出力端子に論理段数が最も少ない箇所にあるUCの論理(つまり、最も送信SFFに近いUC論理)の端子をTPIリストとして抽出する(ステップS15)。
LSI設計装置50は、ステップS15でトレースがパスリスト中の全てのパスで行われたか否かを判断する(ステップS16)。全てのパスでトレースが行われていない場合、LSI設計装置50は、再度、ステップS15でパスリストに記載されているパスに対してトレースを行う。一方、全てのパスでトレースが行われている場合、LSI設計装置50は、TPIリストを完成させたとして、ステップS17の処理に進む。
LSI設計装置50は、TPIリストに記載されているUC箇所の論理ゲートと端子に関し、端子に接続されている信号線に検査点を挿入する(ステップS17)。そして、LSI設計装置50は、検査点挿入後のネットリストを出力する(ステップS18)。この後、LSI設計装置50は、自動検査点挿入処理を終了する。
ここで、本フローチャートにおける効率化の観点について説明を追加する。ステップS15では、通常、論理パス中にUC故障がある場合、その影響を受けて、UC故障に接続される出力側の後段の論理ゲートもUC故障となり、それが、次の後段へと続いていく。これらの故障をEQ故障という。あるUC論理ゲートから送信SFFまでの論理経路中に、複数のUC論理ゲートが存在する場合、送信SFFに最も近いUC論理ゲートの端子に接続されている信号線に検査点を挿入し、故障を検出することで、そのUC論理ゲートの後段に存在するEQ故障も検出できる可能性が出てくる。
また、ステップS13では、UC故障数とそれと等価なEQ故障数を合算し、その数が多い順にUC故障のみを抽出してUC始点リストを生成する。これは、前述したステップS15における効率化の説明で示したように、多くのEQ故障を従えるUC故障箇所に検査点を挿入することで、1つの検査点で多くのEQ故障が効率的に検出できるようになる。
このように、ステップS13、S15を使うことで、少ない検査点の挿入で、多くの未検出箇所を検出できるようになる。検査点挿入後のネットリストで再度ATPG処理を行ったときに、仮に前記論理経路にUC論理が残っている場合、再度、本実施形態のステップ処理を実行することで、未検出故障を検出できるようになる。
(第3の実施形態)
第3の実施形態のLSI設計装置の構成は第1の実施形態と同様であるので、その説明を省略する。
図9は、第3の実施形態の適用前のネットリストである論理回路の例を示す図である。図9に示した論理回路300は、信号受信のスキャンフリップフロップ(以下「受信SFF」という)301と、2入力の論理ゲート302と、1入力の論理ゲート303と、3入力の論理ゲート304と、2入力の論理ゲート305と、2入力の論理ゲート306と、組合せ論理回路群307と、信号送信のスキャンフリップフロップ(以下「送信SFF」という)308とを有する。図9には、検査点309の挿入箇所が示されている。
また、UO故障は、論理ゲート306の入力端子において観測性が悪いために故障検出が打ち切られた故障(以下「UO」ともいう)を表す。また、EQ故障は、各論理ゲートの入力端子と出力端子でUO故障と等価な故障を表す。
LSI設計装置50において、検査点挿入前の図9のネットリストを用いてATPG処理を実施すると、組合せ論理回路群307中の何らかの要因で論理ゲート302の入力端子の故障検出のための観測性が悪く、ATPG処理が打ち切られる場合を示す。この場合、論理ゲート302の入力端子はUO故障と判断される。
また、論理ゲート303の出力端子から論理ゲート302の入力端子への信号経路の各論理ゲートの入力端子と出力端子はEQ故障と判断され、故障検出ができない。このような場合、LSI設計装置50は、検査点挿入前のネットリストと、このATPG処理の際に出力される故障リストを用いて、受信SFF301の入力端子Dから最も論理段数が少ないUOの端子が接続されている信号線に検査点309を挿入する。
図10は、一般的な検査点の構成を示す回路図である。検査点309は、SFF351で構成される。SFF351には、スキャンチェーンが接続され、テストデータが入力されるDT端子、実動作データが入力されるD端子、クロック端子、受信したデータをスキャンチェーンに出力するQ端子が設けられる。
なお、D端子は、実動作の信号経路に接続され、その故障を観測する。検査点309は、図10の破線で囲まれた部分であり、SFF351のD端子は実動作信号経路に接続される。図9において検査点309を挿入する場合、図10の実動作の信号経路を、検査点309の信号線の箇所に直結するように挿入する。
この検査点の挿入により、検査点309のSFF351が実動作の信号経路の値をD端子経由で取り込むことで、スキャンチェーン経由で観測できるようになり、UO故障は無くなる。また、論理ゲート303から論理ゲート306の等価故障のEQ故障も、この検査点309のSFF351で観測できるようになるので、無くなる。
本実施形態のLSI設計装置によれば、受信SFF301のD端子から論理段数が一番少ない箇所にあるUO箇所の信号線に1つの検査点を挿入することで、7つの論理ゲートの故障検出が可能となる。したがって、製品の品質向上に繋がり、かつ、チップ面積の点で非常に効率的である。本実施形態の検査点の挿入を用いない場合、これらのUOやEQのどこかに検査点を挿入することになり、かつ、複数の検査点を挿入する可能性もあるので、効率的な検査点の挿入とはならない。
そして、LSI設計装置50は、この検査点を挿入したネットリストを出力し、次の工程で使用する。
図11は、自動検査点挿入処理の手順を示すフローチャートである。LSI設計装置50は、まず、予めネットリスト(図9参照)に対してATPG処理を行い、未検出故障リストを生成しておく(ステップS21)。
ネットリストとは、LSIを構成する複数の論理ゲートとそれらを接続する信号線等で構成される。また、未検出故障リストとは、故障検出が不可能な論理ゲートとその端子群のリスト(AU故障リスト)や、故障検出に必要な値の観測が困難であるために故障検出処理を打ち切った論理ゲートとその端子群のリスト(UO故障リスト)や、故障検出に必要な論理ゲートの入力値の制御が困難であるために故障検出処理を打ち切った論理ゲートとその端子群のリスト(UC故障リスト)等である。これらのリストは、「AU インスタンス名/端子名」、「UO インスタンス名/端子名」や「UC インスタンス名/端子名」という記述の羅列である。
LSI設計装置50は、ネットリストと、ステップS21で生成した未検出故障リストを入力する(ステップS22)。ここでは、未検出故障リストとして、UO故障リストを指す。LSI設計装置50は、入力されたUO故障リスト中に存在する、UO故障数とそれと等価な故障(EQ故障)数を合算し、その数が多い順にUO故障のみを抽出してUO始点リストを生成する(ステップS23)。ここで、EQ故障は、故障リスト中に「EQ インスタンス名/端子名」等で記載されている。
LSI設計装置50は、UO始点リストを用いてパスリストを生成する(ステップS24)。このパスリストの生成では、UO始点リストに記載されている、1つのUO故障の論理ゲートの端子について、その端子の入力方向へ送信SFF間までのトレースを行う。ここで、送信SFFは具体的に図9の送信SFF308であり、受信SFFは図9の受信のSFF301である。LSI設計装置50は、このトレース結果をUO始点から送信SFFまでの論理ゲートの接続関係をパスリストとして生成する。LSI設計装置50は、UO始点リストに記載されている残りのUO故障全てに関しても、同様にトレースを行い、パスリストに記載する。
LSI設計装置50は、パスリスト内の1つのパスに関し、送信SFF308の出力端子に論理段数が最も多い箇所にあるUO故障の論理ゲート(つまり、最も受信SFFに近いUO故障の論理ゲート)の端子をTPIリストとして抽出する(ステップS25)。LSI設計装置50は、ステップS25でトレースがパスリスト中の全てのパスで行われたか否かを判断する(ステップS26)。全てのパスでトレースが行われていない場合、LSI設計装置50は、再度、ステップS25でパスリストに記載されているパスに対してトレースを行う。一方、全てのパスでトレースが行われている場合、LSI設計装置50は、TPIリストを完成させたとして、ステップS27の処理に進む。
LSI設計装置50は、TPIリストに記載されているUO箇所の論理ゲートと端子に関し、端子に接続されている信号線に検査点309を挿入する(ステップS27)。そして、LSI設計装置50は、検査点挿入後のネットリストを出力する(ステップS28)。この後、LSI設計装置50は、自動検査点挿入処理を終了する。
ここで、本フローチャートにおける効率化の観点について説明を追加する。ステップS25では、通常、論理パス中にUO故障がある場合、その影響を受けて、UO箇所に接続する入力側の前段の論理ゲートもUO故障となり、それが、次の前段へと続いていく。これらの故障をEQ故障という。
あるUO故障の論理ゲートから受信SFFまでの論理経路中に、複数のUO故障の論理ゲートが存在する場合、受信SFFに最も近いUO故障の論理ゲートの端子に接続されている信号線に検査点を挿入し、故障を検出することで、そのUO故障の論理ゲートの前段に存在するEQ故障も検出できる可能性がでてくる。
また、ステップS23では、UO故障数とそれと等価なEQ故障数を合算し、その数が多い順にUO故障のみを抽出してUO始点リストを生成する。これは、前述したステップS25における効率化の説明で示したように、多くのEQ故障を従えるUO故障箇所に検査点を挿入することで、1つの検査点で多くのEQ故障が効率的に検出できるようになる。
このように、ステップS23、S25を使うことで、少ない検査点の挿入で、多くの未検出箇所を検出できるようになる。検査点挿入後のネットリストで再度ATPG処理を行ったときに、仮に前記論理経路にUO故障の論理ゲートが残っている場合、再度、本実施形態のステップ処理を実行することで、未検出故障を検出できるようになる。
(第4の実施形態)
第4の実施形態におけるLSI設計装置の構成は第1の実施形態と同様である。第4の実施形態では、入力部53を介して、検査点に関して挿入すべき数値の情報が入力可能である。
図12(A)及び図12(B)は、第4の実施形態の適用前のネットリストである論理回路の例を示す図である。図12(A)に示す論理回路500は、信号受信のスキャンフリップフロップ(以下「受信SFF」という)501と、2入力の論理ゲート502と、1入力の論理ゲート503と、3入力の論理ゲート504と、2入力の論理ゲート505と、2入力の論理ゲート506と、組合せ論理回路群507と、信号送信のスキャンフリップフロップ(以下「送信SFF」という)508とを有する。図12(A)には、検査点509の挿入箇所が示されている。
第4の実施形態のLSI設計装置50は、第1の実施形態をもとに、挿入可能な検査点(制御用フリップフロップ)に制限がある場合や、少ない検査点で実施したい場合に、効果が大きい箇所から順に入れることを可能とする。さらに、LSI設計装置50は、検査点に関して挿入すべき数値の情報を入力し、複数存在するAU箇所の各々に関して、AU故障とこれと等価(EQと表記)とされる未検出故障の和を算出する。そして、LSI設計装置50は、AU故障とEQ故障の和の大きい順にAU箇所に検査点を挿入する。
例えば、検査点を1個のみしか入れたくない場合、挿入すべき数値の情報を入力する際、値1と記載する。図12(A)の場合、送信SFF508と受信SFF501の間のEQ故障の数は8個である。一方、図12(B)の場合、信号送信のスキャンフリップフロップ(送信SFF)580と信号受信のスキャンフリップフロップ(受信SFF)551の間のEQ故障の数は1個である。そして、送信SFF508と受信SFF501の間のみに、検査点509が挿入される。
このように、第4の実施形態のLSI検査装置によれば、検査点の数を指定可能とすることで、効果の大きな箇所に優先順位を決めて検査点を挿入可能とする設計方法を提供することができる。
図13は、自動検査点挿入処理の手順を示すフローチャートである。第1の実施形態と同一のステップ処理について同一のステップ番号が付されている。第4の実施形態では、第1の実施形態と比べ、ステップS6AのTPIリスト生成条件に、あらかじめ指定した検査点の最大数を記載する条件が追加される点が異なる。その他のステップ処理は第1の実施形態と同様であるので、その説明を省略する。
ステップS6Aにおいては、LSI検査装置50は、ステップS5でトレースした論理パスをAU発生源の論理ゲートの端子の出力方向へトレースし、最初の任意のインスタンスのAU故障の端子をTPIリスト集合の一要素とする。さらに、LSI検査装置50は、予め指定した検査点の最大数情報をもとに、ステップS5でトレースした論理パスをAU発生源の論理ゲートの端子の出力方向へトレースし、等価故障(EQと表記)数が多いものから順番に予め指定した検査点の最大数分のTPIリストを生成する。
このように、第4の実施形態のLSI検査装置によれば、検査点挿入数の制約を満たしつつ、第1の実施形態に近い、故障検出率の向上を得ることが可能となる。
(第5の実施形態)
図14は、第5の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図である。
第5の実施形態では、検査点の挿入禁止箇所の情報(検査点挿入禁止情報)に基づき、挿入禁止箇所における検査点を回避し、かつ、故障検出率の向上の高い検査点を挿入する手順が加わることにより、第1の実施形態と比べ、検査点TP3の挿入箇所が異なる。
検査点TP3以外、第1の実施形態と同様であるので、その説明を省略する。また、第5の実施形態の適用前の回路は、図3の回路に該当し、第1の実施形態と同様であるので、その説明を省略する。さらに、第5の実施形態における検査点の構成は、第1の実施形態と同様であるので、その説明を省略する。
図14に示すように、第5の実施形態における検査点の挿入禁止箇所は、論理回路BLK3、IO端子IO1、スキャンモード設定用論理回路151、及びIO端子IO1からスキャンモード設定用論理回路151に接続される経路であるとして、説明する。なお、図14の回路構成は、検査点5020及び検査箇所5021を除き、前述した図2の回路構成と同様である。
検査点(TP1)14は、挿入禁止箇所に関連しないので、第1の実施形態と同様の箇所に挿入される。また、検査点(TP2)15は、第1の実施形態、すなわち挿入禁止箇所の情報がない場合、検査箇所5021に挿入される。検査箇所5021は、スキャンモード設定用論理回路151に接続される経路上に位置するので、IO端子IO1の設定値がスキャンモード設定用論理回路151に正しく伝播せず、スキャンモードの設定が外れてATPG処理ができなくなる。
スキャンモードの設定を検査点挿入前と同じ状態にしつつ、AU3故障を検出するためには、IO端子IO1、スキャンモード設定用論理回路151、及びIO端子IO1からスキャンモード設定用論理回路151に接続される経路に含まれず、かつ、IO端子IO1から一番論理段数の少ない箇所である検査点15の位置に検査点(TP2)を挿入することで、実現が可能である。
すなわち、IO端子IO1、スキャンモード設定用論理回路151、及びIO端子IO1からスキャンモード設定用論理回路151に接続される経路を、挿入禁止箇所と定義付けると、挿入禁止箇所以外、かつ論理ゲート11のAU3故障から前段の検査点挿入可能箇所であり、かつ、IO端子IO1から論理段数が一番少ない箇所である検査点15に、検査点が挿入される。
また、検査点(TP3)5020の挿入例は、論理回路BLK3に検査点の挿入を行わない場合の例である。
第1の実施形態では、検査箇所5019に検査点が挿入される。第5の実施形態では、論理回路BLK3を挿入禁止箇所と定義付ける。LSI設計装置50は、この挿入禁止箇所以外、かつ論理ゲート11のAU故障に等価なEQ14故障から前段の検査点挿入可能箇所であり、かつNFF110から論理段数が一番少ない箇所に、検査点として検査点5020を挿入する選択を行う。これにより、故障検出率を向上するために、もっとも相応しい検査点が挿入される。
また、第5の実施形態のLSI設計装置は、第4の実施形態と組み合わせて実施されることも可能である。
図15は、自動検査点挿入処理の手順を示すフローチャートである。第1の実施形態と同一のステップ処理について同一のステップ番号が付されている。第5の実施形態では、第1の実施形態と比べ、ステップS6BでTPIリスト生成条件に、挿入禁止箇所の条件が追加される点が異なる。その他のステップ処理は第1の実施形態と同様であるので、その説明を省略する。
第5の実施形態では、LSI設計装置50は、予め用意した検査点挿入禁止箇所インスタンス情報をもとに、ステップS5でトレースした論理パスをAU発生源の論理ゲートの端子の出力方向へトレースし、最初の検査点挿入禁止箇所インスタンス以外のインスタンスのAU故障の端子をTPIリスト集合の一要素とする(ステップS6B)。
このように、第5の実施形態のLSI設計装置によれば、検査点挿入禁止箇所の制約を満たしつつ、できる限り第1の実施形態に近い故障検出率の向上を図ることが可能となる。なお、第5の実施形態は、前述したように、第4の実施形態と組み合わせて実施されることが可能である。
(第6の実施形態)
第6の実施形態における検査点を挿入した後のネットリストとして出力される論理回路は第5の実施形態と同様である。第6の実施形態では、検査点の挿入許可箇所の情報(検査点挿入許可情報)に基づき、挿入許可箇所かつ故障検出率の向上の高い検査点を挿入する手順が加わることにより、第1の実施形態と比べ、検査点TP3の挿入箇所が異なる。
検査点TP3以外、第1の実施形態と同様であるので、その説明を省略する。また、第6の実施形態の適用前の回路は、図3の回路に該当し、第1の実施形態と同様であるので、その説明を省略する。さらに、第6の実施形態における検査点の構成は、第1の実施形態と同様であるので、その説明を省略する。
第6の実施形態における検査点の挿入許可箇所は、論理回路BLK2として説明する。図14の回路構成は、検査点14、検査点15、検査箇所5019、検査箇所5021の他、図2の回路構成と同様である。
検査点(TP1)14は、挿入許可箇所にあるので、第1の実施形態と同様の箇所に挿入される。検査点(TP2)15は、第1の実施形態、すなわち挿入許可箇所の情報がない場合、検査箇所5021に挿入される。この検査箇所5021は、スキャンモード設定用論理回路151に接続される経路上に位置するので、IO端子IO1の設定値がスキャンモード設定用論理回路151に正しく伝播せず、スキャンモードの設定が外れてATPG処理ができなくなる。
スキャンモードの設定を検査点挿入前と同じ状態にしつつ、論理ゲート11のAU3故障を検出するためには、IO端子IO1、スキャンモード設定用論理回路151、IO端子IO1からスキャンモード設定用論理回路151に接続される経路に含まれない箇所、かつIO端子IO1から一番論理段数の少ない箇所である検査点15の位置に検査点(TP2)を挿入することで、実現が可能である。
すなわち、IO端子IO1、スキャンモード設定用論理回路151、IO端子IO1からスキャンモード設定用論理回路151に接続される経路を含まない、論理回路BLK2を挿入許可箇所と定義付ける。これにより、挿入許可箇所、かつ論理ゲート11のAU3故障から前段の検査点挿入可能箇所、かつIO端子IO1から論理段数が一番少ない箇所である検査点15に検査点が挿入される。
検査点(TP3)の挿入例は、論理回路BLK3に検査点挿入を行わない場合の例である。第1の実施形態では、検査箇所5019に検査点19が挿入される。これに対し、第6の実施形態では、挿入許可箇所を論理回路BLK2と定義付け、挿入許可箇所、かつ論理ゲート11のAU故障に等価なEQ14故障から前段の検査点挿入可能箇所、かつNFF110から論理段数が一番少ない箇所である検査箇所5020を挿入する検査点として選択する。これにより、故障検出率を向上するために、もっとも相応しい検査点が挿入される。また、第6の実施形態のLSI設計装置は、第4の実施形態と組み合わせて実施されることも可能である。
図16は、自動検査点挿入処理の手順を示すフローチャートである。第1の実施形態と同一のステップ処理について同一のステップ番号が付されている。第6の実施形態では、第1の実施形態と比べ、ステップS6CでTPIリスト生成条件に、挿入許可箇所の条件が追加される点が異なる。その他のステップ処理は第1の実施形態と同様であるので、その説明を省略する。
第6の実施形態では、LSI検査装置50は、予め用意した検査点挿入許可箇所のインスタンス情報をもとに、ステップS5でトレースした論理パスをAU発生源の論理ゲートの端子の出力方向へトレースし、最初の検査点挿入許可箇所のインスタンスのAU故障の端子をTPIリスト集合の一要素とする(ステップS6C)。
このように、第6の実施形態によれば、検査点挿入許可箇所の制約を満たしつつ、できる限り第1の実施形態に近い故障検出率の向上を図ることが可能となる。なお、第6の実施形態は、前述したように、第4の実施形態と組み合わせて実施されることが可能である。
(第7の実施形態)
第7の実施形態のLSI設計装置は、第1、第4、第5、第6の実施形態に対して適用可能であり、挿入する検査点の箇所を抽出した時点で、検査点を挿入した後の故障検出率を仮想的に計算する。この故障検出率算出方法は、検査点挿入前の回路構造によって、計算値に幅が生じる。本実施形態では、検査点挿入による故障検出率の向上の効果が最小となる場合を示す。
なお、第7の実施形態における故障検出率を算出する方法は、第1、第4、第5、第6の実施形態の差分に依存しないので、代表して第1の実施形態において故障検出率を算出する場合を示し、第4、第5、第6の実施形態については、その説明を省略する。
図17は、第7の実施形態におけるLSI設計装置の構成を示すブロック図である。図17に示すLSI設計装置50は、第1の実施形態と同様に、ATPG部51と、未検出故障リスト生成部52と、入力部53と、始点リスト生成部54と、パスリスト生成部55と、TPIリスト生成部56と、検査点挿入部57と、出力部58とを備え、さらに、故障検出率計算部59を備える。故障検出率計算部59は、つぎのような方法で故障検出率を算出する。
一般に、故障検出率は、式(1)、(2)で示される。
TC(x)=(ΣDT(x))/(FU(x)−ΣRE(x)) …(1)
FC(x)=(ΣDT(x))/(FU(x)) …(2)

TC(x):回路xのTest Coverage
FC(x):回路xのFault Coverage
ΣDT(x):回路xの検出故障の総和
FU(x):回路xの全故障数
ΣRE(x):回路xの冗長故障の総和
第1の実施形態における検査点挿入前の故障検出率が式(3)、(4)で表されると仮定し、検査点挿入後の故障検出率を式(5)、(6)で定義する。
TC(pre)=(ΣDT(pre))/(FU(pre)−ΣRE(pre)) …(3)
FC(pre)=(ΣDT(pre))/(FU(pre)) …(4)

TC(pre):検査点挿入前のTest Coverage
FC(pre):検査点挿入前のFault Coverage
ΣDT(pre):検査点挿入前の検出故障の総和
FU(pre):検査点挿入前の全故障数
ΣRE(pre):検査点挿入前の冗長故障の総和

TC(post)=(ΣDT(post))/(FU(post)−ΣRE(post)) …(5)
FC(post)=(ΣDT(post))/(FU(post)) …(6)

TC(post):検査点挿入後のTest Coverage
FC(post):検査点挿入後のFault Coverage
ΣDT(post):検査点挿入後の検出故障の総和
FU(post):検査点挿入後の全故障数
ΣRE(post):検査点挿入後の冗長故障の総和
第1の実施形態の回路図(図2参照)において、検査点14、検査点15、検査点19を検査点として挿入した後、最低限向上する故障検出率を算出する方法について説明する。
第1の実施形態において、検査点19を挿入することで、最低限、未検出AU故障から検出故障になると想定できる故障は、AU2、EQ16、EQ4、EQ5、EQ7、EQ8、EQ14、EQ15の各故障である。続いて、検査点14を挿入することで、最低限、未検出AU故障から検出故障になると想定できる故障は、AU1、EQ1、EQ2、EQ3、EQ12、EQ15の各故障である。更に、検査点15を挿入することで、最低限、未検出AU故障から検出故障になると想定できる故障は、AU3、EQ15の各故障である。
これらのことを踏まえると、検査点14、検査点15、検査点19を挿入した場合、検出故障数ΣDT(post)は、式(7)で表記できる。
ΣDT(post)=ΣDT(pre)+(AU2+EQ16+EQ4+EQ5+EQ7+EQ8+EQ14+EQ15+AU1+EQ1+EQ2+EQ3+EQ12+AU3) …(7)
式(7)を一般化すると、式(8)となる。
ΣDT(post)=ΣDT(pre)+Σi=0→nAUMIN(i) …(8)

AUMIN(i):検査点iを挿入することにより、最低限DT故障になるAU故障数
n:挿入する検査点の個数
次に、検査点挿入後の全故障数FU(post)は、検査点挿入前の全故障数FU(pre)に対し、挿入する検査点に存在する故障数分増加する。しかし、一般的に、検査点挿入前の全故障数FU(pre)は、挿入する検査点の個数と比較して十分に大きい場合、式(9)で表される。
FU(post)=FU(pre)+Σi=0→nTP(i)
≒FU(pre)(if FU(pre)>>Σi=0→nTP(i)) …(9)

TP(i):検査点iの故障数
n:挿入する検査点の個数
更に、一般に、冗長故障数は検査点挿入操作に依存して変化しないので、検査点挿入後の冗長故障数ΣRE(post)は、式(10)で表される。
ΣRE(post)=ΣRE(pre) …(10)
最後に、前述した式(8)、(9)、(10)を、検査点挿入後の故障検出率の式(5)、(6)に代入すると、式(11)、(12)が導き出せる。
TC(post)=(ΣDT(pre)+Σi=0→nAUMIN(i))/(FU(pre)−ΣRE(pre)) …(11)
FC(post)=(ΣDT(pre)+Σi=0→nAUMIN(i))/(FU(pre)) …(12)

TC(post):検査点挿入後のTest Coverage
FC(post):検査点挿入後のFault Coverage
ΣDT(pre):検査点挿入前の検出故障の総和
FU(pre):検査点挿入前の全故障数
ΣRE(pre):検査点挿入前の冗長故障の総和
AUMIN(i):検査点iを挿入することにより、最低限DT故障になるAU故障数
n:挿入する検査点の個数
式(11)、(12)によると、検査点iを挿入して最低限検出故障になるAU故障数を算出することにより、検査点挿入前のATPG結果より得られる検査点挿入前の検出故障の総和ΣDT(pre)と、検査点挿入前の全故障数FU(pre)と、検査点挿入前の冗長故障の総和ΣRE(pre)とから、検査点を挿入した後の故障検出率を仮想的に得ることが可能となる。
図18は、自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャートである。このフローチャートでは、第1の実施形態の図5に示すフローチャートに比べ、検査点を挿入した後の仮想的な故障検出率を計算するステップS10、S11の処理が追加される点が異なる。その他のステップS1〜S9の処理は第1の実施形態と同様であるので、その説明を省略する。また、本実施形態では、第1、第4、第5、第6の実施形態の差分に依存しないので、代表して、第1の実施形態について説明し、第4、第5、第6の実施形態についての説明は省略する。
LSI設計装置50は、ステップS7で得られる検査点に対応した、ステップS5で得られるAUインスタンスの入力端子を入力側にトレースして得られるパスリストから、式(11)で示されるAUMIN(i)を検査点挿入後に故障検出可能となる故障数として、ステップS1の入力となる検査点を挿入する前の検出故障数に加えることで、仮想的に検査点を挿入した後の故障検出率を算出する(ステップS10)。そして、LSI設計装置50は、検査点挿入後の故障検出率の見積もり結果を出力し(ステップS11)、本処理を終了する。
このように、第7の実施形態のLSI設計装置によれば、検査点を挿入する前に検査点挿入による故障検出率の向上・効果を見積もることが可能となる。
なお、前述したように、図18を用いて第1の実施形態における場合を示したが、第5、第6の実施形態においても同様である。図19は、第5の実施形態に適用された場合の自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャートである。図20は、第6の実施形態に適用された場合の自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャートである。
また、第4の実施形態は、第1の実施形態と第5の実施形態と第6の実施形態のそれぞれと同時に実施することが可能である。
(第8の実施形態)
第8の実施形態のLSI設計装置は、第1、第4、第5、第6の実施形態に対して適用可能であり、挿入する検査点の箇所を抽出した時点で、検査点を挿入した後の故障検出率を仮想的に計算する。この故障検出率算出方法は、検査点挿入前の回路構造によって、計算値に幅が生じる。本実施形態では、検査点挿入による故障検出率の向上の効果が最大となる場合を示す。
なお、第8の実施形態における故障検出率を算出する方法は、第1、第4、第5、第6の実施形態の差分に依存しないので、代表して第1の実施形態において故障検出率を算出する場合を示し、第4、第5、第6の実施形態については、その説明を省略する。
第8の実施形態におけるLSI設計装置の構成は、第7の実施形態と同様、図17に示したとおりである。
第8の実施形態では、第7の実施形態と比べ、式(7)、(8)で示される検査点を挿入した後の検出故障数ΣDT(post)の抽出方法のみが異なるので、ΣDT(post)の抽出方法と関連する内容以外の説明を省略する。
第1の実施形態における図2の回路図において、検査点14、検査点15、検査点19を検査点として挿入した後、最大限向上する故障検出率を算出する方法について説明する。
検査点19を挿入することで、最大限未検出AU故障から検出故障になると想定できる故障は、AU2、EQ16、EQ4、EQ5、EQ7、EQ8、EQ14、EQ15に加え、EQ20、EQ18、EQ10、EQ19、EQ17、EQ11、EQ9、EQ6の各故障である。続いて、検査点14を挿入することで、最低限未検出AUから検出故障になると想定できる故障は、第7の実施形態と同様、AU1、EQ1、EQ2、EQ3、EQ12、EQ15の各故障である。更に、検査点15を挿入することで、最低限未検出AUから検出故障になると想定できる故障は、第7の実施形態と同様、AU3、EQ15の各故障である。
これらのことを踏まえると、検査点14、検査点15、検査点19を挿入した場合の検出故障数ΣDT(post)は、式(13)で表記できる。
ΣDT(post)=ΣDT(pre)+(AU2+EQ16+EQ4+EQ5+EQ7+EQ8+EQ14+EQ15+EQ20+EQ18+EQ10+EQ19+EQ17+EQ11+EQ9+EQ6+AU1+EQ1+EQ2+EQ3+EQ12+AU3) …(13)
式(13)は、一般化すると、式(14)となる。
ΣDT(post)=ΣDT(pre)+Σi=0→nAUMAX(i) …(14)
AUMAX(i):検査点iを挿入することにより、最大限DT故障になるAU故障数
n:挿入する検査点の個数
式(14)、(12)、(13)を、検査点挿入後の故障検出率の式(5)、(6)に代入すると、式(15)、(16)を導き出すことができる。
TC(post)=(ΣDT(pre)+Σi=0→nAUMAX(i))/(FU(pre)−ΣRE(pre)) …(15)
FC(post)=(ΣDT(pre)+Σi=0→nAUMAX(i))/(FU(pre)) …(16)

TC(post):検査点挿入後のTest Coverage
FC(post):検査点挿入後のFault Coverage
ΣDT(pre):検査点挿入前の検出故障の総和
FU(pre):検査点挿入前の全故障数
ΣRE(pre):検査点挿入前の冗長故障の総和
AUMAX(i):検査点iを挿入することにより、最大限DT故障になるAU故障数
n:挿入する検査点の個数
式(15)、(16)によると、検査点iを挿入して最大限検出故障になるAU故障数を算出することにより、検査点挿入前のATPG結果より得られる検査点挿入前の検出故障の総和ΣDT(pre)と検査点挿入前の全故障数FU(pre)と検査点挿入前の冗長故障の総和ΣRE(pre)とから、検査点を挿入した後の故障検出率を仮想的に得ることが可能となる。
第7の実施形態と同様、図18のフローチャートにおいて、検査点を挿入した後の仮想的な故障検出率を計算する。
LSI設計装置50は、ステップS7で得られる検査点に対応した、ステップS5で得られるAUインスタンスの入力端子を入力側にトレースして得られるパスリストから、式(15)で示されるAUMIN(i)を検査点挿入後に故障検出可能となる故障数として、ステップS1の入力となる検査点を挿入する前の検出故障数に加えることで、仮想的に検査点を挿入した後の故障検出率を算出する(ステップS10)。そして、LSI設計装置50は、検査点挿入後の故障検出率の見積もり結果を出力し(ステップS11)、本処理を終了する。
このように、第8の実施形態のLSI設計装置によれば、第7の実施形態と同様、検査点を挿入する前に検査点挿入による故障検出率の向上・効果を見積もることが可能となる。
(第9の実施形態)
第9の実施形態におけるLSI設計装置の構成は第1の実施形態と同様である。第9の実施形態では、入力部53を介して、検査点に関して挿入すべき数値の情報が入力可能である。
図21(A)及び図21(B)は、第9の実施形態の適用前のネットリストである論理回路を示す図である。図21(A)に示す論理回路600は、信号受信のスキャンフリップフロップ(以下「受信SFF」という)601と、2入力の論理ゲート602と、1入力の論理ゲート603と、3入力の論理ゲート604と、2入力の論理ゲート605と、2入力の論理ゲート606と、組合せ論理回路群607と、信号送信のスキャンフリップフロップ(以下「送信SFF」という)608とを有する。図21(A)には、検査点609の挿入箇所が示されている。
第9の実施形態のLSI設計装置50は、第1の実施形態をもとに、挿入可能な検査点(制御用フリップフロップ)に制限がある場合や、少ない検査点で実施したい場合に、効果が大きい箇所から順に入れることを可能とする。さらに、LSI設計装置50は、検査点に関して挿入すべき数値の情報を入力し、複数存在するUC箇所の各々に関して、UC故障とこのUC故障と等価(EQと表記)とされる未検出故障の和を算出する。そして、LSI設計装置50は、UC故障とEQ故障の和の大きい順にUC箇所に検査点を挿入する。
例えば、検査点を1個のみしか入れたくない場合、挿入すべき数値の情報として、値1を入力すると記載する。図21(A)に示すように、送信SFF608と信号受信のSFF601の間のEQ故障の数は8個である。一方、図21(B)に示すように、信号送信のスキャンフリップフロップ(送信SFF)680と信号受信のスキャンフリップフロップ(受信SFF)651の間のEQ故障の数は1個である。したがって、送信SFF680と受信SFF651の間のみに、検査点609が挿入される。
このように、検査点の数を指定可能とすることで、効果の大きな箇所に優先順位を決めて検査点を挿入可能とする設計方法を提供することができる。
図22は、自動検査点挿入処理の手順を示すフローチャートである。第9の実施形態は、第2の実施形態と比べ、ステップS15Aで、TPIリスト生成条件に、あらかじめ指定した検査点の最大数を記載する条件が追加される点が異なる。その他、ステップS11〜S14、S16〜S18の処理は、第2の実施形態と同様であるので、その説明を省略する。
第9の実施形態において、LSI設計装置50は、ステップS14でトレースした論理パスをUC故障発生源の論理ゲートの端子の出力方向へトレースし、最初の任意のインスタンスのUC故障の端子をTPIリスト集合の一要素とする。第9の実施形態では、予め指定した検査点の最大数情報をもとに、ステップS14でトレースした論理パスをUC故障発生源の論理の端子の出力方向へトレースし、等価故障(EQと表記)数が多いものから順番に予め指定した検査点の最大数分のTPIリストを生成する(ステップS15A)。
このように、第9の実施形態のLSI設計装置によれば、検査点挿入数の制約を満たしつつ、最大限第2の実施形態に近い故障検出率の向上効果を得ることが可能となる。
(第10の実施形態)
図23は、第10の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図である。
第10の実施形態では、検査点の挿入禁止箇所の情報に基づき、挿入禁止箇所における検査点を回避し、かつ、故障検出率の向上の高い検査点を挿入する手順が加わることにより、第9の実施形態と比べ、検査点の挿入箇所が異なる。また、LSI検査装置は、第1の実施形態と同様であるので、その説明を省略する。検査点以外、第1の実施形態と同様であるので、その説明を省略する。また、第10の実施形態の適用前の回路は、図6の回路に該当し、前記2の実施形態と同様である。
図23では、検査点710の箇所に検査点が挿入される点が異なる。図23における検査点710、論理回路BLK10002、論理回路BLK10003以外の説明は、第1、第2の実施形態と同様のため省略する。また、第10の実施形態における検査点は、第2の実施形態と同様であるので、その説明を省略する。
第10の実施形態において、論理回路BLK10002は、検査点挿入を行うことができない回路、論理回路BLK10001は検査点挿入を行うことが可能な回路として、これ以降、説明する。
図23において、検査点709と検査点710に何も存在しない検査点挿入前の図23の回路を用いたATPG処理結果として、論理ゲート706が入力端子がUC故障と判断される。また、論理ゲート706の出力端子から論理ゲート702の入力端子への信号経路の各論理の入力端子と出力端子は、EQ故障と判断される。
第2の実施形態のように、検査点の挿入禁止箇所の情報がない場合、図23の論理回路BLK10002に含まれる検査点709に図7の検査点が挿入される。第10の実施形態では、論理回路BLK10002への検査点挿入を回避するために、挿入禁止箇所として、論理回路BLK10002を定義付ける。
したがって、挿入禁止箇所ではない箇所、かつ、UC故障の前段にある信号送信のFFのQ端子から論理段数が一番少ない箇所にあるUC箇所に対する検査点710に、検査点を挿入する操作により、検査点の挿入が実現する。なお、本実施形態は、第9の実施形態と同時に実施することも可能である。
図24は、自動検査点挿入処理の手順を示すフローチャートである。第10の実施形態では、第2の実施形態に対して、ステップS15BのTPIリスト生成条件に、挿入禁止箇所の条件が追加される点が異なる。ステップS11〜S14、S16〜S18の処理は、第2の実施形態と同様であるので、その説明を省略する。
第10の実施形態では、LSI設計装置50は、予め用意した検査点挿入禁止箇所インスタンス情報をもとに、信号送信SFFの出力端子に論理段数が最も少ない箇所に存在する検査点挿入禁止箇所インスタンス以外のインスタンスのUC故障の端子をTPIリストとして集合の一要素とする(ステップS15B)。
このように、第10の実施形態のLSI設計装置によれば、検査点挿入禁止箇所の制約を満たしつつ、最大限、第2の実施形態に近い故障検出率の向上効果を得ることが可能となる。なお、第10の実施形態は第9の実施形態と組み合わせて実施することも可能である。
(第11の実施形態)
第11の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例は、第10の実施形態と同様である。第11の実施形態では、第2の実施形態と比べ、検査点の挿入許可箇所の情報に基づき、挿入許可箇所のみに極力、故障検出率の向上効果の高い検査点を挿入する手順が加わることにより、図23の検査箇所に検査点710が挿入される点が異なる。
検査点710、論理回路BLK10002、論理回路BLK10001以外の説明は、第1、第2の実施形態と同様であるので、その説明を省略する。また、第11の実施形態における検査点は、第2の実施形態と同様であるので、その説明を省略する。第11の実施形態では、論理回路BLK10002は検査点挿入を行うことができない回路、論理回路BLK10001は検査点挿入が行うことが可能な回路として、これ以降、説明する。
図23において、検査点709と検査点710に、何も存在しない検査点挿入前の図23の回路を用いたATPG処理結果として、論理ゲート706の入力端子がUC故障と判断される。また、論理ゲート706の出力端子から論理ゲート702の入力端子への信号経路の各論理ゲートの入力端子と出力端子はEQ故障と判断される。
第2の実施形態では、検査点の挿入禁止箇所の情報がない場合、図23のブラックボックスBLK10002に含まれる検査点709の箇所に図42の検査点が挿入される。第11の実施形態では、論理回路BLK10002への検査点挿入を回避するために、挿入許可箇所として、論理回路BLK10001を定義付けると、挿入許可箇所、かつ、UC故障の前段にある信号送信のFFのQ端子から論理段数が一番少ない箇所にある検査点710の箇所に検査点を挿入する操作により、検査点挿入が実現する。なお、第11の実施形態は、第9の実施形態と同時に実施することも可能である。
図25は、自動検査点挿入処理の手順を示すフローチャートである。第11の実施形態は、第2の実施形態と比べ、ステップS15CのTPIリスト生成条件に、挿入禁止許可の条件が追加される点が異なる。その他のステップS11〜S14、ステップS16〜S18は第2の実施形態と同様であるので、その説明を省略する。
第11の実施形態では、LSI設計装置50は、予め用意した検査点挿入許可箇所インスタンス情報をもとに、信号送信SFFの出力端子に論理段数が最も少ない箇所に存在する検査点挿入許可インスタンスのUC故障の端子をTPIリストとして集合の一要素とする(ステップS15C)。
このように、第11の実施形態のLSI設計装置によれば、検査点挿入許可箇所の制約を満たしつつ、最大限、第2の実施形態に近い故障検出率の向上効果を得ることが可能となる。なお、第11の実施形態は、第9の実施形態と組み合わせて実施することも可能である。
(第12の実施形態)
図26(A)及び図26(B)は、第12の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図である。LSI検査装置は、第1の実施形態と同様であるので、その説明を省略する。
第12の実施形態のLSI設計装置は、第3の実施形態をもとに、挿入可能な検査点(観測用フリップフロップ)に制限がある場合や少ない検査点で実施したい場合、効果が大きい箇所から順に入れることを可能とする。LSI設計装置は、検査点に関して挿入すべき数値の情報を入力し、複数存在するUO箇所の各々に関し、UO故障とこのUO故障と等価(EQと表記)とされる未検出故障の和を算出し、このUO故障とEQ故障の和の大きい順にUO箇所に検査点を挿入する。
例えば、検査点を1個のみしか入れたくない場合、LSI設計装置50は、挿入すべき数値の情報として値1を入力する。図26(A)に示すように、信号送信のスキャンフリップフロップ(以下「送信SFF」という)808と信号受信のスキャンフリップフロップ(以下「受信SFF」という)801の間のEQ故障の数は8個である。一方、図26(B)に示すように、信号送信のスキャンフリップフロップ(送信SFF)858と信号受信のスキャンフリップフロップ(受信SFF)851の間のEQ故障の数は1個である。したがって、送信SFF808と受信SFF801の間のみに、検査点809が挿入される。
このように、第12の実施形態のLSI設計装置によれば、検査点の数を指定可能とすることで、効果の大きな箇所に優先順位を決めて検査点を挿入可能とする設計方法を提供することができる。
図27は、自動検査点挿入処理の手順を示すフローチャートである。第12の実施形態は、第3の実施形態と比べ、ステップS25Aで、TPIリスト生成条件に、あらかじめ指定した検査点の最大数を記載する条件が追加される点が異なる。その他、ステップS21〜S24、S26〜S28の処理は、第3の実施形態と同様であるので、その説明を省略する。
第12の実施形態において、LSI設計装置50は、ステップS24で抽出したパスリスト集合中の1つのパスに対し、信号送信SFFの出力端子に論理段数が最大となる箇所に存在する任意のインスタンスのUO故障の端子をTPIリストとして集合の一要素とする。そして、第12の実施形態では、LSI設計装置50は、予め指定した検査点の最大数情報をもとに、ステップS24で抽出したパスリスト集合中の1つのパスに対し、信号送信SFFの出力端子に等価なEQ故障数が多いものから順番に予め指定した検査点の最大数分のTPIリストを生成する(ステップS25A)。
このように、第12の実施形態のLSI設計装置によれば、検査点挿入数の制約を満たしつつ、最大限、第3の実施形態に近い故障検出率の向上効果を得ることが可能となる。
(第13の実施形態)
図28は、第13の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例を示す図である。
第13の実施形態では、第3の実施形態、第12の実施形態と比べ、検査点の挿入禁止箇所の情報に基づき、挿入禁止箇所への検査点挿入を回避しつつ、極力、故障検出率の向上効果の高い検査点を挿入する手順が加わることにより、検査点が挿入される点が異なる。また、第13の実施形態のLSI検査装置の構成は、第1の実施形態と同様であるので、その説明を省略する。また、第13の実施形態の適用前の回路は、図9の回路に該当し、第3の実施形態と同様である。
第13の実施形態のLSI検査装置は、図28の検査点910、論理回路BLK13002、論理回路BLK13001を除き、第3の実施形態とこの第3の実施形態から派生する第12の実施形態と同様であるので、その説明を省略する。また、第13の実施形態における検査点の構成は、第3の実施形態と同様であるので、その説明を省略する。
第13の実施形態では、論理回路BLK13001は検査点挿入を行うことができない回路、論理回路BLK13002は検査点挿入を行うことが可能な回路として、これ以降、説明する。
図28では、検査点909と検査点910の箇所に何も存在しない検査点挿入前の回路を用いたATPG処理結果として、論理ゲート902の入力端子はUO故障と判断される。また、論理ゲート903の出力端子から論理ゲート906の入力端子への入力方向への信号経路の各論理ゲートの入力端子と出力端子は、EQ故障と判断され、未検出故障と判定される。
第3の実施形態及び第12の実施形態では、検査点の挿入禁止箇所の情報がない場合、図28の論理回路BLK13001に含まれる検査点909に図10の検査点が挿入される。第13の実施形態のLSI設計装置では、論理回路BLK13001への検査点挿入を回避するために、挿入禁止箇所として論理回路BLK13001を定義付けると、挿入禁止箇所でない箇所、かつ、UO故障の後段にある信号受信のFFのD端子から論理段数が一番少ない箇所にあるUO箇所である検査箇所に、検査点910が挿入される。なお、第13の実施形態は、第12の実施形態と同時に実施することも可能である。
図29は、自動検査点挿入処理の手順を示すフローチャートである。第13の実施形態では、第3の実施形態に対し、ステップS25BのTPIリスト生成条件に、挿入禁止箇所の条件が追加される点が異なる。ステップS21〜S24、S26〜S28の処理は、第3の実施形態と同様であるので、その説明を省略する。
第13の実施形態では、LSI設計装置50は、予め用意した検査点挿入禁止箇所インスタンス情報をもとに、ステップS24で抽出したパスリスト集合中の1つのパスに対し、信号送信SFFの出力端子に論理段数が最大となる箇所に存在する検査点挿入禁止箇所インスタンス以外のインスタンスのUO故障の端子をTPIリストとして集合の一要素とする(ステップS25B)。
このように、第13の実施形態のLSI設計装置によれば、検査点挿入禁止箇所の制約を満たしつつ、最大限、第3の実施形態に近い故障検出率の向上効果を得ることが可能となる。
(第14の実施形態)
第14の実施形態における検査点を挿入した後のネットリストとして出力される論理回路の例は、第13の実施形態と同様である。第14の実施形態では、第3の実施形態、第12の実施形態と比べ、検査点の挿入許可箇所の情報に基づき、挿入許可箇所のみに極力、故障検出率の向上効果の高い検査点を挿入する手順が加わることにより、図28の検査点910に検査点が挿入される点が異なる。
検査点910、論理回路BLK13002、論理回路BLK13001以外の説明は、第3の実施形態とこの第3の実施形態から派生する第12の実施形態と同様であるので、その説明を省略する。また、第14の実施形態における検査点の構成は、第3の実施形態と同様であるので、その説明を省略する。
第14の実施形態では、論理回路BLK13001は検査点挿入を行うことができない回路、論理回路BLK13002は検査点挿入を行うことが可能な回路として、これ以降、説明する。
図28において、検査点909と検査点910の箇所に何も存在しない検査点挿入前の回路を用いたATPG処理結果として、論理ゲート902の入力端子はUO故障と判断される。また、論理ゲート903の出力端子から論理ゲート906の入力端子への入力方向への信号経路の各論理ゲートの入力端子と出力端子はEQ故障と判断され、未検出故障と判定される。
第3の実施形態及び第12の実施形態では、検査点の挿入禁止箇所の情報が無い場合、図28の論理回路BLK13001に含まれる検査点909の箇所に図43の検査点が挿入される。一方、第14の実施形態では、論理回路BLK13001への検査点挿入を回避するために、挿入許可箇所として論理回路BLK13002を定義付けると、挿入許可箇所、かつ、UO故障の後段にある信号受信のFFのD端子から論理段数が一番少ない箇所にあるUO箇所である検査点910の箇所に、検査点が挿入される。なお、第14の実施形態は、第12の実施形態と同時に実施することも可能である。
図30は、自動検査点挿入処理の手順を示すフローチャートである。第14の実施形態は、第3の実施形態と比べ、ステップS25CのTPIリスト生成条件に、挿入禁止許可の条件が追加される点が異なる。その他のステップS21〜S24、ステップS26〜S28は第3の実施形態と同様であるので、その説明を省略する。
第14の実施形態では、LSI設計装置50は、予め用意した検査点挿入許可箇所インスタンス情報をもとに、信号送信SFFの出力端子に論理段数が最も少ない箇所に存在する検査点挿入許可インスタンスのUO故障の端子をTPIリストとして集合の一要素とする(ステップS25C)。
このように、第14の実施形態のLSI設計装置によれば、検査点挿入許可箇所の制約を満たしつつ、最大限、第3の実施形態に近い故障検出率の向上効果を得ることが可能となる。
(第15の実施形態)
第15の実施形態のLSI設計装置は、第2の実施形態、第9の実施形態、第10の実施形態又は第11の実施形態に適用され、挿入する検査点の箇所を抽出した時点で、検査点を挿入した後の故障検出率を仮想的に計算する。第15の実施形態のLSI検査装置の構成は第7の実施形態のLSI設計装置(図17参照)と同様であるので、その説明を省略する。
第15の実施形態における故障検出率を算出する方法は、第2、第9、第10又は第11の実施形態の差分に依存しないので、代表して第2の実施形態において故障検出率を算出する場合について説明する。その他の第9、第10、第11の実施形態における故障検出率の算出方法は、第2の実施形態における故障検出率の算出方法と同様であるので、その説明を省略する。
さらに、第15の実施形態では、第7の実施形態と比べ、式(7)、(8)で示される検査点を挿入した後の検出故障数ΣDT(post)の抽出方法のみが異なるので、ΣDT(post)の抽出方法と関連する内容以外の説明を省略する。
第2の実施形態の回路図(図6参照)において、検査点209を挿入した後に向上する故障検出率を算出する方法について説明する。検査点209を挿入することで、未検出UC故障から検出故障になると想定できる故障は、論理回路206のUC、EQ、論理回路205の入力側EQ、出力側EQ、論理回路204の入力側EQ、出力側EQ、論理ゲート203の入力側EQ、出力側EQ、論理ゲート202のEQの各故障である。これらのことを踏まえると、検査点209を挿入した場合の検出故障数ΣDT(post)は、式(17)で表記することができる。
ΣDT(post)=ΣDT(pre)+(論理ゲート206のUC+論理ゲート206のEQ+論理ゲート205の入力側EQ+論理ゲート205の出力側EQ+論理ゲート204の入力側EQ+論理ゲート204の出力側EQ+論理ゲート203の入力側EQ+論理ゲート203の出力側EQ+論理ゲート202のEQ) …(17)
式(17)を一般化すると、式(18)となる。
ΣDT(post)=ΣDT(pre)+Σi=0→nUC(i) …(18)

UC(i):検査点iを挿入することにより、DT故障になるUC故障数
n:挿入する検査点の個数
式(18)、(12)、(13)を、検査点挿入後の故障検出率の式(5)、(6)に代入すると、式(19)、(20)が導き出される。
TC(post)=(ΣDT(pre)+Σi=0→nUC(i))/(FU(pre)−ΣRE(pre)) …(19)
FC(post)=(ΣDT(pre)+Σi=0→nUC(i))/(FU(pre)) …(20)

TC(post):検査点挿入後のTest Coverage
FC(post):検査点挿入後のFault Coverage
ΣDT(pre):検査点挿入前の検出故障の総和
FU(pre):検査点挿入前の全故障数
ΣRE(pre):検査点挿入前の冗長故障の総和
UC(i):検査点iを挿入することにより、最大限DT故障になるAU故障数
n:挿入する検査点の個数
式(19)、(20)によると、検査点iを挿入することにより検出故障になるUC故障数を算出することにより、検査点挿入前のATPG結果より得られる検査点挿入前の検出故障の総和ΣDT(pre)と、検査点挿入前の全故障数FU(pre)と、検査点挿入前の冗長故障の総和ΣRE(pre)とから、検査点を挿入した後の故障検出率を仮想的に得ることが可能となる。
図31は、自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャートである。このフローチャートでは、第2、第9の実施形態と比べ、検査点を挿入した後の仮想的な故障検出率を計算する、ステップS19、S20の処理が追加されるが異なる。その他のステップS11〜S18の処理は、第2、第9の実施形態と同様であるので、その説明を省略する。さらに、第15の実施形態は、第2、第9の実施形態の差分に依存しないので、代表して第2の実施形態に対して説明し、第9の実施形態に対する説明は省略する。
第15の実施形態のLSI設計装置50は、ステップS16で得られる検査点に対応した、ステップS14で得られるUCインスタンスの出力端子を出力側にトレースし、得られるパスリストから抽出される式(18)で示されるUC(i)を、検査点挿入後に故障検出可能となる故障数として、ステップS11の入力となる検査点を挿入する前の検出故障数に加えることで、仮想的に検査点を挿入した後の故障検出率を算出する(ステップS19)。そして、LSI設計装置50は、算出した、検査点を挿入した後の故障検出率の見積もり結果を出力する(ステップS20)。
このように、第15の実施形態のLSI設計装置によれば、検査点を挿入する前に検査点挿入による故障検出率の向上効果を見積もることが可能となる。
(第16の実施形態)
第16の実施形態のLSI設計装置は、第3の実施形態、又は第12の実施形態に適用され、挿入する検査点の箇所を抽出した時点で、検査点を挿入した後の故障検出率を仮想的に計算する。第16の実施形態のLSI検査装置の構成は第7の実施形態のLSI設計装置(図17参照)と同様であるので、その説明を省略する。
第16の実施形態における故障検出率を算出する方法は、第3、第12、第13又は第14の実施形態の差分に依存しないので、代表して第3の実施形態における故障検出率を算出する方法に適用された場合について説明する。その他の第12、第13、第14の実施形態における故障検出率の算出方法は、第3の実施形態における故障検出率の算出方法と同様であるので、その説明を省略する。さらに、第16の実施形態では、第7の実施形態と比べ、式(7)、(8)で示される検査点を挿入した後の検出故障数ΣDT(post)の抽出方法のみが異なるので、ΣDT(post)の抽出方法と関連する内容以外の説明を省略する。
第3の実施形態の回路図(図9参照)において、検査点309を挿入した後に向上する故障検出率を算出する方法について説明する。
検査点309を挿入することで、未検出UO故障から検出故障になると想定できる故障は、論理ゲート302の入力側のUOと、論理ゲート303の入力側のEQと論理ゲート303の出力側のEQと、論理ゲート303の入力側のEQと論理ゲート303の出力側のEQと、論理ゲート304の入力側のEQと論理ゲート304の出力側のEQと、論理ゲート305の入力側のEQと論理ゲート305の出力側のEQと、論理ゲート306の入力側のEQと論理ゲート306の出力側のEQの各故障である。これらのことを踏まえると、検査点309を挿入した場合の検出故障数ΣDT(post)は、式(21)で表記することができる。
ΣDT(post)=ΣDT(pre)+(論理ゲート302の入力側のUO+論理ゲート303の入力側のEQ+論理ゲート303の出力側のEQ+論理ゲート304の入力側のEQ+論理ゲート304の出力側のEQ+論理ゲート305の入力側のEQ+論理ゲート305の出力側のEQ+論理ゲート306の入力側のEQ+論理ゲート306の出力側のEQ) …(21)
式(21)を一般化すると、式(22)となる。
ΣDT(post)=ΣDT(pre)+Σi=0→nUO(i) …(22)

UO(i):検査点iを挿入することにより、DT故障になるUC故障数
n:挿入する検査点の個数
式(22)、(12)、(13)を、検査点挿入後の故障検出率の式(5)、(6)に代入すると、式(23)、(24)が導き出される。
TC(post)=(ΣDT(pre)+Σi=0→nUC(i))/(FU(pre)−ΣRE(pre)) …(23)
FC(post)=(ΣDT(pre)+Σi=0→nUC(i))/(FU(pre)) …(24)

TC(post):検査点挿入後のTest Coverage
FC(post):検査点挿入後のFault Coverage
ΣDT(pre):検査点挿入前の検出故障の総和
FU(pre):検査点挿入前の全故障数
ΣRE(pre):検査点挿入前の冗長故障の総和
UO(i):検査点iを挿入することにより、最大限DT故障になるAU故障数
n:挿入する検査点の個数
式(23)、(24)によると、検査点iを挿入することにより検出故障になるUO故障数を算出することにより、検査点挿入前のATPG結果より得られる検査点挿入前の検出故障の総和ΣDT(pre)と、検査点挿入前の全故障数FU(pre)と、検査点挿入前の冗長故障の総和ΣRE(pre)とから、検査点を挿入した後の故障検出率を仮想的に得ることが可能となる。
図32は、自動検査点挿入処理及び故障検出率計算処理の手順を示すフローチャートである。このフローチャートでは、第3、第12の実施形態と比べ、検査点を挿入した後の仮想的な故障検出率を計算する、ステップS29、S30の処理が追加されるが異なる。その他のステップS21〜S28の処理は第3、第12の実施形態と同様であるので、その説明を省略する。さらに、第16の実施形態は、第3、第12の実施形態の差分に依存しないので、代表して第3の実施形態に対して説明し、第12の実施形態に対する説明は省略する。
第16の実施形態のLSI設計装置50は、ステップS26で得られる検査点に対応した、ステップS24で得られるUOインスタンスの出力端子を出力側にトレースし、得られるパスリストから抽出される式(22)で示されるUO(i)を、検査点挿入後に故障検出可能となる故障数として、ステップS21の入力となる検査点を挿入する前の検出故障数に加えることで、仮想的に検査点を挿入した後の故障検出率を算出する(ステップS29)。そして、LSI設計装置50は、算出した、検査点を挿入した後の故障検出率の見積もり結果を出力する(ステップS30)。
このように、第16の実施形態のLSI設計装置によれば、検査点を挿入する前に検査点挿入による故障検出率の向上効果を見積もることが可能となる。
本発明に係る半導体集積回路の設計装置は、ネットリストとして出力される論理回路に検査点を自動で挿入するLSI設計装置等として有用である。
10,113,115,400,4013,4015 スキャンフリップフロップ(SFF)
14,15,19 検査点
50 LSI設計装置
51 ATPG部
52 未検出故障リスト生成部
53 入力部
54 始点リスト生成部
55 パスリスト生成部
56 TPIリスト生成部
57 検査点挿入部
58 出力部
59 故障検出率計算部
100 論理回路
110,4010 ノンスキャンフリップフロップ(NFF)
201,301,501,551,601,651,801,851 信号受信のフリップフロップ
202〜206 論理ゲート
207 組合せ論理回路群
208,308,508,580,608,680,808,858 信号送信のフリップフロップ
BLK1,BLK401 ブラックボックス
BLK2,BLK402 組合せ回路や順序回路で構成される論理回路
BLK3,BLK403 非スキャン化されたフリップフロップ等を含む論理回路
BLK10001,BLK13002 検査点を挿入することができる回路
BLK10002,BLK13001 検査点を挿入することができない回路

Claims (32)

  1. 複数の論理ゲートの端子が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置であって、
    前記論理回路のネットリストを入力するネットリスト入力部と、
    前記論理回路のうち、故障検出が不可能な論理ゲートの端子の故障と前記故障検出が不可能な論理ゲートの端子と等価な故障をAU故障の集合としてその情報を入力する故障情報入力部と、
    前記AU故障の集合のうち、前記AU故障が同一信号経路上に複数個存在する場合、故障検出を妨げる論理ゲート若しくは端子又はハードマクロである故障検出障害箇所の出力属性端子が接続する方向の信号経路上で、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第1検査点挿入部と、
    前記検査点が挿入されたネットリストを出力するネットリスト出力部と、
    を備えた設計装置。
  2. 複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置であって、
    前記論理回路のネットリストを入力するネットリスト入力部と、
    前記論理回路のうち、故障検出制御ができないために故障検出処理が打ち切られた論理ゲートの端子の故障と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUC故障の集合としてその情報を入力する故障情報入力部と、
    前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数の少ない位置のUC故障に接続される信号線に検査点を挿入する第1検査点挿入部と、
    前記検査点が挿入されたネットリストを出力するネットリスト出力部と、
    を備えた設計装置。
  3. 複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置であって、
    前記論理回路のネットリストを入力するネットリスト入力部と、
    前記論理回路のうち、故障観測ができないために故障検出処理が打ち切られた論理ゲートの端子の故障と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUO故障の集合としてその情報を入力する故障情報入力部と、
    前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路から出力される信号を受信するフリップフロップのデータ入力端子から一番論理段数の少ない位置のUO故障に接続される信号線に検査点を挿入する第1検査点挿入部と、
    前記検査点が挿入されたネットリストを出力するネットリスト出力部と、
    を備えた設計装置。
  4. 請求項1に記載の設計装置であって、
    さらに、前記検査点に関して挿入すべき数値の情報を入力する数値情報入力部と、
    複数存在する前記AU故障の各々に関して、前記AU故障とこれに等価とされる未検出故障の和を算出する未検出故障和算出部と、を備え、
    前記第1検査点挿入部は、前記和の大きい順に前記AU故障に検査点を挿入する設計装置。
  5. 請求項1又は4に記載の設計装置であって、
    さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力部と、
    前記AU故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断部と、
    前記AU故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入部と、
    を備えた設計装置。
  6. 請求項1又は4に記載の設計装置であって、
    前記論理回路の検査点挿入許可情報を入力する許可情報入力部と、
    前記AU故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断部と、
    前記AU故障の集合の情報のうち、前記検査点挿入許可情報に含まれないAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入部と、
    を備えた設計装置。
  7. 請求項1、4、5及び6のいずれか一項に記載の設計装置であって、
    前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力部と、
    前記検査点挿入箇所と、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップとの間の論理経路において、前記検査点挿入箇所と、前記フリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障との論理経路間に存在する、AU故障数と前記AU故障と等価な故障数の総和を求める総故障数和導出部と、
    前記総故障数和導出部によって求められた故障数の総和を、検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する故障検出率算出部と、
    前記検査点挿入後の故障検出率を出力する故障検出率出力部と、
    を備えた設計装置。
  8. 請求項7に記載の設計装置であって、
    さらに、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障に接続される信号経路に関して、前記故障検出障害箇所への信号経路ではない信号経路でのAU故障数と前記AU故障と等価な故障数の総和を算出する総故障数算出部と、
    前記総故障数算出部によって算出された総和に、前記総故障数和導出部で求めた総和を加算する総和加算部と、を備え、
    前記故障検出率算出部は、
    前記総和加算部が求めた値を、前記検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する設計装置。
  9. 請求項2に記載の設計装置であって、
    さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力部と、
    複数存在する前記UC故障の各々に関して、前記UC故障と前記UC故障と等価とされる未検出故障数の和を算出する第1未検出故障数和算出部と、
    前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UC故障に検査点を挿入する第2検査点挿入部と、
    を備えた設計装置。
  10. 請求項2又は9に記載の設計装置であって、
    さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力部と、
    前記UC故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断部と、
    前記UC故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入部と、
    を備えた設計装置。
  11. 請求項2又は9に記載の設計装置であって、
    さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力部と、
    前記UC故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断部と、
    前記UC故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入部と、
    を備えた設計装置。
  12. 請求項3に記載の設計装置であって、
    さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力部と、
    複数存在する前記UO故障の各々に関して、前記UO故障と前記UO故障と等価とされる未検出故障数の和を算出する未検出故障数和算出部と、
    前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UO故障に検査点を挿入する第2検査点挿入部と、
    を備えた設計装置。
  13. 請求項3又は12に記載の設計装置であって、
    さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力部と、
    前記UO故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断部と、
    前記UO故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入部と、
    を備えた設計装置。
  14. 請求項3又は12に記載の設計装置であって、
    さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力部と、
    前記UO故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断部と、
    前記UO故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入部と、
    を備えた設計装置。
  15. 請求項2、9、10及び11のいずれか一項に記載の設計装置であって、
    さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力部と、
    前記検査点を挿入したUC故障と前記UC故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出部と、
    前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出部と、
    を備えた設計装置。
  16. 請求項3、12、13及び14のいずれか一項に記載の設計装置であって、
    さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力部と、
    前記検査点を挿入したUO故障と前記UO故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出部と、
    前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出部と、
    を備えた設計装置。
  17. 複数の論理ゲートの端子が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置の設計方法であって、
    前記設計装置が、
    前記論理回路のネットリストを入力するネットリスト入力ステップと、
    前記論理回路のうち、故障検出が不可能な論理ゲートの端子の故障と前記故障検出が不可能な論理ゲートの端子と等価な故障をAU故障の集合としてその情報を入力する故障情報入力ステップと、
    前記AU故障の集合のうち、前記AU故障が同一信号経路上に複数個存在する場合、故障検出を妨げる論理ゲート若しくは端子又はハードマクロである故障検出障害箇所の出力属性端子が接続する方向の信号経路上で、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第1検査点挿入ステップと、
    前記検査点が挿入されたネットリストを出力するネットリスト出力ステップと、
    を有する設計方法。
  18. 複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置の設計方法であって、
    前記設計装置が、
    前記論理回路のネットリストを入力するネットリスト入力ステップと、
    前記論理回路のうち、故障検出制御ができないために故障検出処理が打ち切られた論理ゲートの端子と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUC故障の集合としてその情報を入力する故障情報入力ステップと、
    前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数の少ない位置のUC故障に接続される信号線に検査点を挿入する第1検査点挿入ステップと、
    前記検査点が挿入されたネットリストを出力するネットリスト出力ステップと、
    を有する設計方法。
  19. 複数の組合せ回路と順序回路が信号線で接続された論理回路に検査点を挿入する半導体集積回路の設計装置の設計方法であって、
    前記設計装置が、
    前記論理回路のネットリストを入力するネットリスト入力ステップと、
    前記論理回路のうち、故障観測ができないために故障検出処理が打ち切られた論理ゲートの端子の故障と前記故障検出処理が打ち切られた論理ゲートの端子と等価な故障の集合をUO故障の集合としてその情報を入力する故障情報入力ステップと、
    前記論理回路のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路から出力される信号を受信するフリップフロップのデータ入力端子から一番論理段数の少ない位置のUO故障に接続される信号線に検査点を挿入する第1検査点挿入ステップと、
    前記検査点が挿入されたネットリストを出力するネットリスト出力ステップと、
    を有する設計方法。
  20. 請求項17に記載の設計方法であって、
    前記設計装置が、
    さらに、前記検査点に関して挿入すべき数値の情報を入力する数値情報入力ステップと、
    複数存在する前記AU故障の各々に関して、前記AU故障とこれに等価とされる未検出故障の和を算出する未検出故障和算出ステップと、を有し、
    前記第1検査点挿入ステップでは、前記和の大きい順に前記AU故障に検査点を挿入する設計方法。
  21. 請求項17又は20に記載の設計方法であって、
    前記設計装置が、
    さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力ステップと、
    前記AU故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断ステップと、
    前記AUの集合の情報のうち、前記検査点挿入禁止情報に含まれるAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入ステップと、
    を有する設計方法。
  22. 請求項17又は21に記載の設計方法であって、
    前記設計装置が、
    前記論理回路の検査点挿入許可情報を入力する許可情報入力ステップと、
    前記AU故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断ステップと、
    前記AU故障の集合の情報のうち、前記検査点挿入許可情報に含まれないAU故障を除いたAU故障のうち、前記故障検出障害箇所から見て論理段数が一番少ない位置に存在するAU故障に接続される信号線に検査点を挿入する第2検査点挿入ステップと、
    を有する設計方法。
  23. 請求項17、20、21及び22のいずれか一項に記載の設計方法であって、
    前記設計装置が、
    前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力ステップと、
    前記検査点挿入箇所と、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップとの間の論理経路において、前記検査点挿入箇所と、前記フリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障との論理経路間に存在する、AU故障数と前記AU故障と等価な故障数の総和を求める総故障数和導出ステップと、
    前記総故障数和導出ステップで求められた故障数の総和を、検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する故障検出率算出ステップと、
    前記検査点挿入後の故障検出率を出力する故障検出率出力ステップと、
    を有する設計方法。
  24. 請求項23に記載の設計方法であって、
    前記設計装置が、
    さらに、前記検査点挿入箇所の論理出力を組合せ回路経由で受信するフリップフロップのデータ端子から見て前記検査点挿入箇所方向の最も論理段数が少ない箇所にあるAU故障に接続する信号経路に関して、前記故障検出障害箇所への信号経路ではない信号経路でのAU故障数と前記AU故障と等価な故障数の総和を算出する総故障数算出ステップと、
    前記総故障数算出ステップで算出された総和に、前記総故障数和導出ステップで求めた総和を加算する総和加算ステップと、を有し、
    前記故障検出率算出ステップでは、
    前記総和加算ステップで求めた値を、前記検査点挿入前の検出数に加えることで、前記検査点挿入後の故障検出率を算出する設計方法。
  25. 請求項18に記載の設計方法であって、
    前記設計装置が、
    さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力ステップと、
    複数存在する前記UC故障の各々に関して、前記UC故障と前記UC故障と等価とされる未検出故障数の和を算出する第1未検出故障数和算出ステップと、
    前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UC故障に検査点を挿入する第2検査点挿入ステップと、
    を有する設計方法。
  26. 請求項18又は25に記載の設計方法であって、
    前記設計装置が、
    さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力ステップと、
    前記UC故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断ステップと、
    前記UC故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、
    を有する設計方法。
  27. 請求項18又は25に記載の設計方法であって、
    前記設計装置が、
    さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力ステップと、
    前記UC故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断ステップと、
    前記UC故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUC故障を除いたUC故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路に信号を送信するフリップフロップの出力端子から一番論理段数が少ない位置のUC故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、
    を有する設計方法。
  28. 請求項19に記載の設計方法であって、
    前記設計装置が、
    さらに、前記検査点の挿入すべき数値の情報を入力する数値情報入力ステップと、
    複数存在する前記UO故障の各々に関して、前記UO故障と前記UO故障と等価とされる未検出故障数の和を算出する未検出故障数和算出ステップと、
    前記和の大きい順に、かつ前記検査点を挿入する数値の情報と同等の個数まで、前記UO故障に検査点を挿入する第2検査点挿入ステップと、
    を有する設計方法。
  29. 請求項19又は28に記載の設計方法であって、
    前記設計装置が、
    さらに、前記論理回路の検査点挿入禁止情報を入力する禁止情報入力ステップと、
    前記UO故障の集合の情報が、前記検査点挿入禁止情報に含まれるか否かを判断する判断ステップと、
    前記UO故障の集合の情報のうち、前記検査点挿入禁止情報に含まれるUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、
    を有する設計方法。
  30. 請求項19又は28に記載の設計方法であって、
    前記設計装置が、
    さらに、前記論理回路の検査点挿入許可情報を入力する許可情報入力ステップと、
    前記UO故障の集合の情報が、前記検査点挿入許可情報に含まれるか否かを判断する判断ステップと、
    前記UO故障の集合の情報のうち、前記検査点挿入許可情報に含まれないUO故障を除いたUO故障のうち、組合せ回路に信号を送信するフリップフロップと前記組合せ回路から出力される信号を受信するフリップフロップとの間の論理経路において、前記組合せ回路からの信号を受信するフリップフロップのデータ入力端子から一番論理段数が少ない位置のUO故障に接続される信号線に検査点を挿入する第3検査点挿入ステップと、
    を有する設計方法。
  31. 請求項18、25、26及び27のいずれか一項に記載の設計方法であって、
    前記設計装置が、
    さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力ステップと、
    前記検査点を挿入したUC故障と前記UC故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出ステップと、
    前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出ステップと、
    を有する設計方法。
  32. 請求項19、28、29及び30のいずれか一項に記載の設計方法であって、
    前記設計装置が、
    さらに、前記検査点を挿入する前の故障検出率情報を入力する故障検出率情報入力ステップと、
    前記検査点を挿入したUO故障と前記UO故障と等価とされる未検出故障数の和を算出する第2未検出故障数和算出ステップと、
    前記算出された和の値を前記検査点挿入前の検出故障数に合算することで、前記検査点挿入後の故障検出率を算出する故障検出率算出ステップと、
    を有する設計方法。
JP2010247903A 2010-11-04 2010-11-04 半導体集積回路の設計装置及び設計方法 Withdrawn JP2012099028A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010247903A JP2012099028A (ja) 2010-11-04 2010-11-04 半導体集積回路の設計装置及び設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010247903A JP2012099028A (ja) 2010-11-04 2010-11-04 半導体集積回路の設計装置及び設計方法

Publications (1)

Publication Number Publication Date
JP2012099028A true JP2012099028A (ja) 2012-05-24

Family

ID=46390843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010247903A Withdrawn JP2012099028A (ja) 2010-11-04 2010-11-04 半導体集積回路の設計装置及び設計方法

Country Status (1)

Country Link
JP (1) JP2012099028A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084150A (ja) * 2011-10-11 2013-05-09 Fujitsu Ltd 設計支援装置、設計支援方法および設計支援プログラム
JP2017040532A (ja) * 2015-08-19 2017-02-23 富士通株式会社 可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラ
US11693054B2 (en) 2021-06-08 2023-07-04 Fujitsu Limited Computer-readable recording medium storing analysis program, analysis method, and analysis device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084150A (ja) * 2011-10-11 2013-05-09 Fujitsu Ltd 設計支援装置、設計支援方法および設計支援プログラム
JP2017040532A (ja) * 2015-08-19 2017-02-23 富士通株式会社 可変遅延制御回路の縮退故障診断方法および可変遅延制御回路を有するメモリコントローラ
US11693054B2 (en) 2021-06-08 2023-07-04 Fujitsu Limited Computer-readable recording medium storing analysis program, analysis method, and analysis device

Similar Documents

Publication Publication Date Title
US5640403A (en) Fault diagnosis method for a sequential circuit
JP2008292467A (ja) 集積回路の故障モード・影響分析を実行するための方法、およびそのためのコンピュータプログラム製品
Yang et al. Quick scan chain diagnosis using signal profiling
US7765444B2 (en) Failure diagnosis for logic circuits
JP3018996B2 (ja) 故障個所特定化方法
Zeng et al. Scan based speed-path debug for a microprocessor
JP2003084036A (ja) 診断システム及び診断方法
Wang et al. An ATPG method for double stuck-at faults by analyzing propagation paths of single faults
JP2012099028A (ja) 半導体集積回路の設計装置及び設計方法
US6470468B1 (en) Test pattern generator, propagation path disconnecting method, and delay fault detecting method
JP2655105B2 (ja) 順序回路の故障箇所推定方法
JP2011118492A (ja) テストフロー提示コンピュータプログラム、テストフロー提示コンピュータシステム
Fang et al. RTL DFT techniques to enhance defect coverage for functional test sequences
Zokaee et al. A novel SAT-based ATPG approach for transition delay faults
JP2008527322A (ja) 回路配置並びにその検査および/または診断方法
Bernardi et al. On the modeling of gate delay faults by means of transition delay faults
JP4020731B2 (ja) 半導体集積回路の故障診断方法
Chen et al. An accurate timing-aware diagnosis algorithm for multiple small delay defects
JP2715989B2 (ja) Iddqを用いたCMOS論理回路の故障箇所の絞り込み方法
JPH0894714A (ja) Lsiの故障箇所推定方法
Inuyama et al. Critical-area-aware test pattern generation and reordering
JP3161345B2 (ja) Iddq異常を有する故障ブロック特定化方式
JP2004062222A (ja) 故障シミュレーション装置及び故障シミュレーションプログラム
Mehta et al. Improving the resolution of single-delay-fault diagnosis
Hsieh et al. High quality pattern generation for delay defects with functional sensitized paths

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140107