我在我的大型程序中遇到了一些同步线程的问题,并注意到我的一些等待语句从未返回所以我决定只编写一个简单的线程来测试wait的功能,并注意到它在{ {1}}级别。以下是我正在运行的示例:
SC_SEC
我的线程是自由运行的,我期望的是线程停止10秒并恢复,打印输出应该每次10,但我看到0并且它不是每10秒打印一次,它的打印就像忽略了我的等待声明。我不知道我在这里做错了什么。我正在关注this我对等待的理解,但我不知道问题是什么。
同样,当我尝试使用2个线程进行测试时,其中一个将数据写入fifo,等待一段时间,另一个从fifo读取数据并等待一段时间,我注意到线程从未从等待中返回。 / p>
答案 0 :(得分:0)
您是尝试使用SystemC建模硬件设计还是尝试使用SystemC进行软件建模? 你好像混淆了上下文。
SystemC主要用于建模硬件设计(类似于VHDL和Verilog)。
您在SystemC上下文中观察到的时序概念根本与现实时间无关。
当然,在SystemC中切换线程时,您将始终观察接近零时的执行时间,因为它只是将执行的上下文切换到其他线程,而SystemC内核只是同步虚拟时间(即模拟时间)在SystemC内核中建模基于时间(虚拟时间)的事件。