[SystemVerilog] $ftell/$fseek/$rewind を使ってみた

$fopenの続きですが、タイトルのシステムタスクを使ってみたいと思います。

  • indata.txt
  • W 100
    R
    I 10
    

というテキストがあったとします。

  • サンプルコード

  • module testbench ();
    
      int    fd;
      int    numchar;
      int    ret;
      string str;
    
      initial begin
        fd = $fopen("indata.txt", "r");
        while(!$feof(fd)) begin
          numchar = $fgets(str, fd);
          $display(str);
          $display("ftell = %d", $ftell(fd));
        end
        // rewind
        ret = $rewind(fd);
        while(!$feof(fd)) begin
          numchar = $fgets(str, fd);
          $display(str);
        end
        // fseek
        ret = $fseek(fd, 8, 0);
        while(!$feof(fd)) begin
          numchar = $fgets(str, fd);
          $display(str);
        end
      end
    
      final begin
        $fclose(fd);
      end
    
    endmodule: testbench
  • 実行結果

  • # W 100
    #
    # ftell =           6
    # R
    #
    # ftell =           8
    # I 10
    #
    # ftell =          13
    #
    #
    # ftell =          14
    #
    # ftell =          14
    # W 100
    #
    # R
    #
    # I 10
    #
    #
    #
    #
    # I 10
    #
    #
    #
    #
    
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
09 | 2017/10 | 11
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 31 - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数