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]);
}
}