Quartus® Prime Pro Edition User Guide: Block-Based Design

ID 683247
Date 11/07/2023
Public
Document Table of Contents

1.7.1. Creating a Top-Level Project for a Team-Based Design

In team-based designs that reuse design blocks, all team members ideally work within the same top-level project framework. Using copies of the same project among team members ensures that everyone has the same settings and constraints that their partition requires.

This method helps the team to integrate the partitions into the top-level design. If some Developers do not have access to the top-level project framework, the team lead must provide information about the project and constraints to those Developers.

The following steps describe preparing a top-level project that enables other Developers to provide optimized lower-level design partitions. The top-level project specifies the top-level entity, and then instantiates other design entities that other Developers optimize in a separate Quartus® Prime project.

  1. Set up the top-level project and add source files. You can represent incomplete sections of the design by adding black box files, as Step 3: Developer: Create a Black Box File describes.
  2. Define design partitions for any instance that you want to maintain as a separate Quartus® Prime project, as Creating Design Partitions describes.
  3. Define an empty partition for each design partition with unknown or incomplete definition.
  4. Create a Logic Lock region constraint for each design block that you plan to integrate as a separate Quartus® Prime project. This physical partitioning of the device allows multiple team members to design independently without placement conflicts, as Step 2: Developer: Define a Logic Lock Region describes.
  5. To run full compilation, click Processing > Start Compilation.
  6. Use one of the following methods to provide the top-level project information to design Developers:
    • If Developers have access to the top-level project framework, the team lead includes all settings and constraints. This framework may include clocks, PLLs, and other periphery interface logic that the Developer requires to develop their partition. If Developers are part of the same design environment, they can check out a copy of the project files they require from the same source control system. This is the best method for sharing a set of project files. Otherwise, the team lead provides a copy of the top-level project (the design and corresponding .qsf assignments), so that each Developer creates their partition within the same project framework.
    • If Developers do not have access to the top-level project framework, the team lead provides a Tcl script or other specifications to create a separate Quartus® Prime project that matches the top-level. The team lead also adds logic around the design block for export, so that the partition is consistent with the key characteristics of the top-level design environment. For example, the team lead can include a top-level PLL in the project, outside of the partition for export, so that Developers can optimize the design with information about the clocks and PLL parameters. This technique provides more accurate timing requirements. Export the partition for the top-level design, without exporting any auxiliary components that you instantiate outside the partition you are exporting.