add me241101_dpi

This commit is contained in:
fengbh 2024-12-09 15:47:29 +08:00
parent a421c93452
commit ec527508ff
5 changed files with 94 additions and 2 deletions

14
.gitignore vendored
View File

@ -1,5 +1,3 @@
2_dpi
3_python_learn
4_c_re
5_vpi
sv_lab
@ -16,3 +14,15 @@ me241100_svExample/simv
me241100_svExample/ucli.key
me241100_svExample/vc_hdrs.h
me241100_svExample/wave.fsdb
me241101_dpi/csrc/
me241101_dpi/simv.daidir/
me241101_dpi/verdiLog/
me241101_dpi/*.log
me241101_dpi/novas.*
me241101_dpi/simv
me241101_dpi/ucli.key
me241101_dpi/vc_hdrs.h
me241101_dpi/wave.fsdb
me241101_dpi/*.o
me241101_dpi/*.so

12
me241101_dpi/Makefile Normal file
View File

@ -0,0 +1,12 @@
sv_main.so: sv_main.c
- gcc -fPIC -c sv_main.c -I ${VCS_HOME}/include
- gcc -shared -o sv_main.so sv_main.o
#sv_main.so: sv_main.c
# - gcc -fPIC -shared -o sv_main.so -c sv_main.c -I ${VCS_HOME}/include
comp:
- vcs -full64 +v2k -sverilog -LDFLAGS -Wl,--no-as-needed -debug_access+all -top testbench -l compile.log \
testbench.sv
sim: sv_main.so
- ./simv -l sim.log -sv_root . -sv_lib sv_main
clean:
- \rm -rf *.log simv simv.daidir *.a *.o *.so csrc *.key

31
me241101_dpi/ReadMe.md Normal file
View File

@ -0,0 +1,31 @@
# dpi
## 概述
使用vcs编译dpi的简单例子
> 需要准备好vcs+verdi的仿真环境。
### 特性
- 动态调用
- Makefile 管理
## 快速开始
### 一、仿真
```bash
make clean comp sim
```
### 二、检查log
查看log检查是否正确调用dpi。
## 更多
[PLI 学习 - 博涵 - 博客园](https://www.cnblogs.com/fengbohan/p/18595069/pli-learning-zx6kpe)

10
me241101_dpi/sv_main.c Normal file
View File

@ -0,0 +1,10 @@
#include <svdpi.h>
#include <vpi_user.h>
#include <stdio.h>
extern void sv_hello();
int c_hello(const char *name, int age) {
vpi_printf("c_hello: %s, %d\n", name, age);
sv_hello();
return 0;
}

29
me241101_dpi/testbench.sv Normal file
View File

@ -0,0 +1,29 @@
//===========================================================================
// Organization : Individual Developer
// Filename : testbench.sv
// Author : Feng Bohan
// Create Time : 16:17:37 2024-11-22
// Last Modified: 16:20:09 2024-11-22
// Abstract :
//--------------------------------------------------------------------------
// Description:
//
//--------------------------------------------------------------------------
// Modification History:
//--------------------------------------------------------------------------
// Rev Date Who Description
// --- ---- --- -----------
// 0.0.01 2024-11-22 Feng Bohan initial version
//===========================================================================
module testbench;
import "DPI-C" context function int c_hello(input string name, input int age);
export "DPI-C" function sv_hello;
function void sv_hello();
$display("sv_hello");
endfunction
initial begin
c_hello("testbench", 18);
end
endmodule