スポンサーサイト

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

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

Modelsim10.0cでSystemVerilog DPI-Cを使ってみました。
Windows版だとこちらのサイトに記載があります。
[Verilog] ModelSimでDPIを使う(EDA Blog)

以下の記述はModelsimのExampleです。

hello.v


 1|module hello_top;
 2|  int ret;
 3|  export "DPI-C" task verilog_task;
 4|  task verilog_task(input int i, output int o);
 5|    #10;
 6|    $display("Hello from verilog_task()");
 7|  endtask
 8|  import "DPI-C" context task c_task(input int i, output int o);
 9|  initial
10|    begin
11|       c_task(1, ret);  // Call the c task named 'c_task()'
12|    end
13|endmodule

hello_c.c


 1|#include <stdio.h>
 2|#include "svdpi.h"
 3|#include "dpiheader.h"
 4|int c_task(int i, int *o)
 5|{
 6|   printf("Hello from c_task()\n");
 7|   verilog_task(i, o); /* Call back into Verilog */
 8|   *o = i;
 9|   return(0); /* Return success (required by tasks) */
10|}

Makefile


1|run:
2|    vlib work
3|    vlog -sv -dpiheader dpiheader.h hello.v
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 hello_top -do "run -all; quit -f"
7|
8|clean:
9|    rm -rf work *.o *.so transcript *.wlf dpiheader.h

実行結果


modelsim_example1

ここで、いくつか気になるメッセージが出ているのですが、なんでしょうか?
** Warning: (vsim-7032) The 32-bit glibc RPM does not appear to be installed on this machine.  Calls to gcc may fail.

** Error: (vsim-FLI-3155) The FLI is not enabled in this version of ModelSim.
うーん。。。


追記:
上記のWarningは32bitのみのサポートなので、出力されるものらしいです。
関連記事

コメントの投稿

非公開コメント

プロフィール

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