在 SystemVerilog 中使用 DPI 时,我遇到了将 C 端的标准输出重定向到 SystemVerilog 的标准输出以将所有日志写入集中在一个位置的问题(在我的情况下,来自 C 的 printf 显示在终端中,但似乎没有出现在来自 EDA 的日志文件中)。
我知道 100% 有效的解决方案是从 SV 端导出函数并在 C 中使用它来打印,但在我看来它并不聪明。
我尝试使用某种重定向,使用重新打开函数来更改地址 stdout var 指向的地址(据我所知,stdout 它是程序写入的地址),但最终它将所有登录重定向到这个标准输出,包括 SystemVerilog 日志。
将所有日志保存在一个流中的更好方法是什么?
也许有办法让 C 知道 IDE 标准输出?