Project

General

Profile

« Previous | Next » 

Revision 353

Added by markw over 10 years ago

Added synchronizer

View differences:

common/components/ps2_keyboard.vhdl
signal last_ps2_clk_next : std_logic;
signal last_ps2_clk_reg : std_logic;
signal ps2_clk_reg : std_logic;
signal ps2_dat_reg : std_logic;
......
signal key_value_last_reg : std_logic_vector(9 downto 0);
BEGIN
sync_clk: ENTITY work.synchronizer
PORT MAP
(
CLK => CLK,
RAW => PS2_CLK,
SYNC => PS2_CLK_REG
);
sync_dat: ENTITY work.synchronizer
PORT MAP
(
CLK => CLK,
RAW => PS2_DAT,
SYNC => PS2_DAT_REG
);
-- register
process(clk,reset_n)
begin
if (reset_n = '0') then
ps2_clk_reg <= '0';
ps2_dat_reg <= '0';
-- Convert to bytes/verify
last_ps2_clk_reg <= '0';
......
key_value_last_reg <= (others=>'0');
elsif (clk'event and clk='1') then
-- Raw interface
-- async - do we need some form of synchronizer?
ps2_clk_reg <= ps2_clk;
ps2_dat_reg <= ps2_dat;
-- Convert to bytes/verify
last_ps2_clk_reg <= last_ps2_clk_next;

Also available in: Unified diff