System verilog Systemverilog DPI重复调用导致VCS模拟损坏

System verilog Systemverilog DPI重复调用导致VCS模拟损坏,system-verilog,system-verilog-dpi,System Verilog,System Verilog Dpi,我在运行在VCS中使用DPI功能的大型模拟时遇到问题,它报告运行错误,如: 断言在文件hash.c的第88行“indexNext&(indexNext

我在运行在VCS中使用DPI功能的大型模拟时遇到问题,它报告运行错误,如:

断言在文件hash.c的第88行“indexNext&(indexNext<30)”失败

这似乎是一些DPI导出任务造成的,所以我做了一个测试,C程序会多次调用DPI导出任务,导出任务只返回,什么也不做。然后同样的错误发生。
VCS是否计算dpi调用的次数,并断言计数器的宽度应小于30位

我的C代码的一部分:

  for(test = 0; test < 1000000000; test++){
    dpi_wait_int(1,1);  //repeat test
  }

问题是“hash.c”是实现dpi的文件还是vcs内部文件?在我看来,该消息似乎是用户问题。检查源文件列表。如果这是一个vcs问题,那么你需要和synopsys谈谈。嗨,Serge,我在我的项目目录下搜索了“indexNext&&(indexNext<30)”,没有匹配任何文件,然后我在vcs工具目录下搜索了相同的文件,它匹配了一些.so和bin文件:
二进制文件linux64/bin/powerelab1匹配二进制文件linux64/bin/vcselab64匹配二进制文件linux64/lib/libvcsnew.so匹配二进制文件linux64/lib/libvcsnew64.so匹配。等等,
hash.c似乎属于vcs内部文件。那么,它看起来像是synopsys的问题。试试最新的版本,比如2020.09或其他版本,如果没有帮助,请与synopsys联系。好的,我会试试,谢谢!现在它可以通过vcs 2020.12了
task dpi_wait_int(input int data, input int Id);
  return;  //do nothing
endtask