我开始使用SystemC,并研究中提到的例子 Using existing unit test frameworks with SystemC
我真的不明白为什么需要分叉,特别是当一个分叉只等待另一个分叉时。内核中是否存在需要这种多线程(特别是事件处理)的东西? (换句话说:我需要这种类型的处理,仅在我需要并发测试时,或者在更简单的情况下)
另一个问题是,在链接的答案中,我在开头看到了徽标
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'
compile 'com.android.support:appcompat-v7:25.2.0'
而在我的情况下,徽标位于输出的末尾
SystemC 2.2.0 --- Feb 24 2011 15:01:50
Copyright (c) 1996-2006 by all Contributors
ALL RIGHTS RESERVED
Running main() from gtest_main.cc
这只是因为版本不同,或者是预期的及时行为?
答案 0 :(得分:1)
SystemC内核以其当前形式设计的方式,一旦您使用sc_start()
启动SystemC模拟并停止了,它就不能完全支持模拟模块的动态创建/删除使用sc_stop()
进行模拟需要完全破坏SystemC模拟上下文。
请查看更新的答案以获得更好的解决方案here 注意:建议为不同的模拟上下文设置单独的可执行文件,因为模拟器不保证在这种环境中进行模拟的结果,请参阅SystemC LRM以获取更多详细信息。
至于SystemC徽标差异,原因是系统中stdout
,stderr
的缓冲不同。每次执行二进制文件时都会看到不同的结果。 (如果它是一致的,那么谷歌测试框架可能会在内部处理stdout
和stderr
流。)
答案 1 :(得分:0)
我会使用注册表设计模式。我已经在Using existing unit test frameworks with SystemC
中发布了如何使用SystemC和GoogleTest执行此操作的方法