スポンサーサイト

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

[SystemVerilog] $sformat/$sformatf を記述してみる。

SystemVerilogの String関係で前に書いていたのですが、
システムタスクを忘れていました。

  • サンプルコード

  • module testbench ();
    
      int a;
      string s;
    
      initial begin
        a = 1;
        $sformat(s, "*** data is %d", a);
        a = 10; $display("%s", s);
        a = 100; $display(s);
      end
    
    endmodule: testbench
  • 実行結果

  • # run -all 
    # *** data is           1
    # *** data is           1
    #  quit 
    

はて?どうもおかしいですね。
残念ながら、その時点の値を変数「s」にセットするようです。


  • サンプルコード2

  • module testbench ();
    
      int a;
      string s;
    
      initial begin
        a =   1; #1; $display(s);
        a =  10; #1; $display(s);
        a = 100; #1; $display(s);
      end
    
      always_comb begin
        $sformat(s, "*** data is %d", a);
      end
    
    endmodule: testbench
  • 実行結果

  • # run -all 
    # *** data is           1
    # *** data is          10
    # *** data is         100
    #  quit 
    

というように書けばいい感じ。


参考

関連記事

コメントの投稿

非公開コメント

プロフィール

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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。