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

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