library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use work.gen_pkg.all; use work.textmode_vga_component_pkg.all; use work.textmode_vga_pkg.all; use work.textmode_vga_platform_dependent_pkg.all; -- this is for test file io use std.textio.all; entity beh_pc_communication_tb is end entity beh_pc_communication_tb; architecture sim of beh_pc_communication_tb is type byte_file_type is file of hbyte; signal sys_clk : std_logic; signal sys_res_n : std_logic; signal btn_a : std_logic; signal tx_new : std_logic; signal tx_done : std_logic; signal rx_new : std_logic; signal d_get : std_logic; signal d_done : std_logic; signal rx_data, tx_data : std_logic_vector(7 downto 0); signal d_zeile : hzeile; signal d_spalte : hspalte; signal d_char : hbyte; begin -- display inst : entity work.pc_communication(beh) port map ( sys_clk => sys_clk, sys_res_n => sys_res_n, --button btn_a => btn_a, --uart_tx tx_data => tx_data, tx_new => tx_new, tx_done => tx_done, --uart_rx rx_data => rx_data, rx_new => rx_new, -- History d_zeile => d_zeile, d_spalte => d_spalte, d_get => d_get, d_done => d_done, d_char => d_char ); clk : process begin sys_clk <= '0'; wait for 15 ns; sys_clk <= '1'; wait for 15 ns; end process clk; stub_history : process file f : byte_file_type open read_mode is "../../src/pc_communication.test"; variable rb : hbyte; begin wait until rising_edge(d_get); assert not endfile(f) report "test beendet" severity failure; read(f, rb); wait for 30 ns; d_char <= rb; d_done <= '1'; wait for 15 ns; d_done <= '0'; end process stub_history; reset_and_button : process begin -- init & reset -- we only simulate pressing of button a by now! sys_res_n <= '0'; wait for 100 ns; sys_res_n <= '1'; btn_a <= '1'; wait for 15ns; btn_a <= '0'; wait; end process reset_and_button; end architecture sim;