When is it not possible to pipeline with II=1?

Hey!
What are the typical reasons II=1 can’t be achieved? I’d love to hear how you analyze and resolve these limitations.

Looking forward to your insights!

Hi Chris,

Welcome to HLS academy.

Pipelining loops with II=1 is not possible in few cases where:

  1. There are resource constraint issues such as limited hardware resources (DSPs, memory ports)
  2. There are data dependencies, e.g. when data of one iteration is dependent on the next iteration
  3. Irregular memory access patterns
  4. Multicycle combinational components or long combinational paths