Differences

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

Link to this comparison view

Next revision
Previous revision
learn:programmable-logic:tutorials:nexys-4-ddr-gpio-demo:start [2016/07/08 21:25] – created Sam Klearn:programmable-logic:tutorials:nexys-4-ddr-gpio-demo:start [2024/04/16 17:21] (current) – [Overview] James Colvin
Line 1: Line 1:
-====== Nexys4-DDR GPIO Demo ======+====== Nexys 4 DDR GPIO Demo ======
  
 {{:nexys:nexys4:gpio8.jpg?500|}} {{:nexys:nexys4:gpio8.jpg?500|}}
  
 +===== Overview =====
 +<WRAP center round tip 80%>
 +The Nexys 4 DDR was rebranded as the Nexys A7 starting with Revision D starting in 2018. Updated releases of this particular demo project, usable by all versions of both the Nexys 4 DDR and the Nexys A7 can be found in the [[/programmable-logic/nexys-a7/start#example_projects|Nexys A7 Resource center]].
 +</WRAP>
 +
 +==== Description ====
 +
 +The Basic User Demo project demonstrates a simple use of the Nexys4-DDR'
 +GPIOs and UART port. The behavior is as follows:
 + 
 +  * The 16 User LEDs are tied to the 16 User Switches.
 +  * The 7-Segment display counts from 0 to 9 on each of its 8 digits. Also, single anodes of the 7-Segment display are blanked by holding BTNU, BTNL, BTND, or BTNR. Holding the center button blanks all the 7-Segment anodes.
 +  * An introduction message is sent across the UART when the device is finished being configured.
 +  * A message is sent over UART whenever BTNU, BTNL, BTND, or BTNR is pressed.
 +  * The Tri-Color LEDs cycle through several colors in a ~4 second loop.
 +  * Data from the microphone is collected and transmitted over the mono audio out port.
 +  * The demo is reset whenever BTNC is pressed.
  
-===== Overview ===== 
 ==== Features Used ==== ==== Features Used ====
  
Line 27: Line 43:
 ^ Temperature sensor                  X  |     | ^ Temperature sensor                  X  |     |
 ^ 10/100 Ethernet PHY                |  X  |     | ^ 10/100 Ethernet PHY                |  X  |     |
- 
-==== Description ==== 
- 
-The Basic User Demo project demonstrates a simple usage of the Nexys4-DDR' 
-GPIO and UART. The behavior is as follows: 
-  
-  * The 16 User LEDs are tied to the 16 User Switches. While the centerUser button is pressed, the LEDs are instead tied to GND 
-  * The 7-Segment display counts from 0 to 9 on each of its 8 digits. This count is reset when the center button is pressed. Also, single anodes of the 7-Segment display are blanked by holding BTNU, BTNL, BTND, or BTNR. Holding the center button blanks all the 7-Segment anodes. 
-  * An introduction message is sent across the UART when the device is finished being configured, and after the center User button is pressed. 
-  * A message is sent over UART whenever BTNU, BTNL, BTND, or BTNR is pressed. 
-  * The Tri-Color LEDs cycle through several colors in a ~4 second loop 
-  * Data from the microphone is collected and transmitted over the mono audio out port. 
-  * Note that the center user button behaves as a user reset button  
-       
-All UART communication can be captured by attaching the UART port to a 
-computer running a Terminal program with 9600 Baud Rate, 8 data bits, no  
-parity, and 1 stop bit. 
  
 ------- -------
  
 ===== Prerequisites ===== ===== Prerequisites =====
- 
-===Skills=== 
-  * **Basic familiarity with Vivado** 
-    *  //This experience can be found by walking through our "Getting Started with Vivado" guide// 
  
 ===Hardware=== ===Hardware===
-  * **Basys3 FPGA board**+  * **Nexys 4 DDR FPGA board**
   * **Micro-USB cable**   * **Micro-USB cable**
-  * **Headphones or speaker** +  * **Set of headphones or speaker** 
  
 ===Software=== ===Software===
-  * **Vivado Design Suite 2015.X**  +  * **Vivado Design Suite 2016.4**  
-    * //Newer/older versions can be used, but the procedure may vary slightly// +    * //Newer versions can be used, but the procedure may vary slightly// 
 +  * **Nexys 4 DDR Support Files**  
 +    * These files will describe GPIO interfaces on your board and make it easier to select your FPGA board and add GPIO IP blocks.  
 +    * Follow the Wiki guide: [[vivado:boardfiles|Vivado Board Files for Digilent 7-Series FPGA Boards]] on how to install Board Support Files for 
 ----- -----
  
 ===== Downloads ===== ===== Downloads =====
-Nexys4-DDR Support Repository -- [[https://github.com/Digilent/Nexys4DDR/archive/master.zip|ZIP]] [[https://github.com/Digilent/Nexys4DDR|GIT Repo]]+Nexys 4 DDR GPIO Demo Project Repository -- [[https://github.com/Digilent/Nexys-4-DDR-GPIO/releases/download/v2016.4-1/Nexys-4-DDR-GPIO-2016.4-1.zip|ZIP]] [[https://github.com/Digilent/Nexys-4-DDR-GPIO|GIT Repo]]
  
 ------- -------
-===== How to... ===== 
  
 +=====Download and Launch the Nexys 4 DDR Basic User 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) In order to fully use the demo, you will need to connect serial terminal to your Nexys DDRPlug your board into your computer with Micro USB cables attached to the PROG+UART port and make sure the board is turned onThen open a serial terminal (such as TeraTerm) on your computer. In the terminal application, setup the serial port to connect to the appropriate port for your board, with a baud rate of 9600Then return to the Github Projects Tutorial to finish programming and running the demo.
- +
->1.1) Download the repository linked in the download section and unzip it in the location of your choosing.  +
- +
->1.2) Generate the **GPIO** project in the Projects folder by following this guide before continuing: [[vivado:github|How to Generate Project from Digilent's Github]] +
- +
-==== 2Build the Project ==== +
- +
->2.1Click **Generate Bitstream** on the left hand menu towards the bottomVivado will run through both Run Synthesis and Run Implementation before it generates the bitstream automatically+
 > >
->NoteIf you want, you can click each step by itself in the order of **Run Synthesis**, **Run Implementation** and then **Generate Bitstream**. +>{{:learn:programmable-logic:tutorials:cmod-a7-user-demo:tera-setup.png?300|}} {{:learn:programmable-logic:tutorials:cmod-a7-user-demo:setup.png?300|}}
-+
->{{:basys3:buildflow.png?600|}}+
  
-==== 3. Program the Board ====+=====Using the Nexys 4 DDR Basic User Demo=====
  
->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. +====1Switches and LEDs====
-+
->{{:nexys4-ddr:deviceconnected.jpg?600|}}+
  
->3.2) Click program to load the project onto your Nexys4-DDR. +>For this section, all the switches are tied to their corresponding LED. Every time a switch is toggled, the LED directly above it will toggle with it. If the center push button is pressed, all the LEDs will be tied to ground .
- +
-==== 4. Run the Project ==== +
- +
-This portion will help you run the demo and observe all its features. +
- +
->4.1) Using the Switches with Leds +
-+
->For this section, all the switches are tied to their corresponding led. Every time a switch is toggled, the led directly above it will toggle with it. If the center push button is pressed, all the Leds will be tied to ground +
 > >
 >{{:nexys:nexys4:20141118_142412.jpg?300|}} {{:nexys:nexys4:20141118_142440.jpg?300|}} >{{:nexys:nexys4:20141118_142412.jpg?300|}} {{:nexys:nexys4:20141118_142440.jpg?300|}}
  
->4.2Seven Segment Display +====2Seven Segment Display==== 
->+
 >The 7-Segment display counts from 0 to 9 on each of its 8 digits. This count is reset when the center button is pressed. Also, single anodes of the 7-Segment display are blanked by holding BTNU, BTNL, BTND, or BTNR. Holding the center button blanks all the 7-Segment anodes. >The 7-Segment display counts from 0 to 9 on each of its 8 digits. This count is reset when the center button is pressed. Also, single anodes of the 7-Segment display are blanked by holding BTNU, BTNL, BTND, or BTNR. Holding the center button blanks all the 7-Segment anodes.
 > >
 >{{:nexys:nexys4:gpio9.jpg?250|}}{{:nexys:nexys4:gpio8.jpg?250|}}{{:nexys:nexys4:gpio11.jpg?250|}}{{:nexys:nexys4:gpio13.jpg?250|}}{{:nexys:nexys4:gpio12.jpg?250|}} >{{:nexys:nexys4:gpio9.jpg?250|}}{{:nexys:nexys4:gpio8.jpg?250|}}{{:nexys:nexys4:gpio11.jpg?250|}}{{:nexys:nexys4:gpio13.jpg?250|}}{{:nexys:nexys4:gpio12.jpg?250|}}
  
->4.3) Tri-color Leds +====3. Tri-Color LEDs==== 
->   + 
->The two tri-color leds are set to gradually change colors at all times. The user cannot affect them in this demonstration.+>The two tri-color LEDs are set to gradually change colors at all times. The user cannot affect them in this demonstration. 
 + 
 +====4. Microphone to PWM Output====
  
->4.4) Microphone to PWM Output 
->   
 >The microphone which is next to Pmod connector JC, records audio data and sends it to the mono audio output located at J8. To listen to the mics output, you will need to plug in headphones or a speaker.  >The microphone which is next to Pmod connector JC, records audio data and sends it to the mono audio output located at J8. To listen to the mics output, you will need to plug in headphones or a speaker. 
 > >
 >{{:nexys:nexys4:gpio14.jpg?300|}} >{{:nexys:nexys4:gpio14.jpg?300|}}
  
-{{tag>learn programmable-logic tutorial nexys-4-ddr}}+{{tag>learn programmable-logic project nexys-4-ddr}}