17.1.1.3 Custom Flow
(Ask a Question)The following figure shows:
- Libero SoC can be integrated as a part of the larger FPGA design flow with the third-party synthesis and simulation tools outside the Libero SoC environment.
- Various steps involved in the flow, starting from design creation and stitching all the way to programming the device.
- The data exchange (inputs and outputs) that must occur at each design flow step.
Tip:
SNVM.cfg,UPROM.cfg*.memfile generation for Simulation:pa4rtupromgen.exetakesUPROM.cfgas input and generatesUPROM.mem.
The following are the steps in the custom flow:
- Component configuration and
generation:
- Create a first Libero project (to serve as a Reference Project).
- Select the Core from the
Catalog. Double click the core to give it a component name and configure
the component.
This automatically exports component data and files. A Component Manifests is also generated. See Component Manifests for details. For more details, see Component Configuration.
- Complete your RTL design outside
of Libero:
- Instantiate the component HDL files.
- The location of the HDL files is listed in the Component Manifests files.
- Generate SDC constraints for the
components. Use Derive Constraints utility to generate the timing constraint
file(SDC) based on:
- Component HDL files
- Component SDC files
- User HDL files
For more details, see Appendix C—Derive Constraints.
- Synthesis tool/simulation
tool:
- Get HDL files, stimulus files, and component data from the specific locations as noted in the Component Manifests.
- Synthesize and simulate the design with third-party tools outside Libero SoC.
- Create your second (Implementation) Libero Project.
- Remove synthesis from the design flow tool chain ( > > > clear the Enable Synthesis check box).
- Import the design source files
(post-synthesis *.vm netlist from synthesis tool):
- Import post-synthesis
*.vmnetlist (>> ). - Component metadata *.cfg files for uPROM and/or sNVM.
- Import post-synthesis
- Import any Libero SoC block component files. The block files must be in the *.cxz file format. For more information on how to create a block, see PolarFire Block Flow User Guide .
- Import the design constraints:
- Import I/O constraint files ( > > ).
- Import floorplanning *.pdc files ( > > ).
- Import *.sdc timing constraint files ( > >). Import the SDC file generated through Derive Constraint tool.
- Import *.ndc constraint files ( > > ), if any.
- Constraint file and tool
association
- In the Constraint Manager, associate the *.pdc files to place and route, the *.sdc files to place and route and timing verifications, and the *.ndc files to Compile Netlist.
- Complete design implementation
- Place and route, verify timing and power, configure design initialization data and memories, and programming file generation.
- Validate the design
- Validate the design on FPGA and debug as necessary using the design tools provided with the Libero SoC design suite.
