• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. カスタムIC/ミックスシグナル
  3. Spectre Tech Tips: Spectre回路シミュレータでのDSPFポストレイアウトネットリストの…
Custom IC Japan
Custom IC Japan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
spectre aps
post-layout simulation
EMIR Analysis
EMIR Simulation
DSPF
netlist
Spectre
japanese blog
Spectre X Simulator
EMIR

Spectre Tech Tips: Spectre回路シミュレータでのDSPFポストレイアウトネットリストの使用

13 Apr 2022 • 1 minute read

 DSPFは、様々なネットリストフォーマットの1つで、Spectre®を含むEDAツールで、トランジスタレベルでのレイアウト後の抽出されたデザインを表現するために使用されます。DSPFファイルは、Quantus Extraction Solutionのような抽出ツールによって作成されます。

しかし、それらの内容と書式は、抽出ツールとその設定に大きく依存しています。DSPFネットリストの問題が原因でシミュレーションの問題は発生することが多数あります。

DSPFネットリストの内容

DSPFネットリストは、ヘッダー、ネットセクション、およびインスタンスセクションから構成されています。ヘッダーには、抽出ツールやデザイン名、シンタックスの定義、たとえば端子デリミタ、階層デリミタ、バス表記などが含まれます。必ずではありませんが、一般的にはDSPFネットリストには、デザインを表現するためのサブサーキット定義が1つ含まれています。

サブサーキットポートでもあるVDDネットのDSPFネットリストの例を以下に記します。黄色のボックスは、VDDネット上の寄生RCネットワークを図示しており、2つのピン(*| P)、3つのタップデバイスインスタンス(*| I)、および多数のサブノード(*| S)が含まれていることを図示しています。簡略化のため、2つのサブノード *| Sと、1つの抵抗、1つのコンデンサのみをネットリストに記載しています。寄生容量は黄色のボックスで図示されていません。

VDDのNet Sectionでは、寄生RCネットワークとその接続が定義されていますが、デザインインスタンスセル(MOSFET、抵抗、サブサーキットなど)とそれらの幅、長さ、およびその他パラメータについてはDSPFファイルのInstance Sectionで定義されています。

SpectreでのDSPFネットリストの使用方法

DSPFネットリストは、通常のSPICEネットリストとして解釈できます。その場合、すべての *| 情報はネットリストを読み取る際に無視されます。Spectreのinclude文で、通常のSpectreパーサーを使用して読み込ませることが出来ます。SpectreパーサーはDSPFに最適化されていないので、この方法は、DSPFの様々なパラメータをalter、sweep、monte carloなどの高度な機能が使用されている場合にのみ推奨されます。これらの解析機能は、後述のdspf_include 文ではサポートされていません。

include "design.spf"

他のすべての用途、特に大規模なポストレイアウトまたはEMIRシミュレーションでは、Spectreのdspf_include文が推奨されます。dspf_include文は、特別で高性能な、大容量のDSPFパーサーを有効にします。 さらに、ファイルの通常のSPICEコンテンツだけでなく、*| P、*| I、および*| S文で定義されている接続情報と座標情報も読み取ります。これは、後のEM違反の計算とEMIR結果の視覚化のために、ノードの座標やレイヤー情報、寄生抵抗のプロパティが必要となるEMIRシミュレーションにとって特に重要です。

dspf_include "design.spf"

spfcheckerを使用してDSPFネットリストの問題を特定する

DSPFネットリスト形式は複雑であり、場合によっては、抽出されたDSPFネットリストに接続の問題がある可能性があるので、Spectreはspfcheckerと呼ばれるユーティリティを提供しています。このユーティリティは、DSPFネットリストを読み取り、接続または構文の問題がないかチェックします。DSPFネットリストに対してspfchecker を実行し、エラーが報告されなかった場合にのみ、その後のSpectreシミュレーションでそれを使用することが推奨されます。

spfchecker design.spf

spfchecker が提供する最も重要な情報は、design.spf.chklogファイル内のDSPFネットリストの問題のレポートです。 以下の様なものになります:

Message Statistics:

SPF-0002:         5       NETs with multiple PINs
SPF-0003:         2       ERROR: NETs broken into pieces
SPF-0012:       342       ERROR: Instances not found in the Instance Section
SPF-0013:      1143       Capacitors with capacitance >= 0.1pf (biggest: 3.7e-11 F)
SPF-0019:       430       ERROR: NETs with sub-nodes not connecting to any parasitics
SPF-0021:      2282       Resistors with resistance > 10000 Ohm (biggest: 65912 Ohm)
SPF-0024:         5       NETs with resistors without x/y coordinates
SPF-0027:  18414028       Resistors without x/y coordinates

ERRORでマークされたメッセージは、SpectreでDSPFネットリストを使用する前に修正が必要となる、主要なDSPFネットリストの問題を報告します。誤ったDSPFネットリストが使用された場合、入力のDSPFネットリストが正しくないので、Spectreは誤った結果を作成する可能性があります。

このブログでは、spfchecker の全てのメッセージについて説明することはできませんが、一般的なDSPFの問題の1つをさらに詳しく見ていきましょう。

SPF-0003:         2       ERROR: NETs broken into pieces
SPF-0003: Node " VDD#3" starts a new island. …
SPF-0003 (line 177882): NET " VDD" is broken into 2 pieces. The connectivity is wrong.

spfcheckerは、VDDネットがislandの断片に分割されていることを報告します。このようなislandは、以下の図に記載されるようなものになります。サブノードVDD#3で始まる別のislandがあり、これにはVDDネットへの接続がありません。

タップデバイスMP1には電流が流れないことで、VDDネットは全ての負荷を認識できないので、このような誤ったDSPFを使用したポストレイアウトもしくはEMIRシミュレーションは、誤ったシミュレーション結果が得られてしまいます。 また、SpectreはislandとVDDネット間の接続がどのようになるべきかを推測できないため、Spectreにはネットを修正する良い方法はありません。 したがって、推奨される解決策は、DSPFネットリストを再抽出して、1つの一貫したVDDネットを作成することです。

spfchecker および、シミュレーションの問題を引き起こす可能性のあるDSPFエラーの詳細については、関連アプリケーションノートを確認してください。Spectreシミュレーションを実行する前に、DSPFネットリストを使用してspfchecker を実行し、エラーが報告されないことを確認することを強く推奨します。さもなければ、誤った結果を取得するために何時間ものシミュレーション時間を費やす可能性があります。

大きなDSPFファイルの解析に時間が掛かる大規模なポストレイアウトやEMIRシミュレーションには、dspf_includeを使用することが重要です。
一方で、dspf_includeパーサーは機能が制限されています。つまり、DSPFネットリストパラメーターを変更する、sweep、alter、monte carloなどの高度な解析では、dspf_includeの代わりにincludeを使用する必要があります。

Stefan Wuensche
Translator: Tomomi Hiraishi

関連リソース

  • Spectre Classic Simulator, Spectre Accelerated Parallel Simulator (APS), and Spectre Extensive Partitioning Simulator (XPS) User Guide
  • Introducing Spectre X (英語版/日本語版)
  • Using DSPF Post-Layout Netlists in Spectre Circuit Simulator
  • SPECTRE 日本語資料

また、ケイデンスのサポートAEに連絡して、ガイドを受けることもできます。

ケイデンスの製品とサービスに関する更なる情報をお求めの場合は、 www.cadence.comを訪れてください。

Spectre Tech Tipsについて

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

カスタムIC/ミックスシグナル Blogs 無料定期購読のご案内 

新規ブログが公開された際に通知を受け取る方法を、こちらにてご案内しています。是非ご登録ください。