Questions tagged [vivado-hls]

Vivado® High-Level Synthesis accelerates IP creation by enabling C, C++ and System C specifications to be directly targeted into Xilinx All 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
121 questions
4
votes
0 answers

How to enlarge bus width using Vitis libraries BLAS

I am trying to use the BLAS L1 implementation from Vitis libraries, I want to set bus width to 128 bit, I am doing it using the ap_int.h header, defining an ap_int<128> structure. I implemented an OpenCl kernel with VITIS HLS module, but the…
joepol
  • 744
  • 6
  • 22
4
votes
0 answers

implementing object detection like openCV

I'm trying to implement the Viola-Jones algorithm for object detection using Haar cascades (like openCV's implementation) in C, to detect faces. I writing the C code in a Vivado HLS compatible way, so I can port the the implementation to an FPGA. My…
Human
  • 726
  • 8
  • 27
4
votes
1 answer

Vivado SDK doesn't recognize the functions inside #include "math.h"

I wrote a simple project in Vivado SDK in order to test my HW-platform developed in Vivado. My problem is that the SDK doesn't recognise the sin() function. I've included the "math.h" library without any error, the program recognise the library…
Arturete
  • 133
  • 2
  • 12
3
votes
1 answer

Unable to play HLS m3u8 file with AWS CloudFront Signed Cookies

I am working on a project where I will need to play HLS encrypted video (.m3u8) file. I am using CloudFront and signed cookies to secure the content. I am able to play .m3u8 file without signed cookies but when I use signed cookies then cookies do…
Faisal Shaikh
  • 3,900
  • 5
  • 40
  • 77
3
votes
1 answer

Is function return an array possible in Vivado HLS?

A function like that: int * getRandom( ) { static int r[10]; int i; /* set the seed */ srand( (unsigned)time( NULL ) ); for ( i = 0; i < 10; ++i) { r[i] = rand(); printf( "r[%d] = %d\n", i, r[i]); } return…
Varrian
  • 191
  • 1
  • 1
  • 12
3
votes
1 answer

AXI4 Streaming interface: how to manage Floating Point array in HLS for generating HW accelerators and connect them, safely, in an RTL project?

In the end what I want to do is to use a streaming interface with single precision floating point arrays in Vivado Design Suite to build hardware accelerators. HLS User Guide UG902 shows that is possible to create HW accelerators (starting from C,…
Leos313
  • 5,152
  • 6
  • 40
  • 69
2
votes
1 answer

Vivado HLS design to read FIFO

I am trying to develop a system on FPGA to read data from the outer world (namely a Geiger pulse integrator, but at this point I am emulating it using an Arduino); the data stream is to be stored in a FIFO buffer, which I have implemented using the…
gudise
  • 239
  • 1
  • 9
2
votes
1 answer

Template class with template method id

I am trying to create an identifier for my methods. This identifier is important for my work as it is in fact hardware synthesis. I have the following template class: template class Core{ …
2
votes
1 answer

Logic to build 8x1 Mux Using Vivado HLS (Xilinx)

I want to create 8x1 MUX IP BLOCK through HLS. MUX block should be 8 inputs and single output. Eight input streams :Each input stream data width : 32 bit and output should be single output stream of 32 bit. I tried with below code but in simulation…
Sang015
  • 21
  • 2
2
votes
1 answer

HLS - Array parameter interfaces are different when using a loop

I have the following function with the directive set_directive_interface -mode axis -register -register_mode both "FIR" Result in Vivado HLS: void Func(int A[2], int B[2], int* Result) { int Temp = 0x00; Loop: for(int i = 0x00; i < 0x02;…
Kampi
  • 1,798
  • 18
  • 26
2
votes
2 answers

Custom Functions in C++ Template

If I am using a C++ class with a template parameter of an int like: template class ap_uint { ... } then I understand that I can create specific definitions from this type of certain widths like: typedef ap_uint<72> data_t; However, if I…
dagronlund
  • 1,612
  • 3
  • 13
  • 15
2
votes
1 answer

Vivado HLS Synthesize error

I'm currently trying to do some project on Vivado HLS. However, I got an error as shown in the title during synthesis. However, this error appears: error:** invalid operands to binary expression ('double' and 'datau32' (aka 'ap_axiu<32, 2, 5,…
2
votes
0 answers

Reducing LUT utilization in a Vivado HLS design (RSA cryptosystem using montgomery multiplication)

A question/problem for anyone experienced with Xilinx Vivado HLS and FPGA design: I need help reducing the utilization numbers of a design within the confines of HLS (i.e. can't just redo the design in an HDL). I am targeting the Zedboard (Zynq…
asmvolatile
  • 522
  • 5
  • 22
2
votes
3 answers

AXI stream interfaces in Xilinx system generator IP

I have an example design in system generator for image processing which has one input image and one output image. I would like to send data through AXI stream interface and export it as an IP core to Vivado IP integrator and develop the design…
shashi
  • 43
  • 1
  • 5
2
votes
1 answer

Error: Expression is not assignable C++ struct

I am writing a normal bandwidth kernel in C++ for FPGA, which is reading something from host memory and writing it back to different location in host. I'm using structs, one of whose elements is addresses for input and output buffers. High-level…
user3509540
  • 41
  • 1
  • 7
1
2 3
8 9