スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[SystemVerilog] $fopenを使おう(Write編)

ほとんど、$writememb/h, $readmemb/hしか使ってなかったので、
自分用のメモとして。

  • サンプルコード

  • module testbench ();
    
      int fd;
      int data = 0;
    
      initial begin
        fd = $fopen("outdata.txt", "w");
        $fdisplay(fd, "----------------------");
        $fwrite  (fd, "--- ");
        $fwrite  (fd, "recoding start ---\n"); // 改行必要
        $fdisplay(fd, "data = %0d by fdisplay", data);
        $fmonitor(fd, "data = %0d by fmonitor", data);
      end
    
      initial begin
        #1;
        repeat(5) begin
          data = data + 1;
          #1;
        end
      end
    
      final begin
        $fdisplay(fd, "--- recoding end   ---");
        $fdisplay(fd, "----------------------");
        $fclose(fd); 
      end
    
    endmodule: testbench
  • 出力されるファイルの中身

  • ----------------------
    --- recoding start ---
    data = 0 by fdisplay
    data = 0 by fmonitor
    data = 1 by fmonitor
    data = 2 by fmonitor
    data = 3 by fmonitor
    data = 4 by fmonitor
    data = 5 by fmonitor
    --- recoding end   ---
    ----------------------
    

という感じです。
monitor 便利ですね。


参考: fopenの指定タイプ

Argument Description
"r" or "rb" Open for reading
"w" or "wb" Truncate to zero length or create for writing
"a" or "ab" Append; open for writing at end of file (EOF), or create for writing
"r+", "r+b", or "rb+" Open for update (reading and writing)
"w+", "w+b", or "wb+" Truncate or create for update
"a+", "a+b", or "ab+" Append; open or create for update at EOF

追加で書き込みをする時は「a」指定ですね。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
07 | 2017/08 | 09
- - 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
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。