Type: Answers

Area: Tools

How can I create a design netlist without including my source design files?


If you want to keep your design files private for security reasons, one option is to use a Quartus® II Exported Partition file (.qxp) to create a post-synthesis or post-fitting netlist without including any source design files. These incremental compilation features require a full Quartus II subscription license (and are not included with the free web edition license). Refer to the Related Solutions below for another alternative and other relation information.

The procedure to send your design as a .qxp file is documented in the section "Using an Exported Partition to Send a Design without Including Source Files" in the Quartus II Incremental Compilation for Hierarchical & Team-Based Design chapter of the Quartus II Handbook, and is included here for convenience.

To export your complete design, or part of your design, to be re-used by someone else, you create a design partition, export it, and then the recipient imports the partition into a new project.  To use this simple aspect of an incremental flow, you do not have to create any other design partitions or add floorplan assignments to your project. For more details about using the incremental compilation commands, refer to the handbook chapter. 

Perform the following steps to export a design block and send it to someone else:

  1. Provide the device family name to the recipient. If you send placement information with the synthesized netlist, also provide the exact device selection so they can set up their project to match.
  2. Create documentation or a sample instantiation that defines the port interface for the design block and provide it to the recipient so he or she can instantiate the block as an empty partition in the top-level design.
    • In Quartus II software versions 7.2 SP3 and earlier, you must send an empty black box module/entity definition that lists the port widths and directions for the design block. Such a file is not needed beginning with version 8.0.
  3. Export the appropriate level of hierarchy into a single .qxp file. If you use the Quartus II GUI, on the Project menu, choose Export Design Partition and select the Partition hierarchy to export.
  4. Select the option to include just the Post-synthesis netlist if you do not need to send placement information. If the recipient wants to reproduce your exact Fitter results, you can select the Post-fit netlist option, and optionally enable Export routing to include routing information as well.
  5. Provide the .qxp file to the recipient. Note that you do not have to send any of your design source code.

As the recipient of a .qxp file, incorporate the design block into a top-level design by performing the following steps:

  1. Create a Quartus II project for the top-level design and ensure that your project targets the same device (or at least the same device family if the .qxp file does not include placement information), as specified by the sender.
  2. Instantiate the design block using the port information provided.
  3. On the Processing menu, point to Start and click Perform Analysis & Elaboration to identify the design hierarchy.
  4. Create a design partition for the design block instance. Right-click the instance name in the Project Navigator, and choose Set as design partition.
  5. Import the .qxp file for the appropriate partition hierarchy. If you use the Quartus II GUI, on the Project menu, choose Import Design Partition, select the partition for the design block, and browse to the .qxp file provided.
  6. If the sender provided fitter information, you can control whether to preserve the imported netlist only, placement, or placement and routing, with the Fitter Preservation Level. On the Assignments menu, choose Design Partitions Window, and adjust the settings as required.

You now have a complete design that uses the original design netlist but does not include the source design files.  The project includes imported assignments and any post-compilation information that was included in the .qxp file.