For designs that has the size of the output window of a kernel, different than the size of the input window of the next kernel, AI Engine compiler performs an automatic multi-rate analysis for asynchronous window connections.
Note: For more information on multi-rate processing for
synchronous window connections, refer to Synchronous Window Connection for Multi-Rate Processing.
This automatic multi-rate analysis is enabled by default in the
aiecompiler
. You can also set the repetition count for
these kernels in the graph and they take precedence over the values which are
automatically inferred by the aiecompiler
.
async_repetition(kernel0.out[0]) = 3;
async_repetition(kernel1.in[0]) = 2;
The --disable-multirate=true
aiecompiler
option can be used to disable the automatic
multi-rate analysis. If this option is set, the entire design must be a single rate
design. The aiecompiler
will issue an error if the output window of a
kernel has a different size compared to the input window size of the following
kernel.
Note: Each kernel has a user defined
runtime<ratio>
in the graph. If the repetition_count
of the kernel is more than one, as
determined by the compiler or defined by the user, the real run-time ratio that is
taken into account for kernel placement is: runtime<ratio> x repetition_count
. This can change the placement
of the kernels drastically. The run-time ratio as determined by the aiecompiler
is reported in the aiecompiler
log file when options --log-level=5
and --verbose=true
are
set.