使用vhdl textio读取或写入多个文件

使用vhdl textio读取或写入多个文件,vhdl,file-handling,Vhdl,File Handling,我已经成功地编写了一个vhdl代码来读写文件。基本上,我读取一个文件,处理文件中的数据,然后将结果写入另一个文件。 现在我想将我的程序扩展到读取多个测试用例。例如,数据将在名为1.txt、2.txt等不同文件中可用,直到100.txt。 我想使用循环从文件中逐个读取数据,并将输出写入不同的文件。有人能帮忙吗 type i1 is file of character; file f1 : i1 open READ_MODE is "1.txt"; 这

我已经成功地编写了一个vhdl代码来读写文件。基本上,我读取一个文件,处理文件中的数据,然后将结果写入另一个文件。 现在我想将我的程序扩展到读取多个测试用例。例如,数据将在名为1.txt、2.txt等不同文件中可用,直到100.txt。 我想使用循环从文件中逐个读取数据,并将输出写入不同的文件。有人能帮忙吗

type i1 is file of character;                       
file f1 : i1 open READ_MODE is "1.txt";

这是我用来读取文件的代码类型。如何为文件数组扩展它?

我不能在家里尝试,因此这可能不起作用-您是否尝试将代码移动到
过程中,并将文件名作为参数?然后,您可以将它包装在一个简单的
for
循环中,它不会像在
生成
循环中将文件名作为泛型那样尝试并行执行所有操作。

我不能在家中尝试,因此这可能不起作用-您是否尝试将代码移动到
过程中,以文件名作为参数?这样,您就可以将它包装在一个简单的
for
循环中,而不会像在
生成
循环中将文件名作为泛型那样尝试并行执行所有操作。

我的博客在此展示了如何从函数中打开文件并读取数据

您可以将文件名作为
string
类型传递给函数并使用
text
文件:

file file_variable : text;
而且

file_open(file_variable, filename, read_mode);
打开它

注意,如果您正在读取二进制文件,不同的模拟器会以不同的方式运行。Modelsim会做你(可能)期望的事情。当读取EOF字符时,我已经让GHDL崩溃了。Xilinx的模拟器希望在文件上有一个特殊的头

坚持纯文本是最容易移植的,即使你必须对其进行预处理。

我的博客展示了如何从函数中打开文件并读取数据

您可以将文件名作为
string
类型传递给函数并使用
text
文件:

file file_variable : text;
而且

file_open(file_variable, filename, read_mode);
打开它

注意,如果您正在读取二进制文件,不同的模拟器会以不同的方式运行。Modelsim会做你(可能)期望的事情。当读取EOF字符时,我已经让GHDL崩溃了。Xilinx的模拟器希望在文件上有一个特殊的头

即使您必须对纯文本进行预处理,也可以使用纯文本进行移植。

过程读取示例文件 ( 文件名:字符串形式; ... )是 文件msgFile:text; ... 开始 文件打开(msgFile、文件名、读取模式)

程序读取样本文件 ( 文件名:字符串形式; ... )是 文件msgFile:text; ... 开始
文件打开(msgFile、文件名、读取模式)

我有大约100个文件。所以我有不同的文件名。我不知道如何以通用的方式传递文件名。我有大约100个文件。所以我有不同的文件名。我不知道如何以通用的方式传递文件名。请在你的回答中更详细一点。请在你的回答中更详细一点。