- Standard DFX
- Abstract Shell
- Both
Standard DFX
Clicking Standard DFX uses the basic DFX project flow that uses a full static design image for each configuration run. Config_1 is the parent run, and all remaining configurations are child runs dependent on that parent run. In the following figure, config_2 and config_3 use the full locked static design checkpoint from config_1 as the starting point for implementing new Reconfigurable Modules.
Abstract Shell
Selecting Abstract Shell creates a similar looking result, and the parent configuration is the same. However, each of the child runs uses an Abstract Shell for a specific target Reconfigurable Partition.
Both
Selecting Both allows either approach to be used for child runs. Both shell types are generated at the end of the parent implementation run so either can be selected for child runs under that parent. By default, the Abstract Shell approach is used.
As you can see in these images, the option that tracks the difference between these approaches is the DFX Mode option. The choice made here determines the design checkpoints written out at the end of the parent configuration run. The parent run always creates a full design image containing the static and dynamic parts of the design (one RM per RP). The difference is which locked static shells are created for child runs.
- DFX Mode = STANDARD
- A single checkpoint containing the entire static design, with a black box for each Reconfigurable Partition and all placement and routing locked, is created.
- DFX Mode = ABSTRACT SHELL
- One or more checkpoints each containing the abstract shell for one Reconfigurable Partition are created. Abstract Shells also have a black box for the RP and locked placement and routing for the static design, but the amount of static information is stripped down to a bare minimum to provide context for implementation of a new RM.
- DFX Mode = BOTH
- Both flows are available for child runs. Users can select the full static design to implement new Reconfigurable Modules for all Reconfigurable Partitions in the design, or Abstract Shells can be used to implement RMs for a specific RP.
The other option that is used only in the Abstract Shell flow is the RM Instance option. This declares which Reconfigurable Partition is the target for a particular child run, along with which Reconfigurable Module is to be implemented in that RP.