是否有 verilog 函数可以迭代多个输入文件进行验证?
Is there a verilog function to iterate over multiple input files for validation?
我可以用
打开文件
integer fd;
fd = $fopen ("file_to_open.txt", "r");
但是如果我在一个目录中有多个文件,例如
f1.txt
f2.txt
f3.txt
如何在不在我的 verilog 测试台中明确定义它们的名称的情况下迭代这些文件?
在 bash 中,这将通过以下方式完成:
for f in ./*.txt; do
...
done
Verilog 无法直接与操作系统进行交互,模拟 运行 开启,因此它无法扩展文件名。
您在 Verilog 中的两个选择是:
- 编写一些执行此操作的 C 代码并通过 VPI 链接该代码(困难)
- 创建一个 bash 脚本,将您的文件列表构建到文本文件中,然后使用
$fgets
或 $fscanf
一次读取该列表一行。 (繁琐)
如果您使用的是 SystemVerilog,这会容易得多,因为它具有字符串数据类型,以及与 C (DPI) 的直接接口
我可以用
打开文件integer fd;
fd = $fopen ("file_to_open.txt", "r");
但是如果我在一个目录中有多个文件,例如
f1.txt
f2.txt
f3.txt
如何在不在我的 verilog 测试台中明确定义它们的名称的情况下迭代这些文件?
在 bash 中,这将通过以下方式完成:
for f in ./*.txt; do
...
done
Verilog 无法直接与操作系统进行交互,模拟 运行 开启,因此它无法扩展文件名。
您在 Verilog 中的两个选择是:
- 编写一些执行此操作的 C 代码并通过 VPI 链接该代码(困难)
- 创建一个 bash 脚本,将您的文件列表构建到文本文件中,然后使用
$fgets
或$fscanf
一次读取该列表一行。 (繁琐)
如果您使用的是 SystemVerilog,这会容易得多,因为它具有字符串数据类型,以及与 C (DPI) 的直接接口