ラベル FineSim の投稿を表示しています。 すべての投稿を表示
ラベル FineSim の投稿を表示しています。 すべての投稿を表示

2020年6月4日木曜日

Finesimで回路のタイプを指定し,精度と速度のトレードオフをとる(finesim_mode)

finesim_modeオプションを使い,対象回路のタイプを指定できる.

.option finesim_mode=mode

modeは以下の7つがある.

Mode Target
spicead High precision analog circuits.
spicehd Highly sensitive analog circuits.
spicemd General SPICE mode for all circuit types.
spicexd Mixed signal design/Extracted Post Layout.
prohd Large mixed signal design/leakage/power simulations.
promd Timing simulations.
proxd Functional verifications.


対象回路のタイプを指定すると,タイプに応じてサブオプションが
以下のように変化し,精度と速度と回路規模のトレードオフをとってくれる.
hspiceでいる runlvl に相当するようだ.

model speed spred partition qlevel loadmodel tunit tsc
spicead 4.5 0.5 0 0 2 N/A 0.01p lte2
spicehd 4 0.5 0 0 1 N/A 0.01p lte1
spicemd 4 1 0 0 1 N/A 0.1p lte1
spicexd 3 1 1 0 1 N/A 1p lte1
prohd 3 1 1 1 N/A 4 1p lte1
promd 2 2 2 1 N/A 2 1p lte1
proxd 2 3 3 1 N/A 1 1p lte1

finesim_model はトランジスタモデルの選択,
finesim_speed は計算のタイムステップ,イベント信号,Newton-Raphson法での公差の制御,
finesim_spred はRC縮約の程度,
finesim_partition は回路分割の積極度,
finesim_qlevel は電流計算時の収束強度の設定,
finesim_loadmodel は回路分割時の容量モデルの設定,
finesim_tunit は基本となる時間解像度の設定,
finesim_tsc は過渡解析時の打ち切り誤差の設定,
をそれぞれ設定する

サブサーキットごと,ローカルに指定する事も可能.
.option finesim_mode="pattern:mode"[:subckt | :instance | :node | :device]

例えばインスタンス X1 以下のデバイスを spicemd 設定にできる.
.option finesim_mode="X1.*:spicemd":device
インスタンス名でなく,サブサーキット名で指定することもできる.
.option finesim_mode="INV*:spicemd":device

.opset を使うと,finesim_modeに応じて使うオプションを個別に追加することもできる.
.opset (finesim_mode=mode) option_name[=option_value] ....

spicemd の時だけ,計算法をgearにすることができる.
.opset (finesim_mode=spicemd) finesim_method=gear

2019年8月19日月曜日

HSPICE互換シミュレータ

HSPICE はゴールデンな回路シミュレータですが,みんなが使うのでライセンスがなくなりやすい.パンがなければお菓子を食べれば(ry と言われるけれど,じゃあどんなお菓子(選択肢)があるのか気になります. 代替になりうるシミュレータについて調べてみた.

・FineSim SPICE
旧Magma の SPICE / FastSPICE シミュレータ.HSPICE 向けの記述がほぼそのまま動きます.今は Synopsys が売り出しているから安心?
finesim  spice.sp -mode=spicemd -np [numCPU] -auto -spice

・Eldo
Mentor Graphics の SPICE シミュレータ.HSPICE 互換モードがある(-compat).欧州では結構メジャーらしい.
eldo -compat spice.sp

こちらの環境ではプロセスコーナーオプションの指定に難があり,ライブラリが多段になっていてなかでプロセスコーナーオプションの名前が変わる場合(例えば,最初の.libで"TT"オプションを指定し,呼び出した次の.libでは"tt_core"オプションになる)に追随できないようで,最終的に「そんなトランジスタモデル無いよ」と言われてエラーが出る.
トランジスタモデルが暗号化されているからかもしれない.
そもそもこの PDK の設計がクソという意見もある.

・Spectre
Cadence の SPICE シミュレータ.HSPICE 互換モードがあるのか調べてません.

・SmartSpice
Silvaco の SPICE シミュレータ.某所ではバイナリがなくなってしまったので未調査.ライセンスはまだ発行されているっぽい??

LTspice や Ngspice が商用 PDK で動くかどうかは知りません.計算結果もあまり変わらない Finesim でいいんじゃないかな.

2019年3月4日月曜日

FineSimで波形ファイルのフォーマットを指定する

FineSimで波形ファイルのフォーマットを指定するには以下の設定を加える.

.option finesim_output=[fsdb|wdf|psf|tr0|utf|psfascii|none|out]  

デフォルトではfsdbになる.noneを設定すると,.probeや.option postに関係する設定を全て無視するそうだ.

2019年3月3日日曜日

FineSimでfsdbのバージョンを指定する

FineSim M-2017.03で波形ファイルを出力するとデフォルトでfsdbのversion 5.5になる.Custom Waveview の2016.06-SP2では,fsdbのバージョンは5.4までしかサポートしておらず波形を読めない.

FineSimの出力するfsdbのバージョンを指定するには以下のオプションを使う.

.option finesim_fsdb_version=[5.4|5.5] 

FineSim M-2017.03ではfsdbの5.3以下のバージョンはサポートされないらしい.悲しい.

2018年12月18日火曜日

FineSimを使ってみる

TAU Workshopで「HSPICE遅すぎるんですけど(><)」って文句を言いまくっていたら,「FineSimいいよ,マルチコア対応だし速いし」と元MagmaからSynopsysに移った人がお勧めしていたので使ってみた.試したのは FineSim M-2017.03-SP2-5,普段使いは HSPICE J-2014.09-SP1-2 .FineSimをSPICE互換モードで利用するには以下のようにする.マルチプロセッサで実行するために-np [numCPU] を付けている(HSPICEの-mtと同じようだ).-autoオプションを付けると,独立したsweepを別プロセッサで実行する(HSPICEの-mpと同じようだ).

% finesim  spice.sp -mode=spicemd -np [numCPU] -auto -spice

あるプロセスのDFFのD2Q遅延とセットアップ時間を評価してみた.D2Cを変えながらD2Qの最小値を求める.

D2Q遅延:1.4% の差(FineSimの方が速い)
Setup:同じ(刻みは0.1ps)

ほとんど同等の結果だ.

速度は以下のような感じ.201点スイープです@intel Core i7 4790K 8-thread.

HSPICE (-mp -merge) 37秒
FineSim (-np) 22秒
FineSim (-np -auto) 13秒

めっちゃ速い.FineSimは標準出力へのログの吐き出しが無ければもっと速くなりそう.

気になったところ
・HSPICEの構文解析でOKな記述がFineSimではエラーになったりする.
・.measureに失敗したときに,HSPICEは"failed"と表示するが,FineSimは"error"と表示する.
・FineSim-EmbeddedというのがSiliconSmartに入っていてライセンス無く使えるらしい.
・FineSimは2つの解析エンジンを持っているので,どちらのエンジンで実行すべきか指定する(指定しないと自動選択されるらしい).
(1) FineSim Pro,回路分割を行いマルチCPUで解く.いわゆるFastSPICEでほどよい精度と速度のトレードオフをもつ.オプションは-mode=promd
(2) FineSim SPICE,回路分割を行わなず,単一のマトリックスをマルチCPUで解く.いわゆる普通のSPICEでSPICE精度を保ちマルチコア対応で速い.オプションは-mode=spicemd