What closes the implicitly open file?

V

valtih1978

A file declaration opens a file implicitly when file open information is
included. Specification does not say when file is closed.
 
K

KJ

A file declaration opens a file implicitly when file open information is
included. Specification does not say when file is closed.

Your statement is true only for the original VHDL 1987 standard. To answer your question, the file is closed when the simulation ends.

That's why using anything other than VHDL '87 is better. Starting with VHDL '93, you open and close the files explicitly when you want to open and close them.

Kevin Jennings
 
V

valtih1978

open and close the files explicitly when you want to open and close them.

And, I can close the implicitly opened file at any time?
 
K

KJ

And, I can close the implicitly opened file at any time?

When compiling with VHDL '93, there won't be any implicitly opened files. The files won't be open until you explicitly open them.

Kevin Jennings
 
P

Paul Uiterlinden

KJ said:
When compiling with VHDL '93, there won't be any implicitly opened files.
The files won't be open until you explicitly open them.

Still, they can be opened during elaboration (the old fashioned way) if
declared as follows:

file fh: text open write_mode is "my_file.txt";

I guess this could be called "explicitly opening the file".
 
V

valtih1978

And, I can close the implicitly opened file at any time?
Still, they can be opened during elaboration (the old fashioned way) if
declared as follows:

file fh: text open write_mode is "my_file.txt";

I guess this could be called "explicitly opening the file".

No. FILE_OPEN(f) is explicit when user calls it manually! The
declaration-specified open information calls this function implicitly. I
just wonder when the corresponding FILE_CLOSE(f) is or can be called in
this case?
 
K

KJ

No. FILE_OPEN(f) is explicit when user calls it manually! The
declaration-specified open information calls this function implicitly. I
just wonder when the corresponding FILE_CLOSE(f) is or can be called in
this case?

Why are you wondering? I answered your question with my first post in the second sentence.

Kevin Jennings
 
E

Enrik Berkhan

Alan Fitch said:
All I can find in 1076-2002 is

"If a file object F is associated with an external file, procedure
FILE_CLOSE terminates access to the external file associated with F and
closes the external file. If F is not associated with an external file,
then FILE_CLOSE has no effect. In either case, the file object is no
longer open after a call to FILE_CLOSE that associates the file object
with the formal parameter F.

An implicit call to FILE_CLOSE exists in a subprogram body for every
file object declared in the corresponding subprogram declarative part.
Each such call associates a unique file object with the formal
parameter F and is called whenever the corresponding subprogram
completes its execution."

And, further, it (at least 1076-2008) does not forbid closing a file
explicitly that has been opened implicitly by declaration, AFAICS.

Enrik
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top