首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >verilog VPI回调

verilog VPI回调
EN

Stack Overflow用户
提问于 2011-10-26 22:13:23
回答 2查看 1.2K关注 0票数 0

VPI回调cbValueChange应该做什么?它是如何工作的?

假设我想在信号Xposedge (大约2000个周期)执行一个函数。我应该使用回调cbValueChange还是从测试台调用代码?

代码语言:javascript
复制
always @posedge(X) 
begin 
    $pli 
end 

哪一个更有效率?

EN

回答 2

Stack Overflow用户

发布于 2012-03-01 11:58:25

效率方面,这可能并不重要。如果不能更好地了解您的情况,就很难给出可靠的建议,但我建议使用示例中的$pli调用。使用cbValueChange意味着注册一些C代码,以便在变量的值发生变化时由模拟器执行。在值更改时,如果没有调用用户定义的$pli例程,就会发生这种情况。由于这对于任何阅读Verilog代码的人来说都是完全不可见的,如果您的C代码做了任何影响模拟的更改,那么您将使任何试图理解发生了什么的人感到沮丧。

票数 0
EN

Stack Overflow用户

发布于 2013-03-10 18:01:21

cbValueChange是用于通过vpi_register_cb()注册/接收已注册信号的值更改事件的原因。因此,当信号值发生翻转或更改时,模拟器将在适当的模拟阶段调用回调函数。如果只想调用自己的PLI/VPI函数,可以在http://www.asic-world.com/verilog/pli5.html中查看详细示例

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

https://stackoverflow.com/questions/7903931

复制
相关文章

相似问题

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