Revision 353
Added by markw over 10 years ago
| 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;
|
||
|
|
||
Added synchronizer