JP2017516224A - 電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法 - Google Patents

電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法 Download PDF

Info

Publication number
JP2017516224A
JP2017516224A JP2016567188A JP2016567188A JP2017516224A JP 2017516224 A JP2017516224 A JP 2017516224A JP 2016567188 A JP2016567188 A JP 2016567188A JP 2016567188 A JP2016567188 A JP 2016567188A JP 2017516224 A JP2017516224 A JP 2017516224A
Authority
JP
Japan
Prior art keywords
electronic design
computer
verification
instrumentation
receiving
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
Application number
JP2016567188A
Other languages
English (en)
Inventor
ジェームズ、フェリシア
クラースニッキー、マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zipalog Inc
Original Assignee
Zipalog Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US14/707,723 external-priority patent/US9875325B2/en
Application filed by Zipalog Inc filed Critical Zipalog Inc
Publication of JP2017516224A publication Critical patent/JP2017516224A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法は、少なくとも1つのアナログ部分から少なくとも部分的に構成される電子的設計の表現のネットリストを少なくとも1つパースすることと、少なくとも1つのネットリストに基づいて少なくとも1つの計装ポイントを決定することと、少なくとも1つの計装ポイントに基づいて少なくとも1つの計装されたネットリストを生成することと、少なくとも1つの計装されたネットリストを利用してアナログ検証カバレッジを決定することとを備える。

Description

[関連出願への相互参照]
本願は、米国仮出願第61/991,069号明細書(2015年5月9日に出願され、「COMPUTER IMPLEMENTED SYSTEM AND METHOD OF IDENTIFICATION OF USEFUL UNTESTED STATES OF AN ELECTRONIC DESIGN」と題するもの。代理人整理番号ZPLG-32197)の利益を主張する。当該出願の明細書は、その全体が参照により本明細書に援用される。
[背景]
本方法およびシステムは、概して、アナログおよび混合信号集積回路の検証に関する。本方法およびシステムは、検証の完全性を評価し、有用な未テスト状態(useful untested states)を特定するために電子的設計を計装すること(instrumenting)においてとくに有用であるが、これに限られない。
電子的設計自動化(electronic design automation)(EDA)は、電子的ブロックを設計するためのソフトウェアである。いくつかの広い種類の電子的信号と、コンポーネントおよびブロックとが存在する(デジタルと、アナログと、混合信号と呼ばれるデジタルおよびアナログの混合物と)。電子的設計は概して回路情報の以下のレベルのうち少なくとも1つを含む。すなわち、システムレベル、アーキテクチャレベル、データフローレベル、電気的レベル、デバイスレベル、テクノロジーレベル、および/または同様のものである。
デジタル信号は、離散的な入出力値「0」および「1」(離散的な時刻値において発生し、典型的にはクロック信号に結び付けられる)を有する。デジタル信号を入出力するデジタルコンポーネントは、典型的には、静的なピン出力および相互作用プロトコルを有する。デジタルコンポーネントを備えるデジタルブロックは、しっかりと確立されしっかりと文書化された物理的レイアウトおよび電気的相互作用を有する。デジタルブロック用のシミュレータは、離散時間イベント駆動型のシミュレータである。
アナログ信号は、概して、時間とともに変化し得る連続的な入出力値を有する。アナログコンポーネントは、典型的には、入力、出力、トリガ、バイアス、等を変更するためにカスタマイズ可能なレイアウトを有する。したがって、カスタマイズによっては、アナログコンポーネントを備えるアナログブロックは、デジタル回路ほどしっかりと確立されるかまたはしっかりと文書化された物理的レイアウトや電気的相互作用を有しない場合がある。アナログブロック用のシミュレータは、概して、連続時間領域シミュレータを必要とする。
混合信号ブロックは、シミュレートされるコンポーネント内のデジタル信号ブロックおよびアナログ信号ブロックの組み合わせである。シミュレーションのために利用可能な最も一般的なオプションは、コンポーネントをアナログブロックのグルーピングとしてシミュレートすることか、または、アナログコンポーネント/ブロックおよびデジタルコンポーネント/ブロックを個別に解析して、デジタル領域とアナログ領域との境界における入出力を領域間通信のために翻訳することである。
EDA内では、回路レビューの、2つの大きなしばしば関連するカテゴリ(シミュレーションおよび検証)がある。シミュレーションは、回路の行動(behavior)を予測する数的解の集合である。検証は、関連する条件のもとで(機能的検証)、および、製造プロセスのバリエーションにわたって(パラメータ的検証)、回路の行動を記述することのシステマティックな追求である。したがって、検証は、概して、シミュレーションに比べて、回路、その動作条件、製造動作バリエーションの、はるかに広範囲なレビューを必要とする。回路の機能性を、いかなる実質的程度にも検証することなく、多数回のシミュレーションを実行することが可能である。検証は、ある範囲の条件にわたる回路性能の評価および回路の行動の数学的モデル化である。究極的には、検証の成功の測度は、回路設計がいかにうまく回路仕様に適合しているかを報告することである。アナログおよび混合信号検証メソドロジーは、増大し続けるアナログおよび混合信号回路の、複雑さ、コスト、および計算的要求についていくのに苦労している。
検証テストケースの数および複雑さは、アナログおよび混合信号設計の複雑さとともに増大する。加えて、回路のサイズが増大するにつれて、シミュレーションスピードが低下し、メモリ使用量が増加する。このように、回路を検証するための計算処理パワーは、回路の複雑さとともに劇的に増加する可能性がある。検証は、通常、スケジュールの遅延がもっとも深刻だと思われる設計サイクルの最後に行われるということが、この問題をより苦痛あるものとしている。このように、検証は、概して設計サイクル全体のうち小部分のためにかなりの量のシミュレーション処理パワーを必要とする活動であり、したがって、タイム・ツー・マーケット要求(time to market demand)を満たすために、概して検証資源の効率的な使用が必要とされる。
今日の複雑な検証ソリューションは、関連する条件下で回路の動作が完全かつ効率的に検証されることを保証するための検証活動に具体的にエンジニアリングを絞っている。この絞りこまれたアナログおよび混合信号検証は、デジタル検証よりもはるかに、手作業・経験により駆動される。この散発的な対話式アナログ検証は、会社にリスクを残す。本開示により、より高い抽象度で検証タスクを定義できる可能性がある。本開示により、刺激または刺激主張(stimulus assertion)と、出力測定値または出力主張(output assertion)との間の複雑な関係を効率的に捕捉できる可能性がある。本開示により、トランジスタレベル回路、行動的モデル(behavioral model)をもって実装された回路、または、行動的モデルとトランジスタレベル実装との組み合わせを含む回路のテストが可能になる可能性がある。アナログおよび混合信号回路をモデル化するために現在用いられる方法は、正当な状態を行使する(exercise the valid states)ための検証実行回数を最小化するためには効率的ではない。これは、少なくとも部分的には、ネットリストは、行使される状態を効率的に記録するためには不十分に計装されているという事実に起因する。ネットリストは、電子的設計の接続性を記述する。電子的設計の正当な有用な未テスト状態を特定するためにネットリストを計装することが、長期にわたって要請されていた。
アナログおよび混合信号回路の頑強な検証は、概して、シミュレーションを加速するために用い得るテストベンチ、性能評価ルーチン、およびマクロモデルへのかなりの投資を必要とする。この付帯事実の複雑さは、検証すべきアナログおよび混合信号集積回路の複雑さにつれて増大する。設計チームが設計資源を追加すると、それは設計のコストに加えて検証資源の追加も必要とする。会社が製品を市場に出そうと努力している時には、設計サイクルの最後に課される不可避の時間的制約に起因して、これらの資源の効率的な使用が最優先事項となる。
電子製造業界における現在の技術の軌跡は、ますます単一チップ設計(システムズ・オン・ア・チップ(Systems on a Chip)(SoC)または複数のチップが1つのパッケージに含まれるマルチチップモジュール(MCM)と呼ばれる)に向かいつつある。ほとんどのシステムズ・オン・ア・チップおよびマルチチップモジュールは、概して、あるレベルの混合信号検証を必要とする。このことは、混合信号設計がサイズおよび複雑さにおいて増大するにつれて、ファーストパス設計(first pass design)の成功を保証し、タイム・ツー・マーケットを短縮するために、検証に追加の負担を発生させる。アナログおよび混合信号ASIC設計の複雑さは、ムーアの法則に従ってきたが、設計検証における技術革新は概してそうではない。
本開示の、ネットリストを計装する方法は、正当な状態をテストするために必要最小限の検証実行を確実にするために、貴重な設計時間および計算資源と、高価なシミュレータ資源とに具体的に焦点を当てることができる。本方法は、大局的な検証の評価をより効率的にする。結果として得られる最小化された実行リストは、より効率的な資源の利用を可能にする。
本開示は、アナログおよび混合信号(A/MS)特定アプリケーション向け集積回路(ASIC)のための電子的設計のネットリストを計装することに関する。アナログおよび混合信号集積回路は、多くの現代的な電子的デバイスに存在し、それらの回路は製造の前にシミュレーションを介して検証される必要がある。
[概要]
本開示の、電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法の単なる一例の実施の形態およびその態様によれば、少なくとも1つのアナログ部分から少なくとも部分的に構成される電子的設計の表現の、少なくとも1つのネットリストをパースすることと、少なくとも1つのネットリストに基づいて少なくとも1つの計装ポイントを決定することと、少なくとも1つの計装ポイントに基づいて少なくとも1つの計装されたネットリストを生成することと、少なくとも1つの計装されたネットリストを利用してアナログ検証カバレッジを決定することとを備えるが提供される。
本開示は、以下の詳細な説明および図面を考慮することにより、より明確に理解される。
本開示の事例を実施するのに適したコンピュータシステムを示すブロック図である。 本開示の事例を実施するのに適したコンピュータネットワークシステムを示すブロック図である。 低電圧損失(LDO)回路の例を示す図である。 増幅回路の例を示す図である。 増幅器用のテストベンチピン出力を示す図である。 一般的な階層構造の例を示す図である。 インスタンスパースされたテスト階層構造例を示す図である。 電源管理集積回路用の第1のテストベンチ例を示す図である。 電源管理集積回路用の第2のテストベンチ例を示す図である。 電源管理集積回路用の第3のテストベンチ例を示す図である。 簡単なMOSFET電流シンクの例を示す図である。 カスケードMOSFET電流シンクの例を示す図である。 電子的設計のマルチプレクサおよびオペアンプの例を示す図である。 電子的設計のBレベル例を示す図である。 電子的設計のDレベル例を示す図である。 電子的設計の階層構造の例を示す図である。 電子的設計のEレベル例を示す図である。 電子的設計の有用な未テスト状態を特定するコンピュータ実装される方法の第1の例を示す図である。 電子的設計の有用な未テスト状態を特定する第1の例が追加で備えてもよい追加ステップを示す図である。 電子的設計の有用な未テスト状態を特定する第1の例が追加で備えてもよい追加ステップを示す図である。 電子的設計の有用な未テスト状態を特定するコンピュータ実装される方法の第2の例を示す図である。 電子的設計の有用な未テスト状態を特定する第2の例が追加で備えてもよい追加ステップを示す図である。 電子的設計の有用な未テスト状態を特定するコンピュータ実装される方法の第3の例を示す図である。 電子的設計の有用な未テスト状態を特定する第3の例が追加で備えてもよい追加ステップを示す図である。 電子的設計の有用な未テスト状態を特定するコンピュータ実装される方法の第4の例を示す図である。 電子的設計の有用な未テスト状態を特定する計装の第4の例が追加で備えてもよい追加ステップを示す図である。 電子的設計の有用な未テスト状態を特定するための過渡的でないコンピュータ可用媒体上に実施されるコンピュータプログラム製品の第5の例を示す図である。 電子的設計の有用な未テスト状態を特定するための過渡的でないコンピュータ可用媒体上に実施されるコンピュータプログラム製品の第5の例が追加で備えてもよい追加ステップを示す図である。 電子的設計の有用な未テスト状態を特定するコンピュータベースのシステムの第6の例を示す図である。 電子的設計の有用な未テスト状態を特定するためのシステム例の図である。
詳細な説明中の参照符号は、様々な図中の類似の参照符号に対応する(そうでないと断った場合を除く)。書面中で用いられる記述的および方向的用語(右、左、後、頂点(top)、底、上側、側面、他)は、とくに断らない限り、紙上に配置された通りの図面自体を参照し、本開示の物理的限定を参照しない。各図はスケールを示すものではなく、図示され論じられる例の特徴のいくつかは、本開示の原理および特徴と、利点とを例示するために、単純化または誇張されている。
[詳細な説明]
本開示の特徴および他の詳細は、以下に、添付図面への参照とともにより詳細に記載される。添付図面には、開示される事項の様々な例示が示されおよび/または記載される。本明細書に記載される特定の例は、本開示の限定としてではなく、例として示されるということが理解される。さらに、開示される事項は、本明細書に記載されるいずれかの例に限定されると考えるべきではない。これらの例は、本開示が完全かつ完結したものとなり、開示される事項の範囲を当業者に十分に伝えるように提供される。本開示の本質的特徴は、本開示の範囲から逸脱することなく、様々な例において採用し得る。
本明細書において用いられる用語法は、特定の例を記述することのみを目的としており、開示される事項の限定としては意図されていない。全体を通して、類似した番号は類似した要素を参照する。本明細書において用いられる用語「および/または(and/or)」は、関連して列挙される事項のうち1つ以上の任意の組み合わせすべてを包含する。また、本明細書において用いられる単数形「a」、「an」および「the」は、複数形も同様に含むことを意図される(ただしそうでないことを文脈が明確に示す場合を除く)。さらに、本明細書において用いられる場合、用語「備える」("comprises" および/または "comprising")および「含む」("comprises" および/または "comprising")は、記述された特徴、整数(integers)、ステップ、動作、要素、および/またはコンポーネントの存在を特定するが、他の特徴、整数、ステップ、動作、要素、コンポーネント、および/またはこれらの群のうち1つ以上の存在または追加を排除しないということが理解される。また、本明細において用いられる相対的用語(第1の、第2の、頂点(top)、底(bottom)、左、右、等)は、1つの主体または動作を別の主体または動作と区別するためだけに用いられる場合があり、必ずしもそのような主体または動作の間の実際の関係または順序を要求または示唆するものではない。
アナログおよび混合信号IC設計への参入障壁のコストは、とくに自社工場を持たない会社(パッケージされたASICの形で、または顧客のシステムズ・オン・ア・チップ(SoCs)またはマルチチップモジュール(MCMs)に集積されるべきモジュールの形で、ASIC知的財産を開発する会社)に特有のものである。たとえば、自社工場を持たない設計センターに5人のIC設計エンジニアが配置されている場合には、そのチームに設計ツールを持たせることは、人員を4倍にするのと財務的に等価である。これは、EDAツールを所有することの高いコスト(毎年のライセンス料、設置およびサポート、トレーニング等に限られない)に起因する。正当な状態の検証データを捕捉するためのネットリストの計装を通じてシステムの使用を縮小することは、より効率的な資源配置を可能にする。
アナログおよび混合信号検証は、時間・計算集約的である。回路が仕様に合わせて機能することを保証するためには、概して、様々な条件および様々な製造条件における様々な入力に対する回路の機能性をシミュレートすることが必要となる。
電子的設計のシミュレーションを実行する前に、電子的設計は、電子的設計の接続性を記述するネットリストへの変換を受ける。この回路の接続性を記述するネットリストは、、回路に関するメタデータは含まない。
本開示の、電子的設計の計装のシステムおよび方法は、検証に関するメタデータを捕捉するためにネットリストを計装する。捕捉されたメタデータにより、仕様からの正当な状態の生成とともに、電子的設計の検証の完了を評価できるようになる。
AMSTTM(アナログ混合信号テスト)(Analog Mixed Signal Test)は、アナログ/混合信号(A/MS)刺激と、主張および出力測定値とを特定するためのモジュールである。AMSTは、刺激および出力主張の間の複雑な関係を効率的に捕捉することができる。AMST言語(AMSTLTM)において特定される検証モデルは、比較的高レベルのコマンド(続いてVerilog−A/AMSへと翻訳される)を捕捉する。それぞれ、Verilog−A、Verilog−AMS、VHDL−AMS、SystemC−AMS等(アナログおよび混合信号を定義するための標準化された言語である)である。このコードは、アナログシミュレータのための直接分岐貢献ステートメントをサポートする任意の言語標準規格を生成するために用いることもできるということが想像される。
AMSTLは、結果として生じる翻訳されたコードが、回路の行動的モデルにおいて用いられるか、テストハーネスにおいて用いられるかに関わらず、IBCSを伴う比較的高レベルのコマンドを捕捉するために用いることができる。AMST内の主張を捕捉すること(回路の行動的モデルにおけるものではなく)の価値は、回路の表現に関わらず、検証コマンドを再利用できるということである。たとえば、図17において、AMP_AMSTブロックは、オペアンプおよびマルチプレクサが、トランジスタレベルの結線図として表現されているか、行動的モデルとして表現されているかに関わらず、同じコマンドおよび主張を実行する。このときAMP_AMSTは、これらの回路とともに再利用可能な検証知的財産(VIP)としての役割を果たす。このコンセプトは、第三者にアナログ設計知的財産(IP)を提供する場合を考えると、とくに貴重となる。購入者は、購入したIPとともにより大きなSOC内に埋め込むことができる検証IPを有する。このVIPは、購入した設計IPが不適切に使用されるリスクを低減する。検証IPは、デジタル回路およびトップレベルの入出力について証明されたコンセプトであるが、埋め込まれたアナログIPとともに提供することはこれまで実用的ではなかった。
言語AMSTLは、アナログ混合信号集積回路設計について、行動、刺激、出力、測定値、等を記述することを意図しており、アナログシミュレータに入力することを意図される標準的なハードウェア記述言語において利用可能なものより高いレベルのコンストラクトを提供する。利点の1つは、AMSTLにおいてIBCSが利用可能であることに基づく効率の改善である。加えて、AMSTLコードは、任意の所望の標準言語を出力するためにパースすることができる。モジュールAMSTは、アナログ混合信号検証知的財産の行動的モデルであり、設計内の階層構造の任意のレベルに存在するよう意図される。モジュールは、それが監視している、刺激している、および/または、評価しているIPとともに存在することができる。モデルの出力形式(Verilog−A、Verilog−AMS、VHDL−AMS、等)は、ネットリストを介して、アナログまたは混合信号シミュレータに入力可能である。
ネットリストは、
1)コンポーネントの記述(たとえば、トランジスタ、抵抗器、コンデンサ、行動的モデル、AMST、デジタルゲート)および設計を組み立てるコンポーネントの属性(たとえばPMOS2はW=1umを有する)
2)設計の接続性(たとえば、PMOS1のドレインはNMOS2のゲートへの接続である)
3)特定のシミュレーションタスクに対する設計の階層構造の構成(たとえば、PLL1はモデルとして表現され、LDO3はトランジスタレベルで表現される)
4)シミュレーションタスクの構成(シミュレーションタイプ(たとえば過渡シミュレーション)、持続時間(たとえば2ms)、許容度設定(たとえばiabstol<10e−10)、デジタルパーティションとアナログパーティションとの間のインタフェース要素の構成、および、出力信号選択を含む)
5)検証データベースにおける任意の情報(予測性能値、信号遷移、信号形状、デューティサイクル、等)(検証活動に関する任意の信号または要素のもの)
を含むがこれらに限定されないシミュレーションタスクおよび検証プロジェクトに関する情報を含む1つ以上のデータベースの表現である。
ネットリストは、シミュレーションへの入力である。シミュレーションの目的は、ネットリストにおいて指定される刺激条件および精度基準のもとで、ネットリストに記述される回路の行動を予測することである。a)集積回路(IC)設計のためのフォトマスクは非常に高価であり、b)ICの製造は長時間を要し、c)IC内部の信号を調べることは極めて困難であり、d)現代のIC設計のブレッドボーディングは非実用的であるので、シミュレーションは集積回路(IC)設計の必須部分である。シミュレーションはシミュレータで実行される。高レベルでは、集積回路をシミュレートする手法が3つあり、すなわち、SPICEレベルシミュレーション、デジタルレベルシミュレーション、および、混合モードシミュレーション、である。SPICEレベルシミュレータは、ネットリストを、暗黙積分法(implicit integration method)、ニュートン法、およびスパース行列技法(sparse matrix technique)を用いて解かれる連立非線形微分代数方程式へと縮小する。SPICEレベルシミュレータは、絶対的または相対的許容度の組のもとで、電荷(charge)を保存し、キルヒホッフの電流法則およびキルヒホッフの電圧法則を満たす。デジタルシミュレータは、ネットリストを、離散的なイベントによってトリガされるブール関数の組へと縮小する。デジタルシミュレータは、電荷を保存せず、キルヒホッフの電流法則およびキルヒホッフの電圧法則を満たさない。しかしながらそれらは、はるかに大規模な回路を、より高い抽象度のレベルでシミュレートできる。混合モード(AMS)シミュレーションは、SPICEレベルシミュレータをデジタルシミュレータと組み合わせる。このタイプのシミュレーションでは、設計の一部をシミュレートするためにSPICEレベルシミュレータが用いられ、SPICEレベルパーティション内のコンポーネントのネット電圧および端子電流を予測し、一方で、デジタルパーティション内のコンポーネントのデジタル出力を予測するためにデジタルシミュレータが用いられる。混合モードシミュレーションでは、SPICEレベルパーティションとデジタルレベルパーティションとは、インタフェース要素(基本的レベルでは、(SPICEパーティションからデジタルパーティションへと向かう信号については)理想化された1ビットアナログ・デジタル変換器であり、(デジタルパーティションからSPICEパーティションへと向かう信号については)1ビットデジタル・アナログ変換器である)で接続される。
シミュレーションは、以下の出力を生成し得る。
1)ネット電圧および端子電流の連続時間/連続値波形
2)論理ネット出力の離散時間/離散値デジタル波形
3)ネットリストに含まれていた任意のAMSTモジュールを含む任意の行動的モデルによって書かれた任意のデータ
4)主張違反メッセージ
5)モデル行動についてのデバッグ情報、回路収束困難度、等
シミュレーションからのこれらの出力は、1つ以上のデータベースに記憶される。これらの出力は、後に、回路の安定性を評価するために用いられる。このプロセスは手動であってもよい。設計者は、たとえば、波形をグラフィカル波形ビューワーでレビューすることができる。このプロセスは自動化されてもよい。ソフトウェアプログラムは、スペックコンプライアンス行列(回路シミュレーションにおいて満足された設計目的の組および失敗した設計目的の組を要約する)を構築するために、波形結果およびAMST出力をプログラムに従って解析することができる。
計装ポイントは、
1)ネットリスト内の任意のコンポーネント(たとえば、トランジスタ、抵抗器、コンデンサ、行動的モデル)、または、
2)設計の接続性のなんらかの態様を定義する任意のネット、または、
3)1つ以上のコンポーネントおよびゼロ以上のネットからなる任意の組、または、
4)ゼロ以上のコンポーネントおよび1つ以上のネットからなる任意の組、
であってもよい。
計装ポイントは、以下の3つの方法の1つで作成することができる:
1)システムのユーザにより手動で指定される。この使用シナリオでは、ユーザが計装ポイントを手動で特定する。これはユーザの概略捕捉環境(schematic capture environment)から達成可能である。簡単な例として、ユーザは計装ポイントとして2つのネットを選択することができる。計装モジュール(AMSTと呼ばれる)は、Verilog−A/AMSまたは他の任意のハードウェア記述言語において実装可能である。計装モジュールにおいて、ユーザは、形状、行動、または2つのネット間の伝達関数(望ましいまたは望ましくないモードまたは動作を特定する)を指定することができる。多数のネットからなるより複雑な例が図17に示される。指定されれば、ソフトウェアはこれらの望ましいまたは望ましくない行動のカバレッジを追跡することができる。
2)プログラムに従って記述されたパターンからプログラムに従って特定される。アナログおよび混合信号回路は、繰り返すトポロジカルパターンを有することが頻繁にある(図11のM1およびM2からなる電流ミラー等)。このトポロジーでは、特定の条件が満たされれば、M2を通る電流はI_REFの固定比率となる。これらのトポロジーは、プログラムに従って特定可能であり、これらのトポロジーに対する主張またはAMSTは自動的に生成可能であり、これらの主張またはAMSTは、そのトポロジカルパターンに対するカバレッジを測定するために自動的に計装可能である。回路機能を特定するための静的パターンは、回路トポロジー(具体的なデバイスの端子間の具体的な接続)、デバイス名およびタイプ、デバイス属性(デバイスモデル名等)、ネット名およびネット属性(ネット幅等)を組み込むことができる。
3)集約された解析的情報からプログラムに従って導出される。ネットリストコンストラクトの静的な解析は、回路機能を導出するためのメカニズムとして限定されている(同一の回路トポロジーを(様々なバイアスまたは刺激を伴って)様々なアプリケーションに用いることが可能だからである)。この問題を克服するために、既知の良好なシミュレーション結果等の履歴的(historical)解析的情報から、追加の計装ポイントが導出可能である。たとえば、プログラムが、図12の電流ミラーからシミュレーション結果を解析し、M4のソースからドレインに流れる電流が特定の範囲内にあると判断し、より大規模な設計における回路のこの具体的なインスタンスについて自動的に主張またはAMSTを生成する。これらの主張またはAMSTは、その後、トポロジカルパターンに対するカバレッジを測定するために自動的に計装することができる。
計装は、異なる2つの方法で達成することができる:
1)既存の行動的モデルおよびAMSTの計装。行動的モデルおよび手書きの(hand-written)AMSTは、回路の所望の機能の数学的記述を捕捉するので非常に有用である。行動的モデルは、所望の機能を直接的に実装する。AMSTは、指定された刺激に対する回路の反応をテストする主張の組を介して、回路機能を間接的に記述する。いずれも、a)モデルにおいて条件付き分岐ステートメントの実行を追跡すること、および/または、b)モデルにおいて実装される任意の伝達関数を個別の領域に分割し、各領域の使用を追跡すること、によってカバレッジのために計装可能である。条件付き分岐ステートメントの簡単な例は、Verilog−A/AMSにおけるif−then−else節である。カバレッジを測定するために、ソフトウェアは、各行動的モデルの各インスタンスの条件付き分岐のうちいくつが実行されたかを、検証シミュレーションにおいて追跡する。モデルから結果として得られる伝達関数もまた、伝達関数、その1次、2次、3次、4次、または任意のn次の導関数におけるいかなる不連続性をも特定するために解析可能である。任意の特定された不連続性が、モデルを複数の動作領域(regions of operation)にパーティショニングするために用いられる。カバレッジを測定するために、ソフトウェアは、各モデルの各インスタンスについて到達した動作領域の数を、検証シミュレーションにおいて追跡する。
2)計装されたAMSTの自動的挿入。トランジスタレベルの回路については、所望の機能は常に既知であるわけではない。上述のように、計装ポイントに対するAMSTモジュールは、ネットリストの統計的解析から、または、集約された解析的情報(既知の良好なシミュレーション結果、シミュレーション構成、ユーザ入力、または観測されたユーザ行動を組み込むことができる)から、自動的に生成可能である。モジュールが生成されると、それは、その新たなモジュールのインスタンスをネットリストの適切な部分に追加し、電圧測定ネットを接続し、電流測定が必要な任意のネットを接続することにより、ネットリストに追加可能である。接続されたら、AMSTは上述のように計装可能である。
したがって、本開示の電子的設計の計装の翻訳のシステムおよび方法は、以下の課題のうち1つ以上を解決する可能性がある。すなわち、低減された検証実行オーバーラップを介してコンピュータおよび人的資源のより効率的な使用ができるようにすること、マーケットまでのタイムラグを短縮すること、および/または、より焦点を絞ったより完全な検証確認を確実にすること、である。
コンピュータシステム図1は、本開示が実装可能なシステムアーキテクチャ(たとえば例示のコンピュータシステム100)を示す。図1の例示的なコンピュータシステムは、説明のためだけのものである。本記載は、特定のコンピュータシステム(パーソナルコンピュータ等)を記載する際に一般的に用いられる用語を参照する場合があるが、本記載およびコンセプトは、他のシステム(図1には類似しないアーキテクチャを有するシステムを含む)にも同等に当てはまる。
コンピュータシステム100は、典型的には、中央処理装置(CPU)110(1つ以上のマイクロプロセッサによって実装されてもよい)と、情報の一時的記憶のためのランダムアクセスメモリ(RAM)112と、情報の永続的記憶のための読み出し専用メモリ(ROM)114とを含む。RAMを制御するためにメモリ制御装置116が提供される。バス118が、コンピュータシステムのコンポーネントを相互接続する。バスを制御するために、バス制御装置120が提供される。システムのコンポーネントからの様々な割り込み信号を受け取って処理するために、割り込み制御装置122が用いられる。フラッシュ124、DVD126、またはハードディスク128、またはたとえばソリッドステートドライブによって、大容量記憶が提供されてもよい。リムーバブルメディア(フラッシュドライブおよびDVD等)を介して、コンピュータシステムとデータおよびソフトウェアを交換してもよい。フラッシュドライブは、ユニバーサルシリアルバス(USB)ドライブ130に挿入可能であり、ユニバーサルシリアルバス(USB)ドライブ130は制御装置132によってバスに接続される。同様に、DVDはDVDドライブ134に挿入可能であり、DVDドライブ134は制御装置136によってバスに接続される。ハードディスクは固定ディスクドライブ138の一部であり、固定ディスクドライブ138は制御装置140によってバスに接続される。
コンピュータシステムに対するユーザ入力は、いくつかのデバイスによって提供可能である。たとえば、キーボード142およびマウス144が制御装置146によってバスに接続される。オーディオ変換器148(マイクロホンおよびスピーカとして作用してもよい)は、図示のようにオーディオ制御装置150によってバスに接続される。他の入力デバイス(ペンおよび/またはタブロイド等)がバスおよび適切な制御装置およびソフトウェアに接続されてもよい。システムRAMへの直接のメモリアクセスを行うために、DMA制御装置152が提供される。
ビデオディスプレイ156を制御するビデオサブシステム154によって、視覚的表示が生成される。コンピュータシステムは、通信アダプタ158(ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)または他の適切なネットワーク(概略的にバス160およびネットワーク162によって示される)にシステムが相互接続できるようにするもの)も含む。
コンピュータシステムの動作は、概して、オペレーティングシステム(いくつか例を挙げれば、Microsoft Corporationから入手可能なウィンドウズ(登録商標)、ウィンドウズ7およびウィンドウズ8オペレーティングシステム、Unix(登録商標)、Linux(登録商標)またはApple OS Xオペレーティングシステム)によって制御され調和される。オペレーティングシステムは、システム資源の割り当てを制御し、とくに、スケジューリング処理、メモリ管理、ネットワーキング、I/Oサービス等のタスクを実行する。
コンピュータシステム図2は、システム200を示す。システム200では、コンピュータユーザ210がネットワーク212に接続され、ネットワーク212がクラウド214および計算ファーム216に接続される。
検証/解析されるべき回路の概略例において、低電圧損失(LDO)300回路が図3に示される。LDOは増幅器A1を有する。増幅器A1は、反転入力(「−入力」)と、非反転入力(「+入力」)と、出力と、正電圧入力「+V」と、負電圧入力「−V」とを有する。LDO回路は、電圧入力Vinと、電圧出力Voutとを有する。LDOは、電力出力ブロックQ1、Q2およびR2を有する。LDOフィードバック回路は、R3、R4、D1およびR1からなる。増幅器A1はシンボルと呼ばれ、要素D1、R1、R2、R3、R4、C1、C2、Q1およびQ2はプリミティブと呼ばれる。
増幅器A1 400回路の概略例は、図4に示される。増幅器のシンボルは、トランジスタQ3、Q4、Q5、Q6、Q7およびQ8と、抵抗器R5とを備える。反転入力(「−入力」)と、非反転入力(「+入力」)と、出力と、正電圧入力「+V」と、負電圧入力「−V」とを有する増幅器A1。
図5は、増幅器A1 510のためのテストベンチ500を示す。テストベンチは、それが接続されたデバイスのために実行される、入力、出力、テスト条件等の具体的な構成である。テストベンチは、反転入力512と、非反転入力514と、正電源入力516と、負電源入力518と、出力520とを有する。テストベンチは、関連付けられた接続、電源供給、IO、等を有し、これらはテストベンチコラテラル(test bench collateral)と呼ばれる。回路の周縁のまわりの部分は、検証ハーネスと呼ばれる。ピン出力および検証ハーネスの動作は、テストされる回路に整合する必要がある。
図6は、テスト中のデバイス(Device under test)(DUT)を伴うテストベンチの一般的な階層構造の例600を示す。階層構造はレベルA、B、Cおよびデバイスに従って、また、インスタンス1、2および3に従って配列される。接続線は、具体的な検証に対し、階層構造を通してどのモデルどうしが接続されているかを示す。レベルおよびインスタンス内で、複数のビュータイプが存在可能である。これらの例は、各ケースおよびビューまたはビュータイプに限定することを意図するものではなく、いくつかの可能な階層構造構成を示すものである。
集積回路設計階層構造は、階層構造表現を利用した集積回路設計の表現である。この表現により、数百万個のコンポーネント(トランジスタ、抵抗器、コンデンサ、デバイスを接続する金属線、等)を含み得る複雑なデザインの、より効率的な作成が可能になる。設計プロセスの任意の時点において用いられる設計階層構造表現は、実行される設計ステップおよび設計機能のタイプ(アナログ、デジタル、メモリ、等)に基づいて異なり得る。
設計が製造されるべきである場合には、表現をマッピングできるように設計のレイアウトが作成される。このマッピングにより、設計製造が可能になるように、マスクセットの個々のレベル上にパターンが作成できるようになる。概して、レイアウト表現を作成するための設計フローは、デジタル機能ブロックおよびサブシステムに比べて、アナログの場合には非常に異なったものとなる。
設計プロセスの早期において、設計の大きな部分が、はじめて設計され既存のレイアウト表現を持たずに存在する可能性がある。設計の他の部分はすでに証明されている可能性があり、これらはより高いレベルの抽象度において表現されてもよく(または組み合わせで)レイアウト表現を含んでもよく、同じ設計所から来ないストックアイテムであってもよい。
本明細書において「ビュー」として参照される、いくつかの共通のタイプ(common type)の設計表現は、様々なビュータイプを備えてもよい。概略ビュータイプは、線またはネットで示される接続性を伴うブロックまたはコンポーネントと、ピンを介した階層構造の他のレベルへの接続との絵(picture)である。Spiceビュータイプは、コンポーネントとその関連付けられたパラメータとの表現であり、場合によっては、spiceネットリストへとインスタンス化される具体的なデバイスモデルを含む。LVSExtractは、ツール(レイアウトビューを解析するとともに、個別のコンポーネントおよび接続性をリバースエンジニアリングするもの)によって作成されるビュータイプである。このタイプのビューのバリエーションは、物理的レイアウトの結果として得られる、設計者によっては描かれなかった抽出された寄生的コンポーネントを含んでもよい。レイアウトビュータイプは、設計のその部分に対するルーティング(routing)を含む具体的な幾何学的配置の表現である。VerilogTMビュータイプは、標準化されたVerilogTM形式のテキストファイルである。Verilog−ATMビュータイプは、標準化されたVerilog−ATM文法のテキストファイルである。Verilog−AMSTMビュータイプは、標準化されたVerilog−AMSTM文法のテキストファイルである。ビュータイプの名称は、電子的設計自動化ツールプロバイダによって異なり得るが、例としてSpectreHDLおよびHDL−Aを含む。
他のビュータイプのタイプは、階層構造の組織化および可読性を支援してもよい。一例として、概略的キャプチャシステム等のグラフィック設計ツールは、配置されたグラフィックについてシンボルビュータイプを用いてもよい。シンボルは、階層構造を介してインスタンスを接続するピンと、ブロックの機能を示す図面とを含んでもよい。各例は演算増幅器、基本的デジタルゲート、トランジスタ、抵抗器、等に対する共通のシンボルを含む。
記載の複雑性にさらに加えて、設計階層構造の、あるレベルにおける所与のブロックは、同一ビュータイプのビューを複数含んでもよい。一例は、あるブロックの様々なVerilogTM表現(たとえば、1つはレイアウトに基づく注釈付きタイミングを伴うもの、1つは推定タイミングを伴うもの、1つはタイミングを伴わないもの)であるか、または、設計表現の様々なレベル(ゲートレベル、レジスタ転送レベル(RTL)、等)である。同様に、アナログビューは多数の概略ビューを有してもよい(たとえば、最終トランジスタレベル設計にマッピングするもの、より高いレベルのモデリングのための行動的ブロックの配置を含むもの、レイアウトからの寄生的要素を含み得るもの、混合信号シミュレーションのためのアナログブロックとデジタルブロックとの間のインタフェース要素を含むもの)。また、アナログブロックについて、様々なシミュレーションエクササイズの目的に基づいてモデルが様々な機能性および精度を含む場合には、同一のブロックに対して複数のVerilog−ATMまたはVerilog−AMSTMモデルビューが存在してもよい。これら複数のビューおよびビュータイプは、具体的なタスクまたは解析のために用いられる構成にマッピングされる。
しばしば、ある具体的なビューがどのタイプの解析のために有益な可能性があるかについてのヒントを提供するために、ビュー名称が作成される。ビュー名称は、以下にリストされるもの等を含んでもよい。Schematicは、トランジスタレベルまたは行動的モデル等の階層構造のいずれかのレベルにおいて評価され得るブロックの配置を含む概略ビューである。Schematic_behavioralは、行動的要素を備える概略ビューである。Schematic_parasiticsは、レイアウトから抽出または推定される寄生的コンポーネントを含む概略ビューである。Spiceは、ネットリストに実装される情報と、具体的なアナログシミュレータのためのコンポーネントとを含むspiceビューである。Behavioral_vaは、Verilog−ATMを評価し得るアナログシミュレータのための具体的なブロックをモデル化するVerilog−ATM形式のテキストビューであり、Behavioral_vamsは、Verilog−ATMおよびVerilogを評価し得る混合信号シミュレータのための具体的なブロックをモデル化するVerilog−AMSTM形式のテキストビューである。
図6に示す具体例では、テスト中のデバイスA1、インスタンス1を伴う一般的な階層構造の例が、後続の構成に基づいて定義される:A1、インスタンス1およびB1、インスタンス1は、Schematicレベルモデルによってモデル化される。B2、インスタンス1は、Schematic_behavioralモデルによってモデル化され、C1、インスタンス1およびC2インスタンス1は、Schematicモデルを用いてモデル化される。C1、インスタンス2およびC3、インスタンス1は、Behavioral_vaモデルによってモデル化される。階層構造の底(bottom)には、デバイス1、2および3、インスタンス1、2および3が、Spiceを用いてモデル化される。
図6に示す具体例では、デバイス1、インスタンス2はダミーデバイスであり、したがって、シミュレータマトリックスを変更しない。デバイス1、インスタンス2は、ダミーデバイスとして接続されるC1、インスタンス1概略内に配置されており、したがって、シミュレータ内にスタンプされるA1、インスタンス1マトリックスの一部ではない。
ある変更が、検証の再実行を必要とするか否かは、階層構造を介した接続によって部分的に決定される。一般的な階層構造の例に対するこの具体的な例では(テスト中のデバイスA1、インスタンス1)、デバイス1、インスタンス2、Schematicビューが変更されたとしても、このデバイスはダミーデバイスであって、シミュレータ内にスタンプされるマトリックスを修正しないので、シミュレータを再実行する必要はないであろう。
図6に対するビューでは、C1、インスタンス1 Schematicビューが、シミュレータモデルの構成の一部を形成する。もしこれが変更され、変更がシミュレータマトリックスに影響を与えるのに十分なほど実体的なものであれば、テストベンチ1は再実行する必要があろう。C1、インスタンス2Schematicビューは、シミュレータモデル例の構成の一部を形成しないので、これが変更されたとしても、テストベンチ1は再実行する必要はないであろう。
より抽象的なレベルでは、C1、Schematicビューが変更された場合(したがってこれによりインスタンス1および2内の概略ビューが変更される)には、これはシミュレータマトリックス内にスタンプされる情報の変更に影響を与えるので、テストベンチ1は再実行する必要があろう。C1、Schematicビューに対する非実体的な変更が(たとえばコメントの追加によって)行われ、マトリックス内のシミュレータによってスタンプされる情報に変更が行われなかった場合には、この設計構成は再実行する必要がないであろう。構成に変更が行われたか否かと、マトリックスのスタンプの影響とを決定することは、必要となる検証実行の回数に大きな影響を与えることが明白である。
図7は、電源管理チップPMIC700をモデル化するためにから選択され得る様々なモデルビューのいくつかを示す。PMIC_testbenchは、Behavioral_vamsレベルおよびBehavioral_vaレベル(刺激および出力を有する)を有する。PMICは、SchematicレベルおよびSchematic_behavioralレベルを有する。LDO、LDOイネーブル制御およびバッテリスーパーバイザは、Schematicレベル、Schematic_behavioralレベルおよびBehavioral_vamsレベルにおいて定義される。電圧基準、LDOフィードバックおよびLDO比較器は、SchematicレベルおよびBehavioral_vaレベルにおいて定義される。LDO増幅器は、SchematicレベルおよびSchematic_parasiticsレベルにおいて定義される。行動的増幅器(Behavioral Amplifier)および行動的バイアス(Behavioral Bias)は、Behavior_vaレベルにおいて定義される。LDO制御論理は、SchematicレベルおよびVerilogTMレベルにおいて定義される。デバイス1〜Xは、Spiceレベルにおいて定義される。
図8は、電源管理チップ800のための、図6に記載される電源管理チップPMICの第1テスト階層構造を示す。この図は、Spiceプリミティブコンポーネント構成が定義されている場合には、階層構造の一部を例示する。このモデルでは、デバイス1、インスタンス2はダミーデバイスであり、シミュレータマトリックスを変更しない。
図9は、電源管理チップ900のための、図7に記載される電源管理チップPMICの第2テスト階層構造を示す。この図は、いくつかのアナログ行動的レベルモデルと、いくつかのVerilogTM表現と、いくつかのSpiceプリミティブコンポーネントとを伴う可能な混合構成の1つのための階層構造の一部を例示する。
図10は、電源管理チップ1000のための、図7に記載される電源管理チップPMICの第3テスト階層構造を示す。これらの図は、行動的構成が定義されている場合には、階層構造の一部を例示する。
アナログおよび混合信号回路は、繰り返すトポロジカルパターンを頻繁に有する。図11および12は、容易に特定可能なアナログトポロジーのよくある例である。電流ミラー(用途によっては、電流源および電流シンクと呼ばれる)は、回路全体を通して整合したまたは比率化された(ratioed)電流を提供し、したがって、精密な動作を提供するためにアナログ集積回路設計において重要なツールである。図11は、簡単な電流MOSFET電流ミラーの例を示す。このトポロジーでは、電流I_OUTは、近似的に、I_REFの固定比率であり、特定のバイアス条件が満たされている場合には電圧に依存しない。
図12は、カスケード電流シンクの例を示す。カスケード電流ミラー構成は、より高い出力抵抗を生成し、したがって、図11に示すより簡単な電流源トポロジーに比較すると、いくらかの性能利益を提供する。これら2つの電流ミラーの例に加え、他の多数の基本的なアナログビルディングブロックトポロジーが存在する。他の例は、差動入力トランジスタ対、標準利得ステージ、バンドギャップ構成、を含むがこれらに限定されない。
図13は、比較的大規模なシステム・オン・ア・チップ(SOC)に含まれる増幅器のなんらかの典型的な特徴を持つ演算増幅器の簡単な例を示す。この簡単な例でも、混合信号設計に対する今日の検証困難性の増大する複雑さを実証することができる。簡単なマルチプレクサ(mux)が増幅器に入力を供給する。マルチプレクサに対する制御信号IN_CTRLが、マルチプレクサブロック内の論理ゲートの列に対するデジタル入力信号として働く。これらのゲートは、2ペアのアナログ入力の間で選択するためにスイッチを制御する(すなわち、ペア1(IN_POS_1およびIN_NEG_1)およびペア2(IN_POS_2およびIN_NEG_2)である)。たとえば、論理レベル「0」に等しいIN_CTRLの値は、IN_POS_1およびIN_NEG_1に接続されたスイッチを閉じることができ、論理レベル「1」のIN_CTRLの値は、IN_POS_2およびIN_NEG_2に接続されたスイッチを閉じることができる。その後、選択されたアナログ入力はマルチプレクサから出力される。このとき、これらの信号は増幅器入力に接続される。マルチプレクサブロックは、電源供給への接続を有する。このケースでは、アナログ入力がブロックを通過するので、電源供給接続は、アナログ供給電圧AVDDおよびGNDに対する。
増幅器ブロックについても、電源供給接続は、アナログ供給電圧AVDDおよびGNDに対する。複雑なSOCでは、複数の内部電源供給を有することは珍しいことではないということに注意すべきである。アナログブロックについてすら、異なる電源供給レベルのようなオプションがあり得る。他のケースでは、同一の電圧レベルが供給されてもよいが、供給源の1つは、供給ライン上のいかなるノイズにも敏感な可能性のあるクリティカルなブロックに対して用いられてもよい。よりノイズの多い他のブロック(典型的には、高周波スイッチングのような機能に起因するもの)は、同じ電圧レベルの別の供給源に接続されてもよい。この理由から、デジタルブロックは、ほぼ常に、アナログブロックとは分離して電源供給される。さらに、電力低減の重要さが増しているので、電力供給の一部は様々な動作モードの間にオフにされる。結果として、設計エンジニアは、あるブロックが適切な時間に利用可能な供給源に接続されているということを検証する必要がある場合もある。
比較的大規模なチップ内の別の共通構成は、アナログ機能に必要なバイアス電流の多くを提供する共通ブロックを有することである。この例では、増幅器は1uAバイアス電流のための入力を有する。別の共通オプションは、トリム(trim)および制御またはプログラム可能性に対する信号を含む。この例では、増幅器は、利得値を設定できる2つの制御ビットGAIN_CTRL<1:0>と、利得値をわずかに調整する3ビットGAIN_TRIM<2:0>とを有する。典型的には、各デバイスがテストされ、製造プロセスのバリエーションを補償して所望の利得値を指定された値になるべく近く整合させるために用いられる時に、トリムが実行される。このケースでは、GAIN_CTRLは、具体的なアプリケーションに対して最良の利得設定をピックするためのプログラム可能性特徴(programmability feature)である。ENABLE信号により、チップが動作している間に増幅器がオンまたはオフになることができる。これらのタイプの制御は、電力消費を最小化するために、チップのクリーンパワーアップシーケンスを可能にするために、および、障害状況中に保護を提供するために、しばしば提供される。
この簡単な例について、検証要件の例がいくつかある。これらの要件は、いくつかのカテゴリに分離することができる:
・動作機能‐増幅器およびマルチプレクサがそれぞれの機能的要件に適合するか
‐マルチプレクサが選択された入力信号を正しくマルチプレクサ出力に通過させるか
‐増幅器がその期待される動作に適合するか(利得、スルーレート(slew rate)、入力範囲、出力範囲、等)
・電源供給およびバイアス
‐ブロックが適切な電源供給に接続され、正しいバイアスを受けるか
‐供給およびバイアスは、期待される時に利用可能なであり、期待される範囲内で動作するか
・制御信号
‐制御信号の全設定について、正しい行動が観測されるか
・障害状況
‐ブロックピンのいずれかが許容または期待される範囲外の態様で行動した時に、ブロックが適切に動作するか、または、その状況があり得ない(他の部分で防止されている)か、処置することを期待されていないか
本開示のコンテキストにおいて、利益の1つは、多数の可能性の組み合わせをステップスルーするプロセスをより効率的に管理することの結果として得られる。最良の例の1つは、多数のデジタル制御またはトリムオプションを単にステップスルーすることである。
比較的大規模なSOCと、このSOCに対するトップレベルテストベンチとのコンテキスト内の簡単な例を考える。このテストベンチは、チップ用の多数のテストベンチのうちの1つであってもよいが、この例は、増幅器のために開発された検証知的財産が、トップレベルテストベンチからでも如何に活用され得るかを示すことができる。図6に示す階層構造的コンセプトは、テストベンチの例がどのようにして構築され得るかを示すために挿すことができる。この例では、図6からのA1がトップレベルテストベンチ(チップ、すべての必要な回路またはモデル(システム入力、出力負荷、外部電源供給またはチップのための他のコンポーネントを表す)、テスト構成の各部(ソフトウェアを介してプログラムに従って記述可能なもの)を含む)を表す。この階層構造の例は、図6の図示に読み取ることができる。上述のように、階層構造内の各項目は、利用可能な情報とブロックの意図される目的とに依存して、多くのタイプのビューによって表すことができる。
この例における階層構造の第2レベル(図6のレベル「B」に相関する)は、このトップレベルテストベンチ内に配置されたすべての要素を含む。最初の要素はチップ自身である。この例では、チップはセルB1として識別される。B2は、チップに対するシステム入力を表すためのモデルまたは回路を含むセルであってもよい。B3は、チップから見たシステム出力負荷およびシステム提供電源供給を表すモデルまたは回路を含むセルであってもよい。この例では、B4は、チップのピンに直接または他のブロックに接続するための、任意のブロック内で任意のパラメータ化された機能に対する値を提供するための、および/または、シミュレーション中に具体的な性能を監視し測定するための、ソフトウェアに書かれたブロックである。この簡単な例では、増幅器ブロックの例の比較的低いレベルにおける信号の作成につながる信号のみが含まれる。
この、ソフトウェア内に捕捉可能なブロックB4(単数または複数)は、典型的には、集積回路設計をターゲットとした高級言語(SystemVerilog、Verilog、Verilog−AMS、Verilog−A、SystemC、VHDL、等)を用いるが、より一般的な言語およびスクリプト(C、C++、TCL、PERL、等)を活用してもよい。ソフトウェア部分は、刺激を生成してもよく、既存の回路またはシステムブロックにおけるパラメータ用の設計値を定義してもよく、シミュレーション全体を通して性能を測定し監視してもよい。たとえば、SystemVerilogのためのユニバーサル検証手法(Universal Verification Methodology)(UVM)は、スコアボード関数を定義し監視するとともに刺激を定義するための共通のコンストラクトを含む。デジタル検証手法もまた、具体的な機能またはプロトコルをターゲットとした検証知的財産(VIP)の具体的な部分をいくつか含む。インスタンス化され定義された通信標準規格(ユニバーサルシリアルバス(USB)、シリアル周辺インタフェース(SPI)バス、等)は、特定の検証IP(インタフェースを介してデータを供給するとともに、そのインタフェースがプロトコル標準規格に整合していることをテストし確認するために、検証プロセスの間に活用可能である)を持つからである。この例では、デジタルトリムおよび制御は、SPIインタフェースを介して、またはチップ自身によって、プログラムされていると想定する。
図14は、SOCに対するテストベンチの単純化された例を示す。この例では、SOC階層構造は、図13に示す増幅器およびマルチプレクサを含む。この例は、なんらかの信号が、どのようにして設計のトップレベルから階層構造を介してより低いレベルのサブシステムへと通過し得るかを示す。このテストベンチでは、外部電源供給VDD_EXTが、TOP_AMSTにおいてVerilog−Aコードによって生成されるところである。この場合、VDD_EXTは、SUPPLIES_AND_OUTPUTSブロックへの入力となる。このブロックは、その後、SOCに主外部電源供給として接続されるVDDを出力する。入力としては、INPUTSブロック内でシステム入力が生成され、その後、SOCに接続する前にTOP_AMSTブロックを通過する。入力がテストハーネスを通過することにより、シミュレーションの全体を通して、入力信号の電圧および電流の双方を監視(または他の計算のためのパラメータとして使用)できるようになる。同様に、SOCからのVOUTは、SUPPLIES_AND_OUTPUTSブロックに入る前にTOP_AMSTを通過する。最後に、監視のために、SUPPLIES_AND_OUTPUTSブロックからTOP_AMSTにVOUT_EXTが供給される。AMSTテストハーネスブロックをどの信号が通過すべきかの決定は、システムと、システム全体を正確に表すためにチップ周辺に要求される回路/モデルの量とに強く依存する。究極的には、それらの決定は、システム設計および検証計画によって駆動される。
図15は、電子的設計のDレベル例を示す。階層構造の比較的低いレベルの信号は、それらの信号がトップレベルのピンに持ってこられない限りアクセスできない。チップを表すインスタンスB1の階層構造をさらに考えよう。この例では、チップの階層構造における次のレベルは、C1すなわちSOC_COREと、C2すなわちSOC_PAD_RINGとを含む。その後、D1すなわちAMP_COREサブシステム、D2すなわちPWR_MGT(チップのための電源管理機能)、およびD3すなわちDIG_CTRL(チップのためのデジタル制御)を見るために、C1内にプッシュダウンする。AMP_COREサブシステムは、図13からの例の増幅器およびマルチプレクサを含む。
図16は、電子的設計の階層構造の例を示す。SOC_TESTBENCHにおいて、4つのBレベル部分が存在する。B1 SOC(検証されるチップ)、B2 INPUTS、B3 SUPPLIES_AND_INPUTS、およびB4 TOP_AMSTである。Cレベルには2つの部分が存在する。C1 SOC_COREおよびC2 SOC_PAD_RINGである。Dレベルは、D1 AMP_CORE、D2 PWR_MGT、およびD3 DIG_CTRLを含み、Eレベルは、E1 MUX、E2 AMP、およびE3 AMP_AMSTを含む。この階層構造の例の全体を通して、計装ポイントが追加可能である。
図17は、電子的設計のEレベルの例を示す。AMP_COREサブシステム内へとさらに降下することにより、サブシステム要素(E1すなわちMUX、E2すなわちAMP、およびE3すなわちAMP_AMST(このサブシステムに対する検証IPを含むVerilogAMSブロック))が示される。AMP_AMSTは、AMP_CORE階層構造内の信号のために計装を追加する便利なポイントを提供する。例は、増幅器制御信号がすべて行使されたか、および、増幅器に対する入力がMUXに対する入力に基づいて正しいか、およびMUX IN_CTRLのすべての可能な組み合わせについてテストされたか、を捕捉することを含む。他の情報(たとえば、SOC階層構造のトップレベルにおいて入力に供給される信号(図14のIN_POS_1、IN_NEG_1、IN_POS_2、IN_NEG_2)によってテストされ、SOC_PAD_RINGを通過してAMP_COREに至り(図15のIN_POS_1_CORE、IN_NEG_1_CORE、IN_POS_2_CORE、およびIN_NEG_2_CORE)、MUXを通過してIN_CTRLによって選択される増幅器入力(図17のAMP_IN_POS、AMP_IN_NEG)が、増幅器の入力ダイナミックレンジを完全に行使するか否か)。階層構造のトップレベルの検証モニタは、増幅器入力(AMP_IN_POS、AMP_IN_NEG)に直接的には接続できないということに留意せよ。このようにして、計装ポイントは、AMST内で定義される基準と組み合わせて、増幅器の検証カバレッジの直接的な測定(direct measure)を提供する。このデータは、多数の個別シミュレーションおよび様々な入力条件にわたって累積的に計算することができる。
ネットリスト開始される(netlist initiated)第1の例において、図18は、始点として、アナログまたは混合信号設計の事前に存在するネットリストを有する。このフローチャートは、電子的設計の有用な未テスト状態を特定するためのコンピュータプログラム製品1800を示す。この方法は、少なくとも1つのアナログ部分から少なくとも部分的に構成される電子的設計の表現の、少なくとも1つのネットリストをパースすること1810と、少なくとも1つのネットリストに基づいて少なくとも1つの計装ポイントを決定すること1812と、少なくとも1つの計装ポイントに基づいて少なくとも1つの計装されたネットリストを生成すること1814と、少なくとも1つの計装されたネットリストを利用してアナログ検証カバレッジを決定すること1816とを備える。また、電子的設計は、アナログまたは混合信号であってもよい。また、この電子的設計は、電気機械的、電気化学的および電気生物学的システムの検証に拡張できるということが想像される。
図19は、電子的設計の計装の第1の例1900のステップ1(1812)より前に始まる追加ステップを示す。このケースでは、電子的設計は始点(initiation point)(そこからネットリストが作成され、追加で、仕様および検証履歴が初期データセットの一部である)である。この例は、追加で、電子的設計の少なくとも一部にアナログ部分を有する電子的設計のコンピュータ可読表現をコンピュータによって受信すること1910と、少なくとも1つの仕様に基づいて少なくとも1組の正当な状態を生成すること1912とを備えてもよい。第1の例は、また、電子的設計の検証カバレッジ履歴を少なくとも1つ受信すること1914を備えてもよく、このカバレッジ履歴は、関連する回路、共通の性質を共有する回路、等のためのものであってもよいということが想像される。この方法は、少なくとも1つの仕様、少なくとも1つの計装されたネットリスト、少なくとも1組の正当な状態、および、少なくとも1つの検証カバレッジ履歴、のうちの少なくとも1つに少なくとも部分的に基づいて、少なくとも1つの有用な未テスト状態を特定すること1916と、少なくとも1つの計装されたネットリスト、少なくとも1つの検証カバレッジ履歴、および、少なくとも1組の正当な状態、のうち少なくとも1つに少なくとも部分的に基づいて、検証完全性を評価すること1918とを備えてもよい。少なくとも1つの未テスト状態は、未だテストされていない正当な状態である。図6に戻り、電子的設計は、図内の各接続されたブロックを包含する。トップレベル階層構造はA1であり、次のレベルの階層構造はBであり、これはB1およびB2を含み、B階層構造の下には、C1、C2およびC3を有するC階層構造が存在する。この具体例では、B1レベルおよびその下では、モデルはSchematicモデルおよびSpiceモデルからなる。B2レベルでは、モデルはSchematic_behavioralモデルおよびBehavioral_vaモデルを包含する。この例では、アナログテストモデルはA1、インスタンス1レベルに接続され、ネットリスト(テスト中のコンポーネントのそれぞれに接続する線)を介して接続される。
図20は、電子的設計の図19の計装の例の各ステップに追加される追加ステップ2000を示し、各ステップはステップ1914と1916との間に対応することが想像されるが、フロー内の他の点で発生してもよい。これらの追加ステップは、少なくとも1つの検証カバレッジ履歴と少なくとも1つの入力ベクトルとを相関させること2010と、検証の評価された完全性を最大化させるために少なくとも1つの入力ベクトルの最小数を決定すること2012とを備えてもよい。相関は、入力特性および主張の、同一性、オーバーラップ、等の測度を含んでもよい。この方法は、さらに、電子的設計の表現の行動的レベルにおいて少なくとも1つの入力ベクトルの最小数をシミュレートすること2014と、行動的レベルシミュレーションにおいて測定出力を評価すること2016(評価は、少なくとも1組の正当な状態に少なくとも部分的に基づく)とを備えてもよい。この方法は、さらに、電子的設計の表現のトランジスタレベルにおいて少なくとも1つの入力ベクトルの最小数をシミュレートするステップ2018と、トランジスタレベルシミュレーションにおいて測定出力を相関させるステップ2020(相関は、行動的レベルシミュレーションにおける測定出力に少なくとも部分的に基づく)とを備えてもよい。この方法は、また、少なくとも1つの刺激および少なくとも1つの刺激主張のうち少なくとも一方を受信すること2022と、少なくとも1つの出力測定値および少なくとも1つの出力主張のうち少なくとも一方を受信すること2024と、少なくとも1つのシミュレーションのカバレッジ貢献を少なくとも1つ示すデータを補足するために少なくとも1つの計装されたネットリストを修正すること2026とを備えてもよい。行動的レベルシミュレーションは、トランジスタレベルおよび/または行動的レベルフォローオンテストに先行してもよい。
図21は、アナログまたは混合信号電子的設計の表現で始まるという点において電子的設計開始される(electronic design initiated)第2の例を示す。この電子的設計開始される方法は、電子的設計の少なくとも一部にアナログ部分を有する電子的設計のコンピュータ可読表現をコンピュータによって受信するステップ2110と、電子的設計の表現に少なくとも部分的に基づいて少なくとも1つの計装されたネットリストを生成するステップ2112と、電子的設計の仕様を少なくとも1つ受信するステップ2114と、少なくとも1つの仕様に基づいて少なくとも1組の正当な状態を生成するステップ2116と、少なくとも1つの計装されたネットリストを利用してアナログ検証カバレッジを決定するステップ2118とを備える。未テスト状態は、未だテストされていない正当な状態である。図8に戻り、電子的設計は、PMIC_testbenchに続く各接続されたブロックを包含し、少なくとも1つのアナログテストハーネスモデルは、PMIC_testbenchとマークされたブロックに関する。このモデルに対するネットリストは、各接続(図8の接続線)を示す。この設計に関連付けられた階層構造は、LDO、バッテリスーパーバイザおよび電圧基準の各ブロックは、階層構造においてPMICブロックよりも低いということを示す。加えて、このモデルは主に設計の概略部分をレビューする。
図22は、電子的設計開始される方法の追加ステップを示し、図22の各ステップは図21のステップ2112の後に対応することが想像され、しかしながら各ステップの順序および配置は異なり得る。電子的設計の計装の第2の例2200は、追加で、少なくとも1つの計装されたネットリストをシミュレートするステップ2210と、シミュレーションに少なくとも部分的に基づいて電子的設計の検証カバレッジ履歴を少なくとも1つ生成するステップ2212と、少なくとも1つの仕様、少なくとも1つの計装されたネットリスト、少なくとも1組の正当な状態、および、少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、少なくとも1つの有用な未テスト状態を特定するステップ2214と、等の各ステップを備えてもよい。この方法は、さらに、検証カバレッジ履歴および少なくとも1組の正当な状態に少なくとも部分的に基づいて検証完全性を評価すること2216と、少なくとも1つの検証カバレッジ履歴および少なくとも1つの入力ベクトルを相関させること2218(少なくとも1つの計装されたネットリストのシミュレーションが行動的レベルにおいて実行されてもよい)と、有用な未テスト状態を最小化するために少なくとも1つの入力ベクトルの最小数を決定すること2220とを備えてもよい。この方法は、電子的設計の表現のトランジスタレベルおよび行動的レベルのうち少なくとも一方、少なくとも1つの入力ベクトルの最小数をシミュレートすること2222と、行動的レベルシミュレーションにおいて測定出力を評価すること2224(評価は少なくとも1組の正当な状態に少なくとも部分的に基づく)と、トランジスタレベルシミュレーションにおいて測定出力を相関させること2226(相関は行動的レベルシミュレーションにおける測定出力に少なくとも部分的に基づく)とを備えてもよい。
図23は、アナログまたは混合信号電子的設計2300の計装のコンピュータ実装される方法の別の電子的設計開始される例を示す。この方法はまた、検証の完全性の評価(仕様、計装されたネットリスト、正当な状態のリスト、およびその設計に対して実行された直前の検証カバレッジを利用したもの)を含む。この方法は、少なくとも1つのデジタル部分および少なくとも1つのアナログ部分を電子的設計の少なくとも一部に有する電子的設計のコンピュータ可読表現をコンピュータによって受信するステップ2310と、電子的設計の表現に少なくとも部分的に基づいて少なくとも1つの計装されたネットリストを生成するステップ2312と、電子的設計の仕様を少なくとも1つ受信するステップ2314とを備える。この方法は、また、少なくとも1つの仕様に基づいて少なくとも1組の正当な状態を生成すること2316と、電子的設計の検証カバレッジ履歴を少なくとも1つ受信すること2318と、少なくとも1つの仕様、少なくとも1つの計装されたネットリスト、少なくとも1組の正当な状態、および、少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、検証の完全性を評価すること2320とを備える。図9に戻り、電子的設計は、PMIC_testbenchに続く各接続されたブロックを包含し、少なくとも1つのアナログテストハーネスモデルは、PMIC_testbenchとマークされたブロックに関する。ネットリストは、各ブロックを接続する線によって接続性を示す。この設計に関連付けられた階層構造は、LDO、バッテリスーパーバイザおよび電圧基準の各ブロックは、階層構造においてPMICブロックよりも低いということを示す。このモデルは、モデルの、概略(schematic)、概略行動的(schematic behavioral)およびbehavioral.vaの各態様をレビューする。大まかな電子的設計は図8と同じであるが、テストされる対象、階層構造、および接続性は異なる。
図24は、図23のステップ2318の後に発生し得る追加ステップを示す(ただし追加の正確なポイントは具体的な実装によって異なる場合がある)。電子的設計の計装の第3の例2400は、追加で、少なくとも1つの検証カバレッジ履歴および少なくとも1つの入力ベクトルを相関させること2410と、検証の完全性を評価することを最大化するために少なくとも1つの入力ベクトルの最小数を決定すること2412と、電子的設計の表現の行動的レベルにおいて少なくとも1つの入力ベクトルの最小数をシミュレートすること2414と、等を備えてもよい。また、この方法は、行動的レベルシミュレーションにおいて測定出力を評価すること2416(評価は少なくとも1組の正当な状態に少なくとも部分的に基づく)と、電子的設計の表現のトランジスタレベルにおいて少なくとも1つの入力ベクトルの最小数をシミュレートすること2418と、トランジスタレベルシミュレーションにおいて測定出力を相関させること2420(相関は、行動的レベルシミュレーションにおける測定出力に少なくとも部分的に基づく)とを備えてもよい。
第4の例では、図25が、電子的設計開始される行動的モデルを示す。コンピュータプログラム製品2500は、過渡的でない(non-transitory)コンピュータ可用媒体2510上に実装される。過渡的でないコンピュータ可用媒体は、命令の列を記憶しており、この命令の列が少なくとも1つのプロセッサ2512によって実行されると、この命令の列はその少なくとも1つのプロセッサに電子的設計の有用な未テスト状態を特定する方法(少なくとも1つのアナログ部分から少なくとも部分的に構成される電子的設計の表現を受信するステップ2514と、電子的設計の表現に少なくとも部分的に基づいて少なくとも1つの計装されたネットリストを生成するステップ2516とを備える)を実行させる。このコンピュータプログラム製品は、さらに、電子的設計の仕様を少なくとも1つ受信するステップ2518と、少なくとも1つの仕様に基づいて少なくとも1組の正当な状態を生成するステップ2520と、電子的設計の表現の行動的レベルにおいて少なくとも1つの入力ベクトルの最小数において少なくとも1つの計装されたネットリストをシミュレートするステップ2522とを備える。このコンピュータプログラム製品は、さらに、シミュレーションに部分的に基づいて電子的設計の検証カバレッジ履歴を少なくとも1つ生成するステップ2524と、少なくとも1つの仕様、少なくとも1つの計装されたネットリスト、少なくとも1組の正当な状態、および、少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、有用な未テスト状態を特定するステップ2526を備える。図10に戻り、電子的設計は、PMIC_testbenchに続く接続されたブロックのそれぞれを包含し、少なくとも1つのアナログテストハーネスモデルは、PMIC_testbenchとマークされたブロックに関する。この例では、PMIC階層構造と、LDO、バッテリスーパーバイザおよび電圧基準の各階層構造とがレビューされる。最も高いレベルではPMICが概略レベルでレビューされる(LDOがBehavioral_vams、バッテリスーパーバイザがBehavioral_vams、電圧基準がBehavioral_vaレベル)。
図26は、図25のステップ2516の後のいずれかのポイントにおいて始まる追加のステップを示す。これらのステップは、追加で、行動的レベルシミュレーションにおいて測定出力を評価すること2610(評価は少なくとも1組の正当な状態に少なくとも部分的に基づく)と、少なくとも1つの検証カバレッジ履歴および少なくとも1つの入力ベクトルを相関させること2612と、電子的設計の表現のトランジスタレベルにおいて少なくとも1つの入力ベクトルの最小数をシミュレートすること2614とを備えてもよい。また、この例は、トランジスタレベルシミュレーションにおいて測定出力を相関させること2616(相関は、行動的レベルシミュレーションにおける測定出力に少なくとも部分的に基づく)と、少なくとも1つの出力測定値を受信し少なくとも1つの出力主張を受信すること2618と、少なくとも1つのアナログテストハーネスモデルを受信すること2620とを備えてもよい。
図27は、電子的設計の計装のコンピュータ実装される方法の第5の例2700として、ポストシミュレーション集約解析を示す。このケースでは、シミュレーションが実行された後であり、検証カバレッジの穴を探してレビューすることができるようにする情報のデータベースが収集されている。この解析方法は、電子的設計の少なくとも一部にアナログ部分を有する電子的設計の表現を受信するステップ2710と、電子的設計の仕様を少なくとも1つ受信するステップ2712と、少なくとも1つの仕様によって限定される少なくとも1組の正当な状態を生成するステップ2714と、電子的設計の検証履歴を少なくとも1つ受信するステップ2016と、少なくとも1つの仕様、少なくとも1組の正当な状態、および、少なくとも1つの検証履歴、のうち少なくとも1つに少なくとも部分的に基づいて有用な未テスト状態を特定するステップ2718とを備える。図8に戻り、電子的設計は、PMIC_testbenchに続く接続されたブロックのそれぞれを包含し、少なくとも1つのアナログテストハーネスモデルは、PMIC_testbenchとマークされたブロックに関する。そのモデルに対するネットリストは、各接続(図8の接続線)を示す。この設計に関連付けられた階層構造は、LDO、バッテリスーパーバイザおよび電圧基準の各ブロックが、階層構造においてPMICブロックより低いということを示す。さらに、このモデルは、主に設計の概略部分をレビューする。
図28は、図27のステップ2710の後の任意の時点で発生し得る追加ステップを示す。この例では、データ入力は変化してもよく、レビューされた状態と、いかなる追加の状態がレビューされるべきであるかとの、より広いレビュー(broader review)を許容してもよい。電子的設計の計装の第5の例2800は、追加で、電子的設計の製造プロセスバリエーションを少なくとも1つ受信するステップ2810と、電子的設計の機能的バリエーションを少なくとも1つ受信するステップ2812(そこにおいて、少なくとも1つの製造プロセスバリエーションおよび少なくとも1つの機能的バリエーションに少なくとも部分的に基づく有用な未テスト状態の特定)と、少なくとも1つの刺激および少なくとも1つの刺激主張のうち少なくとも一方を受信するステップ2814と、等のステップを備えてもよい。この方法は、また、少なくとも1つの出力測定値および少なくとも1つの出力主張のうち少なくとも一方を受信すること2816と、少なくとも1つのアナログハーネスモデルを受信すること2818と、シミュレーションの出力を少なくとも1つ解析すること2820と、少なくとも1つの検証履歴および少なくとも1つの仕様の抽象化の少なくとも1レベルのうち少なくとも一方に少なくとも部分的に基づいて、検証状態カバレッジを特定すること2822とを備えてもよい。図9に戻り、電子的設計は、PMIC_testbenchに続く接続されたブロックのそれぞれを包含し、少なくとも1つのアナログテストハーネスモデルは、PMIC_testbenchとマークされたブロックに関する。ネットリストは接続性を示す(各ブロックを接続する線によって示される)。この設計に関連付けられた階層構造は、LDO、バッテリスーパーバイザおよび電圧基準の各ブロックが、階層構造においてPMICブロックより低いということを示す。このモデルは、モデルの概略(schematic)、概略行動的(schematic behavioral)、およびbehavioral.vaの各態様(aspect)をレビューする。全体の電子的設計は図8と同じであるが、テストされる対象、階層構造および接続性が異なる。
第6の例では、図29が、アナログまたは混合信号設計の検証カバレッジの製造包含レビュー(manufacturing inclusive review)を示す。この例では、仕様だけでなく、遭遇しやすい製造プロセスバリエーションと、製造後に遭遇するありそうな機能的バリエーションとが考慮される。この例では、コンピュータプログラム製品2900は、過渡的でないコンピュータ可用媒体2910上に実装され、過渡的でないコンピュータ可用媒体は、命令の列を記憶しており、この命令の列がプロセッサ2912によって実行されると、この命令の列はそのプロセッサに電子的設計の有用な未テスト状態を特定する方法(少なくとも1つのアナログ部分から少なくとも部分的に構成される電子的設計の表現を受信するステップ2914と、電子的設計の仕様を少なくとも1つ受信するステップ2916と、電子的設計の少なくとも1つのアナログ部分の製造プロセスバリエーションを少なくとも1つ受信するステップ2918と、電子的設計の少なくとも1つのアナログ部分の機能的バリエーションを少なくとも1つ受信するステップ2920とを備える)を実行させる。また、このコンピュータプログラム製品は、少なくとも1つの仕様、少なくとも1つの製造プロセスバリエーション、および、少なくとも1つの機能的バリエーション、のうち1つによって限定された少なくとも1組の正当な状態を生成するステップ2922と、電子的設計の少なくとも1つのアナログ部分の検証履歴を少なくとも1つ受信するステップ2924と、少なくとも1つの仕様、少なくとも1組の正当な状態、少なくとも1つの製造プロセスバリエーション、少なくとも1つの機能的バリエーション、および、少なくとも1つの検証履歴、のうち少なくとも1つに少なくとも部分的に基づいて、有用な未テスト状態を特定するステップ2926とを備える。この製品は、また、少なくとも1つの検証履歴および少なくとも1組の正当な状態に少なくとも部分的に基づいて検証完全性を評価するステップを含んでもよい。
図30は、電子的設計の有用な未テスト状態を特定するシステム図の例3000を示す。ユーザの概略捕捉モジュール3010が、電子的設計の表現を捕捉する。捕捉された概略からネットリストが生成され(3012)、ネットリストはネットリストプロセッサ3014によって処理される。続いて、ネットリストは、ネットリストノードにおける入力および出力を独立に捕捉できるように計装され(3016)、トランジスタレベルシミュレータ3018によってトランジスタレベルにおいてシミュレーションが実行される。シミュレータからのデータはシミュレータ出力データベース3020に記憶される。シミュレーション出力データは、シミュレーションポストプロセッサ3022によってポストプロセッシングされ、これがデータをプロジェクトレベル階層構造テスト済み状態データベース3024へと供給する。カバレッジ解析およびモデルチェックモジュール3026は、このデータをプロジェクトレベル階層構造テスト済み状態データベースから受信する。シミュレータ出力データベースからのデータは、また、ユーザの概略捕捉および/または波形ビューワー3028に送られてもよい(これがデータを設計データベース3030に供給する)。設計データベースは、また、プロジェクトレベル階層構造テスト済み状態データベースとデータを送受信してもよい。
各例は、アナログの電子的テストに関するが、本方法、システムおよびコンピュータ可読媒体は、電気機械的、電気化学的、電気生物学的な検証およびテストに応用可能である。
本明細書では、本開示の様々な例示的な例を作成することおよび用いることが議論されるが、本開示は、広範囲の具体的コンテキストにおいて記述可能なコンセプトを提供するということが理解されるべきである。本開示は特定の例に関して示され記載されたが、本明細書を読んで理解した他の当業者は、均等物および修正を考えつくということが明白である。本開示は、そのような均等物および修正を含み、添付の特許請求の範囲によってのみ限定される。
方法および装置は、ローカルでまたは分散してまたはリモートで実施されてもよく、ステップのためのデータはローカルでまたはリモートで記憶してもよいということが理解されるべきである。明瞭さのため、応用可能な技術の当業者にはありふれた機能、コンポーネントおよびシステムの詳細な記載は含まれない。本開示の方法および装置は、1つ以上の利益(改良されたスピード効率、低減した計算時間、低減した再検証の数、等を含むが、これに限らない)を提供する。本開示は特定の例示的な例を参照して記載されたが、本明細書に記載されたものは限定的な意味に解釈されることを意図するものではない。たとえば、示され説明された例におけるステップのバリエーションまたは組み合わせが、本開示から逸脱しない範囲で具体的な場合に用いられてもよい。例示的な例の様々な修正および組み合わせと、他の利益および例とが、図面、明細書および特許請求の範囲への参照に基づいて、当業者には明白である。

Claims (44)

  1. 電子的設計の計装のコンピュータ実装される方法であって、
    少なくとも1つのアナログ部分から少なくとも部分的に構成される前記電子的設計の表現のネットリストを少なくとも1つパースすることと、
    前記少なくとも1つのネットリストに基づいて少なくとも1つの計装ポイントを決定することと、
    前記少なくとも1つの計装ポイントに基づいて少なくとも1つの計装されたネットリストを生成することと、
    前記少なくとも1つの計装されたネットリストを利用してアナログ検証カバレッジを決定することと、
    を備える方法。
  2. 前記電子的設計の少なくとも一部にアナログ部分を有する前記電子的設計のコンピュータ可読表現をコンピュータによって受信することと、
    前記少なくとも1つの仕様に基づいて少なくとも1組の正当な状態を生成することと、
    前記電子的設計の検証カバレッジ履歴を少なくとも1つ受信することと、
    前記少なくとも1つの仕様、前記少なくとも1つの計装されたネットリスト、前記少なくとも1組の正当な状態、および前記少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、少なくとも1つの有用な未テスト状態を特定することと、
    前記少なくとも1つの計装されたネットリスト、前記少なくとも1つの検証カバレッジ履歴、および、少なくとも1組の正当な状態、のうち少なくとも1つに少なくとも部分的に基づいて、検証完全性を評価することと
    をさらに備える、請求項1に記載の電子的設計の計装のコンピュータ実装される方法。
  3. 前記少なくとも1つの検証カバレッジ履歴および少なくとも1つの入力ベクトルを相関させるステップをさらに備える、請求項2に記載の電子的設計の計装のコンピュータ実装される方法。
  4. 前記少なくとも1つの有用な未テスト状態を最小化するために、前記少なくとも1つの入力ベクトルの最小数を決定するステップをさらに備える、請求項3に記載の電子的設計の計装のコンピュータ実装される方法。
  5. 前記少なくとも1つの入力ベクトルの前記最小数を前記電子的設計の前記表現の行動的レベルにおいてシミュレートするステップをさらに備える、請求項3に記載の電子的設計の計装のコンピュータ実装される方法。
  6. 前記行動的レベルシミュレーションにおいて測定出力を評価するステップをさらに備え、前記評価は前記少なくとも1組の正当な状態に少なくとも部分的に基づく、請求項5に記載の電子的設計の計装のコンピュータ実装される方法。
  7. 前記少なくとも1つの入力ベクトルの前記最小数を、前記電子的設計の前記表現の、トランジスタレベルおよび行動的レベルのうち少なくとも一方において、シミュレートするステップをさらに備える、請求項6に記載の電子的設計の計装のコンピュータ実装される方法。
  8. 前記トランジスタレベルシミュレーションにおいて前記測定出力を相関させるステップをさらに備え、前記相関は前記行動的レベルシミュレーションにおける前記測定出力に少なくとも部分的に基づく、請求項7に記載の電子的設計の計装のコンピュータ実装される方法。
  9. 少なくとも1つの刺激および少なくとも1つの刺激主張のうち少なくとも一方を受信するステップをさらに備える、請求項2に記載の電子的設計の計装のコンピュータ実装される方法。
  10. 少なくとも1つの出力測定値および少なくとも1つの出力主張のうち少なくとも一方を受信するステップをさらに備える、請求項2に記載の電子的設計の計装のコンピュータ実装される方法。
  11. 少なくとも1つのシミュレーションのカバレッジ貢献を少なくとも1つ示すデータを捕捉するために前記少なくとも1つの計装されたネットリストを修正するステップをさらに備える、請求項2に記載の電子的設計の計装のコンピュータ実装される方法。
  12. 電子的設計の計装のコンピュータ実装される方法であって、
    前記電子的設計の少なくとも一部にアナログ部分を有する前記電子的設計のコンピュータ可読表現をコンピュータによって受信するステップと、
    前記電子的設計の前記表現に少なくとも部分的に基づいて少なくとも1つの計装されたネットリストを生成するステップと、
    前記電子的設計の仕様を少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様に基づいて少なくとも1組の正当な状態を生成するステップと、
    前記少なくとも1つの計装されたネットリストを利用してアナログ検証カバレッジを決定するステップと、
    を備える方法。
  13. 前記少なくとも1つの計装されたネットリストをシミュレートし、
    前記シミュレーションに部分的に基づいて前記電子的設計の検証カバレッジ履歴を少なくとも1つ生成し、
    前記少なくとも1つの仕様、前記少なくとも1つの計装されたネットリスト、前記少なくとも1組の正当な状態、および前記少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、少なくとも1つの有用な未テスト状態を特定する、
    請求項12に記載の電子的設計の計装のコンピュータ実装される方法。
  14. 前記検証カバレッジ履歴および前記少なくとも1組の正当な状態に少なくとも部分的に基づいて、検証完全性を評価するステップをさらに備える、請求項13に記載の電子的設計の計装のコンピュータ実装される方法。
  15. 前記少なくとも1つの検証カバレッジ履歴および少なくとも1つの入力ベクトルを相関させるステップをさらに備える、請求項13に記載の電子的設計の計装のコンピュータ実装される方法。
  16. 前記少なくとも1つの計装されたネットリストの前記シミュレーションは行動的レベルにおいて実行される、請求項13に記載の電子的設計の計装のコンピュータ実装される方法。
  17. 前記有用な未テスト状態を最小化するために少なくとも1つの入力ベクトルの最小数を決定するステップをさらに備える、請求項16記載の電子的設計の計装のコンピュータ実装される方法。
  18. 前記電子的設計の前記表現のトランジスタレベルおよび行動的レベルのうち少なくとも一方、前記少なくとも1つの入力ベクトルの前記最小数をシミュレートするステップをさらに備える、請求項17に記載の電子的設計の計装のコンピュータ実装される方法。
  19. 行動的レベルシミュレーションにおいて測定出力を評価するステップをさらに備え、前記評価は前記少なくとも1組の正当な状態に少なくとも部分的に基づく、請求項18に記載の電子的設計の計装のコンピュータ実装される方法。
  20. 前記トランジスタレベルシミュレーションにおいて前記測定出力を相関させるステップをさらに備え、前記相関は前記行動的レベルシミュレーションにおける前記測定出力に少なくとも部分的に基づく、請求項19に記載の電子的設計の計装のコンピュータ実装される方法。
  21. 電子的設計の計装のコンピュータ実装される方法であって、
    前記電子的設計の少なくとも一部に、少なくとも1つのデジタル部分および少なくとも1つのアナログ部分を有する、前記電子的設計のコンピュータ可読表現をコンピュータによって受信するステップと、
    前記電子的設計の前記表現に少なくとも部分的に基づいて、少なくとも1つの計装されたネットリストを生成するステップと、
    前記電子的設計の仕様を少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様に基づいて、少なくとも1組の正当な状態を生成するステップと、
    前記電子的設計の検証カバレッジ履歴を少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様、前記少なくとも1つの計装されたネットリスト、前記少なくとも1組の正当な状態、および、前記少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、検証の完全性を評価するステップと、
    を備える、方法。
  22. 前記少なくとも1つの検証カバレッジ履歴および少なくとも1つの入力ベクトルを相関させるステップをさらに備える、請求項21に記載の電子的設計の計装のコンピュータ実装される方法。
  23. 検証の完全性を前記評価することを最大化するために前記少なくとも1つの入力ベクトルの最小数を決定するステップをさらに備える、請求項22に記載の電子的設計の計装のコンピュータ実装される方法。
  24. 前記少なくとも1つの入力ベクトルの前記最小数を、前記電子的設計の前記表現の行動的レベルにおいてシミュレートするステップをさらに備える、請求項23に記載の電子的設計の計装のコンピュータ実装される方法。
  25. 前記行動的レベルシミュレーションにおいて測定出力を評価するステップをさらに備え、前記評価は前記少なくとも1組の正当な状態に少なくとも部分的に基づく、請求項24に記載の電子的設計の計装のコンピュータ実装される方法。
  26. 前記少なくとも1つの入力ベクトルの前記最小数を、前記電子的設計の前記表現のトランジスタレベルにおいてシミュレートするステップをさらに備える、請求項25に記載の電子的設計の計装のコンピュータ実装される方法。
  27. 前記トランジスタレベルシミュレーションにおける前記測定出力を相関させるステップをさらに備え、前記相関は前記行動的レベルシミュレーションにおける前記測定出力に少なくとも部分的に基づく、請求項26に記載の電子的設計の計装のコンピュータ実装される方法。
  28. 過渡的でないコンピュータ可用媒体に実施されるコンピュータプログラム製品であって、
    前記過渡的でないコンピュータ可用媒体は命令の列を記憶しており、
    前記命令の列が少なくとも1つのプロセッサによって実行されると、前記命令の列は、前記少なくとも1つのプロセッサに電子的設計の有用な未テスト状態を特定する方法を実行させ、
    前記方法は、
    前記電子的設計の少なくとも一部にアナログ部分を有する、前記電子的設計のコンピュータ可読表現をコンピュータによって受信するステップと、
    前記電子的設計の前記表現に少なくとも部分的に基づいて、少なくとも1つの計装されたネットリストを生成するステップと、
    前記電子的設計の仕様を少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様に基づいて、少なくとも1組の正当な状態を生成するステップと、
    少なくとも1つの入力ベクトルの最小数において、前記少なくとも1つの計装されたネットリストを、前記電子的設計の前記表現の行動的レベルにおいてシミュレートするステップと、
    前記シミュレーションに少なくとも部分的に基づいて前記電子的設計の検証カバレッジ履歴を少なくとも1つ生成するステップと、
    前記少なくとも1つの仕様、前記少なくとも1つの計装されたネットリスト、前記少なくとも1組の正当な状態、および、前記少なくとも1つの検証カバレッジ履歴、のうち少なくとも1つに少なくとも部分的に基づいて、有用な未テスト状態を特定するステップと、
    を備える、コンピュータプログラム製品。
  29. 行動的レベルシミュレーションにおいて測定出力を評価することであって、前記評価は前記少なくとも1組の正当な状態に少なくとも部分的に基づく、評価することと、
    前記少なくとも1つの検証カバレッジ履歴および前記少なくとも1つの入力ベクトルを相関させることと
    をさらに備える、請求項28に記載の電子的設計の有用な未テスト状態を特定する方法を実行するためのコンピュータプログラム製品。
  30. 前記少なくとも1つの入力ベクトルの前記最小数を、前記電子的設計の前記表現のトランジスタレベルにおいてシミュレートするステップをさらに備える、請求項29に記載の電子的設計の有用な未テスト状態を特定する方法を実行するためのコンピュータプログラム製品。
  31. トランジスタレベルシミュレーションにおいて前記測定出力を相関させるステップをさらに備え、前記相関は前記行動的レベルシミュレーションにおける前記測定出力に少なくとも部分的に基づく、請求項30に記載の電子的設計の有用な未テスト状態を特定する方法を実行するためのコンピュータプログラム製品。
  32. 少なくとも1つの出力測定値を受信し少なくとも1つの出力主張を受信するステップをさらに備える、請求項31に記載の電子的設計の有用な未テスト状態を特定する方法を実行するためのコンピュータプログラム製品。
  33. 少なくとも1つのアナログテストハーネスモデルを受信するステップをさらに備える、請求項32に記載の電子的設計の有用な未テスト状態を特定する方法を実行するためのコンピュータプログラム製品。
  34. 電子的設計の有用な未テスト状態を特定するコンピュータ実装される方法であって、
    前記電子的設計の少なくとも一部にアナログ部分を有する前記電子的設計の表現を受信するステップと、
    前記電子的設計の仕様を少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様によって限定される少なくとも1組の正当な状態を生成するステップと、
    前記電子的設計の検証履歴を少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様、前記少なくとも1組の正当な状態、および、前記少なくとも1つの検証履歴、のうち少なくとも1つに少なくとも部分的に基づいて、有用な未テスト状態を特定するステップと
    を備える、方法。
  35. 前記電子的設計の製造プロセスバリエーションを少なくとも1つ受信することと、
    前記電子的設計の機能的バリエーションを少なくとも1つ受信することと
    をさらに備える、請求項34に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  36. 前記少なくとも1つの製造プロセスバリエーションおよび前記少なくとも1つの機能的バリエーションに少なくとも部分的に基づく有用な未テスト状態を前記特定すること、請求項35に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  37. 少なくとも1つの刺激および少なくとも1つの刺激主張のうち少なくとも一方を受信するステップをさらに備える、請求項34に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  38. 少なくとも1つの出力測定値および少なくとも1つの出力主張のうち少なくとも一方を受信するステップをさらに備える、請求項34に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  39. 少なくとも1つのアナログテストハーネスモデルを受信するステップをさらに備える、請求項34に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  40. シミュレーションの出力を少なくとも1つ解析するステップをさらに備える、請求項34に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  41. 前記少なくとも1つの検証履歴と、前記少なくとも1つの仕様の抽象化の少なくとも1レベルとのうち少なくとも一方に少なくとも部分的に基づいて、検証状態カバレッジを特定するステップをさらに備える、請求項34に記載の有用な未テスト状態を特定するコンピュータ実装される方法。
  42. 過渡的でないコンピュータ可用媒体上に実装されるコンピュータプログラム製品であって、
    前記過渡的でないコンピュータ可用媒体は命令の列を記憶しており、
    前記命令の列がプロセッサによって実行されると、前記命令の列は、前記プロセッサに電子的設計の有用な未テスト状態を特定する方法を実行させ、
    前記方法は、
    少なくとも1つのアナログ部分から少なくとも部分的に構成される前記電子的設計の表現を受信するステップと、
    前記電子的設計の仕様を少なくとも1つ受信するステップと、
    前記電子的設計の前記少なくとも1つのアナログ部分の製造プロセスバリエーションを少なくとも1つ受信するステップと、
    前記電子的設計の前記少なくとも1つのアナログ部分の機能的バリエーションを少なくとも1つ受信するステップと、
    前記少なくとも1つの仕様、前記少なくとも1つの製造プロセスバリエーション、および、前記少なくとも1つの機能的バリエーション、のうち1つによって限定される少なくとも1組の正当な状態を生成するステップと、
    を備える、コンピュータプログラム製品。
  43. 前記電子的設計の前記少なくとも1つのアナログ部分の検証履歴を少なくとも1つ受信することと、
    前記少なくとも1つの仕様、前記少なくとも1組の正当な状態、前記少なくとも1つの製造プロセスバリエーション、前記少なくとも1つの機能的バリエーション、および、前記少なくとも1つの検証履歴、のうち少なくとも1つに少なくとも部分的に基づいて、有用な未テスト状態を特定することと
    をさらに備える、請求項42に記載のコンピュータプログラム製品。
  44. 前記少なくとも1つの検証履歴および前記少なくとも1組の正当な状態に少なくとも部分的に基づいて、検証完全性を評価することをさらに備える、請求項43に記載のコンピュータプログラム製品。
JP2016567188A 2014-05-09 2015-05-11 電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法 Pending JP2017516224A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461991069P 2014-05-09 2014-05-09
US61/991,069 2014-05-09
US14/707,723 US9875325B2 (en) 2014-05-09 2015-05-08 Computer implemented system and method of identification of useful untested states of an electronic design
US14/707,723 2015-05-08
PCT/US2015/030137 WO2015172141A1 (en) 2014-05-09 2015-05-11 Computer implemented system and method of identification of useful untested states of an electronic design

Publications (1)

Publication Number Publication Date
JP2017516224A true JP2017516224A (ja) 2017-06-15

Family

ID=57795486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016567188A Pending JP2017516224A (ja) 2014-05-09 2015-05-11 電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法

Country Status (2)

Country Link
JP (1) JP2017516224A (ja)
DE (1) DE112015002188T5 (ja)

Also Published As

Publication number Publication date
DE112015002188T5 (de) 2017-02-02

Similar Documents

Publication Publication Date Title
US11657201B2 (en) Computer implemented system and method of identification of useful untested states of an electronic design
JP6893232B2 (ja) 電子的設計の検証コマンドの翻訳のコンピュータ実装される方法および記録媒体
US10963608B2 (en) System and method for passive verification
US9147026B2 (en) Method and system of change evaluation of an electronic design for verification confirmation
US11704448B2 (en) Computer implemented system and method of translation of verification commands of an electronic design
EP3655963A1 (en) Computer implemented system and method of translation of verification commands of an electronic design
JP2017516224A (ja) 電子的設計の有用な未テスト状態を特定するコンピュータ実装されるシステムおよび方法
Sundar et al. Assertion based self-checking of analog circuits for circuit verification and model validation in SPICE and co-simulation environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191008

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200108

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200306

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200818