Free Running Pipeline
Explanation
There are multiple ways to control the realization of free running pipeline (frp) style architecture on specific pipelines or globally on all pipelines, but not all pipelines can be frp. There are several restrictions that lead to the disabling of the frp style on pipelines.
See the following table for definitions of all pipeline styles.
Name | Stalled Pipeline (HLS default) | Free running Pipeline | Traditional flushable pipeline |
---|---|---|---|
Pragma/Directive |
#HLS pragma pipeline style=stp set_directive_pipeline -style stp |
#HLS pragma pipeline style=frp set_directive_pipeline -style frp |
#HLS pragma pipeline style=flp set_directive_pipeline -style flp Deprecated: #HLS pragma pipeline enable_flush |
Global default | config_compile -pipeline_style stp (default) |
config_compile -pipeline_style frp config_compile -frp_max_fanout $value (default is 2000) |
N/A |
Description | Stalling architecture: runs only when input data is available otherwise stalls | Flushable frequency-optimized architecture: runs even when input data is not available | Traditional flushable architecture. |
Advantages |
|
|
Flushable |
Disadvantages |
|
|
|
Use Cases |
|
|
When flushable is required for better performance or avoiding deadlock |