X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=blobdiff_plain;f=src%2Fbeh_display_tb.vhd;h=f1db735c297b08ee4f8d0f859259ba9d7b87b794;hp=02a82575956046e5d2bff6d96ecce5835e335750;hb=HEAD;hpb=296b97dc82442c2ff794f729003dd4358ed7e10c diff --git a/src/beh_display_tb.vhd b/src/beh_display_tb.vhd index 02a8257..f1db735 100644 --- a/src/beh_display_tb.vhd +++ b/src/beh_display_tb.vhd @@ -17,7 +17,7 @@ architecture sim of beh_display_tb is 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; @@ -29,13 +29,14 @@ architecture sim of beh_display_tb is signal stop : boolean := false; begin -- display - inst : entity work.display(beh) + inst : display port map ( sys_clk => sys_clk, sys_res_n => sys_res_n, -- 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, @@ -59,7 +60,18 @@ begin end process; process - variable input : hstring := "123513 "; + 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; variable checkall : boolean := true; @@ -69,17 +81,19 @@ begin 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)); @@ -88,21 +102,14 @@ begin 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!";