Quartus® Prime Pro Edition User Guide: Design Compilation

ID 683236
Date 9/30/2024
Public
Document Table of Contents

2.3.1. Using Precompiled Component Generation

Precompiled Component Generation is an optional sub-process of the Analysis & Elaboration stage of compilation. When you enable this sub-process, Precompiled Component Generation partially synthesizes IP components in your design, and stores the compilation results in a project subdirectory called ip_cache. You can use the stored results to reduce synthesis time for those IP in subsequent synthesis runs. Additionally, you can use the stored results created from different projects by you or other developers. Stored results that are accessible for different developers, projects, and machines, are known as shared IP caches.

Leverage Shared IP Caches

Shared IP caches are not necessarily tied to any specific Quartus Prime project. This fact allows you to store and use the partially synthesized IPs across many projects, or many instances of a project on different machines. You can specify multiple shared caches. For multiple shared caches, you must specify the read-order and whether they are read-only or read-write. Any IP that you use from a shared cache copies to the project IP cache during Precompiled Component Generation. New, partially synthesized IPs that you generate locally are copied to the first writeable cache in the list.

The pre-synthesized IP should be synthesized with the same Quartus version as the main project importing it

Advantages of Precompiled Component Generation

  • Each unique IP generates only once and is cached. Unless you modify any of the IP in your design, any subsequent synthesis run does not perform Precompiled Component Generation.
  • If you modify any IP in the design, Precompiled Component Generation performs only on the modified IP.
  • Precompiled Component Generation occurs in parallel for each IP.
  • Synthesis time savings scales with the proportion of the design that is IP.

Precompiled Component Generation does the following:

  1. Partially synthesizes IP components in your design.
  2. Generates and stores IP synthesis results in your project's ip_cache directory and in any writable, shared IP cache that you specify.
    Note: It is best to create any shared IP caches in the parent directory.
  3. Reuses the cached IP components in subsequent synthesis runs.
Figure 147. Precompiled Component Generation Flow