top of page

Run Hello World on a ZC702

  • Writer: Zach Pfeffer
    Zach Pfeffer
  • Apr 25, 2019
  • 4 min read

Updated: May 14, 2023



ree

This post shows how run Hello World on a Xilinx ZC702. It covers: creating a design in Vivado, exporting the design to the SDK and running Hello World on the dual-core ARM Cortex-A9 processor in the Zynq-7000.


Contains


Part I: Build a PS and Generate a Bitstream

Part II: Export Hardware Design and the Open SDK

Parr III: Set up the ZC702

Part IV: Set up the Terminal

Part V: Run HelloWorld

Part VI: Debug HelloWorld



Note


This write up follows the steps presented in Zynq-7000 All Programmable SoC: Embedded Design Tutorial and adds corrections, clarifications and additional information.



Versions

  • Vivado 2018.2 available @ [link] (install the free WebPACK edition)

  • Windows 7 SP1



Part I: Build a PS and Generate a Bitstream


Step 1: Start Vivado 2018.2

A. Click Start

B. Click Vivado 2018.2

ree

Step 2: Click Create Project

ree

Step 3: Click Next

ree

Step 4:

A. Set Project name to helloworld (always use a name without spaces [moreinfo])

B. Set Project location to C:/vivadoprjs (keep paths less than 200 chars)

C. Check the Create project subdirectory checkbox

D. Click Next

ree

Step 5:

A. Select the RTL Project radio button if its not selected

B. Check the Do not specify source at this time checkbox

C. Click Next

ree

Step 6:

A. Click Boards

B. Type ZC702

C. Click the ZYNQ-7 ZC702 Evaluation Board

D. Click Next

ree

Step 7: Click Finish

ree

Text Listed, More Info and Links to Docs


New Project Summary


A new RTL project named 'helloworld' will be created.


The default part and product family for the new project:

Default Board: ZYNQ-7 ZC702 Evaluation Board

Default Part: xc7z020clg484-1 [speedgrade and part # decode (datasheet p.23)]

Product: Zynq-7000 [product page]

Family: Zynq-7000

Package: clg484 [Pinout Files & Packaging and Pinout p.79]

Speed Grade: -1


Step 8: Click Create Block Design

ree

Step 9: Use defaults and click OK

ree

Step 10: Click + to add IP (or Ctrl-I)

ree

Step 11:

A. Type Zynq

B. Double click on ZYNQ7 Processing System

ree

You'll see the Xilinx LogiCORE™ IP Processing System 7 core [doc]:

ree

Interfaces:

M_AXI_GP0_ACLK (input, global clock, all signals sampled on rising edge of the global clock)

DDR

FIXED_IO

M_AXI_GP0

FCLK_CLK0 (output, fabric aka PL clock, clock for the PL)

FCLK_RESET0_N




Step 12: Click Run Block Automation

ree

Step 13: Use defaults and click OK

ree

You'll see:

ree

Step 14: Connect the PL clock (FCLK_CLK0) to the global clock (M_AXI_GP0_ACLK)

A. Click and hold on FCLK_CLK0

B. Drag the connection to M_AXI_GP0_ACLK and release mouse button

ree

You should see:

ree

Step 15: Create an HDL Wrapper

A. Click Sources

B. Click Hierarchy

C. Right-click design_1 (design_1.bd)

D. Click Create HDL Wrapper...

ree


Step 16:

A. Leave or select Let Vivado manage wrapper and auto-update

B. Click OK

ree

Step 17:

A. Click to expand design_1_wrapper (design_1_wrapper.v)(1)

B. Right-click on design_1_i: design_1 (design_1.bd)(1)

C. Click Generate Output Products...

ree

Step 18:

A. Leave selected or select Out of context per IP

B. Leave Number of jobs at 2

C. Click Generate

ree


Step 19: Click OK and let the operation complete

ree

Step 20: Click Run Synthesis

ree

Step 21: Use the defaults and click OK

ree

Wait for synth_design to complete

ree

Step 22:

A. Leave selected or select Run Implementation

B. Click OK

ree

Step 23: Use the defaults and click OK

ree

Wait for the operation to complete:

ree

ree

ree

Complete:

ree

Step 23:

A. Select Generate Bitstream

B. Click OK

ree

Step 24: Use the defaults and click OK

ree

Wait for the operation to complete:

ree

Complete:

ree

Step 25: Click Cancel

ree


Part II: Export Hardware Design and the Open SDK


Step 1:

A. Click File

B. Click Export

C. Click Export Hardware

ree

Step 2:

A. Click the Include bitstream checkbox

B. Leave <Local to Project>

C. Click OK

ree

Step 3:

A. Click File

B. Click Launch SDK

ree

Step 4: Use defaults and click OK

ree

Step 5:

A. Click File

B. Click Application Project

ree

Step 6:

A. Type HelloWorld for Project name

B. See HelloWorld_bsp autopopulate

C. Click Next

ree

Step 7:

A. Ensure Hello World is selected (it should be)

B. Click Finish

ree

You should see:

ree

Part III: Set up the ZC702


Step 1: Set SW16 to JTAG mode [mode documentation see p.16]

ree

For the rest of the jumpers see the high-resolution photo of the board in the correct state at [link].



Step 2: Connect a Micro-B to Type-A (host connection) USB cable from U23 (Diglent USB JTAG interface) to the host PC


U23:

ree

Micro-B connector:

ree

Type-A connector:

ree


Step 3: Connect a Mini-B to Type-A (host connection) USB cable from J17 (CP2103GM USB-to_UART Bridge) to the host PC.


J17:

ree

Mini-B connector:

ree

Type-A connector:

ree

Step 4: Power on the board (you'll need to power on the board to see the USB-to-UART device in the next step).

ree


Part IV: Set up the Terminal


Step 1: Install the Silicon Labs CP210x USB to UART Bridge VCP Drivers

A. Goto [link]

B. Download and unzip the correct installer

C. Install the driver (I did not need to restart on Windows 7 SP1)

D. Click Windows

E. Click Devices and Printers

ree

F. You should see Silicon Labs CP210x USB to UART Bridge

G. Note the COM port (you'll need this later)

ree


Step 2:

A. Click Window

B. Click Show View

C. Click Other

ree

Step 3:

A. Expand Terminal

B. Click Terminal

C. Click OK

ree

Step 4: Click Settings

ree


Step 5:

A. Use the COM port listed in Devices and Printers (or type it in: COM9 for instance)

B. Click OK

ree

Part V: Run HelloWorld


Step 1: Run Debug once


A. Right click HelloWorld

B. Click Debug As

C. Click Launch on Hardware (System Debugger)

ree

D. Click Yes

ree

E. Click Yes

ree



Step 2:

A. Click Run

B. Click Run Configurations...

ree

Step 3:

A. Make sure System Debugger using Debug_HelloWorld.elf on Local is selected

B. Check the Reset entire system check box

C. Check the Program FPGA check box

D. Ensure the Run ps7_init check box is checked

E. Ensure the Run ps7_post_config is checked

F. Click Apply

G. Click Run

ree

H. Switch back to the C/C++ View

ree


You should see:

ree

Step 4: Run the program again

A. Click Run

B. Click Run (this will use the Run Config you set up previously)

ree

C. Click OK

ree

You should see another Hello World:

ree


Part VI: Debug HelloWorld


Step 1: Click to disconnect Run terminal

ree

Step 2:

A. Click Run

B. Click Debug Configurations...

ree

Step 3:

A. Make sure System Debugger using Debug_HelloWorld.elf on Local is selected

B. Make sure the Reset entire system check box is checked

C. Make sure theProgram FPGA check box is checked

D. Ensure the Run ps7_init check box is checked

E. Ensure the Run ps7_post_config is checked

F. Click Apply if anything changed (the Apply button will be grayed out if no changes were needed).

G. Click Debug

ree

H. Click Yes

ree

You should see:

ree

Step 4: Connect the serial port

A. Click SDK Terminal

B. Click the '+' (Connect to serial port.)

ree

C. Use these settings and click OK

ree

You should see:

ree

Step 5: Click Resume (F8)

ree

You should see:

ree

Step 6: Restart Debug

A. Click Run

B. Click Debug (this will use the Debug Config you set up previously)

ree

C. Click OK

ree

You should again see:

ree

Note: to disconnect the debuggers serial port click here:

ree

You should see:

ree


References

 
 

© 2025 by Centennial Software Solutions LLC.

bottom of page