We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

C-based HLS Coding for Software Designers

Release Date:
October 2012
1 Day

Quick Links

Key Documentation


Software engineers looking to utilize high-level synthesis.


  • C, C++, or SystemC knowledge
  • Software design experience


For class schedules as well as tuition and registration information, please contact one of our Authorized Training Providers.

Course Description

C-based coding is increasingly used for the modeling and high-level synthesis of hardware components. This course provides software engineers with sufficient knowledge of FPGA hardware to efficiently code for high-level synthesis. Learn the high-level synthesis best practices, methodology, and subtleties of C-based coding for hardware modeling, synthesis, and verification.

Software Tools

Vivado® System Edition 2012.2


  • Architecture: Zynq®-7000 All Programmable SoC and 7 series FPGAs*
  • Demo board: None

* This course focuses on the Zynq-7000 All Programmable SoC and 7 series FPGA architectures. Check with your local Authorized Training Provider for the specifics of the in-class lab board or other customizations.

Skills Gained

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

  • Describe the difference between software programming and hardware design
  • Identify the fundamental principles of hardware design
  • Model and simulate hardware components using C
  • Code hardware components in C for high-level synthesis

Course Outline

Lab Lecture Demo

Day 1

  1. 1.1
    Introduction to Hardware Design for Software Designers
  2. 1.2
    Lab 1: Analyze a Simple Top-Level Hardware Design Analyze a top-level, two-frequency pulse width modulator (PWM) hardware system. Identify and analyze hardware design components, parallel flow, and control.
  3. 1.3
    C-based Algorithmic Coding for Hardware
  4. 1.4
    Lab 2: High-Level Synthesis of a C Model Use various techniques and directives in Vivado HLS to improve design performance. The design under consideration accepts an image in a (custom) RGB format, converts it to the Y’UV color space, and applies a filter to the Y’UV image and converts it back to RGB.
  5. 1.5
    C-based Test Bench Coding
  6. 1.6
    Lab 3: Creating a C-based Test Bench Develop a verification environment used for testing a C-based design and verification in Vivado HLS. The design under consideration is the same design used in the previous lab, a Y’UV filter.
Page Bookmarked