X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hwmod.git;a=blobdiff_plain;f=src%2Fcalc.vhd;h=cdee994ba039e688a034856345e279613f82c02c;hp=41250e1432867e1a56e6ed73b774eb0ab85a7311;hb=5c172eaa03a4140731713050b95a53c5cc52db6b;hpb=8fff20317f9be9b5305dfdc62c19ccf380176cd0 diff --git a/src/calc.vhd b/src/calc.vhd index 41250e1..cdee994 100644 --- a/src/calc.vhd +++ b/src/calc.vhd @@ -6,6 +6,8 @@ use work.textmode_vga_component_pkg.all; use work.textmode_vga_pkg.all; use work.textmode_vga_platform_dependent_pkg.all; use work.ps2_keyboard_controller_pkg.all; +use work.debounce_pkg.all; +use work.sync_pkg.all; entity calc is port ( @@ -55,6 +57,8 @@ architecture top of calc is signal p_finished : std_logic; -- parser/scanner signal do_it, finished : std_logic; + -- debouncing + signal sys_res_n_sync : std_logic; begin -- vga/ipcore textmode_vga_inst : entity work.textmode_vga(struct) @@ -65,12 +69,12 @@ begin ) port map ( sys_clk => sys_clk, - sys_res_n => sys_res_n, + sys_res_n => sys_res_n_sync, command => command, command_data => command_data, free => free, vga_clk => vga_clk, - vga_res_n => sys_res_n, + vga_res_n => sys_res_n_sync, vsync_n => vsync_n, hsync_n => hsync_n, r => r, @@ -89,7 +93,7 @@ begin display_inst : entity work.display(beh) port map ( sys_clk => sys_clk, - sys_res_n => sys_res_n, + sys_res_n => sys_res_n_sync, -- history d_new_eingabe => d_new_eingabe, d_new_result => d_new_result, @@ -109,7 +113,7 @@ begin history_inst : entity work.history(beh) port map ( sys_clk => sys_clk, - sys_res_n => sys_res_n, + sys_res_n => sys_res_n_sync, -- scanner s_char => s_char, s_take => s_take, @@ -138,7 +142,7 @@ begin parser_inst : entity work.parser(beh) port map ( sys_clk => sys_clk, - sys_res_n => sys_res_n, + sys_res_n => sys_res_n_sync, -- history p_rget => p_rget, p_rdone => p_rdone, @@ -156,7 +160,7 @@ begin scanner_inst : entity work.scanner(beh) port map ( sys_clk => sys_clk, - sys_res_n => sys_res_n, + sys_res_n => sys_res_n_sync, -- ps/2 new_data => new_data, data => data, @@ -178,12 +182,27 @@ begin ) port map ( sys_clk => sys_clk, - sys_res_n => sys_res_n, + sys_res_n => sys_res_n_sync, -- scanner new_data => new_data, data => data, ps2_clk => ps2_clk, ps2_data => ps2_data ); + + -- debouncer fuer sys_res_n + sys_res_n_debounce_inst : debounce + generic map ( + CLK_FREQ => 33330000, + TIMEOUT => 1 ms, + RESET_VALUE => '1', + SYNC_STAGES => 2 + ) + port map ( + sys_clk => sys_clk, + sys_res_n => '1', + data_in => sys_res_n, + data_out => sys_res_n_sync + ); end architecture top;