IP Manager

The Efinity® IP Manager is an interactive wizard that helps you customize and generate Efinix® IP cores. The IP Manager performs validation checks on the parameters you set to ensure that your selections are valid. When you generate the IP core, you can optionally generate an example design targeting an Efinix development board and/or a testbench. This wizard is helpful when you use several IP cores, multiple instances of an IP core with different parameters, or the same IP core across different projects.

The IP Manager consists of:
  • IP Catalog—Provides a catalog of IP cores you can select. Open the IP Catalog using the toolbar button or using Tools > Open IP Catalog.
  • IP Configuration—Wizard to customize IP core parameters, select IP core deliverables, review the IP core settings, and generate the custom variation.
  • IP Editor—Helps you manage IP, add IP, and import IP into your project.

Generating Sapphire High-Performance SoC with the IP Manager

Figure 1. Overall Block Diagram of Sapphire High-Performance SoC

The Sapphire High-Performance SoC consists of two (2) parts, the hardened RISC-V block (HRB) and the soft logic block (SLB). The HRB includes a quad-core CPU, caches, memory management, debug module, on-chip RAM, and data traffic management. In contrast, the SLB is formed by soft logic to exercise I/O control, custom ALU, and DMA. In relation, the IP Manager helps to configure the hardened blocks and instantiate the common-use controllers like SPI, I2C, GPIO, and UART. Additionally, the IP manager assists by configuring the required blocks like PLLs and LPDDR4 controllers.

The following steps explain how to customize an IP core with the IP Configuration wizard.
  1. Open the IP Catalog.
  2. Choose an IP core and click Next. The IP Configuration wizard opens.
  3. Enter the module name in the Module Name box.
    Note: The Sapphire High-Performance SoC soft logic block module name is fixed to EfxSapphireHpSoc_slb.
  4. Customize the IP core using the options shown in the wizard. For detailed information on the options, refer to the IP core's user guide or on-line help.
  5. (Optional) In the Deliverables tab, specify whether to generate an IP core example design targeting an Efinix® development board and/or testbench. For SoCs, you can also optionally generate embedded software example code. These options are turned on by default.
  6. (Optional) In the Summary tab, review your selections.
  7. Click Generate to generate the IP core and other selected deliverables.
  8. In the Review configuration generation dialog box, click Generate. The Console in the Summary tab shows the generation status.
    Note: You can disable the Review configuration generation dialog box by turning off the Show Confirmation Box option in the wizard.
  9. When generation finishes, the wizard displays the Generation Success dialog box. Click OK to close the wizard.

The wizard adds the IP to your project and displays it under IP in the Project pane.

Generated RTL Files

The IP Manager generates these files and directories:
  • <module name>_define.vh—Contains the customized parameters.
  • <module name>_tmpl.v—Verilog HDL instantiation template.
  • <module name>_tmpl.vhd—VHDL instantiation template.
  • <module name>.v—IP source code.
  • settings.json—Configuration file.
  • <kit name>_devkit—Has generated RTL, example design, and Efinity® project targeting a specific development board.
Note: Refer to the IP Manager chapter of the Efinity Software User Guide for more information about the Efinity IP Manager.

Generated Software Code

If you choose to output embedded software, the IP Manager saves it into the <project>/embedded_sw/efx_hard_soc directory.
  • bsp—Board specific package.
  • software—Software examples, includes FreeRTOS and baremetal demos.

Instantiating the Hardened RISC-V SoC

The IP manager helps to instantiate the hardened RISC-V block from the Efinity's Interface Designer which includes:
  • Assigning top-level signal name to the block.
  • Instantiating dedicated PLL to the hardened RISC-V block.
  • Instantiating the required GPIO block.
  • Assigning pre-defined pins to GPIO block.

Instantiating the SoC Soft Logic Block

The IP Manager creates these template files in the <project>/ip/<module name> directory:
  • <module name>.v_tmpl.v is the Verilog HDL module.
  • <module name>.v_tmpl.vhd is the VHDL component declaration and instantiation template.
  • EfxSapphireHpSoc_wrapper.v is the wrapper file for soft logic block design.
To use the IP, copy and paste the code from the template file into your design and update the signal names to instantiate the IP.
Important: When you generate the IP, the software automatically adds the module file (<module name>.v) to your project and lists it in the IP folder in the Project pane. Do not add the <module name>.v file manually (for example, by adding it using the Project Editor); otherwise the Efinity® software will issue errors during compilation.