スポンサーサイト

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

[SystemVerilog][DPI-C] ランダムデータ生成

自分の Evernote:Blogネタ に「DPI-Cを使ったランダムデータ生成」とか
書いてあったので、書いてみました。


C側でランダム生成させているだけなんですが。
これで、ModelSim-ASEでもランダム検証出来ますね!(違


  • サンプルコード(C言語側)

  • #include <stdio.h>
    #include <stdlib.h>
    
    extern void v_setparam(int);
    
    int c_main(void) {
      int i, value=0;
      srand(1);
    
      for (i = 0; i < 10; i++) {
        value = rand() % 10;
        v_setparam(value);
      }
    
      return (0);
    }
  • サンプルコード(SystemVerilog側)

  • module tb;
    
      import "DPI-C" context task c_main();
    
      initial begin
        c_main();
        $finish(2);
      end
    
      export "DPI-C" task v_setparam;
    
      task v_setparam(input int param);
        $display("set param = %0d", param);
      endtask
    
    endmodule : tb
  • 実行結果

  • # set param = 3
    # set param = 6
    # set param = 7
    # set param = 5
    # set param = 3
    # set param = 5
    # set param = 6
    # set param = 2
    # set param = 9
    # set param = 1
    


おまけ

  • サンプルコード(C++言語側)
  • #include <stdio.h>
    #include <stdlib.h>
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    extern void v_setparam(int);
    
    int c_main(void) {
      int i, value=0;
      srand(1);
    
      for (i = 0; i < 10; i++) {
        value = rand() % 10;
        v_setparam(value);
      }
    
      return (0);
    }
    #ifdef __cplusplus
    }
    #endif
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

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