gpt4 book ai didi

unit-testing - 我可以在我的测试台中捕获模拟器输出到控制台吗?

转载 作者:行者123 更新时间:2023-12-04 17:43:55 26 4
gpt4 key购买 nike

我有一个测试平台来测试我的 VHDL 设备 (DUT),但 DUT 调试输出的一部分是发送到控制台的 ASSERT/REPORT 消息,我想检查它的正确性,但我无法更改 DUT。我能想到的唯一方法是对输出日志文件进行后处理。

有什么方法可以在测试台中捕获控制台输出,以便我可以直接检查 DUT 输出?

最佳答案

我将此作为测试台的一部分。但是,我没有使用 Assert,而是使用 OSVVM 警报、日志和打印。 OSVVM 位于 osvvm.org 和 github 上。

我使用 AffirmIf 进行 self 检查/结果检查,而不是 Assert。我使用 AlertIf 进行参数检查。

第 1 步是获取 OSVVM。获得代码后,使用脚本对其进行编译。在 Mentor 或 Aldec 中,通过执行以下操作运行脚本:

vlib osvvm
vmap osvvm osvvm
do $PATH_TO_OSVVM/osvvm.do $PATH_TO_OSVVM

通过执行以下操作,使用 VHDL-2008 并在您的程序中包含所有 OSVVM:

library osvvm;
context osvvm.OsvvmContext;

然后而不是:

assert Data /= expected report "..." severity error;

做:

AffirmIf(Data = Expected, "...") ; 

断言和 AffirmIf/AlertIf 都打印。然而,AffirmIf/AlertIf 的优势在于它在内部保留错误计数,您可以通过以下方式在测试结束时获得通过失败:

ReportAlerts;

OSVVM AffirmIf/AlertIf/Log/Print 的下一个优势是,如果您想要将结果保存在文件中,您只需执行以下操作:

TranscriptOpen("./results/Test1.txt");

如果您既要打印到屏幕又要打印到文件,请执行以下操作:

SetTranscriptMirror(TRUE);

这应该让你开始。我将把剩下的留给用户指南。首先查看 AlertLog 包用户指南和 transcript 包用户指南。

关于unit-testing - 我可以在我的测试台中捕获模拟器输出到控制台吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53083437/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com