Freeze the Boundary of this Container
This option prevents changes that modify the boundary of a BDC. The
boundary includes BDC ports, interfaces, port maps, port widths, and parameters.
With this option selected, nothing on the BDC boundary will change. All interfaces
will have the port maps preserved, port widths will not change, and no parameters
(with the exception of clk_domain
property) will
propagate from the top-level block design to the BDC and vice-versa.
Enable Dynamic Function eXchange on this container
BDCs enable an IP-centric and project-based environment in IP integrator to create a DFX design in Vivado. A BDC represents the Reconfigurable Partition (RP), Enable Dynamic Function eXchange on this container option converts a BDC into an RP. Once the BDC is converted, the icon on BDC changes to show a DFX label.
Multiple variants as Reconfigurable Modules (RM) can be added to the BDC for the RP instance. It is critical that the port list for each RM for a given RP is identical, even if not all of the ports are used by each RM.
The list of common scenarios regarding NoC INI usage in DFX designs and additional details with suggested fixes are listed in Vivado Design Suite User Guide: Dynamic Function eXchange (UG909).
Specify BDC variants for synthesis and/or simulation
You can specify different sources for a Block Design Container. Different sources can be viewed as variants of a BDC. Variants of a BDC can differ in the IP blocks within the same defined boundary of the BDC. Once a variant source block design is added, you can select the active variant among these sources for the top-level BD. This action will update the BDC in real-time to show the contents of the new active variant. In addition, you can specify different sources used for BDC synthesis and simulation. Refer to the Synthesis sources and Simulation sources in Figure 1. Click the + to add the variants of BDC.BDC Apertures
An aperture is a range that restricts or bounds the address assignment. Address assignments must fit within apertures on the addressing path. Normally you only specify assignments and not apertures. However, BDC apertures are used in DFX or non-DFX designs to configure the SmartConnect and NoC blocks as if it were an address assignment. Hence BDC apertures cannot overlap (within the same network) or with other assignments. Changing BDC apertures for a design causes a SmartConnect and/or NoC to re-generate.
- Auto
- Indicates that is not entered by the user and it is auto-calculated to cover the sum of RM address assignments. A BDC auto-aperture does not restrict assignments, but instead it grows or shrinks based on the assignments. Auto apertures are not saved on disk, and are always calculated from assignments. They cannot be edited by the user.
- Manual
- Indicates that it was entered by the user, and it restricts address assignment. Manual apertures are saved in the BD file.
In non-DFX designs, the Auto setting carries the same values for both address assignment (of the active variant) and aperture. If desired, you can still override and specify manual values. In non-DFX designs, the SmartConnect or NoC blocks do not need to cover each variant.
In DFX designs, the tool must examine at all RM variants to calculate the aperture values because the address assignments might be different for each RM (variant) in RP BDC. So all RMs must have boundary addressing that fits into the TopBD. This means that all Masters and/or Slaves connected to the boundary of each RM must be addressable by connected Masters/Slaves in the TopBD. Failure to do so might result in issues in downstream flows. Smartconnect and NoC blocks connected to the boundary of the BDC (in the static) will always elaborate with the boundary apertures of a DFX block.
- RM1 with a 0x0 1M assignment
- RM2 with an 0xC 4M assignment
Then, the SmartConnect must be configured to decode both the addresses, even if the active variant RM1 has only assigned 1M of 0x0. This is performed by adding an aperture at the BDC boundary.
Observe the smartconnect routing during validate_bd with auto and manual apertures.
Addressing Tab of the Block Design Container Customization Dialog Box
- Manual BDC apertures are in black font and are editable.
- Auto BDC apertures are in gray font and are non-editable.
- Click the button
- Select the BDC interface
- Assign the address base and range values
Recommendations for DFX Designs with Multiple RMs
Always use manual apertures when using DFX to ensure all the RMs addressing is fits in TopBD. Else, AMD Vivado™ gives a warning.
When designing your system in IP integrator, always use RM with the maximum addressing specifications (Number of assignments, number of Masters/Slaves, etc) as the active variant. This helps the IP integrator to formalize addressing for all other RMs using this RM as the reference.
Make every RM active in the context of the top and re-assign (change) addressing to make the RM fit into the top. Manual apertures would guide the tool on how to change the RM addresses.
Apertures overlaps on interfaces passing though same network are not allowed. Smartconnects and NoCs connected to these interfaces would fail to elaborate.
Save the block design prior to switching the source BD to ensure any addressing edits are not lost. A DRC will be seen when an RM contains only a pass through bridge IP (for example NoC, SmartConnect, etc.)
You can see a DRC when an RM contains only a pass through bridge IP (for example, NoC, SmartConnect, etc.)