From: Bernhard Urban Date: Wed, 19 May 2010 14:33:25 +0000 (+0200) Subject: display/history: robuster, trotzdem funktioniert es noch nicht so wie ich moechte X-Git-Tag: alpha~16 X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=commitdiff_plain;h=8f178b2ec0d1612a23da23b70baca1aaa7dade81 display/history: robuster, trotzdem funktioniert es noch nicht so wie ich moechte --- diff --git a/src/beh_display_tb.vhd b/src/beh_display_tb.vhd index 707788b..166510a 100644 --- a/src/beh_display_tb.vhd +++ b/src/beh_display_tb.vhd @@ -76,10 +76,12 @@ begin icwait(sys_clk, 5); sys_res_n <= '1'; - while i <= 71 loop + while i <= 5 loop + icwait(sys_clk, 10); d_new_eingabe <= '1'; wait on d_get; -- = '1'; icwait(sys_clk, 1); + d_new_eingabe <= '0'; ctmp := input(to_integer(unsigned(d_spalte))); d_char <= hbyte(to_unsigned(character'pos(ctmp),8)); @@ -88,7 +90,6 @@ begin wait on d_get; -- = '0'; icwait(sys_clk, 1); d_done <= '0'; - d_new_eingabe <= '0'; free <= '0'; icwait(sys_clk, 1); diff --git a/src/display.vhd b/src/display.vhd index 507c739..8fca39c 100644 --- a/src/display.vhd +++ b/src/display.vhd @@ -93,7 +93,7 @@ begin when S_COUNTUP => state_next <= S_GETCH; when S_GETCH => - if free = '1' and d_done = '1' then + if free = '1' and d_done = '1' and d_new_result = '0' and d_new_eingabe = '0' then state_next <= S_PUTCH1; end if; when S_PUTCH1 => diff --git a/src/history.vhd b/src/history.vhd index 4572456..c9f5656 100644 --- a/src/history.vhd +++ b/src/history.vhd @@ -139,12 +139,12 @@ begin -- out process(state_int, s_cnt_int, d_spalte, data_out, s_char, address_int, - data_in_int) + data_in_int, d_new_result_int, d_new_eingabe_int) begin s_done_next <= '0'; s_cnt_next <= s_cnt_int; - d_new_result_next <= '0'; - d_new_eingabe_next <= '0'; + d_new_result_next <= d_new_result_int; + d_new_eingabe_next <= d_new_eingabe_int; d_done_next <= '0'; d_char_next <= (others => '0'); finished_next <= '0'; @@ -179,6 +179,8 @@ begin when S_D_INIT => address_next <= '0' & d_spalte; + d_new_eingabe_next <= '0'; + d_new_result_next <= '0'; when S_D_WAIT => null; when S_D_WRITE =>