Using RTL Kernels

In the host application, the RTL kernel is invoked in a similar manner as HLS kernels with a function signature such as:

void mmult(int *a, int *b, int *output)
void mmult(unsigned int length, int *a, int *b, int *output)

This implies that the RTL design must have an execution model similar to that of a software function or kernel: start, execute, and end.

  • It must be capable of starting when called to do so.
  • It must compute all data values.
  • It must return the data and then end the operation.

If the RTL design has a different execution model then logic must be added to ensure that the design can be executed in this manner. The RTL Kernel Wizard provides a flow that allows such changes to be performed.

For more information, see Creating RTL Kernels.