首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在systemC中,如何在end_of_simulation例程中获取sc_time

在systemC中,如何在end_of_simulation例程中获取sc_time
EN

Stack Overflow用户
提问于 2012-05-15 06:35:29
回答 3查看 4.1K关注 0票数 2

我想报告一下模拟结束时的时间。我想我应该使用end_of_simulation例程,并在例程中执行一个sc_timestamp来完成此操作。

问题是内核在end_of_simulation之前就终止了,我得到了一个假的时间戳。

我不能真正使用线程来确定这一点,因为将我拉出模拟的是所有线程都在等待事件。没有“主线程”,我可以只存储时间戳。

有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-21 09:27:21

这看起来有点老土,但你可以在代码中可能是模拟结束的关键点用sc_time_stamp()更新全局时间变量,比如在等待之前或从耗时的函数返回之前?然后,从sc_start()返回后,您将获得您所关心的代码的最后一个时间值。

票数 0
EN

Stack Overflow用户

发布于 2013-07-25 01:52:10

你可以使用类似这样的东西:

代码语言:javascript
运行
复制
cout << "Start of simulation is " << sc_time_stamp() << endl;
sc_start (); // sc_start (-1);
cout << "End of simulation is " << sc_time_stamp() << endl;

希望能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2012-05-30 22:44:59

我不确定我是否理解了你的问题。

要运行模拟,必须规定它必须总共花费的时间。sc_start(total_time,SC_NS)。

total_time是模拟的最后时间。

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

https://stackoverflow.com/questions/10591949

复制
相关文章

相似问题

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