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-4-getting-started-with-microblaze:start [2016/11/15 01:04] – [4. Customization of Clock Wizard IP Block] jon peyronlearn:programmable-logic:tutorials:nexys-4-getting-started-with-microblaze:start [2022/10/04 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
 ====== Nexys 4 - Getting Started with Microblaze ====== ====== Nexys 4 - Getting Started with Microblaze ======
 +
 +<WRAP round important 660px>
 +=== Important! ===
 +This guide is obsolete, the updated guide can be found [[:vivado:getting-started-with-ipi:start|here]].
 +</WRAP>
 +
 {{ :nexys:nexys4:overview1.png?300 |}} {{ :nexys:nexys4:overview1.png?300 |}}
  
Line 150: Line 156:
 >{{:vivado:mig_18.jpg?500|}} >{{:vivado:mig_18.jpg?500|}}
  
->5.3) This will add a UART block to the existing design. We need a UART controller to communicate between the terminal window on the Host-PC and the Nexys 4 DDR hardware.+>5.3) This will add a UART block to the existing design. We need a UART controller to communicate between the terminal window on the Host-PC and the Nexys 4 hardware.
 > >
 >{{:nexys4-ddr:nexys4ddr-adduart.png?direct&500|}} >{{:nexys4-ddr:nexys4ddr-adduart.png?direct&500|}}
Line 173: Line 179:
 ----- -----
  
->10.2) Select the button circled in blue. This is the {{:genesys2:regenerate.jpg?nolink|}} **Regenerate Layout** option that will re-arrange the IP blocks in the design. +>6.4) Select the button circled in blue. This is the {{:genesys2:regenerate.jpg?nolink|}} **Regenerate Layout** option that will re-arrange the IP blocks in the design.
->+
 > >
 +>{{:learn:programmable-logic:tutorials:nexys-4-getting-started-with-microblaze:image18.jpg?500|}}
  
 ----- -----
-==== 12. Validate Design ====+==== 7. Validate Design ====
  
->12.1) Select {{:genesys2:validate.jpg?nolink|}} **Validate Design**. This will check for design and connection errors. +>7.1) Select {{:genesys2:validate.jpg?nolink|}} **Validate Design**. This will check for design and connection errors. 
 > >
 +>{{:learn:programmable-logic:tutorials:nexys-4-getting-started-with-microblaze:image19.jpg?500|}}
 > >
->12.2) After the design validation step we will proceed with creating a HDL System Wrapper. +>7.2) After the design validation step we will proceed with creating a HDL System Wrapper. 
 > >
 > >
  
 ----- -----
-==== 13. Creating HDL System Wrapper ====+==== 8. Creating HDL System Wrapper ====
  
->13.1) As highlighted in this step, right click on //design_1// and select **Create HDL Wrapper**. Let Vivado manage the wrapper and select **OK**.+>8.1) As highlighted in this step, right click on //design_1// and select **Create HDL Wrapper**. Let Vivado manage the wrapper and select **OK**.
 > >
 >{{:learn:programmable-logic:tutorials:nexys-4-getting-started-with-microblaze:image6.jpg?500|}} >{{:learn:programmable-logic:tutorials:nexys-4-getting-started-with-microblaze:image6.jpg?500|}}
  
->13.2) A system wrapper file will be generated and a message will be displayed in the tcl console informing us that the //wrapper.v// file has been generated.+>8.2) A system wrapper file will be generated and a message will be displayed in the tcl console informing us that the //wrapper.v// file has been generated. 
 +>
 > >
->{{:nexys4-ddr:nexys4ddr-wrapper2.png?direct&500|}} 
  
 ----- -----
 +==== 9. Generating Bit File ====
 +
 +>9.1) In the //Flow Navigator// panel on the left, under //Program and Debug// select the //Generate Bitstream// option. If you haven't already saved your design, you will get a prompt to save the block design. 
 +>
 +>
 +>9.2) The bit file generation will begin. The tool will run //Synthesis// and //Implementation//. After both synthesis and implementation have been successfully completed, the actual bit file will be created. You will find a status bar of Synthesis and Implementation running on the top right corner of the project window. 
 +>
 +>
 +>9.3) After the bitstream has been generated, a message prompt may pop-up on the screen. You don't have to open the Implemented Design for this demo. Just click on **Cancel**. 
 +>
 +>{{:vivado:mig_42.jpg?500|}}
 +
 +-----
 +==== 10. Exporting Hardware Design to SDK ====
 +
 +>10.1) On the top left corner of the window, from the tool bar click on //File// and select //Export Hardware//.
 +>This will export the hardware design with system wrapper for the Software Development Tool - Vivado SDK. **Make sure the generated bitstream is included by checking the box**.
 +>
 +>{{:vivado:mig_43.jpg?500|}}
 +
 +>10.2) A new file directory will be created under **Hello_World.SDK** similar to the Vivado hardware design project name. Two other files, //.sysdef// and //.hdf// are also created. This step essentially creates a new SDK Workspace. 
 +>If you browse to the location on the drive where the Vivado project has been created, you will see that new folders have been created under SDK. See TCL Console message in the screen capture below. Now that the design has been exported to Software Development Kit (SDK) tool, the next step will be to launch the SDK tool.
 +>
 +>{{:vivado:mig_44.jpg?500|}}
 +
 +-----
 +==== 11. Launching SDK ====
 +
 +>11.1) Go to //File// and select //Launch SDK// and click OK. The SDK file created local to the Vivado design project location will be launched. The hand-off to SDK from Vivado is complete. 
 +>
 +>{{:vivado:mig_45.jpg?500|}}
 +
 +-----
 +
 +==== 12. Creating New Application Project in SDK ====
 +
 +>12.1) Go to //File// in the main tool bar and select **New Application Project**. A new project window will pop up. Give your SDK project a name that has no empty spaces as shown below. Make sure the //Target Hardware// is the correct hardware design. In our case, it will be **design_1_wrapper_hw_platform_0**. 
 +>If for example, you also have another hardware design in the //Project Explorer// window, then you will also see this design name in the Target Hardware drop down selection list. 
 +>Since we only have one hardware design  **design_1_wrapper_hw_platform_0** this will be our target hardware.  Select **Create New** under **Board Support Package**. The tool will automatically populate the **Board Support Package** name to match with the give project name. 
 +>Click Next.
 +>
 +>{{:vivado:mig_48.jpg?500|}}
 +
 +-----
 +==== 13. Selecting Hello World Application from available templates ====
 +
 +>13.1) Select **Hello World** under //Available Templates// on the left panel and click Finish. 
 +>
 +>{{:vivado:mig_49.jpg?500|}}
 +
 +
 +>13.2) After completing the previous step, you will see two new folders in the //Project Explorer// panel:
 +>
 +>- **display_hello_world** which contains all the binaries, .C and .H (Header) files
 +>- **display_hello_world_bsp** which is the board support folder 
 +>
 +>**display_hello_world** is our main working source folder. This also contains an important file shown here which is the **lscript.ld**. This is a Xilinx auto generated linker script file. Double click on this file to open.
 +>
 +>{{:vivado:mig_50.jpg?500|}}
 +
 +-----
 +==== 14. Programming FPGA with Bit File ====
 +
 +>14.1) Make sure that the Nexys 4 DDR is turned on and connected to the host PC with the provided micro USB cable. 
 +>In the quick selection tool bar, you will find a symbol with a red arrow and three green square boxes. This clickable button is physically located under the //Search// tab in the main tool bar.  
 +>Click on this symbol to open the Program FPGA window. 
 +>Make sure that the //Hardware Platform// is selected as **design_1_wrapper_hw_platform_0**. 
 +>In the software configuration box, under //ELF File to Initialize in Block RAM// column, the row option must read **bootloop**. If not, click on the row and select **bootloop**.
 +>Now click on Program. 
 +>
 +>{{:vivado:mig_53.jpg?500|}}
 +
 +-----
 +==== 15. Run Configuration  ====
 +
 +>15.1) After the FPGA has been successfully programmed with the bit file, from the //Project Explorer// panel, right click on the **display_hello_world** project folder which has been highlighted in the screen capture below. 
 +>At the bottom of the drop down list, select **Run As** and then select **launch on hardware**. 
 +
 +>{{:learn:programmable-logic:tutorials:nexys-4-getting-started-with-microblaze:image15.jpg?500|}}
 +}}
 +-----
 +==== 16. Using Terminal Emulator ====
 +
 +You can use any serial terminal you would like including the one on SDK. We use Tera Term.
 +Refer to this link [[http://en.wikipedia.org/wiki/Tera_Term]] to know what Tera Term is.
 +You can download and install Tera Term from this link [[http://ttssh2.sourceforge.jp/index.html.en]] 
 +
 +
 +>16.1) Establish a serial connection with the correct communication port inside Tera Term. 
 +>Go to //SDK Run Configurations// -> Apply and Run. 
 +>Tera Term will work as a Console by displaying the output. 
 +>Notice that inside the built-in console window of SDK, there is a message displayed that reads // Port COM4 is already in use// indicating that the //COM4// port is in use by Tera Term. 
 +>
 +>{{:vivado:mig_61.jpg?500|}}
 +
 +-----
 +
 +/*{{tag>learn programmable-logic tutorial nexys-4 microblaze}}*/