スポンサーサイト

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

DPI-CでC++接続(export)

DPI(Direct Programming Interface)-C では C言語とのインターフェースになります。
なので、C++だと接続出来ません
ということで、SystemVerilogに接続する関数を C言語にみせることで接続することが可能です。
今回はexport(C関数からSystemVerilogのtask/functionをコール)です。
記述は前のimportと同じで、exturn "C" で記述するだけです。

記述イメージ(c_main.cpp)
#include<string>

exturn "C" {
void sv_write(unsigned int address, unsigned char data);
void sv_read(unsigned int address, unsigned char* data);
}


class trans {
public:
void write(unsigned int address, unsigned char data) {
sv_write(address, data);
}

void burst_write(unsigned int start_address, unsigned char* data, unsigned int size) {
for(unsigned int i=0; i<size; i++) {
sv_write(address+i, data[i]);
}
}

void read(unsigned int address, unsigned char* data) {
sv_write(address, data);
}

};

exturn "C" {
int c_main ( void ){
unsigned int adrs;
unsigned char data;

trans tx;
adrs = 0x0010;
data = 0xA5;
tx.write(adrs , data );

return 0;
}
}
というような感じで要領を押さえれば DPI-Cを効果的に使用するが可能です。
便利ですね!
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

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