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 (
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)
)
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,
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,
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,
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,
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,
)
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;