Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
learn:programmable-logic:tutorials:nexys-4-ddr-keyboard-demo:start [2017/04/28 20:24] – [1. Generate the Project] Andrew Holzerlearn:programmable-logic:tutorials:nexys-4-ddr-keyboard-demo:start [2017/06/29 20:44] – Updated for github tutorial rework Arthur Brown
Line 4: Line 4:
  
 ===== Overview ===== ===== Overview =====
 +
 +==== Description ====
 +
 +The Keyboard Demo project demonstrates a simple usage of the Nexys 4 DDR'
 +USB-HID port and 7 segment display. The behavior is as follows:
 + 
 + * The user presses a key on the keyboard, which 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.
 +
 ==== Features Used ==== ==== Features Used ====
  
 | ^ Not Used ^ Used ^ | ^ Not Used ^ Used ^
-^ 16 user switches                    X  |    +^ 16 user switches                    X  |     
-^ 16 user LEDs                        X  |    +^ 16 user LEDs                        X  |     
-^ Two tri-color LEDs                  X  |    +^ Two tri-color LEDs                  X  |     
-^ 5 User Push Buttons                |  X  |    |+^ 5 User Push Buttons                |  X  |     |
 ^ Two 4-digit 7-segment displays          X  | ^ Two 4-digit 7-segment displays          X  |
 ^ 4 Pmod ports                        X  |     | ^ 4 Pmod ports                        X  |     |
 ^ Pmod for XADC signals              |  X  |     | ^ Pmod for XADC signals              |  X  |     |
 ^ 16-bit VGA output                  |  X  |     | ^ 16-bit VGA output                  |  X  |     |
-^ USB-UART Bridge                    |  X  |    |+^ USB-UART Bridge                    |  X  |     |
 ^ Serial Flash for Application Data  |  X  |     | ^ Serial Flash for Application Data  |  X  |     |
 ^ USB HID Host With Mouse            |  X  |     | ^ USB HID Host With Mouse            |  X  |     |
 ^ USB HID Host With Keyboard              X  | ^ USB HID Host With Keyboard              X  |
 ^ Micro SD card connector            |  X  |     | ^ Micro SD card connector            |  X  |     |
-^ PWM audio output                    X  |    +^ PWM audio output                    X  |     
-^ PDM microphone                      X  |    |+^ PDM microphone                      X  |     |
 ^ 3-axis accelerometer                X  |     | ^ 3-axis accelerometer                X  |     |
-^ 128MiB DDR2                        |  X  |    |+^ 128MiB DDR2                        |  X  |     |
 ^ Temperature sensor                  X  |     | ^ Temperature sensor                  X  |     |
 ^ 10/100 Ethernet PHY                |  X  |     | ^ 10/100 Ethernet PHY                |  X  |     |
- 
-==== Description ==== 
- 
-The Keyboard Demo project demonstrates a simple usage of the Nexys 4 DDR' 
-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. 
              
 ------- -------
Line 52: Line 53:
  
 ===== Downloads ===== ===== Downloads =====
-Nexys 4 DDR Support Repository -- [[https://github.com/Digilent/Nexys-4-DDR-Keyboard/archive/master.zip|ZIP]] [[https://github.com/Digilent/Nexys-4-DDR-Keyboard|GIT Repo]]+Nexys 4 DDR Keyboard Project Repository -- [[https://github.com/Digilent/Nexys-4-DDR-Keyboard/releases/download/v2016.4-1/Nexys-4-DDR-Keyboard-2016.4-1.zip|ZIP Archive]] [[https://github.com/Digilent/Nexys-4-DDR-Keyboard|GIT Repo]]
  
 ------- -------
-===== How to... ===== 
  
 +===== Download and Launch the Nexys 4 DDR Keyboard Demo =====
  
 +>1) Follow the [[:learn:programmable-logic:tutorials:github-demos:start|Using Digilent Github Demo Projects]] Tutorial. This is an HDL design project, and as such does not support Vivado SDK, select the tutorial options appropriate for a Vivado-only design. Return to this guide when prompted to check for extra hardware requirements and setup.
  
-==== 1. Generate the Project ====+>2) Plug your USB Keyboard into the USB HOST port on your Nexys 4 DDR, then return to the Github Projects Tutorial to finish programming and running the demo.
  
->1.1) Download the repository linked in the download section and place it in the location of your choosing. +===== Using the Nexys 4 DDR Keyboard Demo =====
  
->1.2) Generate the **Keyboard** project by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]] 
  
-==== 2Build the Project ====+==== 1Initial State ====
  
->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**. 
-> 
->{{:basys3:buildflow.png?600|}} 
- 
-==== 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. 
-> 
->{{:nexys4-ddr:deviceconnected.jpg?600|}} 
- 
->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 >Initially, the 7 segment display will show all 0's
 > >
 >{{:nexys4-ddr:img_20150310_192348.jpg?nolink&300|}} >{{:nexys4-ddr:img_20150310_192348.jpg?nolink&300|}}
  
->4.2Key Press +==== 2Key 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. >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.
 > >
 >{{:nexys4-ddr:img_20150310_192449.jpg?nolink&500|}} >{{:nexys4-ddr:img_20150310_192449.jpg?nolink&500|}}
  
->4.3Key Release +==== 3Key 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. >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.
 > >
 >{{:nexys4-ddr:img_20150310_192501.jpg?nolink&500|}} >{{:nexys4-ddr:img_20150310_192501.jpg?nolink&500|}}
  
->4.4) Multi key press +==== 4. Multiple Key Presses ==== 
->  +
 >When multiple keys are pressed their scan codes are shifted in order. In this case, Q ("15") was pressed, followed by W ("1D"). >When multiple keys are pressed their scan codes are shifted in order. In this case, Q ("15") was pressed, followed by W ("1D").
 > >