Intel® FPGA University Program
University Program Material, Education Boards, and Laboratory Exercises
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

DE2 Keypad Scanner?

Honored Contributor II

I'm looking for a keypad scanner programmed in Verilog for the DE2. 


I've found some C language keypad scanner but I can't get them to work. 


On my own attempt at Verilog, I can scan either only row or column of a keypad but not scan a specific column and row. 


I also can't get Nios2IDE to compile correctly but Altera Monitor Program can compile just fine. Is there any difference if I just use the Monitor program instead of the Nios2IDE? 


Another thing, this university assignment of mine is about external interfacing of DE2, meaning we need to connect our custom PCB to the 40-pin GPIO in/out ports and with some Automated stuff. 


We decided to build a security system with keypad, voice authentication and many other additional features. But now approaching our deadline, we can't even figure out the keypad scanner part. We're taking degree in Robotics and Automation. 


If only I can find a working keypad scanner, hopefully in Verilog, it would be great. C language keypad scanner would be helpful as well. I can post up the non-working keypad scanner I have if anyone asked.
0 Kudos
2 Replies
Honored Contributor II

Apart from any details of Verilog or C programming, you basically need a idea how to identify a pressed key on a keyboard or in other words: You have to design the algorithm. For the FPGA implementation, you should consider some additional stuff, e. g. how to generate a timed sequence that can step through the matrix and select either one row or column at a time.

Honored Contributor II

Look for the 74HC922 (hexadecimal keyboard decoder) integrated circuit datasheet and try to replicate it's hardware by means a verilog description