Skip to content

InTime Tcl Reference

InTime integrates the Tool Command Language(Tcl) to support scripting and fine-grained control of its features. This reference guide describes available InTime Tcl commands. Similar to Tcl/Tk language rules, InTime Tcl commands use similar syntax, notations and design rules. Typing 'help' in the InTime Tcl Console brings up a similar description of the commands supported. The commands are generally organized hierarchically and can consist of several consecutive command invocations.

Examples

Multiple commands To retrieve the project filename, three commands are required, project and info, followed by <file_name>

plunify> project info file_name

Multiple commands with an argument To retrieve a summary of the job, two commands are required, job and summary, followed by jobID=2

plunify> job summary 2

For more example scripts, please refer to Using Tcl Scripts.

Top-level Commands

Typing the top-level command in the Tcl console displays the list of secondary commands. For example, typing 'flow' gives a list of commands in the 'flow' category.

Commands Description
exit Exit InTime.
flow Control and execute the InTime flow.
flow_steps Execute individual steps in the InTime flow.
help Display this help message.
history Show a record of commands executed previously.
job Run operations on existing jobs.
license Manage licenses and display the current InTime license file.
log <message> <type> Send specific log messages to the InTime session log. Example: log something failed error
Supported types: <info>, <warning>, <error>
misc Run miscellaneous helper functions.
project Get details and set properties of the opened project.
project info Get information about the project command (used together with the Project command).
results Retrieve details of the current results set.
run_target Configure, test and perform actions specific to different run targets.
strategy Provide details of the currently active strategy/result.
vendors Configure vendor tool settings.
msgbox (Deprecated) Show or get feedback from user using a message box.

FLOW

Control and execute the InTime flow.

Argument Description
add <property_name> <value> Add the specified value into the desired flow property (supports only certain flow properties).
clear <options> Clear the value of strategy_custom or strategy_export_impl,synth_name or strategy_prefix.
Supported options: <strategy_custom> <strategy_export_impl_name> <strategy_export_impl_name> <strategy_prefix>
get <property_name> Get the specified flow property's value.
properties List and describe all customizable configuration properties of the flow.
recipe errors Print errors logged during the execution of the last recipe.
recipe name Print the name of the recipe that was just executed. (Empty string if nothing was ran.
recipe is_experimental <recipe_tcl_alias> Check if <recipe_tcl_alias> is an experimental recipe.
recipe is_supported <recipe_tcl_alias> Check if <recipe_tcl_alias> is supported by the current project.
recipe is_user_defined <recipe_tcl_alias> Check if <recipe_tcl_alias> is a user-defined recipe.
recipe skipped Check if the last recipe was skipped by InTime (Return true if it was skipped).
recipe stopped Check if the last recipe was stopped by the user (Return true if it was stopped).
recipes <supported,all> Returns a list of recipe tcl aliases. By defaults, it lists only supported recipes for the vendor. Use flow run_recipe <recipe_tcl_alias> to run a recipe.
remove <property_name> <value> Remove the specified flow property's value.
rerun Rerun marked strategies.
reset Reset the internal flow history. Subsequent flows will start again with a root parent revision.
restore_defaults Restore flow properties to their defaults.
restore_point load <name> Restore the flow configuration from the given restore point.
restore_point save <name> Create a restore point with the given name.
run Run the InTime flow: Analyze design, strategize and run generated strategies.
run_recipe <recipe_tcl_alias> Run the specified recipe.
set <property_name> <value> Set the specified flow property to a particular value. See available properties below.
toolchain_steps clear_custom Clear any specified custom step.
toolchain_steps clear_custom_args Clear any specified custom step arguments.
toolchain_steps get_custom Get the custom toolchain step to use.
toolchain_steps get_custom_args Get the arguments to use for the custom toolchain step.
toolchain_steps is_custom_supported Indicate if the current vendor backend supports custom enabling/disabling of toolchain steps.
toolchain_steps list <match_expr> Return a list of toolchain steps. Possible match expressions: <all,enabled,disabled>. Default: <all>.
toolchain_steps set_custom <custom_step_name> Set the custom toolchain step to use.
toolchain_steps set_custom_args <args> Set the arguments to use for the custom toolchain step.
toolchain_steps toggle <step_name,all> <enable, disable> Enable/disable the specified toolchain step, or all steps.

Property Names (FLOW SET)

Below is a list of property names available for the FLOW SET command. To run this, FLOW set <*property name*> <value>

Property Name & Usage Description
auto_clock_margin_adjustment For auto adjust clock margin value (recipe)
auto_max_runtime for auto-optimizing strategy_max_runtime
auto_sync_results Enable synchronization to master database
clean_keep_whitelist Preserve certain files during compilation. Specify different file types in the curly brackets separated by spaces, e.g. {.bit .gz}.
A ZIP file containing the whitelisted files will be generated in <project dir>/plunify.jobs/<job ID>/<user><MAC address><remote job ID>_<revision name>_whitelist.zip. Requirements: Full InTime license
clock_increment_value Specify the incrementing step value for clock uncertainty (recipe)
clock_initial_value Specify the first clock value of clock uncertainty (recipe)
concurrent_runs Indicate the concurrent run count for this job.
control_allow_eval_ip Set to true if InTime should allow evaluation IP in the design.
control_create_bitstreams Set to true to generate programming files for runs. False by default.
control_create_epaf Set to true to create an encrypted results archive (.epaf) during Private Cloud operations.
control_force_continue Set to true to stop the current iteration when there is no valid result in the current round.
control_ignore_drc_errors Set to true to continue even when DRC errors occur.
control_ignore_errors Set to true to proceed even when errors occur.
control_inherit_synthesis_only Set to true to discard non-synthesis settings from the parent revision.
control_learn_from_estimates Set to true to learn from estimated results.
control_num_timingpaths Specify the number of timing paths to analyze
control_regen_ip_targets Set to true to re-generate IP targets.
control_reuse_synthesis_results Set to true to reuse synthesis results from the parent revision.
control_stop_when_goal_met Set to true to stop the current iteration when the Goal Target is met.
control_stop_when_post_place_timing_bad Set to true to stop when post-placement timing is bad (worse than or equal to a specified value).
custom_properties Specify a custom property map.
goal Specify the optimization goal.
goal_based_target Specify the target metric used to evaluate the design goal.
goal_quartusii_enable_recovery_time_in_tns QuartusII-specific: Ignore Recovery Time during TNS extraction.
goal_quartusii_enable_removal_time_in_tns QuartusII-specific: Ignore Removal Time during TNS extraction.
goal_quartusPP_enable_recovery_time_in_tns QuartusPP-specific: Ignore Recovery Time during TNS extraction.
goal_quartusPP_enable_removal_time_in_tns QuartusPP-specific: Ignore Removal Time during TNS extraction.
goal_quartusPP_enable_mpw_time_in_tns Quartuspp-specific: Ignore Minimum Pulse Width Time during TNS extraction.
goal_quartusii_enable_mpw_time_in_tns QuartusII-specific: Ignore Minimum Pulse Width Time during TNS extraction.
goal_vivado_enable_pws_time_in_tns Vivado-specific: Ignore Pulse Width Slack Time during TNS extraction.
initial_compilation Specify the target run environment for the parent revision (if results do not exist).
max_dcp_keep Vivado-specific: Specify the number of DCP netlists to retain on disk per job.
parent_revision_existing_results Indicate how to handle existing parent revision results.
parent_revision_job_id Specify the parent revision's local job id.
parent_revision_missing_results Indicate how to handle missing parent revision results.
parent_revision_name Specify the parent revision's name.
post_place_tns_limit Specify the post-placement TNS limit value
post_place_whs_limit Specify the post-placement worst hold slack limit value
post_place_wns_limit Specify the post-placement worst setup slack limit value
project_file Contains the project file name.
remote_auto_assign Indicate if auto assignment should happen for Private Cloud jobs.
remote_job_polling_policy Remote job polling policy. Use with care -- InTime terminates multi-round recipes when this is set to 'stop'.
remote_off_peak Indicate if Off-Peak mode should be used for the public cloud remote jobs (only when doing remote compiles).
remote_server_type Set the server type to use for Plunify Cloud submissions.
rounds Specify the number of optimization rounds.
root_initial_compilation Specify the target run environment for analysis of the main parent revision initial compilation (if results do not exist).
runs_per_round Specify the number of strategies to generate per round.
run_target Specify the target run environment for this process.
setting_filters_template Specify the Setting Filters template file to use.
strategy_algorithm Specify the strategy generation flow.
strategy_custom Specify the custom strategy when the Strategy Algorithm is set to custom.
strategy_delay_interval Specify an interval to delay the start of the next strategy.
strategy_export_synth_name Specify the name of the synthesis revision to use when exporting a strategy.
strategy_export_impl_name Specify the name of the implementation revision to use when exporting a strategy.
strategy_max_runtime Set the maximum compilation time for Plunify Cloud jobs.
strategy_prefix Specify the strategy prefix to use when deciding new strategy names.
strategy_rerun_learning_only Rerun: Consider only Learning Strategy results
strategy_retry_count Specify the number of retries if a strategy fails.
strategy_reuse_multiplier Hot Start: Default is 0.5. Control the re-use of past strategies. Setting it to 0 means no re-use.
strategy_settings_scope The settings application scope of strategies.
strategy_time_unit Set the time unit for the maximum runtime.
strategy_use_all_training_data Auto Pilot: Use the entire training data history when deciding the next recipe
strategy_vary_synth_if_ooc Vivado Tcl project-specific: Vary synthesis even if the module is out-of-context
strategy_verification_strictness Indicate if strict verification must be done during strategy generation.
toolchain_steps_custom Specify the custom toolchain step to use.
toolchain_steps_custom_args Set the custom toolchain step's arguments.
toolchain_steps_disabled Specify the disabled toolchain steps.

FLOW_STEPS

Allows execution of individual steps in the InTime flow.

Argument Description
analyze_parent_revision Analyze the parent revision of the current project.
download_results Download outstanding results for the current job.
finalize_job Finalize the current job.
generate_strategies Generate a set of goal orientated strategies and apply them to the current project.
initialize_job Initialize a new job.
learn Learn from the results in the current result set and tag the outcome with the current job id.
post_recipe_analysis Perform analysis on all results generated during the last recipe.
prepare_training_data Analyze the runs database and fill active result set with data required for learning.
run_strategies Run all strategies generated using flow_steps generate_strategies.

JOB

Operations on existing jobs

Argument Description
cancel <remote_job_id> <run_target> Cancel the specified remote job.
summary <local_job_id> Download results for the current job.

LICENSE

License management functions and displays the current license file for InTime.

Argument Description
details Display details about the current license file registered for InTime (if any).
file_name Return the file name of the current registered license file for InTime (if any).
register <license_file> Register a new InTime license file.
reset Deregister the current license file for InTime (if any).
run_target <run_target> Check if the specified run target is available under the current license.

MISC

Miscellaneous helper functions

Argument Description
examples_path <toolchain> Return the path where example projects are extracted to by default. The toolchain is optional.
exec <R,perl> <script_file_path> args <arguments>
exec_mode Return the execution mode of InTime.
Possible values: <console>, <batch>, <gui>.
find_path <options> Return the directory where the files below are saved. Usage: To find out the path where recipes are saved misc find_path recipes
Possible options: <scripts> <recipes> <user_recipes> <intime_log> <user_home> <dot_plunify> <dot_plunify_user> <session_tmp_dir> <project_dir> <runs_db>
get auto_pilot_template_dir Show the active auto pilot templates directory.
get grid Show the compute grid mode.
get runs_db Show the active mode of the runs database.
get custom_jobs_dir Get the custom runs job directory.
get clean_schedule Show the list of files to be cleaned.
get sshagent Show the sshagent status.
printenv Print the active process environment.
set auto_pilot_template_dir <value> Set the auto pilot templates directory.
set custom_jobs_dir <dir> Set a custom jobs directory for temporary files when the InTime job is running.
set grid <value> Set the compute grid mode to LSF, PBS, SGE, sshagent.
set sshagent enable <value> Enable sshagent mode and set the computenodes.
set sshagent disable Disable sshagent mode.
set user_args <value> Set the USER_ARGS value.
set runs_db <value> Change the runs database to use project mode or user mode.
Possible values: <project>, <user>.
set_path <user_recipes> <new_path> Sets the specified path.
set_stdout <level> Control messages forwarded to stdout when running in tcl/batch modes. Supported levels: <all> <tcl>
settings get <scope> <key> nofail
settings set <scope> <key> <value> Set the value of a key in the ini file. Supported scopes: <global> <user>.
scripts_path Display the scripts path.
recipes_path Display the recipes path.

PROJECT

Details and control of the open project.

Argument Description
clear_history Clear the complete history of all jobs that have been run on the current project for your InTime runs database.
close Close the current project.
exec <command> Execute <command> using the active project\'s vendor shell.
extract <archive> <dest_dir> -toolchain <toolchain> -toolchain_version <toolchain_version> -overwrite Extract the vendor archive to the directory specified.
history Print a history of all jobs that have been run on the current project.
info <options> Please refer to info command.
is_open Return 1 if a project is currently open, 0 otherwise.
open <project_file> -toolchain <toolchain> -toolchain_version <specific version,from_last_session> Open the specified project file. The -toolchain argument is required for certain projects. The -toolchain_version argument is optional.
open_dir <project_dir> -toolchain <toolchain> -toolchain_version <specific version, from_last_session> Search for a known project file in the specified path, and if found, open it. The -toolchain argument is required for certain projects. The -toolchain_version argument is optional.
open_example <toolchain> <dest_dir> -overwrite Extract and open an example for the specified toolchain, the dest_dir is optional. Supported toolchains: QuartusII,QuartusPP,ISE,Libero,Vivado,Vivado_dcp,Vivado_tcl,Vivado_xpr
open_last Open the last-opened project
setting_filters List settings in the current project\'s specified Setting Filters.
setting_filters <type> add <setting_name> <value> -step <step> Add the specified setting to the specified list, with <value> being optional (except for locklists).
setting_filters <type> clear Clear the specified Settings Filter.
setting_filters <type> contains <setting_name> <value> -step <step> Check if specified setting is contained in the specified list, with <value> being optional (except for locklists).
setting_filters <type> remove <setting_name> <value> -step <step> Remove the specified setting from the specified list, with <value> being optional (except for locklists).
setting_filters apply_template <file_path> Apply the setting filters from the specified Setting Filters template. Template is applied to project\'s current setting filters, clear first to load template as is.
setting_filters available_settings List settings which can be used in the Settings Filter for the current project.
setting_filters clear <all, id_only, id_value_only> Clear all Setting Filters in the current project. Defaults to all.
setting_filters load_template <file_path> Clear the project\'s existing Setting Filters and load template as is.
setting_filters save_template <file_path> Save the current Setting Filters to a Setting Filters template file.
setting_filters verify

PROJECT INFO

Returns information about the project. This is to be used with the Project command, e.g. project info

Argument Description
all_job_ids Return a list of all previously ran job ids on this project.
default_revision Return the default revision in the current project.
device <family,package,speed,part> Return the current project\'s device details.
directory Return the current project directory.
file_name Return the current project file's path.
find_shadowed_result_job_id <strategy_name> <job_id> Return the shadowed result\'s job id for the given result id.
first_job_id Return the job id of the first job ran on this project.
last_job_id Return the job id of the last job ran on this project.
local_to_remote_job_id <job_id> Return the remote job ID for the specified local job ID.
name Return the name of the current project.
next_job_id <ref_job_id> Return the job id of the next job after the specified <ref_job_id> ran on this project.
previous_job_id <ref_job_id> Return the job id of the previous job before the specified <ref_job_id> ran on this project.
private_cloud_worker_path Return the directory of the private cloud worker job path.
remote_to_local_job_id <job_id> Return the local job ID for the specified remote job ID.
revisions Return a list of all revisions in the current project.
toolchain Return the toolchain of the current project (in lowercase).
toolchain_version Return the toolchain version of the current project.
vendor Return the vendor of the current project (in lowercase).

RESULTS

Provides details about the current results set

Argument Description
activate_tcl_set <set_name> Activate specified results set for future Tcl commands.
add all Add all results in the runs database to the current result set.
add job <job_id> <run_target> -r Add the results of a specific job to the current results set. The run target defaults to <local>. Add
add last_job Add the results of the last job to the current results set.
add project_history Add all results in the current project history to the current result set.
add single <strategy_name> <job_id> Add the single result specified to the current results set.
add training_data Add all results in the runs database matching the training data filter to the current result set.
count_duplicates <local_job_id> -r Count the number of duplicate strategies inside the specified job.
current_tcl_set_name Return the name of the current Tcl set name.
download <job_id> <run_target> <-wait> <-overwrite> Get the results of the job specified by <job_id> and <run_target>. With -wait, InTime waits for the remote job to complete if it is still busy. With -overwrite it downloads the results even if it is available locally. This action overwrites values in the database with the downloaded values and the chosen job and is irreversible.
epaf_download <remote_job_id> Get the epaf files <remote_job_id>
export <filename> <format> Export all results in current results set in either CSV, HTML or JUnit format. Default is -results_csv.
Supported formats: -results_csv, -criticalpath_html, -junit_xml, -local_db, -server_db. If -server_db is selected, a filename is not required.
goal_met Return 1 when the goal was met within the current results set, 0 otherwise
import <options> <filename> Import from external database.
Supported options: -local_db, -server_db. If -local_db is selected, a filename is required. If -server_db is selected, it will import from the InTime Server.
import job_dir <job_dir> <parent_revision_name> Import and create a new job with all results in specified directory. <parent_revision_name> specifies which of the found revisions must be the parent of the new job.
import remote_job <remote_run_target> <remote_job_id> <parent_revision_name> Import and create a new job with all results from specified remote run target.
Possible remote run target values: <plunify_cloud> <parent_revision_name> specifies which of the found revisions must be the parent of the new job.
package_logs <log_path> Archive the session log, job logs and revision logs in the current results set to intimelogs_yyyy
remove all Remove all results from the current results set.
remove job <job_id> <run_target> -r Remove the results of a specific job from the current results set. The run target defaults to <local>. Add -r to remove results recursively.
restore_default_tcl_set Restore the results set used for Tcl commands to the result set linked to the InTime user interface.
summary <match_expr> <detail_level> <type> <metric> <jobs_id> Lists results in the current results set that match the match expression.
Supported match expressions: all, best, best_including_estimates, busy, failed, not_started, pending, stopped, success, top3, top10, worst, worst_including_estimates (Default: all).
Supported detail levels: -brief, -count, -errors, -list, -preview, -verbose (Default: -brief).
Supported types: -all_types, -leaf, -parent, -root (Default: -all_types).
Supported metric: wns, tns, area, power (Default: goal value)
Supported jobs_id: -jobs

RUN_TARGET

Used for configuring and testing run_target. Available run targets: <local> <private_cloud> <plunify_cloud>

Argument Description
set <run_target> <parameter> <value> Test the configuration of remote run targets.
test_connection <run_target> Test the configuration of remote run targets.

STRATEGY

Provides details of the currently active strategy/result

Argument Description
export <target_file> <options> Export the specified information for this strategy.
Supported options: -results_csv, -script_tcl, -summary_xml
results <options> Filter the results in this strategy based on the options. Default is -brief.
Supported options: -brief, -verbose, -errors, -field <Field Name>.

Note: If the -field option is used, it will only show values in this particular field. The following values are supported: Job, Strategy, "Met Goal", TNS, "Worst Slack", Area, Power, Runtime, "Current Action", "Run State", "Run Target", "Remote Job ID", Tag, FMax, "Total -ve Setup", "Worst Setup", "Total Setup FEP", "Total -ve Hold", "Worst Hold", "Total -ve Pulse Width", "Worst Pulse Width", "PP TNS", "PP Worst Setup"
set_active <revision_name> <job_id> Open the specified strategy, setting it as the active strategy for all other strategy commands.
settings <options> Provide details about the settings in this strategy. Default is -all.
Supported options: -all, -non_default, -default, -list_all, -list_non_default, -list_default, -count
tag remove Remove a tag from an active strategy
tag set <tag_value> Add a tag to an active strategy
unset_active Unset whatever strategy was previously set with the set_active command.

VENDORS

Allows configuration of vendor tool settings. Example:

vendors auto_detect
Argument Description
auto_detect Auto-detect vendor toolchains installed on this machine.
current_path Return the installation path of the toolchain version of the current project.
current_toolchain Return the toolchain for the current project.
current_vendor Return the vendor for the current project.
current_version Return the toolchain version of the current project.
enable_vendor_backend <vendor_name> <vendor_toolchain> <project_directory> Enable the specified vendor backend for vendor-specific operations even when a project is not open.
fetch_global_config <-force> Fetch toolchains configured in the current InTime private cloud environment.
get_default <vendor> <toolchain> Get the default version to use for the specified vendor toolchain.
register synth_tool synplifypro <path_containing_tool_executable> Register a new Synplify Pro tool configuration. Specify the path up to and excluding the tool executable.
register <vendor_name> <toolchain> <install_path> <license_file> -category <category> -version <version> Register a new vendor configuration. If no <toolchain_version> is provided, the version will be auto-detected.
set_default <vendor> <toolchain> <default_version> Set the default version to use for the specified vendor toolchain.
summary Print a summary of all configured vendor environments.
unregister -all Deregister all existing vendor configurations.
unregister synth_tool synplifypro Deregister the existing Synplify Pro tool configuration.
unregister <vendor_name> <toolchain> <toolchain_version> Deregister an existing vendor configuration.
update <install_path,license_file,category> <vendor_name> <toolchain> <toolchain_version> <new_value> Update the installation or license file path of a registered environment.
versions <vendor> <toolchain> Return a list of all registered versions for the specified vendor toolchain.