C-Callable IP Libraries

This section describes how to create a C-callable library for IP blocks written in a hardware description language like VHDL or Verilog. User applications can statically link with such libraries using the SDSoC™ system compilers, and the IP blocks will be instantiated into the generated hardware system. A C-callable library can also provide sds++-compiled applications access to IP blocks within a platform (see Creating a Library).

Figure: Create and Use a C-Callable Library

The following elements are part of an SDSoC C-callable IP library

  • Header File
    • Header file containing function prototypes for all software entry points in the library

  • Static Library

    • The sdslib utility takes this information and creates a C-callable IP library.
    • The sdx_pack utility provides a command-line interface to create a C-callable IP library without requiring separate meta-data files.
  • IP Core
    • Vivado-packaged IP core in the form of a component.xml and IP core container file (XCIC). See the Vivado Design Suite User Guide: Creating and Packaging Custom IP (UG1118) for more information.

  • Function Definition
    • fcnmap.xml containing mappings from all hardware function arguments onto IP ports
  • IP Configuration Parameters
    • XML meta-data files
    • params.xml containing any non-default IP configuration parameter settings