【问题标题】:Is there a verilog function to iterate over multiple input files for validation?是否有一个 verilog 函数可以遍历多个输入文件以进行验证?
【发布时间】:2021-12-13 04:48:20
【问题描述】:

我可以打开一个文件

integer fd;
fd = $fopen ("file_to_open.txt", "r");

但是如果我在一个目录中有多个文件,例如

f1.txt
f2.txt
f3.txt

如何在我的 verilog 测试平台中不明确定义它们的名称的情况下迭代这些文件?

在 bash 中,这将通过以下方式完成:

for f in ./*.txt; do
    ...
done

【问题讨论】:

  • 如果文件名遵循这样的简单模式(f*.txt),那么this should work

标签: verilog test-bench


【解决方案1】:

Verilog 无法直接与运行模拟的操作系统进行交互,因此它无法扩展文件名。

您在 Verilog 中有两种选择:

  1. 编写一些执行此操作的 C 代码并通过 VPI 链接该代码(困难)
  2. 创建一个 bash 脚本,将您的文件列表构建到一个文本文件中,然后使用 $fgets$fscanf 一次读取该列表一行。 (繁琐)

如果您使用 SystemVerilog,这会容易得多,因为它具有字符串数据类型,以及与 C (DPI) 的直接接口

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    相关资源
    最近更新 更多