-- system
signal sys_clk, sys_res_n : std_logic;
-- history/display
- signal d_new_eingabe, d_new_result : std_logic;
+ signal d_new_eingabe, d_new_result, d_new_bs : std_logic;
signal d_zeile : hzeile;
signal d_spalte : hspalte;
signal d_get, d_done : std_logic;
-- display
d_new_eingabe => d_new_eingabe,
d_new_result => d_new_result,
+ d_new_bs => d_new_bs,
d_zeile => d_zeile,
d_spalte => d_spalte,
d_get => d_get,
-- history
d_new_eingabe => d_new_eingabe,
d_new_result => d_new_result,
+ d_new_bs => d_new_bs,
d_zeile => d_zeile,
d_spalte => d_spalte,
d_get => d_get,
process
begin
free <= '0';
- icwait(sys_clk, 2);
+ wait for 15 ns;
free <= '1';
- icwait(sys_clk, 2);
+ wait for 30 ns;
if stop = true then
wait;
end if;
return y;
end function;
- function valid_char (x : std_logic_vector(7 downto 0); last : std_logic_vector(7 downto 0)) return boolean is
+ function valid_char (x : std_logic_vector(7 downto 0)) return boolean is
variable y : boolean;
begin
case x is
variable run_tc, run_inner : boolean := true;
variable i, j, y : natural;
- variable last : std_logic_vector(7 downto 0);
begin
-- init & reset
sys_res_n <= '0';
s_done <= '0';
finished <= '0';
- icwait(sys_clk, 5);
+ icwait(sys_clk, 20);
sys_res_n <= '1';
i := 1;
j := 0;
mainl : while run_tc loop
- last := data;
- icwait(sys_clk, 1);
+ icwait(sys_clk, 10);
j := j + 1;
if j = 73 then
-- ack'en skippen, falls es ein "spezielles" zeichen ist (steht
-- in abhaengigkeit zum vorherigen zeichen)
- if(not valid_char(data, last)) then
+ if(not valid_char(data)) then
next mainl;
end if;