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!

AR# 57876

Vivado HLS 2013.2: how to investigate WARNING: Hls::stream 'hls::stream.XX' is read while empty, or WARNING: Hls::stream 'hls::stream.2' contains leftover data, which may result in RTL simulation hanging.

Description

When using hls::streams, during C-simulation (csim_design) the following warnings may be issued at runtime:

WARNING: Hls::stream 'hls::stream.1' is read while empty, which may result in RTL simulation hanging.
WARNING: Hls::stream 'hls::stream<XX>.2' contains leftover data, which may result in RTL simulation hanging.
What can be done about these warnings and how can they be investigated?

Solution

The warning messages should be investigated and to make this task easier, the streams can be named with the syntax below when the streams are declared. 

This is especially useful when there are multiple streams.

hls::stream<TYPE_OF_STREAM> var_name("my_stream_name");
For example, The previous warning will now look like the following:
WARNING: Hls::stream 'my_stream_name' is read while empty, which may result in RTL simulation hanging.
Users should be able to drive the testbench and/or design to check if data is present before reading and to check the left over data; for example in the testbench:
while(!my_stream.empty()) { /*do something*/ }
Please refer to UG902 for further description of the member functions of the hls::stream class.

Linked Answer Records

Master Answer Records

Answer Number Answer Title Version Found Version Resolved
47431 Xilinx Vivado HLS Solution Center - Design Assistant N/A N/A
AR# 57876
Date Created 10/08/2013
Last Updated 05/01/2014
Status Active
Type Solution Center
Tools
  • Vivado Design Suite
  • Vivado Design Suite - 2013.2