[Solved] VE270 Assignment 6-Keypad Reader

$25

File Name: VE270_Assignment_6_Keypad_Reader.zip
File Size: 301.44 KB

SKU: [Solved] VE270 Assignment 6-Keypad Reader Category: Tag:
5/5 - (1 vote)

To design a Finite State Machine that reads the keys from a 4-by-4 keypad and displays the corresponding hexadecimal value on an SSD.

2. Background

Keypad readers are used to interpret data entered from keypads for digital devices such as phones, calculators, digital lock, etc. A keypad reader decodes a pressed key and outputs the corresponding binary code. Figure 1 shows the connection between a hexadecimal keypad and the keypad reader circuit.

When a button is pressed, it connects a row and a column at the location of the button. By providing a 1 to a column of the keypad, a 1 will be received from the connected row. In other words, the pressed key creates a loop for the signal 1 to travel from the keypad reader, through the loop created by the pressed key, and back to the keypad reader.

Figure 1. Keypad Reader

The keypad reader must be able to fire a column line to detect the location of a pressed button. A keypad reader detects a pressed key in three steps:

  • Detects whether a key is pressed;
  • Identifies which key is pressed;
  • Generates the corresponding 4-bit hexadecimal code for the pressed key.

Step (1) can be achieved by outputting 1111 on the col output, so that one of the row inputs will be asserted whenever there is a key pressed. An OR logic of all the row inputs (OR_row) will be used to indicate whether any row is high. If the keypad reader detects a high on the OR_row output, it performs step (2) in which the col outputs will be turned on sequentially. This will tell which row and column are connected. Thus, the pressed key can be located. Step (3) will be done by looking it up in Table 1.

Table 1. Keypad code for the Hex keypad

Key row (3 : 0) col (3 : 0) code (3 : 0)
0 0001 0001 0000
1 0001 0010 0001
2 0001 0100 0010
3 0001 1000 0011
4 0010 0001 0100
5 0010 0010 0101
6 0010 0100 0110
7 0010 1000 0111
8 0100 0001 1000
9 0100 0010 1001
A 0100 0100 1010
B 0100 1000 1011
C 1000 0001 1100
D 1000 0010 1101
E 1000 0100 1110
F 1000 1000 1111

This keypad reader can be designed as a Finite State Machine. The key detecting algorithm is captured in Figure 2. The machine begins in State0, with all of the col outputs asserted, until one of the row inputs is asserted. From State1 to State4, only one of the col outputs is asserted. If one of the row inputs is also asserted, the pressed key is located. An output code can be determined by the combination of col outputs and row inputs. The FSM then moves to State5 where it outputs the code with all the col outputs asserted until the OR_row is de-asserted which indicates the key is released.

Figure 2. State diagram of the keypad reader

Note: use a 1 Hz clock to trigger the state machine, and use LEDs on the board to display the current state of the FSM.

3. Verilog Coding

Write a Verilog module for the Kaypad Reader as an FSM following the state diagram shown in Figure 2. The FSM should have an asynchronous reset. Connect the SSD Driver developed in Lab 3 to display the interpreted hexadecimal value.

4. Simulation, Synthesis, and FPGA Implementation

Simulate the top-level integrated circuit using HDL Bencher. Synthesize and implement your design on the Basys 3 FPGA board.

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] VE270 Assignment 6-Keypad Reader[Solved] VE270 Assignment 6-Keypad Reader
$25