s_backspace : out std_logic;
-- Parser
do_it : out std_logic;
- finished : in std_logic
+ finished : in std_logic;
+ -- test: uart-tx
+ tx_data : out std_logic_vector(7 downto 0);
+ tx_new : out std_logic
);
end entity scanner;
signal s_take_int, s_take_next : std_logic;
signal s_backspace_int, s_backspace_next : std_logic;
signal do_it_int, do_it_next : std_logic;
+ signal tx_data_int, tx_data_next : std_logic_vector(7 downto 0);
+ signal tx_new_int, tx_new_next : std_logic;
begin
s_char <= s_char_int;
s_take <= s_take_int;
s_backspace <= s_backspace_int;
do_it <= do_it_int;
+ tx_new <= tx_new_int;
+ tx_data <= tx_data_int;
process(sys_clk, sys_res_n)
begin
s_take_int <= '0';
s_backspace_int <= '0';
do_it_int <= '0';
+ tx_new_int <= '0';
+ tx_data_int <= (others => '0');
elsif rising_edge(sys_clk) then
-- internal
state_int <= state_next;
s_take_int <= s_take_next;
s_backspace_int <= s_backspace_next;
do_it_int <= do_it_next;
+ tx_new_int <= tx_new_next;
+ tx_data_int <= tx_data_next;
end if;
end process;
-- next state
- process(state_int, new_data, data, finished, s_done)
+ process(state_int, new_data, data, finished, s_done, tx_data_int)
begin
state_next <= state_int;
+ tx_new_next <= '0';
+ tx_data_next <= tx_data_int;
case state_int is
when SIDLE =>
end if;
when SENTER =>
if finished = '1' then
+ tx_new_next <= '1';
+ tx_data_next <= x"42";
state_next <= SIDLE;
end if;
end case;