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/09 11:11] – created 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 47: Line 47:
   * **Vivado Design Suite 2015.4**    * **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//
-  * **Xilinx SDK** * +  * **Xilinx SDK** 
-  * **Digilent Adept2 System** +  * **Digilent Adept 2 System** 
-    * //Availavle for download on our wiki//  +    * //Available for download [[/reference/software/adept/start|here]]// 
  
 ----- -----
Line 57: Line 58:
  
 ------- -------
-===== How to... =====+===== Tutorial =====
  
  
Line 67: Line 68:
 >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]] >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]]
  
 +
 +----
  
 ==== 2. Build the Project ==== ==== 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. +>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**.+>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|}} >{{:learn:programmable-logic:tutorials:nexys-video-oled-demo:oled_generate.jpg?nolink&800|}}
 +
 +----
  
 ==== 3. Export to SDK ==== ==== 3. Export to SDK ====
  
->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.  +>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.   
 + 
 +----
  
 ==== 4. Import the SDK files ==== ==== 4. Import the SDK files ====
  
->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** and select **Change Harware Platform Specification** and go to the **hw_handoff** and select the file found inside. Also, make sure to regenerate the BSP sources.+>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. 
 + 
 +----
  
 ==== 5. Program the FPGA ==== ==== 5. Program the FPGA ====
  
->Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a microblaze bit file.+>Click **Xilinx Tools>Program FPGA** and click **Program**. Xilinx SDK will then program the FPGA with a MicroBlaze bit file. 
 + 
 +----
  
 ==== 6. Run the SDK program ==== ==== 6. Run the SDK program ====
  
->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.+>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. 
 + 
 +----
  
 ==== 7. Running the Nexys Video DPTI Demo ==== ==== 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.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 redthen 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 address which 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 demo. This can be changed in the linker script.+>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 demo. This can be changed in the linker script.
 > >
 >{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_transfer_write_start.jpg}} >{{: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.    +>Click on the **Select file** button and choose a file that you wish to transfer to the board. Video filesfor exampleare 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 file. You can follow the progress using a UART terminal (9600 BAUD).  >After selecting the file, press the **Write data** button to send the file. You can follow the progress using a UART terminal (9600 BAUD). 
Line 110: Line 123:
 >{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_transfer_write_done.jpg}} >{{: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 he wants to transfer. You can copy the value from the **Number of bytes** field corresponding to the address used. After that, click on the **Save file as** button and provide a location and a file name. Make sure to enter the same termination that the file had when it was uploaded. Click on the **Read data** button to start the transfer. You can now check the file's integrity.+>7.3) Now select the **Read from memory** option and use the same address as before. In this casethe user must also enter the amount of data that they want to transfer. You can copy the value from the **Number of bytes** field corresponding to the address used. After that, click on the **Save file as** button and provide a location and a file name. Make sure to enter the same termination that the file had when it was uploaded. Click on the **Read data** button to start the transfer. You can now check the file's integrity.
 > >
 >{{:learn:programmable-logic:tutorials:nexys-video-dpti-demo:dpti_transfer_read_done.jpg}} >{{: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. +>Multiple transfers can be performed in any direction and in any orderhoweverit 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 nexys-video}}