(57)【要約】【課題】素子に発生する強度故障の観点からテストパターンを評価することが可能な故障シミュレーション装置を提供する。【解決手段】故障シミュレーション装置は、正常回路に強度故障を生成して故障回路を生成する強度故障生成部１と、論理シミュレーション実行部４と、故障検出判定部５とを備えている。論理シミュレーション実行部４は、正常回路に対する論理シミュレーションと、強度故障生成部１で生成された故障回路に対する論理シミュレーションとを同一のテストパターン１２を用いて実行し、それらのシミュレーション結果４ａ，４ｂを出力する。故障検出判定部５は、シミュレーション結果４ａ，４ｂを比較し、その比較結果に基づいて、テストパターン１２によって強度故障が検出されるか否かを判定する。【選択図】図１
2005293385.tif 000002
【特許請求の範囲】
【請求項１】
正常回路に対して素子の出力信号の強度故障を生成して故障回路を生成する強度故障生成部と、
前記正常回路に対する論理シミュレーションと、前記故障回路に対する論理シミュレーションとを、同一のテストパターンを用いて実行するシミュレーション実行部と、
前記シミュレーション実行部で得られる、前記正常回路に対するシミュレーション結果と前記故障回路に対するシミュレーション結果とを比較し、その比較結果に基づいて、前記テストパターンによって前記強度故障が検出されるか否かを判定する故障検出判定部と
を備える、故障シミュレーション装置。
【請求項２】
請求項１に記載の故障シミュレーション装置であって、
前記強度故障生成部は、前記正常回路のネットリストにおいて定められている、前記強度故障の生成対象素子の出力信号強度を変更することにより、当該生成対象素子に前記強度故障を生成する、故障シミュレーション装置。
【請求項３】
請求項１に記載の故障シミュレーション装置であって、
前記強度故障生成部は、前記正常回路のネットリストを変更することにより、前記正常回路における前記強度故障の生成対象素子の出力段に、当該生成対象素子の出力信号をその強度を変更して出力する素子を配置し、これによって当該生成対象素子に前記強度故障を生成する、故障シミュレーション装置。
【請求項４】
請求項１乃至請求項３のいずれか一つに記載の故障シミュレーション装置であって、
前記強度故障生成部は、
前記正常回路を構成する素子の中から、複数の素子からの出力信号が与えられる配線に対して出力信号を与える素子だけを抽出する素子抽出部と、
前記素子抽出部で抽出された素子に対して前記強度故障を生成して前記故障回路を生成する故障回路生成部と
を備える、故障シミュレーション装置。
【請求項５】
請求項４に記載の故障シミュレーション装置であって、
前記素子抽出部は、前記正常回路を構成する素子の中から、複数の素子からの出力信号が与えられ、かつ信号衝突が発生する配線に対して出力信号を与える素子だけを抽出する、故障シミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、故障シミュレーションによって半導体集積回路の検査用テストパターンの評価を行う故障シミュレーション装置に関する。
【背景技術】
【０００２】
半導体集積回路に対する従来の故障シミュレーション装置では、縮退故障や遅延故障、あるいはブリッジ故障をシミュレーション対象として検査用テストパターンを評価している。ここで縮退故障とは、素子の出力配線が接地電位や電源電位に接続されて当該素子の出力信号が“１”あるいは“０”に強制的に固定される故障である。また遅延故障とは、素子での出力信号の遅延時間が変化する故障であって、ブリッジ故障とは、２つの出力配線間が短絡する故障である。なお、故障シミュレーションに関する技術が特許文献１〜３に開示されている。
【０００３】
【特許文献１】特開平９−６１５０２号公報
【特許文献２】特開平９−８０１２１号公報
【特許文献３】特開平８−３０４５１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
半導体集積回路を構成する素子に発生する故障としては、上記縮退故障、遅延故障及びブリッジ故障以外にも、素子の出力信号の強度が変化する故障（以後、「強度故障」と呼ぶ）、つまり素子の駆動能力が変化する故障も存在する。例えば、ＭＯＳトランジスタが設計通りに製造されず当該ＭＯＳトランジスタの駆動能力が変化し、これにより出力信号強度が変化することがある。また、製造段階で素子の出力配線に異物が付着してそのインピーダンスが変化し、これにより当該素子の出力インピーダンスが見掛け上変化して出力信号強度が変化することがある。
【０００５】
このような強度故障が素子に発生した場合、その出力信号が他の素子の出力信号と衝突しない場合には、当該強度故障が発生した素子の出力配線での信号値（“１”または“０”の値）は変化しないため問題とならない。しかしながら、他の素子の出力信号と衝突する場合には、その信号衝突が発生する配線での信号値は、信号強度が最も大きい出力信号の信号値によって決定されるため、当該信号衝突が発生する配線での信号値が設計値から変化して、半導体集積回路が誤動作することがある。従って、出荷テストに使用されるテストパターンでこの強度故障を検出できることが望まれ、当該テストパターンを強度故障の観点から評価する必要がある。
【０００６】
しかしながら、従来の故障シミュレーション装置では縮退故障、遅延故障あるいはブリッジ故障をシミュレーション対象としているため、強度故障の観点からはテストパターンを評価することができない。
【０００７】
そこで、本発明は上述の問題に鑑みて成されたものであり、素子に発生する強度故障の観点から、半導体集積回路の検査用テストパターンを評価することが可能な故障シミュレーション装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明の故障シミュレーション装置は、正常回路に対して素子の出力信号の強度故障を生成して故障回路を生成する強度故障生成部と、前記正常回路に対する論理シミュレーションと、前記故障回路に対する論理シミュレーションとを、同一のテストパターンを用いて実行するシミュレーション実行部と、前記シミュレーション実行部で得られる、前記正常回路に対するシミュレーション結果と前記故障回路に対するシミュレーション結果とを比較し、その比較結果に基づいて、前記テストパターンによって前記強度故障が検出されるか否かを判定する故障検出判定部とを備える。
【発明の効果】
【０００９】
この発明の故障シミュレーション装置によれば、素子の出力信号の強度故障をシミュレーション対象としているため、当該強度故障の観点からテストパターンを評価することができる。
【発明を実施するための最良の形態】
【００１０】
実施の形態１．
図１は本発明の実施の形態１に係る故障シミュレーション装置の構成を示すブロック図である。本実施の形態１に係る故障シミュレーション装置は、半導体集積回路を構成する素子に発生する強度故障を故障シミュレーション対象としている。以下では、本実施の形態１に係る故障シミュレーション装置について詳細に説明するが、その前に、本故障シミュレーション装置のシミュレーション対象である強度故障について詳細に説明する。
【００１１】
図２，３は強度故障を説明するための図である。図２に示されるように、例えば、直列接続されたＰＭＯＳトランジスタ１００ａ及びＮＭＯＳトランジスタ１００ｂから成るＮＯＴ回路１００において、ＮＭＯＳトランジスタ１００ｂのゲート幅やゲート長が設計通りに製造されなかったためにそのドレイン電流が変化すると、当該ＮＭＯＳトランジスタ１００ｂの駆動能力が設計値から変化し、ＮＯＴ回路１００に強度故障が発生する。また、図３に示されるように、ウェハプロセスにおいてＮＯＴ回路１００の出力配線１１０に塵等の異物１２０が付着し、当該出力配線１１０のインピーダンスが変化すると、ＮＯＴ回路１００の出力インピーダンスが見掛け上変化してその駆動能力も見掛け上変化し、当該ＮＯＴ回路１００に強度故障が発生する。
【００１２】
このように、半導体集積回路においては、素子そのものの駆動能力が変化して強度故障が発生する場合や、駆動能力が見掛け上変化して強度故障が発生する場合がある。
【００１３】
本実施の形態１に係る故障シミュレーション装置では、このような強度故障をモデル化して正常回路に生成し故障シミュレーションを実行する。図１に示されるように、本実施の形態１に係る故障シミュレーション装置は、設計通りの回路である正常回路に強度故障を生成して故障回路を生成する強度故障生成部１と、論理シミュレーション実行部４と、故障検出判定部５とを備えている。
【００１４】
強度故障生成部１は、故障の無い正常回路を構成する素子の中から強度故障を生成する対象となる素子（以後、「故障生成対象素子」と呼ぶ）を抽出する素子抽出部として機能する故障リスト作成部２と、故障リスト作成部２で抽出された素子に対して強度故障を生成して故障回路を生成する故障回路生成部３とを備えている。
【００１５】
故障リスト作成部２は、予め準備された正常回路のネットリスト１１から、故障生成対象素子のインスタンス名と出力端子名とを抽出し、これらの情報を記録したファイルを生成して故障リスト２ａとして出力する。このように、故障リスト２ａには、正常回路中のどの素子に強度故障を生成するかという情報が記憶されている。従って、故障リスト２ａには、正常回路に生成する強度故障のリストが記録されていると言える。
【００１６】
本実施の形態１では、故障リスト作成部２は、正常回路中のすべての素子を故障生成対象素子としている。従って、故障リスト２ａには、正常回路のすべての素子のインスタンス名と出力端子名とが記載されることになる。また、ユーザーが作成した、故障生成対象素子のインスタンス名と出力端子名とが記載された故障リストが存在する場合には、故障リスト作成部２は、上記のように正常回路のネットリスト１１からファイルを作成するのではなく、そのユーザーが作成した故障リストを故障リスト２ａとして出力する。
【００１７】
故障回路生成部３は、正常回路のネットリスト１１をもとにして、故障リスト２ａ中の故障生成対象素子の一つ一つに対して強度故障を生成し、一つの故障生成対象素子だけに強度故障が生成された故障回路のネットリスト３ａを、故障リスト２ａ中のすべての故障生成対象素子に対して作成する。例えば、故障リスト２ａ中に素子Ａ，Ｂ，Ｃが記録されている場合、素子Ａだけに強度故障を生成した故障回路のネットリスト３ａと、素子Ｂだけに強度故障を生成した故障回路のネットリスト３ａと、素子Ｃだけに強度故障を生成した故障回路のネットリスト３ａとを作成する。従って、故障回路生成部３では、それぞれおいて強度故障が一つだけ存在し、かつ強度故障が生成されている素子が互いに異なる複数の故障回路が生成され、故障回路のネットリスト３ａは、故障リスト２ａに記載されている素子の数と同じ数だけ作成される。
【００１８】
論理シミュレーション実行部４は、正常回路のネットリスト１１に基づいて正常回路に対する論理シミュレーションを実行して、そのシミュレーション結果４ａを出力する。また、論理シミュレーション実行部４は、故障回路生成部３が作成した故障回路のネットリスト３ａに基づいて故障回路のすべてに対して個別に論理シミュレーションを実行し、そのシミュレーション結果４ｂを出力する。なお、正常回路に対する論理シミュレーションと、故障回路に対する論理シミュレーションとは、同一のテストパターン１２を用いて実行される。
【００１９】
故障検出判定部５は、正常回路のシミュレーション結果４ａを期待値として、これと、故障回路のシミュレーション結果４ｂのそれぞれとを比較し、その比較結果に基づいて、故障リスト２ａ中の各強度故障が出荷テスト時にテストパターン１２によって検出されるか否かを判定する。具体的には、論理シミュレーション結果４ａ，４ｂに含まれる、ストローブ実行タイミングにおけるストローブ実行端子での信号値が、正常回路及び故障回路の間で互いに異なる場合には、その故障回路に含まれる強度故障がテストパターン１２によって検出されると判定し、当該信号値が正常回路及び故障回路の間で同じ場合には、その故障回路に含まれる強度故障がテストパターン１２によっては検出されないと判定する。そして、ストローブ実行タイミングにおけるストローブ実行端子での信号値が、正常回路では“０”または“１”のときに、故障回路では不定値（“Ｘ”）であれば、その故障回路に含まれる強度故障がテストパターン１２によって検出される可能性があると判定する。
【００２０】
故障検出判定部５は、これらの判定結果に基づいて故障検出率を算出し、その算出結果と当該判定結果とを記録したファイルを故障検出結果リスト５ａとして出力する。なお、故障検出率とは、テストパターン１２によって検出されると判定した故障数と検出される可能性があると判定した故障数とを足し合わせた値の故障リスト２ａにおける全故障数に対する割合である。
【００２１】
このように、本実施の形態１に係る故障シミュレーション装置では、半導体集積回路を構成する素子に発生する強度故障の観点から、出荷テスト時に使用される検査用テストパターン１２を評価することができる。
【００２２】
なお、正常回路のネットリスト１１、故障回路のネットリスト３ａ、故障リスト２ａ、正常回路の論理シミュレーション結果４ａ、故障回路の論理シミュレーション結果４ｂ、故障検出結果リスト５ａ、テストパターン１２、及びユーザーが作成した故障リストは、図示しない記憶装置に記憶され、当該記憶装置から読み出されて使用される。
【００２３】
次に、故障回路生成部３での故障回路の生成方法、つまり強度故障のモデル化の方法について説明する。本実施の形態１では、説明を簡単にするために、正規回路がＮＯＴ回路１００だけで構成されており、当該ＮＯＴ回路１００に強度故障を生成する場合を例に挙げて、２通りの故障回路生成方法を説明する。
【００２４】
図４は上記例での正常回路のネットリスト１１を示しており、図５，６は故障回路生成方法の一例を説明するための図であり、図７は故障回路生成方法の他の例を説明するための図である。なお、図６，７は故障回路のネットリスト３ａを示しており、図４，６，７のネットリストは、Verilog-HDL形式で記述されたものである。また、Verilog-HDL形式では、ＮＯＴ回路は“not”で、後述する非反転バッファは“buf”で表記される。また、Verilog-HDL形式では、後述する信号強度“strong”は信号強度“weak”よりも強度が大きいことを意味している。
【００２５】
図４に示されるように、正常回路におけるＮＯＴ回路１００の出力信号強度は、信号値“１”，“０”ともに“strong”に設定されている。このようなＮＯＴ回路１００に強度故障を生成する際には、図５に示されるように、ＮＯＴ回路１００の出力段に信号強度変換素子１５０を配置する。信号強度変換素子１５０は、ＮＯＴ回路１００の出力信号をその信号強度を変更して出力する素子である。従って、信号強度変換素子１５０の出力をＮＯＴ回路１００の出力と見なすことにより、ＮＯＴ回路１００の出力信号強度が見掛け上変化し、これにより、当該ＮＯＴ回路１００に強度故障を生成することができる。信号強度変換素子１５０としては、例えば、ＮＯＴ回路１００とは出力信号強度が異なる非反転バッファ回路を用いることができる。
【００２６】
図５に示されるような故障回路は、図４の正常回路のネットリスト１１を変更することにより実現できる。例えば、図６に示されるように、正常回路のネットリスト１１においてＮＯＴ回路１００の出力と接続されていた出力端子ＯＵＴを、信号強度変換素子１５０である非反転バッファの出力に接続するように変更し、更にＮＯＴ回路１００の出力を非反転バッファの入力とするように変更する。そして、この非反転バッファの出力信号強度を、信号値“１”で“strong”に、信号値“０”で“weak”に設定する。
【００２７】
正常回路のネットリスト１１をこのように変更することにより、ＮＯＴ回路１００における信号値“０”の出力信号は、非反転バッファでその信号強度が“strong”から“weak”に変換されて出力端子ＯＵＴに到達し、ＮＯＴ回路１００に強度故障が生成される。
【００２８】
なお、このように信号値“０”だけの出力信号の強度が変化するのは、上述の図２を参照して説明したように、ＮＯＴ回路１００を構成するＮＭＯＳトランジスタ１００ｂだけの駆動能力が変化した場合である。
【００２９】
故障回路を生成するための他の方法としては、正常回路のネットリスト１１において定められているＮＯＴ回路１００の出力信号強度を直接変更する方法がある。例えば、図７に示されるように、正常回路におけるＮＯＴ回路１００の信号値“０”の出力信号強度を“strong”から“weak"に変更することによって、ＮＯＴ回路１００の出力信号強度が本来の値から変更されたＮＯＴ回路１００を生成でき、故障回路のネットリスト３ａを得ることができる。
【００３０】
以上のように、強度故障をモデル化する方法は２通りあり、故障回路生成部３はどちらかの方法を用いて故障リスト２ａ中の各素子に強度故障をモデル化して生成し、故障回路のネットリスト３ａを生成する。
【００３１】
なお、Verilog-HDL形式のネットリストにおいては、ＮＯＴ回路やＡＮＤ回路などの論理レベルでの素子の信号強度はユーザーが指定することができるが、ＭＯＳトランジスタなどのスイッチレベルでの素子ではユーザーが指定することができない。従って、スイッチレベルでの素子に強度故障を生成する場合には、信号強度変換素子１５０を設ける方法が採用されることになる。
【００３２】
次に、本実施の形態１に係る故障シミュレーション装置において、故障シミュレーション開始から終了までの一連の動作について説明する。図８は、本実施の形態１に係る故障シミュレーション装置の動作を示すフローチャートである。図８に示されるように、ステップＳＴ１において、故障リスト作成部２はユーザーが作成した故障リストが記憶装置内に存在するか否かを確認し、存在しなければステップＳＴ２において、正常回路のネットリスト１１を参照して故障リスト２ａを作成する。一方、故障リスト作成部２は、ユーザーが作成した故障リストの存在を確認すると、それを故障リスト２ａとして出力する。
【００３３】
次に、ステップＳＴ３において、故障回路生成部３は、正常回路のネットリスト１１をもとにして、故障リスト２ａ中のすべての強度故障について、強度故障が一つだけ生成された故障回路のネットリスト３ａを作成する。そして、ステップＳＴ４において、論理シミュレーション実行部４は、正常回路のネットリスト１１に基づいて正常回路の論理シミュレーションを実行し、その結果４ａを記憶装置に書き込む。そして、ステップＳＴ５において、論理シミュレーション実行部４は、故障回路のネットリスト３ａに基づいて一つの故障回路に対して論理シミュレーションを実行し、その結果４ｂを記憶装置に書き込む。ステップＳＴ５の論理シミュレーションでは、ステップＳＴ４で使用された同一のテストパターン１２が用いられる。
【００３４】
次に、ステップＳＴ６において、故障検出判定部５は、正常回路の論理シミュレーション結果４ａと故障回路の論理シミュレーション４ｂとを比較し、その比較結果に基づいて実機においてテストパターン１２で強度故障を検出できるか否かを判定する。そして、ステップＳＴ７において、故障検出判定部５は、故障リスト２ａ中のすべての強度故障に対して故障検出判定が終了したか否かを判断し、終了していない場合には、その旨を論理シミュレーション実行部４に通知する。それを受け取った論理シミュレーション実行部４は、ステップＳＴ５において、前回とは別の故障回路に対して論理シミュレーションを実行する。
【００３５】
一方、ステップＳＴ７において、故障リスト２ａ中のすべての強度故障に対して故障検出判定が終了したと判断されると、ステップＳＴ８において、故障検出判定部５は故障検出率を算出し、故障検出結果リスト５ａを生成する。
【００３６】
次に、正常回路の論理シミュレーション結果４ａと、故障回路の論理シミュレーション結果４ｂとの具体例について説明する。以下では、図９に示される回路を正常回路とし、それに強度故障を生成した場合について説明する。なお、図９の回路は、Verilog-HDL形式のネットリストを回路図で表現したものである。
【００３７】
図９に示されるＮＭＯＳトランジスタ１７０は、Verilog-HDL形式のネットリストにおいて“nmos”と表記されるＭＯＳゲートであって、ＰＭＯＳトランジスタ１７２は“pmos”と表記されるＭＯＳゲートである。そして、ＰＭＯＳトランジスタ１７１はVerilog-HDL形式のネットリストにおいて“rpmos”と表記される抵抗性ＭＯＳゲートである。
【００３８】
ＮＭＯＳトランジスタ１７０及びＰＭＯＳトランジスタ１７１，１７２のゲート入力には、それぞれ入力端子Ａ０〜Ａ２が接続されており、それらのソース入力にはそれぞれ入力端子ＩＮ０〜ＩＮ２が接続されている。そして、ＮＭＯＳトランジスタ１７０及びＰＭＯＳトランジスタ１７１，１７２のドレイン出力はすべて配線１８０を介して出力端子ＯＵＴ０に接続されている。
【００３９】
なお、Verilog-HDL形式のネットリストで“nmos”と表記されるＮＭＯＳトランジスタ１７０と、“pmos”と表記されるＰＭＯＳトランジスタ１７２は、ソース入力に与えられた信号をそのままの信号強度でドレイン出力に伝達するが、“rpmos”と表記されるＰＭＯＳトランジスタ１７１は、ソース入力に与えられた信号を信号強度を減少させてドレイン出力に伝達する。例えば、ソース入力に信号強度“strong”の信号が与えられると、“strong”よりも弱い信号強度“pull”の信号に変化させて出力する。
【００４０】
本例に係る故障シミュレーションでは、図９に示される正常回路のＮＭＯＳトランジスタ１７０に強度故障を生成する。具体的には、ＮＭＯＳトランジスタ１７０は信号強度を指定することができないことから、正常回路のネットリストを変更して、ＮＭＯＳトランジスタ１７０の出力段に上述の信号強度変換素子１５０を配置し、その信号強度変換素子１５０の出力を出力端子ＯＵＴ０に接続することによって、ＮＭＯＳトランジスタ１７０に強度故障を生成し、故障回路を生成する。
【００４１】
また、本例では、強度故障が生成されることにより、ＮＭＯＳトランジスタ１７０のドレイン出力の信号強度が２段階減少することとする。つまり、ＮＭＯＳトランジスタ１７０のソース入力に信号強度“strong”の信号が与えられた場合、ドレイン出力から信号強度“weak”の信号が出力される。なお、Verilog−HDL形式では、“strong”、“pull”、“weak”の順で信号強度が小さくなる。
【００４２】
図１０は、図９に示される正常回路の論理シミュレーション結果４ａと、当該正常回路に上記強度故障を生成して得られる故障回路の論理シミュレーション結果４ｂとを示す図である。図１０では、入力端子Ａ０〜Ａ２，ＩＮ０〜ＩＮ２に入力される信号波形をＡ０〜Ａ２，ＩＮ０〜ＩＮ２の欄にそれぞれ示しており、またＯＵＴ０１，ＯＵＴ０２の欄には、正常回路及び強度故障を有する故障回路の出力端子ＯＵＴ０での信号波形をそれぞれ示している。そして、ＮＭＯＳトランジスタ１７０に“０”縮退故障を生成した場合、つまりＮＭＯＳトランジスタ１７０のソース出力の信号値を“０”に固定した場合の出力端子ＯＵＴ０での波形をＯＵＴ０３の欄に示し、“１”縮退故障を生成した場合、つまりＮＭＯＳトランジスタ１７０のソース出力の信号値を“１”に固定した場合の出力端子ＯＵＴ０での波形をＯＵＴ０４の欄に示している。
【００４３】
図１０では、信号強度“strong”の信号波形を実線で、信号強度“pull”の信号波形を一点鎖線で、信号強度“weak”の信号波形を二点鎖線でそれぞれ示している。また図１０に示される例では、“０”縮退故障あるいは“１”縮退故障が生成されているＮＭＯＳトランジスタ１７０の出力信号強度は“strong”に設定されており、入力信号ＩＮ０〜ＩＮ２には信号強度“strong”の信号値“０”、“１”、“１”がそれぞれ与えられる。なお、図１０におけるＯＵＴ０３の欄の斜線部分は、その部分での信号値が不定（“Ｘ”）であることを意味している。
【００４４】
図１０に示されるように、入力端子Ａ０〜Ａ２の信号値がすべて“１”のとき、ＮＭＯＳトランジスタ１７０だけがオン状態となるため、入力端子ＩＮ０の信号値だけが出力端子ＯＵＴ０に伝達される。従って、図１０のＯＵＴ０１の欄に示されるように、正常回路における出力端子ＯＵＴ０には信号強度“strong”の信号値“０”が与えられる。一方、このとき、故障回路におけるＮＭＯＳトランジスタ１７０では信号強度が２段階減少するため、図１０のＯＵＴ０２の欄に示されるように、出力端子ＯＵＴ０には信号強度“weak”の信号値“０”が与えられる。
【００４５】
入力端子Ａ０〜Ａ２の信号値がそれぞれ“１”、“０”、“１”のときには、ＮＭＯＳトランジスタ１７０及びＰＭＯＳトランジスタ１７１がオン状態となるため、ＮＭＯＳトランジスタ１７０のドレイン出力からの信号と、ＰＭＯＳトランジスタ１７１のドレイン出力からの信号が配線１８０で衝突する。このとき、正常回路においては、ＮＭＯＳトランジスタ１７０のドレイン出力からは信号強度“strong”の信号値“０”が出力され、ＰＭＯＳトランジスタ１７１のドレイン出力からは信号強度“pull”の信号値“１”が出力されることから、正常回路における配線１８０の信号値は“０”となり、その結果、図１０のＯＵＴ０１の欄に示されるように出力端子ＯＵＴ０の信号値も“０”となる。
【００４６】
一方、このときの故障回路においては、ＮＭＯＳトランジスタ１７０のドレイン出力からは信号強度“weak”の信号値“０”が出力され、ＰＭＯＳトランジスタ１７１のドレイン出力からは信号強度“pull”の信号値“１”が出力されることから、故障回路における配線１８０の信号値は“１”となり、その結果、図１０のＯＵＴ０２の欄に示されるように出力端子ＯＵＴ０の信号値も“１”となる。
【００４７】
入力端子Ａ０〜Ａ２の信号値がそれぞれ“０”，“０”，“１”のときには、ＰＭＯＳトランジスタ１７１だけがオン状態となるため、当該ＰＭＯＳトランジスタ１７１のドレイン出力の信号値だけが出力端子ＯＵＴ０に伝達される。従って、正常回路及び故障回路ともに出力端子ＯＵＴ０には信号強度“pull”の信号値“１”が与えられる。
【００４８】
入力端子Ａ０〜Ａ２の信号値がすべて“０”のときには、ＰＭＯＳトランジスタ１７１，１７２がオン状態となるため、ＰＭＯＳトランジスタ１７１のドレイン出力からの信号と、ＰＭＯＳトランジスタ１７２のドレイン出力からの信号が配線１８０で衝突する。このとき、正常回路及び故障回路では、ＰＭＯＳトランジスタ１７１のドレイン出力からは信号強度“pull”の信号値“１”が出力され、ＰＭＯＳトランジスタ１７２のドレイン出力からは信号強度“strong”の信号値“１”が出力されることから、正常回路及び故障回路における配線１８０の信号値は“１”となり、その結果、出力端子ＯＵＴ０の信号値も“１”となる。
【００４９】
そして、入力端子Ａ０〜Ａ２の信号値がそれぞれ“０”，“１”，“０”のときには、ＰＭＯＳトランジスタ１７２だけがオン状態となるため、当該ＰＭＯＳトランジスタ１７２のドレイン出力の信号値だけが出力端子ＯＵＴ０に伝達される。従って、正常回路及び故障回路ともに出力端子ＯＵＴ０には信号強度“strong”の信号値“１”が与えられる。
【００５０】
このように、入力端子Ａ０〜Ａ２の信号値がそれぞれ“１”，“０”，“１”のときには、配線１８０で信号衝突が生じて、故障回路における配線１８０の信号値が“１”となり正常回路から変化する。従って、図１０に示されるように、ストローブ実行タイミングｔ１を入力端子Ａ０〜Ａ２の信号値がそれぞれ“１”，“０”，“１”となるタイミングに設定し、正常回路及び故障回路の出力端子ＯＵＴ０の信号値を比較することによって、ＮＭＯＳトランジスタ１７０に生成した強度故障を検出することができる。
【００５１】
なお、図１０のＯＵＴ０３，０４の欄に示されるように、“０”縮退故障あるいは“１”縮退故障を故障モデルとした場合の出力端子ＯＵＴ０の信号波形は、上記のように強度故障を故障モデルとした場合の信号波形とは異なるため、“０”縮退故障モデルや“１”縮退故障モデルでは強度故障を再現することはできない。また、遅延故障モデルやブリッジ故障モデルでも、同様に強度故障を再現することはできない。
【００５２】
以上のように、本実施の形態１に係る故障シミュレーション装置では、強度故障をシミュレーション対象としているため、強度故障の観点から出荷テストで使用されるテストパターン１２を評価することができる。
【００５３】
また、図７を参照して説明したように、正常回路のネットリスト１１で定められている故障生成対象素子の出力信号強度を変更することにより、正常回路に簡単に強度故障を生成することができる。
【００５４】
また、図４〜６を参照して説明したように、正常回路のネットリスト１１を変更して、故障生成対象素子の出力段に信号強度変換素子１５０を配置することにより、故障生成対象素子の出力信号強度をネットリスト上で直接変更することができない場合であっても、当該故障生成対象素子に強度故障を確実に生成することができる。
【００５５】
実施の形態２．
図１１は本発明の実施の形態２に係る故障シミュレーション装置の構成を示すブロック図である。本実施の形態２に係る故障シミュレーション装置は、上述の実施の形態１に係る故障シミュレーション装置において、強度故障生成部１の替わりに強度故障生成部２１を備えるものである。
【００５６】
上述のように、素子に強度故障が発生した場合であっても、その出力信号が他の素子の出力信号と衝突しない場合には、その強度故障が発生した素子の出力配線での信号値は変化しないため問題とならない。例えば、図１２に示される回路では、ＮＯＴ回路２００の出力配線２１０には他の素子からの出力信号が与えられることは無いため、ＮＯＴ回路２００に強度故障が発生した場合であっても、その出力配線２１０の信号値は設計値から変化することは無い。そのため、出力配線２１０に一方の入力が接続されているＮＡＮＤ回路２２０の出力信号値も設計値から変化することは無い。従って、故障シミュレーションにおいて、ＮＡＮＤ回路２２０の出力信号が与えられるストローブ実行端子２３０の信号値は正常回路と故障回路とで相違が生じない。
【００５７】
一方、上述の図９に示される正常回路に対する故障シミュレーションでは、ストローブ実行タイミングｔ１において、複数の素子からの出力信号が与えられる配線１８０の信号値が正常回路と故障回路とで相違することがあり、これによって、ストローブ実行端子である出力端子ＯＵＴ０の信号値も正常回路と故障回路とで相違することがある。
【００５８】
このように、複数の素子からの出力信号が与えられる配線（以後、「マルチドライブ配線」と呼ぶ）に信号を出力する素子に強度故障が発生した場合には、その強度故障は当該配線の信号値に影響を与えることがあるため、出荷テスト時にテストパターンで当該強度故障を検出できる可能性があるが、一つの素子からの出力信号だけが与えられる配線に信号を出力する素子に強度故障が発生した場合には、その強度故障は当該配線での信号値に影響を与えないため、テストパターンで検出することができない。また、このような強度故障によって半導体集積回路が誤動作することは無いため、当該強度故障を検出する必要性も乏しい。
【００５９】
そこで、本実施の形態２では、ユーザーが作成した故障リストが存在しない場合には、マルチドライブ配線に対して出力信号を与える素子に発生する強度故障だけを故障シミュレーション対象とし、それによって、故障シミュレーション時間の短縮を図ることができる故障シミュレーション装置を提供する。
【００６０】
図１１に示されるように、本実施の形態２に係る強度故障生成部２１は、正常回路から故障生成対象素子を抽出する素子抽出部として機能する故障リスト作成部２２と、上述の故障回路生成部３とを備えている。
【００６１】
故障リスト作成部２２は、正常回路のネットリスト１１から、正常回路におけるマルチドライブ配線の情報を抽出し、更に当該マルチドライブ配線に信号を出力する素子のインスタンス名と出力端子名とを抽出し、これらの情報を記録したファイルを生成してこれを故障リスト２２ａとして出力する。そして、実施の形態１と同様に、ユーザーが作成した、故障生成対象素子のインスタンス名と出力端子名とが記載された故障リストが存在する場合には、故障リスト作成部２２は、そのユーザーが作成した故障リストを故障リスト２２ａとして出力する。
【００６２】
このように、本実施の形態２では、ユーザが作成した故障リストが存在しない場合には、マルチドライブ配線に信号を出力する素子だけが故障生成対象素子として故障リスト２２ａに記録される。
【００６３】
故障回路生成部３は、正常回路のネットリスト１１をもとにして、一つの故障生成対象素子だけに強度故障が生成された故障回路のネットリスト３ａを、故障リスト２２ａ中のすべての故障生成対象素子に対して作成する。その他の構成について実施の形態１に係る故障シミュレーション装置と同様であるため、その説明は省略する。
【００６４】
このように、本実施の形態２に係る故障シミュレーション装置では、故障リスト作成部２２が、正常回路の中から、マルチドライブ配線に対して信号を出力している素子だけを故障生成対象素子として抽出しているため、正常回路からすべての素子を故障生成対象素子として抽出する実施の形態１に係る故障シミュレーション装置よりも、シミュレーション対象となる強度故障の数が減少し、故障シミュレーションに必要な時間を低減することができる。また、一つの素子からの出力信号が与えられる配線では信号の衝突は発生せず、当該素子に強度故障が生じた場合であってもその配線では信号値が変化しないことから、マルチドライブ配線に対して信号を出力している素子に発生する強度故障だけに限定して故障シミュレーションを実行したとしても、故障シミュレーション結果の正当性に影響を与えることは無い。
【００６５】
実施の形態３．
図１３は、本発明の実施の形態３に係る故障シミュレーション装置の構成を示すブロック図である。本実施の形態３に係る故障シミュレーション装置は、上述の実施の形態２に係る故障シミュレーション装置において、故障リスト作成部２２の替わりに故障リスト作成部３２を、論理シミュレーション実行部４の替わりに論理シミュレーション実行部３４を備え、更に故障回路生成部３と、故障リスト作成部３２と、論理シミュレーション実行部３４の機能の一部とで強度故障生成部３１を構成するものである。
【００６６】
上述の実施の形態２に係る故障シミュレーション装置では、マルチドライブ配線に出力信号を与える素子に発生する強度故障だけに絞って故障シミュレーションを実行していたが、マルチドライブ配線であっても信号衝突が発生しない配線も存在し、このような信号衝突が発生しないマルチドライブ配線では、それに対して信号を出力する素子に強度故障が発生した場合であっても信号値は変化せず、当該強度故障をテストパターンで検出することはできない。以下に、このことについて詳細に説明する。
【００６７】
図１４は、信号衝突が発生しないマルチドライブ配線を有する回路の一例を示す図である。図１４に示されるように、トランスミッションゲート３００のデータ出力と、クロックドインバータ３１０のデータ出力とは、配線３３０を介してＮＯＴ回路３２０の入力に接続されている。従って、配線３３０は、トランスミッションゲート３００の出力信号と、クロックドインバータ３１０の出力信号とが与えられるマルチドライブ配線である。
【００６８】
ＮＯＴ回路３２０の出力はクロックドインバータ３１０のデータ入力と出力端子３４０とに接続されている。また、クロックドインバータ３１０の正論理のクロック入力と、トランスミッションゲート３００の負論理のクロック入力には入力端子３５０ｂが接続されており、クロックドインバータ３１０の負論理のクロック入力と、トランスミッションゲート３００の正論理のクロック入力には入力端子３５０ａが接続されている。そして、トランスミッションゲート３００のデータ入力には入力端子３５０ｃが接続されている。
【００６９】
このような回路において、入力端子３５０ａ，３５０ｂに互いに位相が１８０°異なるクロック信号が入力され、入力端子３５０ａの信号値が“１”、入力端子３５０ｂの信号値が“０”となると、トランスミッションゲート３００のデータ出力からは出力信号が出力されるが、クロックドインバータ３１０のデータ出力はハイインピーダンスとなるため、配線３３０では信号の衝突は発生しない。また、入力端子３５０ａの信号値が“０”、入力端子３５０ｂの信号値が“１”となる場合であっても、クロックドインバータ３１０のデータ出力から出力信号が出力されるが、トランスミッションゲート３００のデータ出力はハイインピーダンスとなるため、配線３３０では信号衝突は発生しない。
【００７０】
以上のように、配線３３０では信号衝突が発生しないため、クロックドインバータ３１０やトランスミッションゲート３００で強度故障が発生した場合であっても、配線３３０の信号値は設計値から変化しない。そのため、出力端子３４０の信号値も設計値から変化しない。従って、出荷テスト時において出力端子３４０の信号値を観測したとしても、クロックドインバータ３１０やトランスミッションゲート３００に発生した強度故障を検出することはできず、故障シミュレーションにおいても検出できない。また、このような強度故障によって半導体集積回路が誤動作することは無いため、当該強度故障を検出する必要性も乏しい。
【００７１】
そこで、本実施の形態３では、ユーザーが作成した故障リストが存在しない場合には、マルチドライブ配線のうち信号衝突が発生する配線（以後、「信号衝突配線」と呼ぶ）に信号を出力する素子に発生する強度故障だけを故障シミュレーション対象とし、それによって、故障シミュレーション時間の短縮を図ることができる故障シミュレーション装置を提供する。
【００７２】
図１３に示されるように、本実施の形態３に係る強度故障生成部３１は、上述の故障回路生成部３と、故障リスト作成部３２と、論理シミュレーション実行部３４の機能の一部とで構成されている。論理シミュレーション実行部３４は、上述の論理シミュレーション実行部４と同様に、正常回路のネットリスト１１に基づいて正常回路に対する論理シミュレーションを実行して、そのシミュレーション結果４ａを出力する機能を備えている。更に、論理シミュレーション実行部３４は、正常回路に対する論理シミュレーションの実行中に、どのマルチドライブ配線に信号衝突が発生するのかを確認し、その信号衝突が発生しているマルチドライブ配線に信号を出力している素子のインスタンス名と出力端子名との情報を取得して、これを信号衝突配線に関する情報３４ｃとして出力する機能も備えている。
【００７３】
本実施の形態３に係る故障リスト作成部３２は、論理シミュレーション実行部３４が出力した、信号衝突配線に関する情報３４ｃを参照して、信号衝突配線に信号を出力する素子のインスタンス名と出力端子名とを記録したファイルを生成し、それを故障リスト３２ａとして出力する。そして、実施の形態１と同様に、ユーザーが作成した、故障生成対象素子のインスタンス名と出力端子名とが記載された故障リストが存在する場合には、故障リスト作成部３２は、そのユーザーが作成した故障リストを故障リスト３２ａとして出力する。
【００７４】
このように、本実施の形態３では、ユーザが作成した故障リストが存在しない場合には、信号衝突配線に信号を出力する素子だけが故障生成対象素子として故障リスト３２ａに記録される。
【００７５】
故障回路生成部３は、正常回路のネットリスト１１をもとにして、一つの故障生成対象素子だけに強度故障が生成された故障回路のネットリスト３ａを、故障リスト３２ａ中のすべての故障生成対象素子に対して作成する。
【００７６】
このように、論理シミュレーション実行部３４が信号衝突配線に関する情報３４ｃを出力する機能を備え、故障リスト作成部３２がその信号衝突配線に関する情報３４ｃに基づいて故障リスト３２ａを作成することから、論理シミュレーション実行部３４の機能の一部と故障リスト作成部３２とは、正常回路から故障生成対象素子を抽出する素子抽出部として機能していると言える。そして、本実施の形態３に係る強度故障生成部３１は、この素子抽出部と故障回路生成部３とを備え、正常回路に強度故障を生成して故障回路を生成している。その他の構成について実施の形態２に係る故障シミュレーション装置と同様であるため、その説明は省略する。
【００７７】
次に、本実施の形態３に係る故障シミュレーション装置において、故障シミュレーション開始から終了までの一連の動作について説明する。図１５は、本実施の形態３に係る故障シミュレーション装置の動作を示すフローチャートである。図１５に示されるように、ステップＳＴ３１において、故障リスト作成部３２はユーザーが作成した故障リストが存在するか否かを確認し、存在しなければその旨を論理シミュレーション実行部３４に通知する。そして、ステップＳＴ３２において、論理シミュレーション実行部３４は、正常回路のネットリスト１１に基づいて正常回路の論理シミュレーションを実行し、その結果４ａと、信号衝突配線に関する情報３４ｃを図示しない記憶装置に書き込む。
【００７８】
次に、ステップＳＴ３３において、故障リスト作成部３２は、信号衝突配線に関する情報３４ｃに基づいて故障リスト３２ａを作成する。そして、ステップＳＴ３４において、故障回路生成部３は、正常回路のネットリスト１１をもとにして、故障リスト３２ａ中のすべての強度故障について、強度故障が一つだけ生成された故障回路のネットリスト３ａを作成する。
【００７９】
一方、ステップＳＴ３１において、故障リスト作成部３２は、ユーザーが作成した故障リストの存在を確認すると、それを故障リスト３２ａとして出力し、故障回路生成部３は、ステップＳＴ３９において、当該故障リスト３２ａ中のすべての強度故障について、強度故障が一つだけ生成された故障回路のネットリスト３ａを作成する。そして、ステップＳＴ４０において、論理シミュレーション実行部３４は、正常回路のネットリスト１１に基づいて正常回路の論理シミュレーションを実行し、その結果４ａを記憶装置に書き込む。
【００８０】
ステップＳＴ３４あるいはステップＳＴ４０が実行されると、ステップＳＴ３５において、論理シミュレーション実行部３４は、故障回路のネットリスト３ａに基づいて一つの故障回路に対して論理シミュレーションを実行し、その結果４ｂを記憶装置に書き込む。ステップＳＴ３５の論理シミュレーションでは、ステップＳＴ３２あるいはステップＳＴ４０で使用された同一のテストパターン１２が用いられる。
【００８１】
次に、ステップＳＴ３６において、故障検出判定部５は、正常回路の論理シミュレーション結果４ａと故障回路の論理シミュレーション４ｂとを比較し、その比較結果に基づいて出荷テストで使用するテストパターンで強度故障を検出するか否かを判定する。そして、ステップＳＴ３７において、故障検出判定部５は、故障リスト３２ａ中のすべての強度故障に対して故障検出判定が終了したか否かを判断し、終了していない場合には、その旨を論理シミュレーション実行部３４に通知する。それを受け取った論理シミュレーション実行部３４は、ステップＳＴ３５において、前回とは別の故障回路に対して論理シミュレーションを実行する。
【００８２】
一方、ステップＳＴ３７において、故障リスト３２ａ中のすべての強度故障に対して故障検出判定が終了したと判断されると、ステップＳＴ３８において、故障検出判定部５は故障検出率を算出し、故障検出結果リスト５ａを生成する。
【００８３】
以上のように、本実施の形態３に係る故障シミュレーション装置では、故障リスト作成部３２と論理シミュレーション実行部３４の機能の一部とで構成される素子抽出部が、正常回路の中から、信号衝突配線に対して信号を出力する素子だけを故障生成対象素子として抽出しているため、マルチドライブ配線に信号を出力している素子のすべてを故障生成対象素子として抽出する実施の形態２に係る故障シミュレーション装置よりも、シミュレーション対象となる強度故障の数が減少し、故障シミュレーションに必要な時間を低減することができる。また、信号衝突が発生しないマルチドライブ配線では、当該配線に信号を出力している素子に強度故障が発生した場合であっても当該配線では信号値が変化しないことから、信号衝突配線に対して信号を出力している素子に発生する強度故障だけに限定して故障シミュレーションを実行したとしても、故障シミュレーション結果の正当性に影響を与えることは無い。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態１に係る故障シミュレーション装置の構成を示すブロック図である。
【図２】強度故障を説明するための図である。
【図３】強度故障を説明するための図である。
【図４】正常回路のネットリストを示す図である。
【図５】故障回路を示す図である。
【図６】故障回路のネットリストを示す図である。
【図７】故障回路のネットリストを示す図である。
【図８】本発明の実施の形態１に係る故障シミュレーション装置の動作を示すフローチャートである。
【図９】正常回路を示す図である。
【図１０】正常回路及び故障回路の論理シミュレーション結果を示す図である。
【図１１】本発明の実施の形態２に係る故障シミュレーション装置の構成を示すブロック図である。
【図１２】一つの素子からの出力信号だけが与えられる配線を有する正常回路を示す図である。
【図１３】本発明の実施の形態３に係る故障シミュレーション装置の構成を示すブロック図である。
【図１４】信号衝突が生じないマルチドライブ配線を有する正常回路を示す図である。
【図１５】本発明の実施の形態３に係る故障シミュレーション装置の動作を示すフローチャートである。
【符号の説明】
【００８５】
１，２１，３１  強度故障生成部、２，２２，３２  故障リスト作成部、３  故障回路生成部、４，３４  論理シミュレーション実行部、４ａ  正常回路の論理シミュレーション結果、４ｂ  故障回路の論理シミュレーション結果、５  故障検出判定部、１１  正常回路のネットリスト、１２  テストパターン、１５０  信号強度変換素子、１８０，３３０  配線。
【図１】
2005293385.tif 000003
【図２】
2005293385.tif 000004
【図３】
2005293385.tif 000005
【図４】
2005293385.tif 000006
【図５】
2005293385.tif 000007
【図６】
2005293385.tif 000008
【図７】
2005293385.tif 000009
【図８】
2005293385.tif 000010
【図９】
2005293385.tif 000011
【図１０】
2005293385.tif 000012
【図１１】
2005293385.tif 000013
【図１２】
2005293385.tif 000014
【図１３】
2005293385.tif 000015
【図１４】
2005293385.tif 000016
【図１５】
2005293385.tif 000017