首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PLI Verilog:如何重新启动模拟

PLI Verilog:如何重新启动模拟
EN

Stack Overflow用户
提问于 2014-01-08 00:16:26
回答 2查看 445关注 0票数 0

我想使用PLI重新启动我的模拟。我使用VCS。

我写了这个:vpi_control(vpiReset,1);

在由cbEndOfSimulation捕获的回调函数中,模拟器获得重置调用,但没有像文档中所写的那样使用额外的参数:模拟重新启动,但处于交互模式!我还测试了3个参数...

这是重新启动模拟的正确方法吗?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2014-01-08 07:06:26

根据VPI规范,您正在做的操作看起来是正确的:

代码语言:javascript
运行
复制
PLI_INT32 vpi_control(
   PLI_INT32 operation,  /* constant representing the operation to perform */
             ...)        /* variable number of arguments as required by the
                            operation */

其中,操作vpiReset等同于$reset系统任务,因此需要三个参数:stop_valuereset_valuediagnostic_level

我知道这是显而易见的,但是您是否检查返回值是1(表示成功)而不是0(表示失败)?

我唯一能给出的其他建议是:

  1. 尝试从Verilog调用等效的$reset系统任务,并查看其行为是否符合预期
  2. 尝试在不同的模拟器

上运行测试程序

如果这些表明VCS是有缺陷的,那么至少你有一个很好的测试案例来提出一个支持票证,并希望Synopsys能相对迅速地为你提供一个补丁。

如果这是一个VCS错误,你也许可以通过使$reset被Verilog调用来解决它--假设$reset按预期工作--或者你可以在cbEnterInteractive回调中做一些事情来采取纠正措施。

票数 1
EN

Stack Overflow用户

发布于 2014-01-08 16:45:26

谢谢你的回答。

不幸的是,我已经测试了$reset;例程。

当我用$reset;$reset(0);调用它时,模拟在交互模式下被重置。当我调用$reset(1)$reset(1,0,0)时,模拟被重置为非交互模式(如文档中所述)。

对于第二个建议,我不能访问另一个模拟器...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20976544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档