signal command : std_logic_vector(COMMAND_SIZE - 1 downto 0);
signal command_data : std_logic_vector(3 * COLOR_SIZE + CHAR_SIZE -1 downto 0);
-- 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;
-- 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,
end if;
end process;
+ process
+ begin
+ free <= '0';
+ wait for 15 ns;
+ free <= '1';
+ wait for 30 ns;
+ if stop = true then
+ wait;
+ end if;
+ end process;
+
process
variable input : hstring := "123513 ";
variable ctmp : character;
sys_res_n <= '0';
d_new_eingabe <= '0';
d_new_result <= '0';
+ d_new_bs <= '0';
d_done <= '0';
d_char <= x"00";
- free <= '1';
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));
wait on d_get; -- = '0';
icwait(sys_clk, 1);
d_done <= '0';
- d_new_eingabe <= '0';
-
- free <= '0';
- icwait(sys_clk, 3);
- free <= '1';
- icwait(sys_clk, 3);
-
- -- fuer NOP
- free <= '0';
- icwait(sys_clk, 3);
- free <= '1';
i := i + 1;
end loop;
+ icwait(sys_clk, 2);
+ d_new_result <= '1';
+ icwait(sys_clk, 2);
+ d_new_result <= '0';
if checkall then
report "alle testfaelle des Displays waren erfolgreich!";