Create a ZCU102 PS in Vivado 2019.1

xilinx_logo_1

This post shows how to create a ZCU102 PS (Processor Subsystem) in Vivado 2019.1 that allows you to “run code” on the Zynq UltraScale+ MPSoC.

Steps

Step #1: Install Vivado 2019.1 with the SDK option

Follow the steps at [link]

Step #2: Start Vivado

On Windows 7: (A) click Start, (B) click All Programs

all_programs_2

(C) click Xilinx Design Tools, (D) click Vivado 2019.1, and (E) click Vivado 2019.1

vivado_2019.1_3

Step #3: Click Create Project

create_project_4

Step #4: Click Next >

next_new_project_5

Step #5: Set the Project Name and Location

A) Project name: ps

B) Project location C:/vivadoprjs

C) Leave checked: Create project subdirectory

D) Click Next >

set_project_parameters_6

Step #6: Specify the Project Type

A) Leave RTL Project selected

B) Leave Do not specify sources at this time selected

C) Click Next >

set_rtl_project_7

Step #7: Specify the board

A) Click Boards

B) Type ZCU102

C) Click inside the Zynq UltraScale+ ZCU102 Evaluation Board box (so it turns blue)

D) Click Next >

select_zcu102_8

Step #8: Click Finish

finish_project_setup__9

Note: Here is the text of this window:

The default part and product family for the new project: Default Board: Zynq UltraScale+ ZCU102 Evaluation Board Default Part: xczu9eg-ffvb1156-2-e Product: Zynq UltraScale+ Family: Zynq UltraScale+ MPSoCs Package: ffvb1156 Speed Grade: -2

Related docs: See [link] for package info, see [link] for part selection

Step #9: Create a Block Design

A) Click Create Block Design

B) Use default Design name: design_1

C) Click OK

create_block_design_1_10

Step #10: Add the Zynq UltraScale+ MPSoC to the Block Design

A) Click +

B) Type zynq

C) Double-click Zynq UltraScale+ MPSoC

select_zynq_ultrascale_mpsoc_11

Step #11: Click Run Block Automation

run_block_automation_1_12

Step #12:

A) Leave All Automation and zynq_ultra_ps_e_0 checked

B) Leave Apply Board Preset checked

C) Click OK

apply_board_preset_13

Step #13:

A) Double click the Zynq UltraScale+ MPSoC block

double_click_zynq_ultrascale_block_14

B) Click PS-PL Configuration

C) Expand PS-PL Interfaces

D) Expand Master Interface

E) Uncheck AXI HPM0 FPD

F) Uncheck AXI HPM1 FPD

G) Click OK

uncheck_axi_hpm0_and_m1_15

Step #14: Create an HDL Wrapper

A) Right-click design_1 (design_1.bd)

B) Click Create HDL Wrapper…

create_hdl_wrapper__16

C) Leave Let Vivado manage wrapper and auto-update selected

D) Click OK

let_vivado_manage_wrapper_17

Step #15: Generate Output Products

A) Expand design_1_wrapper (design_1)wrapper.v) (1)

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

C) Click Generate Output Products…

generate_output_products_18

D) Click Generate

click_generate_19

You should see:

managing_output_products_20

E) Observe Generate Output Products status

F) Click OK

observe_generate_output_products_21

G) Wait until the status says Ready

status_ready_22

Step #16: Export the hardware to the SDK

A) Click File

B) Click Export

C) Click Export Hardware…

export_hardware_23

D) Leave Include bitstream unchecked

E) Click OK

dont_include_bitstream_24

Step #17: Launch the SDK

A) Click File

B) Click Launch SDK

launch_sdk_25

C) Click OK

confirm_launch_sdk_26

You should see:

importing_hardwear_specification_27

Followed by:

sdk_launched_28

References

  • Zynq UltraScale+ MPSoC: Embedded Design Tutorial (UG1209) @ [link]

  • Xilinx logo found via [link]