- Package Process Architecture Procedure Function
- Section 3.4
- Section 4.3.2
- Section 14.3
file logical_name : file_type is mode "file_name";
Usually, files of type text are used as they are portable between different VHDL simulators. The mode of the file refers to the direction of data flow, and may be either in (i.e. a read-only file) or out (a write-only file):
use std.textio.all; package REF_PACK is file INFILE : text is in "in.dat"; file OUTFILE : text is out "out.dat"; end REF_PACK;
Text files may be read by using the endfile, readline and read subprograms defined in the package std.textio:
READ_FILE: process variable VEC_LINE : line; variable VEC_VAR : bit_vector(0 to 7); file VEC_FILE : text is in "stim.vec"; begin while not endfile(VEC_FILE) loop readline (VEC_FILE, VEC_LINE); read (VEC_LINE, VEC_VAR); A_BUS <= VEC_VAR; wait for 10 ns; end loop; wait; end process READ_FILE;
The textio package must be made visible by the clause:
Text files may be written by using the write and writeln subprograms, also defined in the textio package. Output data may be formatted using optional parameters for write.
Textio read and write procedures are defined for the types bit, bit_vector, boolean, character, integer, real, string and time. They are not compatible with user-defined types or std_logic_1164 types (although some vendors supply routines for the std_logic_1164 types).
Text files may be written by using the writeln and write subprograms defined in the package std.textio:
WRITE_FILE: process (CLK) variable VEC_LINE : line; file VEC_FILE : text is out "results"; begin -- strobe OUT_DATA on falling edges -- of CLK and write value out to file if CLK='0' then write (VEC_LINE, OUT_DATA); writeline (VEC_FILE, VEC_LINE); end if; end process WRITE_FILE;
A file (read or write) is opened in VHDL when the structure in which it is declared is elaborated. This means that files declared in processes or architectures are opened only once at the beginning of a simulation. files declared in procedures are reopened at the beginning of the file every time the procedure is elaborated (every time it is executed) and are closed every time the procedure finishes execution.
Files can be explicitly opened and closed during simulation.
file MYTEXT : text open read_mode is "enum.txt";
The attributes ‘image and ‘value can be used to make textio for enumerated types, see attributes.
File declarations and operations are not supported by logic synthesis tools.