The transaction interval (TI) of dataflow processes heavily influences the throughput of the dataflow region. In fact, for dataflow regions (using the dataflow pragma), the TI of the region in steady-state execution is defined by the maximum TI of its processes. The predicted TI of the processes in Code Analyzer thus allows you to identify the performance bottlenecks in your design: you should accelerate the processes with the highest TI first.
In our example, we investigate computeD() which showed TI = 2051 clock cycles
On the graph, right-click the process, and then select goto source. This brings you to the call site then use CTRL+CLICK to go to definition.
→
→
We can see this behavior: “acc” is always cleared as we enter the i-j double loop nest and is updated only at the end of the t-loop before starting a new iteration. But it is cleared again at the start of a new t-loop iteration, so we can see 2 issues:
Despite being updated, “acc” is never different from zero when it is read, so it has no effects and can be removed from the code.
The t-loop is unnecessary because the array D[][] is just updated 4 times with the same values. We can remove the t-loop as well.
We can rerun c-simulation for the design to confirm it’s still functionally correct.