The Nested DFX Scripts - 2024.1 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
UG947
Release Date
2024-06-12
Version
2024.1 English

During this lab, after synthesis, you will walk through the Nested DFX flow step-by-step using individual Tcl commands. This lab is designed to show the unique details required for inserting the second layer of reconfigurability and therefore highlights the new steps required to achieve this, but the entire solution can be scripted. Specific sections are grouped into scripts that can be run to compile a subsection of the flow. Explicit names and paths are used in these scripts, but they can certainly be modified for use in new designs. These scripts include:

  • implement_parent_config.tcl: This implements the top-level static design and establishes the first-order Reconfigurable Partition (inst_RP) that will be later subdivided.
  • subdivide_shifters.tcl: This subdivides the first-order Reconfigurable Partition into two second-order shift functions, each partially reconfigurable.
  • subdivide_counters.tcl: This subdivides the first-order Reconfigurable Partition into two second-order count functions, each partially reconfigurable.
  • implement_sub_shifters.tcl: This implements shift_right and shift_left Reconfigurable Modules in the two second-order RPs below inst_RP
  • implement_sub_counters.tcl: This implements count_up and count_down Reconfigurable Modules in the two second-order RPs below inst_RP
  • verify_configurations.tcl: This runs pr_verify on pairs of design checkpoints to confirm compatibility of Reconfigurable Modules contained within
  • generate_all_bitstreams.tcl: This opens checkpoints one-by-one to create all possible partial bitstreams for this overall design
  • run_all.tcl: This runs all scripts above, in order, from synthesis to bitstream generation, to compile the complete tutorial design

The default board is the VCU118, but three other boards are available for selection. The board selection can be made just once within design_settings.tcl each of the implementation scripts will pick up the value, so even if a new Vivado session is launched, the design settings will be understood.