Lab8ee205

Page 1

ECE 4200

Department of Electrical and Computer Engineering

Advanced Digital Design Lab

University of Colorado at Colorado Springs "Illuminate, Investigate, Innovate"

Spring Semester Dr. Greg Tumbush, greg@tumbush.com

Lab #8: Design Example: Keypad Scanner and Encoder - Part 4 (100 pts) Objective The objective of lab assignments 5 through 9 are to systematically design and implement an FPGA-based keypad scanner. The keypad scanner will utilize a FIFO for data storage and retrieval, a display mux, and the seven-segment displays, slide switches, and LEDs of the Digilent Spartan3 prototyping board. The top level block diagram of the system is shown in Figure 1 and the I/O in Table 1. When a button of the hex keypad is pressed the system must decode the button and store the data in an internal FIFO. The read button will be used to read data from the FIFO and display the data on the seven-segment displays. The mode_toggle input will be used to toggle between display states so that more than eight signals can be presented for view on the LED’s. The LEDs will display the status of the FIFO and other information. The hardware prototype will be verified to operate with the Grayhill 072 hex Keypad. A system partition is shown in Figure 2. As input mode_toggle is depressed output DGrp will toggle between DGrp1, DGrp2, and DGrp3 as denoted in Table 2.

Figure 1: Keypad scanner top level

Name clk reset

Direction input input

read

input

Width Purpose 1MHz clock Asynchronous active high reset Read from the fifo.

Page 1 of 3

Lab 8 Version 1.2


ECE 4200

Department of Electrical and Computer Engineering

Advanced Digital Design Lab

University of Colorado at Colorado Springs "Engineering for the Future"

Spring 2008

mode_toggle

input

Row Col seven_seg

input output output

[3:0] [3:0] [6:0]

seven_seg_0_en output seven_seg_1_en output

[6:0]

seven_seg_2_en output seven_seg_3_en output DGrp

output

[7:0]

Toggle between LED display states Keypad row Keypad column 7-segment character active low 7-segment character 0 enable – active low 7-segment character 1 enable – active low 7-segment character 2 enable – active low 7-segment character 3 enable – active low 8 LED’s

Table 1: Keypad scanner I/O

Figure 2: Partition of keypad scanner

Data Group DGrp1 DGrp2 DGrp3

System Debug Info {1’b0, read_ptr[2:0], 1’b0, write_ptr[2:0] {<your choice>, empty, full} {Row, Col}

Table 2: LED System Debug info

Page 2 of 3

Lab 8 Version 1.2


ECE 4200

Department of Electrical and Computer Engineering

Advanced Digital Design Lab

University of Colorado at Colorado Springs "Engineering for the Future"

Spring 2008

The objective of this lab is to integrate and test the designs from lab 5 through lab 7 to create a complete keypad scanner system. Be sure to use the I/O from Table 1 exactly and declare the top level design module to be keypad_scanner_top for ease of integration in the instructor’s test-bench. If possible in the simulator, simulate the debounce of the OR of Row, mode_toggle, and read. This lab will be completed individually.

Testbench Using the Row_Signal module used in the test-bench for lab 5 create a self-checking test-bench for the system, keypad_scanner_top. Be sure to simulate bounces on the read, Row, and mode_toggle buttons. Deliverables 1. Source code of the top level system, keypad_scanner_top 2. Test plan 3. Source code of final test-bench for module keypad_scanner_top 4. Demonstration of the operation of the test-bench to the lab instructor. Grading 1. Demonstration of test-bench and correct operation of keypad_scanner_top – 50 pts 2. Final report including test plan – 50pts

Page 3 of 3

Lab 8 Version 1.2


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.