首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Specman e 'sync‘的系统Verilog对应物

Specman e 'sync‘的系统Verilog对应物
EN

Stack Overflow用户
提问于 2013-03-27 17:40:01
回答 2查看 1.9K关注 0票数 1

我想问一下,在System Verilog语言中,Specman e的sync对应的是什么?

我知道@ event_indentifier等同于Specman e的wait @ event,但是sync @ event呢?

EN

回答 2

Stack Overflow用户

发布于 2013-03-27 21:39:51

对于命名事件,可以使用triggered属性。

代码语言:javascript
复制
event ev;
...
wait (ev.triggered);

有关完整的解释,请参阅2012年SystemVerilog LRM的15.5.3章。

票数 1
EN

Stack Overflow用户

发布于 2013-03-29 11:30:37

IEEE 1647的13.1.1部分规定

同步操作与等待操作类似,不同之处在于always的等待操作需要至少一个TCM采样事件周期,然后才能继续执行。使用同步操作,可以在相同的时间步长中继续执行。

1647-2008草案的一部分

对于sync

当一个中药达到同步动作时,它的执行将被暂停,以便可以调度其他中药或被暂停的中药本身执行。

对于wait

当一个TCM到达等待动作时,它的执行将被暂停,以便可以调度其他TCM来执行。暂停的TCM本身应保持空闲状态,并且在下一次发生采样事件之前不应进行调度。

我认为你在比较不同的东西。SystemVerilog是模拟引擎和内核,Specman就像是内核上的一个插件或插件,用来监控和检查你用e语言写的东西。在SystemVerilog中,事件用于模拟事件,Specman还为其TCM过程创建自己的事件。因此,在Specman中,它有自己的TCM进程调度。如果使用sync,则可以在没有额外周期的情况下进行同步;使用wait并导致采样周期至少有一个周期。当然,如果syncwait没有时间表达式,它们都使用TCM默认采样事件,并且可以有一个或多个周期。

SystemVerilog也是基于事件的模拟器。它在每个时间步都有增量循环。您可以在http://standards.ieee.org/getieee/1800/download/1800-2012.pdf中下载IEEE1800-2012 SystemVerilog LRM,有关其调度参考算法,请参阅4.5。但在硬件建模中,由于仿真器会自动调度带有灵敏度列表的进程运行,因此在当前仿真时间步长内没有显式的零周期延迟wait同步。如果你必须比较Specman和SystemVerilog,它应该是明确的SystemVerilog断言语法。在SVA中有##0语法来使断言过程在下一个断言表达式之前具有零周期延迟。

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

https://stackoverflow.com/questions/15655659

复制
相关文章

相似问题

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