利⽤VHDL读写file⽂件
library ieee;
io.all;
use ieee.std_logic_textio.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
writelines和writelineentity 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,"",write_mode);  --打开⽂件“"
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,"",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;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。