(57)【特許請求の範囲】
【請求項１】
機能記述されたメモリブロックを有するＬＳＩの故障解析方法において、
メモリブロックの機能記述から書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定する手順と、
ＬＳＩの機能シミュレーション実行時に前記メモリブロックをアクセスするテストベクトルを検出する毎に前記テストベクトルに対応する時刻における書き込み制御信号および読み出し制御信号の状態と、選択アドレスの２進数表現および該選択アドレスの入出力データの２進数表現とを前記識別子に基づいて抽出し所定の形式の内部状態リストを作成する手順と、
故障ＬＳＩの故障伝搬経路に前記メモリブロックが存在する場合に書き込み制御信号、読み出し制御信号、選択アドレスおよび該選択アドレスの入出力データの実測値と前記内部状態リスト中の対応する期待値との一致照合を行って故障伝搬経路を追跡し故障箇所を特定する手順と、を有することを特徴とする故障解析方法。
【請求項２】
機能記述されたメモリブロックを有するＬＳＩの故障解析支援装置において、
メモリブロックの機能記述を入力し、書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定する識別子特定手段と、ＬＳＩの機能シミュレーション実行時に前記メモリブロックをアクセスするテストベクトルを検出する毎に前記テストベクトルに対応する時刻における書き込み制御信号および読み出し制御信号の状態と、選択アドレスの２進数表現および該選択アドレスの入出力データの２進数表現とを前記識別子に基づいて抽出し所定の形式の内部状態情報として出力する内部状態抽出手段と、を備えることを特徴とする故障解析支援装置。
【請求項３】
機能記述されたメモリブロックを有するＬＳＩの故障解析を支援するコンピュータプログラムにおいて、
メモリブロックの機能記述を入力し、書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定する手順と、
ＬＳＩの機能シミュレーション実行時に前記メモリブロックをアクセスするテストベクトルを検出する毎に前記テストベクトルに対応する時刻における書き込み制御信号および読み出し制御信号の状態と、選択アドレスの２進数表現および該選択アドレスの入出力データの２進数表現とを前記識別子に基づいて抽出し所定の形式の内部状態情報として出力する手順と、をコンピュータに実行させることを特徴とする故障解析支援プログラム。
【請求項４】
機能記述されたメモリブロックを有するＬＳＩの故障解析方法において、
機能テストで故障を出力するまでに発生したメモリブロックへアクセスとアクセス対象のアドレスとを全て抽出する手順と、
レイアウトデータにおけるメモリブロックのデータ入出力線からトレースを開始しワード線数以上の分岐を有する分岐配線に到達した場合にトレースを停止して前記データ入出力線から前記分岐配線までの経路のレイアウトデータを抽出する手順と、
全てのアクセスに対して、それぞれのアクセスでのアドレス入力をもとにアドレス入力線から選択ワード線への経路を特定し前記選択ワード線から前記分岐配線に到達するまでトレースして経路に存在するレイアウトデータを抽出する手順と、
前記アドレス入力線から前記分岐配線までのレイアウトデータと前記データ入出力線から前記分岐配線までの経路のレイアウトデータとからアクセスにより選択されたメモリセルに関係する部分回路のトランジスタレベルのネットリストを作成し、それぞれのアクセスに対応する部分回路を合成して置換用トランジスタレベルネットリストを作成する手順と、
メモリブロックの機能記述を前記置換用トランジスタレベルネットリストに置き換えたＬＳＩの設計情報記述を用いて故障の解析を行う手順と、を有することを特徴とする故障解析方法。
【請求項５】
機能記述されたメモリブロックを有するＬＳＩの故障解析支援装置において、
機能テストで故障を出力するまでに発生したメモリブロックへアクセスとアクセス対象のアドレスとを全て抽出するアクセスアドレス保持手段と、
レイアウトデータにおけるメモリブロックのデータ入出力線からトレースを開始しワード線数以上の分岐を有する分岐配線に到達した場合にトレースを停止して前記データ入出力線から前記分岐配線までの経路のレイアウトデータを抽出したのちに、全てのアクセスに対して、それぞれのアクセスでのアドレス入力をもとにアドレス入力線から選択ワード線への経路を特定し前記選択ワード線から前記分岐配線に到達するまでトレースして経路に存在するレイアウトデータを抽出する経路データ抽出手段と、
前記アドレス入力線から前記分岐配線までのレイアウトデータと前記データ入出力線から前記分岐配線までの経路のレイアウトデータとからアクセスにより選択されたメモリセルに関係する部分回路のトランジスタレベルのネットリストを作成し、それぞれのアクセスに対応する部分回路を合成して置換用トランジスタレベルネットリストを作成するネットリスト作成手段と、を備えることを特徴とする故障解析支援装置。
【請求項６】
機能記述されたメモリブロックを有するＬＳＩの故障解析を支援するコンピュータプログラムにおいて、
機能テストで故障を出力するまでに発生したメモリブロックへアクセスとアクセス対象のアドレスとを全て抽出する手順と、
レイアウトデータにおけるメモリブロックのデータ入出力線からトレースを開始しワード線数以上の分岐を有する分岐配線に到達した場合にトレースを停止して前記データ入出力線から前記分岐配線までの経路のレイアウトデータを抽出する手順と、
全てのアクセスに対して、それぞれのアクセスでのアドレス入力をもとにアドレス入力線から選択ワード線への経路を特定し前記選択ワード線から前記分岐配線に到達するまでトレースして経路に存在するレイアウトデータを抽出する手順と、
前記アドレス入力線から前記分岐配線までのレイアウトデータと前記データ入出力線から前記分岐配線までの経路のレイアウトデータとからアクセスにより選択されたメモリセルに関係する部分回路のトランジスタレベルのネットリストを作成し、それぞれのアクセスに対応する部分回路を合成して置換用トランジスタレベルネットリストを作成する手順と、をコンピュータに実行させることを特徴とする故障解析支援プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はＬＳＩの故障解析に関し、特に機能記述されたメモリブロックを有するＬＳＩの故障解析に有効な故障解析方法、故障解析支援装置および故障解析支援プログラムに関する。
【０００２】
【従来の技術】
設計上はレイアウト検証まで問題なく終了し製造が開始されたＬＳＩでも、製造時の不具合によって故障が作り込まれ不良品が発生する場合がある。このような場合に、故障箇所と原因を特定するために物理解析が実施される。物理解析において故障伝播経路がメモリに到達した場合には、機能検証シミュレーションでアクセスしたメモリアドレス、メモリセルの保持する値、書き込み制御線、読み出し制御線のそれぞれの期待値、または、良品のメモリセルのメモリアドレス、メモリセルの保持する値、書き込み制御線、読み出し制御線の実測値と、不良品のメモリアドレス、メモリセルの保持する値、書き込み制御線、読み出し制御線の実測値とを比較し、故障信号をメモリセルに伝播した原因がそのメモリセルを指定したアドレス、指定アドレスのメモリセルに保持されていたデータ、データの書き込み、またはデータの読み出しのいずれであるかを検証する。
【０００３】
一般に、三層以上の多層配線構造を持つ製品の配線層および拡散層で生じた全ての故障を非破壊で解析することは難しい。特に混載メモリのようにレイアウト配置が予め決定されているハードマクロでは、電位観測が可能な最上層に配線が存在することは稀である。そのため、ＦＩＢ(Focused Ion Beam)等を用いて測定対象の配線表面にまで到達する微細な穴を形成し、下層配線の電気信号の情報を取得することを繰り返して故障箇所を追跡する。
【０００４】
しかしながら、故障信号の伝播経路にそってＦＩＢによる微細穴を形成して故障個所を追跡するには多大な解析時間を要する。この物理的な故障信号の追跡に要する時間を短縮するために、設計情報とシミュレーションによる期待値とを利用し、テスト時に検出された故障出力を追跡の起点としてソフトウェア上で故障伝播経路を追跡し故障箇所を特定する方法が知られている。一方法として、故障が存在する可能性のある組合せ回路を抽出しながら、故障伝搬経路の追跡を行うことにより設計情報とテスト結果からフリップフロップの機能故障以外の故障箇所を特定する逆論理展開法がある。例えば、特開２００１−２１６１８号公報にはバックトラック法を応用した逆論理展開方法が開示されており、逆論理展開方法によって求めた入力信号の特定論理状態、およびその過程で求めた組合せ論理回路内部の論理状態と、予め正常回路を論理シミュレーションすることで求めた各ノードの論理状態（以下、期待値と称す）を比較することで故障伝搬経路を抽出する。また別の方法として、あらかじめ故障シミュレーションを実行して故障辞書を作成しておき、診断時には故障辞書に記録された故障データと比較することで故障箇所を特定する方法がある。ＳＣＡＮ設計に特化したものであるが、故障辞書法により故障要因を検索する機能を持つソフトウェアが市販されている。
【０００５】
トップダウン設計方式における機能記述設計では、仕様設計をもとにＬＳＩ内部を機能ブロックに分割し、機能ブロック内のレジスタ−レジスタ間に設ける組合せ回路を決定し、クロックタイミング毎の回路動作を決定する。次の設計段階であるゲートレベル記述設計で機能ブロックのゲートレベル記述が完成するまでの間、シミュレーション等によるチップ全体の設計検証に用いられる。しかし、エンベディッドメモリなどのあらかじめレイアウトまで決定しているハードマクロブロックでは状況が異なる。ハードマクロブロックは内部回路のテスト手段を別途保有しており、機能が予め検証されている。このため、シミュレーションによるチップ全体の機能検証においては、どの設計段階においても機能記述された機能ブロックが使用される。
【０００６】
このようにハードマクロ化されて機能記述レベルの情報のみを持ちゲート記述レベルの情報を持たないメモリブロックがＬＳＩ内に存在し、且つメモリをアクセスするテストの実行時にエラー信号が出力された場合には、エラー信号がメモリブロックを経由して出力されたか否かを検証するために、まず、アクセスしたアドレスのメモリセルが保持するデータを参照する必要がある。メモリセルの保持するデータを参照する方法の一例として、メモリの設計仕様に対応したシミュレーションモデルを構築し、メモリデバッグ用検証ツールを用いてシミュレーション実行中にメモリ内容の観測、エラー検出を行なうことにより、故障信号がメモリを経由したか否かを検証することができる。故障信号がメモリを経由していない場合には先に挙げた特開２００１−２１６１８号公報に記載の故障箇所特定方法等を適用することによって故障箇所の特定が可能になる。
【０００７】
【発明が解決しようとする課題】
電子ビームテスタを用いた故障解析においては、良品と不良品との対応するレイアウト座標の電位像を比較することによって、パタン認識で一致しない信号線を故障信号伝播配線として容易に検出できる。しかし、期待値と実測値とを比較する場合には事情が異なる。シミュレーションにおける期待値はシミュレーション実行時にシミュレーション内で経過する時間として定義された仮想時間を指定して特定の配線が保持する値を取得したものである。期待値は仮想時間の経過にともなって変化した各ネット名とその保持する値を参照する書式で記述されるか、または、ネット毎に仮想時間経過に応じて変化した値を参照する書式で記述されるので、シミュレーションの期待値と不良品の実測値とをパタン認識的な簡便さで検証することができない。例えば、メモリブロックの設計情報の記述は図３に示すようにＨＤＬ(Hardware Description Language) で機能記述されているため、比較する信号の対応をとることが容易ではない。シミュレーションの期待値と不良品の実測値との比較ではなく、良品の実測値と不良品の実測値とを比較して故障箇所追跡する場合には、実測のために微細穴を形成する加工時間が２倍となり、故障解析に要する時間が大幅に増大する。
【０００８】
また、設計情報の記述において機能記述とゲートレベル記述とが混在しているＬＳＩでは、機能記述された機能ブロックはゲートレベルの接続が未定義なので、先に挙げた故障辞書法で必要となる故障データの埋め込みに関して、メモリセルの保持する値が１または０の何れかに固定されるスタック故障以外の故障の埋め込みはできない。
【０００９】
また、各メモリセルの機能は図５に示すようにフリップフロップに置換した論理ゲートでも表現できるが、この場合にメモリのアドレスの指定を間違うということは、フリップフロップの制御線から故障が伝播することである。先に挙げた逆論理展開法を基にした故障診断法では、フリップフロップの制御線が故障した場合には故障伝播経路の追跡ができないので、故障箇所を検出できない。すなわち、これまでの故障診断用ソフトウェアでは、特定のメモリセルがスタック故障である場合を除けば、機能記述されたメモリブロック内に故障信号が伝播する場合の故障箇所の検出は困難である。
【００１０】
また、メモリデバッグ用検証ツールを用いてシミュレーション実行中にメモリ内容を観測して検証するＣＡＤツールが市販されているが、このＣＡＤツールでは任意のシミュレーション時刻でアドレスが保持するセルの期待値を取得できるものの、誤信号がメモリのアドレス線から伝播したのかビット線から伝播したのか判別する手段を持たないため、メモリの故障箇所を特定するツールとして使うことは難しい。
【００１１】
レイアウトデータからネットリストを抽出するソフトウェアが知られており、これを用いてメモリブロックのネットリストを抽出し、メモリブロックの機能記述をトランジスタレベルのネットリストメモリに置き換えてシミュレーションすることも可能ではある。しかしながら、例えば、機能記述されたメモリブロックのメモリが１００ｋｂの比較的小容量のスタティックＲＡＭの場合でも、トランジスタ数に換算すると百万トランジスタ程度となるので、メモリブロックの全トランジスタをネットリスト抽出する処理に時間がかかり、また、トランジスタレベルのシミュレーションにも膨大な時間がかかってしまうために実用的ではない。
【００１２】
このように、公知の故障解析方法では、ハードマクロ化されて機能記述レベルの情報のみを持ちゲート記述レベルの情報を持たないメモリブロックをアクセスするテストの実行時にエラー信号が出力された場合に、実用的なコストで実用的な時間内に故障箇所を特定することが困難であった。
【００１３】
本発明の目的は、機能記述のみでゲート記述レベルの情報を持たないメモリブロックが故障信号の伝播経路上に存在する場合においても、メモリブロック内部のアクセスされたアドレスのメモリセルにまで立ち入った故障伝播経路の追跡を実用的な労力および時間で実行できる故障解析支援装置および故障解析方法を提供することにある。
【００１４】
【課題を解決するための手段】
本発明の第１の発明の故障解析方法は、機能記述されたメモリブロックを有するＬＳＩの故障解析方法において、メモリブロックの機能記述から書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定する手順と、ＬＳＩの機能シミュレーション実行時に前記メモリブロックをアクセスするテストベクトルを検出する毎に前記テストベクトルに対応する時刻における書き込み制御信号および読み出し制御信号の状態と、選択アドレスの２進数表現および該選択アドレスの入出力データの２進数表現とを前記識別子に基づいて抽出し所定の形式の内部状態リストを作成する手順と、故障ＬＳＩの故障伝搬経路に前記メモリブロックが存在する場合に書き込み制御信号、読み出し制御信号、選択アドレスおよび該選択アドレスの入出力データの実測値と前記内部状態リスト中の対応する期待値との一致照合を行って故障伝搬経路を追跡し故障箇所を特定する手順と、を有している。
【００１５】
第２の発明の故障解析支援装置は、機能記述されたメモリブロックを有するＬＳＩの故障解析支援装置において、メモリブロックの機能記述を入力し、書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定する識別子特定手段と、ＬＳＩの機能シミュレーション実行時に前記メモリブロックをアクセスするテストベクトルを検出する毎に前記テストベクトルに対応する時刻における書き込み制御信号および読み出し制御信号の状態と、選択アドレスの２進数表現および該選択アドレスの入出力データの２進数表現とを前記識別子に基づいて抽出し所定の形式の内部状態情報として出力する内部状態抽出手段と、を備えている。
【００１６】
第３の発明の故障解析支援プログラムは、機能記述されたメモリブロックを有するＬＳＩの故障解析を支援するコンピュータプログラムにおいて、メモリブロックの機能記述を入力し、書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定する手順と、ＬＳＩの機能シミュレーション実行時に前記メモリブロックをアクセスするテストベクトルを検出する毎に前記テストベクトルに対応する時刻における書き込み制御信号および読み出し制御信号の状態と、選択アドレスの２進数表現および該選択アドレスの入出力データの２進数表現とを前記識別子に基づいて抽出し所定の形式の内部状態情報として出力する手順と、をコンピュータに実行させることを特徴としている。
【００１７】
第４の発明の故障解析方法は、機能記述されたメモリブロックを有するＬＳＩの故障解析方法において、機能テストで故障を出力するまでに発生したメモリブロックへアクセスとアクセス対象のアドレスとを全て抽出する手順と、レイアウトデータにおけるメモリブロックのデータ入出力線からトレースを開始しワード線数以上の分岐を有する分岐配線に到達した場合にトレースを停止して前記データ入出力線から前記分岐配線までの経路のレイアウトデータを抽出する手順と、全てのアクセスに対して、それぞれのアクセスでのアドレス入力をもとにアドレス入力線から選択ワード線への経路を特定し前記選択ワード線から前記分岐配線に到達するまでトレースして経路に存在するレイアウトデータを抽出する手順と、前記アドレス入力線から前記分岐配線までのレイアウトデータと前記データ入出力線から前記分岐配線までの経路のレイアウトデータとからアクセスにより選択されたメモリセルに関係する部分回路のトランジスタレベルのネットリストを作成し、それぞれのアクセスに対応する部分回路を合成して置換用トランジスタレベルネットリストを作成する手順と、メモリブロックの機能記述を前記置換用トランジスタレベルネットリストに置き換えたＬＳＩの設計情報記述を用いて故障の解析を行う手順と、を有している。
【００１８】
第５の発明の故障解析支援装置は、機能記述されたメモリブロックを有するＬＳＩの故障解析支援装置において、機能テストで故障を出力するまでに発生したメモリブロックへアクセスとアクセス対象のアドレスとを全て抽出するアクセスアドレス保持手段と、レイアウトデータにおけるメモリブロックのデータ入出力線からトレースを開始しワード線数以上の分岐を有する分岐配線に到達した場合にトレースを停止して前記データ入出力線から前記分岐配線までの経路のレイアウトデータを抽出したのちに、全てのアクセスに対して、それぞれのアクセスでのアドレス入力をもとにアドレス入力線から選択ワード線への経路を特定し前記選択ワード線から前記分岐配線に到達するまでトレースして経路に存在するレイアウトデータを抽出する経路データ抽出手段と、前記アドレス入力線から前記分岐配線までのレイアウトデータと前記データ入出力線から前記分岐配線までの経路のレイアウトデータとからアクセスにより選択されたメモリセルに関係する部分回路のトランジスタレベルのネットリストを作成し、それぞれのアクセスに対応する部分回路を合成して置換用トランジスタレベルネットリストを作成するネットリスト作成手段と、を備えている。
【００１９】
第６の発明の故障解析支援プログラムは、機能記述されたメモリブロックを有するＬＳＩの故障解析を支援するコンピュータプログラムにおいて、機能テストで故障を出力するまでに発生したメモリブロックへアクセスとアクセス対象のアドレスとを全て抽出する手順と、レイアウトデータにおけるメモリブロックのデータ入出力線からトレースを開始しワード線数以上の分岐を有する分岐配線に到達した場合にトレースを停止して前記データ入出力線から前記分岐配線までの経路のレイアウトデータを抽出する手順と、全てのアクセスに対して、それぞれのアクセスでのアドレス入力をもとにアドレス入力線から選択ワード線への経路を特定し前記選択ワード線から前記分岐配線に到達するまでトレースして経路に存在するレイアウトデータを抽出する手順と、前記アドレス入力線から前記分岐配線までのレイアウトデータと前記データ入出力線から前記分岐配線までの経路のレイアウトデータとからアクセスにより選択されたメモリセルに関係する部分回路のトランジスタレベルのネットリストを作成し、それぞれのアクセスに対応する部分回路を合成して置換用トランジスタレベルネットリストを作成する手順と、をコンピュータに実行させることを特徴としている。
【００２０】
【発明の実施の形態】
本発明について図面を参照して詳細に説明する。本発明の第１実施形態では、機能記述されたメモリブロックについて、書き込み制御、読み出し制御、アドレスおよびデータ入出力の配線もしくは信号の識別子を特定し、シミュレーション時にこれら識別子に基づいてシミュレーション時刻とその時刻に対応する書き込み制御線／読み出し制御線の状態、選択アドレス、選択アドレスに書き込み／読み出しされるデータのそれぞれを抽出し、メモリブロック内部状態としてパタン認識的に容易に理解できる所定のフォーマットで出力する。また、信号線の電位実測による故障伝搬経路追跡では、故障伝搬経路にメモリブロックがあるときには、作成されたメモリブロック内部状態出力と比較して故障追跡する。
【００２１】
図１は、第１実施形態におけるメモリブロックの内部状態ファイルの作成フロー図である。図２は、内部状態ファイルを作成する故障解析支援装置を含むシステムのブロック図である。
【００２２】
図１において、先ず、ステップ１００で、機能記述されたメモリブロックからメモリ容量（アドレス空間）を抽出する。次のステップ１０１で、メモリブロックの読み出し制御線および書き込み制御線の記述から読み出し制御線および書き込み制御線の識別子を特定する。次のステップ１０２で、アクセスのために選択されるアドレスの記述からアドレス信号の識別子を特定する。次のステップ１０３で、アドレスにより選択されたメモリ部のデータの入出力に関する記述からデータ入出力信号の識別子を特定する。ステップ１０４では、機能シミュレーションの実行と同時進行でメモリブロックをアクセスするテストベクトルを検出し、これに対応させてシミュレーションにおける仮想時刻（シミュレーション時刻）と、その時刻の書き込み制御線の状態と、読み出し制御線の状態と、選択アドレスと、選択アドレスへの書き込みデータまたは選択アドレスからの読み出しデータとをこれら識別子に基づいて抽出し、選択アドレスと選択アドレスへの入出力データ（書き込み／読み出しデータ）についてはＬＳＩにおけるアドレス線とデータ入出力線の実配置に対応した配列順の２進数表現に変換してからメモリブロックの内部状態として出力する。
【００２３】
図２を参照すると、故障解析支援装置１２は、識別子特定手段２１と、内部状態抽出手段２２とを有している。識別子特定手段２１は、機能記述ファイル１０内のＬＳＩのメモリブロックの機能記述を構文解析し、抽出対象の配線もしくは信号の識別子を特定する。すなわち、識別子特定手段２１は、メモリブロックの機能記述からメモリ容量を抽出し、読み出し制御線および書き込み制御線の識別子を特定し、アドレス信号の識別子を特定し、選択アドレスへのデータ入出力線の識別子を特定して保存する。内部状態抽出手段２２は、機能シミュレータ１１でのシミュレーションの実行と同時進行でメモリブロックをアクセスするテストベクトルを検出し、検出されたテストベクトルに対応させてシミュレーションにおける仮想時刻と、その時刻の書き込み制御線の状態と、読み出し制御線の状態と、選択アドレスと、選択アドレスへの書き込みデータまたは選択アドレスからの読み出しデータとを識別子特定手段に保存された識別子情報に基づいて抽出し、選択アドレスと選択アドレスへの入出力データ（書き込み／読み出しデータ）についてはＬＳＩにおけるアドレス線とデータ入出力線の実配置に対応した配列順の２進数表現に変換してから内部状態ファイル１３に出力する。内部状態ファイル１３に出力する代わりに表示装置に表示してもよく、またはプリンタで直接リスト出力してもよい。
【００２４】
なお、故障解析支援装置１２は、専用のハードウェアとして構成してもよいが、汎用のコンピュータと、識別子特定手段２１に相当する機能のプログラムと、内部状態抽出手段２２に相当するプログラムとを用いても実現できる。
【００２５】
図３（ａ）は、このようにして作成された内部状態ファイル１３をリスト出力した内部状態リストの一例である。クロックで計測したシミュレーション時刻（／ＳＩＭＣＬＫ）毎に、書き込み制御線（／ＷＲＩＴＥ）の状態、読み出し制御線（／ＲＥＡＤ）の状態、選択アドレス（／ＡＤＤＲ）、選択アドレスから入出力されるデータ（／ＤＡＴＡ）のそれぞれの期待値が２進数表現で出力される。なお、“Ｚ”はハイインピーダンス状態であることを示す。
【００２６】
図３（ｂ）は、ＬＳＩの８ビットのデータバス配線ＤＡＴＡ＿ＢＵＳ［０］〜ＤＡＴＡ＿ＢＵＳ［７］の信号電位実測結果の一例を示す図である。斜線を施した配線は高電位が実測された配線を示す。データバスの実測結果を高電位が“１”で低電位が“０”として２進数表現すると（１０１０１０１０）となり、図３（ａ）の時刻１１０に対応する実測結果である場合には、データ（／ＤＡＴＡ）と一致していると一目瞭然に容易に判断できる。また、図３（ａ）の時刻１２１０に対応する実測結果である場合には、データ（／ＤＡＴＡ）とは一致していないことも容易に判断できる。
【００２７】
図４は、故障解析のフロー図である。作成された内部状態リストを用いて故障箇所の追跡を行うときには、先ず、ステップ１１０で、メモリブロック外部の信号線で故障データが伝播した信号線を追跡対象として定め、この追跡信号線から遡って故障伝搬経路を追跡する。次のステップ１１１で、追跡された信号線がメモリブロックに到達するか否かを判断する。メモリブロックに到達しない場合にはステップ１１５に進み、メモリブロックに到達する場合には次のステップ１１２に進む。ステップ１１２では、メモリブロックの読み出し制御線の電位、書き込み制御線の電位、アドレス線の電位を電子ビームテスタ等を用いて実測し、図３（ａ）に出力された内部状態リストで対応するシミュレーション時刻でのそれぞれの期待値と比較して一致するか否かを判断する。一致しなかった場合にはその信号線が故障伝搬経路にあるとしてステップ１１５に進む。一致した場合には次のステップ１１３に進む。
【００２８】
ステップ１１３では、図３（ａ）に出力された内部状態リストを参照してアドレス線で指定された選択アドレスに保持されたデータが書き込みされる時刻にまで遡り、その時刻をメモリに故障が伝搬した時刻として特定する。この故障伝搬時刻に設定してメモリに入力されるデータ入力信号線（データバス）の電位を実測し、図３（ａ）の内部状態リストの同時刻における入力データ（／ＤＡＴＡ）の期待値と比較して一致するか否かを判断する。一致しなかった場合にはデータ入力信号線が故障伝搬経路にあるとしてステップ１１５に進む。一致した場合には次のステップ１１４に進む。次のステップ１１４では、ステップ１１３で特定した故障伝搬時刻におけるメモリブロックの制御線、すなわち、読み出し制御線、書き込み制御線およびアドレス線の電位を実測し、図３（ａ）に出力された内部状態リストで対応するシミュレーション時刻でのそれぞれの期待値と比較して一致しない信号線を検出し故障伝搬経路として特定し、ステップ１１５に進む。
【００２９】
ステップ１１５では、故障伝搬経路のさらなる遡行が可能か否かを判断する。まだ故障伝播経路を溯れるときにはステップ１１０に戻って故障伝搬経路の追跡を再度繰り返す。故障伝播経路を溯れないときには故障箇所を特定できたとして故障解析を終了する。
【００３０】
次に、８ビット×２０４８ワードのメモリブロックをＬＳＩ設計言語の１つであるＶｅｒｉｌｏｇ−ＨＤＬ（Ｖｅｒｉｌｏｇはケーデンス・デザイン・システムズ社の登録商標である）で機能記述した図５と、機能シミュレーション実行時にメモリブロックの内部状態を抽出して内部状態ファイルに格納する制御を記述した図６とを参照して図１のフローを具体的に説明する。
【００３１】
まず、ステップ１００では、機能記述された機能ブロックの構造を解析し、レジスタ宣言文の中で、ｒｅｇ  ［７：０］  ｉｒａｍ８  ［０：１１’ｈ７ｆｆ］と定義された記述（Ｄ１００）からメモリレジスタ（メモリブロック）が８ｂｉｔ×２０４８ｗｏｒｄの容量であることを抽出し、記述レンジ指定記述に挟まれた文字列ｉｒａｍ８をメモリレジスタに割当てられた識別子として抽出する。
【００３２】
次のステップ１０１では、メモリレジスタｉｒａｍ８の特定のアドレスへデータを読み出す記述（Ｄ１０１）とデータを特定のアドレスへ書き込む記述（Ｄ１０１）とから、読み出し制御信号名ｒｄと書き込み制御信号名ｗｒとを抽出する。
【００３３】
次のステップ１０２では、メモリブロックのアドレスを配列変数で指定する記述（Ｄ１０２）で、メモリレジスタｉｒａｍ８の選択アドレスを指定するａｄｄｒ＿ｉｎ［１０：０］にアドレスデータを渡しているＡＤＤＲをアドレス信号線の信号名と抽出する。
【００３４】
次のステップ１０３では、メモリレジスタｉｒａｍ８のデータ入出力に関する記述（Ｄ１０３）で、選択アドレスからデータを読み出すレジスタと、選択アドレスにデータを書き込むレジスタとがデータを受け渡しているＤＡＴＡ＿ＢＵＳをデータ信号線名として抽出する。
【００３５】
次のステップ１０４における処理の具体例については、図６の出力制御記述にしたがって説明する。ステップ１０４では、先ず、設計情報の最上位構造から書き下して読み出し制御線と書き込み制御線とアドレス線とデータ線を指定（Ｄ１０４０）する。このときに、データ入出力線とアドレス線ではＬＳＩにおけるバス配線の配置に対応した配列に置換しておく。図６の記述は、アドレスのＭＳＢからＬＳＢの順でアドレス線が配置され、続いてデータのＭＳＢからＬＳＢの順でデータ入出力線が配置されている例である。次に、データを格納する内部状態ファイル名（ｄｕｍｐ＿ｆｉｌｅ）を指定してファイルを開き（Ｄ１０４１）、内部状態ファイルに格納する状態情報としてシミュレーション実行時の仮想的な時間経過を計測する変数（ｃｌｋ＿ｃｏｕｎｔ）を定義し（Ｄ１０４２）、出力ファイルの先頭行に、最初にシミュレーション時刻を出力し続いて各信号線の名称を予め定めた順序で出力する（Ｄ１０４３）。続いて、シミュレーションを実行し、シミュレーションが進行する毎にシミュレーション時刻と識別子に基づいて抽出した各信号線の状態情報とを内部状態ファイルに所定の順序で格納する（Ｄ１０４４）。
【００３６】
内部状態リストを参照することにより、任意のシミュレーション時刻におけるアドレス線ＡＤＤＲ［１０：０］の保持する２進数表現の期待値を容易に特定することができ、同様に、任意のシミュレーション時刻においてデータ入出力線ＤＡＴＡ＿ＢＵＳ［７：０］の保持する２進数表現の期待値を容易に特定することができる。シミュレーション時刻に対応する時刻の不良品における選択アドレスはアドレス線の電位を実測することによって得られる。同様に、シミュレーション時刻に対応する時刻の不良品における書き込み／読み出しデータはデータ入出力線の電位を実測することによって得られる。
【００３７】
ＬＳＩのレイアウトでは、通常、メモリブロックのアドレス線は、アドレスのＬＳＢからＭＳＢに向けて、またはＭＳＢからＬＳＢに向けて、順番に隣接して並行に配置される。同様に、メモリブロックのデータ入出力線は、データのＬＳＢからＭＳＢに向けて、またはＭＳＢからＬＳＢに向けて、順番に隣接して並行に配置される。したがって、通常、簡単な操作により、アドレス線およびデータ入出力線の実際の配置順序と内部状態ファイルに格納するアドレス線およびデータ入出力線の２進数表現情報の格納順序を一致させることが可能である。
【００３８】
本実施形態においては、機能記述のみでゲート記述レベルの情報を持たないメモリブロックが故障信号の伝播経路上に存在する場合においても故障伝搬経路が制御信号であるかまたはデータ入出力であるかを分離して追跡することが可能となる。また、内部状態リストにＬＳＩにおけるアドレス線とデータ入力線の実際の配置順序と一致するようにアドレス線の期待値とデータ入出力線の期待値との配列順序を変更して表示することにより、図３に例示したように実測値と期待値との比較が飛躍的に容易となり、故障伝搬経路の追跡において、期待値ファイルを用いて配線毎に個別に信号線が保持する値を検証する場合に比較して追跡作業の労力と時間の大幅な低減が可能となる。
【００３９】
次に本発明の第２の実施形態について説明する。第２の実施形態では、機能記述されたメモリブロックについて、ＬＳＩチップの機能テストにおいてアクセスしたアドレス部分のみを、トランジスタ等の素子と、素子間の接続とで表現されたトランジスタレベルのネットリストを作成する。元の機能記述のメモリブロックを作成したトランジスタレベルのネットリストに置換することにより、市販の故障解析ツール等の公知の故障解析技術を用いて故障追跡することが可能となる。
【００４０】
図７は、機能テストでアクセスしたアドレスに関係した部分のみのトランジスタレベルのネットリストを作成フロー図である。
【００４１】
図７では、先ず、ステップ２００で、機能テストにおいて故障が出力されるテストベクトルまでにアクセスしたメモリアドレスをテストベクトル毎に取得する。次のステップ２０１で、ＬＳＩチップのレイアウトデータのデータ入出力線からレイアウトデータのトレースを開始し、電源線または接地線に到達したときには一旦停止して別の経路をトレースし、ワード線数以上の分岐を持つ配線に到達した時点でトレースを停止する。読み出し回路への入力線のようにワード線数以上の分岐を持つ配線に到達した場合には、この配線を分岐配線とし、データ入出力線から分岐配線までの経路のレイアウトデータを抽出して保存する。
【００４２】
次のステップ２０２では、ステップ２００において抽出されたアドレスのうち最後にアクセスされたアドレスを選択する。最初の選択では、故障が出力されたテストベクトルに時間的に最も近いメモリアクセスのアドレスが選択されることになる。次のステップ２０３では、ステップ２０２において選択されたアドレスから選択されるワード線を特定し、特定されたワード線からトレースを開始し、電源線または接地線に到達したときは一旦停止して別の経路をトレースする。メモリブロック内をステップ２０１において保存された分岐配線に到達するまでトレースを継続し、経路に存在するレイアウトデータを抽出する。
【００４３】
次のステップ２０４では、ステップ２０２で抽出されたレイアウトデータとステップ２０１で保存されたレイアウトデータからトランジスタレベルのネットリストを抽出し、アクセスしたメモリセルに関係する部分回路のネットリストを作成する。部分回路には、アドレス入力回路、選択ワード線、選択メモリセル、書き込み制御線、読み出し制御線データ入出力線、書き込み回路および読み出し回路を含む。次のステップ２０５で、ステップ２００において抽出したアクセスについてネットリストの作成が完了したかを判断し、作成未了のアクセスが残っている場合にはステップ２０２に戻る。全てのアクセスに対応してネットリストの作成が完了したと判断された場合にはステップ２０６に進む。ステップ２０６では、抽出された全てのネットリストを合成し、複数のネットリストで重複している部分は１個に整理して置換用のトランジスタレベルネットリストを作成して終了する。
【００４４】
図８は、機能テストでアクセスしたアドレスに関係した部分のみのトランジスタレベルのネットリストを作成する故障解析支援装置のブロック図である。故障解析支援装置３１は、アクセスアドレス保持手段４１と、経路データ抽出手段４２と、ネットリスト作成手段４３とを備えている。アクセスアドレス保持手段４１は、機能テスト結果３０から故障が出力されるテストベクトルまでのメモリブロックへのアクセスを抽出してアクセス対象のメモリアドレスとともに保持する。経路データ抽出手段４２は、アドレス入力から選択されるワード線を特定し、特定された選択ワード線からワード線の個数以上の分岐を持つ分岐配線に到達するまでメモリブロック内をトレースして経路に存在するレイアウトデータを抽出する。ネットリスト作成手段４３は、抽出されたレイアウトデータからトランジスタレベルのネットリストを抽出しアクセスしたアドレスに対応するネットリストを作成するとともに複数のネットリストを１個のネットリストに合成する。図８の解析支援装置３１を用いて図７のネットリストを作成フローにしたがって手順を実行することにより、ＬＳＩチップの機能テストにおいてアクセスされたアドレスの部分のみをトランジスタレベルで記述したネットリストを作成することができる。
【００４５】
なお、故障解析支援装置３１は、専用のハードウェアとして構成してもよいが、汎用のコンピュータと、アクセスアドレス保持手段４１に相当する機能のプログラムと、経路データ抽出手段４２に相当するプログラムと、ネットリスト作成手段４３に相当するプログラムとを用いても実現できる。
【００４６】
次に、図９および図１０を用いて図７のフロー図に沿って具体的に説明する。図９は、図５のＶｅｒｉｌｏｇ−ＨＤＬで機能記述されたメモリブロックｉｒａｍ８のアドレスデコーダ部の回路図である。１１本のアドレス信号ＡＤＤＲ［０］〜ＡＤＤＲ［１０］により２０４８本のワード線Ｍ００００〜Ｍ２０４７のうち１本を選択する。
【００４７】
図１０は、同様に図５で機能記述されたメモリブロックｉｒａｍ８のメモリセルをラッチで表現した回路の一部で、ビット［０］の部分を示した回路図である。メモリブロックｉｒａｍ８は、ラッチＡ２０４８とラッチＡ４０９６とで１個のメモリセルが構成され、同様にラッチＡ４０９５とラッチＡ６１４３とで構成されるメモリセルまで計２０４８個のメモリセルを有する。書き込み時にはＡＮＤ回路Ａ００００〜Ａ２０４８の内の選択されたワード線が入力するＡＮＤ回路と接続するメモリセルにｄａｔａ＿ｉｎ［０］を書き込む。読み出し時には、２０４８個の３ステートのバッファ回路Ａ６１４４〜Ａ８１９１の内の選択されたワード線により活性化されたバッファ回路に接続するメモリセルからｄａｔａ＿ｏｕｔ［０］を読み出す。なお、図９および図１０において、ＣＬＫはクロック信号、ＷＥは入力制御信号、ＯＥは出力制御信号、ＣＳはメモリブロック制御信号である。
【００４８】
以下、図７に沿って図９と図１０のネット名を用いて説明する。ステップ２００で故障出力までにアクセスした全てのアドレスを抽出した後に、ステップ２０１で、図１０に対応するＬＳＩチップのレイアウトデータをＤＡＴＡ＿ＢＵＳ［７：０］からトレースを開始し、ワード数の分岐を持つｄａｔａ＿ｉｎ［０］およびＭ１６５に到達した時点でネットリストの抽出を一時停止する。ステップ２０３では、図１０のＡＤＤＲ［０］〜ＡＤＤＲ［１０］の入力の“０”または“１”に応じてレイアウトデータを抽出する経路を選択する。例えば、アドレス入力がすべて“０”ならば、２０４８個の１１入力ＮＡＮＤ回路の内のワード線Ｍ００００に接続するＮＡＮＤ回路のみが“１”を出力する。この場合には、ワード線Ｍ００００に接続しているメモリセル（Ａ２０４８およびＡ４０９６）のレイアウトデータを抽出し、さらにトレースを継続してこのメモリセルに接続する制御線とデータ入出力線のレイアウトデータを抽出する。トレースがワード数の分岐を持つｄａｔａ＿ｉｎ［０］およびＭ１６５に到達した時点でトレースを完了する。
【００４９】
ステップ２０６で、機能テストで故障出力までにアクセスされた全てのアドレスに対して抽出されたネットリストを合成して置換用ネットリストを作成した後に、（図示していないが）さらに次のステップとしてこの置換用ネットリストと機能記述されたメモリブロックを置換した設計情報を用いて機能検証シミュレーションを実行し、機能記述を用いたシミュレーションと同じ期待値が得られるかどうかを検証しておくことが、後の故障解析の正当性を裏付けるために望ましい。
【００５０】
図１１は、図７のフローにしたがって作成したメモリブロックのトランジスタレベルネットリストを用いての故障解析フロー図である。先ず、ステップ２１０で、メモリブロックの機能記述を、作成したメモリブロックのトランジスタレベルネットリストに置換して故障診断ソフトを実行する。故障診断ソフトとしては、故障辞書法を用いたもの、バックトレース法を用いたものの何れをも使用可能である。
【００５１】
次のステップ２１１で、故障診断により故障候補箇所が少数に絞り込まれたかを判断する。故障診断で故障候補箇所を少数に絞り込めたときには、ステップ２１２に進み、故障候補箇所で故障信号が発生するように設計情報を意図的に変更して機能シミュレーションを実行する。次のステップ２１３で、シミュレーション出力が実際の故障信号出力と一致するか否かを判断し、一致する場合には故障箇所及び故障原因を特定できたとして故障解析を終了する。ステップ２１３で一致しなかった場合にはステップ２１２に戻り、別の故障候補箇所についてステップ２１２を実行する。
【００５２】
ステップ２１１で、故障候補箇所が多数存在し、故障を埋め込んでのシミュレーションに多大な時間を要するので実質的に不可能な場合には、故障診断ソフトの性能限界と判断して故障候補箇所の絞り込みを放棄し、シミュレーションの期待値と実測値とを照合しながら故障伝搬経路を追跡する物理的な故障解析を実行して故障箇所を特定する。
【００５３】
本実施形態においては、メモリセルブロックの記述を機能記述からトランジスタレベルのネットリストに置換することができるので、市販品を含めた公知の故障診断ソフトを使用して容易且つ効率的に故障解析を進めることが可能となる。また、機能テスト時にアクセスしたアドレスに関係する部分のレイアウトデータのみを抽出してからトランジスタレベルのネットリストを作成するので、メモリブロックの全レイアウトデータからメモリブロックの完全なトランジスタ記述ネットリストを抽出作成しシミュレーションに用いる従来の技術と比較して、ネットリスト作成に要する時間をおよそ（アクセスアドレス数／全アドレス数）に短縮でき、シミュレーション時間も短縮できる。特にメモリ容量の大きいメモリブロックに適用した場合には、これらの短縮効果が顕著となる。このように、第２実施形態においても、機能記述されたメモリブロックの故障追跡作業における労力と時間の大幅な低減が可能である。
【００５４】
【発明の効果】
以上に説明したように、本発明を適用することにより、機能記述のみでゲート記述レベルの情報を持たないメモリブロックが故障信号の伝播経路上に存在する場合においても、メモリブロック内部のアクセスされたアドレスのメモリセルにまで立ち入った故障伝播経路の追跡を実用的な労力および時間で実行することが可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施形態におけるメモリブロックの内部状態ファイルの作成フロー図である。
【図２】内部状態ファイルを作成する故障解析支援装置を含むシステムのブロック図である。
【図３】（ａ）は、内部状態リストの一例であり、（ｂ）は、信号電位実測結果の一例を示す図である。
【図４】故障解析のフロー図である。
【図５】８ビット×２０４８ワードのメモリブロックの機能記述の一例である。
【図６】機能シミュレーション実行時にメモリブロックの内部状態を抽出して内部状態ファイルに格納する制御記述の一例である。
【図７】本発明の第２実施形態のトランジスタレベルのネットリスト作成フロー図である。
【図８】トランジスタレベルのネットリストを作成する故障解析支援装置のブロック図である。
【図９】メモリブロックのアドレスデコーダ部の回路図である。
【図１０】メモリブロックのメモリセルをラッチで表現した回路の一部分を示す回路図である。
【図１１】トランジスタレベルネットリストを用いての故障解析フロー図である。
【符号の説明】
１２，３１    故障解析支援装置
２１    識別子特定手段
２２    内部状態抽出手段
４１    アクセスアドレス保持手段
４２    経路データ抽出手段
４３    ネットリスト作成手段
【図１】
0003860030.tif 000002
【図２】
0003860030.tif 000003
【図３】
0003860030.tif 000004
【図４】
0003860030.tif 000005
【図５】
0003860030.tif 000006
【図６】
0003860030.tif 000007
【図７】
0003860030.tif 000008
【図８】
0003860030.tif 000009
【図９】
0003860030.tif 000010
【図１０】
0003860030.tif 000011
【図１１】
0003860030.tif 000012