スポンサーサイト

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

DPI-C:chandle型を使う。

SystemVerilog:DPI-Cで使える型を試す(シリーズ4)で最後です。
今回は、chandleです。

といっても、たぶん正規な使い方はこちらの「16.2.4 C++モデルとの接続」に
書かれているようなものだと推測します。
http://japanese.sugawara-systems.com/systemverilog/dpi.htm

なので、今回のは参考にもならない。。。かも。
○Cソースコード
 1|#include <stdio.h>
 2|#include "dpiheader.h"
 3|
 4|void f_tmp(int data){
 5|  printf("--- c data=%d\n", data);
 6|}
 7|
 8|#ifdef __cplusplus
 9|extern "C" {
10|#endif
11|int c_main(void) {
12|  printf("Hello from c_main()\n");
13|
14|  int i=10;
15|  f_tmp(i);
16|
17|  void * ptr;
18|  void * ptr_null;
19|
20|  ptr = &f_tmp;
21|  ptr_null = NULL;
22|
23|  c_chandle(ptr);
24|  c_chandle(ptr_null);
25|
26|  return (0);
27|}
28|#ifdef __cplusplus
29|}
30|#endif

○SystemVerilogソースコード
 1|module tb;
 2|  // import c_main
 3|  import "DPI-C" context task c_main();
 4|  
 5|  initial begin
 6|    c_main();
 7|    $finish(2);
 8|  end
 9|
10|  // export task
11|  export "DPI-C" c_chandle = task sv_chandle_task;
12|
13|  task sv_chandle_task( input chandle a );
14|    if(== null) $display("--- a is null");
15|    else          $display("--- a is not null");
16|  endtask
17|
18|endmodule : tb

実行結果がこちらになります。
dpic_chandle.png

うーん。。。どういったケースで使うのがベストなんだろう。
関連記事

コメントの投稿

非公開コメント

プロフィール

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