PS/2 keyboard and mouse

PS/2 keyboard and mouse interfaces.

Core Repository Language License FPGA Used by
ps2_intf keyboard decoder ★ lawrie__ulx3s_examples Verilog none found any 7
f32c ps2 VHDL core f32c__f32c VHDL MIT (file header, Copyright 2015 Ken Jordan) any 0
ps2_port bidirectional PS/2 lawrie__ulx3s_examples Verilog none found any 0
ps2kbd + ps2mouse (EMARD) emard__ulx3s-misc Verilog BSD (ps2kbd.v header: AUTHOR=Paul Ruiz,… any 6

Cores

ps2_intf keyboard decoder (best)

Input-only PS/2 keyboard interface: clock filtering, 11-bit frame shift-in, byte-valid strobe. The most widely-copied PS/2 core in the collection.

   
Repository lawrie__ulx3s_examples: Lawrie Griffiths Verilog examples: HDMI, displays, PS/2, SDRAM, USB host, CPUs
Files ps2/ps2.v
Top module ps2_intf
Language Verilog
License none found
FPGA / primitives any: none (portable)
Tests ps2/ps2_test.v exists but is waveform-only, no PASS/FAIL

On ULX3S: Same file copied verbatim into hoglet67__ice40beeb, hoglet67__ice40atom, lawrie__ulx3s_bbc_micro, lawrie__ulx3s_acorn_atom, lawrie__blackicemxbook, lawrie__verilog_examples.

Full review: lawrie__ulx3s_examples.

Used by 7 other catalogued repos (file copies or module instances found by scan_core_usage.py; heuristic):

f32c ps2 VHDL core

PS/2 keyboard/mouse interface entity used in the f32c SoC library.

   
Repository f32c__f32c: f32c: retargetable RISC-V/MIPS 32-bit soft CPU + SoC library
Files rtl/soc/ps2.vhd
Top module ps2
Language VHDL
License MIT (file header, Copyright 2015 Ken Jordan)
FPGA / primitives any: none (portable)
Tests none found

On ULX3S: VHDL, no vendor primitives; pair with f32c’s own SoC memory map or lift standalone.

Full review: f32c__f32c.

ps2_port bidirectional PS/2

Bidirectional PS/2 port (adds host-to-device writes, e.g. keyboard LEDs) built on the same ps2_intf lineage.

   
Repository lawrie__ulx3s_examples: Lawrie Griffiths Verilog examples: HDMI, displays, PS/2, SDRAM, USB host, CPUs
Files ps2port/ps2_port.v
Top module ps2_port
Language Verilog
License none found
FPGA / primitives any: none (portable)
Tests ps2port/ps2_test.v exists, waveform-only

On ULX3S: Use when a design needs to set keyboard LEDs or otherwise talk back on the PS/2 bus, not just decode input.

Full review: lawrie__ulx3s_examples.

ps2kbd + ps2mouse (EMARD)

Separate keyboard decoder and a full 3-byte PS/2 mouse controller with automatic power-up initialization.

   
Repository emard__ulx3s-misc: ULX3S misc/advanced examples: EMARD’s building-block library
Files examples/ps2/kbd/hdl/ps2kbd.v, examples/ps2/mouse/hdl/ps2mouse.v
Top module ps2kbd
Language Verilog
License BSD (ps2kbd.v header: AUTHOR=Paul Ruiz, LICENSE=BSD); ps2mouse.v: none found
FPGA / primitives any: none (portable)
Tests none found

On ULX3S: ps2kbd.v reused in stuij__odyssey and danodus__xgsoc; ps2mouse.v reused in danodus__xgsoc and the emard/linuxjedi minimig_ecs forks.

Full review: emard__ulx3s-misc.

Used by 6 other catalogued repos (file copies or module instances found by scan_core_usage.py; heuristic):

Other catalogued projects

Catalogued repos tagged ps2 (58) are listed in the full catalogue.


Back to top

Generated from the JSON in data/ by the scripts in .claude/skills. Facts cite the upstream file at the reviewed commit; verify before reuse.

This site uses Just the Docs, a documentation theme for Jekyll.