What closes the implicitly open file?

V

valtih1978

Guest
A file declaration opens a file implicitly when file open information is
included. Specification does not say when file is closed.
 
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?
 
On Sunday, June 24, 2012 1:24:20 PM UTC-4, valtih1978 wrote:
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
 
KJ wrote:

On Monday, June 25, 2012 12:25:22 PM UTC-4, valtih1978 wrote:
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?

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".

--
Paul Uiterlinden
www.aimvalley.nl
e-mail addres: remove the not.
 
On Monday, June 25, 2012 12:25:22 PM UTC-4, valtih1978 wrote:
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?
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
 
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.

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?
 
On 28/06/12 17:36, valtih1978 wrote:
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.

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?
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."

In practical simulators, files without an explicit call to file_close
seem to be closed when simulation quits, but this doesn't seem to be in
the standard.

regards
Alan

--
Alan Fitch
 
On Thursday, June 28, 2012 12:36:48 PM UTC-4, valtih1978 wrote:
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?
Why are you wondering? I answered your question with my first post in the second sentence.

Kevin Jennings
 
Alan Fitch <apf@invalid.invalid> wrote:
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
 

Welcome to EDABoard.com

Sponsor

Back
Top