Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| learn:programmable-logic:tutorials:basys-3-getting-started-with-microblaze:start [2016/07/14 19:54] – jon peyron | learn:programmable-logic:tutorials:basys-3-getting-started-with-microblaze:start [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Basys 3 - Getting started in Microblaze | + | ====== Basys 3 Getting started in Microblaze |
| + | |||
| + | <WRAP round important 660px> | ||
| + | === Important! === | ||
| + | This guide is obsolete, the updated guide can be found [[: | ||
| + | </ | ||
| > | > | ||
| Line 117: | Line 122: | ||
| > | > | ||
| - | >3.3) Double click the **Clocking Wizard** block to customize it. Click on the **Output Clocks** tab and confirm | + | >3.3) Double click the **Clocking Wizard** block to customize it. Click on the **Output Clocks** tab. Make sure **clk_out1** |
| > | > | ||
| > | > | ||
| Line 134: | Line 139: | ||
| {{: | {{: | ||
| - | >4.3) Change default settings in the block options as shown below and click **OK**. This will customize the block with our new user settings. | + | >4.3) Change default settings in the block options as shown below and click **OK**. This will customize the block with our new user settings. |
| + | > | ||
| + | >Local Memory: 128KB | ||
| + | >Local Memory ECC: None | ||
| + | >Cache Configuration: | ||
| + | >Debug Module: Debug only | ||
| + | > | ||
| + | > | ||
| + | >Clock Connection: / | ||
| + | > | ||
| + | > | ||
| > | > | ||
| - | > | ||
| - | |||
| >4.4) Running the block automation will auto-generate a set of additional IP blocks which will be added to our hardware design automatically based on the options selected in the previous step. **Do not click on Run Connection Automation yet.** | >4.4) Running the block automation will auto-generate a set of additional IP blocks which will be added to our hardware design automatically based on the options selected in the previous step. **Do not click on Run Connection Automation yet.** | ||
| > | > | ||
| + | {{: | ||
| + | ----- | ||
| + | |||
| + | ==== 5. Adding Peripheral Components ==== | ||
| + | |||
| + | >5.1) Go into the **Boards** tab again and find the **USB UART** component. **Click and drag** this onto the block design to add the Uartlite block to your design. | ||
| + | > | ||
| + | >: | ||
| + | |||
| + | >5.2) Click **Run Connection Automation** in the green banner. Check the **All Automation** box and then click **OK**. | ||
| + | > | ||
| + | > | ||
| + | |||
| + | >5.3) Click **Run Connection Automation** again in the green banner. Check the **All Automation** box and then click **OK**. | ||
| + | > | ||
| + | > | ||
| + | |||
| + | >5.4) Select {{: | ||
| + | > | ||
| + | > | ||
| + | >5.5) Click the {{: | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >5.6) Select {{: | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ==== 6. Making an HDL Wrapper ==== | ||
| + | |||
| + | >6.1) After the design validation step we will proceed with creating a HDL System Wrapper. Click on the **Sources** tab and find your block design. | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >6.2) Right click on your block design and click **Create HDL Wrapper**. Make sure **Let Vivado manage wrapper and auto-update** is selected and click **OK**. | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >This will create a top module in Verilog and will allow you to generate a bitstream. | ||
| + | |||
| + | ----- | ||
| + | ==== 7. Generate a bitstream ==== | ||
| + | |||
| + | >7.1) Click Generate bitstream | ||
| + | > | ||
| + | > | ||
| + | |||
| + | |||
| + | ----- | ||
| + | ====8. Exporting Hardware Design to SDK ==== | ||
| + | |||
| + | >8.1) On the main toolbar, click **File** and select **Export-> | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >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. | ||
| + | |||
| + | >8.2) On the main toolbar, click **File** and then **Launch SDK**. Leave both of the dropdown menus as their default //Local to Project// and click **OK**. This will open Xilinx SDK and import your hardware. | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ====9. Creating New Application Project in SDK ==== | ||
| + | |||
| + | >9.1) Click the {{: | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >Give your project a name that has no empty spaces and click **Next**. | ||
| + | |||
| + | >9.2) Select **Hello World** from the list of templates and click **Finish**. | ||
| + | > | ||
| + | > | ||
| + | |||
| + | You will see two new folders in the **Project Explorer** panel. | ||
| + | * **Hello_world** which contains all the binaries, .C and .H (Header) files | ||
| + | * **Hello_world_bsp** which is the board support folder | ||
| + | |||
| + | **Hello_world** is our main working source folder. This also contains an important file shown here which is the " | ||
| + | |||
| + | >9.3) Back in the **Project Explorer**, double click and open **helloworld.c** under the **src** folder. | ||
| + | > | ||
| + | >This is the main .C file which will print "Hello World" in the console when executed. | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ====10. Programming FPGA with Bit File ==== | ||
| + | |||
| + | >10.1) Make sure that the Basys 3 is turned on and connected to the host PC via the USB-JTAG port - this port will serve dual purpose as the USB-UART connection to the Microblaze. | ||
| + | > | ||
| + | >On the top toolbar, click the {{: | ||
| + | |||
| + | >10.2) Click **Program** to program your FPGA with your hardware design. | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ----- | ||
| + | |||
| + | ====11. Setting up UART Terminal==== | ||
| + | |||
| + | >11.1) Open up a Serial Terminal application(Terra Term). Connect to the Basys 3 UART port with a baud rate of 9600. This baud rate can be altered in your block design by double clicking the Uartlite block. | ||
| + | > | ||
| + | > | ||
| + | > | ||
| + | >11.2) With Tera Term serial port settings | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ----- | ||
| + | ====12. Program the Microblaze Processor==== | ||
| + | |||
| + | >12.1) Back in SDK, select your **Hello_world** project and click the {{: | ||
| + | > | ||
| + | > | ||
| + | |||
| + | >12.2) Your program will run and you should see "Hello World" pop up inside of your Serial Terminal. Hooray! | ||
| + | > | ||
| + | > | ||
| + | |||
| + | ----- | ||
| + | / | ||

