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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor hanqiu
Visitor
4,364 Views
Registered: ‎10-01-2016

error using hls stream pragma

Jump to solution

This is part of my code:

hls::stream<in_type> a_stream[N][N];
#pragma HLS STREAM variable=a_stream[0][0] depth=3

 

This is the error message:

CRITICAL WARNING: [HLS 200-70] In file included from /home/hqiu/systolic_gemm_bi/_sds/vhls/systolic_gemm_bi/solution/.autopilot/db/systolic_gemm_bi.pragma.1.cpp:1:
In file included from /home/hqiu/systolic_gemm_bi/systolic_gemm_bi.cpp:1:
/home/hqiu/systolic_gemm_bi/systolic_gemm_bi.cpp:28:19: error: calling a private constructor of class 'hls::stream<ap_uint<32> >'
_ssdm_SpecStream( a_stream[0][0], 0, 3, "");
                  ^
/opt/Xilinx/SDSoC/2016.2/Vivado_HLS/2016.2/common/technology/autopilot/hls_stream.h:91:43: note: declared private here
    inline __attribute__((always_inline)) stream(const stream< __STREAM_T__ >& chn):V(chn.V) {
                                          ^
In file included from /home/hqiu/systolic_gemm_bi/_sds/vhls/systolic_gemm_bi/solution/.autopilot/db/systolic_gemm_bi.pragma.1.cpp:1:
In file included from /home/hqiu/systolic_gemm_bi/systolic_gemm_bi.cpp:1:
/home/hqiu/systolic_gemm_bi/systolic_gemm_bi.cpp:28:19: error: cannot pass object of non-POD type 'hls::stream<in_type>' through variadic function; call will abort at runtime [-Wnon-pod-varargs]
_ssdm_SpecStream( a_stream[0][0], 0, 3, "");
                  ^
Compilation of the preprocessed source 'systolic_gemm_bi.g' failed
    while executing
"source /home/hqiu/systolic_gemm_bi/_sds/vhls/systolic_gemm_bi_run.tcl"
    invoked from within
"hls::main /home/hqiu/systolic_gemm_bi/_sds/vhls/systolic_gemm_bi_run.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel 1 hls::main {*}$args"
    (procedure "hls_proc" line 5)
    invoked from within
"hls_proc $argv"
ERROR: [SDSoC 0-0] Exiting sds++ : Error when calling '/opt/Xilinx/SDSoC/2016.2/Vivado_HLS/2016.2/bin/vivado_hls /home/hqiu/systolic_gemm_bi/_sds/vhls/systolic_gemm_bi_run.tcl'
sds++ log file saved as /home/hqiu/systolic_gemm_bi/_sds/reports/sds_systolic_gemm_bi.log
ERROR: [SDSoC 0-0] Build failed
sds++ completed at Mon Nov 14 22:39:18 CST 2016
Tags (2)
0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
7,966 Views
Registered: ‎06-29-2015

Re: error using hls stream pragma

Jump to solution

Hi hanqiu,

 

As far as I know, you cannot declare an "array of streams" like you are trying to do. You would have to individually declare a separate variable for each, with a separate pragma for each.

 

hls::stream<in_type> a_stream0;
hls::stream<in_type> a_stream1;
... #pragma HLS STREAM variable=a_stream0 depth=3
#pragma HLS STREAM variable=a_stream1 depth=3
...

 

Sam

0 Kudos
1 Reply
Xilinx Employee
Xilinx Employee
7,967 Views
Registered: ‎06-29-2015

Re: error using hls stream pragma

Jump to solution

Hi hanqiu,

 

As far as I know, you cannot declare an "array of streams" like you are trying to do. You would have to individually declare a separate variable for each, with a separate pragma for each.

 

hls::stream<in_type> a_stream0;
hls::stream<in_type> a_stream1;
... #pragma HLS STREAM variable=a_stream0 depth=3
#pragma HLS STREAM variable=a_stream1 depth=3
...

 

Sam

0 Kudos