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):
- emard__uk101onfpga (instantiates
Components/PS2KB/UK101keyboard.vhd) - hoglet67__ice40atom (instantiates
src/keyboard.v) - hoglet67__ice40beeb (instantiates
src/keyboard.v) - lawrie__blackicemxbook (instantiates
examples/input/ps2/ps2_test.v) - lawrie__ulx3s_acorn_atom (instantiates
src/keyboard.v) - lawrie__ulx3s_bbc_micro (instantiates
src/keyboard.v) - lawrie__verilog_examples (instantiates
fpga/computer/vga_test.v)
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):
- danodus__xgsoc (instantiates
rtl/soc_top.sv) - emard__minimig_ecs (instantiates
source_emard/Userio.v) - linuxjedi__minimig_ecs (instantiates
source_emard/Userio.v) - pnru__ti99 (instantiates
ti99_2/ps2kb.v) - speccery__icy99 (instantiates
src/ps2kb.v) - stuij__odyssey (instantiates
verilog/odyssey_top.v)
Other catalogued projects
Catalogued repos tagged ps2 (58) are listed in the full catalogue.