(57)【要約】【課題】テストベクタを用いて機能シミュレーションを行う半導体集積回路の検証方法では、テストベクタが必要十分であるかの判断が困難である。【解決手段】テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、シミュレーション中の半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化Ａを保存する。時系列変化Ａから、所望の波形が発生している単数もしくは複数の抽出時系列変化Ｂを抽出する。抽出時系列変化Ｂが複数のとき、抽出時系列変化Ｂより少数の圧縮時系列変化Ｃにまとめる。抽出時系列変化Ｂに含まれない波形が生じる検出時系列変化Ｄを圧縮時系列変化Ｃを用いて検出する。テストベクタにて検証されていない時系列変化Ｄを自動で求めることができ、検証漏れをなくすことができる。【選択図】図７
2006153531.tif 000002
【特許請求の範囲】
【請求項１】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程とを含む半導体集積回路のテストベクタ評価方法。
【請求項２】
前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項１に記載の半導体集積回路のテストベクタ評価方法。
【請求項３】
前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第１の数学的命題を生成し、前記第１の数学的命題から信号の条件を削除した第２の数学的命題を生成して、前記第１の数学的命題と前記第２の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項１に記載の半導体集積回路のテストベクタ評価方法。
【請求項４】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程と、
前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加工程とを含む半導体集積回路の検証方法。
【請求項５】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程と、
前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、前記半導体集積回路の不具合として検出する検出工程とを含む半導体集積回路の検証方法。
【請求項６】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程と、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出工程と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加工程とを含む半導体集積回路の検証方法。
【請求項７】
前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項４から請求項６までのいずれかに記載の半導体集積回路の検証方法。
【請求項８】
前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第１の数学的命題を生成し、前記第１の数学的命題から信号の条件を削除した第２の数学的命題を生成して、前記第１の数学的命題と前記第２の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項４から請求項６までのいずれかに記載の半導体集積回路の検証方法。
【請求項９】
前記検出工程は、前記第２の数学的命題の条件と結果を入れ替えた第３の数学的命題を生成して、前記第３の数学的命題が前記半導体集積回路の機能の一部分を正しく表現しているかを形式的機能検証を用いて判定することによって前記検出時系列変化を求める請求項６に記載の半導体集積回路の検証方法。
【請求項１０】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段とを備える半導体集積回路のテストベクタ評価装置。
【請求項１１】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段と、
前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加手段とを備える半導体集積回路の検証装置。
【請求項１２】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段と、
前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、不具合パタンとして検出する検出手段とを備える半導体集積回路の検証装置。
【請求項１３】
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段と、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出手段と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加手段とを備える半導体集積回路の検証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置に関するものである。
【背景技術】
【０００２】
従来、半導体集積回路の検証方法として、テストベクタ（テストパターン）を用いて対象となる半導体集積回路の機能シミュレーションを行い、結果を判定する方法が用いられている。
【０００３】
さらに、機能シミュレーションを改良する方法が、例えば、特許文献１に記載されている。一度機能シミュレーションを行った際に、半導体集積回路の状態変化を記憶し、記憶された半導体集積回路の状態を初期状態として半導体集積回路の入力信号を様々に変化させ、記憶された半導体集積回路の状態とは異なる状態を生成し、機能シミュレーションの効率を上げる方法がある。
【０００４】
また、別の検証方法が、例えば非特許文献１に記載されている。半導体集積回路の機能を数学的命題で記述し、数学的命題と半導体集積回路を比較し、一致するかどうか確かめる形式的機能検証方法が用いられている。
【特許文献１】米国特許公報６２９２７６５号明細書
【非特許文献１】藤田昌宏、“システムＬＳＩ検証技術入門  第１回 フォーマル・ベリフィケーションの意味”、Ｄｅｓｉｇｎ  Ｗａｖｅ  Ｍａｇａｚｉｎｅ  ２００３年６月号 １１０ページ
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、テストベクタを用いて半導体集積回路の機能シミュレーションを行う半導体集積回路の検証方法では、所望の波形が発生する全条件を検証したかどうかの判断が困難である。そのため、検証漏れが発生している。また、所望の波形の発生要因が半導体集積回路の仕様と一致しているかの判断が困難である。また、半導体集積回路は年々高機能化するために回路規模が増大している。また、半導体集積回路の外部に伝播しない不具合は発見することができない。
【０００６】
特許文献１の構成は、この課題を解決する１つの方法であるが、未検証の状態を探索する手段として、記憶された半導体集積回路の状態を初期状態とし、半導体集積回路の入力信号を様々に変化させているため、全ての状態を探索できない場合が生じ、必ずしも十分な検証とはいえない。
【０００７】
また、非特許文献１の構成では、記述された数学的命題に対しては漏れなく検証が可能であるが、数学的命題が十分で有るかを検証する方法がなく、すべての機能を検証するために必要な数学的命題を記述できない場合が生じ、必ずしも十分な検証とはいえない。
【０００８】
本発明は、上記従来の問題点を解決するもので、機能シミュレーションの結果から数学的命題を自動生成し、形式的機能検証を用いて網羅されていることを検証する半導体集積回路のテストベクタ評価方法と、前記テストベクタ評価方法に基づく半導体集積回路の検証方法と、半導体集積回路のテストベクタ評価装置と、前記テストベクタ評価方法に基づく半導体集積回路の検証装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
この目的を達成するために、本発明の第１の半導体集積回路のテストベクタ評価方法は、
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程とを含むことを特徴としている。
【００１０】
この第１の半導体集積回路のテストベクタ評価方法に対応するテストベクタ評価装置は、
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段とを備えるものである。
【００１１】
本発明の第２の半導体集積回路のテストベクタ評価方法は、第１の半導体集積回路のテストベクタ評価方法において、
前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめるものである。
【００１２】
本発明の第３の半導体集積回路のテストベクタ評価方法は、第１の半導体集積回路のテストベクタ評価方法において、
前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第１の数学的命題を生成し、前記第１の数学的命題から信号の条件を削除した第２の数学的命題を生成して、前記第１の数学的命題と前記第２の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめるものである。
【００１３】
第１、第２、第３のテストベクタ評価方法により、テストベクタにて発生した所望の波形を生成させる半導体集積回路の状態を圧縮時系列変化にまとまった状態で確認することができるため、所望の波形を生じさせる場合が前記波形変化で十分かどうかの判断を簡単に行える。また、圧縮時系列変化に現れるドントケア条件は、目的となる波形を生成する上で論理的に不要な信号であることを意味し、抽出すべきすべての波形においてドントケアと判断された場合には、回路上不要な論理と判断されるため、半導体集積回路内の不要な論理を抽出することが可能となる。
【００１４】
次に、本発明の第１の半導体集積回路の検証方法は、第１の半導体集積回路のテストベクタ評価方法に加えて、前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加工程を含むことを特徴としている。
【００１５】
この第１の半導体集積回路の検証方法に対応する第１の検証装置は、前記半導体集積回路のテストベクタ評価装置に加えて、前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加手段を備えたものである。
【００１６】
本発明の第２の半導体集積回路の検証方法は、第１の半導体集積回路のテストベクタ評価方法に加えて、前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、前記半導体集積回路の不具合として検出する検出工程を含むことを特徴としている。
【００１７】
この第２の半導体集積回路の検証方法に対応する第２の検証装置は、前記半導体集積回路のテストベクタ評価装置に加えて、前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、不具合パタンとして検出する検出手段を備えたものである。
【００１８】
前記第１、前記第２の検証方法により、所望の波形を発生させる内部状態を含む状態の組み合わせが簡便に表現されることにより、仕様との差異を容易に発見することが可能である。また、前記圧縮時系列変化は半導体集積回路の内部状態を含んでいるため、半導体集積回路の外部に不具合が伝播してこない場合でも、不具合を発見することができる。
【００１９】
本発明の第３の半導体集積回路の検証方法は、第１の半導体集積回路のテストベクタ評価方法に加えて、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出工程と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加工程とを含むことを特徴としている。
【００２０】
この第３の半導体集積回路の検証方法に対応する第３の検証装置は、前記半導体集積回路のテストベクタ評価装置に加えて、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出手段と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加手段とを備えたものである。
【００２１】
本発明の第４の半導体集積回路の検証方法は、第１ないし第３の半導体集積回路の検証方法において、前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめることを特徴としている。
【００２２】
本発明の第５の半導体集積回路の検証方法は、第１ないし第３の半導体集積回路の検証方法において、前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第１の数学的命題を生成し、前記第１の数学的命題から信号の条件を削除した第２の数学的命題を生成して、前記第１の数学的命題と前記第２の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめることを特徴としている。
【００２３】
本発明の第６の半導体集積回路の検証方法は、第３の半導体集積回路の検証方法において、前記検出工程は、前記第２の数学的命題の条件と結果を入れ替えた第３の数学的命題を生成して、前記第３の数学的命題が前記半導体集積回路の機能の一部分を正しく表現しているかを形式的機能検証を用いて判定することによって前記検出時系列変化を求めることを特徴としている。
【００２４】
第３、第４、第５、第６の検証方法により、テストベクタにて検証されていない検出時系列変化を自動的に求めることができ、検証漏れを防ぐことができる。
【発明の効果】
【００２５】
本発明によれば、テストベクタにて発生した所望の波形を生成させる半導体集積回路の状態を圧縮時系列変化にまとまった状態で確認することができるため、所望の波形を生じさせる場合が前記波形変化で十分かどうかの判断を簡単に行える。
【００２６】
また、圧縮時系列変化に現れるドントケア条件が、目的となる波形を生成する上で論理的に不要な信号であることを意味し、抽出すべきすべての波形においてドントケアと判断された場合には、回路上不要な論理と判断されるため、半導体集積回路内の不要な論理を抽出することが可能となる。
【００２７】
また、所望の波形を発生させる内部状態を含む状態の組み合わせが簡便に表現されることにより、仕様との差異を容易に発見することが可能である。
【００２８】
また、圧縮時系列変化は半導体集積回路の内部状態を含んでいるため、半導体集積回路の外部に不具合が伝播してこない場合でも、不具合を発見することができる。
【００２９】
また、テストベクタにて検証されていない検出時系列変化を自動的に求めることができ、検証漏れを防ぐことができる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【００３１】
（実施の形態１）
図１は本発明の実施の形態１における半導体集積回路のテストベクタ評価方法の処理を示すフローチャートであり、１はコンピュータ装置、２はテストベクタ、３は半導体集積回路の回路記述、Ｓ１は第１の工程、Ｓ２は第２の工程、Ｓ３は第３の工程、Ｓ４は第４の工程である。テストベクタ２と半導体集積回路の回路記述３は、コンピュータ装置１の外部のハードディスクに格納されており、インターフェースを介してコンピュータ装置１内に取り込まれる。コンピュータ装置１は、内部ＣＰＵを用いて第１ないし第３の工程Ｓ１〜Ｓ３の処理を実行し、圧縮時系列変化として、再びハードディスクへと出力する。検証者はハードディスク内に取り込まれた圧縮時系列変化を確認することにより、テストベクタの網羅度を従来より容易に評価することができる。さらに本実施形態においては、圧縮時系列変化を別のコンピュータ装置への入力とし、別のコンピュータ装置のＣＰＵを用いて第４の工程Ｓ４を処理することにより、未検証のテストベクタを生成することも可能である。なお、第４の工程Ｓ４を処理するコンピュータ装置は第１ないし第３の工程Ｓ１〜Ｓ３を処理するコンピュータ装置１と同一であっても構わない。
【００３２】
以下に第１ないし第４の工程Ｓ１〜Ｓ４をさらに具体的に説明する。
【００３３】
第１の工程Ｓ１では、シミュレーションを実行し、対象となる半導体集積回路の一部もしくは全部の入力信号、出力信号および内部状態についてシミュレーションの全時刻あるいは一部の区間の時系列変化を時系列変化Ａとして保存する。
【００３４】
第２の工程Ｓ２では、時系列変化Ａに記録されている入力信号、出力信号、内部状態の中から選択された信号についての部分時系列を定義し、この定義された部分時系列と合致する部分時系列を時系列変化Ａから抽出し、抽出時系列変化Ｂとする。抽出時系列変化Ｂは抽出するために選択された信号以外の信号も含んでいる。
【００３５】
第３の工程Ｓ３では、抽出時系列変化Ｂから各信号の有意性を判断することで複数の抽出時系列変化Ｂを併合し、圧縮時系列変化Ｃを生成する。
【００３６】
第４の工程Ｓ４では、第３の工程Ｓ３で得られた圧縮時系列変化Ｃを用いてテストされていないパタンを検出し、追加パタンの生成を行う。
【００３７】
以上のように構成された本実施形態の半導体集積回路のテストベクタ評価方法について、以下、半導体集積回路の回路記述３がタイマー回路で、テストベクタ２がタイマー回路のテストベクタである場合について説明する。
【００３８】
図２はタイマー回路の機能ブロック図であり、２１はタイマー、２２は信号“１”が書き込まれることによってカウント動作を許可する第１のモードレジスタ（ｅｘｅ）、２３は信号“１”が書き込まれることによってカスケード動作を許可する第２のモードレジスタ（ｃａｓ）、２４はタイマー２１全体を初期化するリセット信号（ｒｓｔ）、２５はカスケード入力信号（ｃｉｎ）、２６はタイマー全体の動作の基準となるクロック（ｃｌｋ）、２７は４ビットのバイナリカウンタ、２８は割り込み出力、２９は第１のモードレジスタ（ｅｘｅ）２２、第２のモードレジスタ（ｃａｓ）２３にアクセス可能なＩＯバスである。タイマー２１は回路記述としてコンピュータ装置１の外部のハードディスクに格納されている。
【００３９】
タイマー２１の機能について説明する。カウント動作は、第１のモードレジスタ（ｅｘｅ）２２を“１”、第２のモードレジスタ（ｃａｓ）２３を“０”に設定すると、クロック２６と同期してバイナリカウンタ２７がアップカウントする。バイナリカウンタ２７の値が“１５”から“０”に値が変化した直後、割り込み出力２８が１サイクル期間“１”を出力する。バイナリカウンタ２７が動作中、つまり第１のモードレジスタ（ｅｘｅ）２２が“１”のときしか割り込み出力２８は出力されない。カスケード動作とは、第１のモードレジスタ（ｅｘｅ）２２が“１”、第２のモードレジスタ（ｃａｓ）２３が“１”のときであり、カスケード入力信号２５が“１”のときのみバイナリカウンタ２７がアップカウント動作を行う。
【００４０】
図３はタイマー２１の時系列変化Ａの例である。図３において、Ｔｉｍｅはシミュレーション時刻を表し、ｒｓｔはリセット信号２４を表し、ｃｉｎはカスケード入力信号２５を表し、ｃａｓは第２のモードレジスタ（ｃａｓ）２３を表し、ｅｘｅは第１のモードレジスタ（ｅｘｅ）２２を表し、ＢＣはバイナリカウンタ２７を表し、ｉｒｑは割り込み出力２８を表す。クロック２６の周期はＴｉｍｅ１０とする。図３において、クロック２６の動作は省略している。入力信号であるテストベクタはｒｓｔ、ｃｉｎ、ｃａｓ、ｅｘｅであり、シミュレーションで得られた内部状態の時系列変化はＢＣ、出力信号の時系列変化はｉｒｑである。タイマー２１の時系列変化Ａは、テストベクタとタイマー２１の回路記述をコンピュータ装置１に入力してシミュレーションを行い、タイマー２１の入力信号と出力信号と内部状態の時系列変化を保存する第１の工程Ｓ１によって得られ、コンピュータ装置１の外部のハードディスクに格納される。
【００４１】
タイマー２１の場合の時系列変化Ａの詳細な説明を行う。Ｔｉｍｅ０にてｒｓｔを“１”にしてタイマー２１の初期化を行う。Ｔｉｍｅ２０にてｅｘｅを“１”に設定し、タイマー２１のカウント動作を開始する。Ｔｉｍｅ３０からｅｘｅを“０”に設定するＴｉｍｅ４１０まで、ＢＣはＴｉｍｅ１０毎に１ずつアップカウント動作を行う。ｉｒｑはＢＣが“１５”になった次のサイクルで“１”となる。Ｔｉｍｅ４１０にてｃｉｎ、ｅｘｅを“０”に設定し、Ｔｉｍｅ４２０でｃａｓ、ｅｘｅを“１”に設定している。そのため、ｃｉｎが“１”となったＴｉｍｅ４５０の次のサイクルであるＴｉｍｅ４６０にてＢＣが１、アップカウントしている（“７”→“８”）。
【００４２】
図４は、第２の工程Ｓ２にてタイマー２１に関する所望の波形が生じる抽出時系列変化Ｂ群を時系列変化Ａから抽出した結果を示す。ここで所望の波形とは、ｉｒｑが“１”となる１サイクル前からｉｒｑが“１”となるまで、と設定した。Ｔｉｍｅ１７０、Ｔｉｍｅ１８０と、Ｔｉｍｅ３３０、Ｔｉｍｅ３４０の２通りが抽出される。
【００４３】
図５は、第３の工程Ｓ３にて、抽出時系列変化Ｂを圧縮時系列変化Ｃにまとめた結果を示す。
【００４４】
ここでは、抽出時系列変化Ｂより少数の圧縮時系列変化Ｃにまとめる方法を具体的に説明する。それは、抽出時系列変化Ｂ１、抽出時系列変化Ｂ２から所望の波形が発生する場合の数学的命題である第１の数学的命題を生成する。さらに、第１の数学的命題から信号の条件を削除した第２の数学的命題を生成する。そして、第１の数学的命題と第２の数学的命題がタイマー２１に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出する。その結果として、抽出時系列変化Ｂより少数の圧縮時系列変化Ｃにまとめる。
【００４５】
抽出時系列変化Ｂ１よりｉｒｑが“１”になる場合を数学的命題に変換する。具体的には、「ｒｓｔが“０”かつｃｉｎが“０”かつｃａｓが“０”かつｅｘｅが“１”かつＢＣが“１５”かつｉｒｑが“０”であって、さらに、次のサイクルで、ｒｓｔが“０”かつｃｉｎが“０”かつｃａｓが“０”かつｅｘｅが“１”かつＢＣが“０”ならば、次のサイクルでｉｒｑは“１”である。」という第１の数学的命題を記述する。
【００４６】
次に、この第１の数学的命題の１つの信号条件を取り除いて形式的機能検証を実施する。例えば、第１の数学的命題から、１つ目の信号条件である「ｒｓｔが“０”かつ」を取り除き、「ｃｉｎが“０”かつｃａｓが“０”かつｅｘｅが“１”かつＢＣが“１５”かつｉｒｑが“０” であって、さらに、次のサイクルで、ｒｓｔが“０”かつｃｉｎが“０”かつｃａｓが“０”かつｅｘｅが“１”かつＢＣが“０”ならば、次のサイクルでｉｒｑは“１”である。」という第２の数学的命題を生成する。次いで、第２の数学的命題とタイマー２１の形式的機能検証を実施する。等価と判定されれば、「ｒｓｔが“０”かつ」はドントケアの条件であるので、第１の数学的命題から削除する。実際は不等価と判定され、「ｒｓｔが“０”かつ」はドントケアの条件ではなく、第１の数学的命題から削除することはできない。
【００４７】
この作業を繰り返し、ドントケアの条件を削除していくと、図４に示す抽出時系列変化Ｂ１、抽出時系列変化Ｂ２から、「ｒｓｔが“０”かつｃａｓが“０”かつｅｘｅが“１”かつＢＣが“１５”であって、さらに、次のサイクルでｒｓｔが“０”ならば、次のサイクルでｉｒｑは“１”である。」という第２の数学的命題が生成される。この１つにまとまった第２の数学的命題を波形表現することで図５に示す圧縮時系列変化Ｃ１が得られる。
【００４８】
次に、第４の工程Ｓ４にて、圧縮時系列変化Ｃが所望の波形を発生させる全通りか判断し、そうでない場合は所望の波形を生じさせる未検証のテストベクタを記述し、第１の工程Ｓ１に進む。具体的には、第３の工程Ｓ３により圧縮時系列変化Ｃにはドントケア（“ｘ”）と判断されない信号値が論理値“０”もしくは“１”の値として残されており、例えば、論理値の一方しか現れない信号や、特定の信号組み合わせにおいて、すべての論理値の組み合わせのうち、論理的に発生し得ないものを除く組み合わせが出現していないものを検出する。
【００４９】
タイマー２１の例で、第１のモードレジスタ（ｅｘｅ）２２が“１”かつ、第２のモードレジスタ（ｃａｓ）２３が“１”かつ、リセット信号２４が“０”かつ、カスケード入力信号２５が“１”かつ、バイナリカウンタ２７が“１５”で、クロック２６が入力されて、次のクロックサイクルで割り込み出力２８が“１”となるテストベクタが時系列変化Ａに追加されていたとする（図４のＣ２参照）。その場合、圧縮時系列変化Ｃには圧縮時系列変化Ｃ１と、圧縮時系列変化Ｃ２が得られる。圧縮時系列変化Ｃ１と、圧縮時系列変化Ｃ２を比較すると、両方とも、Ｔｉｍｅがｎのとき、ｅｘｅが“１”かつＢＣが“１５”である。これが、タイマー２１の場合の論理値が一方しか現れていない信号であり、ｅｘｅが“０”、又はＢＣが“１５”でない場合が未検証であるかどうか判断する。
【００５０】
以上のように本実施形態によれば、所望の波形が発生する抽出時系列変化Ｂを、ドントケアの条件を抽出することで圧縮時系列変化Ｃにまとめることにより、判断を下すべき信号線の数を減らすことが可能となり、所望の波形を生じさせる場合が抽出時系列変化Ｂで十分かどうかの判断を従来に比べ、容易に行える。
【００５１】
また、所望の波形を発生させる内部状態を含む状態の組み合わせが圧縮時系列変化Ｃにて簡便に表現されることにより、仕様との差異を容易に発見することが可能である。
【００５２】
また、所望の波形を発生させる内部状態を含む状態の組み合わせが圧縮時系列変化Ｃにて簡便に表現されることにより、仕様との差異を容易に発見することが可能である。
【００５３】
また、本実施形態により生成される圧縮時系列変化Ｃに現れるドントケア条件は、目的となる波形を生成する上で論理的に不要な信号であることを意味し、抽出すべきすべての波形においてドントケアと判断された場合には、回路上不要な論理と判断される。このように本実施の形態によれは、半導体集積回路内の不要な論理を抽出することが可能となる。
【００５４】
なお、本実施形態においては第４の工程Ｓ４において形式的機能検証を用いてドントケアの条件を抽出したが、形式的機能検証を用いず、抽出時系列変化Ｂから対象とする信号以外が全く同じものを選び出し、対象信号の論理を調べ、すべての論理が起こっていることを確認することでドントケア条件を抽出することも可能である。また、本実施形態では、条件を１つずつ形式的機能検証により判定したが、複数の条件を一度に削除して判定することも可能であり、この判定結果によりドントケア条件を抽出することも可能である。
【００５５】
また、抽出時系列変化Ｂの抽出時に、抽出のために選択された信号に対し、明らかに関係がないと判断できる信号がある場合には、その信号を除外して抽出することで、第３の工程Ｓ３を簡便化することが可能である。
【００５６】
（実施の形態２）
図６は本発明の実施の形態２における半導体集積回路の検証方法の処理を示すフローチャートであり、Ｓ１，Ｓ２，Ｓ３は実施の形態１と同じであり、Ｓ５は第５の工程である。第５の工程Ｓ５では、圧縮時系列変化Ｃを用いて、第２の工程Ｓ２で選択された信号の変化に対し、選択されていない信号の論理が半導体集積回路の仕様と合致しているか判断し、合致していない場合は半導体集積回路の不具合箇所として検出し、必要な修正を施す。もしくは、圧縮時系列変化Ｃにてドントケアと判断された信号が、仕様でもドントケアかどうか判断し、ドントケアでない場合は半導体集積回路の不具合箇所として検出し、必要な修正を施す。不具合が半導体集積回路の回路記述に問題があった場合は、回路記述の修正を行う。その後、第１の工程Ｓ１に進む。
【００５７】
タイマー２１の回路記述に不具合があり、図５に示す圧縮時系列変化Ｃ３が得られたとする。ｅｘｅがドントケア“ｘ”でも割り込み出力２８が“１”になっている。仕様より、タイマー２１が動作中（ｅｘｅが“１”）でないと割り込み出力２８は“１”になりえないので、タイマー２１の回路記述に不具合があることが分かる。
【００５８】
以上のように本実施形態によれば、所望の波形が発生する抽出時系列変化Ｂからドントケアの条件を抽出することで、半導体集積回路の内部状態を含む所望の波形が生じる必要最低限の状態を圧縮時系列変化Ｃとしてまとめる。よって、所望の波形が発生する複数の場合においてそれらが仕様と合致しているかの判断を、少ない状態数により行えるため、従来に比べ、容易に判断できる。さらに、内部信号に対しても、本検証方法は適用可能であるため、半導体集積回路の外部に伝播しない不具合をも簡単に発見できる。
【００５９】
（実施の形態３）
図７は本発明の実施の形態３における半導体集積回路の検証方法の処理を示すフローチャートであり、Ｓ１，Ｓ２，Ｓ３は実施の形態１と同じであり、Ｓ６は第６の工程、Ｓ７は第７の工程である。第６の工程Ｓ６では、第３の工程Ｓ３で得られた圧縮時系列変化Ｃと抽出時系列変化Ｂを抽出する波形を用いて、抽出時系列変化Ｂに含まれない抽出する波形を生成する検出時系列変化Ｄを検出する。第７の工程Ｓ７では、第６の工程Ｓ６で検出された検出時系列変化Ｄを発生させるテストベクタを生成する。以上のように構成された本実施形態の半導体集積回路の検証方法について、以下、タイマー回路とそのテストベクタを用いて説明する。
【００６０】
図８はタイマー２１とその圧縮時系列変化Ｃを用いて、第６の工程Ｓ６にて検出した検出時系列変化Ｄである。
【００６１】
ここでは、第２の数学的命題の条件と結果を入れ替えた第３の数学的命題を生成して、第３の数学的命題が半導体集積回路の機能の一部分を正しく表現しているかを形式的機能検証を用いて判定することによって検出時系列変化Ｄを求める方法を具体的に説明する。第２の数学的命題の条件と結果を入れ替え、「次のサイクルでｉｒｑが“１”ならば、ｒｓｔが“０”かつｃａｓが“０”かつｅｘｅが“１”かつＢＣが“１５”かつ、次のサイクルでｒｓｔが“０”である。」（図５のＣ１参照）という第３の数学的命題を生成する。この第３の数学的命題を用いて形式的機能検証を実施すると、ｉｒｑが“１”となる他の場合があれば不一致となり、検出できる。タイマー２１の例では、検出時系列変化Ｄが検出される。カスケードモード時に割り込み出力が正しく出力されるかの検証が抜けていることを示している。
【００６２】
次に第７の工程Ｓ７にて、検出時系列変化Ｄが検出されたならば、検出時系列変化Ｄを再現するテストベクタを記述し、第１の工程Ｓ１に進む。
【００６３】
以上のように本実施形態によれば、テストベクタにて検証されていない検出時系列変化Ｄを発見する数学的命題を自動的に生成できるため、所望の波形が発生する機能検証の漏れを防ぐことが可能となる。
【産業上の利用可能性】
【００６４】
本発明における半導体集積回路のテストベクタの評価方法は、半導体集積回路の検証に用いるテストベクタが必要十分がどうか判定する方法として有用である。
【００６５】
また、本テストベクタ評価方法を用いた本発明における半導体集積回路の検証方法は、半導体集積回路の検証を効率的に行う方法として有用である。
【００６６】
また、本テストベクタ評価方法は、テストベクタの削減を行う上で有効であり、検証時間の削減に有効である。また、同様にテスタを用いたＬＳＩ評価時のテストベクタの削減にも利用可能である。
【００６７】
また、本テストベクタ評価方法は、ドントケア条件を抽出することから、回路上、冗長回路である可能性がある部分を検出できることにもなり、不要回路の検出にも利用可能である。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施の形態１における半導体集積回路のテストベクタ評価方法の処理を示すフローチャート
【図２】実施の形態１におけるタイマー回路の機能ブロック図
【図３】実施の形態１におけるタイマーの時系列変化の例の図
【図４】実施の形態１におけるタイマーに関する所望の波形が生じる抽出時系列変化群の図
【図５】実施の形態１における圧縮時系列変化にまとめた結果の図
【図６】本発明の実施の形態２における半導体集積回路のテストベクタ検証方法の処理を示すフローチャート
【図７】本発明の実施の形態３における半導体集積回路のテストベクタ検証方法の処理を示すフローチャート
【図８】実施の形態３における検出時系列変化の図
【符号の説明】
【００６９】
１  コンピュータ装置
２  テストベクタ
３  半導体集積回路の回路記述
Ａ  時系列変化
Ｂ１，Ｂ２  抽出時系列変化
Ｃ１，Ｃ２，Ｃ３  圧縮時系列変化
Ｄ  検出時系列変化
【図１】
2006153531.tif 000003
【図２】
2006153531.tif 000004
【図３】
2006153531.tif 000005
【図４】
2006153531.tif 000006
【図５】
2006153531.tif 000007
【図６】
2006153531.tif 000008
【図７】
2006153531.tif 000009
【図８】
2006153531.tif 000010