architecture beh of display is
type DISPLAY_STATE is (SIDLE, S_NEW_RESULT, S_NEW_INPUT, S_COUNTUP, S_GETCH,
- S_PUTCH, S_WAIT, S_NOP1, S_NOP2);
+ S_PUTCH, S_WAIT, S_NOP1);
signal state_int, state_next : DISPLAY_STATE;
signal d_zeile_int, d_zeile_next : hzeile;
signal d_spalte_int, d_spalte_next : hspalte;
end process;
-- next state
- process(state_int, d_new_result, d_new_eingabe, d_done, free)
+ process(state_int, d_new_result, d_new_eingabe, d_done, free, d_spalte_int)
begin
state_next <= state_int;
state_next <= S_NOP1;
end if;
when S_NOP1 =>
- if free = '0' then
- state_next <= S_NOP2;
- end if;
- when S_NOP2 =>
if free = '1' then
if unsigned(d_spalte_int) = 71 then
state_next <= SIDLE;
-- out
process(state_int, d_zeile_int, d_spalte_int, d_get_int, command_int,
- command_data_int)
+ command_data_int, d_char)
begin
d_zeile_next <= d_zeile_int;
d_spalte_next <= d_spalte_int;
d_get_next <= '1';
when S_PUTCH =>
command_next <= COMMAND_SET_CHAR;
- command_data_next <= x"000000" & std_logic_vector(d_char);
- when S_WAIT | S_NOP2 =>
- null;
- when S_NOP1 =>
+ command_data_next <= x"ffffff" & std_logic_vector(d_char);
+ when S_WAIT | S_NOP1 =>
command_next <= COMMAND_NOP;
command_data_next <= x"00000000";
end case;