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

时间:2011-12-10 05:35:25

标签: 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";

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

3 个答案:

答案 0 :(得分:1)

我的博客http://parallelpoints.com/node/66/显示了如何从函数中打开文件并读取数据。

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

file file_variable : text;

和...

file_open(file_variable, filename, read_mode);

打开它。

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

即使你必须预先处理纯文本,它也是最便携的。

答案 1 :(得分:0)

我无法在家中尝试此操作,因此这可能无效 - 您是否尝试将代码移动到procedure,并将文件名作为参数?然后你就可以将它包装在一个简单的for循环中,并且不会像在generate循环中将文件名作为泛型一样并行尝试。

答案 2 :(得分:0)

程序read_sample_file    (       file_name:in string;       ...    )是       文件msgFile:text;       ...    开始       file_open(msgFile,file_name,READ_MODE);