2 use ieee.std_logic_1164.all;
3 use ieee.numeric_std.all;
8 sys_clk : in std_logic;
9 sys_res_n : in std_logic;
14 s_take : in std_logic;
15 s_done : out std_logic;
16 s_backspace : in std_logic;
18 d_new_eingabe : out std_logic;
19 d_new_result : out std_logic;
21 d_spalte : in hspalte;
23 d_done : out std_logic;
30 finished : out std_logic
34 architecture beh of history is
35 type HISTORY_STATE is (SIDLE);
36 signal state_int, state_next : HISTORY_STATE;
37 signal s_done_int, s_done_next : std_logic;
38 signal d_new_eingabe_int, d_new_eingabe_next : std_logic;
39 signal d_new_result_int, d_new_result_next : std_logic;
40 signal d_done_int, d_done_next : std_logic;
41 signal d_char_int, d_char_next : hbyte;
43 signal finished_int, finished_next : std_logic;
46 signal address, address_next, address_int : std_logic_vector(H_RAM_WIDTH - 1 downto 0);
47 signal data_out, data_in, data_in_next, data_in_int : hbyte;
48 signal wr, wr_next, wr_int : std_logic;
51 d_new_eingabe <= d_new_eingabe_int;
52 d_new_result <= d_new_result_int;
56 finished <= finished_int;
58 address <= address_int;
59 data_in <= data_in_int;
62 process(sys_clk, sys_res_n)
64 if sys_res_n = '0' then
69 d_new_result_int <= '0';
70 d_new_eingabe_int <= '0';
72 d_char_int <= (others => '0');
76 address_int <= (others => '0');
79 elsif rising_edge(sys_clk) then
81 state_int <= state_next;
83 s_done_int <= s_done_next;
84 d_new_result_int <= d_new_result_next;
85 d_new_eingabe_int <= d_new_eingabe_next;
86 d_done_int <= d_done_next;
87 d_char_int <= d_char_next;
89 finished_int <= finished_next;
91 address_int <= address_next;
92 data_in_int <= data_in_next;
100 state_next <= state_int;
117 sp_ram_inst : entity work.sp_ram(beh)
119 ADDR_WIDTH => H_RAM_WIDTH
123 sys_res_n => sys_res_n,
125 data_out => data_out,
129 end architecture beh;