[SystemVerilog] $fopenを使おう(Read編 - その3)

前回の続きです。
今回は、フォーマットに従って値を取り出します。

  • indata.txt
  • W 100
    R
    I 10
    

というテキストがあったとします。
これも、$fscanf を使って Readした場合

  • サンプルコード

  • module testbench ();
    
      int    fd;
      int    ret;
      string str;
      string cmd;
      int    value;
    
      initial begin
        fd = $fopen("indata.txt", "r");
        while(!$feof(fd)) begin
          ret = $fscanf(fd, "%s %d", cmd, value);
          $display("command = %s", cmd);
          $display("value   = %0d", value);
        end
      end
    
      final begin
        $fclose(fd);
      end
    
    endmodule: testbench
  • 実行結果

  • # command = W
    # value   = 100
    # command = R
    # value   = 100
    # command = I
    # value   = 10
    # command = I
    # value   = 10
    

という感じになります。


$fscanf はファイルシステムから。
$sscanf は文字列(string)からのフォーマット読み出しになります。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数