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