Quartus® Prime Pro Edition User Guide: Scripting

ID 683432
Date 4/01/2024
Public
Document Table of Contents

4.1.31.15. qed::fork_new_revision (::quartus::qed)

The following table displays information for the qed::fork_new_revision Tcl command:

Tcl Package and Version

Belongs to ::quartus::qed

Syntax qed::fork_new_revision [-h | -help] [-long_help] [-add_to_groups <add_to_groups> ] [-async] [-copy_results] [-id <id> ] -revision <revision> [-timeout <timeout> ] <object>
Arguments -h | -help Short help
-long_help Long help with examples and possible return values
-add_to_groups <add_to_groups> List of one or more groups to add the forked project object to. Defaults to the same group(s) as the source project object.
-async Flag indicating not to wait for any issued remote commands to complete. With this flag, the return value is a token that can be passed to qed::get_return_value. By default, the return value of the remote command is reproduced (including any errors)
-copy_results Flag to copy the source revision's compilation results into the new revision
-id <id> Identifier to associate with the new project object, must be unique
-revision <revision> Name of the new revision to create
-timeout <timeout> Optional timeout for waiting for a return value in ms (default = 0 = no timeout)
<object> Identifier associated with the object, must be unique
Description
Creates a new revision within a connected project and initializes a new
project object that may be used to connect to that revision.

Revisions within a Quartus Prime Pro project may be used to isolate and
interact in parallel with multiple different versions of a design. These
differences may include settings or assignments, which includes referencing
different versions of source files to use during compilation.

The project object returned by this utility will not yet be connected to the
remote revision, and the database associated with the revision will not be
complete. Run "qed::launch_connection" and "qed::compile" to generate a
complete database for the new revision.

The "-revision" option must specify a unique and new name for a revision
to generate within the remote project. This command will return an error if
the revision cannot be created successfully. The new revision will be based on
the revision that the connected project is accessing, which means it inherits
all settings and assignments from that source revision and with no further changes
will produce identical compilation results as compared to that source revision.

The "-id" option controls the "id" property of the project object which is created
when this command completes. If unspecified, a unique ID will be generated and assigned
to the new project.

The "-add_to_groups" option will initialize the new project object's "groups" property
to be a list of pre-existing group(s). If unspecified, the forked project object will
inherit its 'groups' property from the source project object.

The "-copy_results" option initiates a file copy of the compilation results from the
source revision into the new revision. This means the new revision appears as being
fully compiled and prepared for analysis but identical to the source revision until
some future change is made and the revision is recompiled.
Example Usage
    qed::create_object -type group my_group
    qed::create_object -type project project_A -qpf_path /file/path/to/project.qpf -revision rev_A -groups my_group
    qed::launch_connection project_A -open_project
    qed::run project_A -cmd "set_global_assignment -name SEED 1"
    qed::fork_new_revision project_A -revision rev_B -id project_B -inherit_groups
    qed::launch_connection project_B -open_project
    qed::run project_B -cmd "set_global_assignment -name SEED 2"

    # Returns: {project_A 1 project_B 2}
    qed::run my_group -cmd "get_global_assignment -name SEED"
Return Value Code Name Code String Return
TCL_OK 0 INFO: Operation successful