Explanation
FIFOs in dataflow regions that are not controlled by start propagation or use ap_ctrl_none mode can typically require larger FIFOs when either the pipeline is not flushing, or if it is rewound. The latter can happen either because of an explicit user option or because auto-rewind, a performance enhancing optimization which has become the default in the Vitis HLS 2020.1 release, is active.
Particular care must be used when sizing FIFOs in this case, because even designs that were working correctly before 2020.1 version may now deadlock due to insufficient FIFO depths.
The deadlock detection and FIFO sizing capabilities of RTL cosimulation and the Vitis HLS GUI can be used to find the best FIFO sizes for the cases mentioned above.