请教system verilog 与C++编译问题
时间:10-02
整理:3721RD
点击:
手头有一个C++模型,想加入到SV的testbench中,但是questa仿真c code的结果和g++的不一样,请大家帮忙看看。
原始C++code的main函数如下:
int main(int argc, char *argv[])
{
string inFilename;
int Width,Height,predictor;
inFilename = string(argv[1]);
Width = atoi(argv[2]);
Height = atoi(argv[3]);
PredictorType = atoi(argv[4]);
......
}
函数内部不变,为了方便sv调用该函数,将main改名为 dec,不知道string类型如何在sv和c++中传递,暂时将文件名直接付给了inFilename,更改代码如下:
int dec(int w,int h, int p)
{
string inFilename;
int Width,Height,predictor;
inFilename = "input.raw";
Width = w;
Height = h;
PredictorType = p;
......
}
然后在sv代码中调用该dec函数,编辑仿真都没有问题,但是sv调用后计算结果,跟c++ 单独运行结果总不一样,能帮忙看看数据传递有错误吗?
原始C++code的main函数如下:
int main(int argc, char *argv[])
{
string inFilename;
int Width,Height,predictor;
inFilename = string(argv[1]);
Width = atoi(argv[2]);
Height = atoi(argv[3]);
PredictorType = atoi(argv[4]);
......
}
函数内部不变,为了方便sv调用该函数,将main改名为 dec,不知道string类型如何在sv和c++中传递,暂时将文件名直接付给了inFilename,更改代码如下:
int dec(int w,int h, int p)
{
string inFilename;
int Width,Height,predictor;
inFilename = "input.raw";
Width = w;
Height = h;
PredictorType = p;
......
}
然后在sv代码中调用该dec函数,编辑仿真都没有问题,但是sv调用后计算结果,跟c++ 单独运行结果总不一样,能帮忙看看数据传递有错误吗?
看不出来~~建议调试看看传递进来的数据是不是跟预想的不一样,以确定是数据传递的问题。
你可以试试uvm-connect