Configuring Block Design Containers from Top BD - 2024.2 English - UG994

Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994)

Document ID
UG994
Release Date
2024-11-13
Version
2024.2 English
You can access a few settings of a BDC by opening up its Customize Block Design Container dialog box. This can be done by double-clicking the BDC in the top-level block design diagram, or right-click the desired BDC and use the Customize Block command. The BDC options are shown in the following figure.
Figure 1. BDC Customize Block Design Container Dialog Box

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.

A project first needs to be converted into a DFX project by selecting Tools > Enable Dynamic Function eXchange to expose DFX features within the Vivado IDE.
Important: This conversion occurs automatically when Generate Block Design is run for a design with a DFX BDC. No warning is given about the one way conversion in this case. You can still set this Tools option directly prior to generating the block design though.

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.

The general recommendation is to leave aperture settings to Auto for both DFX and non-DFX designs.
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.

For example, if in a DFX design (as shown below) there are two RMs with different offsets:
  • 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.

Figure 2. Aperture Example in DFX Mode
Figure 3. Addressing Setting
In this case, two apertures are needed on the S_AXI of the BDC boundary(RP). So, it's recommended for the user to add these apertures manually. For further information regarding the DFX and BDC apertures, refer to Vivado Design Suite User Guide: Dynamic Function eXchange (UG909)

Observe the smartconnect routing during validate_bd with auto and manual apertures.

Figure 4. Validate BD with Auto Apertures
Figure 5. Validate BD with Manual Apertures
.

Addressing Tab of the Block Design Container Customization Dialog Box

The Addressing tab shows a list of interfaces with apertures on the same row. Most interfaces only have one aperture. If an interface has multiple rows, the additional rows will appear below the interface for the apertures.
  • Manual BDC apertures are in black font and are editable.
  • Auto BDC apertures are in gray font and are non-editable.
Tip: If there are multiple manual apertures for one interface, just the line with the interface name has the auto/manual slider.
In non-DFX designs, the auto aperture shows no value (no aperture). If you switch to Manual mode while in non-DFX mode, the initial aperture will display the sum of all variant apertures, which is the same as in DFX mode.
When you click the Show Detailed View button, you can clearly see the address segments in each variant and whether they can fit into the apertures defined by the design. If they cannot fit into the apertures they will be displayed in red. You can manually include all the assignments from all the variants in the aperture list by performing following steps:
  1. Click the button
  2. Select the BDC interface
  3. Assign the address base and range values
Figure 6. Aperture Addition Pop-up

Note: There are set of errors that can be generated while running DFX Design Rule Checks in the IP integrator. These are  common scenarios regarding NoC usage in DFX designs. Additional details and suggested fixes are listed at  NoC DFX DRCs in the section IP integrator: Problems and Solutions in Vivado Design Suite User Guide: Dynamic Function eXchange (UG909)

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.)