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;
|
||
|
Also available in: Unified diff
Added synchronizer