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.)