如何使用Verilog或SystemVerilog从c面打印

问题描述 投票:0回答:1

问题是如何在运行测试时将 C 模型中的数据记录到终端中。答案是在 C 代码中使用 vpi_print 而不是常规的 printf。

这个问题我受到了一些批评,并决定说清楚。

原版就在下面

“在 SystemVerilog 中使用 DPI 时,我遇到了一个问题,将 C 端的标准输出重定向到 SystemVerilog 的标准输出,以将所有日志写入到一个位置(在我的情况下,来自 C 的 printf 显示在终端中,但似乎没有出现在 EDA 的日志文件中)。

我知道100%有效的解决方案是从SV端导出函数并在C中使用它来打印,但在我看来这并不聪明。

我尝试使用某种重定向,使用重新打开函数来更改 stdout var 指向的地址(据我所知,stdout 是程序写入的地址),但最终它将所有日志重定向到此 stdout,包括 SystemVerilog 日志.

将所有日志保留在一个流中的更好方法是什么?

也许有办法让 C 了解 IDE 标准输出?”

system-verilog system-verilog-dpi
1个回答
0
投票

答案已由https://stackoverflow.com/users/1143850/serge

给出

从C端使用vpi_print函数。 vpi_print 会将其输出放入与 EDI 相同的流中

© www.soinside.com 2019 - 2024. All rights reserved.