Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
learn:programmable-logic:tutorials:nexys-video-dpti-demo:start [2017/02/07 10:44] Sergiu Arpadilearn:programmable-logic:tutorials:nexys-video-dpti-demo:start [2021/06/09 00:31] (current) Arthur Brown
Line 5: Line 5:
 ----- -----
 ===== Overview ===== ===== Overview =====
 +The DPTI demo consists of a Vivado hardware project, an SDK project for the MicroBlaze processor, and a Windows application written in Visual Studio. Using these, the user can communicate with the Nexys Video's on-board DDR memory. Using a small Windows application, a file can be selected and sent to the Nexys Video via the USB PROG port at a specified memory address. After the transfer has been completed, it can then be read back and saved on the PC's hard drive at a specified location.
 +
 ==== Features Used ==== ==== Features Used ====
  
Line 26: Line 28:
 ^ USB HID Host                        X      |       | ^ USB HID Host                        X      |       |
 ^ USB PROG/DPTI                    |               | ^ USB PROG/DPTI                    |               |
 + 
  
- +----
-===== Description ===== +
-The DPTI demo consists of a Vivado hardware project, an SDK project for the Microblaze processor and a Windows application written in Visual Studio. Using them the user can communicate with the Nexys Video's on-board DDR memory. Using a small Windows application, a file can be selected and sent to the Nexys Video via the USB PROG port at a specified memory address. After the transfer has been completed, it can then be read back and saved on the PC's hard drive at a specified location. +
-  +
  
 ===== Prerequisites ===== ===== Prerequisites =====
Line 37: Line 37:
   * **Basic familiarity with Vivado**   * **Basic familiarity with Vivado**
     *  //This experience can be found by walking through our "Getting Started with Vivado" guide//     *  //This experience can be found by walking through our "Getting Started with Vivado" guide//
-  * **Basic familiarity with SDK** +  * **Basic familiarity with Xilinx SDK** 
-  * **Basic familiarity with Visual Studio 2008** +   
  
 ===Hardware=== ===Hardware===
   * **Nexys Video FPGA board**   * **Nexys Video FPGA board**
   * **Micro-USB cable**   * **Micro-USB cable**
-  * **Nexys Video Power Supply** 
-  
    
 ===Software=== ===Software===
-  * **Vivado Design Suite 2015.X** +  * **Vivado Design Suite 2015.4** 
     * //Newer/older versions can be used, but the procedure may vary slightly//     * //Newer/older versions can be used, but the procedure may vary slightly//
-  * **Visual Studio 2008 Express Edition**  +  * **Xilinx SDK** 
-    * //Availavle for download//+  * **Digilent Adept 2 System** 
 +    * //Available for download [[/reference/software/adept/start|here]]//
  
-==== 1. Setup ==== 
  
-Connect the Nexys Video to the PC using the USB PROG port. Plug in your Nexys Video and power it on. +-----
- +
-==== 2. Download the Project ====+
  
 +===== Downloads =====
 Nexys Video Support Repository -- [[https://github.com/Digilent/NexysVideo/archive/master.zip|ZIP]] [[https://github.com/Digilent/NexysVideo|GIT Repo]] Nexys Video Support Repository -- [[https://github.com/Digilent/NexysVideo/archive/master.zip|ZIP]] [[https://github.com/Digilent/NexysVideo|GIT Repo]]
  
-==== 3. Load the Vivado Project ==== +------- 
- +===== Tutorial =====
-In your now unzipped project, open the file NexysVideoDMAAudio.xpr. This should open your project in Vivado.  +
- +
-*The screenshots below are from another project but should look relatively the same and will work for our purposes. +
- +
- +
-{{:basys3:gpio_load.png?600|}}+
  
-==== 4. Synthesize, Implement and Generate Bitstream ==== 
  
-To complete this step all that you need to do is 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. 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|}}+==== 1Generate the Project ====
  
-==== 5Connect and Program the Nexys Video ====+>1.1) Download the repository linked in the download section and place it in the location of your choosing.  
 +
 +>1.2) Generate the **DPTI** project within the "Projects" folder by following this guide before continuing: [[vivado:github|How to Generate a Project from Digilent's Github]]
  
-Once you have generated your bit file, Click on the hardware manager and connect to your board by choosing the local server option (Or press auto connect). 
  
-{{:nexys4-ddr:deviceconnected.jpg?600|}}+----
  
-After your board is connected, click program device to load the DMA Audio Demo onto your Nexys Video.+==== 2Build the Project ====
  
-==== 4Export to SDK ====+>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**. 
 +
 +>{{:learn:programmable-logic:tutorials:nexys-video-oled-demo:oled_generate.jpg?nolink&800|}}
  
-Export the microblaze project by going to **File>Export>Export Hardware**. Click the check box to Include the bitstream, and export it local to project. This will create a .sdk folder in your project directory. Afterwards, click **File>Launch SDK** to launch Xilinx SDK.+----
  
 +==== 3. Export to SDK ====
  
-==== 5Import the SDK files ====+>Export the MicroBlaze project by going to **File>Export>Export Hardware**Click the check box to Include the bitstream, and export it to the **hw_handoff** folder.  
  
-In your project Explorer window on the left side, click **File>Import** then expand the General tab and click **Existing Projects into Workspace**. Navigate to the download folder, select the **sdk** folder, and click OK. In the //Import// window, click Finish to import the SDK project.+----
  
-==== 6Program the FPGA ====+==== 4Import the SDK files ====
  
-Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a microblaze bit file.+>In your project Explorer window on the left side, click **File>Import** then expand the General tab and click **Existing Projects into Workspace**. Navigate to the download folder, select the **sdk** folder, and click OK. In the //Import// window, click Finish to import the SDK project. Once the project has been imported, right-click on **design_1_wrapper_hw_platform_0**, select **Change Harware Platform Specification**, go to the **hw_handoff**, and then select the file found inside. Also, make sure to regenerate the BSP sources.
  
-==== 7. Run the program ====+----
  
-Right click on the **demo** folder and click  **Run as>Launch on Hardware(GDB)**. The microblaze program will be programmed onto your Nexys Video.+==== 5. Program the FPGA ====
  
-===== Running the Nexys Video DMA Audio Demo =====+>Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a MicroBlaze bit file.
  
-This portion will help you run the demo and observe all its features.+----
  
-==== 1Recording from an input ====+==== 6Run the SDK program ====
  
-To record from the microphone input, press btnu. To record from the line input, press btnr. Once the recording is activated, the message "Start Recording..." will be sent over UART and the demo will record 5 seconds of audio. If any buttons are pressed during the recording, the message "Still Recording...will be sent over UART.+>Right-click on the **dpti_demo** folder and click  **Run as>Launch on Hardware(GDB)**The MicroBlaze program will be programmed onto your Nexys Video.
  
-==== 2. Playing to an output ====+----
  
-To play to the microphone inputpress btndTo play to the line output, press btnlOnce the playback is activated the message "Start Playback..." will be sent over UART and the demo will play 5 seconds of audioIf any buttons are pressed during the playback, the message "Still Playing..." will be sent over UART.+==== 7. Running the Nexys Video DPTI Demo ==== 
 +>   
 +>7.1) Double-click on the **DPTI_Transfer.exe** file found in the **DPTI_Transfer>Release** folder. Check if the top left indicator is green and the text is **DPTI * ON**. If it is red, then the board is either not turned on or it is not connected properly.  
 +
 +>7.2) Select **Write to memory** and enter a value for the addresswhich must be between 0x90000000 and 0xA0000000 since half of the 512MB DDR memory is reserved for the MicroBlaze processor (starting at 0x80000000) and the rest is available for this demoThis can be changed in the linker script. 
 +
 +>{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_transfer_write_start.jpg}} 
 +
 +>Click on the **Select file** button and choose a file that you wish to transfer to the board. Video files, for example, are generally large and verifying their integrity after reading back is easy. Make sure to not exceed 256 MB.     
 +
 +>After selecting the file, press the **Write data** button to send the fileYou can follow the progress using a UART terminal (9600 BAUD).  
 +
 +>{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_sdk_uart.jpg}} 
 +
 +>When the transfer is finished, the top left box should be green with **Upload complete** written insideAlso, details regarding the transfer should appear on the right side of the window. 
 +
 +>{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_transfer_write_done.jpg}} 
 +
 +>7.3) Now select the **Read from memory** option and use the same address as before. In this case, the user must also enter the amount of data that they want to transferYou can copy the value from the **Number of bytes** field corresponding to the address used. After thatclick on the **Save file as** button and provide a location and a file nameMake sure to enter the same termination that the file had when it was uploadedClick on the **Read data** button to start the transferYou can now check the file's integrity. 
 +
 +>{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_transfer_read_done.jpg}} 
 +
 +>Multiple transfers can be performed in any direction and in any order; however, it is the user's responsibility to not write over existing data since neither the Windows application nor the SDK project keep track of the files which have already been written
  
-{{tag>learn programmable-logic tutorial nexys-video}}+{{tag>learn programmable-logic nexys-video}}