Configuring Block Design Containers from Top BD  - 2023.2 English

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

Document ID
UG994
Release Date
2023-10-18
Version
2023.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. Please 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