• 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: パラメータ値の警告のリミットを選択する
Custom IC Japan
Custom IC Japan

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
param
Circuit simulation
Spectre Circuit Simulator
Spectre
japanese blog
check
verification

Spectre Tech Tips: パラメータ値の警告のリミットを選択する

19 Oct 2023 • 4 minute read

 パラメータ値に関する警告メッセージを受信するタイミングについて、ケイデンスのデフォルトのソフトリミットを受け入れるか、またはユーザーが独自にリミットを入力することができます。また、Spectreシミュレータがチェックするパラメータを制御することもできます。このセクションでは、すべてのパラメータについて説明します。

パラメータ範囲制限ファイルの作成

状況によっては、警告メッセージのパラメータ制限を独自に設定したい場合があります。例えば、モデルライブラリのセットを独自に管理している場合などです。警告用のパラメータ制限を自分で選びたい場合は、テキストエディタを使ってパラメータ範囲制限ファイルを作成する必要があります。

パラメータ範囲制限ファイルには以下の構文が必要です。シングルブラケット ([]) で囲まれたフィールドはオプションです。

[ComponentKeyword] [model] [LowerLimit <[=]] [|]Param[|] <[=] UpperLimit]

パラメータ制限ファイルの以下のシンタックスルールを守ってください:

  • コンポーネントインスタンスまたはモデルに対して、入力、出力、または動作点パラメータの制限を指定することができます
  • 各パラメータの制限値を1行で指定する必要があります
  • アングルブラケット(<)を使って開境界を指定することも、等号と組み合わせて(<=)閉境界を指定することもできます。閉境界を指定する場合、<と=の間にスペースを入れることはできません
  • 範囲は、包含的または排他的を指定できます。排他的範囲を指定する場合、上限は下限より小さくなければなりません

次の図は、範囲指定の適切なフォーマットを示しています。

  

  • コンポーネントキーワードは、SPICEとの互換性のために使用される名前ではなく、Spectreの名前でなければなりません。例えば、mosではなくmos3を使用します
  • コンポーネントに複数のパラメータ制限を指定する場合、コンポーネントキーワードを指定するのは1回だけです。Spectreシミュレータは、新しいコンポーネントキーワードを指定しない限り、そのキーワードが前のパラメータから変更されていないとみなします
  • パラメータの上限を複数回指定した場合、最後に指定したパラメータが以前の上限を上書きします
  • パラメータを定義し、そのパラメータに制限を与えない場合、そのパラメータについてはすべての制限が無効になります
  • 整数、実数、または列挙型のパラメータに対して制限を指定することができます。列挙型パラメータとは、あらかじめ定義された値 (yesかnoか、allかnoneかなど) のみを取るパラメータのことです

列挙型パラメータの制限を指定するには、そのパラメータ制限の宣言の数え上げのインデックスを使用します。コンポーネント名のパラメータのインデックスを見つけるには、Spectreオンラインヘルプ (spectre -h) のコンポーネント名のパラメータ一覧を参照し、制限の宣言の数え上げを0から数えてください。

例えば、BJTの動作点パラメータregionをrev (反転) させないように指定するには、 BJTコンポーネントのパラメータ一覧からregionパラメータを探します。regionパラメータの説明は次の通りです:

$ spectre -h bjt

region=fwd Estimated operating region. Spectre outputs a number (0-4) in rawfile. Possible values are off, fwd, rev, sat, and breakdown.

このパラメータでは、offがインデックス0、fwdがインデックス1、revがインデックス2、satがインデックス3です。いずれかのBJTが反転した場合に通知する制限を指定するには、以下の指定のいずれかを使用します:

2 < region < 2
または
3 <= region <= 1

  • モデルパラメータに制限をかける場合は、キーワードmodelを指定する必要があります。キーワードmodelを指定しない場合、制限はインスタンスパラメータに適用されます
  • 縦線 (|vto|) を使用して、パラメータの絶対値の上限または下限を表すことができます。例えば、
    resistor 0.1 < |r| < 1M
    は、rの絶対値が0.1Ωより大きく、1メガΩ未満であることを指定します。絶対値記号とパラメータ名の間にはスペースを入れてはいけません
  • 現在、ベクトルパラメータに制限をかけることはできません
  • Spectreネイティブモードのスケールファクタを使用して、パラメータ制限を記述することができます。例えば、
    f <= 1.0e6
    は次のように書けます:
    f <= 1M

パラメータ範囲制限ファイルの例

次のネットリスト「input.scs」と、


simulator lang=spectre
global 0

R1 (n1 n2) resistor r=8k m=2
R2 (n2 0) resistor r=1k m=1

V1 (n1 0) vsource type=dc dc=1

info0 info what=input where=file file="input.txt"
info1 info what=output where=file file="output.txt"
info2 info what=oppoint where=file file="oppoint.txt"

次のパラメータ制限ファイル「resistor.lmts」を考えます。

; resistor soft parameter range limits

; input parameters
resistor 0.1 <= r <= 1e3
resistor 0.1 <= m <= 1

; output parameters
resistor 0.1 <= reff <= 1e3
resistor 0.1 <= meff <= 1

; oppoint parameters
resistor 0.1 <= res <= 1e3
resistor 0 < pwr < 100u

パラメータ名 (r, m, reff, meff, res, pwr) とコンポーネントキーワード (resistor) は、Spectreオンラインヘルプのパラメータ一覧 (spectre -h resistor) で確認できます。この例では、Spectreシミュレータに以下の条件で警告を発するよう指示しています:

  • 入力パラメータrが0.1Ωから1000Ωの範囲外
  • 入力パラメータmが0.1から1の範囲外
  • 出力パラメータreffが0.1Ωから1000Ωの範囲外
  • 出力パラメータmeffが0.1から1の範囲外
  • 動作点パラメータresが0.1Ωから1000Ωの範囲外
  • 動作点パラメータpwrが0 Wから100u Wの範囲外

+paramを指定した以下のコマンドラインでSpectreを実行します:

spectre input.scs +param resistor.lmts

以下の警告が出力ログ「input.log」に表示されます。

各警告は、「resistor.lmts」で指定された制限値と同色で色分けされています。


Time for Elaboration: CPU = 21.543 ms, elapsed = 21.7299 ms.
Time accumulated: CPU = 250.886 ms, elapsed = 218.78 ms.
Peak resident memory used = 105 Mbytes.


Notice from spectre during hierarchy flattening.
R1: `r' has the unusually large value of 8 kOhm.
R1: `m' has the unusually large value of 2.


Time for EDB Visiting: CPU = 713 us, elapsed = 735.044 us.
Time accumulated: CPU = 251.736 ms, elapsed = 219.689 ms.
Peak resident memory used = 105 Mbytes.


Circuit inventory:

nodes 2
resistor 2
vsource 1

Analysis and control statement inventory:

info 3


Notice from spectre during initial setup.
R1: `reff' has the unusually large value of 4 kOhm.
R1: `meff' has the unusually large value of 2.

Time for parsing: CPU = 4.243 ms, elapsed = 7.43198 ms.
Time accumulated: CPU = 256.102 ms, elapsed = 227.262 ms.
Peak resident memory used = 107 Mbytes.

~~~~~~~~~~~~~~~~~~~~~~
Pre-Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~
info0: writing input parameter values to file `input.txt'.
info1: writing output parameter values to file `output.txt'.
info2: writing operating point information to file `oppoint.txt'.

Notice from spectre during check, during DC analysis, during info `info2'.
R1: `res' has the unusually large value of 4 kOhm.
R1: `pwr' has the unusually large value of 160 uW.


Aggregate audit (5:40:49 PM, Wed Sep 27, 2023):
Time used: CPU = 267 ms, elapsed = 267 ms, util. = 100%.
Time spent in licensing: elapsed = 56.6 ms, percentage of total = 21.2%.
Peak memory used = 109 Mbytes.
Simulation started at: 5:40:49 PM, Wed Sep 27, 2023, ended at: 5:40:49 PM, Wed Sep 27, 2023, with elapsed time (wall clock): 267 ms.
spectre completes with 0 errors, 0 warnings, and 7 notices.

パラメータ範囲制限ファイルの入力

パラメータ範囲制限ファイルを入力するには、次の2つの方法があります:

  • コマンドラインからspectreコマンドの+param <filename>オプションを入力するか、環境変数に指定します。<filename>はパラメータ範囲制限ファイルの名前です。次の例では、limits3がtest.circuitのシミュレーションの制限ファイルです。
    spectre +param limits3 test.circuit
  • 以下の例のような構文のinclude文をパラメータ制限ファイルに記述して、そのファイルから別のパラメータ制限ファイルを読み込みます。
    include "filename"
    filenameは制限ファイルにつける名前です。

関連リソース

  • Spectre Classic Simulator, Spectre APS, Spectre X, Spectre XPS, Spectre FMC Analysis, and Legato Reliability Solution User Guide
  • COS 日本語ページ: サポート・ホーム > CIC Home > ADE/SPECTRE/AMS

Amaninder
Translator: Naoto Hasegawa

Spectre Tech Tipsについて

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

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

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