3.25 波形フォーマットをテキストでSaveする
プロジェクトで、WaveformViewのパラメータを保存する機能とは、別にWaveformViewの波形フォーマットをテキストでSaveする機能を設けました。
Saveするには、WaveformView 左ペイン右クリックで「波形フォーマットを保存」を選択するとダイアログが開きます。

Saveした波形を読み出すには、メインメニューのユーティリティ、Doファイルの読み込みを選択します。

Note:
MODELSIMの Doファイル読み込み
構文は、簡単な波形フォーマットしか対応していません。少し凝った設定でエラーになるかもしれません。構文エラーは、コンパイラステータス画面に出てきるので、DBL CLICK=> VeriPadで当該箇所を開いてマニュアル修正してください。
<出力例>
下記は、サンプルフォルダにあるDOファイル(param_test2.do,param_list2.prjで生成)で、Veritakで生成したものです。

Note:
configure..はVeritak上意味ありません。(MODELSIMでこれがないと表示されなかったので付加しました。)
文法
上記を読み込む文法です。簡単な、構文にしています。下にBISONのソース(抜粋)を示します。
参考にしてください。
%token IDENTIFIER ADD_K WAVE_K NO_UP_DATE_K FORMAT_K LOGIC_K LITERAL_K
%token LITERAL_K DIVIDER_K RADIX_K ASCII_K HEX_K BINARY_K HEX_K UNSIGNED_K
%token HEX_K DECIMAL_K OCTAL_K SYMBOLIC_K DEFAULT_K CONFIGURE_K
%token ANALOG_STEP_K ANALOG_INTERPOLATED_K ANALOG_BACKSTEP_K
%token STRING_K COLOR_K NO_UP_DATE_K CHARACTER_K
%token OFFSET_K SCALE_K FLOAT_NUMBER
%type <text> IDENTIFIER STRING_K
%type <type> radix_option format_option
%type <double_type> FLOAT_NUMBER offset_option scale_option
%%
statements: statement
| statements statement
;
statement:
ADD_K WAVE_K other_option format_option offset_option scale_option radix_option IDENTIFIER '\n'
{ //A 読み込み処理
}
| ADD_K WAVE_K other_option DIVIDER_K STRING_K {
//B 読み込み処理
}
| '\n'
| IDENTIFIERS '\n'
| CONFIGURE_K WAVE_K IDENTIFIERS '\n'
;
IDENTIFIERS : IDENTIFIER {}
| numbers {}
| IDENTIFIERS IDENTIFIER {}
| IDENTIFIERS numbers {}
;
numbers : FLOAT_NUMBER {}
| numbers FLOAT_NUMBER {}
;
other_option : NO_UP_DATE_K
|
;
offset_option : OFFSET_K FLOAT_NUMBER { $$=$2;}
| { $$=-1;}
;
scale_option : SCALE_K FLOAT_NUMBER { $$=$2;}
| { $$=-1;}
;
format_option : FORMAT_K LITERAL_K {$$= (unsigned)sig_bit::HEX; }
| FORMAT_K LOGIC_K {$$= (unsigned) sig_bit::BIN;}
| FORMAT_K ANALOG_STEP_K {$$= (unsigned)sig_bit::ANALOG_SIGNED;}
| FORMAT_K ANALOG_INTERPOLATED_K {$$= (unsigned)sig_bit::ANALOG_UNSIGNED;}
| FORMAT_K ANALOG_BACKSTEP_K {$$= (unsigned)sig_bit::ANALOG_SIGNED;}
| {$$= (unsigned)sig_bit::HEX;}
;
radix_option : RADIX_K BINARY_K {$$= (unsigned) sig_bit::BIN;}
| RADIX_K ASCII_K {$$= (unsigned) sig_bit::ASCII;}
| RADIX_K CHARACTER_K {$$= (unsigned)sig_bit::HEX;}
| RADIX_K UNSIGNED_K {$$= (unsigned)sig_bit::DECIMAL;}
| RADIX_K DECIMAL_K {$$= (unsigned)sig_bit::DECIMAL_WITH_SIGN;}
| RADIX_K OCTAL_K {$$= (unsigned)sig_bit::HEX;}
| RADIX_K HEX_K {$$= (unsigned)sig_bit::HEX;}
| RADIX_K SYMBOLIC_K {$$= (unsigned)sig_bit::ENUM;}
| RADIX_K DEFAULT_K {$$= (unsigned)sig_bit::HEX;}
| {$$= (unsigned)sig_bit::HEX;}
;
|