As explained earlier, the directory Utils contains a number of utilities that help in analyzing the design output. First, the output value has to be validated. The input being a set of Dirac impulses, the impulse response of the filter should 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 |
As this is expressed in bytes per second this must be divided by 4 to get it in samples per second (cint16 is encoded with 2 bytes for the real part and 2 bytes for the imaginary part). This makes an estimated throughput of 292.17 Msps.
The throughput can be computed from the timeline, but a tool has been created for you in the Utils directory 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 four output samples need 16 mul4/mac4 instructions, so the maximum throughput attainable is 312.5 Msps, which is in line with what was achieved.