UltraZohm Setup

Requirements

  • Installed Xilinx toolchain (Vivado and Vitis)

  • Installed Java

  • Vivado license

  • Installed git

  • Bitbucket account

  • (Optional) Sourcetree

Aim

  • Setup the physical connections of the UltraZohm

  • Clone the UltraZohm Repositories

  • Generate the bitstream with Vivado

  • Generate the Vitis workspace

  • Program the UltraZohm

  • Debug the UltraZohm

  • Connect the Javascope to the UltraZohm

Clone the UltraZohm Repositories

  • Create a folder ultrazohm

  • Use git bash / terminal to clone the repositories

git clone https://bitbucket.org/ultrazohm/ultrazohm_sw.git

After executing the git clone commands, the following directory structure exists.

./ultrazohm/
    ultrazohm_sw
../../_images/1_folder_setup_gitclone.png

Generate the bitstream with Vivado

Open the block design

To generate the bitstream in Vivado, open Vivado by double-clicking it.

  • Open the project in File -> Project -> Open

  • Choose the file ~/ultrazohm/ultrazohm_sw/vivado/project/ultrazohm.xpr

  • The project initializes

  • Check if a valid Vivado license exists in Help -> Manage License -> View License Status

  • Click Open Block Design

  • The Block Design is opened (takes several minutes)

../../_images/1_open_project.png ../../_images/2_open_xpr.png ../../_images/3_init_project.png ../../_images/4_project_opened.png ../../_images/5_check_license.png ../../_images/6_license_manager.png ../../_images/7_open_block_design.png ../../_images/8_opened_block_design.png

Generate Bitstream

  • Click on Generate Bitstream

  • Click Yes to launch synthesis and implementation

  • Choose the number of CPU jobs/cores that should be used by Vivado (leave a few unused, e.g., for your OS etc.)

  • Launch the run(s) by clicking Ok

  • The bitstream is generated. This takes 20 to 60 minutes, depending on your PC!

  • Open the implemented design after the bitstream generation is completed

Note

More CPU jobs decrease the time Vivado needs to generate the bitstream. However, Vivado requires more RAM for a higher number of jobs. If you run out of RAM and your OS writes to the disk (paging file or swap), decrease the number of jobs!

../../_images/1_gen_bitstream.png ../../_images/2_impl_results.png ../../_images/3_launch_run.png ../../_images/4_starts.png ../../_images/5_generated.png ../../_images/6_open_design.png

Export Bitstream

  • Export the bitstream in File -> Export -> Export Hardware

  • Choose Fixed

  • Choose Include bitstream

  • Choose the path to which the bitstream will be exported

  • Path: ~/ultrazohm/ultrazohm_sw/vitis/vivado_exported_xsa

  • Override the existing file

  • Vivado exports the file

../../_images/1_export.png ../../_images/2_export_fixed.png ../../_images/3_inc_bitstream.png ../../_images/4_choose_path.png ../../_images/5_path.png ../../_images/6_next.png ../../_images/7_override.png ../../_images/8_finish.png ../../_images/9_load.png

Export Bitstream tcl-script

A TCL script can be added to the Vivado icons to automate the process of exporting the bitstream since it is a common task.

  • Tools -> Custom Commands -> Customize Commands

  • Click on the plus and enter a name, e.g., export_xsa

  • Click on Source Tcl file

  • Path: ~/ultrazohm/ultrazohm_sw/tcl_scripts/vivado_export_xsa.tcl

  • Click ok

https://images2.imgbox.com/20/97/ltbV6vKQ_o.gif

Generate the Vitis workspace

  • See pictures below for all steps!

  • Navigate to ~/ultrazohm/ultrazohm_sw/vitis/software/Baremetal/src/uz

  • Copy the file default_uz_global_configuration.h (same folder)

  • Rename the file to uz_global_configuration.h

Warning

Do not rename the file directly! Copy the file and rename the copy!

Important

You probably have to adjust the UltraZohm version in uz_global_configuration.h by setting the define UZ_HARDWARE_VERSION to your version (e.g., 2U, 3U, 4U, …)

  • Open Vitis or launch Vitis from Vivado (Tools -> Launch Vitis IDE)

  • Choose the workspace

  • Path: ~/ultrazohm_sw/vitis/workspace

  • Open the XSCT Console in Vitis: Windows -> Show view... -> XSCT Console

  • Type the following commands

cd [getws]
source {../../tcl_scripts/vitis_generate_UltraZohm_workspace.tcl}
  • The script runs for several minutes

  • The script displays generate_UltraZohm_workspace.tcl script finished…

../../_images/1_launch_vitis_vivado.png ../../_images/2_workspace.png ../../_images/4_xstc_console.png

Note

If the XSCT console is still not visible, press the restore button.

../../_images/5_build_workspace.png ../../_images/6_sucess.png

Physical Setup of the UltraZohm

  • Connect the UltraZohm to the grid

  • Connect the Ethernet to your PC

  • Connect the USB (JTAG) to your PC

  • For UltraZohm Carrier Board 3v00: Plug an external stop or the external stop dummy into the front panel

  • For UltraZohm Carrier Board Rev04: An external stop / dummy is not required

  • Turn on the UltraZohm

  • All four LEDs are turned on

../../_images/physical_setup.png

Program (Debug)

  • Click on the red-marked windows to see the design perspective in Vitis

  • Click the arrow next to the debug-icon and choose Debug Configurations

  • Choose Debug_FreeRTOS_Baremetal_FPGA

  • Click on Debug

  • After the first debug run, it is sufficient to click the debug-icon

  • Start all processors (click on the play button)

../../_images/1_vitis_show_design.png ../../_images/2_debug.png ../../_images/3_start_debug.png

Javascope

  • Setup the network settings of the Ethernet adapter, which is connected to the UltraZohm

IP: 192.168.1.1
Subnet-Mask: 255.255.255.0
Gateway: 192.168.1.233
  • See GUI

  • Go to the folder

  • Start the Javascope

https://images2.imgbox.com/99/98/KSNpOtWT_o.gif