The Abstract Shell design flow is nearly identical to the standard project-based Dynamic Function eXchange design flow. Support is in place for both RTL-based projects that use Partition Definitions to declare Reconfigurable Partitions, as well as the IP integrator solution that leverages Block Design Containers. While the declaration of RPs is done in different ways in these two environments, the synthesis and place and route management is still the same, so the support for Abstract Shells is identical.
The differences between the standard DFX and Abstract Shell flows are limited to the steps where the static design checkpoint is written from the initial (parent) implementation, and where the static design is opened to begin implementation of the second RM (and beyond) for each RP. Changes are seen within the DFX Wizard and the subsequent Design Runs for child instances.
Abstract Shells have two fundamental advantages over standard full-static checkpoints:
- Compile time for new Reconfigurable Modules is reduced for child runs, as Vivado implementation tools do not need to load or consider much of the information contained in the static part of the design.
- Static design information, including licensed IP, is hidden from view in an Abstract Shell, enhancing design security and reducing IP license requirements.
Project mode for Abstract Shells leverages the first benefit but not the second. The entire design is always resident in a DFX project so there is no mechanism to hide any details about the static part of the design.