我正在Qt中编写一个GUI,其中有:
QApplication app(argc, argv);
由调用
app.exec();
仅当应用程序终止时返回。
为了在应用程序中执行SystemC模拟,我需要调用:
sc_start(...);
它也仅在模拟终止时返回。
我应该破解Qt或SystemC来绕过这个问题吗,或者有什么技巧我可以使用吗?如何避免两个阻塞调用的死锁?
您应该在两个不同的线程或进程中运行它们。并设计了一种在仿真和GUI之间进行数据交换的通信机制。
SystemC调试器和交互式波形查看器使用的另一个常见想法是在GDB下运行SystemC,并使用GDB-MI协议从GUI控制模拟。