Go Back

Source code


Name: keypad_scanner
Created: Apr 1, 2003
Updated: Dec 20, 2009
SVN Updated: Mar 10, 2009

Other project properties

Category: Other
Development status: Stable
Additional info:
WishBone Compliant: Yes


This is a very small and simple module, which scans through an X-Y matrix of keys, and produces a "snapshot" of bits which represent the sampled state of the keyswitches during the scan.
There is memory in the module, so that the outputs are held constant during a scan, and updated simultaneously. The keys are sampled sequentially, but the memory stores up all of the keyswitch data until the final output "snapshot" is produced.
This module is parameterized Verilog, and is recommended for use with small matrix type keypads. It has been tested in real hardware.


- Parameterized Verilog code, tested in hardware
- Commented code, but no testbench
- Small module, easy to use and understand
- No support for "ghost key" detection (when three or more keys are pressed, a fourth "phantom key" can sometimes appear. This is true for most matrix type keyboards.)