スクリプト言語文法
予約語
スクリプト言語には以下の予約語があります。
予約語
if、else、while、for、switch、case、default、break、init、define、return、quit、function
予約定数
定数名 | 意味 |
---|---|
PI | π |
PI2 | 2π |
true | ブール値の真 |
false | ブール値の偽 |
ON | スイッチング素子のオン状態 |
OFF | スイッチング素子のオフ状態 |
t | シミュレーション時間 |
tt | 総シミュレーション時間 |
変数tとttの違いについて
Waveform解析の実行時、Waveform Start Time
を指定すると、その時間までTransient解析を行い回路状態を保持したままWaveform
解析が実行されます。
その際、時間変数t
は、Transient
解析の完了後にリセットされるため、連続的な解析時間を取得することができません。一方、時間変数tt
は、Transient
解析後にリセットされることなく、連続した時間を取得することができます。
数学関数
関数名 | 意味 |
---|---|
sin(x) | 正弦 |
cos(x) | 余弦 |
tan(x) | 正接 |
asin(x) | 逆正弦 |
acos(x) | 逆余弦 |
atan(x) | 逆正接 |
atan2(y,x) | y/xの逆正接 |
sqrt(x) | 平方根(ルート) |
log(x) | 自然対数 |
log10(x) | 常用対数 |
exp(x) | 指数関数 |
pow(x,y) | xのy乗を計算する冪関数 |
abs(x) | 絶対値 |
min(x,y) | 最小値 |
max(x,y) | 最大値 |
mod(x,y) | xをyで割った余りを出す剰余関数 |
int(x) | 64bit整数化 |
機能関数
関数名 | 意味 |
---|---|
output("sym","type","mode") | シンボル sym 、タイプ
type 、モード
mode で指定された出力変数の現在値を返す関数です。この関数で指定される出力変数が存在しないときは自動的に出力変数が設定され、この関数を削除するとその出力変数も削除されます。 |
output("sym", "type", "mode", time) | シンボル sym 、タイプ
Type 、モード mode で指定された出力変数の時間
time における値を返す関数です。 |
param("sym", "par") | シンボル sym を持つ素子の
par で指定されたパラメーター値を返す関数です。par には、各素子のパラメーターダイアログボックスに表示されているパラメーターシンボルを指定します。
|
setoutvar(var) | 変数
var を出力変数に設定します。出力変数シンボルは、スクリプトファイル名に var のシンボルをピリオド
. で連結したシンボルとなり、出力タイプはなく、出力モードは
FIN となります。この関数を削除すると、出力変数も削除されます。 |
setparam("sym", "par", value) | シンボル sym を持つ素子の
par で指定されたパラメーター値を value に設定する関数です。par には、各素子のパラメーターダイアログボックスに表示されているパラメーターシンボルを指定します。 |
setvar("sym", "var", value) | スクリプトファイル名が sym の内の変数
var の値を
value に設定する関数です。sym が空の場合、自分自身が指定されます。
|
var("sym", "var") | スクリプトファイル名が sym の内の変数
var の値を返す関数です。sym が空の場合、自分自身が指定されます。
|
table("sym",xvalue) | ルックアップテーブルエディタで定義したテーブル名
sym に従って、入力値 xvalue としたときの出力を返します。 |
var関数、setvar関数について
var関数、setvar関数はスクリプトファイル間で変数のやり取りを行う際に使用する関数です。
param関数、setparam関数の代わりに使用します。
var関数、setvar関数は以下の機能を持ちます。
- 通常書式:x = var("sym","a");
スクリプトファイル名sym
の変数a
を取得します。 - 自身の変数を取得:x = var("","b");
自身の変数b
を取得します。 - Cコード用に回路上に存在しない変数を定義:x = ("VIO","a");
この場合、スクリプトファイル実行時には無視されます。
VIO
は仮想的なIOデバイスにつけられたシンボルです。変更はできません。
演算子
演算子名 | 意味 |
---|---|
四則演算子 | +、-、*、/ |
余り演算子 | % |
インクリメント、デクリメント演算子 | ++、-- |
シフト演算子 | <<、>> |
不等号 | <、>、<=、>= |
比較演算子 | ==、!= |
論理演算子 | !(NOT)、&&(AND)、|| (OR) |
ビット論理演算子 | ~(NOT)、&(AND)、| (OR)、^(XOR) |
変数
全ての変数は、宣言なしで使用でき、型はない。必ず0
で初期化される。
文
文末には終端記号の';'をつける。
if文
if (condition) {
文1;
文2;
}
else {
文3;
文4;
}
else文は省略可能。また、単文のときは{ }は省略可能。
while文
while (condition) {
文1;
文2;
}
また、単文のときは{ }は省略可能。
for文
for (init; condition; update) {
文1;
文2;
}
condition:条件文、真のときループ
update:更新文
単文のときは{ }は省略可能。
switch文
switch (index) {
case const1 : 文1; break;
case const2 : 文2; break;
default : 文3; break;
}
default文は必ずcase文の後に記述する。
init文
init {
文1;
文2;
}
{}は省略不可。 init文が実行されるまでの変数の初期値は
0
となります。
define文
define 定数名 (数または式)
定数を変更しようとするとエラーになる。
定数部分の括弧は必ず付ける。
文末の終端記号は不要である。
return文
return;
quit文
quit;
function文
定義
function func() {
文1;
文2;
}
func();
関数はスクリプトの先頭で定義する必要がある。
呼び出しは関数名を
Func
とすれば Func();
となる。
以下にfunction文を使用した加算関数の例を記載する。
//function文で加算関数ADDを定義
function ADD(){
gain = 10;
OUT = gain * (IN1 + IN2);
}
setvar("","ADD_IN1",5); //ADD関数のIN1に5を設定
setvar("","ADD_IN2",10); //ADD関数のIN2に10を設定
ADD(); //ADD関数を呼び出し実行;
ans = var("","ADD_OUT"); //結果をADD関数のOUTからansへ取得
コメント
/*
と */
で文との間にスペースを入れて挟むとコメントとなる。
または、行頭に//
を書き、そこから行末までがコメントとなる。