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: 
Newbie mfoster28
Registered: ‎09-14-2017

Reported Synthesis Interval Differs from Simulation Interval

My top-level function contains several consecutive 'for' loops. Each loop is pipelined, and the DATAFLOW directive is used to maximize the throughput.  After synthesis, the following latency and interval were reported for the top-level function:



When I run C/RTL Co-simulation, I get the following:


The interval is equal to the latency instead of the interval value reported after synthesis.


I looked at the waveforms from the C/RTL Co-simulation.  All of the data flow processes (instances) appear to be working as expected except for the last one (Loop_final_product_I_U0).  Its ap_idle output is never asserted even when its internal and external signals are not changing.  I do not know if this is normal.  This process is not listed as the slowest one in the synthesis report (II = 27), but it seems to be holding up the entire data flow pipeline (All the other processes are idle when the last stage is active).


I have attached a waveform which shows the top-level control signals followed by the control signals for each data flow process, in order, from top to bottom.  For the last data flow process, I have included its first signal to change.  None of its other signals change after the top-level ap_done from the previous test case is asserted.


What could I have done to make the actual interval not match the interval given by the synthesis report? (I have tried this experiment in both Vivado HLS 2016.4 and 2017.2 and got the same result.)



0 Kudos
1 Reply
Mentor xilinxacct
Registered: ‎10-23-2018

Re: Reported Synthesis Interval Differs from Simulation Interval


I 'think' the synthesis report is the model (predicted) timing estimates, whereas the co-simulation numbers are the 'measured' accumulation of the timing values... Either way, I have been told the not worry about the 'specific' timings of any of the time reports in HLS, as they are out-of-context... So, the more real numbers are post implementation.

Hope that helps.

Please mark as solution accepted to close the issue. Kudos also welcomed. :-)

0 Kudos