利用VHDL讀寫file文件


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;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM