• Home
  • :
  • Community
  • :
  • Blogs
  • :
  • カスタムIC/ミックスシグナル
  • :
  • Spectre Tech Tips: 複数のDC解によって引き起こされるSpectreの精度の問題の特定と解決

カスタムIC/ミックスシグナル Blogs

  • All Blog Categories
  • Breakfast Bytes
  • Cadence Academic Network
  • Cadence Support
  • Computational Fluid Dynamics
  • CFD(数値流体力学)
  • 中文技术专区
  • Custom IC Design
  • カスタムIC/ミックスシグナル
  • 定制IC芯片设计
  • Digital Implementation
  • Functional Verification
  • IC Packaging and SiP Design
  • In-Design Analysis
    • In-Design Analysis
    • Electromagnetic Analysis
    • Thermal Analysis
    • Signal and Power Integrity Analysis
    • RF/Microwave Design and Analysis
  • Life at Cadence
  • Mixed-Signal Design
  • PCB Design
  • PCB設計/ICパッケージ設計
  • PCB、IC封装:设计与仿真分析
  • PCB解析/ICパッケージ解析
  • RF Design
  • RF /マイクロ波設計
  • Signal and Power Integrity (PCB/IC Packaging)
  • Silicon Signoff
  • Solutions
  • Spotlight Taiwan
  • System Design and Verification
  • Tensilica and Design IP
  • The India Circuit
  • Whiteboard Wednesdays
  • Archive
    • Cadence on the Beat
    • Industry Insights
    • Logic Design
    • Low Power
    • The Design Chronicles
Custom IC Japan
Custom IC Japan
5 Jan 2022

Spectre Tech Tips: 複数のDC解によって引き起こされるSpectreの精度の問題の特定と解決

 シミュレーションの精度問題は、テストケースの設定の誤り、不適切なシミュレーションオプション、シミュレーションエンジンの問題、誤った期待値など、さまざまな理由に起因する可能性があります。これまでの経験によると、精度の問題の多くは、複数のDC解を持つデザインによって引き起こされます。このブログと関連するアプリケーションノートは、問題を説明し、その問題を特定して解決する方法を説明しています。

はじめに

頻繁に、Spectre® X SimulatorとSpectre® Accelerated Parallel Simulatorや、Spectre iterated EMIRとdirect EMIR解析、またはSpectre® Circuit Simulatorと他のシミュレータによって生成されたシミュレーション結果の違いに関連する質問を頂きます。これらの問題の大部分について、根本的な原因は複数のDC解を持ったデザインであることがわかりました。

デザインにラッチ、メモリセル、およびメモリとして動作するその他の素子が含まれている場合は、それらを適切に初期化することが重要です。ほとんどのデザインでは、電源投入または初期化フェーズ中に回路を適切に初期化する起動ロジックがあります。初期化フェーズでは、最初の回路イベントが発生する前に、メモリとして動作するすべてのセルが一意で明確に定義された状態に初期化されるようにします。この初期化は、メモリ効果のあるセルだけでなく、複数の有効な状態(multiple possible state)を持つ可能性のあるアナログセルにとっても重要です。たとえば、起動回路またはヒステリシスのあるコンパレータを必要とするバンドギャップ回路などです。

多くの場合、回路シミュレーションでは、サブブロックまたは切り取られた一部の回路がシミュレートされます。このような場合、初期化回路または適切な初期化を見逃す可能性があり、time = 0で複数の有効な状態が発生する可能性があります。デザインによっては、time = 0での回路状態の違いにより、過渡またはその他の解析動作に違いが生じる可能性があり、これらの違いはシミュレータの精度の問題として認識される可能性があります。

複数のDC解によって引き起こされるSpectreの精度問題を特定するには、次の手順に従います:

  • 不完全なDC解を除外する
  • 複数のDC解を特定する
  • 動作点解のクロスチェック

不完全なDC解を除外するには、Spectreログファイルをチェックして、DCの計算が完全に収束したかどうか、またはDCの計算が早期に終了したかどうかを確認する必要があります。このステップの詳細は、アプリケーションノートに記載されています。

複数DC解を特定する

シミュレーションAが正確な結果を提供し、シミュレーションBが誤った結果を提供する例を考えてみます。問題がデザインの複数のDC解によって引き起こされている可能性があると思われる場合、最初のステップは、これら2つのシミュレーション間でDC動作点の結果を比較することです。まだ行っていない場合は、Spectreのwriteステートメントを使用して動作点ファイルを書き込む必要があります。

Simulation A:
tr1 tran stop=1u write="simA.ic"

Simulation B:
tr1 tran stop=1u write="simB.ic"

Spectreインストールディレクトリにて提供されるspwユーティリティを使用して、2つの動作点ファイルの違いを確認できます。

spw ic --d simA.ic simB.ic

この比較の結果は、次のようになります:

Golden file     Measured file   Quantity     Common     Equal      Diff      Displayed
-----------     -------------   --------     ------     -------    ----      ---------
simA.ic          simB.ic           V         817029     808007     9022      10
simA.ic          simB.ic           I         237        234        3          3

レポートの例では、双方のICファイルに817029の共通ノードが含まれ、808007ノードが両方のICファイルで同じ電圧を持ち、9022ノードが異なる電圧を持っていることを示しています。また、237個の電源素子電流のうち3個の電流が異なります。spwユーティリティは、差分がreltol=1e-3、vabstol=1uV、およびiabstol=1pAのデフォルトのspwのしきい値を下回っている場合、結果を同一と見なします。

ノード電圧が異なる場合、必ずしも複数のDC解の問題があることを意味するわけではありません。デフォルトのvabstol=1uVによって検出されるmVレベルの違いがある可能性がありますが、これらはtime = 0での実際の回路状態の違いではありません。したがって、電圧差が最も大きいノードのレポートを確認する必要があります。

Quantity : V

+------------------------------------------------------------------+----------+-------------+----------+---------------+
| Name                                                             |   Golden |    Measured |     Diff |   RelDiff (%) |
+==================================================================+==========+=============+==========+===============+
| I0.node_a                                                        | 0.829527 | 9.63673e-05 | -0.82943 |       99.9884 |
+------------------------------------------------------------------+----------+-------------+----------+---------------+
| I0.node_b                                                        | 0.829527 | 9.63643e-05 | -0.82943 |       99.9884 |
+------------------------------------------------------------------+----------+-------------+----------+---------------+
| I0.node_c                                                        | 0.829527 | 9.62921e-05 | -0.82943 |       99.9884 |
+------------------------------------------------------------------+----------+-------------+----------+---------------+

上記のレポートでは、報告されたすべてのノードが1つのICファイルでは0.8Vの状態ですが、他のファイルでは0Vの状態であることがわかります。デザインに約0.8Vの電源がある場合、ノードに複数の有効なDC解(グラウンドおよびvddレベル)があり、2つのシミュレーションで異なる解が見つかった可能性があります。

動作点解のクロスチェック

一部のノードで異なるDC解となるのは、これらのノードに複数のDC解を持つデザインが原因である可能性があります。ただし、2つのシミュレータ間で使用されるDCアルゴリズムが異なることが原因である可能性もあります。これを確認するために、動作点解をクロスチェックできます。

まず、シミュレーションAからシミュレーションBに動作点ファイルをロードし、シミュレーションBとAのDC解ファイルが正しい結果を提供するかどうかを確認します。

Simulation B: tr1 tran stop=1u readns="simA.ic"

次に、シミュレーションBからシミュレーションAに動作点ファイルをロードし、シミュレーションAが誤った結果を提供するかどうかを確認します。

Simulation A: tr1 tran stop=1u readns="simB.ic"

simB.icを使用したシミュレーションAが誤った結果を提供し、simA.icを使用したシミュレーションBが正しい結果を提供する場合、AとBの間のシミュレーション結果の違いは、複数のDC解を持つデザインが原因であることが証明されます。

複数解の問題を修正する

デザインにおける複数のDC解の問題は、このブロックの設計者が徹底的に解析する必要があります。問題のあるノードの中には、回路の調整が必要なものもあれば、単純化されたシミュレーション設定によってのみ引き起こされることがわかっているものもあります。後者の場合、Spectreのicステートメントで適切に初期化するだけで十分です。

ic I0.nodeA=0.8 I0.node2=0.8 …

問題のあるノードのリストが長く、どのシミュレーションが期待されるDC解を提供するかが既にわかっている場合(この例ではシミュレーションA)、シミュレーションAの動作点ファイルを使用して、readicステートメントを使用することにより、他のすべてのシミュレーションに同じDC解を適用できます。

Simulation B: tr1 tran stop=1u readic="simA.ic"
Simulation C: tr1 tran stop=1u readic="simA.ic"
…

この強引な解決策は、シミュレーションの精度に対する複数のDC解の影響を排除しますが、これは回避策にすぎません。それでも、設計者は問題のあるノードに根本的に対処する必要があります。

まとめ

このブログでは、デザイン内の複数のDC解によって引き起こされるSpectreの精度問題を特定して修正する方法について説明しました。詳細については、関連リソースにリストされているアプリケーションノートを参照してください。

Stefan Wuensche
Translator: Yuko Yoneda

関連リソース 

  • Spectre Classic Simulator, Spectre Accelerated Parallel Simulator (APS), and Spectre Extensive Partitioning Simulator (XPS) User Guide
  • Introducing Spectre X (英語版/日本語版)
  • Identifying and Resolving Spectre Accuracy Issues Caused by Multiple DC Solutions

製品のご案内が必要な場合は、ケイデンスのサポートAEにご連絡ください。また、Cadenceの回路設計向けプロダクトとサービスの詳細については、www.cadence.comをご参照ください。

Spectre Tech Tipsについて

Spectre Tech Tipsは、Spectre®回路シミュレータの機能や可能性を探求することを目的としたブログシリーズです。このシリーズでは、Spectreの有用な機能や改善についての知見を提供することに加えて、Spectreに関連するあらゆることについての知識と経験を共有する、様々なブロガーや専門家の声を届けます。

Tags:
  • spectre aps |
  • DC Solution |
  • Analog Simulation |
  • Spectre |
  • japanese blog |
  • simulation |
  • Spectre X Simulator |