首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于SystemC的定时仿真

基于SystemC的定时仿真
EN

Stack Overflow用户
提问于 2017-04-01 15:31:51
回答 1查看 548关注 0票数 0

针对线程问题,利用next_trigger()进行了时间仿真。正如我从这篇文章中了解到的,在指定的时间之后,这个线程会重新启动:

next_trigger(double, sc_time_unit):当指定的时间过去时,进程将被触发。

也就是说,它在指定的时间之后有效地执行该指令发生后的操作,但也执行在该指令之前找到的操作。我觉得next_triggerSC_THREAD中的重复使用可能会导致模拟中的“小故障”。

Q1:我的感觉对吗?

Q2:是否有另一种可能延迟执行(将线程挂起,而不是重新启动)

EN

回答 1

Stack Overflow用户

发布于 2017-04-05 13:59:45

首先,next_trigger只能与SC_METHOD这里一起使用。

next_trigger()与进程方法一起使用,这些方法不是线程。

下面是一些关于SystemC进程的指针:

  • SC_METHOD是必须一次完成执行的进程。(例如:一个简单的函数调用) 注意:SC_METHOD中不使用while(1)循环。
  • SC_THREAD的进程是单独的执行线程,必须在这里显式地使用wait()语句来同步SystemC内核模拟,这是您通常会发现使用while(1) (无限)循环的地方。

为了将线程挂起一段模拟时间,可以使用wait()语句引入所感知的延迟。

但是,为了更好地理解,您需要了解SystemC中静态和动态灵敏度之间的差异,请参阅这里获取更多信息。

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

https://stackoverflow.com/questions/43158691

复制
相关文章

相似问题

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