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
1
vote
1 answer

cosimulation using VIVADO HLS

Xilinx System generator can be used for a cosimulation between the original MATLAB reference model and the actual HW board. Can we follow a similar procedure for a cosimulation between the original C++ reference model (before datatype and algorithm…
Cindy
  • 163
  • 2
  • 9
1
vote
1 answer

passing array of pointers to function in Vivado HLS (SDSoC 2018)

I am working on accelerating a C++ function using SDSoC 2018.3 Vivado HLS. This function simply takes an array of pointers (allocated in the PS using sds_alloc). Then, it loops over this array, extracts each element of it (which is an address to a…
mnabil
  • 695
  • 1
  • 5
  • 19
1
vote
0 answers

Vivado HLS RTL/Cosimulation Fail

I have problem in Vivado HLS I'm developing an ipcore that the input is AXI-Stream and the output is AXI-Stream too. There is no problem in C Syntheseis, and also it works well in C Simulation. But RTL/Cosimulation is failing. My Top Function is…
1
vote
1 answer

data transfer from PL(fpga) to the PC via ethernet

I work with Zedboard and vivado v2017.3. I have a custom IP in the PL part of zynq generating 32 bit values and stores them in one of the registers, say slv_reg0 (address : 0x43c00000). In the PS part I read this register and I can print it in the…
upasana
  • 57
  • 5
1
vote
2 answers

Detailed timing information of how much latency each sub-component takes (SDAccel & Vivado HLS)

I'm currently working on an FPGA design using SDaccel (and Vivado HLS). My design have several sub-components, and the latency (clock cycles) of each sub-component would depend on the input data at runtime (Therefore Vivado HLS analysis window would…
1
vote
0 answers

How to write back to source image in Vivado HLS?

I am trying to implement a connected component labelling algorithm in Vivado HLS. Here is the link to the algorithm I am using: two pass connected component labelling algorithm. I am using a 3x3 window in Vivado HLS and send that window to my…
A.k.
  • 192
  • 1
  • 22
1
vote
1 answer

Why am I not able to write to/read from custom AXI lite peripheral's registers

I am working with a Zynq board where a custom AXI 4 lite slave peripheral is created and then added from the IP Repository. Then these blocks have been successfully connected with Run Connection Automation. Then bit stream was generated…
atnd
  • 11
  • 1
  • 7
1
vote
2 answers

How to use a fixed point sin function in Vivado HLS

I am calculating the intersection point of two lines given in the polar coordinate system: typedef ap_fixed<16,3,AP_RND> t_lines_angle; typedef ap_fixed<16,14,AP_RND> t_lines_rho; bool get_intersection( hls::Polar_< t_lines_angle,…
Jens
  • 2,592
  • 2
  • 21
  • 41
1
vote
1 answer

VIVADO HLS:How to declare arbitrary precision (or bit-accurate) integer data types for 2D array?

I am working with larger size matrix in Vivado HLS. As normal "int", its occupies lot of memory space and slow down the hardware speed. So, for better optimization and performance, arbitrary precision (or bit-accurate) integer data types best. I…
4am
  • 105
  • 1
  • 3
  • 11
1
vote
2 answers

Vivado HLS 2017.3 csim errors on Ubuntu 17.10

Vivado HLS failed to compile a c test bench code on kubuntu 17.10, the same project compiles perfectly under Windows 10. On Kubuntu and Windows the solutions synthesize, only the sim fails on ubuntu. from the log file i think that vivado its mixing…
ECO
  • 359
  • 2
  • 13
1
vote
1 answer

Sending JPEG image into AXI4 stream and reading it back?

I'm doing an image processing project on Zedboard Zynq evaluation board, using the FPGA built on it. I have written the image processing block using HLS and created the IP with both input and output as AXI4 streams with width 8. How do I read a…
nik_97
  • 354
  • 2
  • 12
1
vote
0 answers

AXIS: sending image RGB 24bit on AXI

I am doing a project on my university where I have to make some algorithm which needs at least two frames of video, but I cannot use any camera - I can only storage somewhere my images. I want to do some image processing in vivado HLS on one pixel…
1
vote
1 answer

Latency and Initiation interval in HLS

I have a design in SDAccel that shows the latency as 33000 cycles and initiation interval of 8. What does this mean? Does it mean that the output is ready after 33000 cycles? I checked the actual time it took to output (profile summary report) and…
UttamKumar
  • 11
  • 4
1
vote
0 answers

Issues using custom HLS block under Linux, despite a validated bare-metal design

I have written an RSA encryption block in HLS (Using Vivado 2017.2), and am trying to exercise it under Linux on the zedboard (Zynq 7020). I have verified that the hardware works, and have a fully-functioning bare-metal software interface to the…
asmvolatile
  • 522
  • 5
  • 22
1
vote
1 answer

C language for VIVADO HLS-how to store and generate Pseudo_random binary sequences into memcpy

Through overall search in Stack Overflow. I got a hint :For binary data using memcpy for (int i=0; i < N; ++i) memcpy(buffer + i * byte_sequence_length, byte_sequence, byte_sequence_length); But even though, the code is not working,…
Thaus
  • 23
  • 5
1 2
3
8 9