IP Core

An HDL IP core for a C-callable library must be packaged using the Vivado® tools. This IP core can be located in the Vivado tools IP repository or in any other location. This IP core will be encapsulated into the library by sdx_pack, and when the library is used, the corresponding IP core is instantiated in the hardware system.

You must package the IP for the Vivado Design Suite as described in the Vivado Design Suite User Guide: Designing with IP (UG896) and Vivado Design Suite User Guide: Creating and Packaging Custom IP (UG1118). The Vivado IP Packager tool creates a directory structure for the HDL and other source files, and an IP Definition file (component.xml) that conforms to the IEEE-1685 IP-XACT standard. In addition, the packager creates an archive zip file that contains the directory and its contents required by the Vivado Design Suite.

The IP can export AXI4, AXI4-Lite, and AXI4 Stream interfaces. The IP control register must exist at address offset 0x0, and can support two different task protocols:
  1. 'none' - in this mode, the core is assumed to run continuously upon power up, with all data synchronized through AXI4 stream interfaces or through asynchronous read or writes to memory-mapped registers using an axilite bus.
  2. 'axilite' - in this mode, the control register must conform to the following specification, which coincides with the axilite control interface for an IP generated by Vivado HLS.
The control signals are generally self-explanatory. The ap_start signal initiates the IP execution, ap_done indicates IP task completion, and ap_ready indicates that the IP is can be started. For more details, see the Vivado HLS documentation for the ap_ctrl_hs bus definition.
// 0x00 : Control signals
// bit 0 - ap_start (Read/Write/COH)
// bit 1 - ap_done (Read/COR)
// bit 2 - ap_idle (Read)
// bit 3 - ap_ready (Read)
// bit 7 - auto_restart (Read/Write)
// others - reserved
// (COR = Clear on Read, COH = Clear on Handshake)
IMPORTANT!: For details on how to integrate HDL IP into the Vivado Design Suite, see Vivado Design Suite User Guide: Creating and Packaging Custom IP (UG1118).