library ieee;
use std.textio.all;
use ieee.std_logic_textio.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity testin is
end entity testin;
architecture rtl of testin is
begin
process is
file file_out1,filein: text; --定義text類型的文件句柄;
variable fstatus1,fstatus2:FILE_OPEN_STATUS; --定義文件狀態指示變量;
variable count:integer:=5; --定義integer型寫入數據;
variable stringdata:string(5 downto 1):="whwnh";--定義string型寫入數據;
variable vectordata:bit_vector(5 downto 0):="001000";--定義bit_vector型的寫入數據;
variable value:std_logic_vector(3 downto 0):="1111";--定義std_logic_vector型的寫入數據;
variable BUF,BUF1:LINE;
begin
file_open(fstatus1,file_out1,"datain.txt",write_mode); --打開文件“datain.txt"
write(file_out1,string'("the first parameter is=")); --通過write()函數直接向文件中寫入對應類型數據。
readline(input,buf); --從控制台輸入字符串輸入文件;
write(buf,count);
writeline(file_out1,buf); --向文件中輸入integer類型
wait for 20 ns;
write(buf,string'("the second parameter is="));
write(buf,value);
writeline(file_out1,buf);
wait for 20 ns; --向文件中輸入std_logic_vector類型數據;
write(buf,string'("the third parameter is="));
write(buf,vectordata);
writeline(file_out1,buf);
wait for 20 ns; --向文件中輸入bit_vector類型數據;
write(buf,string'("the forth parameter is="));
write(buf,stringdata); --向文件中輸入string類型數據。
writeline(file_out1,buf);
write(file_out1,string'("end of file"));
file_close(file_out1);
wait for 100 ns; --關閉文件
file_open(fstatus1,file_out1,"datain.txt",read_mode); --以讀取模式打開文件
readline(file_out1,buf); --讀取文件數據並輸出到控制台界面。
writeline(output,buf);
file_close(file_out1);
wait for 100 ns;
file_open(fstatus1,filein,"STD_INPUT",read_mode); --以控制台作為文件輸入
file_open(fstatus2,file_out1,"STD_OUTPUT",write_mode); --以控制台作為文件輸出
readline(filein,BUF);
writeline(file_out1,BUF);
wait;
end process;
end rtl;