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-1973] Disabling free running pipeline (frp) architecture on pipeline 'LoopA' in module 'mat_mul', because it contains non datapath-only submodule(s): mul.

Explanation

Calls to other functions from a free-running pipelined loop are not supported.

Consider manually inline or using the pragma inline recursive to inline all sub-module pipelines into the pipeline body, and remove all inline off pragmas in the called function(s) to ensure all calls are inlined.

Example

void mul (
  ap_int<16> &out,
  ap_int<16> in0,
  ap_int<16> in1)
{
#pragma HLS inline off
  out = in0 * in1;
}

void mat_mul (
  ap_int<16> input0[100],
  ap_int<16> input1[100],
  ap_int<16> output[100]
  )
{
  LoopA:
  for(int i=0; i < 100; i++)
{
#pragma HLS PIPELINE II=1 style=frp
    mul(output[i],input0[i],input1[i]);
  }
}