Global training solutions for engineers creating the world's electronics products

Xilinx - Vivado HLS

Also known as C-based Design: High-Level Synthesis with the Vivado HLx Tool by Xilinx

COVID-19 Update: View Doulos COVID News Updates »

This course is available Live Online worldwide: View the Live Online full course description »

Limited In-Person schedule available in Europe from March 2021 

Course Description

The course provides a thorough introduction to Vivado® HLS (high-level synthesis). It covers:

  • Synthesis strategies
  • Features
  • Improving throughput
  • Area
  • Interface creation
  • Latency
  • Testbench coding
  • Coding tips

You will learn how to utilize Vivado HLS to optimize code for high-speed performance in an embedded environment and download for in-circuit validation.

New content (2020) on:

  • Vitis™ HLS tool
  • RTL Verification, IP packaging, and design analysis
  • All labs now support the Zynq® UltraScale+™
    ZCU104 board
Training Duration

2 days

Who Should Attend?

Software and hardware engineers looking to utilize high-level synthesis.

  • C, C++ or System C knowledge
Skills Gained

After completing this comprehensive training, you will know how to:

  • Enhance productivity using Vivado HLS (high-level synthesis)
  • Describe the high-level synthesis flow
  • Use Vivado HLS for a first project
  • Identify the importance of the testbench
  • Use directives to improve performance and area and select RTL interfaces
  • Identify common coding pitfalls as well as methods for improving code for RTL/hardware
  • Perform system-level integration of blocks generated by Vivado HLS
  • Describe how to use OpenCV functions in the Vivado HLS tool
Course Outline
Day 1
  • Introduction to High-Level Synthesis
    Overview of the High-level Synthesis (HLS), Vivado HLS tool flow,
    and the verification advantage. {Lecture}
  • Vivado HLS Tool Flow
    Explore the basics of high-level synthesis and the Vivado HLS
    tool. {Lecture, Demo, Lab}
  • Design Exploration with Directives
    Explore different optimization techniques that can improve the
    design performance. {Lecture}
  • Vivado HLS Tool Command Line Interface
    Describes the Vivado HLS tool flow in command prompt mode.
    {Lecture, Lab}
  • Introduction to HLS UltraFast Design Methodology
    Introduces the methodology guidelines covered in this course and
    the HLS UltraFast Design Methodology steps. {Lecture}
  • Introduction to I/O Interfaces
    Explains interfaces such as block-level and port-level protocols
    abstracted by the Vivado HLS tool from the C design. {Lecture}
  • Block-Level I/O Protocols
    Explains the different types of block-level protocols abstracted by
    the Vivado HLS tool. {Lecture, Lab}
  • Port-Level I/O Protocols
    Describes the port-level interface protocols abstracted by the
    Vivado HLS tool from the C design. {Lecture, Demo, Lab}
  • Port-Level I/O Protocols: AXI4 Interfaces
    Explains the different AXI interfaces (such as AXI4-Master,
    AXI4-Lite (Slave), and AXI4-Stream) supported by the Vivado
    HLS tool. {Lecture, Demo}
  • Port-Level I/O Protocols: Memory Interfaces
    Describes the memory interface port-level protocols (such as
    block RAM, FIFO) abstracted by the Vivado HLS tool from the C
    design. {Lecture, Lab}
  • Port-Level I/O Protocols: Bus Protocol
    Explains the bus protocol supported by the Vivado HLS tool.
  • Pipeline for Performance: PIPELINE
    Describes the PIPELINE directive for improving the throughput of
    a design. {Lecture, Demo, Lab}


Day 2
  • Pipeline for Performance: DATAFLOW
    Describes the DATAFLOW directive for improving the throughput
    of a design by pipelining the functions to execute as soon as
    possible. {Lecture, Lab}
  • Optimizing Structures for Performance
    Learn the performance limitations caused by arrays in your
    design. You will also learn some optimization techniques to
    handle arrays for improving performance. {Lecture, Demo, Lab}
  • Data Pack and Data Dependencies
    Learn how to use DATA_PACK and DEPENDENCE directives to
    overcome the limitations caused by structures and loops in the
    design. {Lecture}
  • Vivado HLS Tool Default Behavior: Latency
    Describes the default behavior of the Vivado HLS tool on latency
    and throughput. {Lecture}
  • Reducing Latency
    Describes how to optimize the C design to improve latency.
  • Improving Area and Resource Utilization
    Describes different methods for improving resource utilization and
    explains how some of the directives have impact on the area
    utilization. {Lecture, Lab}
  • HLx Design Flow – System Integration
    Describes the traditional RTL flow versus the Vivado HLx design
    flow. {Lecture, Lab}
  • Vivado HLS Tool C Libraries: Arbitrary Precision
    Describes the Vivado HLS tool support for the C/C++ languages,
    as well as arbitrary precision data types. {Lecture, Lab}
  • Hardware Modeling
    Explains hardware modeling with streaming data types and shift
    register implementation using the ap_shift_reg class. {Lecture}
  • Using Pointers in the Vivado HLS Tool
    Explains the use of pointers in the design and workarounds for
    some of the limitations. {Lecture}

Looking for team-based training, or other locations?

Complete an enquiry form and a Doulos representative will get back to you.

Enquiry FormPrice on request