(57)【要約】  フォールトの位置及び性質に関する情報を活用することにより、最小限の回路論理の複製でフォールト（非）伝搬の順次等価性問題を公式化するためのシステム及び方法。このシステム及び方法は、さらに、フォーマルチェックを安全診断に適用し、且つ単純なトランジェントフォールト及び複雑なトランジェントフォールトを効率的にモデル化する。
2020524351.tif 000002
【特許請求の範囲】
【請求項１】
フォールト伝搬の分析のために順次等価性チェックを行うためのコンピュータ実装方法であって、
フォールトを注入することと、
複数のレジスタの中で、前記注入されたフォールトが伝搬できない第１のレジスタのセット及び前記注入されたフォールトが伝搬できる第２のレジスタのセットを識別することであって、
前記複数のレジスタの各レジスタについて、更新関数を実行することと、前記レジスタが前記更新関数の結果として変化する場合に前記レジスタを前記第２のレジスタのセットに割り当てること及び前記レジスタが前記更新関数の結果として変化しない場合に前記レジスタを前記第１のセットに割り当てることとを含む、識別することと、
等価性チェックを行うための減少した言明複製を得るために前記第２のレジスタのセットを複製することと
を含むコンピュータ実装方法。
【請求項２】
前記第１のセット及び前記第２のステップを識別する前記ステップは、各レジスタについて前記更新関数をチェックする組み合わせチェックを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記識別するステップは、１つのクロックサイクルにおいて順次チェックを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記ステップは、反復的であり且つ繰り返される、請求項１〜３の何れか一項に記載のコンピュータ実装方法。
【請求項５】
トランジェントフォールトモデル化を用いてフォールトを注入することを含む、請求項１〜４の何れか一項に記載のコンピュータ実装方法。
【請求項６】
レジスタの前記第１のレジスタのセット又は前記第２のレジスタのセットへの前記割り当ては、前記更新関数を実行した後の一定のクロックサイクル数で行われ、前記一定のクロックサイクル数は、１よりも大きい、請求項１〜５の何れか一項に記載のコンピュータ実装方法。
【請求項７】
さらなるチェックを必要としないフォールトの検出に使用され、エラーが検出／診断された後に生じるフォールト伝搬は、安全であるか又はさらなるチェックを必要としないフォールトと見なされる、請求項１〜６の何れか一項に記載のコンピュータ実装方法。
【請求項８】
フォールト伝搬経路の計算及び表示のためのコンピュータ実装方法であって、
コンピューティングデバイスを用いて、電気回路におけるフォールト位置を識別することと、
前記コンピューティングデバイスを用いて、前記電気回路における観測点を識別することと、
前記コンピューティングデバイスを用いて、前記フォールト位置から前記観測点までのフォールト経路を算出することと、
波形ビューアにおいて、前記フォールト位置から前記観測点までの前記フォールト経路における全ての信号をその作成順に表示することと
を含むコンピュータ実装方法。
【請求項９】
フォールト経路を算出する前記ステップは、
前記フォールト位置から前記観測点までの影響を受けた信号の最短経路を算出すること
を含む、請求項８に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１０】
前記最短フォールト経路を算出する前記ステップは、
信号の数の観点から前記最短経路を算出すること
を含む、請求項９に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１１】
前記最短フォールト経路を算出する前記ステップは、
インスタンスの数の観点から前記最短経路を算出すること
を含む、請求項９又は１０に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１２】
前記最短フォールト経路を算出する前記ステップは、
レジスタの数の観点から前記最短経路を算出すること
を含む、請求項９〜１１の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１３】
前記最短フォールト経路を算出する前記ステップは、
逸脱又は変更を前記最短経路に加えること
を含む、請求項９〜１２の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１４】
波形ビューアにおいて、前記フォールト位置から前記観測点までの前記フォールト経路における全ての信号をその作成順に表示する前記ステップは、
どのように前記フォールトが１つの信号から次の信号に前進するかを示すために、前記信号を前記表示において異なる色の「脚立」でタイミングドメインに表示すること
を含む、請求項８〜１３の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１５】
波形ビューアにおいて、前記フォールト位置から前記観測点までの前記フォールト経路における全ての信号をその作成順に表示する前記ステップは、異なる色、異なる線の太さ若しくは異なる種類の線の少なくとも１つを含む視覚的指標又は任意の他の視覚的指標を用いる、請求項８〜１４の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１６】
前記コンピューティングデバイスを用いて、前記電気回路における複数の観測点を識別することと、
前記コンピューティングデバイスを用いて、前記フォールト位置から前記複数の観測点までの複数のフォールト経路を算出することと、
波形ビューアにおいて、前記複数のフォールト経路の各フォールト経路について、前記フォールト位置から前記観測点までの前記フォールト経路における全ての信号をその作成順に表示することであって、前記複数の観測点のデータ及びグラフは、表示される、表示することと
を含む、請求項７〜１５の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１７】
請求項１〜７の何れか一項に記載のフォールト伝搬の分析のために順次等価性チェックを行うためのコンピュータ実装方法を含む、請求項８〜１６の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法。
【請求項１８】
請求項８〜１６の何れか一項に記載のフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法を含む、請求項１〜７の何れか一項に記載のフォールト伝搬の分析のために順次等価性チェックを行うためのコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１７年６月１９日に出願された「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｆｏｒｍａｌ  Ｃｉｒｃｕｉｔ  Ｖｅｒｉｆｉｃａｔｉｏｎ」という名称の米国非仮特許出願米国特許出願公開第１５／６２６，６７４号明細書に対する優先権を主張するものである。本出願は、２０１７年６月１９日にルクセンブルグで出願された「Ｍｅｔｈｏｄ  ｆｏｒ  Ｆｏｒｍａｌ  Ｃｉｒｃｕｉｔ  Ｖｅｒｉｆｉｃａｔｉｏｎ」という名称の特許出願ルクセンブルグ特許第１００３２１号明細書に対する優先権をさらに主張するものである。
【０００２】
上記の特許出願は、参照によりその全体が本明細書に援用される。
【０００３】
連邦政府による資金提供を受けた研究又は開発の記載
なし。
【０００４】
本発明は、順序回路におけるフォールト伝搬又は非伝搬を検証するためのツールとしての等価性チェックに関する。
【背景技術】
【０００５】
自動車産業などの多くの産業は、それらの製品及びサービスに高度な電子機器を組み込んでいる。これらの進歩は、歓迎されるものであるが、これらの特徴を可能にする電子システムは、適切に検証されなければ状況が悪化する無数の新しい機会も提示することを理解することが非常に重要である。欠陥のあるヘッドレストビデオスクリーンは、後部座席の若い乗客にとって苛立ちの原因となり得るが、機能不良の補正ステアリングシステムは、車両の乗員の生命を犠牲にする可能性がある。これらのリスクは、産業界に電気又は電子システムの厳しい安全関連規格を採用させた。
【０００６】
例えば、ＩＳＯ２６２６２規格は、道路車両内の安全関連の電気及び／又は電子（Ｅ／Ｅ）システムの開発を規定する。ＩＳＯ２６２６２は、構想段階から開発、製造及び廃棄まで、システムのライフサイクル全体を網羅する厳しい要件を課す。これは、安全管理プロセス全体を扱うとともに、サプライヤー及び分散開発のインタフェースとの関係に及ぶ。法的責任のリスクは、ＩＳＯ２６２６２規格の採用の明白な推進力であるが、数百万の車両リコール及び死亡交通事故につながる機能不良は、経済的損害を引き起こすだけでなく、関与した会社のブランドイメージも損なうというさらなる問題がある。この規格は、完全に検証されなければならないシステマティックフォールト及びランダムフォールトの２種類のコンポーネントフォールトを明記する。
【０００７】
システマティックフォールトは、コンポーネント開発中、人的エラー又はツール／方法論の機能不良により導入される。システマティックフォールトは、一般的に、厳密な検証及び特定のデバイス要件の入念な追跡により対処される。ランダムフォールトは、外的影響により、デバイスの実際の動作中に生じる。これらのフォールトは、デバイス内の回路網によって安全に対処されなければならない。これは、システムに組み込まれるフォールト対処能力の使用を必要とし、これらのシステムは、あり得るランダムフォールトの大部分をキャッチすることを確実にするために検証されなければならない。
【０００８】
過去数年にわたり、自動車サプライヤーは、ＩＳＯ２６２６２要件を満たすためにかなりの投資を行っており、これは、多くの場合、開発費の多大な増加につながった。規格の適用を成熟させること並びにシステマティック及び自動開発方法に移行することは、成功を収め、それを維持するために非常に重要である。
【０００９】
使い易さ及び能力の進歩により、フォーマルベース検証方法論は、業界において近年広く採用されている。フォーマル検証は、それ以外の場合にはシミュレーションベース検証を免れ、システマティック故障に至る可能性があるハードウェア設計バグを明らかにするための強力な技術として広く認識されている。フォーマルツールの主要な特性は、入力刺激の必要性なしに、設計挙動を徹底的に調べ、且つ設計がプロパティ又はアサーションによって指定されるような意図された機能から決して逸脱しないことを証明する能力である。単純な設計の場合でも、シミュレーションツールは、この精度レベルを達成することができない。フォーマルツールは、システマティックフォールト検証及びランダムフォールト検証の両方に関して複数のアプリケーションを有する。
【００１０】
故障は、システムの要素が、必要とされる機能をもはや行わなくなったときに生じる。故障は、ハードウェアコンポーネントが期待通りに挙動しないなどのエラーによって引き起こされる。エラーは、デバイスの設計におけるフォールト又はその動作中に生じるフォールトによって引き起こされる。自動車環境におけるこのようなエラー及びあり得る原因の例を図１に示す。
【００１１】
フォールトは、瞬間的に（例えば、高エネルギー粒子による衝突によって）又は永久的に（例えば、物質的老朽化又は回路網に対する永久的損傷によって）電子設計（「被試験設計」又は「ＤＵＴ」）のある論理要素上に現れる間違った論理値である。このようなフォールトは、潜在的に電子システムの挙動を変え得る。このようなフォールトは、セーフティクリティカルシステムにおいて、死亡、負傷又は高い経済的損失に至る可能性がある。
【００１２】
このため、セーフティクリティカルシステムの設計者は、冗長論理回路、エラー訂正コードなどの技術を使用して、ランダムフォールトによって導入された間違った挙動の検出及び／又は修正を行う措置を実施する必要がある。
【００１３】
ＩＳＯ２６２６２は、２つの故障カテゴリであるシステマティック及びランダムを定義する。システマティック故障は、ハードウェア及びソフトウェアの両方に由来し得るとともに、例えばソフトウェア又はハードウェアコードの仕様書又はコーディングの誤りといった特定の原因又はフォールトと決定論的関係を有し得る。これらのフォールトは、全ての製造コンポーネントに影響を与え、回避されなければならない。ランダム故障は、ハードウェアのみに由来し、通常確率分布に従う予測不可能な形態で生じる。これらは、特定の問題に遡ってトレーシングすることができず、システム動作中に生じると予想される。良い例は、デバイス動作中のＤＲＡＭメモリを破損する放射線である。なお、ランダムコンポーネント故障は、車両レベルではシステマティックフォールトと見なされる可能性がある。
【００１４】
ＩＳＯ２６２６２は、システマティックフォールトを回避するための安全対策及びランダムハードウェアフォールトに対するセーフガードの使用を規定する。フォーマルツールは、安全対策の効率的な実施において大きい役割を果たすことができ、実際に多くのセーフティクリティカル開発フローの中心となる。
【００１５】
安全機構は、図２Ａに示すようにフォールト又は制御故障を検出することが意図された、デバイスに組み込まれる安全対策の一種である。ＩＳＯ２６２６２は、幾つかのランダムハードウェアフォールトの影響の検出及び場合により訂正を行う安全機構の使用を必要とし得る。安全機構は、ソフトウェア及びハードウェアの両方で実施され、それらの最終目標は、安全目標の違反に至る可能性があるランダム故障の発生を減少させることである。
【００１６】
ソフトウェアベース機構は、主に永久フォールト又はレイテントトランジェントフォールトによって引き起こされるハードウェアエラーを検出するために定期的に実行するルーチンを含む。別の例は、同じ動作を複数回行い、且つ結果を比較する冗長ソフトウェアである。課題の１つは、コードのサイズ及びランタイムを制限しながら、可能な限り多くのフォールトを検出することである。
【００１７】
冗長性は、多くのハードウェアベース安全機構の基礎である。一般的技術には、重複コアとともにロックステップでプロセッサコアを動作させ、且つ結果を比較することと、多数決論理を追加したクリティカルモジュール若しくは構成レジスタの重複又は三重化（三重モジュール式冗長）と、メモリ又はバストランザクションを保護するためのフェイルセーフエンコーダ及びデコーダ（ＥＤＣ／ＥＣＣ）と、シングルビットエラーの検出及び訂正と、ダブルビットエラーの検出とが含まれる。
【００１８】
ハードウェアベース安全機構は、物理的実装を含め、開発の全ての段階を大幅に複雑にする（それらは、回路面積を増大させ、ターゲットクロック周波数を達成することをより難しくするため）。
【００１９】
ハードウェア安全機構の開発は、システマティックフォールトを回避するために厳密なプロセスに従わなければならない。安全機構を実装するＲＴＬモデルの機能検証は、誤りが、危険な状況を防止するのではなく、危険な状況を引き起こすハードウェアの原因となる可能性があるため、非常に重要な活動である。
【００２０】
厳密な開発プロセスは、人的エラーにより導入される、システムにおけるシステマティックフォールトのリスクを低下させるための鍵である。高度なハードウェア開発フローは、問題点をできるだけ早く検出し、検証活動を計画し、且つ進捗状況を追跡するための多くのツール及び方法を用いる。しかし、ＩＳＯ２６２６２−８の第６項は、関連の開発ステップ全体を通した要件の正確なトレーシングを要求する。最終目標は、製品がその安全要件を満たすことを確実にすることである。これは、多数の双方向多対多関係を追跡すること、設計特徴により要件を検証計画要素にマッピングすること、及び最終的にテストカバレッジデータをこれら全ての文書にフィードバックすることを伴う。
【００２１】
レジスタ転送言語（ＲＴＬ）モデルの機能検証のために、エンジニアは、指令及びランダムカバレッジドリブンシミュレーションテストを含む様々な技術を適用する。進捗状況を追跡し、且つ検証計画又は仕様書文書におけるギャップを強調するために、構造的及び機能的カバレッジメトリクスが使用される。
【００２２】
シミュレーションベース検証環境は、多くの場合、中央集中チェックに依存し、その結果、低い設計可観測性に直面する。テストが正しく実装されていない設計特徴を起動させたときでさえ、誤った挙動は、それが観測点（又はチェッカー）に伝搬しない限り検出されない可能性がある。ＩＳＯ２６２６２は、要件が個々にテストされなければならず、このテストプロセスが図４に示すように入念に追跡されなければならないことを明記している。シミュレーションのため、一般的に、これは、面倒であり、且つ間違いを起こしやすい可能性がある個々の指令テストを生成することを伴う。
【００２３】
アサーションベース検証（ＡＢＶ）は、この問題点を扱う十分に確立した技術である。アサーションは、柔軟性があり、且つ低レベル及び抽象レベルの両方で期待される設計挙動を簡潔に表現することができる。これらは、分散され、且つ要件により直接的にマッピングされ得る（これに関連して非常に重要に）常時接続のチェッカーである。ＡＢＶの別の主な利点は、フォーマルツールがアサーションを活用し、且つ全ての関連刺激シナリオ下でそれらを調べ得ることである。また、適切なツール及び方法論を用いて、全設計要件を捉えた非重複アサーションのセットを構築することも可能である。アサーション、具体的にはエンドツーエンドプロパティは、実装及び検証計画により、要件にマッピングし易くなり得る。ＡＢＶを活用することにより、検証追跡機構全体が要件とテストとの間の直接的相関により単純化される。
【００２４】
ＩＳＯ２６２６２−５は、全てのハードウェア特定開発活動を扱い、それらの要件は、安全機構の有効性の定量分析を含む。フォールトは、安全、シングルポイント、残存及びマルチポイントのカテゴリに従って分類される。安全フォールトは、論理の安全関連部分にないか、又は安全関連論理にあるが、設計機能に影響を与えることができないフォールトであり、すなわち、それらは、安全目標に違反することができない。シングルポイントフォールトは、それらが安全目標に違反する可能性があり、且つそれらを防ぐ安全機構が存在しないために危険である。残存フォールトも、それらが安全目標に違反し、且つ安全機構を免れる可能性があるために危険である。マルチポイントフォールトは、安全目標に違反する可能性があるが、安全機構によって観測されている。マルチポイントフォールトは、「検出される」、「認識される」及び「レイテント」として下位分類され得る。
【００２５】
これに関連して、マルチポイントフォールト及び安全フォールトは、危険ではない。しかし、それらを識別することは、難易度が高い。セーフティクリティカルハードウェアは、様々な安全機構を含むことができ、エンジニアは、複雑な論理によって相互接続された数百万もの潜在的フォールト位置に対する幾つかのフォールトタイプの影響を分析しなければならない。
【００２６】
確信をもってフォールトを安全とマーキングすることは、簡単ではない。適切なツールがなければ、ハードウェアの詳しい知識を有する専門家のみがこの結論に達することができる。同様に、フォールトを観測する安全機構の能力を実証することができるシミュレーションワークロードを開発するための専門家の技術的努力が必要とされる場合がある。ＡＳＩＬのＣ又はＡＳＩＬのＤアプリケーションのハードウェアチームは、危険フォールトの非常に低い割合のみがそれらの設計に動作上の影響を与え得ることを実証しなければならない。その結果、安全フォールト及びマルチポイントフォールトを自動的に識別する能力は、この目標を効率的に達成するために非常に重要である。
【００２７】
フォールト注入は、フォールトトレラントシステムに対するフォールトの影響を理解するために使用される確立された技術である。ＩＳＯ２６２６２は、セーフティクリティカルハードウェアの開発中のフォールト注入の使用を強く推奨している。動作条件及び全システムインタラクションを考慮するために、フォールト注入は、システムプロトタイプに対して行われるべきである。例えば、重イオン放射、電磁障害、電源外乱又はメモリ若しくは構造上目に見えるレジスタの内容を破損するソフトウェア問題を生じさせるための機器が使用され得る。Ｈａｉｓｓａｍ  Ｚｉａｄｅ，Ｒａｆｉｃ  Ａｙｏｕｂｉ，ａｎｄ  Ｒａｏｕｌ  Ｖｅｌａｚｃｏ，“Ａ  Ｓｕｒｖｅｙ  ｏｎ  Ｆａｕｌｔ  Ｉｎｊｅｃｔｉｏｎ  Ｔｅｃｈｎｉｑｕｅｓ．Ｔｈｅ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｒａｂ  Ｊｏｕｒｎａｌ  ｏｆ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ，”Ｖｏｌ．１，Ｎｏ．２，Ｊｕｌｙ  ２００４。しかし、この方法は、システムのコスト、可制御性及び可観測性並びに開発スケジュールの観点から難易度が高い。モデルベースフォールト注入は、開発フローの初期に行うことができ、且つ侵襲的になることなく（すなわち、フォールト注入機構は、それが注入するフォールト以外にシステムに影響を与えない）システムに対するより細かい制御を提供する。Ａｓｈｉｓｈ  Ｄａｒｂａｒｉ，Ｂａｓｈｉｒ  Ａｌ  Ｈａｓｈｉｍｉ，Ｐｅｔｅｒ  Ｈａｒｒｏｄ  ａｎｄ  Ｄａｒｙｌ  Ｂｒａｄｌｅｙ，“Ａ  Ｎｅｗ  Ａｐｐｒｏａｃｈ  ｆｏｒ  Ｔｒａｎｓｉｅｎｔ  Ｆａｕｌｔ  Ｉｎｊｅｃｔｉｏｎ  ｕｓｉｎｇ  Ｓｙｍｂｏｌｉｃ  Ｓｉｍｕｌａｔｉｏｎ，”１４ｔｈ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｎ−Ｌｉｎｅ  Ｔｅｓｔｉｎｇ  Ｓｙｍｐｏｓｉｕｍ  ２００８。
【００２８】
様々な安全機構を含む複雑な自動車ＳｏＣｓの安全分析は、多くの課題をもたらす。セーフティクリティカル実装論理を正確に識別することは、小さいことではない。考慮すべきフォールト位置の数は、およそ数百万になり得る。永久フォールト及びトランジェントフォールトの幾つかのタイプを１つのフォールト位置に注入することができ、幾つかの同時フォールトの影響は、異なるワークロード下で分析されなければならない場合がある。関連フォールトシナリオの数は、膨大である。
【００２９】
近年、ハードウェアモデルに対してフォールト注入を行うツールの可用性の進展があった。既存のシミュレータは、汎用インタフェースコマンドを使用することにより、使いにくいフォールト注入を行うことができるが、製造試験の認定のために以前に設計されたフォールトシミュレータの再浮上は、正確なメトリクス及びデバッグを可能にする観点からエンジニアに多大な恩恵をもたらした。
【００３０】
フォールト伝搬分析は、フォールトを分類し、且つ診断又は検出カバレッジメトリクスを導出するために使用される。このタスクは、ＲＴＬモデルに対して行うことができるが、ＩＳＯ２６２６２の条項によれば、実際のハードウェアにできるだけ近く、且つ論理レベルだけでなく、回路面積などの物理的パラメータに対しても良好な相関を提供することができるモデルに対して最終的に行われる必要があるであろう。これは、ゲートレベルネットリストに関する分析を実行することを必要とする。
【００３１】
フォールトシミュレーションは、フォールトメトリクスを決定するための標準的手法である。フォールトシミュレータは、フォールトを注入し、且つユーザ定義入力刺激下でそれらの伝搬を分析する。安全機構によって検出されるエラーを生じさせるフォールトは、所望の検出率の達成に寄与する。入力刺激によって起動又は伝搬されないフォールトは、「潜在的に伝搬可能な」グループにとどまりながら、シミュレーションサイクルの大部分を消費する。これらのフォールトは、刺激の向上を考慮すると、デバッグが難しい。実際、それらのかなりの部分は、安全又は「非伝搬可能」となり得る。安全フォールトは、その状態にかかわらず、システムの機能不良に至ることが決してない。エンジニアは、幾つかのフォールトを安全とマーキングし、従って診断又は検出カバレッジを向上させるために「専門家の判断」論拠を用い得る。
【００３２】
しかし、近年のフォールトシミュレータでさえ、固有の欠点を有する。フォールトの分析は、フォールトシナリオ（シミュレータによっては、シナリオ毎に１ランを必要とする）と、モデルに適用される特定のワークロード又は入力ベクトル（シミュレータは、一度に１つのワークロードのみを実行する）とに対して非効率的である。また、ターゲットＡＳＩＬ診断又は検出カバレッジ（安全フォールトの数を指定するメトリクス）を達成するために、エンジニアは、安全フォールトを手作業で識別し、トリッキーなフォールトを起動し、安全論理に伝搬することができる複雑なテストを作成し、セーフティクリティカル論理の境界を定義しなければならない場合がある。これらのタスクは、多大な労力を必要とし、間違いを起こしやすく、且つ本質的に不完全である。
【００３３】
フォーマル検証は、それ以外の場合にはシミュレーションベース検証を免れ、システマティック故障に至る可能性があるハードウェア設計バグを明らかにするための強力な技術として広く認識されている。フォーマルツールの主要な特性は、入力刺激の必要性なしに、設計挙動を徹底的に調べ、且つ設計がプロパティ又はアサーションによって指定されるような意図された機能から決して逸脱しないことを証明する能力である。単純な設計の場合でも、シミュレーションツールは、この精度レベルを達成することができない。フォーマルツールは、システマティックフォールト検証及びランダムフォールト検証の両方に関して複数のアプリケーションを有する。
【００３４】
「フォーマル方法」は、ソフトウェア及びハードウェアシステムの仕様書、設計及び検証のための数学的に厳密な技術及びツールを指す。フォーマルプロパティチェックツールは、数十年にわたり利用可能であったが、ここ１０年の間に、使い易さ及び能力の進歩により、フォーマルベース方法論は、半導体業界において広く採用された。フォーマル検証は、それ以外の場合にはシミュレーションベース検証を免れ、システマティック故障に至る可能性があるハードウェア設計バグを明らかにするための強力な技術として広く認識されている。
【００３５】
フォーマルツールの主要な特性は、入力刺激の必要性なしに、設計挙動を徹底的に調べ、且つ設計がプロパティ又はアサーションによって指定されるような意図された機能から決して逸脱しないことを証明する能力である。単純な設計の場合でも、シミュレーションツールは、この精度レベルを達成することができない。ハードウェア開発タスクの範囲は、適切なフォーマルベースソリューション（又はアプリ）の使用により向上した。これらは、ＲＴＬ設計調査及びフォーマルリンティングからクリティカルモジュールのエンドツーエンド検証に及ぶ。
【００３６】
特にセーフティクリティカルアプリケーションに関連するフォーマルツールの別の主要な特徴は、ハードウェアモデルに対するフォールト注入を細かく制御し、且つそれらの一連の影響を分析する能力である。極めて重要なことに、フォーマルツールは、ユーザの労力及び算出要求の両方の観点から非常に効率的且つ非侵襲的に（コード計装ステップの必要性なしに）このタスクを行う可能性を有する。
【００３７】
安全検証プロセスの一部として、どのようにフォールトが集積回路を伝搬するかを理解することが必要であることが多い。波形又は伝搬分析の先行技術のシステム及び方法の例は、米国特許第８，６３０，８２４号明細書及び米国特許出願公開第２０１６／０２８３６２８号明細書に開示されている。
【００３８】
従来のフォールト伝搬システム及び方法は、黄金設計と欠陥設計とを並べて表示し、黄金設計対フォールトが注入された設計における信号の値を示すことが多い。このような従来の環境は、黄金設計と欠陥設計との間で値が異なる全ての内部信号をリストでき得るが、それらは、一般的に、フォールトデバッグに無関係な信号を含む異なる信号を表示する。
【００３９】
全ての合理的に予期可能なランダムフォールト及びそれらの組み合わせがシステムによって対処されること及びそのようなフォールトがシステムの誤った挙動を誘発できないことを確実にするために、検証エンジニアは、一般的に、幾つかのクリティカル観測点（例えば、一次出力）においてＤＵＴの挙動を変えることができるか否か、及び／又はこのような変更を検出することができるか否かを決定することを目的として、ＤＵＴの異なる位置でフォールトが注入される様々なシナリオの広範囲に及ぶテストを行う。潜在的フォールトの何れの部分を検出又は自動的に訂正することができるかに関する情報は、特定のフィールドにおける規制機関（例えば、自動車分野におけるＩＳＯ２６２６２）によって必要とされる安全認証にとって必要である。
【００４０】
従来、フォールト伝搬及び可観測性の分析は、様々な入力パターンの下での多数の潜在的フォールトにシミュレーションによって行われる。しかし、全てのあり得る状況のシミュレーションは、通常、実際には不可能である。従って、フォールトが伝搬しないか又は観測される数学的に反論できない証拠を与えるフォーマル検証技術を使用することが有益である。多くの場合、フォーマルチェックは、シミュレーションに基づいた従来技術よりもさらに速くなり得る。
【００４１】
フォーマルフォールト伝搬分析は、通常、２つの回路間の挙動等価性を評価するためのフォーマル方法である等価性チェックを使用することによって行われる。この場合、一方の回路（黄金）は、オリジナルのＤＵＴとなり、他方の回路（修正された）は、特定の位置で注入された、縮退及びシングルイベントフォールトのようなランダムフォールトをモデル化するフォールトシナリオを有するＤＵＴである。これは、等価性チェッカーに提供された回路のサイズがオリジナルの回路の（又は考慮される必要がある部分の）２倍であることを意味する。
【００４２】
順序回路におけるフォールト（非）伝搬を検証するためのツールとしてのフォーマル等価性チェックの使用は、Ｄ．Ｓｍｉｔｈの「Ｈｏｗ  Ｆｏｒｍａｌ  Ｒｅｄｕｃｅｓ  Ｆａｕｌｔ  Ａｎａｌｙｓｉｓ  ｆｏｒ  ＩＳＯ  ２６２６２」に開示されている。
【００４３】
ＤＵＴの可観測挙動は、観測点のセットによって定義される。フォールトが生じる予定の正確な場所が分かっていると仮定すると、その目的は、
１．フォールトが観測点でＤＵＴ値に影響を与えないこと（この場合、フォールトが伝搬されない（ＮＰＡ）と言う）、又は
２．ある観測点、特に少なくとも１つの観測点において、フォールトにより異なる挙動に至るトレースを見つけること（この例では、フォールトが伝搬される（ＰＡ）と言う）、
の一方を証明することである。
【００４４】
さらに、設計は、エラーが内部で生じたことを検出し且つ知らせる能力を有することができ、回復動作は、システムの残りの部分又はユーザに委ねる。これは、事実上、伝搬可能フォールト（ＰＡ）の追加の分類を導入する。検出されたＰＡは、安全フォールトと見なされるが、検出されない伝搬可能フォールトは、危険フォールトと見なされる。
【００４５】
【表１】
2020524351.tif 000003
【００４６】
フォールトがＰＡ／ＮＰＡであるか否かの決定問題は、本明細書では、フォールト伝搬と呼ばれ、フォールトが設計によって検出されるか否かの問題は、フォールト検出と呼ばれ、及び安全であるか否かの問題は、フォールト診断と呼ばれる。
【００４７】
観測点及び出力
通常、デジタル設計の可観測挙動は、設計の入力が入力制約に則した値トレースによって刺激されることを条件として、その出力に関して生成され得る値トレースによって定義される。しかし、ときに設計の内部の信号の値に興味がある場合がある。また、幾つかの重要でない信号への潜在的伝搬を無視することを選択する場合がある。従って、出力の代わりに、任意定義信号（観測点）のセットへの潜在的フォールト伝搬に興味を持つであろう。内部観測点は、単に出力としてラベル付けすることができ、観測されない出力信号は、出力セットから除外することができるため、数学的観点から出力と観測点との間に真の違いはない。このため、出力という用語及び観測点という用語を同義に使用する。
【００４８】
一般的実装
フォーマルフォールト伝搬／検出の古典的実装は、順次等価性チェックにより行われる。本発明は、フォーマルツールにとって問題をより簡単にすることにより、大幅により効率的な手順をもたらす改良を提供する。
【００４９】
通常の手法は、オリジナルの設計にフォールトを注入し、次いでこの新しく作成された設計をオリジナルと比較することにより、両方の設計に適用されると出力に関して異なる挙動に至る入力パターンのセットを見つけ出すことを試みることである。これは、順次チェックとして知られる、図２Ｂに示すような複合回路１００を形成することによって行われる。この新しい回路１００では、同じ入力セット１１０は、オリジナル設計１２０及び欠陥設計１３０の両方にルーティングされる。次いで、両方の設計１２０、１３０の出力は、コンパレータ１４２、１４４、．．．１４６を有するコンパレータ回路１４０と１つずつ比較され、ペアの何れかが異なる場合、コンパレータ回路１４００の出力が１に設定される（図２Ｃ）。ここで、両方の回路が同一に挙動する場合、出力は、常に０になる。順次等価性チェッカーは、出力が常に０であり、従って欠陥回路１３０の出力挙動が全てのあり得る入力（ＮＰＡ）の下でオリジナル回路１２０のものと同じであることを疑いなく証明するために、フォーマル方法を使用する。一方、欠陥回路１３０の異なる挙動に至るような入力パターンが存在する場合、コンパレータ回路１４００の出力は、最終的に１になり、フォーマルツールは、これが生じる正確な入力パターンを表示し、あらゆるシミュレーションの必要性を省く。
【発明の概要】
【課題を解決するための手段】
【００５０】
好ましい実施形態では、本発明は、等価性問題のよりコンパクトな符号化を適用することによる先行技術の手法に対する改良である。また、本発明は、より複雑なフォールトを記述可能であるより高品質のフォールトモデル化を提供する。また、本発明は、単純なフォールト伝搬からフォールト検出（診断）にフォーマル方法の適用を拡大する。
【００５１】
別の好ましい実施形態では、本発明は、フォールトの位置及び性質に関して有する情報を活用することにより、フォールト（非）伝搬の順次等価性問題を公式化するために必要とされる回路論理の複製を最小限に抑える方法である。また、本発明は、フォーマルチェックを安全診断に適用し、単純なトランジェントフォールト及び複雑なトランジェントフォールトを効率的にモデル化する。
【００５２】
好ましい実施形態では、本発明は、フォールト伝搬の分析のために順次等価性チェックを行うためのシステム及びコンピュータ実装方法であって、フォールトを注入すること、複数のレジスタの中で、注入されたフォールトが伝搬できない第１のレジスタのセット及び注入されたフォールトが伝搬できる第２のレジスタのセットを識別することを含むシステム及びコンピュータ実装方法を提案する。複数のレジスタの各レジスタについて、識別は、更新関数を実行することと、レジスタが更新関数の結果として変化する場合にレジスタを第２のレジスタのセットに割り当てること及びレジスタが更新関数の結果として変化しない場合にレジスタを第１のセットに割り当てることとを含む。この方法は、等価性チェックを行うための減少した言明複製を得るために第２のレジスタのセットを複製することを含む。
【００５３】
好ましい実施形態では、第１のセット及び第２のステップを識別するステップは、各レジスタについて更新関数をチェックする組み合わせチェックを含む。
【００５４】
別の好ましい実施形態では、識別するステップは、１つのクロックサイクルにおいて順次チェックを含む。
【００５５】
これらのステップは、反復的であり且つ繰り返され得る。
【００５６】
本方法は、トランジェントフォールトモデル化を用いてフォールトを注入することを含み得る。
【００５７】
好ましい実施形態では、レジスタの第１のレジスタのセット又は第２のレジスタのセットへの割り当ては、更新関数を実行した後の一定のクロックサイクル数で行われ、一定のクロックサイクル数は、１よりも大きい。
【００５８】
請求項１のコンピュータ実装方法は、さらなるチェックを必要としないフォールトの検出に使用され得、エラーが検出／診断された後に生じるフォールト伝搬は、安全であるか又はさらなるチェックを必要としないフォールトと見なされる。
【００５９】
さらに別の好ましい実施形態では、本発明は、フォールトを分析し、且つ波形デバッガ内でフォールト伝搬経路を表示するためのシステム及び方法である。このシステムでは、プロセッサ及びメモリを有するコンピューティングデバイスは、フォールトを回路設計に注入するためのフォールト注入モジュール又はアプリケーションを有する。コンピュータデバイスは、フォールト伝搬モジュール若しくはアプリケーション及び／又はフォールトを検出し、且つ回路設計を通るフォールト（例えば、信号）の伝搬を追跡するためのフォールト検出モジュール若しくはアプリケーションをさらに有する。フォールトを注入するためのフォールト位置及び観測点が識別される。少なくとも１つの観測点が識別される。回路設計における観測点は、エラーが危険な影響を有し得る点である。システムは、それによって経路内の各信号がフォールトによって影響を受けた、フォールト位置から観測点までの順序リストにおける信号経路を表示するためのディスプレイを有する。「影響を受けた」とは、両方間の設計の値が黄金設計において得られるであろう値と異なることを指す。所与の１つの信号に対して１つの波形のみが示される。影響を受ける信号は、影響を受けない信号と異なる色（例えば、赤色）で示される。信号は、タイミングドメインに表示され、これは、どのようにフォールトが１つの信号から次の信号に前進するかを示す異なる色の「脚立」をもたらす。
【００６０】
別の好ましい実施形態では、本発明は、フォールト伝搬経路の計算及び表示のためのシステム及びコンピュータ実装方法である。この方法は、コンピューティングデバイスを用いて、電気回路におけるフォールト位置を識別するステップと、前記コンピューティングデバイスを用いて、電気回路における観測点を識別するステップと、前記コンピューティングデバイスを用いて、前記フォールト位置から前記観測点までのフォールト経路を算出するステップと、波形ビューアにおいて、前記フォールト位置から前記観測点までの前記フォールト経路における全ての信号をその作成順に表示するステップとを含む。フォールト経路を算出するステップは、フォールト位置から観測点までの影響を受けた信号の最短経路を算出することを含み得る。最短フォールト経路を算出するステップは、信号の数の観点から最短経路を算出すること、インスタンスの数の観点から最短経路を算出すること又はレジスタの数の観点から最短経路を算出することを含み得る。
【００６１】
フォールト経路を算出するステップは、（ａ）観測点を現在の信号リストに入力することと、（ｂ）現在の信号リスト上の各信号を、影響を受けた信号のリストと比較することと、（ｃ）それぞれの比較された信号について、その信号が、影響を受けた信号のリスト上になければ、その信号に対して何も行わないことと、（ｄ）それぞれの比較された信号についして、その信号が、影響を受けた信号のリスト上にあれば、その信号がフォールト位置であるかどうかをチェックすることと、（ｅ）影響を受けた信号のリスト上のそれぞれの比較された信号について、その信号がフォールト位置であれば、ステップ（ｈ）にスキップすることと、（ｆ）影響を受けた信号のリスト上のそれぞれの比較された信号について、その信号がフォールト位置でなければ、この信号のファンイン信号を次の現在の信号リストに追加するとともに、この信号を追加されたファンイン信号の親として保存することと、（ｇ）次の現在の信号リストを現在の信号リストにし、ステップｂに戻ることと、（ｈ）フォールト位置を経路信号に設定することと、（ｉ）経路信号が親信号を有するかどうかを決定することと、（ｊ）経路信号が親信号を有する場合、親を新しい経路信号として使用し、新しい経路信号を経路リストに保存し、且つ新しい経路信号のためにステップｉに戻ることと、（ｋ）経路信号が親信号を有さない場合、最短フォールト経路として影響を受けた信号の経路を波形ビューアに出力することとを含み得る。フォールト経路を算出するステップは、次の信号リストを空として初期化することをさらに含み得る。
【００６２】
フォールト伝搬経路の計算及び表示のための上記のコンピュータ実装方法は、上記のようなフォールト伝搬の分析のために順次等価性チェックを行うためのコンピュータ実装方法を含み得る。
【００６３】
フォールト伝搬の分析のために順次等価性チェックを行うための上記のコンピュータ実装方法は、上記のようなフォールト伝搬経路の計算及び表示のためのコンピュータ実装方法を含み得る。
【００６４】
本発明のさらに他の態様、特徴及び利点は、単に好ましい実施形態及び実装形態を例示することによる以下の詳細な説明から容易に明らかである。本発明は、他の異なる実施形態も可能であり、その幾つかの詳細は、様々な自明の態様において、全て本発明の趣旨及び範囲から逸脱することなく変更され得る。従って、図面及び記載は、限定的なものではなく、本質的に説明のためのものと見なされる。本発明の追加の目的及び利点は、部分的には後に続く本明細書に記載され、部分的には本明細書から自明となるか又は本発明の実施から学習され得る。
【００６５】
本発明及びその利点のより詳細な理解のために、ここで、以下の説明及び添付の図面が参照される。
【図面の簡単な説明】
【００６６】
【図１】セーフティクリティカルシステムにおいて生じ得る様々なタイプのフォールト及びそのようなフォールトの例示的結果を示す図である。
【図２Ａ】ハードウェア安全機構を有する一般的セーフティクリティカルシステムを示す図である。
【図２Ｂ】順次等価性チェックを行うための従来（先行技術）の回路のフロー図である。
【図２Ｃ】順次等価性チェックにおいて出力を比較するための従来（先行技術）のコンパレータ回路の概略図である。
【図３】本発明の好ましい実施形態による、フォールト伝搬の分析及び表示を行うためのシステムのシステムアーキテクチャ図である。
【図４】本発明の好ましい実施形態による次の状態関数の図である。
【図５】本発明の好ましい実施形態による反復状態マッピングの方法のフローチャートである。
【図６】本発明の好ましい実施形態による、順次等価性チェックを行うための回路のフロー図である。
【図７】本発明の好ましい実施形態による、フォールト伝搬の分析及び表示を行うための方法のフローチャートである。
【図８】本発明の好ましい実施形態による、フォールト伝搬の分析及び表示を行うためのシステムの表示の図である。
【図９】本発明の好ましい実施形態による、フォールト伝搬の分析及び表示を行うためのシステムを通る信号フローを示すフロー図である。
【図１０】本発明の好ましい実施形態によるフォールト経路計算を示す図である。
【図１１】本発明の好ましい実施形態による、フォールト経路を算出するための方法のフロー図である。
【図１２】本発明の好ましい実施形態による、シングルアップセットフォールトインジェクションのためのコントローラの図である。
【発明を実施するための形態】
【００６７】
本発明の好ましい実施形態によるフォールト伝搬経路の分析及び表示を行うためのシステム及び方法の概略アーキテクチャを図３に示す。このシステムは、１つ又は複数のプロセッサ、メモリ及びハードドライブ又は固体ドライブなどの非一時的ストレージ媒体を有するコンピュータ又はサーバであり得るコンピューティングデバイス３００を含む。コンピューティングデバイス３００は、フォールト注入モジュール３１０と、フォールト伝搬及び検出モジュール３２０と、波形デバッガ３４０とを有する。コンピューティングデバイスは、検証モジュール３５０又は定量化モジュール３６０などの他のモジュール又はアプリケーションを有し得る。システムは、ディスプレイ３９０をさらに有する。フォールト注入モジュール又はアプリケーション３１０は、設計を変更する必要性、複雑なコード計装ステップを経る必要性又は専用検証環境を開発する必要性なしに、フォールトシナリオの定義及び注入を行うための単純且つ柔軟性のあるインタフェースを提供する。
【００６８】
フォールト伝搬分析は、フォールトが安全機構によって伝搬又は検出されることを証明するための検証中、集積回路のゲートレベルモデルにフォールトを注入することを含む。これらのゲートレベルモデルは、複雑であり、多数のあり得るフォールトシナリオを含有し得る。ハードウェア安全目標を達成するために、「危険な検出されない」フォールトの数は、最小限に抑えられなければならない。
【００６９】
フォールトシミュレーションは、フォールトメトリクスを決定するための標準的手法である。フォールトは、安全機能による検出を確実にするために刺激され、且つ観測点に伝搬される。機能的刺激によって起動されないか又は伝搬されないフォールトは、シミュレーションサイクルの高い割合を消費する。それらは、刺激の向上を考慮すると、デバッグも難しい。従って、これらのフォールトは、「非検出」グループにとどまることが多く、所望の検出率を損なう。
【００７０】
フォールトシナリオは、オリジナル設計である被試験設計（ＤＵＴ）の欠陥バリアントのセットと見なすことができる。フォールトシナリオの第１の要素は、フォールトが注入されるべきビットレベル設計信号のセットである。他の要素は、何れの時点で何れのタイプのフォールトが注入されるべきかを定義する。オリジナル設計は、フォールトが存在しない特定のフォールトシナリオに対応する。
【００７１】
ユーザは、カスタムフォールトシナリオを定義する柔軟性を有するか、又は予め定義されたフォールトシナリオを選択する。単純なシナリオは、常に設計信号の数字の全ビットに対する０縮退フォールトの注入を記述し得る。カスタムシナリオは、一度のみ生じ、且つ例えば特定のアドレスで読み出されるメモリといった他の条件と一致する、記憶場所の任意ビットにおけるＳＥＵフォールト（例えば、ビットフリップ）の注入を記述し得る。ユーザアサーションは、特定のフォールトシナリオと関連付けることができ、及び強力な証明戦略が、大型且つ複雑な設計における巨大なフォールト集団の同時網羅的検証に対処するために自動的にセットアップされる。また、専用デバッグ特徴は、状況がかなり混乱し得るフォールト注入設計に対するアサーション故障を調べるという厄介なタスクをスピードアップする。最後に、定量化モジュールは、ボタンを押して全体的なアサーションセットのカバレッジを測定し、且つ検証ギャップを有するミッション及び安全関連の両方の機能エリアを顕在化させることができる。
【００７２】
フォールトは、伝搬可能及び非伝搬可能に分類され得る。非伝搬可能フォールトは、その状態にかかわらず、システムの機能不良に至ることが決してない。従って、それらは、安全であり、危険フォールトリストから除去されることが可能であり、フォールトメトリクスを向上させる。これは、フォールト伝搬及び検出モジュール３２０を用いて自動的に等価性チェックなどのフォーマル技術が効果的に適用され得る場所である。フォールト伝搬及び検出モジュール３２０は、非伝搬可能フォールトを自動的に識別して、シミュレーション前にそれらの安全な排除を可能にし、それにより公称フォールトカバレッジを高めながら、シミュレーション及びデバッグ時間を削減する。非伝搬可能フォールトを識別するための任意の既知の方法が使用され得る。
【００７３】
フォールト伝搬モジュール３２０は、フォールトシミュレーション前及び後の両方で全体的なフォールト集団に適用される。フォールト伝搬モジュール３２０は、「高速モード」及び「ディープモード」を有する。「高速モード」でのフォールト伝搬モジュール３２０の動作は、効率的に非伝搬可能フォールトを識別し、それによって不要な労力を回避しながら所望のフォールト検出率が迅速に達成されることを可能にするためにフォーマル分析を利用して、シミュレーション前に実行される。これらのフォールトは、フォールトシミュレーションテストベクトルに対する要求なしにフォールトリストから取り除かれ得る。フォールトシミュレーションプロセス全体は、フォールトシミュレーションで実行される必要があるものからこの種のフォールトを除去することにより、大幅に加速される。
【００７４】
「ディープモード」でのフォールト伝搬モジュール３２０の動作は、シミュレーションベースフォールト注入プロセス中に識別された非伝搬可能フォールトを分析して安全機構を向上させるか又はそれらを安全と分類するために使用することができる。この自動ステップは、残りの危険フォールトを識別するためにフォールトシミュレーション後に必要とされる手作業の労力を大きく減らす。この分析は、ネットリスト（認証規格の要件）の変更なしに達成される。
【００７５】
唯一必要とされる入力は、被試験回路のゲート又はＲＴＬモデルである。システムは、重複を回避するために、それがネットコラプシングなどの最適化を既に行うフォールト位置を識別する。代替的に、フォールトリスト又は興味表示の設計エリア（これは、ツールによってフォールトリストを洗練させるために使用される）が提供され得る。
【００７６】
さらに、文脈分析を可能にするために、初期設計状態がロードされ得る。このような分析は、特定の実行時刻に注入されるとフォールトがどのように挙動するかを理解するために重要となり得る。
【００７７】
フォールトリストの作成後、システムは、非伝搬可能フォールトを識別するために完全自動フォーマル分析を行う。この分析後、非伝搬可能フォールト及び潜在的に伝搬可能なフォールトがさらなる処理のために単純なＣＳＶフォーマットテキストファイルに書き込まれ得る。加えて、分析要約報告書が生成される。全てのフォールトを分析するのではなく、フォールトリストがサンプリングされる高速統計分析も行われ得る。
【００７８】
本発明は、等価性問題のコンパクトな符号化を組み込む。古典的な等価性チェック手順は、図２Ｂに示すような回路論理の複製を必要とする。組み合わせ論理複製は、通常、この論理が設計間で共有される一次入力に依存する場合に減少させることができる。ステートフル要素（フリップフロップ、メモリなど、簡単にするためにこれらをレジスタと呼ぶ）及びこれらのレジスタに依存する組み合わせ論理は、複製される必要がある。
【００７９】
コンパクトな符号化を使用した本発明では、レジスタは、フォールトがそれらに伝搬可能である場合にのみ複製される必要がある。レジスタにおける値がフォールト注入によって影響を受けないことが分かっている場合、このレジスタは、オリジナル設計及び欠陥設計が何れにしても常に同じ値を有するため、それらの間で共有することができる。このようにして、本発明は、このような状態のファンアウトにおいて組み合わせ論理の複製を減少させる。
【００８０】
影響を受けない状態を識別するための幾つかの単純な方法が知られている。これらの方法における主な考えは、フォールトがその影響円錐域内に存在しないレジスタに伝搬できないことである。この構造上の論拠は、実装が簡単であるというメリットを有するが、例えば制約（外的又は設計自体に由来する）により、フォールトが、その影響円錐域内に存在するレジスタに伝搬しないことが多くある。本発明は、フォーマルチェックを使用して、フォールトによって影響を受けないレジスタのセットを見つけるための方法及びシステムを提供する。
【００８１】
まず、図４に示すように、各レジスタｒが、その入力を供給する組み合わせ論理によって与えられる次の状態関数ｎｅｘｔ（ｒ）を有することを考察する。これらの関数における変数は、一次入力又は他のレジスタである。図２Ｂの場合と同様に（入力＝一次入力＋状態）、フォールトの存在下で次の状態が異なり得るか否かをチェックすることができる。しかし、次の状態関数において変数となる状態を考察するため、このチェックは、ｓａｔソルバへの１コールを用いた組み合わせチェックとして実現することができる。このようなチェックが成功すれば、フォールトがこのレジスタに伝搬されないことを確信することができる。一方、チェックが成功しなければ、伝搬が生じる他のレジスタの特定の状態が設計の順次プロパティにより到達可能でないことが生じ得る。
【００８２】
従って、組み合わせチェックに成功しなければ、到達可能性を考慮した順次チェックに進み得る。しかし、このようなチェックは、要求が厳しく、ときにフォールト伝搬チェック自体と同程度に要求が厳しい。それでもやはり、それは、幾つかのケースを高速に解くことができるため、少ない労力（短いタイムアウト）で順次チェックの実行を試みるのに有用なヒューリスティックである。
【００８３】
状態複製を最小限に抑えるため且つ問題を単純化するために、本発明は、フォールトが伝搬する状態のセットを反復的に構築する、図５に示す方法を使用する。それは、帰納的推論に基づく。フォールトが潜在的に伝搬可能な状態Ｓｆａｕｌｔｙのセットが、それが他の状態に伝搬できない（これは、状態空間の縮小を可能にする）という前提に基づいて帰納的に構築される。不動点に達すると、フォールトは、Ｓｆａｕｌｔｙ内に存在しないレジスタに決して伝搬しないことが証明される。従って、Ｓｆａｕｌｔｙ内に存在するレジスタのみが複製される必要がある。
【００８４】
初期化時、その中に影響を受ける状態レジスタＳｆａｕｌｔｙの空集合が存在するレジスタのセットＳが存在する（５１０）。フォールト位置から直接到達可能な各レジスタに対して、その更新関数ｎｅｘｔ（ｒ）に関して組み合わせ又は順次等価性チェックを実行する（５２０）。レジスタ更新が欠陥位置の値に直接依存する（５２２）場合、フォールトがレジスタに伝搬可能であるかどうかをチェックする（５２４）。フォールトがレジスタに伝搬可能である（５２６）、すなわち等価性を証明することができない（反例又はタイムアウトが見つかった）場合、そのレジスタをＳｆａｕｌｔｙのセットに追加する（５２８）。フォールト位置から直接到達可能な全てのレジスタがテストされると、システムは、新しい状態がＳｆａｕｌｔｙに追加されたか否かをチェックする。新しい状態が追加されていなければ、Ｓｆａｕｌｔｙは、固定点に到達しており、本方法は完了する。新しい状態がＳｆａｕｌｔｙに追加されていれば、ステップ５２０は、依然としてＳｆａｕｌｔｙ内に存在せず、且つＳｆａｕｌｔｙ内の状態から又はフォールト位置から直接到達可能なＳからの全レジスタｒに対して繰り返される。
【００８５】
本方法の終了後、Ｓｆａｕｌｔｙは、ある時点でオリジナル及び欠陥設計において異なる値を有し得るレジスタを包含する。状態の残りは、図６に示すように、順次チェックにおいて類推によって共有され得る。複製される必要がないこのような状態がマッピングされると言う。
【００８６】
最終フォーマルＮＰＡ／ＰＡチェックの状態空間の縮小とは別に、共有状態の識別は、観測点が共有状態によってのみフォールト位置に接続されることを条件として、幾つかの観測点に関して直接的に非伝搬を証明することができる。これは、フォールトの影響円錐域から共有状態を除去することによってさらに向上させることができる（それらが構造的に接続されているとしても、実際には影響がないことを証明済みであるため）。
【００８７】
図７に示すような本発明の好ましい実施形態の方法では、システムは、フォールトを注入するためのフォールト位置を識別し（７１０）、且つ観測点を識別する（７２０）。回路設計における観測点は、エラーが危険な影響を与え得る点である。システムは、フォールト経路（図７及び８を参照してさらに詳細に後に説明する）を算出する（７３０）。次いで、システムは、波形デバッガ３４０においてビューアを開く（７４０）。次いで、システム３００は、ディスプレイ３９０上において、それによって過去内の各信号がフォールトによって影響を受けた、フォールト位置から観測点までの順序リストにおける影響を受けた信号経路を表示する（４５０）。「影響を受けた」とは、両方間の設計の値が黄金設計において得られるであろう値と異なることを指す。代替実施形態では、例えばフォールトが２つ以上の観測点に伝搬する場合、複数の観測点が使用され得る。
【００８８】
図８に示すように、所与の１つの信号に対して１つの波形のみが示される。影響を受ける信号は、影響を受けない信号と異なる色（例えば、赤色）で示される。線の太さ若しくは線の種類（例えば、破線、点線など）などの色以外の指標又は任意の他の視覚的指標が用いられ得る。好ましくは、黄金信号の値と欠陥信号の値とが異なる場合にのみ、異なる色で示される。また、図８に示す表示の代替案として、黄金信号の値及び欠陥信号の値は、所与の単一波上に互いに並べて配置され得る。２つの値を表示することは、表示された信号が単一ビットでない場合に特に有用となり得る。信号は、タイミングドメインに表示され、これは、どのようにフォールトが１つの信号から次の信号に前進するかを示す異なる色の「脚立」をもたらす。異なる色は、どのようにフォールトが１つの信号から次の信号に前進するかを示すために表示において使用され得る。図８にも示されるように、信号前のデバイスの入力及び信号後のデバイスの出力を表示することが有益な場合がある。複数の観測点を有する代替実施形態では、複数の観測点に関するデータ及びグラフがディスプレイ又は波形ビューア上に示され得る。
【００８９】
ハードウェア安全機構の検証のための例示的アーキテクチャ６００を図９に示す。このシステムは、パリティエンコーダ６１０、リード／ライト６２０、ライトポインタ６３０、メモリ６４０、リードポインタ６５０、パリティコーダ６６０及びフル／空６７０を有する。
【００９０】
図９に示すように、フォールト経路計算８００の入力は、開始点（フォールト位置）及び終点（観測点）と、反例から計算されたフォールトによって影響を受けた信号のリスト（影響を受けた信号の完全なリスト）と、設計におけるそれぞれの単一信号のファンイン／ファンアウト関係とである。フォールト経路計算の出力は、開始点から終点までの最短経路である。最短経路は、信号の数、インスタンスの数又はレジスタ／状態の数の観点から見たものとなり得る。インスタンスは、それらに付加された異なる数の信号を有し得る。インスタンスは、一般的にセル（ＡＮＤコール又はフリップフロップセルのような）である。開始点から終点までの最短経路は、絶対最短経路ではなく、開始点と終点との間に何らかの逸脱又は変更を含み得る。逸脱又は変更は、フリップフロップなどの任意の手段によって加えられ得る。
【００９１】
図１０を参照して、本発明の好ましい実施形態による、フォールト経路を算出するための例示的方法を説明する。計算のための入力は、図８に示される。９０２では、観測点が現在の信号リストに入力される。これが最初の反復である場合、現在の信号リストは、わずか１つの信号（観測点）を有し得る。それが後の反復であれば、現在の信号リストは、複数の信号を有する。９１０において現在の信号リストが空であれば、システムは、ステップ９１２において、エラーが存在することを知り、適切なエラー通知が着手される。９１０において現在の信号リストが空でなければ、システムは、９２０において、現在の信号リスト中の各信号について、その信号が、影響を受けた信号のリスト上に存在するか否かを決定する。特定の信号が、影響を受けた信号のリスト上になければ、システムは、９２２において、その信号に対して何も行わない。特定の信号が、影響を受けた信号のリスト上にあれば、システムは、９３０において、信号がフォールト位置であるか否かをチェックする。それがフォールト位置でなければ、システムは、９３４において、この信号のファンインを次の現在の信号リストに追加するとともに、この信号をそれらのファンイン信号の親として保存する。現在の信号リスト上の全ての信号がチェックされると、システムは、９３６において、次の現在の信号リストを現在の信号リストにし、次いで９１０に戻る。ステップ９３０において信号がフォールト位置である場合、システムは、９４０において、フォールト位置を経路信号として設定する。次いで、システムは、９５０において、経路信号が親を有するか否かを決定する。はいであれば、システムは、９５２において、その親を新しい経路信号と見なすとともに、その経路信号を経路リストに保存する。次いで、システムは、ステップ９５０に戻る。経路信号が親を有さない場合、システムは、９６０において、波形ビューアにおいて経路を作成順に表示する。このようにして、フォールト位置から観測点までの最短経路の決定及び表示が行われる。
【００９２】
フォールト検出／診断の符号化
多くの場合、ハードウェアコンポーネントは、潜在的な誤った挙動をチェックする内部診断又は検出機構を包含している。このような挙動が観測されると、特別な出力（エラーフラグ）を使用して、エラーが外部に伝達される。ユーザ（通常、ソフトウェア又は他の接続ハードウェア）は、エラーから回復させる責任を負う。内部検出機構によって検出され、ユーザに知らされるエラーは、安全エラーと見なされる。代替的に、ＩＳＯ２６２６２の第５部もこのようなエラーをマルチポイント検出故障として分類する。内部検出機構によって検出されないエラーは、危険故障であり、ＩＳＯ２６２６２の第５部は、このような危険故障を残存として分類する。
【００９３】
従って、注入されたフォールトが内部検出機構によって検出される挙動をフォーマルツールが考慮しないことを確実にすることが望まれる。これは、内部検出機構がエラーを報告する場合に図７の出力を０に設定することによって達成することができる。しかし、これは、フォールトが伝搬されるのと全く同じクロックサイクルにおいて、エラーフラグが内部検出機構によって立てられることを必要とする。
【００９４】
より強力な手法は、エラーフラグが設定されると、それが高論理値を維持することを必要とする。これは、エラーが検出／診断された後に生じる全てのフォールト伝搬が安全と見なされることを確実にする。
【００９５】
フォールトが観測点に伝搬した後のあるクロックサイクル数でのみエラーが内部検出機構によって認識され得る場合、最も複雑な状況が生じる。エラーフラグが立てられる所与の一定の数のクロックサイクルが存在する場合、それに応じて、直列接続された対応する数のレジスタを使用して、図６の「ｉｓ  ｄｉｆｆｅｒｅｎｔ」信号を延期し、指定のクロックサイクル数後にのみ差がフォーマルツールによって見つけられることを確実にし、エラーの存在を知らせるための十分な時間を内部機関に与える。
【００９６】
一定のリミットの存在は、エラーが有限時間内に生じたか否かを決める方法をユーザが有する必要があるため、限定ではなく、リミットが課せられなければ、ユーザが無制限に待つことを必要とするであろう。
【００９７】
トランジェントフォールトモデル化
基本フォールトモデル化は、回路において所与の信号の代わりに一定値を導入することからなる。これは、欠陥信号がシミュレーション又はフォーマルチェックにおいて常に同じ値を有することを意味する。このモデルは、注入された定数の値に基づいて０縮退又は１縮退と呼ばれるか、又は一般に、それは、固定値縮退（ｓｔｕｃｋ−ａｔ−ｖａｌｕｅ）と呼ばれ得る。
【００９８】
このモデルは、幾つかのタイプのフォールトに関して問題なく使用され得るが、ときに例えば回路要素が高エネルギー粒子によって衝突され、１つ又は複数のクロックサイクル中、その論理値の一時的変化が引き起こされる場合のように、トランジェントフォールトに興味がある場合がある。
【００９９】
トランジェントフォールトは、欠陥値が一般的にランダムに挿入されるシミュレーションでモデル化することが簡単となり得るが、フォーマル環境では、このタイプのランダムエラーの事前の未知の時間及び限定された継続時間を表すようにモデルを調節する必要がある。
【０１００】
トランジェントフォールトの単純な例は、シングルアップセットである。これは、信号値が１つのクロックサイクル中にのみフォールトによって影響を受けることを意味するが、それが何れの時点で生じるかは、事前に分からない。この不確実性は、新しい入力によって導入される非決定論としてモデル化される。新しい入力の高い値は、フォールトがこれまでに生じていないことを条件として、それを生じさせる。シングルアップセットフォールト注入は、図１２に見られるような付加順次論理によってモデル化され得る。これは、その間にフォールトが注入される具体的なクロックサイクルを強制することなく、正確に１つの時間サイクル中、欠陥値を含む実行経路のみをフォーマルツールが考慮することを可能にする。
【０１０１】
図１２の回路は、正規表現「ｎ＊ｆｎ＊」（「ｎ」は、非欠陥状態であり、ｆは、欠陥状態である）に相当する有限オートマトンの実装形態である。この正規表現は、未指定の数の非欠陥状態後に正確に１つの欠陥状態が続き、次いで再び未指定の数の非欠陥状態が続くことを示す。このようにして、非常に複雑なフォールトパターンでさえ記述することができる。
【０１０２】
正規表現をオートマトンに変え、且つオートマトンを回路に変えるプロセスは、十分に確立されている。
【０１０３】
このようにして、正規表現によって記述可能なフォールトパターンをサポートすることができる。
【０１０４】
本発明の方法は、順次回路においてフォールト非伝搬を証明する際に生じる等価性チェック問題のサイズを減少させる。この手法は、先行技術のシステム及び方法よりも大きい状態空間の縮小をもたらす。
【０１０５】
本発明の方法は、フォールト伝搬の安全性を、それをフォーマルプロパティとして符号化することによってさらに診断する。
【０１０６】
さらにまた、本発明の方法は、順次等価性チェッカーに提示されるフォーマル問題の範囲内において、ワンタイムアップセット及びより一般的なアップセットスキーマを符号化する。正規表現又は同様の形式によって表現することができるあらゆるアップセットパターンをサポートする。
【０１０７】
本発明の好ましい実施形態の上記の説明は、例示及び説明を目的として提示されたものである。包括的であること又は本発明を開示された通りの形態に限定することは意図されず、変更形態及び変形形態は、上記の教示に鑑みて可能であるか、又は本発明の実施から得ることができる。本実施形態は、本発明の原理及び企図された特定の使用に適するような様々な実施形態において当業者が本発明を利用することを可能にする実際の適用を説明するために選択及び記載されたものである。本発明の範囲は、本明細書に添付された特許請求の範囲及びそれらの均等物によって定義されることが意図される。上述の各文献の全体が参照により本明細書に援用される。
【図１】
2020524351.tif 000004
【図２Ａ】
2020524351.tif 000005
【図２Ｂ】
2020524351.tif 000006
【図２Ｃ】
2020524351.tif 000007
【図３】
2020524351.tif 000008
【図４】
2020524351.tif 000009
【図５】
2020524351.tif 000010
【図６】
2020524351.tif 000011
【図７】
2020524351.tif 000012
【図８】
2020524351.tif 000013
【図９】
2020524351.tif 000014
【図１０】
2020524351.tif 000015
【図１１】
2020524351.tif 000016
【図１２】
2020524351.tif 000017
【国際調査報告】
2020524351.tif 000018
2020524351.tif 000019
2020524351.tif 000020
2020524351.tif 000021
2020524351.tif 000022