AN 941: Design Block Reuse Tutorial: for Intel® Agilex™ F-Series FPGA Development Board
1.1. Tutorial Overview
Reusing Core Partitions
Core partition reuse allows the Developer to create, preserve, and export a partition for reuse. The Developer exports the core partition as a .qdb, and then a Consumer can reuse that core partition in another project. The core partition can include only core resources, such as LUTs, flip-flops, M20K memory, and DSP blocks. To use this flow, you assign the .qdb to an instance in the Consumer project.
Reusing Root Partitions
Root partition reuse enables you to export a synthesized or final snapshot of the device periphery and associated core logic. To export and reuse periphery elements, you export the root partition. The periphery resources include all the hardened IP in the device periphery (such as general purpose I/O, PLLs, high-speed transceivers, PCIe, and external memory interfaces), as well as associated core logic. The Developer also reserves a region for core logic development by the Consumer. The Developer defines this reserved region with a partition. The Developer defines at least the module's port connections as a black box file.
When you export the synthesized or final partition as a .qdb, the .qdb preserves the results of that compilation stage. When you subsequently reuse that partition in another project, the Compiler reuses the previous compilation results from the .qdb for that partition, thereby leveraging the previous design efforts of the Developer.
Snapshot Reuse Limitations
The Compiler generates a snapshot of compilation results, for each partition, at each stage of compilation. You can preserve and reuse partitions after synthesis or after the final stage of the Fitter. When reusing snapshots in a project targeting a different device in the same family, you can only reuse the Synthesized snapshot, rather than the Final snapshot. The following additional limitations apply to reuse of snapshot across devices within the same family.
Snapshot Reuse Scenario | Result |
---|---|
Import of Final snapshot across devices in same family. | The Fitter issues an error during compilation in the Consumer project. |
Import of Synthesized snapshot across devices in different families | |
Import from or export to a project that targets the AUTO device | The Compiler supports this scenario and issues no error if target device is within the same family. |
Import of the root_partition (device periphery) | The Compiler supports this scenario as long as the imported partition contains no invalid Fitter assignments (such as Logic Lock regions). Invalid Fitter assignments produce unexpected results. |
Import of a core partition that contains portions of device periphery | Attempting to export a core partition that contains periphery elements can result in unexpected behavior. |
Import of a read-only partition | Attempting to import a read-only partition can result in unexpected behavior. |
The tutorial includes the following modules: