Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| vivado:getting_started_with_zynq:start [2017/09/27 22:54] – Arthur Brown | vivado:getting_started_with_zynq:start [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| <WRAP round important 660px> | <WRAP round important 660px> | ||
| - | === Warning | + | === Important! |
| - | This page is a work in progress. | + | This guide is obsolete, the updated guide can be found [[: |
| </ | </ | ||
| + | |||
| + | {{: | ||
| ===== Prerequisites ===== | ===== Prerequisites ===== | ||
| - | * Vivado | + | * A Vivado |
| - | * Familiarity | + | * Basic familiarity |
| - | * Digilent Board Files | + | * Digilent Board Files installed to make selection of a target board and configuration of the Zynq IP block easier. See [[software: |
| + | * A Digilent Zynq Development Board to run the project on. | ||
| ===== Introduction ===== | ===== Introduction ===== | ||
| Line 96: | Line 99: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 2.2 === | === 2.2 === | ||
| - | In the dialog box, give the block design a name and a directory location | + | In the dialog box, give the block design a name. The directory location |
| <WRAP center round important> | <WRAP center round important> | ||
| === Important === | === Important === | ||
| Line 110: | Line 113: | ||
| ==== 3. IP Integrator Tools ==== | ==== 3. IP Integrator Tools ==== | ||
| - | There are many tools and places | + | As a general overview, Zynq designs consist of two areas, the processor, and the FPGA. The processor has some additional hardware surrounding it, and connects to other peripherals on the board that are not part of the Zynq chip. The FPGA also connects to other on board hardware. The communications protocol used to move data between the FPGA and processor, as well as between pieces of the FPGA, is called AXI. |
| + | |||
| + | Each AXI peripheral programmed onto the FPGA will be assigned an area of the Zynq's memory space that will be used to address each of its control registers. Adding a simple AXI interface to a design will require | ||
| + | |||
| + | Much of basic Zynq design consists of connecting different AXI peripherals to the processor, clocking them appropriately, | ||
| + | |||
| + | With this context out of the way, many of the tools that can be used to create a design in Zynq will be described. | ||
| <WRAP group> | <WRAP group> | ||
| Line 243: | Line 252: | ||
| * //Optimize Routing// ({{: | * //Optimize Routing// ({{: | ||
| * //Show Interface Connections Only// ({{: | * //Show Interface Connections Only// ({{: | ||
| + | |||
| + | Additionally, | ||
| With a general understanding of the actions that can be taken in the IPI, a design can now be created. | With a general understanding of the actions that can be taken in the IPI, a design can now be created. | ||
| Line 263: | Line 274: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 4.2 === | === 4.2 === | ||
| - | Before doing anything else, select //Run Block Automation// | + | Before doing anything else, select //Run Block Automation// |
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 374: | Line 385: | ||
| </ | </ | ||
| - | <WRAP group> | ||
| - | <WRAP column half> | ||
| - | === 5.9 === | ||
| Since the target design for this guide requires no major changes to the Zynq block' | Since the target design for this guide requires no major changes to the Zynq block' | ||
| - | </ | ||
| - | <WRAP column half> | ||
| - | </ | ||
| - | </ | ||
| ==== 6. Add Peripherals ==== | ==== 6. Add Peripherals ==== | ||
| Line 390: | Line 394: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 6.1 === | === 6.1 === | ||
| - | In the //Board// tab to the left of the window, right click on //RGB LEDs// and select //Connect Board Component// | + | In the //Board// tab to the left of the diagram pane, right click on //RGB LEDs// and select //Connect Board Component// |
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 410: | Line 414: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 6.3 === | === 6.3 === | ||
| - | This will place a general purpose input/ | + | This will place a general purpose input/ |
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 440: | Line 444: | ||
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| - | vivado: | + | {{ :vivado: |
| </ | </ | ||
| </ | </ | ||
| Line 447: | Line 451: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 7.2 === | === 7.2 === | ||
| - | Make sure that the axi_gpio_0 block is checked in the menu to the left. Several options are present here, including the clock that the AXI Interface will run off of. | + | Make sure that the axi_gpio_0 block is checked in the menu to the left. Several options are present here, including |
| Click //Finish// to generate the AXI connection and its related blocks. | Click //Finish// to generate the AXI connection and its related blocks. | ||
| Line 457: | Line 461: | ||
| </ | </ | ||
| </ | </ | ||
| - | |||
| - | AXI is the communications protocol that is used by the Zynq processor to communicate with each of the peripheral controllers in the design. Each peripheral will be assigned an area of the Zynq's memory space that will be used to address each of its controller' | ||
| ==== 8. Generate the Bitstream ==== | ==== 8. Generate the Bitstream ==== | ||
| Line 489: | Line 491: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 8.3 === | === 8.3 === | ||
| - | With a validated design and a top module, a bitstream can now be generated. The Getting Started with Vivado guide explains this process in a little more detail, but for now, click the //Generate Bitstream// button in the //Flow Navigator// | + | With a validated design and a top module, a bitstream can now be generated. The [[: |
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 607: | Line 609: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 10.3 === | === 10.3 === | ||
| - | </ | ||
| In the New Project dialog, give the project a name, and make sure that //C// is selected as the // | In the New Project dialog, give the project a name, and make sure that //C// is selected as the // | ||
| <WRAP center round important> | <WRAP center round important> | ||
| === Important === | === Important === | ||
| - | Do NOT use spaces in the export location path. This will cause problems with Vivado. Instead use an underscore, a dash, or [[wp> | + | Do NOT use spaces in the project name. This will cause problems with Vivado. Instead use an underscore, a dash, or [[wp> |
| </ | </ | ||
| Click //Next// to continue. | Click //Next// to continue. | ||
| + | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| {{ : | {{ : | ||
| Line 705: | Line 707: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 11.2 === | === 11.2 === | ||
| + | Leave all of the settings in the Program FPGA dialog as they are, then click // | ||
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||
| Line 715: | Line 717: | ||
| <WRAP column half> | <WRAP column half> | ||
| === 11.3 === | === 11.3 === | ||
| + | Right click on the application project in the //Project Explorer//, then select //Run As > Launch on Hardware (System Debugger)// | ||
| </ | </ | ||
| <WRAP column half> | <WRAP column half> | ||

