JP2006153531A - 半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置 - Google Patents
半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置 Download PDFInfo
- Publication number
- JP2006153531A JP2006153531A JP2004341457A JP2004341457A JP2006153531A JP 2006153531 A JP2006153531 A JP 2006153531A JP 2004341457 A JP2004341457 A JP 2004341457A JP 2004341457 A JP2004341457 A JP 2004341457A JP 2006153531 A JP2006153531 A JP 2006153531A
- Authority
- JP
- Japan
- Prior art keywords
- time series
- semiconductor integrated
- integrated circuit
- series changes
- test vector
- 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.)
- Pending
Links
Images
Landscapes
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
【課題】テストベクタを用いて機能シミュレーションを行う半導体集積回路の検証方法では、テストベクタが必要十分であるかの判断が困難である。
【解決手段】テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、シミュレーション中の半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化Aを保存する。時系列変化Aから、所望の波形が発生している単数もしくは複数の抽出時系列変化Bを抽出する。抽出時系列変化Bが複数のとき、抽出時系列変化Bより少数の圧縮時系列変化Cにまとめる。抽出時系列変化Bに含まれない波形が生じる検出時系列変化Dを圧縮時系列変化Cを用いて検出する。テストベクタにて検証されていない時系列変化Dを自動で求めることができ、検証漏れをなくすことができる。
【選択図】図7
【解決手段】テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、シミュレーション中の半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化Aを保存する。時系列変化Aから、所望の波形が発生している単数もしくは複数の抽出時系列変化Bを抽出する。抽出時系列変化Bが複数のとき、抽出時系列変化Bより少数の圧縮時系列変化Cにまとめる。抽出時系列変化Bに含まれない波形が生じる検出時系列変化Dを圧縮時系列変化Cを用いて検出する。テストベクタにて検証されていない時系列変化Dを自動で求めることができ、検証漏れをなくすことができる。
【選択図】図7
Description
本発明は、半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置に関するものである。
従来、半導体集積回路の検証方法として、テストベクタ(テストパターン)を用いて対象となる半導体集積回路の機能シミュレーションを行い、結果を判定する方法が用いられている。
さらに、機能シミュレーションを改良する方法が、例えば、特許文献1に記載されている。一度機能シミュレーションを行った際に、半導体集積回路の状態変化を記憶し、記憶された半導体集積回路の状態を初期状態として半導体集積回路の入力信号を様々に変化させ、記憶された半導体集積回路の状態とは異なる状態を生成し、機能シミュレーションの効率を上げる方法がある。
また、別の検証方法が、例えば非特許文献1に記載されている。半導体集積回路の機能を数学的命題で記述し、数学的命題と半導体集積回路を比較し、一致するかどうか確かめる形式的機能検証方法が用いられている。
米国特許公報6292765号明細書
藤田昌宏、"システムLSI検証技術入門 第1回 フォーマル・ベリフィケーションの意味"、Design Wave Magazine 2003年6月号 110ページ
しかしながら、テストベクタを用いて半導体集積回路の機能シミュレーションを行う半導体集積回路の検証方法では、所望の波形が発生する全条件を検証したかどうかの判断が困難である。そのため、検証漏れが発生している。また、所望の波形の発生要因が半導体集積回路の仕様と一致しているかの判断が困難である。また、半導体集積回路は年々高機能化するために回路規模が増大している。また、半導体集積回路の外部に伝播しない不具合は発見することができない。
特許文献1の構成は、この課題を解決する1つの方法であるが、未検証の状態を探索する手段として、記憶された半導体集積回路の状態を初期状態とし、半導体集積回路の入力信号を様々に変化させているため、全ての状態を探索できない場合が生じ、必ずしも十分な検証とはいえない。
また、非特許文献1の構成では、記述された数学的命題に対しては漏れなく検証が可能であるが、数学的命題が十分で有るかを検証する方法がなく、すべての機能を検証するために必要な数学的命題を記述できない場合が生じ、必ずしも十分な検証とはいえない。
本発明は、上記従来の問題点を解決するもので、機能シミュレーションの結果から数学的命題を自動生成し、形式的機能検証を用いて網羅されていることを検証する半導体集積回路のテストベクタ評価方法と、前記テストベクタ評価方法に基づく半導体集積回路の検証方法と、半導体集積回路のテストベクタ評価装置と、前記テストベクタ評価方法に基づく半導体集積回路の検証装置を提供することを目的とする。
この目的を達成するために、本発明の第1の半導体集積回路のテストベクタ評価方法は、
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程とを含むことを特徴としている。
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程とを含むことを特徴としている。
この第1の半導体集積回路のテストベクタ評価方法に対応するテストベクタ評価装置は、
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段とを備えるものである。
テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の一部またはすべての入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段とを備えるものである。
本発明の第2の半導体集積回路のテストベクタ評価方法は、第1の半導体集積回路のテストベクタ評価方法において、
前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめるものである。
前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめるものである。
本発明の第3の半導体集積回路のテストベクタ評価方法は、第1の半導体集積回路のテストベクタ評価方法において、
前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第1の数学的命題を生成し、前記第1の数学的命題から信号の条件を削除した第2の数学的命題を生成して、前記第1の数学的命題と前記第2の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめるものである。
前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第1の数学的命題を生成し、前記第1の数学的命題から信号の条件を削除した第2の数学的命題を生成して、前記第1の数学的命題と前記第2の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめるものである。
第1、第2、第3のテストベクタ評価方法により、テストベクタにて発生した所望の波形を生成させる半導体集積回路の状態を圧縮時系列変化にまとまった状態で確認することができるため、所望の波形を生じさせる場合が前記波形変化で十分かどうかの判断を簡単に行える。また、圧縮時系列変化に現れるドントケア条件は、目的となる波形を生成する上で論理的に不要な信号であることを意味し、抽出すべきすべての波形においてドントケアと判断された場合には、回路上不要な論理と判断されるため、半導体集積回路内の不要な論理を抽出することが可能となる。
次に、本発明の第1の半導体集積回路の検証方法は、第1の半導体集積回路のテストベクタ評価方法に加えて、前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加工程を含むことを特徴としている。
この第1の半導体集積回路の検証方法に対応する第1の検証装置は、前記半導体集積回路のテストベクタ評価装置に加えて、前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加手段を備えたものである。
本発明の第2の半導体集積回路の検証方法は、第1の半導体集積回路のテストベクタ評価方法に加えて、前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、前記半導体集積回路の不具合として検出する検出工程を含むことを特徴としている。
この第2の半導体集積回路の検証方法に対応する第2の検証装置は、前記半導体集積回路のテストベクタ評価装置に加えて、前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、不具合パタンとして検出する検出手段を備えたものである。
前記第1、前記第2の検証方法により、所望の波形を発生させる内部状態を含む状態の組み合わせが簡便に表現されることにより、仕様との差異を容易に発見することが可能である。また、前記圧縮時系列変化は半導体集積回路の内部状態を含んでいるため、半導体集積回路の外部に不具合が伝播してこない場合でも、不具合を発見することができる。
本発明の第3の半導体集積回路の検証方法は、第1の半導体集積回路のテストベクタ評価方法に加えて、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出工程と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加工程とを含むことを特徴としている。
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出工程と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加工程とを含むことを特徴としている。
この第3の半導体集積回路の検証方法に対応する第3の検証装置は、前記半導体集積回路のテストベクタ評価装置に加えて、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出手段と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加手段とを備えたものである。
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出手段と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加手段とを備えたものである。
本発明の第4の半導体集積回路の検証方法は、第1ないし第3の半導体集積回路の検証方法において、前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめることを特徴としている。
本発明の第5の半導体集積回路の検証方法は、第1ないし第3の半導体集積回路の検証方法において、前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第1の数学的命題を生成し、前記第1の数学的命題から信号の条件を削除した第2の数学的命題を生成して、前記第1の数学的命題と前記第2の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめることを特徴としている。
本発明の第6の半導体集積回路の検証方法は、第3の半導体集積回路の検証方法において、前記検出工程は、前記第2の数学的命題の条件と結果を入れ替えた第3の数学的命題を生成して、前記第3の数学的命題が前記半導体集積回路の機能の一部分を正しく表現しているかを形式的機能検証を用いて判定することによって前記検出時系列変化を求めることを特徴としている。
第3、第4、第5、第6の検証方法により、テストベクタにて検証されていない検出時系列変化を自動的に求めることができ、検証漏れを防ぐことができる。
本発明によれば、テストベクタにて発生した所望の波形を生成させる半導体集積回路の状態を圧縮時系列変化にまとまった状態で確認することができるため、所望の波形を生じさせる場合が前記波形変化で十分かどうかの判断を簡単に行える。
また、圧縮時系列変化に現れるドントケア条件が、目的となる波形を生成する上で論理的に不要な信号であることを意味し、抽出すべきすべての波形においてドントケアと判断された場合には、回路上不要な論理と判断されるため、半導体集積回路内の不要な論理を抽出することが可能となる。
また、所望の波形を発生させる内部状態を含む状態の組み合わせが簡便に表現されることにより、仕様との差異を容易に発見することが可能である。
また、圧縮時系列変化は半導体集積回路の内部状態を含んでいるため、半導体集積回路の外部に不具合が伝播してこない場合でも、不具合を発見することができる。
また、テストベクタにて検証されていない検出時系列変化を自動的に求めることができ、検証漏れを防ぐことができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図1は本発明の実施の形態1における半導体集積回路のテストベクタ評価方法の処理を示すフローチャートであり、1はコンピュータ装置、2はテストベクタ、3は半導体集積回路の回路記述、S1は第1の工程、S2は第2の工程、S3は第3の工程、S4は第4の工程である。テストベクタ2と半導体集積回路の回路記述3は、コンピュータ装置1の外部のハードディスクに格納されており、インターフェースを介してコンピュータ装置1内に取り込まれる。コンピュータ装置1は、内部CPUを用いて第1ないし第3の工程S1〜S3の処理を実行し、圧縮時系列変化として、再びハードディスクへと出力する。検証者はハードディスク内に取り込まれた圧縮時系列変化を確認することにより、テストベクタの網羅度を従来より容易に評価することができる。さらに本実施形態においては、圧縮時系列変化を別のコンピュータ装置への入力とし、別のコンピュータ装置のCPUを用いて第4の工程S4を処理することにより、未検証のテストベクタを生成することも可能である。なお、第4の工程S4を処理するコンピュータ装置は第1ないし第3の工程S1〜S3を処理するコンピュータ装置1と同一であっても構わない。
図1は本発明の実施の形態1における半導体集積回路のテストベクタ評価方法の処理を示すフローチャートであり、1はコンピュータ装置、2はテストベクタ、3は半導体集積回路の回路記述、S1は第1の工程、S2は第2の工程、S3は第3の工程、S4は第4の工程である。テストベクタ2と半導体集積回路の回路記述3は、コンピュータ装置1の外部のハードディスクに格納されており、インターフェースを介してコンピュータ装置1内に取り込まれる。コンピュータ装置1は、内部CPUを用いて第1ないし第3の工程S1〜S3の処理を実行し、圧縮時系列変化として、再びハードディスクへと出力する。検証者はハードディスク内に取り込まれた圧縮時系列変化を確認することにより、テストベクタの網羅度を従来より容易に評価することができる。さらに本実施形態においては、圧縮時系列変化を別のコンピュータ装置への入力とし、別のコンピュータ装置のCPUを用いて第4の工程S4を処理することにより、未検証のテストベクタを生成することも可能である。なお、第4の工程S4を処理するコンピュータ装置は第1ないし第3の工程S1〜S3を処理するコンピュータ装置1と同一であっても構わない。
以下に第1ないし第4の工程S1〜S4をさらに具体的に説明する。
第1の工程S1では、シミュレーションを実行し、対象となる半導体集積回路の一部もしくは全部の入力信号、出力信号および内部状態についてシミュレーションの全時刻あるいは一部の区間の時系列変化を時系列変化Aとして保存する。
第2の工程S2では、時系列変化Aに記録されている入力信号、出力信号、内部状態の中から選択された信号についての部分時系列を定義し、この定義された部分時系列と合致する部分時系列を時系列変化Aから抽出し、抽出時系列変化Bとする。抽出時系列変化Bは抽出するために選択された信号以外の信号も含んでいる。
第3の工程S3では、抽出時系列変化Bから各信号の有意性を判断することで複数の抽出時系列変化Bを併合し、圧縮時系列変化Cを生成する。
第4の工程S4では、第3の工程S3で得られた圧縮時系列変化Cを用いてテストされていないパタンを検出し、追加パタンの生成を行う。
以上のように構成された本実施形態の半導体集積回路のテストベクタ評価方法について、以下、半導体集積回路の回路記述3がタイマー回路で、テストベクタ2がタイマー回路のテストベクタである場合について説明する。
図2はタイマー回路の機能ブロック図であり、21はタイマー、22は信号“1”が書き込まれることによってカウント動作を許可する第1のモードレジスタ(exe)、23は信号“1”が書き込まれることによってカスケード動作を許可する第2のモードレジスタ(cas)、24はタイマー21全体を初期化するリセット信号(rst)、25はカスケード入力信号(cin)、26はタイマー全体の動作の基準となるクロック(clk)、27は4ビットのバイナリカウンタ、28は割り込み出力、29は第1のモードレジスタ(exe)22、第2のモードレジスタ(cas)23にアクセス可能なIOバスである。タイマー21は回路記述としてコンピュータ装置1の外部のハードディスクに格納されている。
タイマー21の機能について説明する。カウント動作は、第1のモードレジスタ(exe)22を“1”、第2のモードレジスタ(cas)23を“0”に設定すると、クロック26と同期してバイナリカウンタ27がアップカウントする。バイナリカウンタ27の値が“15”から“0”に値が変化した直後、割り込み出力28が1サイクル期間“1”を出力する。バイナリカウンタ27が動作中、つまり第1のモードレジスタ(exe)22が“1”のときしか割り込み出力28は出力されない。カスケード動作とは、第1のモードレジスタ(exe)22が“1”、第2のモードレジスタ(cas)23が“1”のときであり、カスケード入力信号25が“1”のときのみバイナリカウンタ27がアップカウント動作を行う。
図3はタイマー21の時系列変化Aの例である。図3において、Timeはシミュレーション時刻を表し、rstはリセット信号24を表し、cinはカスケード入力信号25を表し、casは第2のモードレジスタ(cas)23を表し、exeは第1のモードレジスタ(exe)22を表し、BCはバイナリカウンタ27を表し、irqは割り込み出力28を表す。クロック26の周期はTime10とする。図3において、クロック26の動作は省略している。入力信号であるテストベクタはrst、cin、cas、exeであり、シミュレーションで得られた内部状態の時系列変化はBC、出力信号の時系列変化はirqである。タイマー21の時系列変化Aは、テストベクタとタイマー21の回路記述をコンピュータ装置1に入力してシミュレーションを行い、タイマー21の入力信号と出力信号と内部状態の時系列変化を保存する第1の工程S1によって得られ、コンピュータ装置1の外部のハードディスクに格納される。
タイマー21の場合の時系列変化Aの詳細な説明を行う。Time0にてrstを“1”にしてタイマー21の初期化を行う。Time20にてexeを“1”に設定し、タイマー21のカウント動作を開始する。Time30からexeを“0”に設定するTime410まで、BCはTime10毎に1ずつアップカウント動作を行う。irqはBCが“15”になった次のサイクルで“1”となる。Time410にてcin、exeを“0”に設定し、Time420でcas、exeを“1”に設定している。そのため、cinが“1”となったTime450の次のサイクルであるTime460にてBCが1、アップカウントしている(“7”→“8”)。
図4は、第2の工程S2にてタイマー21に関する所望の波形が生じる抽出時系列変化B群を時系列変化Aから抽出した結果を示す。ここで所望の波形とは、irqが“1”となる1サイクル前からirqが“1”となるまで、と設定した。Time170、Time180と、Time330、Time340の2通りが抽出される。
図5は、第3の工程S3にて、抽出時系列変化Bを圧縮時系列変化Cにまとめた結果を示す。
ここでは、抽出時系列変化Bより少数の圧縮時系列変化Cにまとめる方法を具体的に説明する。それは、抽出時系列変化B1、抽出時系列変化B2から所望の波形が発生する場合の数学的命題である第1の数学的命題を生成する。さらに、第1の数学的命題から信号の条件を削除した第2の数学的命題を生成する。そして、第1の数学的命題と第2の数学的命題がタイマー21に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出する。その結果として、抽出時系列変化Bより少数の圧縮時系列変化Cにまとめる。
抽出時系列変化B1よりirqが“1”になる場合を数学的命題に変換する。具体的には、「rstが“0”かつcinが“0”かつcasが“0”かつexeが“1”かつBCが“15”かつirqが“0”であって、さらに、次のサイクルで、rstが“0”かつcinが“0”かつcasが“0”かつexeが“1”かつBCが“0”ならば、次のサイクルでirqは“1”である。」という第1の数学的命題を記述する。
次に、この第1の数学的命題の1つの信号条件を取り除いて形式的機能検証を実施する。例えば、第1の数学的命題から、1つ目の信号条件である「rstが“0”かつ」を取り除き、「cinが“0”かつcasが“0”かつexeが“1”かつBCが“15”かつirqが“0” であって、さらに、次のサイクルで、rstが“0”かつcinが“0”かつcasが“0”かつexeが“1”かつBCが“0”ならば、次のサイクルでirqは“1”である。」という第2の数学的命題を生成する。次いで、第2の数学的命題とタイマー21の形式的機能検証を実施する。等価と判定されれば、「rstが“0”かつ」はドントケアの条件であるので、第1の数学的命題から削除する。実際は不等価と判定され、「rstが“0”かつ」はドントケアの条件ではなく、第1の数学的命題から削除することはできない。
この作業を繰り返し、ドントケアの条件を削除していくと、図4に示す抽出時系列変化B1、抽出時系列変化B2から、「rstが“0”かつcasが“0”かつexeが“1”かつBCが“15”であって、さらに、次のサイクルでrstが“0”ならば、次のサイクルでirqは“1”である。」という第2の数学的命題が生成される。この1つにまとまった第2の数学的命題を波形表現することで図5に示す圧縮時系列変化C1が得られる。
次に、第4の工程S4にて、圧縮時系列変化Cが所望の波形を発生させる全通りか判断し、そうでない場合は所望の波形を生じさせる未検証のテストベクタを記述し、第1の工程S1に進む。具体的には、第3の工程S3により圧縮時系列変化Cにはドントケア(“x”)と判断されない信号値が論理値“0”もしくは“1”の値として残されており、例えば、論理値の一方しか現れない信号や、特定の信号組み合わせにおいて、すべての論理値の組み合わせのうち、論理的に発生し得ないものを除く組み合わせが出現していないものを検出する。
タイマー21の例で、第1のモードレジスタ(exe)22が“1”かつ、第2のモードレジスタ(cas)23が“1”かつ、リセット信号24が“0”かつ、カスケード入力信号25が“1”かつ、バイナリカウンタ27が“15”で、クロック26が入力されて、次のクロックサイクルで割り込み出力28が“1”となるテストベクタが時系列変化Aに追加されていたとする(図4のC2参照)。その場合、圧縮時系列変化Cには圧縮時系列変化C1と、圧縮時系列変化C2が得られる。圧縮時系列変化C1と、圧縮時系列変化C2を比較すると、両方とも、Timeがnのとき、exeが“1”かつBCが“15”である。これが、タイマー21の場合の論理値が一方しか現れていない信号であり、exeが“0”、又はBCが“15”でない場合が未検証であるかどうか判断する。
以上のように本実施形態によれば、所望の波形が発生する抽出時系列変化Bを、ドントケアの条件を抽出することで圧縮時系列変化Cにまとめることにより、判断を下すべき信号線の数を減らすことが可能となり、所望の波形を生じさせる場合が抽出時系列変化Bで十分かどうかの判断を従来に比べ、容易に行える。
また、所望の波形を発生させる内部状態を含む状態の組み合わせが圧縮時系列変化Cにて簡便に表現されることにより、仕様との差異を容易に発見することが可能である。
また、所望の波形を発生させる内部状態を含む状態の組み合わせが圧縮時系列変化Cにて簡便に表現されることにより、仕様との差異を容易に発見することが可能である。
また、本実施形態により生成される圧縮時系列変化Cに現れるドントケア条件は、目的となる波形を生成する上で論理的に不要な信号であることを意味し、抽出すべきすべての波形においてドントケアと判断された場合には、回路上不要な論理と判断される。このように本実施の形態によれは、半導体集積回路内の不要な論理を抽出することが可能となる。
なお、本実施形態においては第4の工程S4において形式的機能検証を用いてドントケアの条件を抽出したが、形式的機能検証を用いず、抽出時系列変化Bから対象とする信号以外が全く同じものを選び出し、対象信号の論理を調べ、すべての論理が起こっていることを確認することでドントケア条件を抽出することも可能である。また、本実施形態では、条件を1つずつ形式的機能検証により判定したが、複数の条件を一度に削除して判定することも可能であり、この判定結果によりドントケア条件を抽出することも可能である。
また、抽出時系列変化Bの抽出時に、抽出のために選択された信号に対し、明らかに関係がないと判断できる信号がある場合には、その信号を除外して抽出することで、第3の工程S3を簡便化することが可能である。
(実施の形態2)
図6は本発明の実施の形態2における半導体集積回路の検証方法の処理を示すフローチャートであり、S1,S2,S3は実施の形態1と同じであり、S5は第5の工程である。第5の工程S5では、圧縮時系列変化Cを用いて、第2の工程S2で選択された信号の変化に対し、選択されていない信号の論理が半導体集積回路の仕様と合致しているか判断し、合致していない場合は半導体集積回路の不具合箇所として検出し、必要な修正を施す。もしくは、圧縮時系列変化Cにてドントケアと判断された信号が、仕様でもドントケアかどうか判断し、ドントケアでない場合は半導体集積回路の不具合箇所として検出し、必要な修正を施す。不具合が半導体集積回路の回路記述に問題があった場合は、回路記述の修正を行う。その後、第1の工程S1に進む。
図6は本発明の実施の形態2における半導体集積回路の検証方法の処理を示すフローチャートであり、S1,S2,S3は実施の形態1と同じであり、S5は第5の工程である。第5の工程S5では、圧縮時系列変化Cを用いて、第2の工程S2で選択された信号の変化に対し、選択されていない信号の論理が半導体集積回路の仕様と合致しているか判断し、合致していない場合は半導体集積回路の不具合箇所として検出し、必要な修正を施す。もしくは、圧縮時系列変化Cにてドントケアと判断された信号が、仕様でもドントケアかどうか判断し、ドントケアでない場合は半導体集積回路の不具合箇所として検出し、必要な修正を施す。不具合が半導体集積回路の回路記述に問題があった場合は、回路記述の修正を行う。その後、第1の工程S1に進む。
タイマー21の回路記述に不具合があり、図5に示す圧縮時系列変化C3が得られたとする。exeがドントケア“x”でも割り込み出力28が“1”になっている。仕様より、タイマー21が動作中(exeが“1”)でないと割り込み出力28は“1”になりえないので、タイマー21の回路記述に不具合があることが分かる。
以上のように本実施形態によれば、所望の波形が発生する抽出時系列変化Bからドントケアの条件を抽出することで、半導体集積回路の内部状態を含む所望の波形が生じる必要最低限の状態を圧縮時系列変化Cとしてまとめる。よって、所望の波形が発生する複数の場合においてそれらが仕様と合致しているかの判断を、少ない状態数により行えるため、従来に比べ、容易に判断できる。さらに、内部信号に対しても、本検証方法は適用可能であるため、半導体集積回路の外部に伝播しない不具合をも簡単に発見できる。
(実施の形態3)
図7は本発明の実施の形態3における半導体集積回路の検証方法の処理を示すフローチャートであり、S1,S2,S3は実施の形態1と同じであり、S6は第6の工程、S7は第7の工程である。第6の工程S6では、第3の工程S3で得られた圧縮時系列変化Cと抽出時系列変化Bを抽出する波形を用いて、抽出時系列変化Bに含まれない抽出する波形を生成する検出時系列変化Dを検出する。第7の工程S7では、第6の工程S6で検出された検出時系列変化Dを発生させるテストベクタを生成する。以上のように構成された本実施形態の半導体集積回路の検証方法について、以下、タイマー回路とそのテストベクタを用いて説明する。
図7は本発明の実施の形態3における半導体集積回路の検証方法の処理を示すフローチャートであり、S1,S2,S3は実施の形態1と同じであり、S6は第6の工程、S7は第7の工程である。第6の工程S6では、第3の工程S3で得られた圧縮時系列変化Cと抽出時系列変化Bを抽出する波形を用いて、抽出時系列変化Bに含まれない抽出する波形を生成する検出時系列変化Dを検出する。第7の工程S7では、第6の工程S6で検出された検出時系列変化Dを発生させるテストベクタを生成する。以上のように構成された本実施形態の半導体集積回路の検証方法について、以下、タイマー回路とそのテストベクタを用いて説明する。
図8はタイマー21とその圧縮時系列変化Cを用いて、第6の工程S6にて検出した検出時系列変化Dである。
ここでは、第2の数学的命題の条件と結果を入れ替えた第3の数学的命題を生成して、第3の数学的命題が半導体集積回路の機能の一部分を正しく表現しているかを形式的機能検証を用いて判定することによって検出時系列変化Dを求める方法を具体的に説明する。第2の数学的命題の条件と結果を入れ替え、「次のサイクルでirqが“1”ならば、rstが“0”かつcasが“0”かつexeが“1”かつBCが“15”かつ、次のサイクルでrstが“0”である。」(図5のC1参照)という第3の数学的命題を生成する。この第3の数学的命題を用いて形式的機能検証を実施すると、irqが“1”となる他の場合があれば不一致となり、検出できる。タイマー21の例では、検出時系列変化Dが検出される。カスケードモード時に割り込み出力が正しく出力されるかの検証が抜けていることを示している。
次に第7の工程S7にて、検出時系列変化Dが検出されたならば、検出時系列変化Dを再現するテストベクタを記述し、第1の工程S1に進む。
以上のように本実施形態によれば、テストベクタにて検証されていない検出時系列変化Dを発見する数学的命題を自動的に生成できるため、所望の波形が発生する機能検証の漏れを防ぐことが可能となる。
本発明における半導体集積回路のテストベクタの評価方法は、半導体集積回路の検証に用いるテストベクタが必要十分がどうか判定する方法として有用である。
また、本テストベクタ評価方法を用いた本発明における半導体集積回路の検証方法は、半導体集積回路の検証を効率的に行う方法として有用である。
また、本テストベクタ評価方法は、テストベクタの削減を行う上で有効であり、検証時間の削減に有効である。また、同様にテスタを用いたLSI評価時のテストベクタの削減にも利用可能である。
また、本テストベクタ評価方法は、ドントケア条件を抽出することから、回路上、冗長回路である可能性がある部分を検出できることにもなり、不要回路の検出にも利用可能である。
1 コンピュータ装置
2 テストベクタ
3 半導体集積回路の回路記述
A 時系列変化
B1,B2 抽出時系列変化
C1,C2,C3 圧縮時系列変化
D 検出時系列変化
2 テストベクタ
3 半導体集積回路の回路記述
A 時系列変化
B1,B2 抽出時系列変化
C1,C2,C3 圧縮時系列変化
D 検出時系列変化
Claims (13)
- テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程とを含む半導体集積回路のテストベクタ評価方法。 - 前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項1に記載の半導体集積回路のテストベクタ評価方法。
- 前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第1の数学的命題を生成し、前記第1の数学的命題から信号の条件を削除した第2の数学的命題を生成して、前記第1の数学的命題と前記第2の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項1に記載の半導体集積回路のテストベクタ評価方法。
- テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程と、
前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加工程とを含む半導体集積回路の検証方法。 - テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程と、
前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、前記半導体集積回路の不具合として検出する検出工程とを含む半導体集積回路の検証方法。 - テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存工程と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出工程と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理工程と、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出工程と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加工程とを含む半導体集積回路の検証方法。 - 前記整理工程は、前記複数の抽出時系列変化から前記所望の波形が生じるために必ずしも必要でないドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項4から請求項6までのいずれかに記載の半導体集積回路の検証方法。
- 前記整理工程は、前記単数の抽出時系列変化から前記所望の波形が発生する場合の数学的命題である第1の数学的命題を生成し、前記第1の数学的命題から信号の条件を削除した第2の数学的命題を生成して、前記第1の数学的命題と前記第2の数学的命題が前記半導体集積回路に対して同じものであるか形式的機能検証を用いて判定することによってドントケアの状態を抽出して前記抽出時系列変化より少数の前記圧縮時系列変化にまとめる請求項4から請求項6までのいずれかに記載の半導体集積回路の検証方法。
- 前記検出工程は、前記第2の数学的命題の条件と結果を入れ替えた第3の数学的命題を生成して、前記第3の数学的命題が前記半導体集積回路の機能の一部分を正しく表現しているかを形式的機能検証を用いて判定することによって前記検出時系列変化を求める請求項6に記載の半導体集積回路の検証方法。
- テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段とを備える半導体集積回路のテストベクタ評価装置。 - テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段と、
前記圧縮時系列変化が所望の波形を発生させるべきすべての波形を表していないとき、漏れているテストベクタを生成するテストベクタ追加手段とを備える半導体集積回路の検証装置。 - テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段と、
前記圧縮時系列変化で表現される波形が前記半導体集積回路の仕様以外のものを含むとき、不具合パタンとして検出する検出手段とを備える半導体集積回路の検証装置。 - テストベクタを用いて半導体集積回路の論理的振舞をシミュレーションし、前記シミュレーション中の前記半導体集積回路の入力信号と出力信号と内部状態の時系列変化を保存する状態保存手段と、
前記時系列変化から、所望の波形が発生している単数もしくは複数の抽出時系列変化を抽出する抽出手段と、
前記抽出時系列変化が複数のとき、前記抽出時系列変化より少数の圧縮時系列変化にまとめる整理手段と、
前記抽出時系列変化に含まれない前記所望の波形が生じる検出時系列変化を前記圧縮時系列変化を用いて検出する検出手段と、
前記検出時系列変化が検出されたとき、前記検出時系列変化を再現するテストベクタを記述するテストベクタ追加手段とを備える半導体集積回路の検証装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004341457A JP2006153531A (ja) | 2004-11-26 | 2004-11-26 | 半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004341457A JP2006153531A (ja) | 2004-11-26 | 2004-11-26 | 半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006153531A true JP2006153531A (ja) | 2006-06-15 |
Family
ID=36632033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004341457A Pending JP2006153531A (ja) | 2004-11-26 | 2004-11-26 | 半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006153531A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009139293A (ja) * | 2007-12-10 | 2009-06-25 | Hitachi Ltd | 半導体集積回路の高速テスト |
-
2004
- 2004-11-26 JP JP2004341457A patent/JP2006153531A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009139293A (ja) * | 2007-12-10 | 2009-06-25 | Hitachi Ltd | 半導体集積回路の高速テスト |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7437692B2 (en) | Memory debugger for system-on-a-chip designs | |
US7856582B2 (en) | Techniques for logic built-in self-test diagnostics of integrated circuit devices | |
JP5270458B2 (ja) | 故障箇所推定装置 | |
US10795751B2 (en) | Cell-aware diagnostic pattern generation for logic diagnosis | |
US7228262B2 (en) | Semiconductor integrated circuit verification system | |
Prabhu et al. | A SMT-based diagnostic test generation method for combinational circuits | |
Pevtsov et al. | Design for testability of integrated circuits and project protection difficulties | |
US9404972B2 (en) | Diagnosis and debug with truncated simulation | |
JP2006309576A (ja) | 論理システムの検証装置及び検証方法、記憶媒体及びコンピュータプログラム | |
US11681843B2 (en) | Input data compression for machine learning-based chain diagnosis | |
JP2006153531A (ja) | 半導体集積回路のテストベクタ評価方法、検証方法、並びに半導体集積回路のテストベクタ評価装置及び検証装置 | |
TWI782408B (zh) | 邏輯模擬驗證系統、邏輯模擬驗證方法、及程式產品 | |
JP4652317B2 (ja) | 論理回路の機能検証装置、機能カバレッジアイテムの検証方法及びプログラム | |
US10234502B1 (en) | Circuit defect diagnosis based on sink cell fault models | |
US7231619B1 (en) | Extended model checking hardware verification | |
US11023357B1 (en) | Method and system for sequential equivalence checking | |
KR20180089121A (ko) | 온 칩 dram을 사용한 멀티코어 환경에서의 포스트 실리콘 디버그 장치 및 방법 | |
Safarpour et al. | Failure triage: The neglected debugging problem | |
US10060976B1 (en) | Method and apparatus for automatic diagnosis of mis-compares | |
JP2011048785A (ja) | 多重イベント定義装置、多重イベント検証装置、多重イベント定義方法および多重イベント定義プログラム | |
US12001547B2 (en) | Method, system and apparatus for detecting malicious modifications to semiconductor devices | |
JPH10104319A (ja) | 大規模集積回路装置の故障シミュレーション方法及び故障解析方法 | |
US11442106B2 (en) | Method and apparatus for debugging integrated circuit systems using scan chain | |
US8392860B1 (en) | Identifying speed binning test vectors during simulation of an integrated circuit design | |
Chun et al. | DiSC: A new diagnosis method for multiple scan chain failures |