[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
イベントカレンダー

カレンダー
05 | 2017/06 | 07
- - - - 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
アクセス人数