17.1.1 Overview

While Libero SoC provides a fully integrated end-to-end design environment to develop SoC and FPGA designs, it also provides the flexibility to run synthesis and simulation with third-party tools outside the Libero SoC environment. However, some design steps must remain within the Libero SoC environment.

The following table lists the major steps in the FPGA design flow and indicates the steps for which Libero SoC must be used.
Table 17-2. FPGA Design Flow
Design Flow StepMust Use LiberoDescription
Design Entry: HDLNoUse third-party HDL editor/checker tool outside Libero® SoC if desired.
Design Entry: ConfiguratorsYesCreate first Libero project for IP catalog core component generation.
Automatic PDC/SDC constraint generationNo

Derived constraints need all HDL files and a derive_constraints utility when performed outside of Libero SoC, as described in Appendix C—Derive Constraints.

SimulationNoUse third-party tool outside Libero SoC, if

desired. Requires download of pre-compiled simulation libraries for target device, target simulator, and target Libero version used for backend implementation.

SynthesisNoUse third-party tool outside Libero SoC if desired.
Design Implementation: Manage Constraints, Compile Netlist, Place-and-Route (see Overview)YesCreate second Libero project for the backend implementation.
Timing and Power VerificationYesStay in second Libero project.
Configure Design Initialization Data and MemoriesYesUse this tool to manage different types of memories and design initialization in the device. Stay in second project.
Programming File GenerationYesStay in second project.
Important: You must download precompiled libraries available at the Pre-Compiled Simulation Libraries page to use a third-party simulator.
In a pure Fabric FPGA flow, enter your design using HDL or schematic entry and pass that directly to the synthesis tools. The flow is still supported. PolarFire and PolarFire SoC FPGAs have significant proprietary hard IP blocks requiring the use of configuration cores (SgCores) from the Libero SoC IP catalog. Special handling is required for any blocks that comprise SoC functionality:
  • PolarFire
    • PF_UPROM
    • PF_SYSTEM_SERVICES
    • PF_CCC
    • PF CLK DIV
    • PF_CRYPTO
    • PF_DRI
    • PF_INIT_MONITOR
    • PF_NGMUX
    • PF_OSC
    • RAMs (TPSRAM, DPSRAM, URAM)
    • PF_SRAM_AHBL_AXI
    • PF_XCVR_ERM
    • PF_XCVR_REF_CLK
    • PF_TX_PLL
    • PF_PCIE
    • PF_IO
    • PF_IOD_CDR
    • PF_IOD_CDR_CCC
    • PF_IOD_GENERIC_RX
    • PF_IOD_GENERIC_TX
    • PF_IOD_GENERIC_TX_CCC
    • PF_RGMII_TO_GMII
    • PF_IOD_OCTAL_DDR
    • PF_DDR3
    • PF_DDR4
    • PF_LPDDR3
    • PF_QDR
    • PF_CORESMARTBERT
    • PF_TAMPER
    • PF_TVS, and so on.

    In addition to the preceding listed SgCores, there are many DirectCore soft IPs available for PolarFire and PolarFire SoC device families in the Libero SoC Catalog that use the FPGA fabric resources.

    For design entry, if you use any one of the preceding components, you must use Libero SoC for part of the design entry (Component Configuration), but you can continue the rest of your Design Entry (HDL entry, and so on) outside of Libero. To manage the FPGA design flow outside of Libero, follow the steps provided in the rest of this guide.