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!

Showing results for 
Search instead for 
Did you mean: 
Participant jehandad
Registered: ‎06-08-2016

Merging hls::streams outputs from concurrent functions

#pragma HLS PIPELINE II=1 enable_flush

	if(!stream_a.empty() &&
		data_t data_out;
		data_t p  = stream_a.read();
	        data_t r;
		r = stream_b.read();
		data_out.mem1 = p.mem1;
		data_out.mem2 = p.mem2;
		data_out.mem3  = r;


The above code is trying to partially merge two streams together in HLS. To me it is obvious that the initiation interval should be one when pipelined however, Vivado HLS is unable to do the same and returns the following log entry:

WARNING: [SCHED 204-68] Unable to enforce a carried dependency constraint (II = 1, distance = 1)
   between fifo read on port 'data_in_V' and fifo request on port 'data_in_V'.

Any insight would be much appreciated.


stream_a and stream_b and stream_out are hls::stream interfaces.

0 Kudos