(57)【要約】【課題】電子回路のコンパイルされた設計を修正する計算機で実現される方法を提供すること。【解決手段】本発明による方法は，設計を表す記憶されたコンパイル物にアクセスするステップと，設計の一部に対する変更の指示に応答して，計算機に記憶されたコンパイル物の修正版を生成させるステップと，を含む。【選択図】図１
2015122065.tif 000002
【特許請求の範囲】
【請求項１】
電子回路のコンパイルされた設計を修正する計算機で実現された方法であって，
前記設計を表す記憶されたコンパイル物にアクセスするステップと，
前記設計の一部への変更の指示に応答して，前記計算機に前記記憶されたコンパイル物の修正版を生成させるステップと，
を有する方法。
【請求項２】
前記設計の前記変更された部分を表す前記コンパイル物の一部を特定するステップを更に有し，前記修正されたコンパイル物は前記コンパイル物の前記特定された部分の修正版を有し，前記コンパイル物のほかの部分は修正されないままである，請求項１に記載の方法。
【請求項３】
前記変更は，前記設計に短絡要素を加えるステップと，前記設計に開放要素を加えるステップとの少なくとも一つを有する，請求項１に記載の方法。
【請求項４】
前記修正版を生成させるステップは，
前記変更がアナログ要素に関係することを判定するステップと，
前記要素に関係する少なくとも一つのアナログ部方程式を更新するステップと，
を有する，請求項１に記載の方法。
【請求項５】
前記修正版を生成させるステップは，
前記変更がデジタル要素に関係することを判定するステップと，
前記要素に関係する少なくとも一つのデジタル部ドライバ接続を更新するステップと，
を有する，請求項１に記載の方法。
【請求項６】
前記記憶されたコンパイル物は，複数の部分木を有する設計木を含む，請求項１に記載の方法。
【請求項７】
前記修正版を生成させるステップは，要素を前記部分木の一つに挿入するステップを有する，請求項６に記載の方法。
【請求項８】
前記挿入するステップは，
第１ノードに接続されたポートから該第１ノードを切り離すステップと，
前記第１ノードと前記ポートとの間に第２ノードを加えるステップと，
前記ポートに前記第２ノードを接続するステップと，
前記第１ノードと前記第２ノードとの間に前記要素を挿入するステップと，
を有する，請求項７に記載の方法。
【請求項９】
前記修正されたコンパイル物をシミュレートするステップと，
前記シミュレーションに基づいてレポートを生成するステップと，
を更に有する，請求項１に記載の方法。
【請求項１０】
前記修正されたコンパイル物を未修正の状態に戻すステップを更に有する，請求項１に記載の方法。
【請求項１１】
設計を検証するシステムであって，
プロセッサと，
命令を記憶するメモリであって，該命令は前記プロセッサが実行したとき前記プロセッサに，
前記設計を表す記憶されたコンパイル物にアクセスし，
前記設計の一部への変更の指示に応答して，前記プロセッサに前記記憶されたコンパイル物の修正版を生成させる，ように前記プロセッサを構成する，メモリと，
を備えるシステム。
【請求項１２】
前記命令は，前記プロセッサが前記設計の前記変更された部分を表す前記コンパイル物の一部を特定するように更に構成され，前記修正されたコンパイル物は前記コンパイル物の前記特定された部分の修正版を有し，前記コンパイル物のほかの部分は修正されないままである，請求項１１に記載のシステム。
【請求項１３】
前記変更は，前記設計に短絡要素を加えることと，前記設計に開放要素を加えることとの少なくとも一つを有する，請求項１１に記載のシステム。
【請求項１４】
前記修正版を生成させることは，
Ａ）前記変更がアナログ要素に関係することを判定し，前記要素に関係する少なくとも一つのアナログ部方程式を更新することと，
Ｂ）前記変更がデジタル要素に関係することを判定し，前記要素に関係する少なくとも一つのデジタル部ドライバ接続を更新することと，の少なくとも一つを有する，請求項１１に記載のシステム。
【請求項１５】
前記修正版を生成させることは，
第１ノードに接続されたポートから該第１ノードを切り離すことと，
前記第１ノードと前記ポートとの間に第２ノードを加えることと，
前記ポートに前記第２ノードを接続することと，
前記第１ノードと前記第２ノードとの間に前記要素を挿入することと，
を有する，請求項１に記載のシステム。
【請求項１６】
前記命令は，前記プロセッサが，
前記修正されたコンパイル物をシミュレートし，
前記シミュレーションに基づいてレポートを生成する，
ように更に構成する，請求項１１に記載のシステム。
【請求項１７】
前記命令は，前記プロセッサが前記修正されたコンパイル物を未修正の状態に戻すように更に構成する，請求項１１に記載のシステム。
【請求項１８】
命令を有する計算機可読媒体であって，該命令は，計算機が実行したとき前記計算機に方法を実行させ，該方法は，
設計を表す記憶されたコンパイル物にアクセスするステップと，
前記設計の一部への変更の指示に応答して，前記計算機に前記記憶されたコンパイル物の修正版を生成させるステップと，
を有する，計算機可読媒体。
【請求項１９】
前記方法は，前記設計の前記変更された部分を表す前記コンパイル物の一部を特定するステップを更に有し，前記修正されたコンパイル物は前記コンパイル物の前記特定された部分の修正版を有し，前記コンパイル物のほかの部分は修正されないままである，請求項１８に記載の計算機可読媒体。
【請求項２０】
前記変更は，前記設計に短絡要素を加えることと，前記設計に開放要素を加えることとの少なくとも一つを有する，請求項１８に記載の計算機可読媒体。
【請求項２１】
前記修正版を生成させるステップは，
Ａ）前記変更がアナログ要素に関係することを判定するステップ，及び前記要素に関係する少なくとも一つのアナログ部方程式を更新するステップと，
Ｂ）前記変更がデジタル要素に関係することを判定するステップ，及び前記要素に関係する少なくとも一つのデジタル部ドライバ接続を更新するステップと，の少なくとも一つを有する，請求項１８に記載の計算機可読媒体。
【請求項２２】
前記修正版を生成させるステップは，
第１ノードに接続されたポートから該第１ノードを切り離すステップと，
前記第１ノードと前記ポートとの間に第２ノードを加えるステップと，
前記ポートに前記第２ノードを接続するステップと，
前記第１ノードと前記第２ノードとの間に前記要素を挿入するステップと，
を有する，請求項１８に記載の計算機可読媒体。
【請求項２３】
前記方法は，
前記修正されたコンパイル物をシミュレートするステップと，
前記シミュレーションに基づいてレポートを生成するステップと，
を更に有する，請求項１８に記載の計算機可読媒体。
【請求項２４】
前記方法は，前記修正されたコンパイル物を未修正の状態に戻すステップを有する，請求項１８に記載の計算機可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，概略は設計の検証のため，詳細にはシステム設計を検証するために，計算機シミュレーション中に多くの障害を挿入する計算機で実現される方法及びシステムに関する。
【０００２】
本願は，合衆国法典第35巻119(e)に基づき，2013年12月6日出願の米国仮特許出願第61/913,225号の優先権を主張する。
【背景技術】
【０００３】
例えば今日の自動車の世界において，電子回路は益々重要な役割を演じている。今日，電子回路は平均的な新車の中身の約４０％を構成し，電子回路の持分は益々増加することが予想される。ある研究によれば，平均的な新車は４０以上の電子制御器と，８ｋｍ（５マイル）の配線と，１千万行以上の計算機ソフトウェアコードとを含む。この電子回路の急増によって，電子回路の障害によるリスクもまた急速に増加している。これらの車両の電子回路の障害は，車両に危険な影響を与えることがある。自動車の電子回路に関係する障害の結果は，事故及びリコールを含む。
【０００４】
自動車メーカは，自社の車両の電子部品の安全性及び信頼性を保証するという，困難な課題に直面している。今日，ほとんどのメーカは自社のシステムについて電気的試験に頼っているが，それは非常に高価かつ時間が掛かり，潜在的な障害条件及びシステムへの潜在的な影響すべてを網羅することはできない。
【０００５】
変更としての障害要素を設計記述に導入するために，通常の計算機支援設計（ＣＡＤ）障害シミュレータを用いてもよい。しかし，利用者が実行中のシミュレーションと対話する能力は限られているため，各設計変更は時間の掛かるシミュレーションの再コンパイルを必要とする。設計者及び検証技術者が種々のタイプの障害をシミュレートし，物理的試験用のプロトタイプが作成される前に障害の影響を理解するように，シミュレーション環境内の堅固な障害シミュレーション能力が必要とされている。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の一態様は，電子回路のコンパイルされた設計を修正する計算機で実現される方法である。この方法は，設計を表す記憶されたコンパイル物（ｃｏｍｐｉｌａｔｉｏｎ）を利用するステップと，計算機に，設計の一部に対する変更の指示に応答して，記憶されたコンパイル物の修正版を生成させるステップと，を含む。
【０００７】
本発明の別の態様は設計を検証するシステムであって，システムはプロセッサと，一組の命令を記憶するメモリとを含む。命令は，プロセッサによって実行されたとき，プロセッサが設計を表す記憶されたコンパイル物を利用するように構成し，プロセッサに，設計の一部に対する変更の指示に応答して記憶されたコンパイル物の修正版を生成させる。
【０００８】
本発明の別の態様は命令を含む計算機可読媒体であって，命令は，計算機によって実行されたとき，計算機に，設計を表す記憶されたコンパイル物を利用するステップと，設計の一部に対する変更の指示に応答して記憶されたコンパイル物の修正版を生成するステップとを含む方法を実行させる。
【０００９】
本発明の種々の実施形態を，以降の詳細な説明及び添付の図面において開示する。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態による，設計を検証するための簡略化したフローチャートである。
【図２Ａ】増幅器設計の簡略化した例示回路図である。
【図２Ｂ】本発明の一実施形態による，図２Ａに示した回路図に対する直列修正箇所の簡略化した例示回路図である。
【図２Ｃ】本発明の一実施形態による，図２Ａに示した回路図に対する並列修正箇所の簡略化した例示回路図である。
【図２Ｄ】本発明の一実施形態による，図２Ａに示した回路図に対する２ポートに関係する直列修正箇所の簡略化した例示回路図である。
【図２Ｅ】本発明の一実施形態による，図２Ａに示した回路図に対する直並列修正箇所の簡略化した例示回路図である。
【図３】本発明の一実施形態による，図１に示した部分設計修正ステップの簡略化したフローチャートである。
【図４Ａ】本発明の一実施形態による，推敲された設計を表す設計木の簡略化した例示ブロック図である。
【図４Ｂ】本発明の一実施形態による，追加要素を含む図４Ａに示した設計木の簡略化した例示ブロック図である。
【図５】本発明の一実施形態による，図１に示した部分分析ステップの簡略化したフローチャートである。
【図６】本発明の実施形態に関係するシステム工学の簡略化した例示Ｖモデルを示す図である。
【図７】本発明の実施形態を組み込むことができる計算機システムのブロック図である。
【発明を実施するための形態】
【００１１】
図１は，本発明の一実施形態による，設計を検証するための簡略化したフローチャート１００である。フローチャート１００は，設計者及び検証技術者が，費用の掛かるプロトタイプを作成する前に，種々のタイプの障害をシミュレートし，その障害の影響を理解できるように，シミュレーション環境内に堅固な障害シミュレーション能力を含んでもよい。フローチャート１００に示された方法の実施形態は，例えば，Ｓｙｎｏｐｓｙｓ社が販売するＳａｂｅｒ（登録商標）ＨＤＬシミュレータ及び／又はＳａｂｅｒ（登録商標）シミュレータと呼ばれるソフトウェアツールに含めてもよい。この方法の実施形態は，計算機が障害シミュレータになるか，又は障害シミュレータとして機能するように構成されたソフトウェア命令を実行する計算機によって実行してもよい。
【００１２】
障害シミュレータは設計記述（以下，「設計」とも言う）を受信し，設計は，例えば，図形回路図，又は，ＶＨＤＬ，ＶＨＤＬ−ＡＭＳ，Ｖｅｒｉｌｏｇ−ＡＭＳ，ＭＡＳＴ，Ｍｏｄｅｌｉｃａ，などのハードウェア設計言語（ＨＤＬ）で書かれた記述であってよい。設計は，例えば，以下「モデル」とも言う物理的振舞の数学的記述によって表された，電子回路，電気機械系，機械系を記述してもよいし，及び／又は保存された信号流及び事象の組合せによって特徴付けられる任意のシステム又はデジタル部連立方程式を記述してもよい。設計は，毎回異なるパラメータセットを用いて，設計を通じて複数回用いられるか，又はインスタンス化される要素の再利用可能記述を含んでもよい。例えば，抵抗器要素は抵抗パラメータを含んでもよく，抵抗器は，抵抗器の各インスタンスにおいて別個の抵抗値で複数回インスタンス化されてもよい。設計内の要素の一つの使用を当該要素のインスタンスと呼ぶ。要素の記述は階層的であってよく，その場合，記述はほかの要素のインスタンスを含む。
【００１３】
障害シミュレータは設計を推敲（ｅｌａｂｏｒａｔｅ）する。いくつかのシステムにおいては，推敲に先立って，設計の別個の部分と，部分間のリンクとを含むが，各部分が一緒に接続されたとき，設計全体に与えるそれら部分の影響は含まない構文木（ｓｙｎｔａｘ  ｔｒｅｅ）の形態で設計が表される。シミュレータは入力設計記述を分析してこの構文木を生成する。
【００１４】
推敲は，選択された要素パラメータの影響を適用した後，設計の完全な表現を生成するために，設計記述を解釈又は変形する処理を含む。例えば，推敲は，どの要素を階層設計中でインスタンス化するかを決定することを含んでもよい。推敲された設計表現の一部は，シミュレーション中に変更することがある対象のためにメモリに入れられる。ステップ１１０において，推敲は設計のコンパイル物を形成するために，設計の要素を解釈する。コンパイル物は，計算機可読メモリ内にファイルとして記憶してもよい。コンパイル物は，設計階層を表す「推敲された設計インスタンス木」又は「インスタンス化木」（ｉｎｓｔａｎｔｉａｔｅｄ  ｔｒｅｅ）とも言う設計木を含む。インスタンス化木は，設計のシミュレーション中に変更できる情報を記憶することができる場所である。インスタンス化木はインスタンスごとに要素の投影を含み，投影は，当該要素のインスタンスに指定された特定のパラメータを適用した結果を含む。設計にはほかの変形もまた行われ，ＶＨＤＬ−ＡＭＳ言語に適用可能な変形の例は，IEEE 1076.1-2007の１２章に記載されている。
【００１５】
推敲はモデルライブラリの要素を用いてもよい。設計は，シミュレートされる設計のためだけに生成されたのではない既存のモデルを用いてもよい。設計又はモデルの一部の再利用は，設計の遂行中に参照できるモデルライブラリ内の設計又はモデルの一部を記憶することによって容易にすることができる。
【００１６】
推敲はさらに，設計のデジタル部振舞及び機能を表す信号及びその関係を提供する。ステップ１２０において設計木を形成した後，推敲はデジタル部ドライバを生成し，デジタル部ドライバの例は，上述のIEEE 1076.1-2007の１２章に記載されている。ステップ１３０において，推敲はまた，微分代数方程式（ＤＡＥ）の構成要素を表す行列又は一組の行列も形成し，ＤＡＥは設計の保存された部分及び／又は信号流部分用に関して解くことができる。
【００１７】
推敲はコンパイル物を生成し，コンパイル物は，シミュレータが設計の振舞をシミュレートするために用いることができる形式の設計の表現を含む。コンパイル物は，ＨＤＬコード，ネットリスト又はほかの表現のような設計の別の表現に含まれる情報に基づいて，推敲を通じて生成される。コンパイル物は，生成されると，シミュレータが利用し，又は以降，更に詳細に説明するとおり，設計変更を組み込むために修正できるように記憶される。
【００１８】
本発明の一実施形態は，障害シミュレータが，設計木，連立方程式又はコンパイル物のほかの構成要素を追加の推敲無しに修正できるようにする。設計木は，図４Ａに示され，以降より詳細に説明する多数の独立な部分木を含む。障害シミュレータは，設計に関係する変更に応答して，設計木の独立な部分木の少なくとも一つを修正してもよい。修正は，設計記述レベルで開始することによって，設計を再コンパイル又は再推敲する必要無しに，推敲後に行うことができる。設計は，障害分析シミュレーションのサイクルごと，又は回（ｒｏｕｎｄ）ごとに再推敲する必要が無いため，従来のシステムに比べてシステムのシミュレーション効率が向上する。
【００１９】
更に図１を参照すると，ステップ１４０において，障害シミュレータは，例えば，反復障害分析サイクルの途中で利用者に設計変更を促し，指定された設計変更を受信してもよい。一つの実施形態においては，分析は，任意選択で設計への変更を受信し，変更を行い，設計について部分分析を実行し，データを削減し，設計を変更無しで設計の元の状態にリセットする処理を含んでもよい。この処理要素は，すべての変更が適用され，結果が報告されるまで，一つの分析の一部として繰り返し実行してもよい。設計変更は，例えば，システムの問題又は障害になることがある状態をシミュレートするために，障害を表す要素の導入，要素パラメータの変更，及びデジタル信号の変更を含んでもよい。追加，又は代替としてほかの変更を実行してもよい。
【００２０】
一つの実施形態においては，いくつかの設計変更をグループとして同時に指定してもよく，多くのグループの設計変更を反復的に分析してもよい。一つの実施形態においては，複数の利用者指定グループ及び／又は複数の変更を障害シミュレータで受信して，バッチで変更を実行してもよい。分析サイクルは，分析の反復ごとに利用者入力を必要としないように実行される。別の実施形態においては，各分析反復が利用者指定変更を受信してもよいし，及び／又は障害シミュレータがバッチ変更又は個別変更の任意の組合せをサポートしてもよい。
【００２１】
さらに，設計への各グループの修正の適用は本質的に独立であるため，どのようにシミュレーションの実行に適用するかを管理することができる。いくつかの実施形態においては，より高速な計算を達成するために，設計のコピーを作成し，複数のプロセッサ／コア，計算グリッド内の複数の機械，及び／又はワールドワイドウェブクラウド内の処理環境に分析を分散させてもよい。例えば，分析時間を短縮するために，一つのグループの変更を一つのプロセッサで実行し，第２の別のグループの変更を別のプロセッサ上で時間的に並列又は同時に実行してもよい。
【００２２】
一つの実施形態においては，分析に際して，設計を修正するために変更を適用する前に，変更又はインスタンス化した木の元の現状を表すデータをメモリに記憶させ，及び／又は複数の変更を後で処理するために保存してもよい。適用する変更があるときは，ステップ１５０において部分的設計修正が実行される。部分的設計修正の例は，次に説明する図２Ａ〜２Ｅに示されており，設計木の複数の部分木のうち少なくとも一つに要素を挿入することを含む。一つの実施形態においては，構造変更は，設計内の要素のインスタンスを追加若しくは削除し，又は設計内のシステム変数の数を変更してもよい。一つの実施形態においては，別の要素の代わりに一つの要素をインスタンス化するパラメータを変更することは，旧要素の元のインスタンスを削除して，新しい要素のインスタンスを追加することと等価である。一つの実施形態においては，部分設計修正は，以降，「パラメータ変更」とも言う既存要素のパラメータの値を修正することを更に含んでもよい。挿入された要素は，アナログ部及び／又はデジタル部の振舞を含んでもよく，モデルライブラリから取得してもよい。
【００２３】
図２Ａは増幅器設計２００Ａの簡略化した例示回路図を示している。増幅器設計２００Ａは，演算増幅器，１ｋΩの抵抗及び１０ｋΩの抵抗を含む。演算増幅器は正入力，負入力及び出力を含む。１ｋΩの抵抗は，入力ｖｉｎと，演算増幅器の負入力との間に接続されている。１０ｋΩの抵抗は，出力ｖｏｕｔと，演算増幅器の負入力との間に接続されている。演算増幅器の正入力は接地に接続されている。
【００２４】
図２Ｂは，本発明の一実施形態による，図２Ａに示した回路図に対する直列修正箇所２００Ｂの簡略化した例示回路図を示している。図２Ｂに示された要素は，図２Ａに示された要素に類似している。しかし図２Ｂは，ポート（ｖｏｕｔ）と，該ポートに接続されたノード（演算増幅器出力）との間に直列接続で挿入された要素を含む修正箇所を含む。これは，「直列変更」と呼んでもよい。図２Ｂに示すように，この要素は，演算増幅器の出力ポートと，ｖｏｕｔ及び１０ｋΩの抵抗に接続されたノードとの間の１００ＭΩの抵抗である。演算増幅器の出力の１００ＭΩの抵抗は，ノードが，該ノードが接続されているポートから切り離されているかも知れないアナログ部の開放障害を表すことができる。アナログ部開放の例は電気的開回路であってよい。シミュレーションにおいては，解くことが困難な行列方程式を避けるために，アナログ部開放は１００ＭΩの抵抗のような高抵抗要素を用いて実施されることがある。
【００２５】
図２Ｃは，本発明の一実施形態による，図２Ａに示した回路図に対する並列修正箇所２００Ｃの簡略化した例示回路図を示している。図２Ｃに示された要素は，図２Ａに示された要素に類似している。しかし図２Ｃは，２以上の既存のノードの間に並列接続で挿入された要素を更に含む。以降，これを，「並列変更」とも言う。この実施形態においては，挿入された要素は，演算増幅器の出力ポートと接地ノードとの間の０．１ｍΩの抵抗である。この演算増幅器の出力ポートと接地との間の０．１ｍΩの抵抗は，今まで新規要素がなかった二つのノード間に新規要素が挿入された，アナログ部短絡障害を表すことができる。一例は，これも行列方程式が解に収束することを支援するために，低抵抗要素を用いる電気的短絡である。
【００２６】
実際には，要素の挿入は，図２Ｄ〜２Ｅに示すように，直列及び並列の修正の組合せであってよい。図２Ｄは，本発明の一実施形態による，図２Ａに示した回路に対する，２ポートと関係する直列修正箇所２００Ｄの簡略化した例示回路を示す。図２Ｄに示された要素は，図２Ａに示された要素に類似している。しかし図２Ｄは，演算増幅器の出力ポートと，ｖｏｕｔと，１０ｋΩの抵抗器とに接続された金属酸化物半導体（ＭＯＳ）トランジスタ素子を更に含む。ＭＯＳトランジスタのゲートは演算増幅器の出力ポートに接続されている。ＭＯＳトランジスタのソース及び本体はｖｏｕｔに接続されている。ＭＯＳトランジスタのドレインは１０ｋΩの抵抗器に接続されている。
【００２７】
図２Ｅは，本発明の一実施形態による，図２Ａに示した回路に対する，直並列修正箇所２００Ｅの簡略化した例示回路を示す。図２Ｅに示された要素は，図２Ａに示された要素に類似している。しかし図２Ｄは，演算増幅器の出力ポートと，１０ｋΩの抵抗器と，ｖｏｕｔとに接続されたバイポーラトランジスタ素子を更に含む。バイポーラトランジスタのエミッタは演算増幅器の出力ポートに接続されている。バイポーラトランジスタのベースは演算増幅器の負入力に接続されている。バイポーラトランジスタのコレクタは１０ｋΩの抵抗器に接続されている。
【００２８】
図１を参照すると，一つの実施形態においては，並列設計修正後に，ステップ１６０において部分分析（例えば，シミュレーション）が行われる。部分分析は，ＤＡＥを解くことと，デジタル部及び／又はイベントの振舞を起動することとを含む。部分分析の例は，静止状態，過渡状態，定常状態及び交流の分析を含んでもよい。一つの実施形態においては，部分分析は１又は複数の部分分析を実行することを含む。別の実施形態においては，時間と共に変化する影響が分析される，過渡状態シミュレーションを行う部分分析について，指定されたシミュレーション時間で，設計内の要素のパラメータを変更してもよい。
【００２９】
一つの実施形態においては，部分分析を行った後で，ステップ１７０において，部分分析のデータを分析（例えば，削減）して結果を形成してもよい。部分分析及びデータ削減の結果についての処理は，反復分析ループの一部として実行してもよい。一つの実施形態においては，部分分析から生成されたデータ及びデータ削減における処理から生成されたデータ双方は，共有データ記憶に書き込むための標準の慣例を用いて，共有コンテナに同時に書き込まれる。一つの実施形態においては，データ削減の後，ステップ１８０において，インスタンス化木の元の状態及び／又はメモリ内に前に記憶された複数の変更を用いて，反復分析ループに元の設計を復元してもよい。一つの実施形態においては，設計木の修正された部分木から変更を削除することによって，元の設計を復元することができる。
【００３０】
一つの実施形態においては，設計に適用する更なる変更が無くなったとき，ステップ１９０において，アナログ部方程式及びデジタル部ドライバ接続を更新し，部分分析の結合した結果から，報告を生成してもよい。一つの実施形態においては，設計に適用すべき変更がまだあるとき，アナログ部方程式及びデジタル部ドライバ接続を更新するステップは，次の部分設計修正まで遅延させてもよく，反復分析ループは，追加の変更を利用者に促すか，アプリケーション又はシミュレーションの設定に応じて，次の変更グループを自動的に実行することによって，反復してもよい。
【００３１】
図３は，本発明の一実施形態による，図１に示さいた部分設計修正１５０の実施形態の簡略化したフローチャートを示している。要素の挿入は，推敲中に生成されたインスタンス化木を修正することによって達成してもよい。ステップ３１０において，設計変更の種類が決定される。一つの実施形態においては，変更が，既存のノードとポートとの間に直列に挿入された要素を含むとき，新規要素を挿入する前に，ステップ３２０において，ポートが既存のノードから切り離される。一つの実施形態においては，例えばポートが入力信号であるとき，ポートは既存の入力ノードから切り離される。いくつかの実施形態においては，ポートが，入力及び出力双方をサポートする信号であるとき，直列変更振舞を規定又は実現しなくてもよい。代替として，いくつかの実施形態においては，ポートが入力／出力ポートであるとき，入力／出力ポートは既存の入力／出力ノードから切り離される。
【００３２】
一つの実施形態においては，ポートを既存ノードから切り離した後，ステップ３３０において新ノードが追加され，ポートに接続される。ステップ３４０において，新ノードがデジタル部であり，ポートが出力信号であるとき，ポートは駆動された信号として新ノードに接続してもよく，新ノードがデジタル部であり，ポートが入力信号であるとき，新ノードは駆動されたポートに接続してもよい。
【００３３】
一つの実施形態においては，直列変更又は並列変更いずれかについて，ステップ３５０において，新規生成されたノードと，ポートに前から接続されている既存のノードとの間に要素が挿入される。換言すれば，インスタンス化木は挿入された要素によって変形される。
【００３４】
例として，要素を挿入するとき，指定された二つのノード間の構文木に構成要素インスタンス化を生成してもよい。いくつかの実施形態においては，コンパイル物を表すファイルを編集してもよい。例えば，設計木に新インスタンスを挿入することによって，変更を実現するために，例えば，修正された構文木からバイトコードを生成してもよい。したがって，例えば，図形又はプログラムコードによる設計編集プログラムによって設計を修正し，次に修正された設計をコンパイルする代わりに，コンパイル物を表すファイルを編集することによって，コンパイル物を修正してもよい。インスタンス化木の変形は，例えば，新規生成されたバイトコードを実行することによって起動してもよい。ステップ３６０において，設計変更が登録され，ノード及びインスタンスがコンパイル物に追加される。ステップ３７０において，グループ内のすべての指定された変更が適用されるまで，処理を反復してもよい。
【００３５】
一つの実施形態においては，すべての変更をインスタンス化木に適用した後，設計のアナログ部分及びデジタル部分は別個に更新される。追加された要素のいずれかがアナログ振舞を含むとき，又は変更が設計のアナログ要素に関係するときは，ステップ３８０において，コンパイル物に関係するアナログ部方程式を，変更を反映するように更新してもよい。さらに，これらの方程式を解くために用いられた行列を通じて，変更を伝ぱさせてもよい。追加された要素のいずれかがデジタル部の振舞を含むとき，又は変更が設計のデジタル要素に関係するときは，ステップ３９０において，コンパイル物に関係するデジタル部ドライバ接続を更新し，変更に従って新ドライバを挿入してもよい。換言すれば，新規インスタンス内の駆動された信号は対応するドライバに接続され，新インスタンスのいずれの新ドライバも，自分が駆動するノードに接続される。結果は，設計を再編集又は再推敲することなく，すべての修正を含むインスタンス化木の更新版である。
【００３６】
図４Ａは，本発明の一実施形態による，推敲された設計を表す設計木の設計階層の簡略化した例示図形表現を示している。設計木は，設計根（ｄｅｓｉｇｎ  ｒｏｏｔ）と，モデルＦｏｏ．１を含む図の左側の破線で示したボックス４１０で示される第１部分木と，モデルＦｏｏ．２を含む図の右側の破線で示したボックス４２０で示される第２部分木とを含む。モデルＦｏｏ．１を含む第１部分木は，モデルＦｏｏ．２を含む第２部分木とは独立であってもよい。設計木内には，モデル“Ａ”の二つのインスタンス，例えば，双方とも同一のＨＤＬソースコードから導出されたインスタンスがある。このインスタンス化は双方とも，一つの時間内に実行され，二回インスタンス化される。Ｆｏｏは毎回別のパラメータでインスタンス化され，モデル“Ｂ”のインスタンス化を含む一つのインスタンスと，モデル“Ｃ”のインスタンス化を含む別のインスタンスとを含む。
【００３７】
図４Ｂは，本発明の一実施形態による，追加された要素を含む，図４Ａに示された設計僕の設計階層の図形表現の簡略化した例示ブロック図を示している。この例においては，インスタンス化木を変形させる処理は比較的単純であるが，設計記述レベルにおいて同一の変更を行うことに対する改善を示す。図４Ｂに示された要素は，図４Ａに示された要素と類似している。しかし図４Ｂは，種々のパラメータを含む“Ａ．５”のインスタンス化も含み，モデル“Ｂａｒ”のインスタンス化を含む一つのインスタンスになる。
【００３８】
図４Ａ及び４Ｂは，単に設計階層の図形表現に過ぎない。コンパイルされた設計データを修正するために，一つの実施形態においては，インスタンス“Ａ５”内にモデル“Ｂａｒ”をインスタンス化するために，バイトコードを生成し，実行してもよい。その結果，設計が再推敲及び再コンパイルされることが無いにもかかわらず，シミュレータ用の形式での設計の表現が変更を含む。
【００３９】
設計記述レベルで同一の変更を行うためには，“Ｆｏｏ．２”に用いるためにモデル“Ｆｏｏ”のコピーを作成し，モデル“Ｆｏｏ“の新規コピー内で用いるためにモデル“Ａ”のコピーを作成し，モデル“Ｂａｒ”のインスタンスを加えるために，モデル“Ａ“の新規コピーに変更を加える必要がある。明らかに，設計変更が多くなるほど，又は階層が深くなるほど，設計変更を修正することの複雑度は急速に増加する。別の方法では，モデル“Ｂａｒ”の振舞が無効になるようにパラメータを設定して，モデル“Ｂａｒ”のインスタンス化を“Ａ”のすべてのインスタンスについて行い，次にモデル“Ｂａｒ”の振舞を有効にするために，モデル“Ｂａｒ”のインスタンスのパラメータを修正するように，モデル“Ａ”を修正してもよい。本発明者の経験によれば，このようにインスタンスを加えることは，設計の性能に不利な影響を与える。したがって，設計木レベルで変更を行う障害シミュレーションは，設計記述レベルで変更を行うよりも，要素挿入作業をより効率よくする。
【００４０】
図５は，本発明の一実施形態による，図１に示した部分分析ステップ１６０の実施形態の簡略化したフローチャートを示している。部分分析は，時間ベースでパラメータを変更した過渡分析のようなシミュレーションサイクルを含んでもよい。ステップ５１０において，時間ベースのパラメータ変更のイベントが登録される。シミュレーション中，シミュレーション時間は，ステップ５２０において，イベント又はエラーの基準に基づいて次の時間ステップへ進む。
【００４１】
ステップ５３０において，例えば，現在のシミュレーション時間に基づいて，時間ベースのパラメータ変更が適用される。パラメータ変更は，インスタンス化木内のパラメータと関係するインスタンス内のパラメータの記憶された値を更新することによって，適用してもよい。変更されたパラメータに依存する方程式は更新してもよい。いくつかの実施形態においては，設計の構造に影響を与える変更は更新しない。パラメータを変更することのいかなる影響も，変更が行われなくなるまで伝ぱすることができる。例えば，いくつかの実施形態においては，変更されたパラメータによって影響を受けたＤＡＥの方程式は更新され，ＤＡＥを更新するように変更は適切に伝ぱする。そして，ＤＡＥに影響を与える変更は関係する行列に適用される。
【００４２】
ステップ５４０において，アナログ部及びデジタル部の振舞が処理される。ステップ５５０において，シミュレーションが完了していないときは，シミュレーション時間を次の時間ステップに進めて，ステップ５２０から処理を繰り返してもよい。シミュレーションが完了したとき，過渡分析は停止する。
【００４３】
次に，障害分析に部分設計修正を適用する例を，アナログ部開放，アナログ部短絡，パラメータ障害，及び停止（ｓｔｕｃｋ）した信号について説明する。これらの例において説明し，本明細書の別の場所で論じた原理及び態様は，多くのほかの状況に適用してもよい。
【００４４】
開放は，アナログ回路に直列に抵抗（又は均等物）を加える要素を挿入することによって実現してもよい。要素は，例えば，抵抗値によってパラメータ化してもよい。したがって，要素の抵抗値は，障害を無効及び有効の間で切り替えるように変更してもよい。抵抗値は，障害のオン／オフ状態に応じて指定され，一方は有効化された障害に対応し，他方は無効化された障害に対応する。抵抗値は，例えば，解の収束を改善するように設計の種類に適応するように構成可能であってよい。
【００４５】
短絡は，アナログ回路の並列に抵抗を加える要素を挿入することによって実現してもよい。要素は，例えば，開放について説明したように，障害が有効化又は無効化されたときの指定された値の間を変化する抵抗値でパラメータ化してもよい。
【００４６】
パラメータ障害は，変更する設計内の要素のパラメータと，変更される値とを指定することによって実現してもよい。障害が有効化されていないときは，障害を実現する前のパラメータの値を代わりに用いてもよい。
【００４７】
停止した信号は，駆動される信号と，駆動される信号を駆動する任意の信号との間の接続を削除することによって実現してもよい。さらに，指定された停止値（ｓｔｕｃｋ  ｖａｌｕｅ）で当該信号を駆動する新規要素を挿入してもよい。新規要素は停止値でパラメータ化してもよい。
【００４８】
開放，短絡及びパラメータ障害は，障害と関係する要素のパラメータ値を変更することによって，指定したときに有効化／無効化してもよい。変更の影響は設計全体に伝ぱし，設計のアナログ部分を解決するための用いられる方程式を表す行列が再構築される。パラメータ値の変更は，アナログ部解を計算するか，障害が有効化又は無効化されている時点からデジタル部イベントを伝ぱさせる前に適用してもよい。
【００４９】
一つの実施形態においては，停止した信号は，挿入された要素の開始終了パラメータを指定することによって指定したときに有効化又は無効化してもよい。この開始終了パラメータは，障害を有効化又は無効化するデジタル部イベントをスケジュールする時刻として，要素内で用いてもよい。
【００５０】
本発明の一実施形態による，ＶＨＤＬで書かれた抵抗器モデルの電気版の例を次に示す。
------------------------------------------------------------
-- An ideal resistor for fault insertion.
------------------------------------------------------------
-- This code was created by Synopsys, Inc. for use with SaberHDL(tm) and
-- other VHDL-AMS simulators.
-- Copyright 2013 - 2013.
------------------------------------------------------------
library ieee;
use ieee.electrical_systems.all;
entity r_fault_vhdl is
generic (rnom : real := 0.0); -- nominal resistance
port (terminal p, m : electrical);
end entity r_fault_vhdl;
architecture simple of r_fault_vhdl is
quantity v across i through p to m;
begin
assert rnom /= 0.0
report "rnom is zero"
severity error;
assert rnom >= 0.0
report "rnom is negative : " & real'image(rnom) & ". Use with caution"
severity warning;
i == v / rnom;
end architecture simple;
------------------------------------------------------------
-- This code is provided "AS is" and with no warranties express or implied.
-- Synopsys is not responsible for any liability arising from the use of this
-- code or the results obtained from it.
------------------------------------------------------------
【００５１】
本発明の一実施形態による，ＶＨＤＬで書かれたデジタル部障害モデルの例を次に示す。
------------------------------------------------------------
-- A model to drive a stuck signal. The input reads the old signal driver
-- and propagates the value when the fault is disabled.
------------------------------------------------------------
-- This code was created by Synopsys, Inc. for use with SaberHDL(tm) and
-- other VHDL-AMS simulators.
-- Copyright 2013 - 2013.
------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity stuck_fault_vhdl is
generic (tbegin: time  := -1 sec; tend :time := time'high; faultvalue :std_
logic:= '0');
port (input: in std_logic; output: out std_logic);
end stuck_fault_vhdl;
architecture simple of stuck_fault_vhdl is
signal faultIndicator :std_logic;
begin
p:process (input,faultIndicator) is
begin
if (now >= tbegin and now < tend) then
output <= faultvalue;
else
output <= input;
end if;
end process p;
p2: process is 
begin
if (tbegin >= 0 sec) then
faultIndicator <= '1' after tbegin, '0' after tend;
else
faultIndicator <= '1';
faultIndicator <= '0' after tend;
end if;
wait;
end process p2; 
end architecture simple;
------------------------------------------------------------
-- This code is provided "AS is" and with no warranties express or implied.
-- Synopsys is not responsible for any liability arising from the use of this
-- code or the results obtained from it.
------------------------------------------------------------
【００５２】
図６は，本発明の実施形態を使用することができる，システム工学の簡略化した例示Ｖモデルである。“Ｖ”の左半分の一例において，自動車システムの設計フローは，車両の要求条件のような要求条件，車両を運転する方法，車両が有することが望ましい安全特徴，製品が製造され，振る舞う方法の高レベルの要求条件，を決定することによって開始してもよい。次に，システム設計は，機能設計を満足するためにどのようなシステムを生成する必要があるかを決定してもよい。いくつかの明白なシステム設計作品は，ガソリンエンジン，電気式操舵（ｄｒｉｖｅ−ｂｙ−ｗｉｒｅ  ｓｔｅｅｒｉｎｇ），などを含む。次に，構成要素設計は，製品にどのような特定の構成要素及び電子回路が必要かをより細かな粒度で決定してもよい。構成要素設計は，例えば，エンジン自体の設計，電源の配線図の作成，などを含んでもよい。“Ｖ”の底辺で，構成要素実現は，仮想プロトタイプ及びソフトウェアを含む，ハードウェアのプロトタイプを作成してもよい。
【００５３】
システム検証に対応する“Ｖ”の右半分の同一の例において，構成要素が期待どおり動作することを確かめるためにプロトタイプが作成されると，個別の構成要素を試験することができる。問題をより容易に解決できるように，早期に問題を分離するために，構成要素毎にテストベンチを作成してもよい。次に，結合試験（ｉｎｔｅｇｒａｔｉｏｎ  ｔｅｓｔ）が構成要素をシステムに結合し，システムレベルで構成要素が動作することを検証してもよい。次に，製品システムが製品の要求条件を満たしていることを確かめるために，製品システム全体を試験してもよい。障害シミュレータは，このシステム工学のＶモデルの構成要素試験，結合試験，及び／又はシステム試験の各部に関係することができる。一つの実施形態においては，ここに説明した１又は複数の特徴を有する障害シミュレータは，仮想ハードウェアプロトタイプ上で動作し，構成要素及び構成要素のシステムの振舞を評価するために，ソフトウェア制御システムと相互運用することもある。
【００５４】
図７は，本発明の実施形態を組み込むことができる計算機システムのブロック図である。図７は，単に本発明を組み込んだ実施形態を示すものに過ぎず，本願請求項に示された本発明の範囲を制限するものではない。当業者であれば，ほかの変形物，修正物及び代替物を認識するであろう。
【００５５】
一つの実施形態においては，計算機システム７００は通常，モニタ７１０と，計算機７２０と，利用者出力装置７３０と，利用者入力装置７４０と，通信インタフェース７５０と，これらの類似物とを含む。
【００５６】
図７に示すように，計算機７２０は，バスサブシステム７９０を介していくつかの周辺装置と通信するプロセッサ７６を含んでもよい。これらの周辺装置は，利用者出力装置７３０と，利用者入力装置７４０と，通信インタフェース７５０と，ランダムアクセスメモリ（ＲＡＭ）７７０及びディスクドライブ７８０のような記憶サブシステムと，を含んでもよい。
【００５７】
利用者入力装置８３０は，計算機システム７２０に情報を入力するためのすべての選択可能な種類の装置及び機構を含む。これらは，キーボードと，キーパッドと，表示装置に組み込まれたタッチスクリーンと，音声認識システムのような音響入力装置と，マイクロホンと，ほかの種類の入力装置と，を含んでもよい。種々の実施形態において，利用者入力装置７３０は通常，計算機マウスと，トラックボールと，トラックパッドと，ジョイスティックと，無線リモコンと，描画タブレットと，音声コマンドシステムと，視線追跡システムと，これらの類似物と，として実現される。利用者入力装置７３０は通常，利用者がモニタ７１０上に現れるオブジェクト，アイコン，文字，等を，ボタンのクリックなどのようなコマンドを介して選択できるようにする。
【００５８】
利用者出力装置７４０は，計算機７２０から情報を出力するためのすべての選択可能な種類の装置及び機構を含む。これらは，表示装置（例えば，モニタ７１０），音響出力装置のような非視覚提示装置，等を含んでもよい。
【００５９】
通信インタフェース７５０は，ほかの通信網及び装置とのインタフェースを提供する。通信インタフェース７５０は，ほかのシステムからデータを受信し，ほかのシステムへデータを送信するためのインタフェースの働きをする。通信インタフェース７５０は通常，イーサネット（登録商標）カードと，モデム（電話，衛星，ケーブル，ＩＳＤＮ）と，（非同期）デジタル加入者線（ＤＳＬ）ユニットと，ＦｉｒｅＷｉｒｅ（登録商標）インタフェースと，ＵＳＢインタフェースと，それらの類似物と，を含む。例えば，通信インタフェース７５０は，計算機網，ＦｉｒｅＷｉｒｅ（登録商標）バス，等と結合することができる。ほかの実施形態においては，通信インタフェース７５０は，計算機７２０のマザーボードに物理的に統合されていてもよいし，ソフトＤＳＬ等のソフトウェアプログラムであってもよい。
【００６０】
種々の実施形態において，計算機システム７００はまた，ＨＴＴＰ，ＴＣＰ／ＩＰ，ＲＴＰ／ＲＴＳＰ，等のような，通信網を介した通信を可能にするソフトウェアを含んでもよい。本発明の代替実施形態においては，例えば，ＩＰＸ，ＵＤＰ，等の別の通信ソフトウェア及び転送プロトコルも用いてよい。
【００６１】
いくつかの実施形態においては，計算機７２０は，プロセッサ７６０として，１又は複数のＩｎｔｅｌ社のＸｅｏｎ（登録商標）マイクロプロセッサを含む。さらに，一つの実施形態においては，計算機７２０はＵＮＩＸ（登録商標）ベースのオペレーティングシステムを含む。
【００６２】
ＲＡＭ７７０及びディスクドライブ７８０は，実行可能計算機コード，人間可読コード，等を含む，本発明の実施形態のようなデータを記憶するように構成された有形媒体の例である。ほかの種類の有形媒体には，フレキシブルディスク，着脱可能ハードディスク，ＣＤ−ＲＯＭ，ＤＶＤのような光記憶媒体，バーコード，フラッシュメモリ，リードオンリメモリ（ＲＯＭ），バッテリバックアップ揮発性メモリのような半導体メモリ，ネットワーク層記憶装置，等が含まれる。ＲＡＭ７７０及びディスクドライブ７８０は，本発明の機能を提供する基本プログラム及びデータ構造体を記憶するように構成してもよい。
【００６３】
本発明の機能を提供するソフトウェアコードモジュール及び命令は，ＲＡＭ７７０及びディスクドライブ７８０に記憶してもよい。これらのソフトウェアモジュールはプロセッサ７６０で実行することができる。ＲＡＭ７７０及びディスクドライブ７８０はまた，本発明に従って用いられるデータを記憶するリポジトリを提供してもよい。
【００６４】
ＲＡＭ７７０及びディスクドライブ７８０は，プログラムの実行中に命令及びデータを記憶するための主ランダムアクセスメモリ（ＲＡＭ）と，固定された命令が記憶されているリードオンリメモリ（ＲＯＭ）とを含むいくつかのメモリを含んでもよい。ＲＡＭ７７０及びディスクドライブ７８０は，プログラム及びデータファイル用の永続（不揮発性）記憶を提供するファイル記憶サブシステムを含んでもよい。ＲＡＭ７７０及びディスクドライブ７８０はまた，着脱可能フラッシュメモリのような着脱可能記憶システムを含んでもよい。
【００６５】
バスサブシステム７９０は，計算機７２０の種々の構成要素及びサブシステムが，互いに意図したように通信できるようにする機構を提供する。バスサブシステム７９０は単一のバスとして概略的に示されているが，バスサブシステムの代替実施形態は複数のバスを利用してもよい。
【００６６】
図７は，本発明を実現することができる計算機システムを表している。当業者には，多くのほかのハードウェア及びソフトウェアが本発明と共に用いるのに適していることは明らかであろう。例えば，計算機はデスクトップ型，携帯型，ラック搭載型，又はタブレット型の構成であってもよい。代替として，計算機は一連のネットワーク化された計算機であってもよい。さらに，Ｐｅｎｔｉｕｍ（登録商標）又はＩｔａｎｉｕｍ（登録商標）マイクロプロセッサ，Advanced Micro Devices社のＯｐｔｅｒｏｎ（商標）又はＡｔｈｌｏｎＸＰ（商標）マイクロプロセッサ，等のほかのマイクロプロセッサの利用も考えられる。さらに，Microsoft社のＷｉｎｄｏｗｓ（登録商標），ＷｉｎｄｏｗｓＸＰ（登録商標），ＷｉｎｄｏｗｓＮＴ（登録商標），Sun Microsystems社のＳｏｌａｒｉｓ（登録商標），Ｌｉｎｕｘ（登録商標），Ｕｎｉｘ（登録商標），等のほかの種類のオペレーティングシステムも考えられる。更に別の実施形態においては，上述の技法をチップ又は補助処理ボード上で実現してもよい。
【００６７】
本発明の種々の実施形態は，ソフトウェア，ハードウェア又は双方の組合せによる論理の形態で実現することができる。論理は，計算機システムのプロセッサに，本発明の実施形態において開示されたステップの集合を実行するように指示するようにした命令の集合として，計算機可読又は機械可読記憶媒体に記憶してもよい。論理は，情報処理装置に，本発明の実施形態において開示されたステップの集合を自動的に実行するように指示するようにした計算機プログラム製品の一部を形成してもよい。本明細書において提供された開示及び教示に基づいて，当業者であれば，例えば，計算機で実行可能な命令を生成するためにソースコードを書き，そのソースコードをコンパイルすることによって，本発明を実現するほかの手段及び／又は方法を理解するであろう。
【００６８】
したがって，本明細書及び図面は制限的ではなく例示的に考えるべきものである。しかし，本願請求項に記載された本発明の広範な精神及び範囲から逸脱することなく，種々の修正物及び変更物を作成できることは明らかである。さらに，本発明の技法及びシステムは，保存された信号流と，イベント又はデジタル部連立方程式との組合せによって特徴づけられたシステムを設計，試験及び／又は製造する広範な電子設計自動化（ＥＤＡ）ツール及び方法論と共に用いるのに適している。したがって，本発明の範囲は上述の説明によって決定されるのではなく，本願の係属中の請求項及びそのすべての範囲又は均等物によって決定することが望ましい。
【図１】
2015122065.tif 000003
【図２Ａ】
2015122065.tif 000004
【図２Ｂ】
2015122065.tif 000005
【図２Ｃ】
2015122065.tif 000006
【図２Ｄ】
2015122065.tif 000007
【図２Ｅ】
2015122065.tif 000008
【図３】
2015122065.tif 000009
【図４Ａ】
2015122065.tif 000010
【図４Ｂ】
2015122065.tif 000011
【図５】
2015122065.tif 000012
【図６】
2015122065.tif 000013
【図７】
2015122065.tif 000014
【外国語明細書】
2015122065000001.pdf