Start Propagation
The compiler might automatically create a start FIFO to propagate the
ap_start/ap_ready
handshake to an internal process. Such FIFOs
can sometimes be a bottleneck for performance, in which case you can increase the
default size which can be incorrectly estimated by the tool with the following
command:
config_dataflow -start_fifo_depth <value>
If an unbounded slack between producer and consumer is needed, and
internal processes can run forever, fully and safely driven by their inputs or
outputs (FIFOs or PIPOs), these start FIFOs can be removed, at user's risk, locally
for a given dataflow region with the
pragma:
#pragma HLS DATAFLOW disable_start_propagation
Scalar Propagation
The compiler automatically propagates some scalars from C/C++ code through scalar
FIFOs between processes. Such FIFOs can sometimes be a bottleneck for performance or
cause deadlocks, in which case you can set the size (the default value is set to
-fifo_depth
) with the following command:
config_dataflow -scalar_fifo_depth <value>