Start by reviewing the scripts provided in the design archive. The files run_dfx.tcl
and advanced_settings.tcl
are located at the root level. The run_dfx.tcl script contains the minimum required settings
to run Dynamic Function eXchange. The advanced_settings.tcl contains default flow settings and should only be
modified by experienced users.
The Main Script
In \led_shift_count_us, open run_dfx.tcl in a text editor. This is the master script where you define the design parameters, design sources, and design structure. This is the only file you have to modify to compile a complete Dynamic Function eXchange design. Find more details regarding run_dfx.tcl, advanced_settings.tcl, and the underlying scripts in the README.txt located in the Tcl_HD subdirectory.
Note the following details in this run_dfx.tcl:
- Under Define target demo board, you can select one of many demonstration boards supported for this design.
- Under flow control, you can control what phases of synthesis and
implementation are run. In the tutorial, only synthesis is run by the script;
implementation, verification, and bitstream generation are run interactively. To
run these additional steps via the script, set the flow variables (e.g.,
run.prImpl
) to1
. - The Output Directories and Input Directories set the file structure expected for design sources and results files. You must reflect any changes to your file structure here.
- The Top Definition and RP Module Definitions sections let you reference all
source files for each part of your design. Top Definition covers all sources
needed for the static design, including constraints and IP. The RP Module
Definitions section does the same for Reconfigurable Partitions (RP). Identify
each RP and list all Reconfigurable Module (RM) variants for each RP.
- This design has two Reconfigurable Partitions (
inst_shift
andinst_count
), and each RP has two module variants.
- This design has two Reconfigurable Partitions (
- The Configuration Definition sections define the sets of static and
reconfigurable modules that make up a configuration.
- This design has two configurations defined within the master script:
config_shift_right_count_up_implement
andconfig_shift_left_count_down_import
. - You can create more configurations by adding RMs or by combining existing RMs.
- This design has two configurations defined within the master script:
The Supporting Scripts
Underneath the Tcl_HD subdirectory, several supporting Tcl scripts exist. The scripts are called by run_dfx.tcl, and they manage specific details for the Dynamic Function eXchange flow. Provided below are some details about a few of the key DFX scripts.
- step.tcl
- Manages the current status of the design by monitoring checkpoints.
- synthesize.tcl
- Manages all the details regarding the synthesis phase.
- implement.tcl
- Manages all the details regarding the module implementation phase.
- dfx_utils.tcl
- Manages all the details regarding the top-level implementation of a DFX design.
- run.tcl
- Launches the actual runs for synthesis and implementation.
- log_utils.tcl
- Handles report file creation at key points during the flow.
Remaining scripts provide details within these scripts (such as other *_utils.tcl scripts) or manage other Hierarchical Design flows (such as hd_utils.tcl).