スポンサーサイト

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

Modelsim10.0cでDPI-Cを使う(その2)

前回書いた「Modelsim10.0cでDPI-Cを使う(その1)」の続きです。
ModelsimのExampleって本当に分かりやすいんですかね?

疑問1


Makefileより
3|    vlog -sv -dpiheader dpiheader.h hello.v
ここで行っていることは、「-sv」で、hello.vを「SystemVerilog」としてコンパイル。
「-dpiheader」にて DPI-Cのヘッダーを作成する。
面倒じゃないですか?

疑問2


hello_c.cより
 2|#include "svdpi.h"
 3|#include "dpiheader.h"
この行を本当に書きたいのかな?
これだと、Firmに持っていくとき面倒じゃない?

ってことで、書き換えてみました。
hello.v は hello.svに拡張子を変更するだけなので、省略。

hello_c.c


 1|#include <stdio.h>
 2|
 3|extern void verilog_task(int i, int *o);
 4|
 5|int c_task(int i, int *o) {
 6|  printf("Hello from c_task()\n");
 7|  verilog_task(i, o);
 8|  *o = 2 * i;
 9|  return (0);
10|}

Makefile


1|run:
2|    vlib work
3|    vlog hello.sv
4|    gcc -c -I$(MODELSIM_HOME)/include hello_c.c
5|    gcc -shared -Bsymbolic -o hello_c.so hello_c.o
6|    vsim -c -sv_lib hello_c -do "run -all; quit" hello_top
7|
8|clean:
9|    rm -rf work transcript vsim.wlf *.o *.so

うん。すっきり。
ちなみに、これまでのソースコードは「GitHub:DPI-C」にありますので。
関連記事

コメントの投稿

非公開コメント

プロフィール

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