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
*.mem
file generation for Simulation:pa4rtupromgen.exe
takesUPROM.cfg
as 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 (Enable Synthesis check box). > > > clear the
- Import the design source files
(post-synthesis *.vm netlist from synthesis tool):
- Import post-synthesis
*.vm
netlist ( > > ). - 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.