Free Running Pipeline - Free Running Pipeline - 2026.1 English - UG1448

Vitis HLS Messaging (UG1448)

Document ID
UG1448
Release Date
2026-06-23
Version
2026.1 English

Description

Warning: [HLS 200-1968] Disabling free running pipeline (frp) architecture on pipeline 'VITIS_LOOP_13_2' in module 'COM_Pipeline_VITIS_LOOP_13_2', because it has read operation(s) whose predicate condition can not be evaluated in the first stage of the pipeline.

Explanation

In this example, FRP cannot be applied because the predicate a[j] < a[j+1] could not be evaluated in the first stage of the pipeline.

Example

void COM(int a[SIZE], hls::stream<int>& b)
{
  int i,j,temp;
  int c;
  for(i = 0; i < SIZE-1; i++)
  {
    for(j = 0; j < SIZE-1-i; j++)
    {
      #pragma HLS pipeline II=1 style=frp
      #pragma HLS latency min=2 max=3
      if(a[j] < a[j+1])
      {
          c = b.read();
          temp = a[j+1] + c;
          a[j+1] = a[j] + c;
          a[j] = temp;
      }
    }
  }
      for(i = 0; i < SIZE; i++)
          printf("%d\n",a[i]);
}