データの保存 について
Q1 SmartSpiceのVectorsウインドウからPrintを用いて解析結果を出力すると、インプットデックで指定したのにも関わらず、そのステップで出力されていないのですが何故でしょうか?
Q2 SmartSpiceのメインウィンドウに出力される.measureなどの結果をファイルに保存したいのですが,どうすればよいのでしょうか?
Q3 .measureの出力結果を別のファイルに保存したいのですが、どうしたら良いでしょうか。
Q4 バッチモードで、“-r rawfile”コマンドライン・スイッチを使用しないで、結果をrawファイルにセーブするにはどうすればよいのでしょうか?
Q5 シミュレーション中に結果を増的にセーブするにはどうしたらよいのでしょうか?
Q6 SmartSpiceが生成するrawファイルのサイズを減らすにはどうしたらよいのでしょうか?
Q7 過渡解析時にrawファイルに保存される解析点の数を減少させるにはどうしたらよいのでしょうか?
Q8 smartspiceデータ形式をhspice形式へ変換することは可能でしょうか?
シミュレーションの収束について
Q9 動作点解析中に収束しなかった場合、どのようにしたらよいでしょうか?
Q10 過渡解析中に収束しなかった場合、どのようにしたらよいでしょうか?
設定について
Q11 SmartSpiceをカスタマイズするにはどうしたらよいのでしょうか?
波形表示について
Q12 シミュレーション中の波形をモニターしたい。
シミュレーションの実行について
Q13 UNIX/Linux上でバッチモード実行時に、グラフィックを使用していないのにも関わらず、以下のエラー・メッセージが出力されて他の端末から実行できない。
Q14 ライセンスが使用中の場合、シミュレーションを待機待ちの状態にして実行したい。
Q15 入力デッキに多くの.ALTERセグメントが含まれているとき、インターラクティブ・モードで自動的にすべてのセグメントをシミュレーションするにはどうしたらよいのでしょうか?
A1
SmartSpiceのグラフック・ポスト・プロセッサに表示される波形は、たとえば、過渡解析の場合、内部タイムステップの解析点で出力されています。これは、どの解析においても同様で、.DC, .AC .TRANにおいて、波形はこれらのステートメントで指定されたステップで出力されません。
もし、指定した間隔で出力したい場合、SmartSpiceのメインウインドウのAnalysisからRun Batchprintを用いて(PC版はメインウインドウのCommand:にrun batchprintとタイプします)、シミュレーションを実行します。このとき、.printで記述された出力変数がメインウインドウに出力されます。
A2 Unix版では、SmartSpiceメインウィンドウのOptionsメニューからSave Output Area...を選択しセーブすることができます。PC版では,FileメニューのSave Outputを指定すればファイルにセーブ可能です。
A3 コントロールカードに.OPTIONS SAVEMFILESあるいはSPLITMEASUREと記述すると別のファイルに保存されます。
A4
二つの新オプション、post及びprobeがSmartSpice1.3.6.R以降に導入されています。“post”オプションにより、SmartSpiceは自動的にrawファイルを生成します。
rawファイル名は、現在の入力デッキ名から拡張子“.raw”を置き換えたものが生成されます。
postオプションの値にはいくつかあり、たとえば1(デフォルト)は、バイナリのrawファイル、2はASCII形式のrawファイルを、3は単精度のバイナリrawファイルを生成します。
A5
デフォルトではSmartSpiceはすべての結果をシミュレーション終了時まで、オペレーティング・メモリに保存し、それからrawファイルを生成します。 大規模または時間のかかるシミュレーションの場合、シミュレーション中に結果をrawファイルにセーブすると便利です。これは、オプション “rawpts”を用いることで可能となります。
もし、“rawpts=num”が入力デッキの .optionsステートメントで指定されたとき、SmartSpiceは最初に十分なメモリを各変数のnumポイントを保存するために割り当てます。
シミュレーション中、SmartSpiceは、現在保存されているデータセットをnumポイントごとに、rawファイルの終わりに追加します。
このraw ファイルは、シミュレーション中のどの時刻においても参照することができます。
A6
デフォルトではSmartSpiceはrawファイルをASCII形式で保存します。多くの変数が保存される場合、または変数が多くの解析点を含んでいる場合、ASCII形式のrawファイルは、通常、かなり多量のディスク・スペースを消費させます。rawファイルのサイズを減らすためには、バイナリ形式を用いるのがさらに効果的です。
利用できるバイナリ形式には2つあります。rawファイルのフォーマットは、SmartSpiceの変数 “rawfiletype”、あるいは“post”オプションによって設定できます。
| rawfiletype | post | 記述 |
| binary | 1 | 倍精度バイナリ |
| ASCII | 2 | ASCII |
| binary_float | 3 | 単精度バイナリ |
この単精度フォーマットは、それらの倍精度のもの対して、約50%減少させることができます。独立プラットフォーム・フォーマットは異なるプラットフォーム上でバイナリrawファイルを生成、 及び参照するために使用することができます。
A7
SmartSpiceはデフォルトではすべての許容されるタイムポイントをrawファイルに保存します。許容されるタイムポイントは、要求される精度を満たすために、SmartSpiceによって選定されます。
.tranステートメント・オプションの“store=n”は、保存されるタイムステップの数を減らすために利用できます。このオプションが使用されたとき、SmartSpiceはn番目のタイムポイントごとにデータを保存します。もしinterpフラグが.optionsステートメントで設定されたとき、データは10番目のタイムポイントごとに保存されます。
つまりこれは“store=10”を.tran行で使用するのと同じです。
A8 SmartSpiceコマンドにより可能です。SmartSpiceをウィンドウモードで起動し、このウィンドウの最下部にある「Command:」の部分で下記のコマンドを実行します。
Command: rawconvert <旧ファイル> <新ファイル> <フォーマット>
例) rawconvert test.raw test.tr0 hspice_ascii
A9 .OPTIONSでITL1=val(Default=100)を大きくすると収束しやすくなります。
A10
timestepを小さくしてシミュレーションの精度を上げてください。もし、それでも収束しないようでしたら、コントロールカードに.OPTION CNODE=valあるいは、.OPTIONS GNODE=valを記述すると収束しやすくなります。ただし、CNODE,GNODEは全ノードにそれぞれ、C,Gをつけることになるので、あまり大きい値にすると波形が大きく変化してしまう可能性があるので注意が必要です。
もし、動作点が分かっている場合は.ICか.NODESETで収束しなかったノードに電圧をあたえることで収束させることができます。
A11
SmartSpice は起動時に、多数のコンフィグレーション・ファイルをオープンします。グローバル・コンフィグレーション・ファイルはSmartSpiceのインストール領域に保存され、位置と大きさに関するオプションを設定するの使われます。ローカル・コンフィグレーション・ファイルは各々のユーザー・ディレクトリに保存され、個々のユーザー設定として使われます。二種類のコンフィグレーション・ファイルを同時に利用することができます。初期ファイルは拡張子“.ini”を伴い、SmartSpiceで内部変数/オプションを設定するのに使用されます。
リソース・ファイルは“.res”の拡張子で、X-Windowリソース、つまりカラー、フォント、グラフィック等のオプションを設定するのに使われます。
SmartSpice が起動するとき、最初に $SILVACO/lib/smartspice/$RELEASE/commonディレクトリのグローバル初期ファイルSmartSpice.iniを読み込み、ここで、$SILVACOはインストール領域を、$RELEASEはSmartSpiceバージョン番号を表します。この後、ユーザーのホームディレクトリに保存されている各々のユーザーのローカルな初期ファイルを読み込みます。このファイルは隠されており、.SmartSpice.iniのファイル名で与えられます。この手順により、ユーザーのローカルな設定をどのグローバルな設定に対しても優先します。次に、例として初期ファイルを示します。
Mandatory Title line
.CONTROl
set syntax_form=1
set numdgt=12
set savemeasures=true
set rawfiletype=binary_float
define sum(a,b) a+b
.ENDC
SmartSpiceは正確に初期ファイルと同じ手順でリソースファイルを読み込みます。グローバル・リソース・ファイルSmartSpice.res は、グローバル初期ファイルと同じディレクトリに存在します。リソース・ファイルはSmartSpiceがウインドウ・モードで起動するときのみ、 あるいはバッチ/コマンドモードでプロット/ウインドウが作られるときにのみ解釈されます。
A12
コントロールカードに.iplot v(Node name)と記述しますと、v(Node name)をリアルタイムにモニターすることができます。
PSmartSpice: cannot connect to X server :0
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
A13 SmartSpiceは、バッチモード実行時においても、ライセンスが利用 できなかった場合のポップアップ・ウィンドウによる警告や、シミュ レーション中に波形ビュワーを利用することが可能なため、デフォルトで DISPLAY を利用します。
DISPLAY を使用しない完全なバッチモードを行いたい場合、通常のバッ チモード(-b)の代わりに、サイレント・バッチモード(-sb) を利用 できます。
smartspice -sb input_file ...
SmartSpice実行時に、-sb が指定された場合、全てのグラフィックの 表示は強制的に遮断され、完全なバッチモードが実行されます。
A14
通常、SmartSpice はライセンスが利用できない場合、ポップアップ・ウィ
ンドウにより警告を行いますが、SmartSpice 3.6.8.R で、この表示を抑
制する新しい機能が追加されました。
OS の環境変数 SFLMPOPUP の値を 0 に設定することで、ポップアップ・
ウィンドウを表示せず、全てのジョブは待機待ちの状態になります。待機中のジョブは、現在使用中のライセンスが解放され次第実行されます。
ただし、待機待ちのSmartSpiceのジョブは実行順序通りにならない場合
があります。これは、各待機待ちのジョブがある間隔で定期的にライセ
ンスが利用可能かのチェックを行いますが、そのタイミングによっては、
新しく投入された実行ジョブが、(運良く)ライセンスの空きを見つけて実行される可能性があるからです。
A15
SmartSpice がインターラクティブ・モードで起動する場合(つまりウインドウまたはコマンドモード)、そのとき入力デッキの解釈とシミュレーションの過程は、別々となっています。結果として、デッキが複数の.ALTERセグメントを含んでいた場合、SmartSpiceは各セグメントに対して分割されたデッキを作ります。ユーザーがシミュレーションの実行を試みるとき、SmartSpiceは最後の回路に対してのみシミュレーションを実行します。
ユーザーが「Decks」..「Input Decks」メニューからセグメントを選択することにより、別のセグメントをシミュレートすることが可能となります。 ただし、多くのセグメントがデッキに含まれている場合、これは長々とリストされます。自動的にすべての.ALTER部分をインターラクティブ・モードでシミュレートするとき次の.CONTROLブロックを入力デッキの最初のセグメントに追加します。
.CONTROL
run
.ENDC
このブロックのコマンドは各セグメントを解釈し後、それに対して実行されます。
備考:この記述はインターラクティブ・モードでのみ有効です。バッチ・モードではSmartSpiceは一度各セグメントが解釈され、それに対してシミュレーションを実行します。