微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > C++ test 调用 SV的函数,取不到想要的值

C++ test 调用 SV的函数,取不到想要的值

时间:10-02 整理:3721RD 点击:
代码如下:
env.sv
int port_lane_offset[$] = {0,1,2,3,4,5,6,7};
function int env::get_port_lane_offset(int port);
return port_lane_offset[port];
endfunction
dpi_call.svh
export "DPI-C" function sv_get_port_lane_offset;
function sv_get_port_lane_offset(int port);
...
return env.get_port_lane_offset(port);
endfunction
cpp_dpi.h
extern "C" {
extern int sv_get_port_lane_offset(int port);
}
Class CppDpi
{
...
public:
int GetPortLaneOffset(int port);
}
cpp_dpi.cpp
int CppDpi::GetportLaneOffset(int port){
...
return sv_get_port_lane_offset(port);
}

test.cpp

...
int lane_offset = CppDpi::GetPortLaneOffset(1);
...
我的问题是, 当在C++test中调用DPI函数,从SV环境中取值时,不能取到想要的值,返回的一直是0?
请各位大侠帮我看看这个问题。

不知道能不能贴出更完整的代码,不是很清楚你具体的执行方法,你是仅仅在c里面调用了,sv的函数吗?

是不是因为 this.port_lane_offset的问题咧

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top