Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
learn:programmable-logic:tutorials:zybo-getting-started-with-zynq-server:start [2017/01/18 21:32] – [12. Testing the Server with Tera Term] jon peyron | learn:programmable-logic:tutorials:zybo-getting-started-with-zynq-server:start [2023/08/22 22:00] (current) – Arthur Brown | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Getting Started with Zynq Servers | + | ====== Getting Started with Zynq Servers (Redirect) ====== |
- | {{ : | + | ~~NOSEMANTIC~~ |
- | + | ~~REDIRECT> | |
- | ===== Overview ===== | + | {{tag>redirect}} |
- | This guide will provide a step by step walk-through of creating a Microblaze based hardware design using the Vivado IP Integrator that will build over the [[zybo: | + | |
- | + | ||
- | + | ||
- | At the end of this tutorial you will have a comprehensive hardware design for Nexys4 DDR that makes use of various Hardware ports on the Zybo which are managed by the Zynq Softcore Processor block. | + | |
- | + | ||
- | ----- | + | |
- | ===== Prerequisites ===== | + | |
- | + | ||
- | === Hardware === | + | |
- | * **Digilent' | + | |
- | + | ||
- | === Software === | + | |
- | * **Xilinx Vivado 2015.X with the SDK package.** | + | |
- | + | ||
- | === Board Support Files === | + | |
- | * **Zybo Support Files** | + | |
- | * //These files will describe GPIO interfaces on your board and make it easier to select your board in the initial design setup and add GPIO IP blocks in the block design// | + | |
- | * //Follow this Wiki guide **[[vivado: | + | |
- | + | ||
- | ----- | + | |
- | ===== Tutorial ===== | + | |
- | ==== General Design Flow ==== | + | |
- | I. Vivado | + | |
- | * Open Vivado and select Zybo board | + | |
- | * Create an new Vivado Project | + | |
- | * Create empty block design workspace inside the new project | + | |
- | * Add required IP blocks using the IP integrator tool and build Hardware Design | + | |
- | * Validate and save block design | + | |
- | * Create HDL system wrapper | + | |
- | * Run design Synthesis and Implementation | + | |
- | * Generate Bit File | + | |
- | * Export Hardware Design including the generated bit stream file to SDK tool | + | |
- | * Launch SDK | + | |
- | + | ||
- | Now the Hardware design is exported to the SDK tool. The Vivado to SDK hand-off is done internally through Vivado. | + | |
- | We will use SDK to create a Software application that will use the customized board interface data and FPGA hardware configuration by importing the hardware design information from Vivado. | + | |
- | + | ||
- | II. SDK | + | |
- | * Create new application project and select default Hello World template | + | |
- | * Program FPGA and run application | + | |
- | ==== 1. Creating a New Project ==== | + | |
- | + | ||
- | When you first run Vivado this will be the main start window where you can create a new project or open a recent one. | + | |
- | + | ||
- | >1.1) Click on **Create New Project**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >1.2) You will be presented with the project creation wizard. Click **Next**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >1.3) Enter a project name and location the click **Next**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >1.4) Select **RTL Project** and click **Next**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >1.5) This demo does not use any existing sources, existing IP or constraints. Click through the next three screens. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >1.6) Select **Boards** and select the **Zybo** board file. Click **Next** and then **Finish**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ----- | + | |
- | ==== 2. Creating a New Block Design ==== | + | |
- | + | ||
- | >2.1) Once the process has completed, click **Create Block Design** in the flow navigator. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >2.2) Click **OK**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >2.3) A blank Block Design will open up. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ----- | + | |
- | ==== 3. Run the Connection Automation Tool ==== | + | |
- | >3.1) Click the {{: | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >3.2) The connection automation tool will add the required logic blocks for the demo. Select **Run Connection Automation** highlighted in blue. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >3.3) Click the **Run Block Automation** link | + | |
- | > | + | |
- | > | + | |
- | > | + | |
- | >3.4) Connect FCLK_CLK0 to M_AXI_GPO_ACLK | + | |
- | + | ||
- | > Your Zynq block should now look like the picture below. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ----- | + | |
- | + | ||
- | ==== 4. Generate HDL Wrapper and Validate Design ==== | + | |
- | + | ||
- | >4.1) Select {{: | + | |
- | + | ||
- | >4.2) After the design validation step we will proceed with creating a HDL System Wrapper. In the block design window, under the **Design Sources** tab, right-click on the block diagram file. We labeled it " | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | This will create a top module in VHDL and will allow you to generate a bitstream. | + | |
- | + | ||
- | ----- | + | |
- | + | ||
- | ==== 5. Generate the Bitstream ==== | + | |
- | + | ||
- | >5.1) Click on **Generate Bitstream** at the bottom of the Flow Navigator. Wait for the process to complete and click OK. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ----- | + | |
- | + | ||
- | ==== 6. Export hardware files for SDK ==== | + | |
- | + | ||
- | >6.1) Go to file-> | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ----- | + | |
- | + | ||
- | ==== 7. Launch SDK ==== | + | |
- | + | ||
- | >7.1) Go to **File-> | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ----- | + | |
- | + | ||
- | ==== 8. Creating New Application Project in SDK ==== | + | |
- | + | ||
- | >8.1) Go to **File-> | + | |
- | > | + | |
- | >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 | + | |
- | > | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >8.2) Select **IwIP Echo Server** under the list of available templates and click **Finish**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >8.3) After completing the previous step, you will see two new folders in the //Project Explorer// panel. **echo** which contains all the binaries, .C and .H (Header) files, and **echo_bsp** which is the board support folder. | + | |
- | **echo** is our main working source folder. This also contains an important file shown here in the src folder called // | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== 9. Programming FPGA with Bit File ==== | + | |
- | + | ||
- | >9.1) Make sure that the Zybo is turned on and connected to the host PC via micro USB cable. On the main toolbar, click **Xilinx Tools-> | + | |
- | >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// | + | |
- | > | + | |
- | >Now click on Program. | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== 10. Tera Term Terminal Emulator ==== | + | |
- | + | ||
- | You can use the SDK concole or other serial terminals as well. I typically use tera term. Refer to this link [[http://en.wikipedia.org/ | + | |
- | You can download and install Tera Term from this link [[http:// | + | |
- | + | ||
- | >25.1) Before establishing a serial connection with Tera Term, make sure that in SDK, the **Connect STDIO** box under the //STDIO Connection// | + | |
- | > | + | |
- | + | ||
- | >Tera Term will work as a Console by displaying the output. | + | |
- | + | ||
- | + | ||
- | > | + | |
- | + | ||
- | >The serial setup is as shown below. | + | |
- | + | ||
- | >{{: | + | |
- | + | ||
- | >Go to //SDK Run Configurations// | + | |
- | + | ||
- | ==== 11. Running the Server ==== | + | |
- | + | ||
- | >11.1) In the console window at the bottom of the screen the details of the connection will be displayed. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | ==== 12. Testing the Server with Tera Term ==== | + | |
- | + | ||
- | >12.1) Connect your PC to your Zybo using an Ethernet cable. **If using a router, watch the UART console to find out the IP of the Zybo echo server, and connect to that IP address. Setting up the connection as static is unnecessary.** | + | |
- | + | ||
- | >12.2) In order to connect to the echo server directly from your computer, you must set up your Ethernet connection with a static IP address. To do this: | + | |
- | + | ||
- | >12.2.1) Right click your internet connection and click **Open Network and Sharing Center**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >12.2.2) Find the Ethernet Connection to your Zybo. It should be an unidentified network. Click **Ethernet**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >14.2.3) Click **Properties**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >14.2.4) Select **Internet Protocol Version 4 (TCP/ | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >14.2.5) Click the **Use the following IP address:** bullet and type in an IP address " | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >14.3) Open Tera Term and type in the following info and click **Ok**. | + | |
- | > | + | |
- | > | + | |
- | + | ||
- | >14.4) Type anything into the console and press your keyboard' | + | |
- | > | + | |
- | >//You can go to Setup-> | + | |
- | > | + | |
- | > | + | |
- | + |