UPGRADE YOUR BROWSER

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!

AR# 58593

Vivado HLS - What can affect complexity in C synthesis?

Description

What can affect complexity in C synthesis?

Solution

You can take a fairly simple design and make it complex by:
 
  • Inlining all functions:
    By default each function will be scheduled independently, if you inline everything you create one big design and a lot of possibilities.
  • Unrolling loops:
    Now all iterations are scheduled at the same time, instead of the default which is a schedule iteration of 0 and to use it multiple times.
  • Partitioning all arrays completely:
    Now instead of one object to design,  HLS has multiple objects to work with and there are many more possibilities.

The more constraints you give HLS, the easier you make its job (less possibilities) and the faster it will run.

Sometimes those constraints are inherent in the code (rolled loops, sub-functions, arrays) and directives can remove them and make the design more complex.
AR# 58593
Date Created 11/29/2013
Last Updated 03/25/2015
Status Active
Type General Article
Tools
  • Vivado Design Suite