Step 7: Implementing the Second Configuration - 2021.2 English

Vivado Design Suite Tutorial: Dynamic Function eXchange (UG947)

Document ID
UG947
Release Date
2022-04-18
Version
2021.2 English

Now that the static design result is established and locked, and you can use it as context for implementing further Reconfigurable Modules.

Implementing the Design

  1. Create a new in-memory design by issuing the following command in the Tcl Console:
    create_project -in_memory -part $part
  2. Load the static design by issuing the following command:
    add_files ./Checkpoint/static_route_design.dcp
  3. Load the second two synthesis checkpoints for the shift and count functions by issuing these commands:
    add_file ./Synth/shift_left/shift_synth.dcp
    set_property SCOPED_TO_CELLS {inst_shift} [get_files ./Synth/shift_left/shift_synth.dcp]
    add_file ./Synth/count_down/count_synth.dcp
    set_property SCOPED_TO_CELLS {inst_count} [get_files ./Synth/count_down/count_synth.dcp]
  4. Link the entire design together using the link_design command:
    link_design -mode default -reconfig_partitions {inst_shift inst_count} -part $part -top top

    At this point, a full configuration is loaded. This time, however, the static design is routed and locked, and the reconfigurable logic is still just a netlist. Place and route from here only applies to the RM logic.

  5. Optimize, place and route the new RMs in the context of static by issuing these commands:
    opt_design
    place_design 
    route_design

    The design is again fully implemented, now with the new Reconfigurable Module variants. The routing is a mix of dashed (locked) and solid (new) routing segments, as shown below.

Figure 1. Second Configuration Routed, Showing Locked and New Routes

Saving the Results

  1. Save the full design checkpoint and report files by issuing these commands:
    write_checkpoint -force Implement/Config_shift_left_count_down_import/top_route_design.dcp
    report_utilization -file Implement/Config_shift_left_count_down_import/top_utilization.rpt
    report_timing_summary -file Implement/Config_shift_left_count_down_import/top_timing_summary.rpt
    
  2. [Optional] Save checkpoints for each of the Reconfigurable Modules by issuing these two commands:
    write_checkpoint -force -cell inst_shift Checkpoint/shift_left_route_design.dcp
    write_checkpoint -force -cell inst_count Checkpoint/count_down_route_design.dcp

At this point, you have implemented the static design and all Reconfigurable Module variants. This process would be repeated for designs that have more than two Reconfigurable Modules per Reconfigurable Partition.