Vivado High-Level Synthesis

Accelerates IP Creation by Enabling C, C++ and System C Specifications

Overview

Advanced algorithms used today in wireless, medical, defense, and consumer applications are more sophisticated than ever before. Vivado® High-Level Synthesis included as a no cost upgrade in all Vivado HLx Editions, accelerates IP creation by enabling C, C++ and System C specifications to be directly targeted into Xilinx programmable devices without the need to manually create RTL. Supporting both the ISE® and Vivado design environments Vivado HLS provides system and design architects alike with a faster path to IP creation by :

  • Abstraction of algorithmic description, data type specification (integer, fixed-point or floating-point) and interfaces (FIFO, AXI4, AXI4-Lite, AXI4-Stream)
  • Extensive libraries for arbitrary precision data types, video, DSP and more… see the below section under Libraries
  • Directives driven architecture-aware synthesis that delivers the best possible QoR
  • Fast time to QoR that rivals hand-coded RTL
  • Accelerated verification using C/C++ test bench simulation, automatic VHDL or Verilog simulation and test bench generation
  • Multi-language support and the broadest language coverage in the industry
  • Automatic use of Xilinx on-chip memories, DSP elements and floating-point library

Libraries

The following libraries are included with Vivado HLS:

Name Description
Arbitrary Precision Data Types Integer and fixed-point (ap_cint.h, ap_int.h and systemc.h) 
HLS Stream Models for streaming data structures.  Designed to obtain best performance and area (hls_stream.h)
HLS Math Extensive support for the synthesis of the standard C (math.h) and C++ (cmath.h) math libraries.  The support includes floating point and fixed-point functions: abs, atan, atanf, atan2, atan2, ceil, ceilf, copysign, copysignf, cos, cosf, coshf, expf, fabs, fabsf, floorf, fmax, fmin, logf, fpclassify, isfinite, isinf, isnan, isnormal, log, log10, modf, modff, recip, recipf, round, rsqrt, rsqrtf, 1/sqrt, signbit, sin, sincos, sincosf, sinf, sinhf, sqrt, tan, tanf, trunc
HLS Video Video library to implement several aspects of modeling video design in C++ with video Functions, specific data types, memory line buffer and memory window (hls_video.h). Vivado HLS is also compatible with existing OpenCV functions which can be found on Github (https://github.com/Xilinx/xfopencv): xf_accumulate_image, xf_accumulate_squared, xf_accumulate_weighted, xf_add_weighted, xf_averagegaussianmask, xf_bilateral_filter, xf_box_filter, xf_canny, xf_canny_sobel, xf_canny_utils, xf_channel_combine, xf_channel_extract, xf_colorthresholding, xf_convert_bitdepth, xf_corner_img_to_list, xf_corner_update, xf_custom_convolution, xf_cvt_color, xf_cvt_color_1, xf_cvt_color_utils, xf_delay, xf_demosaicing, xf_dense_npyr_optical_flow, xf_dilation, xf_duplicateimage, xf_edge_tracing, xf_erosion, xf_gaussian_filter, xf_gaussian_filter_block_utils, xf_gaussian_filter_lut, xf_gaussian_filter_utils, xf_hist_equalize, xf_histogram, xf_hog_descriptor, xf_hog_descriptor_compute_hist, xf_hog_descriptor_gradients, xf_hog_descriptor_hist_norm, xf_hog_descriptor_kernel, xf_hog_descriptor_norm, xf_hog_descriptor_pm, xf_hog_descriptor_utility, xf_houghlines, xf_inrange, xf_integral_image, xf_kalmanfilter, xf_lut, xf_magnitude, xf_mean_shift, xf_mean_shift_kernel, xf_median_blur, xf_optical_flow_pyr_down_gaussian_blur, xf_optical_flow_pyr_down_kernel, xf_otsuthreshold, xf_paintmask, xf_pyr_dense_optical_flow, xf_pyr_dense_optical_flow_find_gradients, xf_pyr_dense_optical_flow_median_blur, xf_pyr_dense_optical_flow_oflow_process, xf_pyr_dense_optical_flow_scale, xf_pyr_dense_optical_flow_wrapper, xf_pyr_down, xf_pyr_down_gaussian_blur, xf_pyr_up, xf_pyr_up_gaussian_blur, xf_reduce, xf_remap, xf_resize, xf_resize_down_area, xf_resize_down_bilinear, xf_resize_down_nn, xf_resize_nn_bilinear, xf_resize_up_area, xf_resize_up_bilinear, xf_resize_up_nn, xf_rgb2hsv, xf_scale, xf_scharr, xf_sgbm, xf_sobel, xf_stereoBM, xf_stereo_pipeline, xf_sum, xf_svm, xf_threshold, xf_warp_transform, xf_warpaffine, xf_warpperspective
HLS IP C-based super-sample-rate FFT with hls_ssr_lib.h
Integrate the LogiCORE IP FFT and FIR Compiler (hls_fft.h, hls_fir.h, ap_shift_reg.h)
HLS Linear Algebra Support for the following functions: cholesky, cholesky_inverse, matrix_multiply, qrf, qr_inverse, svd (hls_linear_algebra.h)
HLS DSP Support for the following functions: atan2, awgn, cmpy, convolution_encoder, nco,  qam_demod, qam_mod, sqrt, viterbi_decoder (hls_dsp.h)
Documentation

Documentation

Filter Results
Default Default Title Document Type Date
Training & Support
Video