gpt4 book ai didi

vhdl - 无论如何,是否可以使用 std textio 在 vhdl 中多次读取文件?

转载 作者:行者123 更新时间:2023-12-05 05:25:08 28 4
gpt4 key购买 nike

我试图了解如何在 vhdl 中读取文件,如果我打开一个文件,通读它,测试文件结尾,关闭文件然后重新打开该文件,然后再次开始读取它会从文件的开头?

非常感谢

最佳答案

向VHDL语言的权威寻求答案。

IEEE 标准 1076-2008

5.5 File types
5.5.1 General

A file type definition defines a file type. File types are used to define objects representing files in the host system environment. The value of a file object is the sequence of values contained in the host system file.

5.5.2 File operations

The FILE_OPEN procedures open an external file specified by the External_Name parameter and associate it with the file object F. If the call to FILE_OPEN is successful (see the following), the file object is said to be open and the file object has an access mode dependent on the value supplied to the Open_Kind parameter (see 16.3).

— If the value supplied to the Open_Kind parameter is READ_MODE, the access mode of the file object is read-only. In addition, the file object is initialized so that a subsequent READ will return the first value in the external file. Values are read from the file object in the order that they appear in the external file.

...
如果文件对象 F 与外部文件关联,过程 FILE_CLOSE 终止对与 F 关联的外部文件的访问并关闭外部文件。如果 F 不与外部文件关联,则 FILE_CLOSE 无效。在任何一种情况下,在调用将文件对象与形式参数 F 相关联的 FILE_CLOSE 后,文件对象不再打开。
...
READ 过程从文件中检索下一个值;如果文件对象的访问模式是只写的或者文件对象没有打开都是错误的。过程 WRITE 将值附加到文件。过程 FLUSH 请求实现完成所有先前对文件的 WRITE 过程调用的效果。对于 WRITE 和 FLUSH 过程,如果文件对象的访问模式是只读的或文件未打开,则会出错。如果后续对打开的文件对象(其访问模式为只读)的 READ 操作可以从文件中检索另一个值,则函数 ENDFILE 返回 FALSE;否则,它返回 TRUE。对于访问模式为只写的打开文件对象,函数 ENDFILE 始终返回 TRUE。如果在未打开的文件对象上调用 ENDFILE,则会出错。

进一步阅读会发现文件访问是独占的,您不能在没有 FILE_CLOSE 的情况下执行另一个 FILE_OPEN。您可以通过查找没有前面的 FILE_CLOSE 的后续 FILE_OPEN 将返回 STATUS_ERROR 来证明这一点。

所以一个FILE_OPEN从头开始访问。重置到文件开头的唯一方法是 FILE_CLOSE,然后 FILE_OPEN。

关于vhdl - 无论如何,是否可以使用 std textio 在 vhdl 中多次读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32267035/

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