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?


What can affect complexity in C synthesis?


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 03/25/2015
Status Active
Type General Article
  • Vivado Design Suite
Page Bookmarked