As explained earlier, the directory Utils contains several utilities that aid in analyzing the design output. First, the output value has to be validated. Because the input is a set of Dirac impulses, the impulse response of the filter must be recognized throughout the waveform. Navigate to aiesimulator_output/data and look at the Output_0.txt. You can see that you have two complex outputs per line, which is prepended with a time stamp.
You can use the following command to display the reconstructed signals: ProcessAIEOutput Output_0.txt.
The top graph reflects the outputs where the abscissa is at the time at which this output occurred. It is much easier to look at the bottom graph where the samples are displayed one after the other. The filter impulse can be easily recognized on this sub-graph. The file out.txt contains three columns: (timestamp, real part, and imaginary part) of the output samples.
After simulation the simulator displays the raw throughput at the input and output port:
--------------------------------------------------------------------------------
| Intf Type | Port Name | Type | Throughput(MBps) |
--------------------------------------------------------------------------------
| plio | 64 bits in G1 | IN | 1189.923578 |
| | 64 bits out G1 | OUT | 1173.235564 |
Because the values are in bytes per second, divide by 4 to convert to samples per second (cint16 uses 2 bytes for the real part and 2 bytes for the imaginary part). This calculation yields an estimated throughput of 292.17 Msps.
You can compute the throughput from the timeline, but the Utils directory contains a tool to compute it from the output files. In the same directory (aiesimulator_output/data), type StreamThroughput Output_0.txt:
Output_0.txt --> 293.24 Msps
-----------------------
Total Throughput --> 293.24 Msps
Each of the four output samples need 16 mul4/mac4 instructions, so the maximum throughput attainable is 312.5 MSPS. This is in line with what was achieved.