This is an old revision of the document!


Nexys 4 DDR Keyboard Demo

Overview

Features Used

Not Used Used
16 user switches X
16 user LEDs X
Two tri-color LEDs X
5 User Push Buttons X
Two 4-digit 7-segment displays X
4 Pmod ports X
Pmod for XADC signals X
16-bit VGA output X
USB-UART Bridge X
Serial Flash for Application Data X
USB HID Host With Mouse X
USB HID Host With Keyboard X
Micro SD card connector X
PWM audio output X
PDM microphone X
3-axis accelerometer X
128MiB DDR2 X
Temperature sensor X
10/100 Ethernet PHY X

Description

The Keyboard Demo project demonstrates a simple usage of the Nexys 4 DDR's USB-HID port and 7 segment display. The behavior is as follows:

* The user presses a key on the keyboard, this sends a keyboard scan code to the Nexys 4 DDR. This scan code is read and output onto the 7 segment display. When a new scan code is read, it is shifted onto the 7 segment display from the right. A scan code of F0xx indicates that key xx has been released.

——-

Prerequisites

Hardware

  • Nexys 4 DDR FPGA board
  • Micro-USB cable
  • USB Keyboard

Software

  • Vivado Design Suite 2016.4
    • Newer versions can be used, but the procedure may vary slightly
  • Nexys 4 DDR Support Files

—–

Downloads

Nexys 4 DDR Support Repository – ZIP GIT Repo


How to...

1. Generate the Project

1.1) Download the repository linked in the download section and place it in the location of your choosing.
1.2) Generate the Keyboard project by following this guide before continuing: How to Generate a Project from Digilent's Github

2. Build the Project

2.1) Click Generate Bitstream on the left hand menu towards the bottom. Vivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically.

Note: If you want, you can click each step by itself in the order of Run Synthesis, Run Implementation and then Generate Bitstream.

3. Program the Board

3.1) Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option.

3.2) Click program to load the project onto your Nexys4-DDR.

4. Run the Project

This portion will help you run the demo and observe all its features.

4.1) Initial state

Initially, the 7 segment display will show all 0's

4.2) Key Press

When a button is pressed, the value of the scan code will shift onto the 7 segment display. In the picture, 'a' is pressed, so a scan code of “1C” is displayed.

4.3) Key Release

When the 'a' key is released, a scan code of “F01C” is shifted onto the 7 segment display. The initial scan code of “1C” is shifted to the left display.

4.4) Multi key press

When multiple keys are pressed their scan codes are shifted in order. In this case, Q (“15”) was pressed, followed by W (“1D”).