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;} ; |