@@@COMMAND: add_cells_to_pblock@@@
add_cells_to_pblock

Description: 
Add cells to a Pblock

Syntax: 
add_cells_to_pblock  [-top] [-add_primitives] [-clear_locs] [-quiet] [-verbose]
                     <pblock> [<cells>...]

Usage: 
  Name               Description
  ------------------------------
  [-top]             Add the top level instance; This option can't be used 
                     with -cells, or -add_primitives options. You must 
                     specify either -cells or -top option.
  [-add_primitives]  Assign to the pblock only primitive cells from the 
                     specified list of cells.
  [-clear_locs]      Clear instance location constraints
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <pblock>           Pblock to add cells to
  [<cells>]          Cells to add. You can't use this option with -top 
                     option. You must specify either -cells or -top option.

Categories: 
Floorplan, XDC

Description:

  Adds specified logic instances to a Pblock in an open implemented design.
  Once cells have been added to a Pblock, you can place the Pblocks onto the
  fabric of the FPGA using the resize_pblock command. The resize_pblock
  command can also be used to manually move and resize Pblocks.

  You can remove instances from the Pblock using the remove_cells_from_pblock
  command.

Arguments:

  -top - (Optional) Add the top level instance to create a Pblock for the
  whole design. You must either specify <cells> or the -top option to add
  objects to the Pblock.

  -add_primitives - (Optional) Assign all primitives of the specified
  instances to a Pblock. This lets you select all cells in a hierarchical
  module, and assign only the leaf-cells of the selected cells to the
  specified Pblock.

  Note: This option cannot be used with -top.

  -clear_locs - (Optional) Clear instance location constraints for any cells
  that are already placed. This allows you to reset the LOC constraint for
  cells when defining new Pblocks for floorplanning purposes. When this
  option is not specified, any instances with assigned placement will not be
  unplaced as they are added to the Pblock.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pblock> - The name assigned to the Pblock.

  <cells> - One or more cell objects to add to the specified Pblock.

  Note: If -top is specified, you cannot specify <cells>.

Examples:

  The following example creates a Pblock called pb_cpuEngine, and then adds
  only the leaf-cells found in the cpuEngine module, clearing placement
  constraints for placed instances:

    create_pblock pb_cpuEngine
    add_cells_to_pblock pb_cpuEngine [get_cells cpuEngine/*] \
       -add_primitives -clear_locs

See Also:

   *  get_pblocks
   *  create_pblock
   *  remove_cells_from_pblock
   *  resize_pblock


@@@COMMAND: add_custom_timing_model@@@
add_custom_timing_model

Description: 
Custom timing model

Syntax: 
add_custom_timing_model  -from <args> -to <args> -delays <args> [-quiet]
                         [-verbose]

Usage: 
  Name        Description
  -----------------------
  -from       From pin
  -to         To pin
  -delays     Delays in ns
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Timing


@@@COMMAND: add_design_id@@@
add_design_id

Description: 
Calculate design id and add it to design.

Syntax: 
add_design_id  [-quiet] [-verbose]

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project


@@@COMMAND: add_drc_checks@@@
add_drc_checks

Description: 
Add DRC rule check objects to a rule deck

Syntax: 
add_drc_checks  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>]
                -ruledeck <arg> [-quiet] [-verbose] [<patterns>]

Returns: 
drc_check

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'rule_check' objects of these types: 'drc_ruledeck'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  -ruledeck      DRC rule deck to modify
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'rule_check' objects against patterns.
                 Default: *

Categories: 
DRC, Object

Description:

  Add design rule checks to the specified drc_ruledeck object.

  A rule deck is a collection of design rule checks grouped for convenience,
  to be run with the report_drc command at different stages of the AMD
  design flow, such as during I/O planning or placement. The tool comes with
  a set of factory defined rule decks, but you can also create new
  user-defined rule decks with the create_drc_ruledeck command.

  Use the get_drc_ruledecks command to return a list of the currently defined
  rule decks available for use in the report_drc command.

  You can add standard factory defined rule checks to the rule deck, or add
  user-defined rule checks that were created using the create_drc_check
  command. Use the get_drc_checks command to get a list of checks that can be
  added to a rule deck.

  Checks can also be removed from a rule deck using the remove_drc_checks
  command.

  Note: To temporarily disable a specific DRC rule, use the set_property
  command to set the IS_ENABLED property for the rule to false. This will
  disable the rule from being run in report_drc, without having to remove the
  rule from the rule deck. Use reset_drc_check to restore the rule to its
  default setting.

  This command returns the list of design rule checks that were added to the
  rule deck.

Arguments:

  -of_objects <arg> - (Optional) Add the rule checks of the specified
  drc_ruledeck object to the specified rule deck. This has the effect of
  copying the rules from one rule deck into another.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  the search pattern, based on specified property values. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -ruledeck <arg> - (Required) The name of the rule deck to add the specified
  design rule checks to.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Add the design rule checks that match the specified
  patterns to the rule deck. The default pattern is the wildcard `*` which
  adds all rule checks to the specified rule deck. More than one pattern can
  be specified to find multiple rule checks based on different search
  criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example adds the rule checks matching the specified search
  pattern to the project_rules rule deck:

    add_drc_checks -ruledeck project_rules {*DCI* *BUF*} 
    

  The following example creates a new rule deck called placer+, copies all of
  the rule checks from the placer_checks rule deck into the placer+ rule
  deck, then adds some additional checks:

    
    create_drc_ruledeck placer+  
    add_drc_checks -of_objects [get_drc_ruledecks placer_checks] \  
       -ruledeck placer+  
    add_drc_checks -ruledeck placer+ *IO* 
    

  The following example adds only the rule checks with a severity of Warning
  to the rule deck:

    add_drc_checks -filter {SEVERITY == Warning} -ruledeck warn_only 
    

See Also:

   *  create_drc_check
   *  create_drc_ruledeck
   *  get_drc_checks
   *  get_drc_ruledecks
   *  list_property
   *  remove_drc_checks
   *  report_drc
   *  report_property
   *  reset_drc_check
   *  set_property


@@@COMMAND: add_example_design_repo@@@
add_example_design_repo

Description: 
Adds a repository of user/custom example designs

Syntax: 
add_example_design_repo  -repo_path <arg> [-quiet] [-verbose]

Returns: 
Adds a repository of user/custom example designs

Usage: 
  Name        Description
  -----------------------
  -repo_path  Repo Path that contains Example design
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
IPIntegrator


@@@COMMAND: add_files@@@
add_files

Description: 
Add sources to the active fileset

Syntax: 
add_files  [-fileset <arg>] [-of_objects <args>] [-norecurse] [-copy_to <arg>]
           [-force] [-scan_for_includes] [-quiet] [-verbose] [<files>...]

Returns: 
list of file objects that were added

Usage: 
  Name                  Description
  ---------------------------------
  [-fileset]            Fileset name
  [-of_objects]         Filesets or sub-designs or RMs to add the files to
  [-norecurse]          Do not recursively search in specified directories
  [-copy_to]            Copy the file to the specified directory before 
                        adding it to project
  [-force]              Overwrite the existing file when -copy_to is used
  [-scan_for_includes]  Scan and add any included files found in the 
                        fileset's RTL sources
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution
  [<files>]             Name of the files and/or directories to add. Must be 
                        specified if -scan_for_includes is not used.

Categories: 
Project, Simulation

Description:

  Adds one or more source files, or the source file contents of one or more
  directories, to the specified fileset in the current project. Valid source
  files include HDL sources (VHDL, Verilog, SystemVerilog, and related header
  files), netlist sources (DCP, EDIF, and NGC), and memory interface files
  (BMM, MIF, MEM, ELF).

  IP and Block Design sources are not added through the add_files command.
  These are compound files that are supported by separate commands such as
  import_ip, read_bd, and read_ip.

  For every file added to a project the AMD Vivado? Design Suite attempts to
  store and maintain both a relative path and an absolute path to the file or
  directory. When a project is opened, these paths are used to locate the
  files and directories. By default the Vivado Design Suite applies a
  Relative First approach to resolving paths, searching the relative path
  first, then the absolute path. You can use the PATH_MODE property to change
  how the Vivado tool resolves file paths or properties for specific objects.
  For more information, see the Vivado Design Suite Properties Reference
  Guide (UG912).

  Important: Adding multiple files one at a time can cause noticeable
  performance degradation. It is more efficient to use a single add_files
  command to import a list of files:

    add_files {file1 file2 file3 ... fileN}

  The Vivado tool does not read the contents of a file automatically when the
  file is added to the project with add_files, but rather reads the file
  contents when they are needed. For instance, a constraints file is not read
  when added to the design until needed by synthesis, timing, or
  implementation. To read the file at the time of adding it to the design,
  use the read_xxx command instead.

  Tip: When running the Vivado tool in Non-Project mode, in which there is no
  project file to maintain and manage the various project source files, you
  should use the read_xxx commands to read the contents of source files into
  the in-memory design. Refer to the Vivado Design Suite User Guide: Design
  Flows Overview (UG892) for more information on Non-Project mode.

  The add_files command adds them by reference to the specified fileset. This
  is different from the import_files command, which copies the file into the
  local project folders as well as adding them to the specified fileset.

  This command returns the files that were added, or returns an error if it
  fails.

Arguments:

  -fileset <name> - (Optional) The fileset to which the specified source
  files should be added. An error is returned if the specified fileset does
  not exist. If no fileset is specified the files are added to the source
  fileset by default.

  -norecurse - (Optional) Do not recurse through subdirectories of any
  specified directories. Without this argument, the tool searches through any
  subdirectories for additional source files that can be added to a project.

  -copy_to <arg> - (Optional) Copy the selected files to the specified
  directory before adding the files to the project. This option lets you move
  files from their current location to a new folder to reference as part of
  the source structure for a project.

  -force - (optional) Overwrite any existing files of the same name as the
  specified files, in the destination directory, when you use the -copy_to
  option.

  -scan_for_includes - (Optional) Scan Verilog source files for any `include
  statements and add these referenced files to the specified fileset. By
  default, `include files are not added to the fileset.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Optional) One or more file names or directory names to be added
  to the fileset. If a directory name is specified, all valid source files
  found in the directory, and in subdirectories of the directory, are added
  to the fileset.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example adds a file called rtl.v to the current project:

    add_files rtl.v

  In the preceding example the tool looks for the rtl.v file in the current
  working directory since no file path is specified, and the file is added to
  the source fileset as a default since no fileset is specified.

  The following example adds a file called top.xdc to the constrs_1
  constraint fileset, as well as any appropriate source files found in the
  project_1 directory and subdirectories:

    add_files -fileset constrs_1 -quiet c:/Design/top.xdc c:/Design/project_1

  In addition, the tool ignores any command line errors because the -quiet
  argument was specified.

  If the -norecurse option had been specified then only constraint files
  found in the project_1 directory would have been added, but subdirectories
  would not be searched.

  The following example adds an existing IP core file to the current project:

    add_files -norecurse C:/Data/ip/c_addsub_v11_0_0.xci

  Note: Use the import_ip command to import the IP file into the local
  project folders.

  The following example reads a top-level design netlist, and the char_fifo
  IP in a Non-Project Mode design:

    # Read top-level EDIF and IP DCP
    read_edif ./sources/wave_gen.edif
    add_files ./my_IP/char_fifo/char_fifo.xci

  Note: Either add_files or read_ip can be used reading in an IP core. All
  output products of the IP, including a design checkpoint ( DCP), will be
  read as needed.

  The following example adds an existing DSP module, created in System
  Generator, into the current project:

    add_files C:/Data/model1.mdl

See Also:

   *  import_files
   *  import_ip
   *  read_ip
   *  read_verilog
   *  read_vhdl
   *  read_xdc


@@@COMMAND: add_module_instance@@@
add_module_instance

Description: 
Add CIPS instance in top module

Syntax: 
add_module_instance  -module_name <arg> -inst_name <arg> [-lib_name <arg>]
                     [-force] [-quiet] [-verbose] [<file>]

Usage: 
  Name          Description
  -------------------------
  -module_name  Primary unit name to be instantiated
  -inst_name    Intance name of module/entity to be instantiated
  [-lib_name]   Library name in which module_name is compiled
  [-force]      Overwrite existing file
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<file>]      Output file to write. Update top file, If option not provided

Categories: 
FileIO


@@@COMMAND: add_qor_checks@@@
add_qor_checks

Description: 
Add a QoR Check to a ruledeck

Syntax: 
add_qor_checks  -ruledeck <arg> [-quiet] [-verbose] [<IDs>]

Returns: 
Add a QoR check to a ruledeck

Usage: 
  Name        Description
  -----------------------
  -ruledeck   Ruledeck to add to
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<IDs>]     Match suggestion names against given IDs

Categories: 
Netlist, Project


@@@COMMAND: add_to_power_rail@@@
add_to_power_rail

Description: 
Add power sources to power Rail

Syntax: 
add_to_power_rail  [-power_sources <args>] [-phased_power_source <args>]
                   [-quiet] [-verbose] <power_rail>

Usage: 
  Name                    Description
  -----------------------------------
  [-power_sources]        List of power_sources to add. Can be power rails 
                          and/or power supplies
  [-phased_power_source]  Pair of phased power source and its phase value. 
                          Power source can be a phased power rail.
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <power_rail>            Power rail to add sources to

Categories: 
XDC, Floorplan


@@@COMMAND: after@@@
after(n)              Tcl Built-In Commands              after(n)



_________________________________________________________________

NAME
       after - Execute a command after a time delay

SYNOPSIS
       after ms

       after ms ?script script script ...?

       after cancel id

       after cancel script script script ...

       after idle ?script script script ...?

       after info ?id?
_________________________________________________________________


DESCRIPTION
       This  command is used to delay execution of the program or
       to execute a command in background sometime in the future.
       It  has  several forms, depending on the first argument to
       the command:

       after ms
              Ms must be an integer giving a  time  in  millisec-
              onds.   The  command sleeps for ms milliseconds and
              then returns.  While the command  is  sleeping  the
              application does not respond to events.

       after ms ?script script script ...?
              In  this  form the command returns immediately, but
              it arranges for a Tcl command  to  be  executed  ms
              milliseconds  later  as an event handler.  The com-
              mand will be executed exactly once,  at  the  given
              time.  The delayed command is formed by concatenat-
              ing all the script arguments in the same fashion as
              the  concat  command.  The command will be executed
              at global level (outside the  context  of  any  Tcl
              procedure).  If an error occurs while executing the
              delayed command then the background error  will  be
              reported  by  the  command  registered with  interp
              bgerror.  The after command returns  an  identifier
              that  can  be  used  to  cancel the delayed command
              using after cancel.

       after cancel id
              Cancels the execution of a delayed command that was
              previously  scheduled.   Id indicates which command
              should be canceled;  it must have been  the  return
              value  from  a previous after command.  If the com-
              mand given by id has already been executed then the
              after cancel command has no effect.

       after cancel script script ...
              This  command  also  cancels  the  execution  of  a
              delayed command.  The script arguments are concate-
              nated  together  with  space separators (just as in
              the concat command).  If there is a pending command
              that  matches  the string, it is cancelled and will
              never be executed;  if no such command is currently
              pending  then  the  after  cancel  command  has  no
              effect.

       after idle script ?script script ...?
              Concatenates the  script  arguments  together  with
              space  separators  (just as in the concat command),
              and arranges for the resulting script to be  evalu-
              ated later as an idle callback.  The script will be
              run exactly once, the next time the event  loop  is
              entered  and  there  are no events to process.  The
              command returns an identifier that can be  used  to
              cancel  the delayed command using after cancel.  If
              an error occurs while executing the script then the
              background  error  will  be reported by the command
              registered with  interp bgerror.

       after info ?id?
              This command  returns  information  about  existing
              event handlers.  If no id argument is supplied, the
              command returns a list of the identifiers  for  all
              existing  event  handlers created by the after com-
              mand for this interpreter.  If id is  supplied,  it
              specifies  an  existing  handler; id must have been
              the return value from some previous call  to  after
              and  it  must  not  have triggered yet or been can-
              celled.  In this case the command  returns  a  list
              with  two  elements.  The first element of the list
              is the script associated with id,  and  the  second
              element  is  either  idle or timer to indicate what
              kind of event handler it is.

       The after ms and after idle forms of  the  command  assume
       that  the  application  is event driven:  the delayed com-
       mands will not be executed unless the  application  enters
       the  event  loop.   In  applications that are not normally
       event-driven, such as tclsh, the event loop can be entered
       with the vwait and update commands.

EXAMPLES
       This defines a command to make Tcl do nothing at all for N
       seconds:
              proc sleep {N} {
                 after [expr {int($N * 1000)}]
              }

       This arranges for the command wake_up to be run  in  eight
       hours (providing the event loop is active at that time):
              after [expr {1000 * 60 * 60 * 8}] wake_up

       The  following command can be used to do long-running cal-
       culations (as  represented  here  by  ::my_calc::one_step,
       which  is  assumed  to return a boolean indicating whether
       another step should be performed) in a step-by-step  fash-
       ion, though the calculation itself needs to be arranged so
       it can work step-wise.  This technique is extra careful to
       ensure   that  the  event  loop  is  not  starved  by  the
       rescheduling of processing steps (arranging for  the  next
       step  to  be  done  using an already-triggered timer event
       only when the event queue has been drained) and is  useful
       when  you  want to ensure that a Tk GUI remains responsive
       during a slow task.
              proc doOneStep {} {
                 if {[::my_calc::one_step]} {
                    after idle [list after 0 doOneStep]
                 }
              }
              doOneStep


SEE ALSO
       concat(n), interp(n), update(n), vwait(n)


KEYWORDS
       cancel, delay, idle callback, sleep, time



Tcl                            7.5                       after(n)


@@@COMMAND: all_clocks@@@
all_clocks

Description: 
Get a list of all clocks in the current design

Syntax: 
all_clocks  [-quiet] [-verbose]

Returns: 
list of clock objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Returns a list of all clocks that have been declared in the current design.

  To get a list of specific clocks in the design, use the get_clocks command,
  or use the filter command to filter the results returned by all_clocks.

  Clocks can be defined by using the create_clock or create_generated_clock
  commands.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example shows all clocks in the sample CPU netlist project:

    % all_clocks  
    cpuClk wbClk usbClk phy_clk_pad_0_i phy_clk_pad_1_i fftClk 
    

  The following example applies the set_propagated_clock command to all
  clocks, and also demonstrates how the returned list (all_clocks) can be
  passed to another command:

    % set_propagated_clock [all_clocks] 
    

See Also:

   *  create_clock
   *  create_generated_clock
   *  filter
   *  get_clocks
   *  set_propagated_clock


@@@COMMAND: all_cpus@@@
all_cpus

Description: 
Get a list of cpu cells in the current design

Syntax: 
all_cpus  [-quiet] [-verbose]

Returns: 
list of cpu cell objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
XDC

Description:

  Returns a list of all CPU cell objects in the current design. Creates a
  list of all the CPU cell objects that have been declared in the current
  design.

  The list of CPUs returned by all_cpus can also be limited or reduced by the
  filter command to filter according to properties assigned to the CPU cell
  objects. Properties of an object can be returned by the list_property or
  report_property commands.

  The all_cpus command is scoped to return the objects hierarchically, from
  the top-level of the design or from the level of the current instance. By
  default the current instance is defined as the top level of the design, but
  can be changed by using the current_instance command.

  Note: This command returns a list of CPU cell objects

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns all CPU objects in the current design:

    all_cpus 
    

  The following example shows how the list returned can be passed to another
  command:

    set_false_path -from [all_cpus] -to [all_registers] 
    

See Also:

   *  all_dsps
   *  all_hsios
   *  all_registers
   *  current_instance
   *  filter
   *  get_cells
   *  list_property
   *  report_property
   *  set_false_path


@@@COMMAND: all_dsps@@@
all_dsps

Description: 
Get a list of dsp cells in the current design

Syntax: 
all_dsps  [-quiet] [-verbose]

Returns: 
list of dsp cell objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
XDC

Description:

  Returns a list of all DSP cell objects that have been declared in the
  current design.

  The list of DSPs returned by all_dsps can also be limited or reduced by the
  filter command to filter according to properties assigned to the DSP
  objects. Properties of an object can be returned by the list_property or
  report_property commands.

  The all_dsps command is scoped to return the objects hierarchically, from
  the top-level of the design or from the level of the current instance. By
  default the current instance is defined as the top level of the design, but
  can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns a list of all DSPs defined in the current
  design, and filters that list to return a single DSP assigned to the
  specified SITE:

    filter [all_dsps] {SITE == DSP48_X1Y6} 
    

  The following example shows how the list returned can be passed to another
  command:

    set_false_path -from [all_dsps] -to [all_registers] 
    

See Also:

   *  all_cpus
   *  all_hsios
   *  all_registers
   *  current_instance
   *  filter
   *  get_cells
   *  list_property
   *  report_property
   *  set_false_path


@@@COMMAND: all_fanin@@@
all_fanin

Description: 
Get a list of pins or cells in fanin of specified sinks

Syntax: 
all_fanin  [-startpoints_only] [-flat] [-only_cells] [-levels <arg>]
           [-pin_levels <arg>] [-trace_arcs <arg>] [-quiet] [-verbose] <to>

Returns: 
list of cell or pin objects

Usage: 
  Name                 Description
  --------------------------------
  [-startpoints_only]  Find only the timing startpoints
  [-flat]              Hierarchy is ignored
  [-only_cells]        Only cells
  [-levels]            Maximum number of cell levels to traverse:Value >= 0
                       Default: 0
  [-pin_levels]        Maximum number of pin levels to traverse:Value >= 0
                       Default: 0
  [-trace_arcs]        Type of network arcs to trace: Values: timing, 
                       enabled, all
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <to>                 List of sink pins, ports, or nets

Categories: 
XDC

Description:

  Returns a list of port, pin or cell objects in the fan-in of the specified
  sinks.

  The all_fanin command is scoped to return objects from current level of the
  hierarchy of the design, either from the top-level or from the level of the
  current instance. By default the current instance is defined as the top
  level of the design, but can be changed by using the current_instance
  command. To return the fan-in across all levels of the hierarchy, use the
  -flat option.

Arguments:

  -startpoints_only - (Optional) Find only the timing start points. When this
  option is used, none of the intermediate points in the fan-in network are
  returned. This option can be used to identify the primary driver(s) of the
  sinks.

  -flat - (Optional) Ignore the hierarchy of the design. By default, only the
  objects at the same level of hierarchy as the sinks are returned. When
  using this option, all the objects in the fan-in network of the sinks are
  considered, regardless of hierarchy.

  -only_cells - (Optional) Return only the cell objects which are in the
  fan-in path of the specified sinks. Do not return pins or ports.

  -levels <value> - (Optional) Maximum number of cell levels to traverse. A
  value of 1 means to traverse the top-level of the current instance. The
  default value is 0 and indicates that the tool should traverse all levels
  in the hierarchy.

  -pin_levels <value> - (Optional) Maximum number of pin levels to traverse.
  The default value is 0.

  -trace_arcs <value> - (Optional) Type of network arcs to trace. Valid
  values are "timing", "enabled", and "all"

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <to> - (Required) The pins, ports, or nets from which you want the fan-in
  objects reported.

Examples:

  The following example lists the timing fan-in of the led_pins output port:

    all_fanin [get_ports led_pins[*] ] 
    

  The following example traces back from the clock pin of the specified flip-
  flop to the clock source (an MMCM output pin in this example):

    all_fanin -flat -startpoints_only [get_pins cmd_parse_i0/prescale_reg[7]/C] 
    

  The following examples returns the ports connected to the input pins of
  IDELAYs, ignoring the hierarchy of the design:

    all_fanin -flat -startpoints_only [get_pins IDELAY*/IDATAIN] 
    

See Also:

   *  all_fanout
   *  current_instance
   *  get_cells
   *  get_pins
   *  get_ports


@@@COMMAND: all_fanout@@@
all_fanout

Description: 
Get a list of pins or cells in fanout of specified sources

Syntax: 
all_fanout  [-endpoints_only] [-flat] [-only_cells] [-levels <arg>]
            [-pin_levels <arg>] [-trace_arcs <arg>] [-quiet] [-verbose] <from>

Returns: 
list of cell or pin objects

Usage: 
  Name               Description
  ------------------------------
  [-endpoints_only]  Find only the timing endpoints
  [-flat]            Hierarchy is ignored
  [-only_cells]      Only cells
  [-levels]          Maximum number of cell levels to traverse:Value >= 0
                     Default: 0
  [-pin_levels]      Maximum number of pin levels to traverse:Value >= 0
                     Default: 0
  [-trace_arcs]      Type of network arcs to trace: Values: timing, enabled, 
                     all
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <from>             List of source pins, ports, or nets

Categories: 
XDC

Description:

  Returns a list of port, pin, or cell objects in the fanout of the specified
  sources.

  The all_fanout command is scoped to return objects from current level of
  the hierarchy of the design, either from the top-level or from the level of
  the current instance. By default the current instance is defined as the top
  level of the design, but can be changed by using the current_instance
  command. To return the fanout across all levels of the hierarchy, use the
  -flat option.

Arguments:

  -endpoints_only - (Optional) Find only the timing endpoints. When this
  option is used, none of the intermediate points in the fan-out network are
  returned. This option can be used to identify the primary loads of the
  drivers.

  -flat - (Optional) Ignore the hierarchy of the design. By default, only the
  objects at the same level of hierarchy as the sinks are returned. When
  using this option, all the objects in the fan-out network of the drivers
  are considered, regardless of hierarchy.

  -only_cells - (Optional) Return only the cell objects in the fanout path of
  the specified sources.

  -levels <value> - (Optional) Maximum number of cell levels to traverse. A
  value of 1 means to traverse the top-level of the current instance. The
  default value is 0 and indicates that the tool should traverse all levels
  in the hierarchy.

  -pin_levels <value> - (Optional) Maximum number of pin levels to traverse.
  The default value is 0.

  -trace_arcs <value> - (Optional) Type of network arcs to trace. Valid
  values are "timing", "enabled", and "all"

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <from> - (Required) The source ports, pins, or nets from which to list the
  objects in the fanout path.

Examples:

  The following example gets the fanout for all input ports in the design:

    all_fanout [all_inputs] 
    

  This example gets the fanout for all inputs assigned to I/O Bank 15 in the
  current design:

    all_fanout [filter [all_inputs] {IOBANK == 15}] 
    

See Also:

   *  all_fanin
   *  current_instance
   *  filter
   *  get_cells
   *  get_pins
   *  get_ports


@@@COMMAND: all_ffs@@@
all_ffs

Description: 
Get a list of flip flop cells in the current design

Syntax: 
all_ffs  [-quiet] [-verbose]

Returns: 
list of flip flop cell objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
XDC

Description:

  Returns a list of all flip flop instances in the current design.

  You can use the get_cells command, or use the filter command to limit the
  results from the all_ffs command to return a list of flip-flop cells
  matching the specified properties.

  The all_ffs command is scoped to return the objects hierarchically, from
  the top-level of the design or from the level of the current instance. By
  default the current instance is defined as the top level of the design, but
  can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the count of all flops in the design, then
  returns the count of all flops in the fftEngine module:

    current_instance  
    INFO: [Vivado 12-618] Current instance is the top level of design `netlist_1`.  
    top 
    llength [all_ffs]  
    15741 
    current_instance fftEngine  
    fftEngine 
    llength [all_ffs]  
    1519 
    

  This example filters the results of all_ffs to return only the FDRE flops:

    filter [all_ffs] {REF_NAME == FDRE} 
    

See Also:

   *  all_latches
   *  all_registers
   *  current_instance
   *  filter
   *  get_cells


@@@COMMAND: all_hsios@@@
all_hsios

Description: 
Get a list of hsio cells in the current design

Syntax: 
all_hsios  [-quiet] [-verbose]

Returns: 
list of hsio cell objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
XDC

Description:

  Returns a list of all High Speed IO (HSIO) cell objects that have been
  declared in the current design. These HSIO cell objects can be assigned to
  a variable or passed into another command.

  The list of high-speed IOs returned by all_hsios can also be limited or
  reduced by the filter command to filter according to properties assigned to
  the HSIO objects. Properties of an object can be returned by the
  list_property or report_property commands.

  The all_hsios command is scoped to return the objects hierarchically, from
  the top-level of the design or from the level of the current instance. By
  default the current instance is defined as the top level of the design, but
  can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns all HSIO objects in the current design:

    all_hsios 
    

  The following example shows how the list returned can be directly passed to
  another command:

    set_false_path -from [all_hsios] -to [all_registers] 
    

See Also:

   *  all_cpus
   *  all_dsps
   *  all_registers
   *  current-instance
   *  filter
   *  get_cells
   *  list_property
   *  report_property
   *  set_false_path


@@@COMMAND: all_inputs@@@
all_inputs

Description: 
Get a list of all input ports in the current design

Syntax: 
all_inputs  [-quiet] [-verbose]

Returns: 
list of port objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Returns a list of all input port objects in the current design.

  To get a list of specific inputs in the design, use the get_ports command,
  or use the filter command to filter the results returned by all_inputs.

  The all_inputs command is scoped to return the objects hierarchically, from
  the top-level of the design or from the level of the current instance. By
  default the current instance is defined as the top level of the design, but
  can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns all input port objects in the current design:

    all_inputs 
    

  This example gets all input port objects, filters out the GT ports, and
  sets the IOSTANDARD property for the non-GT ports:

    set non_gt_ports [filter [all_inputs] {!is_gt_term}]   
    set_property IOSTANDARD LVCMOS18 $non_gt_ports 
    

  The following example shows how the list returned can be passed to another
  command:

    set_input_delay 5 -clock REFCLK [all_inputs] 
    

See Also:

   *  all_clocks
   *  all_outputs
   *  current_instance
   *  filter
   *  get_clocks
   *  get_ports
   *  set_input_delay
   *  set_property


@@@COMMAND: all_latches@@@
all_latches

Description: 
Get a list of all latch cells in the current design

Syntax: 
all_latches  [-quiet] [-verbose]

Returns: 
list of latch cell objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
XDC

Description:

  Returns a list of all latches that have been declared in the current design.

  The list of latches returned by all_latches can also be limited or reduced
  by the filter command to filter according to properties assigned to the
  latches. Properties of an object can be returned by the list_property or
  report_property commands.

  The all_latches command is scoped to return the objects hierarchically,
  from the top-level of the design or from the level of the current instance.
  By default the current instance is defined as the top level of the design,
  but can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns a list of all latches in the current design:

    all_latches 
    

  The following example shows how the list returned can be passed to another
  command:

    set_false_path -from [all_mults] -to [all_latches] 
    

See Also:

   *  all_ffs
   *  all_registers
   *  current_instance
   *  filter
   *  get_cells
   *  list_property
   *  report_property
   *  set_false_path


@@@COMMAND: all_outputs@@@
all_outputs

Description: 
Get a list of all output ports in the current design

Syntax: 
all_outputs  [-quiet] [-verbose]

Returns: 
list of port objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Returns a list of all output port objects that have been declared in the
  current design.

  To get a list of specific outputs in the design, use the get_ports command,
  or use the filter command to filter the results returned by all_outputs.

  The all_outputs command is scoped to return the objects hierarchically,
  from the top-level of the design or from the level of the current instance.
  By default the current instance is defined as the top level of the design,
  but can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns all the output ports in the current design:

    all_outputs 
    

  The following example sets the output delay for all outputs in the design:

    set_output_delay 5 -clock REFCLK [all_outputs] 
    

See Also:

   *  all_inputs
   *  current_instance
   *  filter
   *  get_ports
   *  set_output_delay


@@@COMMAND: all_rams@@@
all_rams

Description: 
Get a list of ram cells in the current design

Syntax: 
all_rams  [-quiet] [-verbose]

Returns: 
list of ram cell objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
XDC

Description:

  Returns a list of all the RAM cell objects present in the current instance,
  including block RAMs, block RAM FIFOs, and Distributed RAMs. These RAM cell
  objects can be assigned to a variable or passed into another command.

  To get a list of specific RAM cells in the design, use the filter command
  to filter the results returned by all_rams based on properties assigned to
  the RAM cells. Properties of an object can be returned by the list_property
  or report_property commands.

  The all_rams command is scoped to return the objects hierarchically, from
  the top-level of the design or from the level of the current instance. By
  default the current instance is defined as the top level of the design, but
  can be changed by using the current_instance command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns all RAM cells in the design:

    all_rams

  This example returns all RAM cells in the design, and filters the results
  to return only the FIFO block memories:

    filter [all_rams] {PRIMITIVE_SUBGROUP == fifo}

  The following example sets the current instance, and returns all RAM
  objects hierarchically from the level of the current instance:

    current_instance usbEngine0
    all_rams

See Also:

   *  all_cpus
   *  current_instance
   *  filter
   *  get_cells
   *  list_property
   *  report_property


@@@COMMAND: all_registers@@@
all_registers

Description: 
Get a list of register cells or pins in the current design

Syntax: 
all_registers  [-clock <args>] [-rise_clock <args>] [-fall_clock <args>]
               [-cells] [-data_pins] [-clock_pins] [-async_pins] [-output_pins]
               [-level_sensitive] [-edge_triggered] [-no_hierarchy] [-quiet]
               [-verbose]

Returns: 
list of cell or pin objects

Usage: 
  Name                Description
  -------------------------------
  [-clock]            Consider registers of this clock
  [-rise_clock]       Consider registers triggered by clock rising edge
  [-fall_clock]       Consider registers triggered by clock falling edge
  [-cells]            Return list of cells (default)
  [-data_pins]        Return list of register data pins
  [-clock_pins]       Return list of register clock pins
  [-async_pins]       Return list of async preset/clear pins
  [-output_pins]      Return list of register output pins
  [-level_sensitive]  Only consider level-sensitive latches
  [-edge_triggered]   Only consider edge-triggered flip-flops
  [-no_hierarchy]     Only search the current instance
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Returns a list of sequential register cells or register pins in the current
  design.

  Tip: Returned objects includes DSPs and Block RAMs as they contain internal
  registers.

  The list of returned objects can be limited by the use of the arguments
  described below. You can limit the list of registers returned to a specific
  clock or clocks, or to registers triggered by the rising or falling edge of
  a specified clock.

  The list of registers returned by all_registers can also be limited or
  reduced by the filter command to filter according to properties assigned to
  the registers. Properties of an object can be returned by the list_property
  or report_property commands.

  You can also get a list of the pins of collected registers instead of the
  register objects by specifying one or more of the pin arguments.

Arguments:

  -clock <args> - (Optional) Return a list of all registers whose clock pins
  are in the fanout of the specified clock.

  -rise_clock <args> - (Optional) Return a list of registers triggered by the
  rising edge of the specified clocks.

  -fall_clock <args> - (Optional) Return a list of registers triggered by the
  falling edge of the specified clocks.

  Note: Do not combine -clock, -rise_clock, and -fall_clock in the same
  command.

  -cells - (Optional) Return a list of register cell objects as opposed to a
  list of pin objects. This is the default behavior of the command.

  -data_pins - (Optional) Return a list of data pins of all registers in the
  design, or of the registers that meet the search requirement.

  -clock_pins - (Optional) Return a list of clock pins of the registers that
  meet the search requirement.

  -async_pins - (Optional) Limit the search to asynchronous pins of the
  registers that meet the search requirement.

  -output_pins - (Optional) Return a list of output pins of the registers
  that meet the search requirement.

  Note: Use the -*_pins arguments separately. If you specify multiple
  arguments, only one argument is applied in the following order of
  precedence: -data_pins, -clock_pins, -async_pins, -output_pins.

  -level_sensitive - (Optional) Return a list of the level-sensitive
  registers or latches.

  -edge_triggered - (Optional) Return a list of the edge-triggered registers
  or flip-flops.

  -no_hierarchy - (Optional) Do not search the hierarchy of the design. Only
  search in the level of the current_instance.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns a list of registers that are triggered by the
  falling edge of any clock in the design:

    all_registers -fall_clock [all_clocks]

  The following example sets the minimum delay:

    set_min_delay 2.0 -to [all_registers -clock CCLK -data_pins]

  The following example extracts all registers on clk_A with *meta* in the
  name:

    filter [all_registers -clock clk_A] {name =~ *meta*}

See Also:

   *  all_clocks
   *  current_instance
   *  filter
   *  list_property
   *  report_property
   *  set_msg_config
   *  set_min_delay



@@@COMMAND: append@@@
append(n)             Tcl Built-In Commands             append(n)



_________________________________________________________________

NAME
       append - Append to variable

SYNOPSIS
       append varName ?value value value ...?
_________________________________________________________________


DESCRIPTION
       Append  all of the value arguments to the current value of
       variable varName.  If varName does not exist, it is  given
       a  value equal to the concatenation of all the value argu-
       ments.  The result of this command is the new value stored
       in  variable  varName.  This command provides an efficient
       way to build up long variables incrementally.   For  exam-
       ple,  "append  a  $b"  is  much more efficient than "set a
       $a$b" if $a is long.

EXAMPLE
       Building a string  of  comma-separated  numbers  piecemeal
       using a loop.
              set var 0
              for {set i 1} {$i<=10} {incr i} {
                 append var "," $i
              }
              puts $var
              # Prints 0,1,2,3,4,5,6,7,8,9,10


SEE ALSO
       concat(n), lappend(n)


KEYWORDS
       append, variable



Tcl                                                     append(n)


@@@COMMAND: apply@@@
apply(n)              Tcl Built-In Commands              apply(n)



_________________________________________________________________

NAME
       apply - Apply an anonymous function

SYNOPSIS
       apply func ?arg1 arg2 ...?
_________________________________________________________________

DESCRIPTION
       The  command  apply applies the function func to the argu-
       ments arg1 arg2 ... and returns the result.

       The function func is a two element list {args body}  or  a
       three  element  list {args body namespace} (as if the list
       command had been used).  The first element args  specifies
       the  formal  arguments  to  func. The specification of the
       formal arguments args is shared with the proc command, and
       is described in detail in the corresponding manual page.

       The  contents  of body are executed by the Tcl interpreter
       after the local  variables  corresponding  to  the  formal
       arguments  are  given  the values of the actual parameters
       arg1 arg2 ....  When  body  is  being  executed,  variable
       names normally refer to local variables, which are created
       automatically  when  referenced  and  deleted  when  apply
       returns.   One local variable is automatically created for
       each of the function's arguments.   Global  variables  can
       only  be  accessed  by  invoking the global command or the
       upvar command.  Namespace variables can only  be  accessed
       by invoking the variable command or the upvar command.

       The invocation of apply adds a call frame to Tcl's evalua-
       tion stack (the stack of frames accessed via uplevel). The
       execution  of  body  proceeds  in  this call frame, in the
       namespace given by namespace or in the global namespace if
       none  was  specified.  If  given, namespace is interpreted
       relative to the global namespace even if its name does not
       start with "::".

       The semantics of apply can also be described by:

              proc apply {fun args} {
                 set len [llength $fun]
                 if {($len < 2) || ($len > 3)} {
                    error "can't interpret \"$fun\" as anonymous function"
                 }
                 lassign $fun argList body ns
                 set name ::$ns::[getGloballyUniqueName]
                 set body0 {
                    rename [lindex [info level 0] 0] {}
                 }
                 proc $name $argList ${body0}$body
                 set code [catch {uplevel 1 $name $args} res opt]
                 return -options $opt $res
              }

EXAMPLES
       This  shows  how  to  make  a  simple general command that
       applies a transformation to each element of a list.
              proc map {lambda list} {
                 set result {}
                 foreach item $list {
                    lappend result [apply $lambda $item]
                 }
                 return $result
              }
              map {x {return [string length $x]:$x}} {a bb ccc dddd}
                    -> 1:a 2:bb 3:ccc 4:dddd
              map {x {expr {$x**2 + 3*$x - 2}}} {-4 -3 -2 -1 0 1 2 3 4}
                    -> 2 -2 -4 -4 -2 2 8 16 26

       The apply command is also useful  for  defining  callbacks
       for use in the trace command:
              set vbl "123abc"
              trace add variable vbl write {apply {{v1 v2 op} {
                 upvar 1 $v1 v
                 puts "updated variable to \"$v\""
              }}}
              set vbl 123
              set vbl abc

SEE ALSO
       proc(n), uplevel(n)

KEYWORDS
       argument, procedure, anonymous function



Tcl                                                      apply(n)


@@@COMMAND: apply_board_connection@@@
apply_board_connection

Description: 
Applies board connections to given designs

Syntax: 
apply_board_connection  [-board_interface <arg>] -ip_intf <arg> -diagram <arg>
                        [-quiet] [-verbose]

Returns: 
sucess/failure status of applied action.

Usage: 
  Name                Description
  -------------------------------
  [-board_interface]  Board interface name to which connection need to be 
                      applied.
  -ip_intf            Full path of IP interface name to which board 
                      automation need to be applied.
  -diagram            The IP Integrator design name.
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
Object, Project, Board, IPIntegrator

Description:

  Connects the interface pin of an IP core in the specified block design to
  the interface of the current board part in the current project or design.

  The board part provides a representation of the device in the context of
  the board-level system, and can help define key aspects of the design, such
  as clock constraints, I/O port assignments, and supported interfaces. The
  board part file stores information regarding board attributes. The file,
  called board_part.xml, is located in the data/boards/board_parts folder of
  the AMD Vivado Design Suite installation area.

  The command lets you quickly connect compatible interface pins of an IP
  integrator block design to the appropriate interface definition on the
  current board part. To make the connection between the IP core to the board
  part, the IP integrator of the Vivado Design Suite adds an external
  interface port and interface connection to the block design. The added
  external interface port is named for the specified board part interface.

  The apply_board_connection commands uses the available interfaces of the
  current board part defined in the project. An error is returned if the
  project uses a target part rather than a target board. You can use the
  current_board_part command to identify the target board used by the
  project, or get_board_parts to list the boards available for use by the
  project. Use the get_board_part_interfaces command to determine the list of
  available interfaces on the current board.

  To remove an existing IP interface connection, specify the -ip_intf option,
  but do not specify the -board_interface. If no board part interface is
  specified, the IP interface pin is disconnected.

  This command returns a transcript of it actions, or returns an error if it
  fails.

Arguments:

  -board_interface <arg> - (Optional) Specifies the interface definition to
  connect to the specified IP core interface. If the -board_interface option
  is not specified, or is specified with an empty string value, "", an
  existing connection on the IP interface pin will be removed.

  -ip_intf <arg> - (Required) Specifies the interface pin of an IP core in
  the IP integrator block design defined by the -diagram option. The IP
  Interface pin is specified in the form <IP_core_name>/<interface_pin_name>.
  In the first example below, the IP core instance name is
  "/proc_sys_reset_0" and the Interface pin is "/ext_reset", combined as seen
  in the example.

  -diagram <arg> - (Required) The name of the IP integrator block design
  where the IP core instance is found.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example connects the SGMII interface, defined in the current
  board part, to the processor reset IP core:

    apply_board_connection -board_interface "reset" \
       -ip_intf "/proc_sys_reset_0/ext_reset" -diagram "design_2"

  This example removes the connection on the specified interface pin, because
  the -board_interface option is an empty string:

    apply_board_connection -board_interface "" \
       -ip_intf "/proc_sys_reset_0/ext_reset" -diagram "design_2"

See Also:

   *  create_port
   *  current_board_part
   *  get_board_part_interfaces
   *  get_board_parts
   *  write_checkpoint
   *  write_edif


@@@COMMAND: apply_hw_ila_trigger@@@
apply_hw_ila_trigger

Description: 
Apply trigger at startup init values to an ILA core in the design

Syntax: 
apply_hw_ila_trigger  [-ila_cell <arg>] [-quiet] [-verbose] [<file>]

Usage: 
  Name         Description
  ------------------------
  [-ila_cell]  Apply trigger settings to this ila cell
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<file>]     ILA startup trigger settings file

Categories: 
Debug

Description:

  Apply a trigger configuration file to the bitstream of a design, to support
  Integrated Logic Analyzer (ILA) trigger at startup.

  This command is used to configure the trigger settings of an ILA core in a
  design bitstream (.bit) file, so that the ILA debug core is armed to
  trigger on events immediately after device configuration and startup. This
  allows data to be captured from the earliest stages of device activity,
  which would not be possible through the use of the Hardware Manager feature
  of the AMD Vivado Design Suite, and the run_hw_ila command.

  The apply_hw_ila_trigger command reads a trigger configuration file written
  by run_hw_ila -file and applies the various trigger settings to the ILA
  core in the implemented design. The trigger configuration for the ILA core
  then become part of the bitstream written by write_bitstream, that is used
  to program the FPGA device.

  The process for using the trigger at startup feature includes the following
  steps:

   *  From the Hardware Manager, use run_hw_ila -file to export the trigger
      register map file for the ILA core.

   *  Open the implemented design, or the implemented design checkpoint.

   *  Use the apply_hw_ila_trigger command to apply the trigger settings to
      the in-memory design.

   *  Use the write_bitstream command to write the bitstream with the applied
      trigger configuration file.

      Note: Be sure to use the write_bitstream command, and not the Flow
      Navigator commands in the Vivado IDE.

   *  Return to the Hardware Manager, and use program_hw_device to program
      the hw_device using the new bitstream file.

  Once programmed, the new ILA core should immediately arm at startup. In the
  Vivado logic analyzer feature, you should see the "Trigger Capture Status"
  for the ILA core is now populated with captured data samples if trigger
  events or capture conditions have occurred. Refer to the Vivado Design
  Suite User Guide: Vivado Programming and Debugging (UG908) for more
  information.

Arguments:

  -ila_cell <arg> - (Optional) Apply trigger settings to the specified ILA
  cell. The cell must be specified as an object using the get_cells command.

  Note: The trigger configuration file includes the instance information for
  the ILA cell it applies to. The -ila_cell option is not required, and
  should only be used to apply the trigger file to a different ILA cell in
  the design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Optional) Specify a trigger configuration file that was created
  by the run_hw_ila -file command.

Example:

  The following example applies the trigger configurations to the ILA cell
  instance that is defined in the specified file:

    apply_hw_ila_trigger C:/Data/ila1_triggers.tas

See Also:

   *  current_hw_device
   *  current_hw_ila
   *  get_hw_ilas
   *  program_hw_devices
   *  run_hw_ila
   *  write_bitstream


@@@COMMAND: archive_project@@@
archive_project

Description: 
Archive the current project

Syntax: 
archive_project  [-temp_dir <arg>] [-force] [-exclude_run_results]
                 [-include_config_settings] [-include_runs_in_progress]
                 [-include_local_ip_cache] [-quiet] [-verbose] [<file>]

Returns: 
true

Usage: 
  Name                         Description
  ----------------------------------------
  [-temp_dir]                  specify temporary location to save project 
                               copy to archive
                               Default: .
  [-force]                     Overwrite existing archived file
  [-exclude_run_results]       Exclude run results from the archive
  [-include_config_settings]   Include current project environment 
                               configuration settings/files in archive
  [-include_runs_in_progress]  Include run result even if the run is in 
                               progress, this switch will be ignored if 
                               -exclude_run_results is specified
  [-include_local_ip_cache]    Include IP cache results in the archive
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution
  [<file>]                     Name of the archive file

Categories: 
Project

Description:

  Archives a project to store as backup, or to encapsulate the design and
  send it to a remote site. The tool parses the hierarchy of the design,
  copies the required source files, include files, and remote files from the
  library directories, copies the constraint files, copies the results of the
  various synthesis, simulation, and implementation runs, and then creates a
  ZIP file of the project.

  Tip: In order to archive the tcl.pre and tcl.post scripts, associated with
  the synthesis and implementation steps in the Design Run Settings dialog
  box, you must add these script files to the project as design sources.

  An alternative method of archiving the project is using write_project_tcl
  to create a Tcl script that will recreate the project in its current form.

Arguments:

  -temp_dir <arg> - (Optional) Specify a temporary directory to copy files to
  when creating the project archive. The temporary directory will be created
  if it does not exist, and will be emptied when the archive process is
  complete. By default, the Vivado tool will create a temporary directory
  inside of the current working directory.

  -force - (Optional) Overwrite an existing ZIP file of the same name. If the
  ZIP file exists, the tool returns an error unless the -force argument is
  specified.

  -exclude_run_results - (Optional) Exclude the results of any synthesis or
  implementation runs. This command can greatly reduce the size of a project
  archive.

  -include_config_settings - (Optional) Add any initialization Tcl commands
  (init.tcl) to the archive file under the <project_name>/config_settings
  folder.

  -include_runs_in_progress - (Optional) Include data in the archive from the
  directories of incomplete runs. This switch will be ignored if
  -exclude_run_results is specified.

  -include_local_ip_cache - (Optional) Include the cached IP synthesis
  results in the project archive. This command only includes cached synthesis
  results if the IP cache is local to the project rather than remote. Refer
  to the config_ip_cache command for more information.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Optional) The name of the ZIP file to be created by the
  archive_project command. If <file> is not specified, a ZIP file with the
  same name as the project is created.

Examples:

  The following command archives the current project:

    archive_project

  Note: The project archive is named <project_name>.zip because no file name
  is specified.

  The following example specifies project_3 as the current project, and then
  archives that project into a file called proj3.zip:

    current_project project_3
    archive_project -force -exclude_run_results proj3.zip

  Note: The use of the -force argument causes the tool to overwrite the
  proj3.zip file if one exists. The use of the -exclude_run_results argument
  causes the tool to leave any results from synthesis or implementation runs
  out of the archive. The various runs defined in the project are included in
  the archive, but not any of the results.

  The following command archives the current project in the specified file,
  overwrites an existing file if needed, excludes the run results, and
  includes any configuration settings used when launching the AMD Vivado
  Design Suite tool:

    archive_project -force mb1_archive.zip -temp_dir C:/Data/Temp \
       -exclude_run_results -include_config_settings

See Also:

   *  current_project
   *  write_project_tcl


@@@COMMAND: array@@@
array(n)              Tcl Built-In Commands              array(n)



_________________________________________________________________

NAME
       array - Manipulate array variables

SYNOPSIS
       array option arrayName ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       This  command  performs  one  of several operations on the
       variable given by arrayName.  Unless  otherwise  specified
       for  individual commands below, arrayName must be the name
       of an existing array variable.  The option argument deter-
       mines  what  action  is  carried  out by the command.  The
       legal options (which may be abbreviated) are:

       array anymore arrayName searchId
              Returns 1 if there are any more elements left to be
              processed  in  an  array  search, 0 if all elements
              have already  been  returned.   SearchId  indicates
              which  search  on arrayName to check, and must have
              been the return value from a previous invocation of
              array  startsearch.   This  option  is particularly
              useful if an array has an  element  with  an  empty
              name, since the return value from array nextelement
              will not indicate whether the search has been  com-
              pleted.

       array donesearch arrayName searchId
              This   command   terminates  an  array  search  and
              destroys all the state associated with that search.
              SearchId  indicates  which  search  on arrayName to
              destroy, and must have been the return value from a
              previous  invocation of array startsearch.  Returns
              an empty string.

       array exists arrayName
              Returns 1 if arrayName is an array variable,  0  if
              there  is  no  variable  by that name or if it is a
              scalar variable.

       array get arrayName ?pattern?
              Returns a list containing pairs of  elements.   The
              first  element  in each pair is the name of an ele-
              ment in arrayName and the second  element  of  each
              pair  is the value of the array element.  The order
              of the pairs is undefined.  If pattern is not spec-
              ified,  then  all  of the elements of the array are
              included in the result.  If pattern  is  specified,
              then  only those elements whose names match pattern
              (using the matching  rules  of  string  match)  are
              included.  If arrayName is not the name of an array
              variable, or if the  array  contains  no  elements,
              then  an  empty list is returned.  If traces on the
              array modify the list  of  elements,  the  elements
              returned are those that exist both before and after
              the call to array get.

       array names arrayName ?mode? ?pattern?
              Returns a list containing the names of all  of  the
              elements in the array that match pattern.  Mode may
              be one of -exact, -glob, or -regexp.  If specified,
              mode  designates  which  matching  rules  to use to
              match pattern against the names of the elements  in
              the  array.   If  not  specified,  mode defaults to
              -glob.  See the documentation for string match  for
              information  on  glob style matching, and the docu-
              mentation for  regexp  for  information  on  regexp
              matching.   If  pattern is omitted then the command
              returns all of the element names in the array.   If
              there  are  no (matching) elements in the array, or
              if arrayName is not the name of an array  variable,
              then an empty string is returned.

       array nextelement arrayName searchId
              Returns  the name of the next element in arrayName,
              or an empty string if  all  elements  of  arrayName
              have  already  been  returned  in this search.  The
              searchId argument identifies the search,  and  must
              have  been the return value of an array startsearch
              command.  Warning:  if elements  are  added  to  or
              deleted from the array, then all searches are auto-
              matically terminated just as  if  array  donesearch
              had been invoked; this will cause array nextelement
              operations to fail for those searches.

       array set arrayName list
              Sets the values of one or more elements  in  array-
              Name.   list must have a form like that returned by
              array get, consisting of an  even  number  of  ele-
              ments.    Each  odd-numbered  element  in  list  is
              treated as an element name  within  arrayName,  and
              the  following  element  in  list  is used as a new
              value for that  array  element.   If  the  variable
              arrayName does not already exist and list is empty,
              arrayName is created with an empty array value.

       array size arrayName
              Returns a decimal string giving the number of  ele-
              ments  in  the array.  If arrayName is not the name
              of an array then 0 is returned.

       array startsearch arrayName
              This  command  initializes  an   element-by-element
              search  through  the array given by arrayName, such
              that invocations of the array  nextelement  command
              will return the names of the individual elements in
              the array.  When the search has been completed, the
              array  donesearch  command  should be invoked.  The
              return value is a search identifier  that  must  be
              used in array nextelement and array donesearch com-
              mands; it allows multiple searches to  be  underway
              simultaneously for the same array.  It is currently
              more efficient and easier to use either  the  array
              get or array names, together with foreach, to iter-
              ate over all but very large arrays.  See the  exam-
              ples below for how to do this.

       array statistics arrayName
              Returns  statistics  about the distribution of data
              within the hashtable  that  represents  the  array.
              This  information includes the number of entries in
              the table, the number of buckets, and the  utiliza-
              tion of the buckets.

       array unset arrayName ?pattern?
              Unsets  all of the elements in the array that match
              pattern (using the matching rules of string match).
              If  arrayName  is not the name of an array variable
              or there are no matching elements in the array,  no
              error  will  be  raised.  If pattern is omitted and
              arrayName is an array variable,  then  the  command
              unsets   the  entire  array.   The  command  always
              returns an empty string.

EXAMPLES
              array set colorcount {
                 red   1
                 green 5
                 blue  4
                 white 9
              }

              foreach {color count} [array get colorcount] {
                 puts "Color: $color Count: $count"
              }
                --> Color: blue Count: 4
                  Color: white Count: 9
                  Color: green Count: 5
                  Color: red Count: 1

              foreach color [array names colorcount] {
                 puts "Color: $color Count: $colorcount($color)"
              }
                --> Color: blue Count: 4
                  Color: white Count: 9
                  Color: green Count: 5
                  Color: red Count: 1

              foreach color [lsort [array names colorcount]] {
                 puts "Color: $color Count: $colorcount($color)"
              }
                --> Color: blue Count: 4
                  Color: green Count: 5
                  Color: red Count: 1
                  Color: white Count: 9

              array statistics colorcount
                --> 4 entries in table, 4 buckets
                  number of buckets with 0 entries: 1
                  number of buckets with 1 entries: 2
                  number of buckets with 2 entries: 1
                  number of buckets with 3 entries: 0
                  number of buckets with 4 entries: 0
                  number of buckets with 5 entries: 0
                  number of buckets with 6 entries: 0
                  number of buckets with 7 entries: 0
                  number of buckets with 8 entries: 0
                  number of buckets with 9 entries: 0
                  number of buckets with 10 or more entries: 0
                  average search distance for entry: 1.2

SEE ALSO
       list(n), string(n), variable(n), trace(n), foreach(n)

KEYWORDS
       array, element names, search



Tcl                            8.3                       array(n)


@@@COMMAND: auto_detect_xpm@@@
auto_detect_xpm

Description: 
Auto detect the XPM Libraries that are used in the design and set the XPM_LIBRARIES project property.

Syntax: 
auto_detect_xpm  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
FileIO, Project

Description:

  This command collects the list of Xilinx Parameterized Macros (XPM) used in
  RTL design files and sets the XPM_LIBRARIES property. Because it identifies
  XPM used in the RTL source files, it must be used after the RTL files are
  read or added to the design as shown in the example.

  Note: This command is intended for use in non-project mode, and is not
  needed for project-based flows.

  This command will find all the XPMs used in the user RTL and update the
  XPM_LIBRARIES property on the current project. Synthesis and simulation
  will use the XPM_LIBRARIES property to properly support these macros.

  This command returns nothing, or returns an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reads the specified RTL file, and then uses
  auto_detect_xpm to define the XPM_LIBRARIES used in the files:

    read_verilog ../top_bgRAM_173_0.v 
    read_xdc ../top_bgRAM_173_0.xdc 
    auto_detect_xpm 
    

See Also:

   *  read_verilog
   *  read_vhdl


@@@COMMAND: binary@@@
binary(n)             Tcl Built-In Commands             binary(n)



_________________________________________________________________

NAME
       binary - Insert and extract fields from binary strings

SYNOPSIS
       binary format formatString ?arg arg ...?
       binary scan string formatString ?varName varName ...?
_________________________________________________________________

DESCRIPTION
       This  command  provides facilities for manipulating binary
       data.  The first form, binary  format,  creates  a  binary
       string  from  normal  Tcl  values.  For example, given the
       values 16 and 22, on a 32-bit architecture, it might  pro-
       duce  an  8-byte  binary  string  consisting of two 4-byte
       integers, one for each of the numbers.  The second form of
       the  command,  binary scan, does the opposite: it extracts
       data from a binary string and returns it as  ordinary  Tcl
       string values.

BINARY FORMAT
       The  binary format command generates a binary string whose
       layout is specified by the formatString and whose contents
       come  from the additional arguments.  The resulting binary
       value is returned.

       The formatString consists of a sequence of  zero  or  more
       field  specifiers  separated by zero or more spaces.  Each
       field specifier is a single type character followed by  an
       optional  flag  character  followed by an optional numeric
       count.  Most field  specifiers  consume  one  argument  to
       obtain  the  value  to  be  formatted.  The type character
       specifies how the value is to  be  formatted.   The  count
       typically  indicates  how many items of the specified type
       are taken from the value.  If present, the count is a non-
       negative  decimal  integer  or *, which normally indicates
       that all of the items in the value are to be used.  If the
       number of arguments does not match the number of fields in
       the format string that consume arguments, then an error is
       generated.  The  flag  character is ignored for for binary
       format.

       Here is a small example to clarify  the  relation  between
       the field specifiers and the arguments:
              binary format d3d {1.0 2.0 3.0 4.0} 0.1

       The  first argument is a list of four numbers, but because
       of the count of 3 for the associated field specifier, only
       the first three will be used. The second argument is asso-
       ciated with the  second  field  specifier.  The  resulting
       binary  string contains the four numbers 1.0, 2.0, 3.0 and
       0.1.

       Each type-count pair moves an imaginary cursor through the
       binary  data,  storing  bytes  at the current position and
       advancing the cursor to just after the last  byte  stored.
       The  cursor is initially at position 0 at the beginning of
       the data.  The type may be any one of the following  char-
       acters:

       a    Stores  a  byte  string of length count in the output
            string.  Every character is taken as modulo 256 (i.e.
            the low byte of every character is used, and the high
            byte discarded) so when storing character strings not
            wholly     expressible     using    the    characters
            \u0000-\u00ff, the encoding convertto command  should
            be  used  first to change the string into an external
            representation if  this  truncation  is  not  desired
            (i.e.  if  the  characters  are  not  part of the ISO
            8859-1 character set.)  If arg has fewer  than  count
            bytes, then additional zero bytes are used to pad out
            the field.  If  arg  is  longer  than  the  specified
            length,  the  extra  characters  will be ignored.  If
            count is *, then all of the bytes in arg will be for-
            matted.  If count is omitted, then one character will
            be formatted.  For example,
                   binary format a7a*a alpha bravo charlie
            will    return     a     string     equivalent     to
            alpha\000\000bravoc,
                   binary format a* [encoding convertto utf-8 \u20ac]
            will  return  a  string  equivalent  to  \342\202\254
            (which is the UTF-8 byte sequence for a Euro-currency
            character) and
                   binary format a* [encoding convertto iso8859-15 \u20ac]
            will return a string equivalent to \244 (which is the
            ISO 8859-15 byte sequence for a Euro-currency charac-
            ter). Contrast these last two with:
                   binary format a* \u20ac
            which returns a string equivalent to \254 (i.e. \xac)
            by truncating the high-bits  of  the  character,  and
            which is probably not what is desired.

       A    This  form  is  the  same as a except that spaces are
            used for padding instead of nulls.  For example,
                   binary format A6A*A alpha bravo charlie
            will return alpha bravoc.

       b    Stores a string of count binary digits in low-to-high
            order  within  each  byte  in the output string.  Arg
            must contain a sequence of 1 and 0  characters.   The
            resulting  bytes  are  emitted in first to last order
            with the bits being formatted  in  low-to-high  order
            within  each  byte.  If arg has fewer than count dig-
            its, then zeros will be used for the remaining  bits.
            If  arg has more than the specified number of digits,
            the extra digits will be ignored.   If  count  is  *,
            then  all of the digits in arg will be formatted.  If
            count is omitted, then one digit will  be  formatted.
            If  the  number  of  bits formatted does not end at a
            byte boundary, the remaining bits of  the  last  byte
            will be zeros.  For example,
                   binary format b5b* 11100 111000011010
            will return a string equivalent to \x07\x87\x05.

       B    This  form  is the same as b except that the bits are
            stored in high-to-low order within  each  byte.   For
            example,
                   binary format B5B* 11100 111000011010
            will return a string equivalent to \xe0\xe1\xa0.

       H    Stores  a string of count hexadecimal digits in high-
            to-low within each byte in the  output  string.   Arg
            must  contain  a  sequence  of  characters in the set
            "0123456789abcdefABCDEF".  The  resulting  bytes  are
            emitted  in  first  to last order with the hex digits
            being formatted  in  high-to-low  order  within  each
            byte.  If arg has fewer than count digits, then zeros
            will be used for the remaining digits.   If  arg  has
            more  than  the specified number of digits, the extra
            digits will be ignored.  If count is *, then  all  of
            the  digits  in  arg  will be formatted.  If count is
            omitted, then one digit will be  formatted.   If  the
            number  of  digits  formatted  does not end at a byte
            boundary, the remaining bits of the last byte will be
            zeros.  For example,
                   binary format H3H*H2 ab DEF 987
            will     return     a     string     equivalent    to
            \xab\x00\xde\xf0\x98.

       h    This form is the same as H except that the digits are
            stored in low-to-high order within each byte. This is
            seldom required. For example,
                   binary format h3h*h2 AB def 987
            will    return     a     string     equivalent     to
            \xba\x00\xed\x0f\x89.

       c    Stores one or more 8-bit integer values in the output
            string.  If no count is specified, then arg must con-
            sist  of an integer value. If count is specified, arg
            must consist of a list containing at least that  many
            integers.  The  low-order  8 bits of each integer are
            stored as a one-byte value at  the  cursor  position.
            If  count  is *, then all of the integers in the list
            are formatted. If the number of elements in the  list
            is  greater  than  count, then the extra elements are
            ignored.  For example,
                   binary format c3cc* {3 -3 128 1} 260 {2 5}
            will    return     a     string     equivalent     to
            \x03\xfd\x80\x04\x02\x05, whereas
                   binary format c {2 5}
            will generate an error.

       s    This  form is the same as c except that it stores one
            or more 16-bit integers in little-endian  byte  order
            in  the output string.  The low-order 16-bits of each
            integer are stored as a two-byte value at the  cursor
            position  with  the  least  significant  byte  stored
            first.  For example,
                   binary format s3 {3 -3 258 1}
            will    return     a     string     equivalent     to
            \x03\x00\xfd\xff\x02\x01.

       S    This  form is the same as s except that it stores one
            or more 16-bit integers in big-endian byte  order  in
            the output string.  For example,
                   binary format S3 {3 -3 258 1}
            will     return     a     string     equivalent    to
            \x00\x03\xff\xfd\x01\x02.

       t    This form (mnemonically tiny) is the same as s and  S |
            except that it stores the 16-bit integers in the out- |
            put string in the native byte order  of  the  machine |
            where  the  Tcl script is running.  To determine what |
            the native byte order of the machine is, refer to the |
            byteOrder element of the tcl_platform array.

       i    This  form is the same as c except that it stores one
            or more 32-bit integers in little-endian  byte  order
            in  the output string.  The low-order 32-bits of each
            integer are stored as a four-byte value at the cursor
            position  with  the  least  significant  byte  stored
            first.  For example,
                   binary format i3 {3 -3 65536 1}
            will    return     a     string     equivalent     to
            \x03\x00\x00\x00\xfd\xff\xff\xff\x00\x00\x01\x00

       I    This  form is the same as i except that it stores one
            or more one or more  32-bit  integers  in  big-endian
            byte order in the output string.  For example,
                   binary format I3 {3 -3 65536 1}
            will     return     a     string     equivalent    to
            \x00\x00\x00\x03\xff\xff\xff\xfd\x00\x01\x00\x00

       n    This form (mnemonically number or normal) is the same |
            as  i and I except that it stores the 32-bit integers |
            in the output string in the native byte order of  the |
            machine  where  the Tcl script is running.  To deter- |
            mine what the native byte order of  the  machine  is, |
            refer  to  the  byteOrder element of the tcl_platform |
            array.

       w    This form is the same as c except that it stores  one
            or  more  64-bit integers in little-endian byte order
            in the output string.  The low-order 64-bits of  each
            integer are stored as an eight-byte value at the cur-
            sor position with the least significant  byte  stored
            first.  For example,
                   binary format w 7810179016327718216
            will return the string HelloTcl

       W    This  form is the same as w except that it stores one
            or more one or more  64-bit  integers  in  big-endian
            byte order in the output string.  For example,
                   binary format Wc 4785469626960341345 110
            will return the string BigEndian

       m    This  form (mnemonically the mirror of w) is the same |
            as w and W except that it stores the 64-bit  integers |
            in  the output string in the native byte order of the |
            machine where the Tcl script is running.   To  deter- |
            mine  what  the  native byte order of the machine is, |
            refer to the byteOrder element  of  the  tcl_platform |
            array.

       f    This  form is the same as c except that it stores one
            or more one or more single-precision  floating  point
            numbers in the machine's native representation in the
            output string.  This representation is  not  portable
            across  architectures,  so  it  should not be used to
            communicate floating point numbers  across  the  net-
            work.   The  size of a floating point number may vary
            across architectures, so the number of bytes that are
            generated  may  vary.   If  the  value  overflows the
            machine's native representation, then  the  value  of
            FLT_MAX  as  defined  by  the  system  will  be  used
            instead.  Because Tcl uses double-precision  floating
            point  numbers  internally, there may be some loss of
            precision in the conversion to single-precision.  For
            example, on a Windows system running on an Intel Pen-
            tium processor,
                   binary format f2 {1.6 3.4}
            will    return     a     string     equivalent     to
            \xcd\xcc\xcc\x3f\x9a\x99\x59\x40.

       r    This form (mnemonically real) is the same as f except |
            that it stores the  single-precision  floating  point |
            numbers in little-endian order.  This conversion only |
            produces meaningful  output  when  used  on  machines |
            which  use  the  IEEE  floating  point representation |
            (very common, but not universal.)

       R    This form is the same as r except that it stores  the |
            single-precision floating point numbers in big-endian |
            order.

       d    This form is the same as f except that it stores  one
            or  more  one or more double-precision floating point
            numbers in the machine's native representation in the
            output string.  For example, on a Windows system run-
            ning on an Intel Pentium processor,
                   binary format d1 {1.6}
            will    return     a     string     equivalent     to
            \x9a\x99\x99\x99\x99\x99\xf9\x3f.

       q    This  form (mnemonically the mirror of d) is the same |
            as d  except  that  it  stores  the  double-precision |
            floating  point numbers in little-endian order.  This |
            conversion only produces meaningful output when  used |
            on  machines which use the IEEE floating point repre- |
            sentation (very common, but not universal.)

       Q    This form is the same as q except that it stores  the |
            double-precision floating point numbers in big-endian |
            order.

       x    Stores count null bytes in  the  output  string.   If
            count  is  not  specified,  stores one null byte.  If
            count is *, generates an error.  This type  does  not
            consume an argument.  For example,
                   binary format a3xa3x2a3 abc def ghi
            will     return     a     string     equivalent    to
            abc\000def\000\000ghi.

       X    Moves the cursor  back  count  bytes  in  the  output
            string.   If count is * or is larger than the current
            cursor position, then the  cursor  is  positioned  at
            location  0  so that the next byte stored will be the
            first byte in the result string.  If count is omitted
            then  the  cursor  is moved back one byte.  This type
            does not consume an argument.  For example,
                   binary format a3X*a3X2a3 abc def ghi
            will return dghi.

       @    Moves the cursor to the absolute location in the out-
            put  string specified by count.  Position 0 refers to
            the first byte in the output string.  If count refers
            to  a  position  beyond  the last byte stored so far,
            then null bytes will be placed in  the  uninitialized
            locations and the cursor will be placed at the speci-
            fied location.  If count is *,  then  the  cursor  is
            moved  to  the  current end of the output string.  If
            count is omitted, then an error  will  be  generated.
            This type does not consume an argument. For example,
                   binary format a5@2a1@*a3@10a1 abcde f ghi j
            will return abfdeghi\000\000j.

BINARY SCAN
       The  binary  scan  command  parses  fields  from  a binary
       string, returning the  number  of  conversions  performed.
       String  gives  the  input bytes to be parsed (one byte per
       character, and characters not representable as a byte have
       their high bits chopped) and formatString indicates how to
       parse it.  Each varName gives the name of a variable; when
       a  field  is scanned from string the result is assigned to
       the corresponding variable.

       As with binary format,  the  formatString  consists  of  a
       sequence  of  zero  or  more field specifiers separated by
       zero or more spaces.  Each field  specifier  is  a  single
       type  character  followed  by  an  optional flag character
       followed by an optional numeric count.  Most field  speci-
       fiers  consume  one  argument  to obtain the variable into
       which the scanned values should be placed.  The type char-
       acter  specifies how the binary data is to be interpreted.
       The count typically indicates how many items of the speci-
       fied  type are taken from the data.  If present, the count
       is a non-negative decimal integer  or  *,  which  normally
       indicates  that all of the remaining items in the data are
       to be used.  If there are not enough bytes left after  the
       current cursor position to satisfy the current field spec-
       ifier, then the corresponding variable is  left  untouched
       and  binary  scan  returns  immediately with the number of
       variables that were set.  If there are  not  enough  argu-
       ments for all of the fields in the format string that con-
       sume arguments, then an error is generated. The flag char-
       acter  "u"  may be given to cause some types to be read as
       unsigned values. The flag is accepted for all field  types
       but is ignored for non-integer fields.

       A similar example as with binary format should explain the
       relation between field specifiers and arguments in case of
       the binary scan subcommand:
              binary scan $bytes s3s first second

       This  command  (provided the binary string in the variable
       bytes is long enough) assigns a list of three integers  to
       the variable first and assigns a single value to the vari-
       able second.  If bytes contains fewer than 8  bytes  (i.e.
       four  2-byte  integers),  no  assignment to second will be
       made, and if bytes contains fewer than 6 bytes (i.e. three
       2-byte  integers),  no  assignment  to first will be made.
       Hence:
              puts [binary scan abcdefg s3s first second]
              puts $first
              puts $second
       will print (assuming neither variable is set previously):
              1
              25185 25699 26213
              can't read "second": no such variable

       It is important to note that the c, s, and S (and i and  I
       on 64bit systems) will be scanned into long data size val-
       ues.  In doing this, values that have their high  bit  set
       (0x80  for chars, 0x8000 for shorts, 0x80000000 for ints),
       will be sign extended.  Thus the following will occur:
              set signShort [binary format s1 0x8000]
              binary scan $signShort s1 val; # val == 0xFFFF8000
       If you require unsigned values you  can  include  the  "u"
       flag  character  following the field type. For example, to
       read an unsigned short value:
              set signShort [binary format s1 0x8000]
              binary scan $signShort su1 val; # val == 0x00008000

       Each type-count pair moves an imaginary cursor through the
       binary data, reading bytes from the current position.  The
       cursor is initially at position 0 at the beginning of  the
       data.   The  type  may be any one of the following charac-
       ters:

       a    The data is a byte string of length count.  If  count
            is  *, then all of the remaining bytes in string will
            be scanned into the variable.  If count  is  omitted,
            then  one  byte  will  be scanned.  All bytes scanned
            will be interpreted as being characters in the  range
            \u0000-\u00ff  so  the  encoding  convertfrom command
            will be needed if the string is not a  binary  string
            or a string encoded in ISO 8859-1.  For example,
                   binary scan abcde\000fghi a6a10 var1 var2
            will return 1 with the string equivalent to abcde\000
            stored in var1 and var2 left unmodified, and
                   binary scan \342\202\254 a* var1
                   set var2 [encoding convertfrom utf-8 $var1]
            will store a Euro-currency character in var2.

       A    This form is the same as a,  except  trailing  blanks
            and  nulls are stripped from the scanned value before
            it is stored in the variable.  For example,
                   binary scan "abc efghi  \000" A* var1
            will return 1 with abc efghi stored in var1.

       b    The data is turned into a string of count binary dig-
            its in low-to-high order represented as a sequence of
            "1" and "0" characters.  The data bytes  are  scanned
            in  first  to last order with the bits being taken in
            low-to-high order within each byte.  Any  extra  bits
            in  the  last  byte are ignored.  If count is *, then
            all of the remaining bits in string will be  scanned.
            If  count  is  omitted, then one bit will be scanned.
            For example,
                   binary scan \x07\x87\x05 b5b* var1 var2
            will  return  2  with  11100  stored  in   var1   and
            1110000110100000 stored in var2.

       B    This form is the same as b, except the bits are taken
            in high-to-low order within each byte.  For example,
                   binary scan \x70\x87\x05 B5B* var1 var2
            will  return  2  with  01110  stored  in   var1   and
            1000011100000101 stored in var2.

       H    The data is turned into a string of count hexadecimal
            digits in high-to-low order represented as a sequence
            of  characters  in  the  set "0123456789abcdef".  The
            data bytes are scanned in first to  last  order  with
            the  hex  digits  being  taken  in  high-to-low order
            within each byte. Any extra bits in the last byte are
            ignored. If count is *, then all of the remaining hex
            digits in string will be scanned. If count  is  omit-
            ted, then one hex digit will be scanned. For example,
                   binary scan \x07\xC6\x05\x1f\x34 H3H* var1 var2
            will return 2 with 07c  stored  in  var1  and  051f34
            stored in var2.

       h    This  form  is  the  same as H, except the digits are
            taken in  reverse  (low-to-high)  order  within  each
            byte. For example,
                   binary scan \x07\x86\x05\x12\x34 h3h* var1 var2
            will  return  2  with  706  stored in var1 and 502143
            stored in var2.
       Note that most code that wishes to parse  the  hexadecimal
       digits  from multiple bytes in order should use the H for-
       mat.

       c    The data is turned into count 8-bit  signed  integers
            and  stored  in the corresponding variable as a list.
            If count is *, then all of  the  remaining  bytes  in
            string  will  be  scanned.  If count is omitted, then
            one 8-bit integer will be scanned.  For example,
                   binary scan \x07\x86\x05 c2c* var1 var2
            will return 2 with 7 -122 stored in var1 and 5 stored
            in var2.  Note that the integers returned are signed,
            but they can be converted to unsigned  8-bit  quanti-
            ties using an expression like:
                   set num [expr { $num & 0xff }]

       s    The  data is interpreted as count 16-bit signed inte-
            gers represented in little-endian  byte  order.   The
            integers  are stored in the corresponding variable as
            a list.  If count is *, then  all  of  the  remaining
            bytes  in  string will be scanned.  If count is omit-
            ted, then one 16-bit integer will  be  scanned.   For
            example,
                   binary scan \x05\x00\x07\x00\xf0\xff s2s* var1 var2
            will  return 2 with 5 7 stored in var1 and -16 stored
            in var2.  Note that the integers returned are signed,
            but  they can be converted to unsigned 16-bit quanti-
            ties using an expression like:
                   set num [expr { $num & 0xffff }]

       S    This form is the same as s except that  the  data  is
            interpreted  as  count  16-bit signed integers repre-
            sented in big-endian byte order.  For example,
                   binary scan \x00\x05\x00\x07\xff\xf0 S2S* var1 var2
            will return 2 with 5 7 stored in var1 and -16  stored
            in var2.

       t    The  data is interpreted as count 16-bit signed inte- |
            gers represented in the  native  byte  order  of  the |
            machine  running  the  Tcl  script.   It is otherwise |
            identical to s and S.  To determine what  the  native |
            byte  order of the machine is, refer to the byteOrder |
            element of the tcl_platform array.

       i    The data is interpreted as count 32-bit signed  inte-
            gers  represented  in  little-endian byte order.  The
            integers are stored in the corresponding variable  as
            a  list.   If  count  is *, then all of the remaining
            bytes in string will be scanned.  If count  is  omit-
            ted,  then  one  32-bit integer will be scanned.  For
            example,
                   set str \x05\x00\x00\x00\x07\x00\x00\x00\xf0\xff\xff\xff
                   binary scan $str i2i* var1 var2
            will return 2 with 5 7 stored in var1 and -16  stored
            in var2.  Note that the integers returned are signed,
            but they can be converted to unsigned 32-bit  quanti-
            ties using an expression like:
                   set num [expr { $num & 0xffffffff }]

       I    This  form  is  the same as I except that the data is
            interpreted as count 32-bit  signed  integers  repre-
            sented in big-endian byte order.  For example,
                   set str \x00\x00\x00\x05\x00\x00\x00\x07\xff\xff\xff\xf0
                   binary scan $str I2I* var1 var2
            will  return 2 with 5 7 stored in var1 and -16 stored
            in var2.

       n    The data is interpreted as count 32-bit signed  inte- |
            gers  represented  in  the  native  byte order of the |
            machine running the  Tcl  script.   It  is  otherwise |
            identical  to  i and I.  To determine what the native |
            byte order of the machine is, refer to the  byteOrder |
            element of the tcl_platform array.

       w    The  data is interpreted as count 64-bit signed inte-
            gers represented in little-endian  byte  order.   The
            integers  are stored in the corresponding variable as
            a list.  If count is *, then  all  of  the  remaining
            bytes  in  string will be scanned.  If count is omit-
            ted, then one 64-bit integer will  be  scanned.   For
            example,
                   set str \x05\x00\x00\x00\x07\x00\x00\x00\xf0\xff\xff\xff
                   binary scan $str wi* var1 var2
            will return 2 with 30064771077 stored in var1 and -16
            stored in var2.  Note that the integers returned  are
            signed  and  cannot be represented by Tcl as unsigned
            values.

       W    This form is the same as w except that  the  data  is
            interpreted  as  count  64-bit signed integers repre-
            sented in big-endian byte order.  For example,
                   set str \x00\x00\x00\x05\x00\x00\x00\x07\xff\xff\xff\xf0
                   binary scan $str WI* var1 var2
            will return 2 with 21474836487 stored in var1 and -16
            stored in var2.

       m    The  data is interpreted as count 64-bit signed inte- |
            gers represented in the  native  byte  order  of  the |
            machine  running  the  Tcl  script.   It is otherwise |
            identical to w and W.  To determine what  the  native |
            byte  order of the machine is, refer to the byteOrder |
            element of the tcl_platform array.

       f    The data is  interpreted  as  count  single-precision
            floating point numbers in the machine's native repre-
            sentation.  The floating point numbers are stored  in
            the corresponding variable as a list.  If count is *,
            then all of the remaining bytes  in  string  will  be
            scanned.  If count is omitted, then one single-preci-
            sion floating point number will be scanned.  The size
            of  a floating point number may vary across architec-
            tures, so the number of bytes that  are  scanned  may
            vary.   If the data does not represent a valid float-
            ing point number, the resulting  value  is  undefined
            and  compiler  dependent.   For example, on a Windows
            system running on an Intel Pentium processor,
                   binary scan \x3f\xcc\xcc\xcd f var1
            will return 1 with 1.6000000238418579 stored in var1.

       r    This  form  is  the same as f except that the data is |
            interpreted as count single-precision floating  point |
            number  in  little-endian  order.  This conversion is |
            not portable to the minority  of  systems  not  using |
            IEEE floating point representations.

       R    This  form  is  the same as f except that the data is |
            interpreted as count single-precision floating  point |
            number  in  big-endian order.  This conversion is not |
            portable to the minority of systems  not  using  IEEE |
            floating point representations.

       d    This  form  is  the same as f except that the data is
            interpreted as count double-precision floating  point
            numbers  in  the machine's native representation. For
            example, on a Windows system running on an Intel Pen-
            tium processor,
                   binary scan \x9a\x99\x99\x99\x99\x99\xf9\x3f d var1
            will return 1 with 1.6000000000000001 stored in var1.

       q    This form is the same as d except that  the  data  is |
            interpreted  as count double-precision floating point |
            number in little-endian order.   This  conversion  is |
            not  portable  to  the  minority of systems not using |
            IEEE floating point representations.

       Q    This form is the same as d except that  the  data  is |
            interpreted  as count double-precision floating point |
            number in big-endian order.  This conversion  is  not |
            portable  to  the  minority of systems not using IEEE |
            floating point representations.

       x    Moves the cursor forward count bytes in  string.   If
            count  is  *  or  is  larger than the number of bytes
            after the current cursor position, then the cursor is
            positioned  after  the last byte in string.  If count
            is omitted, then the  cursor  is  moved  forward  one
            byte.   Note that this type does not consume an argu-
            ment.  For example,
                   binary scan \x01\x02\x03\x04 x2H* var1
            will return 1 with 0304 stored in var1.

       X    Moves the cursor back  count  bytes  in  string.   If
            count is * or is larger than the current cursor posi-
            tion, then the cursor is positioned at location 0  so
            that  the next byte scanned will be the first byte in
            string.  If count is omitted then the cursor is moved
            back  one byte.  Note that this type does not consume
            an argument.  For example,
                   binary scan \x01\x02\x03\x04 c2XH* var1 var2
            will return 2 with 1 2  stored  in  var1  and  020304
            stored in var2.

       @    Moves the cursor to the absolute location in the data
            string specified by  count.   Note  that  position  0
            refers  to the first byte in string.  If count refers
            to a position beyond the end of string, then the cur-
            sor  is  positioned after the last byte.  If count is
            omitted, then an error will be generated.  For  exam-
            ple,
                   binary scan \x01\x02\x03\x04 c2@1H* var1 var2
            will  return  2  with  1  2 stored in var1 and 020304
            stored in var2.

PORTABILITY ISSUES
       The r, R, q and Q conversions will only work reliably  for
       transferring  data  between  computers which are all using
       IEEE floating point representations.  This is very common,
       but  not  universal.   To  transfer floating-point numbers
       portably between all architectures, use their textual rep-
       resentation (as produced by format) instead.

EXAMPLES
       This  is  a  procedure  to write a Tcl string to a binary-
       encoded channel as UTF-8 data preceded by a length word:
              proc writeString {channel string} {
                  set data [encoding convertto utf-8 $string]
                  puts -nonewline [binary format Ia* \
                          [string length $data] $data]
              }

       This procedure reads a string  from  a  channel  that  was
       written by the previously presented writeString procedure:
              proc readString {channel} {
                  if {![binary scan [read $channel 4] I length]} {
                      error "missing length"
                  }
                  set data [read $channel $length]
                  return [encoding convertfrom utf-8 $data]
              }

SEE ALSO
       format(n), scan(n), tclvars(n)

KEYWORDS
       binary, format, scan



Tcl                            8.0                      binary(n)


@@@COMMAND: break@@@
break(n)              Tcl Built-In Commands              break(n)



_________________________________________________________________

NAME
       break - Abort looping command

SYNOPSIS
       break
_________________________________________________________________


DESCRIPTION
       This  command  is  typically  invoked inside the body of a
       looping command such as  for  or  foreach  or  while.   It
       returns  a  TCL_BREAK code, which causes a break exception
       to occur.  The exception causes the current script  to  be
       aborted  out  to  the  innermost  containing loop command,
       which then aborts  its  execution  and  returns  normally.
       Break  exceptions  are  also handled in a few other situa-
       tions, such as the catch command, Tk event  bindings,  and
       the outermost scripts of procedure bodies.

EXAMPLE
       Print a line for each of the integers from 0 to 5:
              for {set x 0} {$x<10} {incr x} {
                 if {$x > 5} {
                    break
                 }
                 puts "x is $x"
              }


SEE ALSO
       catch(n),   continue(n),  for(n),  foreach(n),  return(n),
       while(n)


KEYWORDS
       abort, break, loop



Tcl                                                      break(n)


@@@COMMAND: calc_config_time@@@
calc_config_time

Description: 
Calculate device configuration time (ms)

Syntax: 
calc_config_time  [-verbose] [-max] [-min] [-typical] [-por_used]
                  [-por_ramp <arg>] [-clk_freq <arg>] [-bitstream_size <arg>]
                  [-quiet]

Returns: 
Report

Usage: 
  Name               Description
  ------------------------------
  [-verbose]         Print out calculation parameters
  [-max]             Calculate Maximum Configuration Time
  [-min]             Calculate Minimum Configuration Time
  [-typical]         Calculate Typical Configuration Time
  [-por_used]        (Deprecated) Specify if Power On Reset (POR) is used by 
                     using a non-zero por_ramp
  [-por_ramp]        Specify a Power On Reset (POR) ramp rate as 1 ms to 50 
                     ms
                     Default: 0 ms
  [-clk_freq]        Specify a clock frequency for Slave mode, or for Master 
                     mode if using external master clock (MHz)
                     Default: 0 MHz
  [-bitstream_size]  Specify a bitstream size to override the default
                     Default: 0
  [-quiet]           Ignore command errors

Categories: 
Bitgen, Report

Description:

  Estimates the time in milliseconds (ms) to configure an AMD device for the
  current design.

  Tip: The Device Configuration Mode must be defined for this command to work.

  Some applications require that the Xilinx device be configured and
  operational within a short time. This command lets you estimate the
  configuration time for the device and design in question. The configuration
  time includes the device initialization time plus the configuration time.
  Configuration time depends on the size of the device and speed of the
  configuration logic. For more information on the configuration time refer
  to UltraFast Design Methodology Guide for the Vivado Design Suite (UG949),
  the UltraScale Architecture Configuration User Guide (UG570), or the 7
  Series FPGAs Configuration User Guide (UG470).

  Some of the settings needed to calculate the configuration time are stored
  as properties on the current design, such as the
  BITSTREAM.CONFIG.CONFIGRATE or BITSTREAM.CONFIG.EXTMASTERCCLK_EN
  properties. In some master modes, the FPGA provides the configuration clock
  to control configuration, with the nominal configuration clock frequency
  specified by BITSTREAM.CONFIG.CONFIGRATE. The property can be defined in
  the Edit Device Properties dialog box of the AMD Vivado Design Suite, or by
  using set_property to directly set the value of the specified property.

  For a slave configuration mode, or for configuration modes using an
  external master clock, the needed clock frequency is specified by the
  -clk_freq option.

  This command returns a value in milliseconds if successful, or returns an
  error if it fails.

Arguments:

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -max - (Optional) Reports the maximum configuration time as estimated by
  the command.

  -min - (Optional) Reports the minimum configuration time as estimated by
  the command.

  -typical - (Optional, default) Reports the typical configuration time as
  estimated by the command.

  -por_ramp <arg> - (Optional) Specify the power-on reset (POR) ramp rate as
  a value from 1 millisecond (ms) to 50 ms. The default is 0. You can reduce
  the power on reset time (Tpor) by controlling the ramp rate on the system.
  For specifications on the Tpor ramp options, see the FPGA configuration
  switching characteristics in the data sheet of the specific device in use.

  -clk_freq <arg> - (Optional) Specify a clock frequency in MHz for Slave
  mode, or when using an external master clock. The default is 0.

  Note: When run in a master configuration mode, the clock frequency is
  specified through the BITSTREAM.CONFIG.CONFIGRATE property.

  -por_used <arg> - (Deprecated) Specify if a Power On Reset (POR) is used.
  Replaced by using a non-zero por_ramp command line option.

  -bitstream_size <arg> - (Optional) Specify a bitstream size in bits.
  Default is the design bitstream size.

  Tip: The bitstream size is derived automatically from the bitstream
  associated with the current design. Specifying this option will override
  the automatically derived value.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

Example:

  The following example returns the maximum calculated configuration time for
  the current target part based on the specified external clock frequency:

    calc_config_time -max -clk_freq 50

See Also:

   *  program_hw_cfgmem
   *  set_property
   *  write_bitstream


@@@COMMAND: can_resolve_reference@@@
can_resolve_reference

Description: 
Check if a module can be referenced

Syntax: 
can_resolve_reference  [-quiet] [-verbose] <module>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <module>    module name

Categories: 
Object, Project

Description:

  This command is used to validate reference to modules prior to trying to
  import them into the design. Its primary use is in scripts like the script
  produced by the write_bd_tcl command, though you can use it in your own
  scripts as well.

  This command returns 0 if the reference cannot be resolved, or returns 1 if
  it can be resolved.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <module> - (Required) Specifies the name of the module to validate. The
  module name is referenced from a loaded RTL design source file.

Examples:

  This example determines if the reference to the specified module can be
  resolved:

    can_resolve_reference clk_div 
    

See Also:

   *  write_bd_tcl
   *  write_project_tcl


@@@COMMAND: case@@@
case(n)               Tcl Built-In Commands               case(n)



_________________________________________________________________

NAME
       case  -  Evaluate  one  of several scripts, depending on a
       given value

SYNOPSIS
       case string ?in? patList body ?patList body ...?

       case string ?in? {patList body ?patList body ...?}
_________________________________________________________________


DESCRIPTION
       Note: the case command is obsolete and is  supported  only
       for  backward  compatibility.  At some point in the future
       it may be removed entirely.  You  should  use  the  switch
       command instead.

       The  case  command  matches  string  against  each  of the
       patList arguments in order.  Each patList  argument  is  a
       list  of  one  or more patterns.  If any of these patterns
       matches string then  case  evaluates  the  following  body
       argument  by passing it recursively to the Tcl interpreter
       and returns the result of that evaluation.   Each  patList
       argument consists of a single pattern or list of patterns.
       Each pattern may contain any of the  wild-cards  described
       under string match.  If a patList argument is default, the
       corresponding body will be evaluated if no patList matches
       string.   If  no  patList  argument  matches string and no
       default is given, then the case command returns  an  empty
       string.

       Two  syntaxes  are provided for the patList and body argu-
       ments.  The first uses a separate argument for each of the
       patterns  and commands; this form is convenient if substi-
       tutions are desired on some of the patterns  or  commands.
       The  second  form  places all of the patterns and commands
       together into a single argument; the  argument  must  have
       proper list structure, with the elements of the list being
       the patterns and commands.  The second form makes it  easy
       to  construct  multi-line  case commands, since the braces
       around the whole list make it  unnecessary  to  include  a
       backslash  at  the  end  of  each line.  Since the patList
       arguments are in braces in the second form, no command  or
       variable  substitutions are performed on them;  this makes
       the behavior of the second form different than  the  first
       form in some cases.


SEE ALSO
       switch(n)


KEYWORDS
       case, match, regular expression



Tcl                            7.0                        case(n)


@@@COMMAND: catch@@@
catch(n)              Tcl Built-In Commands              catch(n)



_________________________________________________________________

NAME
       catch - Evaluate script and trap exceptional returns

SYNOPSIS
       catch script ?resultVarName? ?optionsVarName?
_________________________________________________________________


DESCRIPTION
       The  catch  command  may  be  used  to prevent errors from
       aborting command interpretation.  The catch command  calls
       the  Tcl  interpreter  recursively  to execute script, and
       always returns without raising an error, regardless of any
       errors that might occur while executing script.

       If  script  raises  an error, catch will return a non-zero
       integer value corresponding to the exceptional return code
       returned  by evaluation of script.  Tcl defines the normal
       return code from script evaluation  to  be  zero  (0),  or
       TCL_OK.  Tcl also defines four exceptional return codes: 1
       (TCL_ERROR),  2  (TCL_RETURN),  3   (TCL_BREAK),   and   4
       (TCL_CONTINUE).   Errors during evaluation of a script are
       indicated by a return code of TCL_ERROR.  The other excep-
       tional return codes are returned by the return, break, and
       continue commands and in other special situations as docu-
       mented.   Tcl packages can define new commands that return
       other integer values as return codes as well, and  scripts
       that  make  use  of the return -code command can also have
       return codes other than the five defined by Tcl.

       If the resultVarName argument is given, then the  variable
       it  names  is  set to the result of the script evaluation.
       When the return code from the script is 1 (TCL_ERROR), the
       value  stored  in resultVarName is an error message.  When
       the return code from the script is 0 (TCL_OK),  the  value
       stored in resultVarName is the value returned from script.

       If the optionsVarName argument is given, then the variable |
       it names is set to a dictionary of return options returned |
       by evaluation of script.  Tcl specifies two  entries  that |
       are  always  defined  in the dictionary: -code and -level. |
       When the return code from  evaluation  of  script  is  not |
       TCL_RETURN,  the  value of the -level entry will be 0, and |
       the value of the -code entry  will  be  the  same  as  the |
       return code.  Only when the return code is TCL_RETURN will |
       the values of the -level and -code  entries  be  something |
       else,  as  further  described in the documentation for the |
       return command.                                            |

       When  the  return  code  from  evaluation  of  script   is |
       TCL_ERROR,  three  additional  entries  are defined in the |
       dictionary of return  options  stored  in  optionsVarName: |
       -errorinfo,  -errorcode, and -errorline.  The value of the |
       -errorinfo entry is a  formatted  stack  trace  containing |
       more information about the context in which the error hap- |
       pened.  The formatted stack trace is meant to be read by a |
       person.   The  value of the -errorcode entry is additional |
       information about the error stored as a list.  The -error- |
       code  value  is meant to be further processed by programs, |
       and may not be particularly readable by people.  The value |
       of  the  -errorline  entry  is an integer indicating which |
       line  of  script  was  being  evaluated  when  the   error |
       occurred.   The  values  of  the -errorinfo and -errorcode |
       entries of the most recent error  are  also  available  as |
       values of the global variables ::errorInfo and ::errorCode |
       respectively.                                              |

       Tcl packages may provide commands that set  other  entries |
       in  the  dictionary of return options, and the return com- |
       mand may be used by scripts to set return options in addi- |
       tion to those defined above.

EXAMPLES
       The  catch command may be used in an if to branch based on
       the success of a script.
              if { [catch {open $someFile w} fid] } {
                  puts stderr "Could not open $someFile for writing\n$fid"
                  exit 1
              }

       There are more complex examples of catch usage in the doc-
       umentation for the return command.


SEE ALSO
       break(n),   continue(n),   dict(n),  error(n),  return(n),
       tclvars(n)


KEYWORDS
       catch, error



Tcl                            8.5                       catch(n)


@@@COMMAND: cd@@@
cd(n)                 Tcl Built-In Commands                 cd(n)



_________________________________________________________________

NAME
       cd - Change working directory

SYNOPSIS
       cd ?dirName?
_________________________________________________________________


DESCRIPTION
       Change the current working directory to dirName, or to the
       home directory (as specified in the HOME environment vari-
       able)  if  dirName is not given.  Returns an empty string.
       Note that the current working directory is  a  per-process
       resource; the cd command changes the working directory for
       all interpreters  and  (in  a  threaded  environment)  all
       threads.

EXAMPLES
       Change to the home directory of the user fred:
              cd ~fred

       Change to the directory lib that is a sibling directory of
       the current one:
              cd ../lib


SEE ALSO
       filename(n), glob(n), pwd(n)


KEYWORDS
       working directory



Tcl                                                         cd(n)


@@@COMMAND: chan@@@
chan(n)               Tcl Built-In Commands               chan(n)



_________________________________________________________________

NAME
       chan - Read, write and manipulate channels

SYNOPSIS
       chan option ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       This command provides several operations for reading from,
       writing to and otherwise manipulating open channels  (such
       as have been created with the open and socket commands, or
       the default named channels stdin, stdout or  stderr  which
       correspond  to  the  process's  standard input, output and
       error streams respectively).  Option indicates what to  do
       with  the  channel;  any unique abbreviation for option is
       acceptable. Valid options are:

       chan blocked channelId
              This tests whether the last input operation on  the
              channel  called  channelId  failed because it would
              have otherwise caused the  process  to  block,  and
              returns 1 if that was the case. It returns 0 other-
              wise. Note that this only ever returns 1  when  the
              channel has been configured to be non-blocking; all
              Tcl channels have blocking turned on by default.

       chan close channelId
              Close and destroy  the  channel  called  channelId.
              Note  that  this  deletes  all existing file-events
              registered on the channel.

              As part of closing the channel, all buffered output
              is  flushed  to  the  channel's  output device, any
              buffered input is discarded, the underlying operat-
              ing system resource is closed and channelId becomes
              unavailable for future use.

              If the channel is blocking, the  command  does  not
              return until all output is flushed.  If the channel
              is nonblocking and there is unflushed  output,  the
              channel  remains open and the command returns imme-
              diately; output will be flushed in  the  background
              and  the channel will be closed when all the flush-
              ing is complete.

              If channelId is a blocking channel  for  a  command
              pipeline  then  chan close waits for the child pro-
              cesses to complete.

              If the channel is shared between interpreters, then
              chan  close  makes  channelId  unavailable  in  the
              invoking interpreter but has no other effect  until
              all  of  the  sharing  interpreters have closed the
              channel. When the last  interpreter  in  which  the
              channel   is  registered  invokes  chan  close  (or
              close), the cleanup actions described above  occur.
              See the interp command for a description of channel
              sharing.

              Channels   are   automatically   closed   when   an
              interpreter  is  destroyed  and  when  the  process
              exits.  Channels are switched to blocking mode,  to
              ensure  that all output is correctly flushed before
              the process exits.

              The command returns an empty string, and may gener-
              ate an error if an error occurs while flushing out-
              put.  If a command in a  command  pipeline  created
              with open returns an error, chan close generates an
              error (similar to the exec command.)

       chan configure channelId ?optionName? ?value?  ?optionName
       value?...
              Query or set the configuration options of the chan-
              nel named channelId.

              If  no  optionName or value arguments are supplied,
              the command returns a list  containing  alternating
              option  names  and  values  for  the  channel.   If
              optionName is supplied but no value then  the  com-
              mand returns the current value of the given option.
              If one or more pairs of optionName  and  value  are
              supplied,  the  command  sets  each  of  the  named
              options to the corresponding value;  in  this  case
              the return value is an empty string.

              The  options  described below are supported for all
              channels. In addition, each channel  type  may  add
              options that only it supports. See the manual entry
              for the command that creates each type of  channels
              for  the options that that specific type of channel
              supports. For example, see the manual entry for the
              socket command for its additional options.

              -blocking boolean
                     The  -blocking option determines whether I/O
                     operations on the channel can cause the pro-
                     cess  to  block  indefinitely.  The value of
                     the option must be a proper  boolean  value.
                     Channels are normally in blocking mode; if a
                     channel is placed into nonblocking  mode  it
                     will  affect the operation of the chan gets,
                     chan read, chan puts, chan flush,  and  chan
                     close  commands;  see  the documentation for
                     those commands for details.  For nonblocking
                     mode to work correctly, the application must
                     be using the Tcl event loop (e.g. by calling
                     Tcl_DoOneEvent  or  invoking  the vwait com-
                     mand).

              -buffering newValue
                     If newValue is full then the I/O system will
                     buffer  output  until its internal buffer is
                     full or until  the  chan  flush  command  is
                     invoked.  If  newValue is line, then the I/O
                     system will automatically flush  output  for
                     the  channel whenever a newline character is
                     output. If newValue is none, the I/O  system
                     will  flush automatically after every output
                     operation.  The default is for -buffering to
                     be set to full except for channels that con-
                     nect to  terminal-like  devices;  for  these
                     channels the initial setting is line.  Addi-
                     tionally, stdin and stdout are initially set
                     to line, and stderr is set to none.

              -buffersize newSize
                     Newvalue  must  be  an integer; its value is
                     used to set the size of buffers,  in  bytes,
                     subsequently  allocated  for this channel to
                     store input or output. Newvalue  must  be  a
                     number of no more than one million, allowing
                     buffers of up to one million bytes in  size.

              -encoding name
                     This  option is used to specify the encoding
                     of the channel as one of the named encodings
                     returned  by  encoding  names or the special
                     value binary, so that the data can  be  con-
                     verted  to  and from Unicode for use in Tcl.
                     For instance, in order for Tcl to read char-
                     acters  from a Japanese file in shiftjis and
                     properly process and display  the  contents,
                     the  encoding  would  be  set  to  shiftjis.
                     Thereafter, when reading from  the  channel,
                     the bytes in the Japanese file would be con-
                     verted to Unicode as they are read.  Writing
                     is also supported - as Tcl strings are writ-
                     ten to the channel they  will  automatically
                     be  converted  to  the specified encoding on
                     output.

                     If a file contains  pure  binary  data  (for
                     instance,  a  JPEG  image), the encoding for
                     the  channel  should  be  configured  to  be
                     binary.  Tcl will then assign no interpreta-
                     tion to the data in the file and simply read
                     or  write raw bytes.  The Tcl binary command
                     can be used to manipulate this byte-oriented
                     data.   It  is  usually  better  to  set the
                     -translation option to binary when you  want
                     to  transfer  binary data, as this turns off
                     the other automatic interpretations  of  the
                     bytes in the stream as well.

                     The  default encoding for newly opened chan-
                     nels is the same platform- and locale-depen-
                     dent  system  encoding  used for interfacing
                     with the operating system,  as  returned  by
                     encoding system.

              -eofchar char

              -eofchar {inChar outChar}
                     This  option  supports DOS file systems that
                     use Control-z  (\x1a)  as  an  end  of  file
                     marker.   If  char  is  not an empty string,
                     then this character signals end-of-file when
                     it is encountered during input.  For output,
                     the end-of-file character is output when the
                     channel  is  closed.   If  char is the empty
                     string, then there is no special end of file
                     character  marker.  For read-write channels,
                     a two-element list specifies the end of file
                     marker  for  input and output, respectively.
                     As a convenience, when setting  the  end-of-
                     file  character for a read-write channel you
                     can specify a single value that  will  apply
                     to  both reading and writing.  When querying
                     the end-of-file character  of  a  read-write
                     channel,  a  two-element list will always be
                     returned.  The default value for -eofchar is
                     the  empty  string  in  all cases except for
                     files  under  Windows.   In  that  case  the
                     -eofchar is Control-z (\x1a) for reading and
                     the empty string for writing.   The  accept-
                     able  range  for  -eofchar  values is \x01 -
                     \x7f; attempting to set -eofchar to a  value
                     outside  of  this  range  will  generate  an
                     error.

              -translation mode

              -translation {inMode outMode}
                     In Tcl scripts the end of a line  is  always
                     represented using a single newline character
                     (\n).  However, in actual files and  devices
                     the end of a line may be represented differ-
                     ently on different platforms,  or  even  for
                     different devices on the same platform.  For
                     example, under UNIX  newlines  are  used  in
                     files,    whereas   carriage-return-linefeed
                     sequences are normally used in network  con-
                     nections.   On  input  (i.e., with chan gets
                     and chan read) the Tcl I/O system  automati-
                     cally  translates  the  external end-of-line
                     representation  into   newline   characters.
                     Upon  output (i.e., with chan puts), the I/O
                     system translates newlines to  the  external
                     end-of-line   representation.   The  default
                     translation mode, auto, handles all the com-
                     mon  cases  automatically, but the -transla-
                     tion option provides explicit  control  over
                     the end of line translations.

                     The  value associated with -translation is a
                     single item  for  read-only  and  write-only
                     channels.   The  value is a two-element list
                     for read-write channels; the  read  transla-
                     tion  mode is the first element of the list,
                     and the write translation mode is the second
                     element.  As a convenience, when setting the
                     translation mode for  a  read-write  channel
                     you  can  specify  a  single value that will
                     apply to both  reading  and  writing.   When
                     querying  the  translation  mode  of a read-
                     write  channel,  a  two-element  list   will
                     always  be  returned.   The following values
                     are currently supported:

                      auto   As the input translation mode,  auto
                             treats any of newline (lf), carriage
                             return (cr), or carriage return fol-
                             lowed by a newline (crlf) as the end
                             of line representation.  The end  of
                             line  representation can even change
                             from line-to-line, and all cases are
                             translated  to  a  newline.   As the
                             output   translation   mode,    auto
                             chooses  a  platform specific repre-
                             sentation; for sockets on all  plat-
                             forms Tcl chooses crlf, for all Unix
                             flavors, it chooses lf, and for  the
                             various   flavors   of   Windows  it
                             chooses crlf.  The  default  setting
                             for  -translation  is  auto for both
                             input and output.

                      binary No end-of-line translations are per-
                             formed.  This is nearly identical to
                             lf mode,  except  that  in  addition
                             binary  mode  also  sets the end-of-
                             file character to the  empty  string
                             (which  disables  it)  and  sets the
                             encoding to binary  (which  disables
                             encoding    filtering).    See   the
                             description of -eofchar and  -encod-
                             ing for more information.

                      cr     The  end of a line in the underlying
                             file or device is represented  by  a
                             single  carriage  return  character.
                             As the input  translation  mode,  cr
                             mode  converts  carriage  returns to
                             newline characters.  As  the  output
                             translation mode, cr mode translates
                             newline   characters   to   carriage
                             returns.

                      crlf   The  end of a line in the underlying
                             file or device is represented  by  a
                             carriage  return  character followed
                             by a  linefeed  character.   As  the
                             input  translation  mode,  crlf mode
                             converts    carriage-return-linefeed
                             sequences to newline characters.  As
                             the output  translation  mode,  crlf
                             mode  translates  newline characters
                             to          carriage-return-linefeed
                             sequences.   This  mode is typically
                             used on Windows  platforms  and  for
                             network connections.

                      lf     The  end of a line in the underlying
                             file or device is represented  by  a
                             single newline (linefeed) character.
                             In this mode no  translations  occur
                             during either input or output.  This
                             mode is typically used on UNIX plat-
                             forms.

       chan  copy  inputChan  outputChan  ?-size  size? ?-command
       callback?
              Copy  data  from  the channel inputChan, which must
              have been opened for reading, to the  channel  out-
              putChan,  which  must have been opened for writing.
              The chan copy command leverages  the  buffering  in
              the  Tcl  I/O  system  to avoid extra copies and to
              avoid buffering too much data in main  memory  when
              copying  large files to slow destinations like net-
              work sockets.

              The chan copy command transfers data from inputChan
              until  end  of  file or size bytes have been trans-
              ferred. If no -size argument  is  given,  then  the
              copy  goes  until  end  of file.  All the data read
              from inputChan is copied  to  outputChan.   Without
              the  -command  option,  chan  copy blocks until the
              copy is complete and returns the  number  of  bytes
              written to outputChan.

              The  -command  argument makes chan copy work in the
              background.  In this case  it  returns  immediately
              and  the  callback  is  invoked later when the copy
              completes.  The callback is called with one or  two
              additional  arguments that indicates how many bytes
              were written to outputChan.  If an  error  occurred
              during  the background copy, the second argument is
              the error string associated with the error.  With a
              background   copy,  it  is  not  necessary  to  put
              inputChan or outputChan into non-blocking mode; the
              chan copy command takes care of that automatically.
              However, it is necessary to enter the event loop by
              using the vwait command or by using Tk.

              You are not allowed to do other I/O operations with
              inputChan or outputChan during  a  background  chan
              copy.  If either inputChan or outputChan get closed
              while the copy is in progress, the current copy  is
              stopped  and  the command callback is not made.  If
              inputChan is closed, then all data  already  queued
              for outputChan is written out.

              Note  that  inputChan  can become readable during a
              background copy.  You  should  turn  off  any  chan
              event  or  fileevent  handlers  during a background
              copy so those handlers do not  interfere  with  the
              copy.   Any  I/O  attempted  by  a  chan  event  or
              fileevent handler will get a "channel busy"  error.

              Chan   copy  translates  end-of-line  sequences  in
              inputChan and outputChan according to the -transla-
              tion  option for these channels (see chan configure
              above).  The translations mean that the  number  of
              bytes read from inputChan can be different than the
              number of bytes written to  outputChan.   Only  the
              number  of bytes written to outputChan is reported,
              either as the return value of  a  synchronous  chan
              copy  or  as  the  argument  to the callback for an
              asynchronous chan copy.

              Chan copy obeys the encodings and character  trans-
              lations  configured  for  the  channels. This means
              that the incoming characters are  converted  inter-
              nally first UTF-8 and then into the encoding of the
              channel chan copy writes  to  (see  chan  configure
              above for details on the -encoding and -translation
              options). No conversion is done  if  both  channels
              are set to encoding binary and have matching trans-
              lations. If only  the  output  channel  is  set  to
              encoding  binary the system will write the internal
              UTF-8 representation of the incoming characters. If
              only  the  input  channel is set to encoding binary
              the system will assume that the incoming bytes  are
              valid  UTF-8  characters and convert them according
              to the output encoding. The behaviour of the system
              for  bytes  which are not valid UTF-8 characters is
              undefined in this case.

       chan create mode cmdPrefix
              This subcommand creates a new script level  channel
              using  the command prefix cmdPrefix as its handler.
              Any such channel is called a reflected channel. The
              specified command prefix, cmdPrefix, must be a non-
              empty list, and should provide the API described in
              the  reflectedchan  manual  page. The handle of the
              new channel is returned as the result of  the  chan
              create command, and the channel is open. Use either
              close or chan close to remove the channel.

              The argument mode specifies if the new  channel  is
              opened  for reading, writing, or both. It has to be
              a list containing any  of  the  strings  "read"  or
              "write".   The list must have at least one element,
              as a channel you can neither write to nor read from
              makes  no  sense.  The  handler command for the new
              channel must support the chosen mode, or  an  error
              is thrown.

              The command prefix is executed in the global names-
              pace, at the  top  of  call  stack,  following  the
              appending of arguments as described in the reflect-
              edchan manual page. Command resolution  happens  at
              the  time  of  the  call.  Renaming the command, or
              destroying it means that the next call of a handler
              method may fail, causing the channel command invok-
              ing the handler to fail as well. Depending  on  the
              subcommand being invoked, the error message may not
              be able to explain the reason for that failure.

              Every channel created with  this  subcommand  knows
              which  interpreter it was created in, and only ever
              executes its handler command in  that  interpreter,
              even  if  the  channel  was  shared with and/or was
              moved into a different interpreter. Each  reflected
              channel  also  knows  the thread it was created in,
              and executes  its  handler  command  only  in  that
              thread,  even  if the channel was moved into a dif-
              ferent thread. To this end all invocations  of  the
              handler  are  forwarded  to  the original thread by
              posting special events to it. This means  that  the
              original  thread (i.e. the thread that executed the
              chan create command)  must  have  an  active  event
              loop,  i.e. it must be able to process such events.
              Otherwise the thread sending them will block indef-
              initely. Deadlock may occur.

              Note  that  this  permits the creation of a channel
              whose two endpoints live in two different  threads,
              providing  a  stream-oriented  bridge between these
              threads. In other words, we can provide a  way  for
              regular   stream   communication   between  threads
              instead of having to send commands.

              When a thread or interpreter is deleted, all  chan-
              nels  created  with  this subcommand and using this
              thread/interpreter  as  their  computing  base  are
              deleted as well, in all interpreters they have been
              shared with or moved into, and in  whatever  thread
              they  have been transfered to. While this pulls the
              rug out under the  other  thread(s)  and/or  inter-
              preter(s),  this  cannot  be avoided. Trying to use
              such a channel will cause the generation of a regu-
              lar error about unknown channel handles.

              This subcommand is safe and made accessible to safe
              interpreters.  While it arranges for the  execution
              of  arbitrary  Tcl  code the system also makes sure
              that the code is always executed  within  the  safe
              interpreter.

       chan eof channelId
              Test  whether the last input operation on the chan-
              nel called channelId failed because the end of  the
              data stream was reached, returning 1 if end-of-file
              was reached, and 0 otherwise.

       chan event channelId event ?script?
              Arrange for the Tcl script script to  be  installed
              as  a  file event handler to be called whenever the
              channel called channelId enters the state described
              by   event   (which  must  be  either  readable  or
              writable); only one such handler may  be  installed
              per  event per channel at a time.  If script is the
              empty string, the current handler is deleted  (this
              also happens if the channel is closed or the inter-
              preter deleted).  If script is  omitted,  the  cur-
              rently  installed  script  is returned (or an empty
              string if no such handler is installed).  The call-
              back  is  only performed if the event loop is being
              serviced (e.g. via vwait or update).

              A file event handler is a binding between a channel
              and  a  script,  such  that the script is evaluated
              whenever the channel becomes readable or  writable.
              File event handlers are most commonly used to allow
              data to be received  from  another  process  on  an
              event-driven  basis,  so that the receiver can con-
              tinue to interact with the user or with other chan-
              nels  while  waiting for the data to arrive.  If an
              application invokes chan gets or  chan  read  on  a
              blocking channel when there is no input data avail-
              able, the process will block; until the input  data
              arrives,  it  will  not  be  able  to service other
              events, so it will appear to the  user  to  "freeze
              up".   With  chan  event, the process can tell when
              data is present and only invoke chan gets  or  chan
              read when they will not block.

              A  channel is considered to be readable if there is
              unread data available on the underlying device.   A
              channel  is also considered to be readable if there
              is unread data in an input buffer,  except  in  the
              special  case where the most recent attempt to read
              from the channel was a chan gets  call  that  could
              not find a complete line in the input buffer.  This
              feature allows a file to be read a line at  a  time
              in  nonblocking  mode  using  events.  A channel is
              also considered to be readable if an end of file or
              error  condition  is present on the underlying file
              or device.  It is important for script to check for
              these conditions and handle them appropriately; for
              example, if there is no special check  for  end  of
              file, an infinite loop may occur where script reads
              no data, returns, and is immediately invoked again.

              A  channel is considered to be writable if at least
              one byte of data can be written to  the  underlying
              file  or  device  without  blocking, or if an error
              condition is present  on  the  underlying  file  or
              device.   Note  that client sockets opened in asyn-
              chronous mode become writable when they become con-
              nected or if the connection fails.

              Event-driven  I/O works best for channels that have
              been placed into nonblocking  mode  with  the  chan
              configure  command.   In blocking mode, a chan puts
              command may block if you give it more data than the
              underlying  file  or  device can accept, and a chan
              gets or chan read command will block if you attempt
              to  read more data than is ready; no events will be
              processed while the commands block.  In nonblocking
              mode  chan  puts,  chan  read,  and chan gets never
              block.

              The script for a file event is executed  at  global
              level (outside the context of any Tcl procedure) in
              the interpreter in which the chan event command was
              invoked.   If  an  error occurs while executing the
              script then  the  command  registered  with  interp
              bgerror  is used to report the error.  In addition,
              the file  event  handler  is  deleted  if  it  ever
              returns  an error; this is done in order to prevent
              infinite loops due to buggy handlers.

       chan flush channelId
              Ensures that all pending  output  for  the  channel
              called channelId is written.

              If the channel is in blocking mode the command does
              not return until all the buffered output  has  been
              flushed  to  the channel. If the channel is in non-
              blocking mode, the command may  return  before  all
              buffered  output  has  been  flushed; the remainder
              will be flushed in the background as  fast  as  the
              underlying file or device is able to absorb it.

       chan gets channelId ?varName?
              Reads  the  next line from the channel called chan-
              nelId. If varName is not specified, the  result  of
              the  command  will  be  the line that has been read
              (without a trailing newline character) or an  empty
              string  upon  end-of-file or, in non-blocking mode,
              if the data available is exhausted. If  varName  is
              specified,  the  line  that  has  been read will be
              written to the variable called varName  and  result
              will  be  the  number  of characters that have been
              read or -1 if end-of-file was reached or,  in  non-
              blocking  mode, if the data available is exhausted.

              If an end-of-file occurs  while  part  way  through
              reading  a  line, the partial line will be returned
              (or written into  varName).  When  varName  is  not
              specified,  the  end-of-file  case  can  be distin-
              guished from an empty line using the chan eof  com-
              mand, and the partial-line-but-nonblocking case can
              be distinguished with the chan blocked command.

       chan names ?pattern?
              Produces a list of all channel names. If pattern is
              specified,  only  those channel names that match it
              (according to the rules of string  match)  will  be
              returned.

       chan pending mode channelId
              Depending  on  whether  mode  is  input  or output,
              returns the number of  bytes  of  input  or  output
              (respectively)  currently  buffered  internally for
              channelId (especially useful in  a  readable  event
              callback  to  impose application-specific limits on
              input line lengths to avoid a potential  denial-of-
              service  attack  where  a  hostile  user  crafts an
              extremely long line that exceeds the available mem-
              ory  to  buffer it).  Returns -1 if the channel was
              not opened for the mode in question.

       chan postevent channelId eventSpec
              This subcommand is used by command handlers  speci-
              fied  with  chan  create.  It  notifies the channel
              represented  by  the  handle  channelId  that   the
              event(s) listed in the eventSpec have occurred. The
              argument has to be a list  containing  any  of  the
              strings  read  and  write. The list must contain at
              least one element as it  does  not  make  sense  to
              invoke  the command if there are no events to post.

              Note that this subcommand can  only  be  used  with
              channel  handles  that  were created/opened by chan
              create. All other channels will cause this  subcom-
              mand to report an error.

              As  only  the Tcl level of a channel, i.e. its com-
              mand handler, should post  events  to  it  we  also
              restrict  the  usage  of this command to the inter-
              preter that created the channel.  In  other  words,
              posting  events  to  a  reflected  channel  from an
              interpreter that does not contain it's  implementa-
              tion  is  not  allowed. Attempting to post an event
              from any other interpreter will cause this  subcom-
              mand to report an error.

              Another  restriction  is that it is not possible to
              post events that the I/O core has not registered an
              interest  in. Trying to do so will cause the method
              to throw an error. See the command  handler  method
              watch  described  in  reflectedchan,  the  document
              specifying  the  API  of   command   handlers   for
              reflected channels.

              This  command  is  safe and made accessible to safe
              interpreters.  It can trigger the execution of chan
              event  handlers, whether in the current interpreter
              or in other interpreters  or  other  threads,  even
              where  the  event is posted from a safe interpreter
              and listened for by  a  trusted  interpreter.  Chan
              event  handlers  are  always executed in the inter-
              preter that set them up.

       chan puts ?-nonewline? ?channelId? string
              Writes string to the channel named  channelId  fol-
              lowed  by  a  newline character. A trailing newline
              character  is  written  unless  the  optional  flag
              -nonewline  is  given. If channelId is omitted, the
              string is written to the standard  output  channel,
              stdout.

              Newline  characters in the output are translated by
              chan   puts   to   platform-specific    end-of-line
              sequences  according  to  the  currently configured
              value of the -translation option  for  the  channel
              (for example, on PCs newlines are normally replaced
              with carriage-return-linefeed sequences;  see  chan
              configure above for details).

              Tcl  buffers output internally, so characters writ-
              ten with chan puts may not  appear  immediately  on
              the  output file or device; Tcl will normally delay
              output until the buffer is full or the  channel  is
              closed.  You can force output to appear immediately
              with the chan flush command.

              When the output buffer fills up, the chan puts com-
              mand  will  normally  block  until all the buffered
              data has been accepted for output by the  operating
              system.   If  channelId is in nonblocking mode then
              the chan puts command will not block  even  if  the
              operating  system cannot accept the data.  Instead,
              Tcl continues to buffer the data and writes  it  in
              the  background  as  fast as the underlying file or
              device can accept it.  The application must use the
              Tcl event loop for nonblocking output to work; oth-
              erwise Tcl never finds out that the file or  device
              is  ready for more output data.  It is possible for
              an arbitrarily large amount of data to be  buffered
              for a channel in nonblocking mode, which could con-
              sume a large amount of memory.   To  avoid  wasting
              memory,  nonblocking I/O should normally be used in
              an event-driven fashion with the chan event command
              (do  not  invoke chan puts unless you have recently
              been notified via a file event that the channel  is
              ready for more output data).

       chan read channelId ?numChars?

       chan read ?-nonewline? channelId
              In the first form, the result will be the next num-
              Chars characters read from the channel named  chan-
              nelId; if numChars is omitted, all characters up to
              the point when the channel would signal  a  failure
              (whether  an  end-of-file,  blocked  or other error
              condition) are read. In the second form (i.e.  when
              numChars  has been omitted) the flag -nonewline may
              be given to indicate that any trailing  newline  in
              the string that has been read should be trimmed.

              If  channelId is in nonblocking mode, chan read may
              not read as many characters as requested: once  all
              available  input  has  been  read, the command will
              return the  data  that  is  available  rather  than
              blocking for more input.  If the channel is config-
              ured to use a multi-byte encoding, then  there  may
              actually  be  some  bytes remaining in the internal
              buffers that do  not  form  a  complete  character.
              These  bytes  will not be returned until a complete
              character is available or end-of-file  is  reached.
              The  -nonewline  switch  is  ignored if the command
              returns before reaching the end of the file.

              Chan read translates end-of-line sequences  in  the
              input  into  newline  characters  according  to the
              -translation option for the channel (see chan  con-
              figure  above for a discussion on the ways in which
              chan configure will alter input).

              When reading from a serial port, most  applications
              should configure the serial port channel to be non-
              blocking, like this:
                     chan configure channelId -blocking 0.
              Then chan read behaves much like  described  above.
              Note that most serial ports are comparatively slow;
              it is entirely possible to get a readable event for
              each  character  read from them. Care must be taken
              when using chan read on blocking serial ports:

              chan read channelId numChars
                     In this form chan read blocks until numChars
                     have been received from the serial port.

              chan read channelId
                     In  this  form  chan  read  blocks until the
                     reception of the end-of-file character,  see
                     chan configure -eofchar. If there no end-of-
                     file character has been configured  for  the
                     channel,  then chan read will block forever.

       chan seek channelId offset ?origin?
              Sets the current access position within the  under-
              lying  data  stream for the channel named channelId
              to be offset bytes relative to origin. Offset  must
              be  an  integer  (which may be negative) and origin
              must be one of the following:

              start     The new access position  will  be  offset
                        bytes  from  the  start of the underlying
                        file or device.

              current   The new access position  will  be  offset
                        bytes from the current access position; a
                        negative offset moves the access position
                        backwards   in  the  underlying  file  or
                        device.

              end       The new access position  will  be  offset
                        bytes from the end of the file or device.
                        A negative offset places the access posi-
                        tion  before the end of file, and a posi-
                        tive offset places  the  access  position
                        after the end of file.

              The origin argument defaults to start.

              Chan seek flushes all buffered output for the chan-
              nel before the command returns, even if the channel
              is  in  nonblocking  mode.   It  also  discards any
              buffered and unread input.  This command returns an
              empty  string.   An error occurs if this command is
              applied to channels whose underlying file or device
              does not support seeking.

              Note that offset values are byte offsets, not char-
              acter offsets.  Both chan seek and chan tell  oper-
              ate  in terms of bytes, not characters, unlike chan
              read.

       chan tell channelId
              Returns a number giving the current access position
              within  the  underlying data stream for the channel
              named channelId. This value returned is a byte off-
              set that can be passed to chan seek in order to set
              the channel to a particular  position.   Note  that
              this  value  is  in  terms of bytes, not characters
              like chan read.  The value returned is -1 for chan-
              nels that do not support seeking.

       chan truncate channelId ?length?
              Sets  the byte length of the underlying data stream
              for the channel named channelId to be length (or to
              the  current byte offset within the underlying data
              stream  if  length  is  omitted).  The  channel  is
              flushed before truncation.

EXAMPLE
       This  opens  a file using a known encoding (CP1252, a very
       common  encoding  on  Windows),  searches  for  a  string,
       rewrites that part, and truncates the file after a further
       two lines.

              set f [open somefile.txt r+]
              chan configure $f -encoding cp1252
              set offset 0

              # Search for string "FOOBAR" in the file
              while {[chan gets $f line] >= 0} {
                 set idx [string first FOOBAR $line]
                 if {$idx > -1} {
                    # Found it; rewrite line

                    chan seek $f [expr {$offset + $idx}]
                    chan puts -nonewline $f BARFOO

                    # Skip to end of following line, and truncate
                    chan gets $f
                    chan gets $f
                    chan truncate $f

                    # Stop searching the file now
                    break
                 }

                 # Save offset of start of next line for later
                 set offset [chan tell $f]
              }
              chan close $f

SEE ALSO
       close(n), eof(n),  fblocked(n),  fconfigure(n),  fcopy(n),
       file(n),   fileevent(n),   flush(n),   gets(n),   open(n),
       puts(n), read(n), seek(n), socket(n), tell(n), refchan(n)

KEYWORDS
       channel, input, output, events, offset



Tcl                            8.5                        chan(n)


@@@COMMAND: change_qor_suggestion_property@@@
change_qor_suggestion_property

Description: 
Set FAILED_TO_APPLY property to 1, and APPLIED property to 0, for specified RQS suggestion ID

Syntax: 
change_qor_suggestion_property  [-set_applied] [-set_failed_to_apply]
                                [-set_incr_friendly] [-reset_incr_friendly]
                                [-set_properties <args>] [-quiet] [-verbose]
                                <IDs>

Usage: 
  Name                    Description
  -----------------------------------
  [-set_applied]          set APPLIED = 1
  [-set_failed_to_apply]  set APPLIED = 0, FAILED_TO_APPLY = 1
  [-set_incr_friendly]    set INCR_FRIENDLY = 1
  [-reset_incr_friendly]  set INCR_FRIENDLY = 0
  [-set_properties]       set_property COMMAND <...>
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <IDs>                   Match suggestion names against given names

Categories: 
Object, Feasibility, Timing


@@@COMMAND: check_integrity@@@
check_integrity

Description: 
Check the integrity of a design checkpoint

Syntax: 
check_integrity  [-quiet] [-verbose] <file>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Design checkpoint file

Categories: 
Project


@@@COMMAND: check_syntax@@@
check_syntax

Description: 
Check HDL syntax in the supplied fileset or active fileset.

Syntax: 
check_syntax  [-fileset <arg>] [-return_string] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-fileset]        Fileset to check for syntax
  [-return_string]  Return the syntax check messages as a string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Project

Description:

  Parses Verilog, SystemVerilog, and VHDL source files and generates syntax
  warnings and error messages for the design.

  Tip: The syntax is also checked automatically as the file is edited in the
  AMD Vivado text editor, or when the file is saved.

  This command returns warnings or errors related to the files it examines,
  or returns nothing if no problems are found.

Arguments:

  -fileset <arg> - (Optional) Check the syntax of files in the specified
  fileset.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example checks the syntax of files in the simulation fileset:

    check_syntax -fileset sim_1

See Also:

   *  get_filesets


@@@COMMAND: check_timing@@@
check_timing

Description: 
Check the design for possible timing problems

Syntax: 
check_timing  [-file <arg>] [-no_header] [-loop_limit <arg>] [-append]
              [-name <arg>] [-override_defaults <args>] [-include <args>]
              [-exclude <args>] [-return_string] [-rpx <arg>] [-cells <args>]
              [-verbose] [-quiet]

Usage: 
  Name                  Description
  ---------------------------------
  [-file]               Filename to output results to. (send output to 
                        console if -file is not used)
  [-no_header]          do not generate a report header
  [-loop_limit]         Limit the number of loops reported for loops check
                        Default: 100
  [-append]             Append the results to file, don't overwrite the 
                        results file
  [-name]               Output the results to GUI panel with this name
  [-override_defaults]  Overrides the checks in the default timing checks 
                        listed below
  [-include]            Add this list of checks to be performed along with 
                        default timing checks listed below
  [-exclude]            Exclude this list of checks to be performed from the 
                        default timing checks listed below
  [-return_string]      return report as string
  [-rpx]                Filename to output interactive results to.
  [-cells]              run check_timing on the specified cell(s)
  [-verbose]            Return a detailed list of all timing problems found
  [-quiet]              Ignore command errors

Categories: 
Report, Timing

Description:

  Checks the design elements of ports, pins, and paths, against the current
  timing constraints. Use this command to identify possible problems with
  design data and timing constraints before running the report_timing
  command. The check_timing command runs a series of default timing checks,
  and reports a summary of any violations found. To get detailed information
  about violations, use the -verbose option.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to the GUI with the -name option,
  or to a file with -file.

  Default Timing Checks:

   *  constant_clock - Checks for clock signals connected to a constant
      signal (gnd/vss/data).

   *  generated_clocks - Checks for loops, or circular definitions within the
      generated clock network. This check will return an error if a generated
      clock uses a second generated clock as its source, when the second
      generated clock uses the first clock as its source.

   *  latch_loops - Checks for and warns of combinational latch loops in the
      design.

   *  loops - Checks for and warns of combinational feedback loops in the
      design.

   *  multiple_clock - Warns if multiple clocks reach a register clock pin.
      If more than one clock signal reaches a register clock pin it is
      unclear which clock will be used for analysis. In this case, use the
      set_case_analysis command so that only one clock will propagate to the
      register clock pin.

   *  no_clock - Reports unclocked registers. In this case, no setup or hold
      checks are performed on data pins related to the register clock pin.

   *  no_input_delay - Reports the input ports without an input delay
      constraint. Input delays can be assigned using the set_input_delay
      command. Input ports that are unclocked will not be checked for input
      delays.

   *  no_output_delay - Reports the output ports without an output delay
      constraint. Output delays can be assigned using the set_output_delay
      command. Output ports that are unclocked will not be checked for output
      delays.

   *  partial_input_delay - Reports the input ports having partially defined
      input delay constraints. Assigning set_input_delay -max or
      set_input_delay -min to an input port, without assigning the other,
      creates a partially defined input delay. In such cases, paths starting
      from the input port may become unconstrained and no timing checks will
      be done against the port. Assigning set_input_delay without specifying
      either -min or -max allows the tool to assume both min and max delays,
      and so does not result in a partial input delay.

      Note: Unclocked input ports are not checked for partial input
      delays.

   *  partial_output_delay - Reports the output ports having partially
      defined output delay constraints. Assigning set_output_delay -max or
      set_output_delay -min to an output port, without assigning the other,
      creates a partially defined output delay. In such cases, paths reaching
      the port may become unconstrained and no timing checks will be done
      against the port. Assigning set_output_delay without specifying either
      -min or -max allows the tool to assume both min and max delays, and so
      does not result in a partial output delay.

      Note: Unclocked output ports are not checked for partial output
      delays.

   *  pulse_width_clock - Reports clock pins that have only a pulse width
      check associated with the pin, and no setup or hold check, no recovery,
      removal, or clk->Q check.

   *  unconstrained_internal_endpoints - This warning identifies timing path
      endpoints at register data pins that are not constrained. Endpoints at
      register data pins are constrained by clock assignment using the
      create_clock command. Endpoints at output ports are checked and
      reported by the no_output_delay check.

Arguments:

  -file <arg> - (Optional) Write the results to the specified file on disk.
  By default, the output of this command is written to the Tcl console.

  Note: If the path is not specified as part of the file name, the tool will
  write the named file into the current working directory, or the directory
  from which the tool was launched.

  -append - Append the results to the specified file. As a default the
  check_timing command will overwrite an existing file when the -file
  argument is specified.

  -no_header - (Optional) Do not write the standard header to the report.
  This is a boolean option that is enabled by its use.

  -loop_limit <arg> - (Optional) The number of loops to identify and report
  during the loop and latch_loop checks. The check_timing command will
  continue to perform other checks after the -loop_limit has been reached.

  -name <arg> - (Optional) Creates the named report in the Timing Results
  view of the GUI.

  -override_defaults <args> - (Optional) Override the default timing checks
  and run only the specified checks.

  Tip: Multiple checks should be enclosed in quotes, "", or braces, {}.

  -include <args> - (Optional) Run the specified checks in addition to the
  current default checks.

  -exclude <args> - (Optional) Exclude the specified checks from the default
  checks performed by the check_timing command. Specify the checks to be
  excluded from the list of default checks.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -rpx <arg> - (Optional) Specify the file name and path of the report file
  (RPX) to write. This is different from writing the report results to a file
  using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  AMD Vivado Design Suite using the open_report command. You should add a
  .rpx file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -cells <arg> - (Option) Perform the timing checks for the specified
  hierarchical cells. The details of the report will be based on the
  specified cells rather than the whole design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Return more detailed results from the checks that are
  run. Returns details of the problems found:

Examples:

  The following example runs check_timing, but excludes the specified checks
  from the default timing checks.

    check_timing -exclude {loops generated_clocks}

  The following example uses the -verbose argument to obtain detailed results
  running just the multiple_clocks check, and then uses get_clocks to look
  further into the issue:

    check_timing -verbose -override_defaults {multiple_clock}
      Checking multiple_clock.
      There are 2 register/latch pins with multiple clocks.
      procEngine/mode_du/set_reg[0]/C
      provEngine/mode_du/set_reg[1]/C
    get_clocks -of_objects [get_pin procEngine/mode_du/set_reg[0]/C]
      sysClk coreClk

See Also:

   *  create_clock
   *  get_clocks
   *  open_report
   *  report_timing
   *  set_case_analysis
   *  set_input_delay
   *  set_max_delay
   *  set_output_delay


@@@COMMAND: clock@@@
clock(n)              Tcl Built-In Commands              clock(n)



_________________________________________________________________

NAME
       clock - Obtain and manipulate dates and times

SYNOPSIS
       package require Tcl 8.5

       clock add timeVal ?count unit...? ?-option value?

       clock clicks ?-option?

       clock format timeVal ?-option value...?

       clock microseconds

       clock milliseconds

       clock scan inputString ?-option value...?

       clock seconds

_________________________________________________________________

DESCRIPTION
       The  clock command performs several operations that obtain
       and manipulate values that represent times.   The  command
       supports several subcommands that determine what action is
       carried out by the command.

       clock add timeVal ?count unit...? ?-option value?
              Adds a (possibly negative) offset to a time that is
              expressed  as  an  integer  number of seconds.  See
              CLOCK ARITHMETIC for a full description.

       clock clicks ?-option?
              If no -option argument is supplied, returns a high-
              resolution time value as a system-dependent integer
              value.  The unit of the value  is  system-dependent
              but  should  be the highest resolution clock avail-
              able on the system such as  a  CPU  cycle  counter.
              See  HIGH RESOLUTION TIMERS for a full description.

              If the -option argument is -milliseconds, then  the
              command  is synonymous with clock milliseconds (see
              below).  This usage is  obsolete,  and  clock  mil-
              liseconds  is to be considered the preferred way of
              obtaining a count of milliseconds.

              If the -option argument is -microseconds, then  the
              command  is synonymous with clock microseconds (see
              below).   This  usage  is   obsolete,   and   clock
              microseconds  is to be considered the preferred way
              of obtaining a count of microseconds.

       clock format timeVal ?-option value...?
              Formats a time that is expressed as an integer num-
              ber  of seconds into a format intended for consump-
              tion by users or external programs.  See FORMATTING
              TIMES for a full description.

       clock microseconds
              Returns  the  current  time as an integer number of
              microseconds.  See HIGH  RESOLUTION  TIMERS  for  a
              full description.

       clock milliseconds
              Returns  the  current  time as an integer number of
              milliseconds.  See HIGH  RESOLUTION  TIMERS  for  a
              full description.

       clock scan inputString ?-option value...?
              Scans  a  time  that  is  expressed  as a character
              string and produces an integer number  of  seconds.
              See SCANNING TIMES for a full description.

       clock seconds
              Returns  the  current  time as an integer number of
              seconds.

   PARAMETERS
       count  An integer representing a count  of  some  unit  of
              time.  See CLOCK ARITHMETIC for the details.

       timeVal
              An  integer  value passed to the clock command that
              represents an absolute time as a number of  seconds
              from  the  epoch time of 1 January 1970, 00:00 UTC.
              Note that the count of seconds does not include any
              leap  seconds;  seconds  are counted as if each UTC
              day has exactly 86400  seconds.   Tcl  responds  to
              leap  seconds by speeding or slowing its clock by a
              tiny fraction for some minutes until it is back  in
              sync  with  UTC;  its data model does not represent
              minutes that have 59 or 61 seconds.

       unit   One of the words, seconds,  minutes,  hours,  days,
              weeks,  months,  or  years, or any unique prefix of
              such a word. Used  in  conjunction  with  count  to
              identify  an  interval of time, for example, 3 sec-
              onds or 1 year.

   OPTIONS
       -base time
              Specifies that any  relative  times  present  in  a
              clock  scan  command  are  to  be given relative to
              time.  time must be expressed as a count of nominal
              seconds  from  the  epoch  time  of 1 January 1970,
              00:00 UTC.

       -format format
              Specifies the desired output format for clock  for-
              mat  or  the  expected input format for clock scan.
              The format string consists of any number of charac-
              ters  other  than  the  per-cent  sign ("%") inter-
              spersed with any number of format groups, which are
              two-character sequences beginning with the per-cent
              sign.  The permissible  format  groups,  and  their
              interpretation,  are described under FORMAT GROUPS.

              On clock format, the default format is
                     %a %b %d %H:%M:%S %z %Y

              On clock scan, the lack of a -format  option  indi-
              cates  that  a "free format scan" is requested; see
              FREE FORM SCAN for a description of what happens.

       -gmt boolean
              If boolean is true, specifies that a time specified
              to  clock add, clock format or clock scan should be
              processed in UTC.  If boolean is  false,  the  pro-
              cessing  defaults  to  the  local  time zone.  This
              usage is obsolete; the correct current usage is  to
              specify  the UTC time zone with "-timezone :UTC" or
              any of the equivalent ways to specify it.

       -locale localeName
              Specifies that locale-dependent scanning  and  for-
              matting  (and  date  arithmetic for dates preceding
              the adoption of the Gregorian calendar)  is  to  be
              done  in  the locale identified by localeName.  The
              locale name may be any of the locales acceptable to
              the  msgcat  package, or it may be the special name
              system, which represents the current locale of  the
              process, or the null string, which represents Tcl's
              default locale.

              The effect of locale on scanning and formatting  is
              discussed  in  the  descriptions  of the individual
              format groups under FORMAT GROUPS.  The  effect  of
              locale on clock arithmetic is discussed under CLOCK
              ARITHMETIC.

       -timezone zoneName
              Specifies that clock  arithmetic,  formatting,  and
              scanning  are to be done according to the rules for
              the time zone specified by zoneName.  The permissi-
              ble values, and their interpretation, are discussed
              under TIME ZONES.  On  subcommands  that  expect  a
              -timezone  argument, the default is to use the cur-
              rent time zone.  The current time  zone  is  deter-
              mined, in order of preference, by:

              [1]    the environment variable TCL_TZ.

              [2]    the environment variable TZ.

              [3]    on  Windows  systems, the time zone settings
                     from the Control Panel.
       If none of these is present, the C  localtime  and  mktime
       functions  are  used  to  attempt to convert times between
       local and Greenwich.  On 32-bit systems, this approach  is
       likely  to have bugs, particularly for times that lie out-
       side the window (approximately the  years  1902  to  2037)
       that can be represented in a 32-bit integer.

CLOCK ARITHMETIC
       The clock add command performs clock arithmetic on a value
       (expressed as nominal seconds from the  epoch  time  of  1
       January 1970, 00:00 UTC) given as its first argument.  The
       remaining arguments (other than  the  possible  -timezone,
       -locale  and  -gmt  options)  are integers and keywords in
       alternation, where the keywords are chosen  from  seconds,
       minutes,  hours,  days,  weeks,  months,  or years, or any
       unique prefix of such a word.

       Addition of seconds, minutes and hours is fairly straight-
       forward;  the  given  time increment (times sixty for min-
       utes, or 3600 for hours) is simply added  to  the  timeVal
       given to the clock add command.  The result is interpreted
       as a nominal number of seconds from the Epoch.

       Surprising results may be obtained when crossing  a  point
       at  which  a leap second is inserted or removed; the clock
       add command simply  ignores  leap  seconds  and  therefore
       assumes  that  times come in sequence, 23:59:58, 23:59:59,
       00:00:00.  (This assumption is handled by  the  fact  that
       Tcl's  model of time reacts to leap seconds by speeding or
       slowing the clock by a minuscule amount until  Tcl's  time
       is back in step with the world.

       The  fact  that adding and subtracting hours is defined in
       terms of absolute  time  means  that  it  will  add  fixed
       amounts  of  time  in  time zones that observe summer time
       (Daylight Saving Time).  For example, the  following  code
       sets  the  value  of  x  to 04:00:00 because the clock has
       changed in the interval in question.
              set s [clock scan {2004-10-30 05:00:00} \
                         -format {%Y-%m-%d %H:%M:%S} \
                         -timezone :America/New_York]
              set a [clock add $s 24 hours -timezone :America/New_York]
              set x [clock format $a \
                         -format {%H:%M:%S} -timezone :America/New_York]

       Adding and subtracting days and weeks is  accomplished  by
       converting  the  given  time to a calendar day and time of
       day in the appropriate time zone and locale.   The  requi-
       site number of days (weeks are converted to days by multi-
       plying by seven) is added to the  calendar  day,  and  the
       date  and  time are then converted back to a count of sec-
       onds from the epoch time.

       Adding and subtracting a given number of days  across  the
       point  that the time changes at the start or end of summer
       time (Daylight Saving Time) results in the same local time
       on  the day in question.  For instance, the following code
       sets the value of x to 05:00:00.
              set s [clock scan {2004-10-30 05:00:00} \
                         -format {%Y-%m-%d %H:%M:%S} \
                         -timezone :America/New_York]
              set a [clock add $s 1 day -timezone :America/New_York]
              set x [clock format $a \
                         -format {%H:%M:%S} -timezone :America/New_York]

       In cases of ambiguity, where the same local  time  happens
       twice on the same day, the earlier time is used.  In cases
       where  the  conversion  yields  an  impossible  time  (for
       instance,  02:30  during  the  Spring Daylight Saving Time
       change using US rules), the time is converted  as  if  the
       clock  had not changed.  Thus, the following code will set
       the value of x to 03:30:00.
              set s [clock scan {2004-04-03 02:30:00} \
                         -format {%Y-%m-%d %H:%M:%S} \
                         -timezone :America/New_York]
              set a [clock add $s 1 day -timezone :America/New_York]
              set x [clock format $a \
                         -format {%H:%M:%S} -timezone :America/New_York]

       Adding a given number of days  or  weeks  works  correctly
       across  the  conversion  between  the Julian and Gregorian
       calendars; the omitted days are  skipped.   The  following
       code sets z to 1752-09-14.
              set x [clock scan 1752-09-02 -format %Y-%m-%d -locale en_US]
              set y [clock add $x 1 day -locale en_US]
              set z [clock format $y -format %Y-%m-%d -locale en_US]

       In  the  bizarre case that adding the given number of days
       yields a date that does not exist because it falls  within
       the  dropped  days  of the Julian-to-Gregorian conversion,
       the date is converted as if it was on the Julian calendar.

       Adding  a number of months, or a number of years, is simi-
       lar; it converts the given time to  a  calendar  date  and
       time  of day.  It then adds the requisite number of months
       or years, and reconverts the resulting date  and  time  of
       day to an absolute time.

       If  the resulting date is impossible because the month has
       too few days (for example, when adding 1 month to 31  Jan-
       uary),  the  last  day of the month is substituted.  Thus,
       adding 1 month to 31 January will result in 28 February in
       a common year or 29 February in a leap year.

       The  rules  for handling anomalies relating to summer time
       and  to  the  Gregorian  calendar  are   the   same   when
       adding/subtracting  months  and  years  as  they  are when
       adding/subtracting days and weeks.

       If multiple count unit pairs are present on  the  command,
       they are evaluated consecutively, from left to right.

HIGH RESOLUTION TIMERS
       Most  of  the  subcommands  supported by the clock command
       deal with times represented as a count of seconds from the
       epoch time, and this is the representation that clock sec-
       onds returns.  There are three exceptions, which  are  all
       intended   for   use  where  higher-resolution  times  are
       required.  clock milliseconds returns the  count  of  mil-
       liseconds  from  the  epoch  time,  and clock microseconds
       returns the count of microseconds from the epoch time.  In
       addition,  there  is a clock clicks command that returns a
       platform-dependent high-resolution  timer.   Unlike  clock
       seconds  and clock milliseconds, the value of clock clicks
       is not guaranteed to be tied to any  fixed  epoch;  it  is
       simply  intended  to  be  the  most precise interval timer
       available, and is intended only for relative timing  stud-
       ies such as benchmarks.

FORMATTING TIMES
       The  clock  format command produces times for display to a
       user or  writing  to  an  external  medium.   The  command
       accepts times that are expressed in seconds from the epoch
       time of 1 January 1970, 00:00 UTC, as  returned  by  clock
       seconds,  clock scan, clock add, file atime or file mtime.

       If a -format option is present, the following argument  is
       a  string  that  specifies how the date and time are to be
       formatted.  The string consists of any number  of  charac-
       ters  other than the per-cent sign ("%") interspersed with
       any number  of  format  groups,  which  are  two-character
       sequences beginning with the per-cent sign.  The permissi-
       ble format groups, and their interpretation, are described
       under FORMAT GROUPS.

       If  a  -timezone option is present, the following argument
       is a string that specifies the time zone in which the date
       and  time  are  to  be  formatted.   As  an alternative to
       "-timezone :UTC", the obsolete usage "-gmt  true"  may  be
       used.  See TIME ZONES for the permissible variants for the
       time zone.

       If a -locale option is present, the following argument  is
       a string that specifies the locale in which the time is to
       be formatted, in the same format that is used for the msg-
       cat  package.   Note  that  the default, if -locale is not
       specified, is the root locale {} rather than  the  current
       locale.   The  current  locale  may  be  obtained by using
       -locale current.  In addition, some  platforms  support  a
       system  locale  that  reflects the user's current choices.
       For instance, on Windows, the format  that  the  user  has
       selected  from dates and times in the Control Panel can be
       obtained by using the system locale.  On platforms that do
       not define a user selection of date and time formats sepa-
       rate from  LC_TIME,  -locale  system  is  synonymous  with
       -locale current.

SCANNING TIMES
       The clock scan command accepts times that are formatted as
       strings and converts them to counts of  seconds  from  the
       epoch  time  of  1  January  1970, 00:00 UTC.  It normally
       takes a -format  option  that  is  followed  by  a  string
       describing  the  expected  format of the input.  (See FREE
       FORM SCAN for the effect of clock  scan  without  such  an
       argument.)   The  string consists of any number of charac-
       ters other than the per-cent sign ("%"), interspersed with
       any  number  of  format  groups,  which  are two-character
       sequences beginning with the per-cent sign.  The permissi-
       ble format groups, and their interpretation, are described
       under FORMAT GROUPS.

       If a -timezone option is present, the  following  argument
       is a string that specifies the time zone in which the date
       and time are to be  interpreted.   As  an  alternative  to
       -timezone  :UTC, the obsolete usage -gmt true may be used.
       See TIME ZONES for the permissible variants for  the  time
       zone.

       If  a -locale option is present, the following argument is
       a string that specifies the locale in which the time is to
       be  interpreted,  in  the same format that is used for the
       msgcat package.  Note that the default, if -locale is  not
       specified,  is  the root locale {} rather than the current
       locale.  The current  locale  may  be  obtained  by  using
       -locale  current.   In  addition, some platforms support a
       system locale that reflects the  user's  current  choices.
       For  instance,  on  Windows,  the format that the user has
       selected from dates and times in the Control Panel can  be
       obtained by using the system locale.  On platforms that do
       not define a user selection of date and time formats sepa-
       rate  from  LC_TIME,  -locale  system  is  synonymous with
       -locale current.

       If a -base option is present, the following argument is  a
       time  (expressed  in  seconds from the epoch time) that is
       used as a base time for interpreting relative  times.   If
       no  -base  option is present, the base time is the current
       time.

       Scanning of times in fixed  format  works  by  determining
       three  things:  the  date,  the  time of day, and the time
       zone.  These three are then combined into a point in time,
       which is returned as the number of seconds from the epoch.

       Before scanning begins, the format string is  preprocessed
       to  replace %c, %Ec, %x, %Ex, %X. %Ex, %r, %R, %T, %D, %EY
       and %+ format groups with counterparts that are  appropri-
       ate  to  the  current locale and contain none of the above
       groups.  For instance, %D will (in the  en_US  locale)  be
       replaced with %m/%d/%Y.

       The  date  is  determined according to the fields that are
       present in the preprocessed format string.   In  order  of
       preference:

       [1]    If  the  string  contains a %s format group, repre-
              senting seconds from the epoch, that group is  used
              to determine the date.

       [2]    If  the  string  contains a %J format group, repre-
              senting the Julian Day Number, that group  is  used
              to determine the date.

       [3]    If  the  string  contains  a complete set of format
              groups specifying century, year, month, and day  of
              month;  century,  year, and day of year; or ISO8601
              fiscal year, week of year, and day of  week;  those
              groups are combined and used to determine the date.
              If more than one complete set is present,  the  one
              at the rightmost position in the string is used.

       [4]    If the string lacks a century but contains a set of
              format groups specifying year of century, month and
              day  of  month; year of century and day of year; or
              two-digit ISO8601 fiscal year, week  of  year,  and
              day  of week; those groups are combined and used to
              determine the date.  If more than one complete  set
              is  present,  the  one at the rightmost position in
              the string is used.  The year is presumed to lie in
              the range 1938 to 2037 inclusive.

       [5]    If  the string entirely lacks any specification for
              the year (or contains the year only on the locale's
              alternative  calendar) and contains a set of format
              groups specifying month and day of  month,  day  of
              year, or week of year and day of week, those groups
              are combined and used to determine  the  date.   If
              more  than  one complete set is present, the one at
              the rightmost position in the string is used.   The
              year is determined by interpreting the base time in
              the given time zone.

       [6]    If the string contains none of the above sets,  but
              has  a day of the month or day of the week, the day
              of the month or day of the week are used to  deter-
              mine  the date by interpreting the base time in the
              given time zone and returning the given day of  the
              current  week or month.  (The week runs from Monday
              to Sunday, ISO8601-fashion.)  If both day of  month
              and  day  of week are present, the day of the month
              takes priority.

       [7]    If none of the above  rules  results  in  a  usable
              date,  the  date of the base time in the given time
              zone is used.

       The time is also determined according to the  fields  that
       are  present  in the preprocessed format string.  In order
       of preference:

       [1]    If the string contains a %s  format  group,  repre-
              senting  seconds  from the epoch, that group deter-
              mines the time of day.

       [2]    If the  string  contains  either  an  hour  on  the
              24-hour  clock or an hour on the 12-hour clock plus
              an AM/PM indicator, that hour determines  the  hour
              of the day.  If the string further contains a group
              specifying the minute of the hour, that group  com-
              bines  with  the  hour.  If the string further con-
              tains a group specifying the second of the  minute,
              that group combines with the hour and minute.

       [3]    If  the  string  contains neither a %s format group
              nor a group specifying the hour of  the  day,  then
              midnight  (00:00,  the  start of the given date) is
              used.  The time zone is determined  by  either  the
              -timezone  or -gmt options, or by using the current
              time zone.

       If a format string lacks a %z or %Z format  group,  it  is
       possible  for  the time to be ambiguous because it appears
       twice in the same day, once without and once with Daylight
       Saving  Time.   If this situation occurs, the first occur-
       rence of the time is chosen.  (For this reason, it is wise
       to  have  the input string contain the time zone when con-
       verting local times.  This caveat does not  apply  to  UTC
       times.)

FORMAT GROUPS
       The  following  format  groups are recognized by the clock
       scan and clock format commands.

       %a     On output, receives an abbreviation (e.g., Mon) for
              the day of the week in the given locale.  On input,
              matches the name of the day  of  the  week  in  the
              given  locale  (in either abbreviated or full form,
              or any unique prefix of either form).

       %A     On output, receives the full name (e.g., Monday) of
              the day of the week in the given locale.  On input,
              matches the name of the day  of  the  week  in  the
              given  locale  (in either abbreviated or full form,
              or any unique prefix of either form).

       %b     On output, receives an abbreviation (e.g., Jan) for
              the  name  of  the  month  in the given locale.  On
              input, matches the name of the month in  the  given
              locale  (in either abbreviated or full form, or any
              unique prefix of either form).

       %B     On output, receives the full name  (e.g.,  January)
              of  the  month  in  the  given  locale.   On input,
              matches the name of the month in the  given  locale
              (in  either abbreviated or full form, or any unique
              prefix of either form).

       %c     On output, receives a localized  representation  of
              date  and time of day; the localized representation
              is expected to  use  the  Gregorian  calendar.   On
              input, matches whatever %c produces.

       %C     On  output,  receives  the number of the century in
              Indo-Arabic numerals.  On input, matches one or two
              digits,  possibly with leading whitespace, that are
              expected to be the number of the century.

       %d     On output, produces the number of the  day  of  the
              month,  as  two  decimal digits.  On input, matches
              one or two digits, possibly  with  leading  whites-
              pace, that are expected to be the number of the day
              of the month.

       %D     This format group is synonymous with %m/%d/%Y.   It
              should  be  used only in exchanging data within the
              en_US locale, since other locales typically do  not
              use this order for the fields of the date.

       %e     On  output,  produces  the number of the day of the
              month, as one or two decimal digits (with a leading
              blank  for one-digit dates).  On input, matches one
              or two digits, possibly  with  leading  whitespace,
              that  are  expected  to be the number of the day of
              the month.

       %Ec    On output, produces a locale-dependent  representa-
              tion  of  the  date and time of day in the locale's
              alternative calendar.  On input,  matches  whatever
              %Ec  produces.   The  locale's alternative calendar
              need not be the Gregorian calendar.

       %EC    On output, produces a locale-dependent name  of  an
              era  in  the  locale's  alternative  calendar.   On
              input, matches the name of the era  or  any  unique
              prefix.

       %EE    On output, produces the string B.C.E. or C.E., or a
              string of the same meaning in the locale, to  indi-
              cate  whether  %Y  refers  to years before or after
              Year 1 of the Common Era.  On  input,  accepts  the
              string  B.C.E.,  B.C., C.E., A.D., or the abbrevia-
              tion appropriate to the current locale, and uses it
              to  fix  whether %Y refers to years before or after
              Year 1 of the Common Era.

       %Ex    On output, produces a locale-dependent  representa-
              tion of the date in the locale's alternative calen-
              dar.  On input, matches whatever %Ex produces.  The
              locale's  alternative calendar need not be the Gre-
              gorian calendar.

       %EX    On output, produces a locale-dependent  representa-
              tion of the time of day in the locale's alternative
              numerals.  On input, matches whatever %EX produces.

       %Ey    On  output,  produces  a locale-dependent number of
              the year of the era  in  the  locale's  alternative
              calendar  and  numerals.   On input, matches such a
              number.

       %EY    On output, produces a representation of the year in
              the locale's alternative calendar and numerals.  On
              input, matches what %EY produces.  Often synonymous
              with %EC%Ey.

       %g     On  output,  produces a two-digit year number suit-
              able for use with the week-based ISO8601  calendar;
              that  is,  the  year number corresponds to the week
              number produced by %V.  On input,  accepts  such  a
              two-digit   year   number,  possibly  with  leading
              whitespace.

       %G     On output, produces a four-digit year number  suit-
              able  for use with the week-based ISO8601 calendar;
              that is, the year number corresponds  to  the  week
              number  produced  by  %V.  On input, accepts such a
              four-digit  year  number,  possibly  with   leading
              whitespace.

       %h     This format group is synonymous with %b.

       %H     On  output,  produces a two-digit number giving the
              hour of the day (00-23) on  a  24-hour  clock.   On
              input, accepts such a number.

       %I     On  output,  produces a two-digit number giving the
              hour of the day (12-11) on  a  12-hour  clock.   On
              input, accepts such a number.

       %j     On output, produces a three-digit number giving the
              day of the year (001-366).  On input, accepts  such
              a number.

       %J     On  output,  produces a string of digits giving the
              Julian Day Number.  On input, accepts a  string  of
              digits  and  interprets  it as a Julian Day Number.
              The Julian Day Number is a count of the  number  of
              calendar  days  that  have elapsed since 1 January,
              4713 BCE of the  proleptic  Julian  calendar.   The
              epoch  time of 1 January 1970 corresponds to Julian
              Day Number 2440588.

       %k     On output, produces a one- or two-digit number giv-
              ing  the hour of the day (0-23) on a 24-hour clock.
              On input, accepts such a number.

       %l     On output, produces a one- or two-digit number giv-
              ing the hour of the day (12-11) on a 12-hour clock.
              On input, accepts such a number.

       %m     On output, produces the number of the month (01-12)
              with  exactly  two  digits.   On input, accepts two
              digits and interprets them as  the  number  of  the
              month.

       %M     On output, produces the number of the minute of the
              hour (00-59) with exactly two  digits.   On  input,
              accepts  two digits and interprets them as the num-
              ber of the minute of the hour.

       %N     On output, produces the number of the month  (1-12)
              with  one  or  two  digits, and a leading blank for
              one-digit dates.  On input, accepts one or two dig-
              its,  possibly  with leading whitespace, and inter-
              prets them as the number of the month.

       %Od, %Oe, %OH, %OI, %Ok, %Ol, %Om, %OM, %OS, %Ou, %Ow, %Oy
              All of these  format  groups  are  synonymous  with
              their counterparts without the "O", except that the
              string is produced and parsed in the  locale-depen-
              dent alternative numerals.

       %p     On  output,  produces  an indicator for the part of
              the day, AM or PM, appropriate to the given locale.
              If the script of the given locale supports multiple
              letterforms, lowercase  is  preferred.   On  input,
              matches  the  representation  AM or PM in the given
              locale, in either case.

       %P     On output, produces an indicator for  the  part  of
              the day, am or pm, appropriate to the given locale.
              If the script of the given locale supports multiple
              letterforms,  uppercase  is  preferred.   On input,
              matches the representation AM or PM  in  the  given
              locale, in either case.

       %Q     This  format  group  is  reserved  for internal use
              within the Tcl library.

       %r     On output, produces a locale-dependent time of  day
              representation   on  a  12-hour  clock.  On  input,
              accepts whatever %r produces.

       %R     On output, produces a locale-dependent time of  day
              representation   on  a  24-hour  clock.  On  input,
              accepts whatever %R produces.

       %s     On output, simply formats the timeVal argument as a
              decimal  integer  and  inserts  it  into the output
              string.  On input, accepts a  decimal  integer  and
              uses  is as the time value without any further pro-
              cessing. Since %s uniquely determines  a  point  in
              time, it overrides all other input formats.

       %S     On  output, produces a two-digit number of the sec-
              ond of the minute (00-59). On  input,  accepts  two
              digits and uses them as the second of the minute.

       %t     On  output,  produces  a  TAB  character. On input,
              matches a TAB character.

       %T     Synonymous with %H:%M:%S.

       %u     On output, produces the number of the  day  of  the
              week (1->Monday, 7->Sunday). On input, accepts a sin-
              gle digit and interprets it as the day of the week.
              Sunday may be either 0 or 7.

       %U     On  output, produces the ordinal number of the week
              of the year (00-53). The first Sunday of  the  year
              is  the  first day of week 01. On input accepts two
              digits which are  otherwise  ignored.  This  format
              group  is  never used in determining an input date.
              This interpretation of the week  of  the  year  was
              once  common in US banking but is now largely obso-
              lete.  See %V for the ISO8601 week number.

       %V     On output, produces the number of the ISO8601  week
              as  a two digit number (01-53). Week 01 is the week
              containing January 4; or the first week of the year
              containing  at least 4 days; or the week containing
              the first Thursday of the year  (the  three  state-
              ments  are  equivalent). Each week begins on a Mon-
              day. On input, accepts the ISO8601 week number.

       %w     On output, produces the ordinal number of  the  day
              of  the  week  (Sunday==0; Saturday==6).  On input,
              accepts a single digit and interprets it as the day
              of  the week; Sunday may be represented as either 0
              or 7.  Note that %w is not the ISO8601 weekday num-
              ber, which is produced and accepted by %u.

       %W     On  output,  produces  a week number (00-53) within
              the year; week 01 begins on the first Monday of the
              year.  On input, accepts two digits, which are oth-
              erwise ignored. This format group is never used  in
              determining  an  input date.  It is not the ISO8601
              week number; that week is produced and accepted  by
              %V.

       %x     On  output, produces the date in a locale-dependent
              representation. On input, accepts whatever %x  pro-
              duces and is used to determine calendar date.

       %X     On  output,  produces  the time of day in a locale-
              dependent representation. On input,  accepts  what-
              ever  %X  produces and is used to determine time of
              day.

       %y     On output, produces the two-digit year of the  cen-
              tury.  On input, accepts two digits, and is used to
              determine calendar date. The date  is  presumed  to
              lie  between  1938 and 2037 inclusive. Note that %y
              does not yield a year appropriate for use with  the
              ISO8601  week number %V; programs should use %g for
              that purpose.

       %Y     On output, produces the four-digit  calendar  year.
              On  input,  accepts  four digits and may be used to
              determine calendar date.  Note  that  %Y  does  not
              yield  a  year appropriate for use with the ISO8601
              week number %V; programs should  use  %G  for  that
              purpose.

       %z     On   output,   produces   the  current  time  zone,
              expressed in hours and minutes east (+hhmm) or west
              (-hhmm) of Greenwich. On input, accepts a time zone
              specifier (see TIME ZONES below) that will be  used
              to determine the time zone.

       %Z     On  output,  produces the current time zone's name,
              possibly translated to the given locale. On  input,
              accepts  a  time  zone  specifier  (see  TIME ZONES
              below) that will be  used  to  determine  the  time
              zone.  This  option  should, in general, be used on
              input only when parsing RFC822  dates.  Other  uses
              are  fraught  with  ambiguity;  for  instance,  the
              string BST may represent  British  Summer  Time  or
              Brazilian  Standard  Time.  It  is recommended that
              date/time strings for use by computers use  numeric
              time zones instead.

       %%     On  output,  produces  a  literal "%" character. On
              input, matches a literal "%" character.

       %+     Synonymous with "%a %b %e %H:%M:%S %Z %Y".

TIME ZONES
       When the clock command is processing a local time, it  has
       several  possible  sources  for  the time zone to use.  In
       order of preference, they are:

       [1]    A time zone specified inside a string being  parsed
              and matched by a %z or %Z format group.

       [2]    A  time zone specified with the -timezone option to
              the clock command (or, equivalently, by -gmt 1).

       [3]    A time zone specified in  an  environment  variable
              TCL_TZ.

       [4]    A  time  zone  specified in an environment variable
              TZ.

       [5]    The local time zone from the Control Panel on  Win-
              dows systems.

       [6]    The  C  library's  idea  of the local time zone, as
              defined by the mktime and localtime functions.

       In case [1] only, the string is tested to see if it is one
       of the strings:
               gmt     ut      utc     bst     wet     wat     at
               nft     nst     ndt     ast     adt     est     edt
               cst     cdt     mst     mdt     pst     pdt     yst
               ydt     hst     hdt     cat     ahst    nt      idlw
               cet     cest    met     mewt    mest    swt     sst
               eet     eest    bt      it      zp4     zp5     ist
               zp6     wast    wadt    jt      cct     jst     cast
               cadt    east    eadt    gst     nzt     nzst    nzdt
               idle
       If it is a string in the above list, it designates a known
       time zone, and is interpreted as such.

       For time zones in case [1] that do not match  any  of  the
       above strings, and always for cases [2]-[6], the following
       rules apply.

       If the time zone begins with a colon, it is one of a stan-
       dardized  list  of  names like :America/New_York that give
       the rules for various locales.  A  complete  list  of  the
       location  names is too lengthy to be listed here.  On most
       Tcl installations, the definitions of the locations are to
       be    found    in    named    files   in   the   directory
       "/no_backup/tools/lib/tcl8.5/clock/tzdata".  On some  Unix
       systems,  these files are omitted, and the definitions are
       instead obtained from system  files  in  "/usr/share/zone-
       info",  "/usr/share/lib/zoneinfo" or "/usr/local/etc/zone-
       info".  As a special case, the name :localtime  refers  to
       the local time zone as defined by the C library.

       A time zone string consisting of a plus or minus sign fol-
       lowed by four or six decimal digits is interpreted  as  an
       offset  in  hours, minutes, and seconds (if six digits are
       present) from UTC.  The plus sign denotes a sign  east  of
       Greenwich; the minus sign one west of Greenwich.

       A  time  zone string conforming to the Posix specification
       of the TZ environment variable will  be  recognized.   The
       specification    may    be   found   at   http://www.open-
       group.org/onlinepubs/009695399/basedefs/xbd_chap08.html.

       Any other time zone string is  processed  by  prefixing  a
       colon  and  attempting  to  use  it as a location name, as
       above.

LOCALIZATION
       Developers wishing to localize the date and  time  format-
       ting and parsing are referred to http://tip.tcl.tk/173 for
       a specification.

FREE FORM SCAN
       If the clock scan command is  invoked  without  a  -format
       option,  then  it requests a free-form scan.  This form of
       scan is deprecated.  The reason  for  the  deprecation  is
       that  there  are  too  many  ambiguities. (Does the string
       "2000" represent a year, a time of day,  or  a  quantity?)
       No set of rules for interpreting free-form dates and times
       has been found to give unsurprising results in all  cases.

       If free-form scan is used, only the -base and -gmt options
       are accepted.  The  -timezone  and  -locale  options  will
       result in an error if -format is not supplied.

       For  the  benefit  of  users who need to understand legacy
       code that uses free-form scan, the documentation  for  how
       free-form scan interprets a string is included here:

       If  only a time is specified, the current date is assumed.
       If the inputString does not contain a time zone  mnemonic,
       the  local  time zone is assumed, unless the -gmt argument
       is true, in which  case  the  clock  value  is  calculated
       assuming  that the specified time is relative to Greenwich
       Mean Time.  -gmt, if specified, affects only the  computed
       time  value;  it  does  not  impact  the interpretation of
       -base.

       If the -base flag is specified, the next  argument  should
       contain  an  integer  clock  value.  Only the date in this
       value is used, not the time.  This is useful for determin-
       ing  the  time on a specific day or doing other date-rela-
       tive conversions.

       The inputString argument consists of zero or more specifi-
       cations of the following form:

       time   A  time  of day, which is of the form: hh?:mm?:ss??
              ?meridian? ?zone?  or hhmm ?meridian? ?zone?  If no
              meridian  is  specified,  hh  is  interpreted  on a
              24-hour clock.

       date   A specific month and day with optional  year.   The
              acceptable  formats  are  "mm/dd?/yy?",  "monthname
              dd?, yy?", "day, dd monthname ?yy?", "dd  monthname
              yy",  "?CC?yymmdd", and "dd-monthname-?CC?yy".  The
              default year is the current year.  If the  year  is
              less   than  100,  we  treat  the  years  00-68  as
              2000-2068 and the years 69-99  as  1969-1999.   Not
              all  platforms can represent the years 38-70, so an
              error may result if these years are used.

       ISO 8601 point-in-time
              An ISO 8601 point-in-time  specification,  such  as
              "CCyymmddThhmmss,"  where  T  is  the  literal "T",
              "CCyymmdd hhmmss",  or  "CCyymmddThh:mm:ss".   Note
              that  only  these  three formats are accepted.  The
              command does not accept the full range of point-in-
              time  specifications  specified  in ISO8601.  Other
              formats can be recognized  by  giving  an  explicit
              -format option to the clock scan command.

       relative time
              A  specification relative to the current time.  The
              format is number unit. Acceptable units  are  year,
              fortnight, month, week, day, hour, minute (or min),
              and second (or sec).  The unit can be specified  as
              a  singular  or plural, as in 3 weeks.  These modi-
              fiers may also be specified:  tomorrow,  yesterday,
              today, now, last, this, next, ago.

       The  actual  date is calculated according to the following
       steps.

       First, any absolute date and/or time is processed and con-
       verted.  Using that time as the base, day-of-week specifi-
       cations are  added.   Next,  relative  specifications  are
       used.   If  a date or day is specified, and no absolute or
       relative time is given, midnight is used.  Finally, a cor-
       rection  is applied so that the correct hour of the day is
       produced after allowing for daylight savings time  differ-
       ences  and  the  correct date is given when going from the
       end of a long month to a short month.

SEE ALSO
       msgcat(n)

KEYWORDS
       clock, date, time

COPYRIGHT
       Copyright (c) 2004 Kevin B. Kenny  <kennykb@acm.org>.  All
       rights reserved.



Tcl                            8.5                       clock(n)


@@@COMMAND: close@@@
close(n)              Tcl Built-In Commands              close(n)



_________________________________________________________________

NAME
       close - Close an open channel

SYNOPSIS
       close channelId
_________________________________________________________________


DESCRIPTION
       Closes the channel given by channelId.

       ChannelId  must  be an identifier for an open channel such
       as a Tcl standard channel (stdin, stdout, or stderr),  the
       return  value from an invocation of open or socket, or the
       result of a channel creation command  provided  by  a  Tcl
       extension.

       All  buffered  output  is  flushed to the channel's output
       device, any buffered input is  discarded,  the  underlying
       file  or  device is closed, and channelId becomes unavail-
       able for use.

       If the channel is blocking, the command  does  not  return
       until  all output is flushed.  If the channel is nonblock-
       ing and there is unflushed  output,  the  channel  remains
       open  and  the command returns immediately; output will be
       flushed in the background and the channel will  be  closed
       when all the flushing is complete.

       If  channelId is a blocking channel for a command pipeline
       then close waits for the child processes to complete.

       If the channel is shared between interpreters, then  close
       makes  channelId  unavailable  in the invoking interpreter
       but has no other effect until all of  the  sharing  inter-
       preters  have  closed  the  channel.  When the last inter-
       preter in which the channel is registered  invokes  close,
       the  cleanup actions described above occur. See the interp
       command for a description of channel sharing.

       Channels are automatically closed when an  interpreter  is
       destroyed  and  when  the  process  exits.   Channels  are
       switched to blocking mode, to ensure that  all  output  is
       correctly flushed before the process exits.

       The  command  returns an empty string, and may generate an
       error if an error occurs while flushing output.  If a com-
       mand  in  a  command pipeline created with open returns an
       error, close generates an error (similar to the exec  com-
       mand.)

EXAMPLE
       This  illustrates how you can use Tcl to ensure that files
       get closed even when errors  happen  by  combining  catch,
       close and return:
              proc withOpenFile {filename channelVar script} {
                  upvar 1 $channelVar chan
                  set chan [open $filename]
                  catch {
                      uplevel 1 $script
                  } result options
                  close $chan
                  return -options $options $result
              }


SEE ALSO
       file(n),  open(n),  socket(n),  eof(n),  Tcl_StandardChan-
       nels(3)


KEYWORDS
       blocking, channel, close, nonblocking



Tcl                            7.5                       close(n)


@@@COMMAND: close_design@@@
close_design

Description: 
Close the current design

Syntax: 
close_design  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project

Description:

  Closes the currently active design. If the design has been modified, you
  will not be prompted to save the design prior to closing. You will need to
  run save_design or save_design_as to save any changes made to the design
  before using the close_design command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example closes the current design:

    close_design

  Note: If multiple designs are open, you can specify the current design with
  the current_design command prior to using close_design.

  The following example sets the current design, then closes it:

    current_design rtl_1
    close_design

  current_design sets rtl_1 as the active design, then the close_design
  command closes it.

See Also:

   *  current_design


@@@COMMAND: close_hw@@@
The command 'close_hw' is auto loaded by Tcl. To explicitly load the command type 'load_features labtools'.

@@@COMMAND: close_msg_db@@@
close_msg_db

Description: 
Close Message Db file

Syntax: 
close_msg_db  [-file <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-file]     Message file to be closed
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Report


@@@COMMAND: close_project@@@
close_project

Description: 
Close current opened project

Syntax: 
close_project  [-delete] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-delete]   Delete the project from disk also
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project

Description:

  Closes the current open project.

  Tip: Any user-defined Tcl variables that are in the global namespace (that
  is, not in a project-specific namespace) are not reset or cleared by this
  command. Global variables are persistent with the invocation of AMD Vivado
  and are only cleared when the AMD Vivado Design Suite is closed. You can
  also use the unset command to expressly clear a specific Tcl variable.

Arguments:

  -delete - (Optional) Delete the project data from the hard disk after
  closing the project.

  Note: Use this argument with caution. You will not be prompted to confirm
  the deletion of project data.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following command closes the active project:

    close_project

  This example closes the current project. If you have multiple projects
  open, the close_project command applies to the current project which can be
  defined with the current_project command.

  The following example sets project_1 as the current project, and then
  closes the project and deletes it from the computer hard disk:

    current_project project_1
    close_project -delete

  Note: Use the -delete argument with caution. You will not be prompted to
  confirm the deletion of project data.

See Also:

   *  current_project


@@@COMMAND: combine_hw_platforms@@@
combine_hw_platforms

Description: 
Add a hw_emu Xilinx Shell Archive to an existing hw Xilinx Shell Archive

Syntax: 
combine_hw_platforms  [-hw <arg>] [-hw_emu <arg>] [-o <arg>] [-force] [-quiet]
                      [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-hw]       A hw Xilinx Shell Archive
              Values: A filename with alphanumeric characters and .xsa 
              extension.
  [-hw_emu]   A hw_emu Xilinx Shell Archive
              Values: A filename with alphanumeric characters and .xsa 
              extension.
  [-o]        The (optional) output Xilinx Shell Archive. If not specified, 
              the hw_emu will be added to the hw file, overwriting the 
              original file.
              Values: A filename with alphanumeric characters and .xsa 
              extension.
  [-force]    Overwrite existing Xilinx Shell Archive file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Vitis, Platform, FileIO


@@@COMMAND: compile_c@@@
compile_c

Description: 
Compile C code into RTL

Syntax: 
compile_c  [-force] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-force]    Force generate product state regeneration
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   The objects which need C to RTL conversion

Categories: 
Project, IPFlow, IPIntegrator

Description:

  In IP cores that are imported from AMD Vivado HLS, the compile_c command
  detects C, C++, and SystemC files and converts those files to RTL for
  synthesis by the Vivado Design Suite.

  This lets you use Vivado HLS to describe IP cores in a high-level language,
  like C or C++ rather than RTL.

  When HLS-based IP cores are generated, they only deliver the C source. When
  the HLS-based IP is synthesized, either in the out-of-context flow, or with
  the top-level design, the compile_c command launches Vivado HLS to convert
  the C source files into RTL, and import the resulting RTL sources back into
  the design prior to synthesis.

  Note: The compile_c command is automatically called by the Vivado Design
  Suite when it encounters IP with C code from the Vivado HLS system. You
  should not need to manually call this command.

Arguments:

  -force - (Optional) Force regeneration of the RTL in the HLS-based IP.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) Specify the IP objects in the current project to
  convert files from C, C++, or SystemC to RTL code.

Example:

  The following example gets the C-language files from the specified IP
  object and converts them to RTL:

    compile_c [get_ips instance_name]

See Also:

   *  get_ips


@@@COMMAND: compile_simlib@@@
compile_simlib

Description: 
Compile simulation libraries

Syntax: 
compile_simlib  [-directory <arg>] [-family <arg>] [-force] [-language <arg>]
                [-library <arg>] [-print_library_info <arg>] -simulator <arg>
                [-simulator_exec_path <arg>] [-gcc_exec_path <arg>]
                [-source_library_path <arg>] [-no_ip_compile]
                [-no_systemc_compile] [-skip_libraries <args>] [-quiet]
                [-verbose]

Usage: 
  Name                    Description
  -----------------------------------
  [-directory]            Directory path for saving the compiled results
                          Default: .
  [-family]               Select device architecture
                          Default: all
  [-force]                Overwrite the pre-compiled libraries
  [-language]             Compile libraries for this language
                          Default: all
  [-library]              Select library to compile
                          Default: all
  [-print_library_info]   Print Pre-Compiled library information
  -simulator              Compile libraries for this simulator
  [-simulator_exec_path]  Use simulator executables from this directory
  [-gcc_exec_path]        Use GNU executables from this directory
  [-source_library_path]  If specified, this directory will be searched for 
                          the library source files before searching the 
                          default path(s) found in environment variable 
                          XILINX_VIVADO for Vivado
  [-no_ip_compile]        Do not compile IP static files from repository
  [-no_systemc_compile]   Do not compile models for system simulation
  [-skip_libraries]       Name of the libraries to skip for compilation
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
Simulation

Description:

  Compile simulation libraries for the cells and IP used in the current
  project, or from a specified directory for use in multiple design projects.

  The AMD Vivado Design Suite provides simulation models as a set of files
  and libraries that contain the behavioral and timing models for use by the
  Vivado simulator. Thecompile_simlib command compiles these libraries for
  use by third-party simulators prior to design simulation. Libraries must
  generally be compiled or recompiled with a new software release to update
  simulation models and to support a new version of a simulator.

  Important: Ensure to rerun the compile_simlib command any time a new
  third-party simulator is used, or a new Vivado Design Suite version or
  update is installed.

  When this command is run from a current project, the tool uses the device
  family, target language, and library settings specified by the project as
  the default values, rather than the default settings of the command defined
  below. The default settings can be overridden by specifying the necessary
  options when the command is run.

  The compile_simlib command uses simulator compilation directives when
  compiling the simulation libraries. You can edit the default configuration
  settings using the config_compile_simlib command.

  The command returns information related to the compiled libraries, or an
  error if it fails.

Arguments:

  -directory <arg> - (Optional) Directory path for saving the compiled
  library results.

  Note: By default, the libraries are saved in the current working directory
  in Non-Project mode, and the libraries are saved in
  <project>/<project>.cache/compile_simlib directory in Project mode. Refer
  to the Vivado Design Suite User Guide: Design Flows Overview (UG892) for
  more information on Project and Non-Project modes.

  -family <arg> - (Optional) Compile simulation libraries for the specified
  device family. If this switch is not specified, the libraries for all
  families are compiled. The following values are supported for this <arg>:

   *  all (generate libraries for all device families, the default)
   *  kintex7 - AMD Kintex 7 family
   *  virtex7 - AMD Virtex 7 family
   *  artix7 - AMD Artix 7 family
   *  spartan7 - Spartan-7 family
   *  zynq - AMD Zynq 7000 family
   *  kintexu - AMD Kintex UltraScale family
   *  kintexuplus - AMD Kintex UltraScale+ family
   *  virtexu - AMD Virtex UltraScale family
   *  virtexuplus - AMD Virtex UltraScale+ family
   *  artixuplus - AMD Artix UltraScale+ family
   *  zynquplus - AMD Zynq UltraScale+ family
   *  zynquplusrfsoc - AMD Zynq UltraScale+ RFSoC family
   *  versal - AMD Versal Adaptive SoC family

  -force - (Optional) Overwrite the current pre-compiled libraries.

  -language [ verilog | vhdl | all ] - (Optional) This option is only needed
  for use with -no_ip_compile, and will compile base simulation libraries for
  the specified language. If this option is not specified then the language
  will be set according to the simulator selected with -simulator. For
  multi-language simulators both Verilog and VHDL libraries will be compiled.

  Tip: By default, compile_simlib compiles simulation libraries for IP, and
  compiles all languages for the IP.

  -library <arg> - (Optional) Specify the simulation library to compile. As a
  default, the compile_simlib command will compile all simulation libraries.
  Valid values are:

   *  all (the default)
   *  unisim
   *  simprim

  To specify multiple libraries, repeat the -lib options for each library.
  For example:

    .. -library unisim -library simprim ..

  -print_library_info - (Optional) Print the library information for the
  compiled simulation library.

  -simulator <arg> - (Required) Compile simulation libraries for the
  specified simulator. The following values are supported for this <arg>:

   *  modelsim - ModelSim Simulator version 2024.1
   *  questa - Questa Advanced Simulator version 2024.1
   *  xcelium - (Linux only) Xcelium Parallel Simulator version 24.03.003
   *  vcs - (Linux only) Verilog Compiler Simulator version V-2023.12-SP1
   *  riviera - Riviera-PRO Simulator version 2024.04
   *  activehdl - (Windows only) Active-HDL Simulator version 15.0

  -simulator_exec_path <arg> - (Optional) Specify the directory to locate the
  third-party compiler and simulator executables. This option is required if
  the target simulator is not specified in the $PATH or %PATH% environment
  variable; or to override the path from the $PATH or %PATH% environment
  variable.

  -gcc_exec_path <arg> - (Optional) Specify the directory to locate the
  third-party simulator GCC executables. If this switch is not specified,
  then the directory path will be determined from the path set by the
  GCC_SIM_EXE_PATH environment variable. If this variable is not set, then
  compile_simlib will automatically try to calculate the path from the
  simulator installation. If not able to determine, the path will be then
  searched from the $PATH (Linux) or %PATH% (Windows) environment variable.

  Supported GCC versions.

   *  questa - 7.4.0
   *  xcelium - 9.3.0
   *  vcs - 9.2.0
   *  riviera - 9.3.0

  -source_library_path <arg> - (Optional) If specified, this directory will
  be searched for the library source files before searching the default
  path(s) defined by the environment variables ($XILINX or $XILINX_VIVADO).

  Note: Do not use this option unless explicitly instructed to by the
  Technical Support.

  -skip_libraries <arg> - (Optional) Disables the compilation of specified
  libraries.

    <arg>: [list <lib1> <lib2> ... <libn>]

  -no_ip_compile - (Optional) Disables the compilation of simulation files
  for IP in the design or the specified repositories. By default, the
  compile_simlib command compiles the static simulation files for all IP in
  the IP catalog, including added user and third-party repositories. Use this
  option to disable that feature.

  -no_systemc_compile - (Optional) Disables the compilation of Systemc/C++/C
  based IPs. If your design does not need to be verified for system
  simulation then you can specify this option.

  -32bit - (Optional) Perform simulator compilation in 32-bit mode instead of
  the default 64-bit compilation.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example compile UNISIM and SIMPRIM libraries for ModelSim
  (VHDL) for a design using a Virtex 7 device:

    compile_simlib -simulator modelsim -family virtex7 -library unisim \
       -library simprim -language vhdl

See Also:

   *  config_compile_simlib
   *  export_simulation
   *  launch_simulation


@@@COMMAND: concat@@@
concat(n)             Tcl Built-In Commands             concat(n)



_________________________________________________________________

NAME
       concat - Join lists together

SYNOPSIS
       concat ?arg arg ...?
_________________________________________________________________


DESCRIPTION
       This  command  joins  each  of its arguments together with
       spaces after trimming  leading  and  trailing  white-space
       from  each  of them.  If all the arguments are lists, this
       has the same effect as concatenating them  into  a  single
       list.   It permits any number of arguments; if no args are
       supplied, the result is an empty string.

EXAMPLES
       Although concat will concatenate lists (so the command:
              concat a b {c d e} {f {g h}}
       will return "a b c d e f {g h}" as its  result),  it  will
       also  concatenate things that are not lists, and hence the
       command:
              concat " a b {c   " d "  e} f"
       will return "a b {c d e} f" as its result.

       Note that the concatenation does not  remove  spaces  from
       the middle of its arguments, so the command:
              concat "a   b   c" { d e f }
       will  return  "a    b    c  d e f" (i.e. with three spaces
       between the a, the b and the c).


SEE ALSO
       append(n), eval(n)


KEYWORDS
       concatenate, join, lists



Tcl                            8.3                      concat(n)


@@@COMMAND: config_compile_simlib@@@
config_compile_simlib

Description: 
Configure settings for compile_simlib

Syntax: 
config_compile_simlib  [-cfgopt <arg>] [-cfgval <arg>] [-simulator <arg>]
                       [-reset] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  [-cfgopt]     Name of the configuration to set
  [-cfgval]     Get the value of specified configuration
  [-simulator]  Print the list of configurations for the specified simulator
  [-reset]      Initialize configurations to default value
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
Simulation

Description:

  Configure third-party simulator options for use by the compile_simlib
  command.

  The AMD Vivado Design Suite has a pre-defined configuration file for the
  compile_simlib command, with compilation options defined for supported
  third-party simulators, languages, and libraries. The config_compile_simlib
  command is provided to let you change the configuration options for
  specific combinations of simulator, language, and library.

  Use the config_compile_simlib command without any arguments to return all
  available configuration options.

Arguments:

  -cfgopt <arg> - (Optional) Specify the configuration options for a specific
  third party simulator, language, and library combination. The -cfgopt
  argument is specified as a string made up of four parts in the following
  form.

    {<simulator>.<language>.<library>:<options> }

  where,

   *  <simulator> - Specify the third-party simulator to configure options.
      Refer to the compile_simlib command for currently supported
      versions of third-party simulators. Valid values are modelsim, questa,
      xcelium, vcs, riviera, activehdl

   *  <language> - Specify the language to set the simulation options.
      Valid values are verilog, vhdl, g++, gcc, <compiler>

   *  <library> - Specify the library to set the compilation options. Valid 
      values are axi_bfm, ieee, simprim, xpm, xilinx_vip, std, synopsys, unisim,
      secureip, vl, global, <ip>

   *  <options> - Configuration options specific to the simulator, language,
      and library specified. The following are the default compilation
      options available for different <simulator>.<language>.<library>
      combinations.

       -  modelsim: -quiet, +define+XIL_TIMING, -93 (vhdl), -source (simprim,
          unisim)

       -  questa: -quiet, +define+XIL_TIMING, -93 (vhdl), -source (simprim,
          unisim)

       -  xcelium: -MESSAGES, -NOLOG, -DEFINE XIL_TIMING, -v93 (vhdl),
          -RELAX (vhdl)

       -  vcs: -sverilog (verilog), -nc, +v2k (simprim, unisim),
          +define+XIL_TIMING

       -  riviera: -v2k5 (verilog), +define+XIL_TIMING, -93 (vhdl), -nowarn
          ELAB1_0026 (vhdl)

       -  activehdl: -v2k5 (verilog), +define+XIL_TIMING, -93 (vhdl),
          -nowarn ELAB1_0026 (vhdl)

      Note: Refer to the third-party simulator documentation for other
      compilation options that may be supported.

  -cfgval <arg> - (Optional) Get the configuration value of the specified
  option. The -cfgval argument is specified as a string made up of three
  parts in the following form.

    {<simulator>.<language>.<library>}

  Note: Refer -cfgopt switch for the argument values.

  -simulator <arg> - (Optional) This option acts as a filter to return only
  the configuration options associated with the specified simulator. Refer to
  the -cfgopt option for a list of valid simulator values.

  -reset - (Optional) Restore all configuration settings to the factory
  default value.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example prints the available configurations for the Questa
  simulator:

    config_compile_simlib -simulator questa

  The following example configures the compilation options for the verilog
  unisim library when compiling for ModelSim simulator:

    config_compile_simlib -cfgopt {modelsim.verilog.unisim: -O4}

  The following example configures the compilation options for the verilog
  synopsys and verilog simprim library when compiling for Questa simulator:

    config_compile_simlib -cfgopt {questa.verilog.synopsys: -quiet} \
    -cfgopt {questa.verilog.simprim:-source +define+XIL_TIMING}

  The following example configures the compilation options for all vhdl based
  libraries when compiling for Xcelium simulator:

    config_compile_simlib -cfgopt {xcelium.vhdl.global: -MESSAGES}

  The following example configures the compilation options for the
  hdcp_v1_0_3 IP library when compiling for VCS simulator:

    config_compile_simlib -cfgopt {vcs.vhdl.hdcp_v1_0_3: -MESSAGES}

  The following example returns the current value of the configured option
  for the Riviera verilog xpm library:

    config_compile_simlib -cfgval {riviera.verilog.xpm}

See Also:

   *  compile_simlib


@@@COMMAND: config_design_analysis@@@
config_design_analysis

Description: 
This command configures general features of design analysis.

Syntax: 
config_design_analysis  [-max_common_paths <arg>] [-quiet] [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  [-max_common_paths]  Number of paths to consider for finding common paths 
                       across phases (< 20000)
                       Default: 1000
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Timing

Description:

  This command configures features of the report_design_analysis command.

  The design analysis report analyzes timing paths at various stages in the
  AMD Vivado Design Suite tool flow, including synthesis, optimization, 
  placement, routing. The -max_common_paths option specifies how many setup 
  timing paths to capture at each stage in the flow.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -max_common_paths <arg> - (Optional) The number of paths to consider when
  examining the distribution of common paths across phases of implementation.
  Specified as an integer value less than 20,000, the default is 1000.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example ignores the package delays during timing analysis:

    config_design_analysis 500

See Also:

   *  report_design_analysis


@@@COMMAND: config_flows@@@
config_flows

Description: 
Config Flow

Syntax: 
config_flows  [-mark_debug <arg>] [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-mark_debug]  Allows nets with MARK_DEBUG to be optimized instead of 
                 preserved.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Project

Description:

  This command configures tool behavior, it spans multiple stages of the
  Vivado core design flow, from IP integrator to bitstream generation. The
  user selection affects synthesis, constraints, and HW debug.

Arguments:

  -mark_debug - (Optional) Allow optimization of nets with MARK_DEBUG instead
  of preserve. This includes both HDL attributes and XDC constraints. This
  setting makes it easier to move in and out of the design debug phases. The
  setting must be applied before opening and launching design runs or before
  opening design checkpoints. The following three values are supported:

   *  enable - Do not optimize MARK_DEBUG nets. This is the default value.

   *  disable - Allow both synthesis and implementation to freely optimize
      MARK_DEBUG nets.

   *  synthesis_only - Synthesis will not optimize MARK_DEBUG nets so that
      they are available at the beginning of implementation, but MARK_DEBUG
      nets can be freely optimized during implementation.

See Also:

   *  config_implementation


@@@COMMAND: config_implementation@@@
config_implementation

Description: 
Configure Implementation

Syntax: 
config_implementation  [-quiet] [-verbose] [<list>]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<list>]    list of config params which need to be configured

Categories: 
Configuration

Description:

  This command lets you configure implementation parameters to control the
  behavior of the implementation process.

  The list of properties that can be configured, or have been configured by
  this command can be reported by the report_config_implementation command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <list> - (Required) A list of parameters and their values, to configure
  with the command. The parameters and their values must be enclosed in
  braces, and the list must be enclosed in braces as show in the Example
  below.

Examples:

  The following example configures implementation parameters:

    config_implementation { {incr.ignore_user_clock_uncertainty True} {<other_param> <other_value>} }

See Also:

   *  report_config_implementation


@@@COMMAND: config_inter_slr_muxing@@@
config_inter_slr_muxing

Description: 
This command configures the properties of Inter SLR Muxing flow.

Syntax: 
config_inter_slr_muxing  [-insertion_mode <arg>] [-min_ratio <arg>]
                         [-max_ratio <arg>] [-area_constraint <arg>]
                         [-max_nets <arg>] [-isdut_mode <arg>]
                         [-control_logic_sharing <arg>] [-quiet] [-verbose]

Usage: 
  Name                      Description
  -------------------------------------
  [-insertion_mode]         Enable the inter-SLR muxing flow
                            Default: none
  [-min_ratio]              Minimum ratio for the inter-SLR circuitry
                            Default: 2
  [-max_ratio]              Maximum ratio for the inter-SLR circuitry
                            Default: 16
  [-area_constraint]        Area constraint around the SLR crossing
                            Default: 1
  [-max_nets]               Maximum number of nets to be muxed
                            Default: 10000000
  [-isdut_mode]             Inheritance of property IS_DUT for the inserted 
                            logic
                            Default: 2
  [-control_logic_sharing]  Maximum number of IPs sharing the same control 
                            logic
                            Default: 0
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution

Categories: 
Tools, Place

Description:

  This command configures the inter-SLR muxing options to enable and control
  the behavior of the mux and demux logic insertion.

Arguments:

  -insertion_mode - (Optional) Use this option to specify the mode of
  operation for the inter-SLR muxing flow. The available values are:

   *  all - all datapath nets are considered for the inter-SLR muxing flow

   *  user - only consider the nets with the property INTER_SLR_MUX_NET=1

   *  none - default value. The inter-SLR muxing flow is disabled

  -min_ratio - (Optional) Use this option to sets the minimum ratio value.
  Default: 2

  -max_ratio - (Optional) Use this option to set the maximum ratio value.
  Default: 16

  Note: The available ratios are 2, 3, 4, 8, and 16.

  -area_constraint - (Optional) Use this option to set the area constraint
  around the SLR crossing for the inserted logic.

   *  Default: 1. The logic is placed anywhere inside the SLR.

   *  A value of 2 or more indicates an area constraint as a fraction of the
      SLR height or width, depending if the crossing is horizontal or
      vertical.

  -max_nets - (Optional) Use this option to set the maximum number of nets
  that can be multiplexed and demultiplexed

  -control_logic_sharing - (Optional) Use this option to set the maximum
  number of inserted mux/demux that can share the same control logic.

   *  A value of 0 or 1 prevents control sharing between the inserted IPs

   *  A value of 2 or more indicates the maximum number of inserted IPs that
      can share the same control logic

  -isdut_mode - (Optional) Use this option to set the IS_DUT property
  inheritance mode for the inserted mux and demux logic

   *  2: Default value. The property IS_DUT is inherited from the drivers and
      loads

   *  1: The property IS_DUT=1 is enforced on the inserted logic

   *  0: The property IS_DUT=0 is enforced on the inserted logic

Example:

  The following example enables the inter-SLR muxing flow with a unique ratio
  of 4:

    config_inter_slr_muxing -insertion_mode all -min_ratio 4 -max_ratio 4

See Also:

   *  report_config_inter_slr_muxing


@@@COMMAND: config_ip_cache@@@
config_ip_cache

Description: 
Manage the IP instance Synthesis cache. Lists out the IP Cache entries if no options are specified.

Syntax: 
config_ip_cache  [-use_cache_location <arg>] [-use_project_cache]
                 [-disable_cache] [-clear_output_repo] [-clear_local_cache]
                 [-cache_has_match] [-cache_was_used] [-disable_for_ip]
                 [-enable_for_ip] [-is_ip_disabled] [-get_id]
                 [-get_entry_location <arg>] [-disk_usage_output_repo]
                 [-import_from_project] [-zip_cache <arg>] [-remove] [-purge]
                 [-vlnv <arg>] [-old_swvers] [-unused] [-swver <arg>]
                 [-num_days_old <arg>] [-num_days_unused <arg>]
                 [-obs_synth_crc] [-report] [-rptfile <arg>] [-csvfile <arg>]
                 [-dir <arg>] [-quiet] [-verbose] [<ip>]

Usage: 
  Name                       Description
  --------------------------------------
  [-use_cache_location]      Set current project properties to use the 
                             specified cache location
  [-use_project_cache]       Set current project properties to use the 
                             default project IP cache location
  [-disable_cache]           Disable cache use.
  [-clear_output_repo]       Delete from disk and in memory all cache entries
                             that exist in the current project's designated 
                             cache (local or remote).
  [-clear_local_cache]       Delete from disk and in memory all local cache 
                             entries for this project.
  [-cache_has_match]         Returns the cache-ID of the cache entry that 
                             would work for this IP instance; else ''.
  [-cache_was_used]          Returns '1' if the cache was used to obtain the 
                             IP's current synthesis results; else '0'.
  [-disable_for_ip]          Disable cache usage for a specific IP instance.
  [-enable_for_ip]           Re-enable cache usage for a specific IP 
                             instance.
  [-is_ip_disabled]          Returns '1' if the cache usage is disabled for 
                             the specified IP instance; else '0'.
  [-get_id]                  Calculate and return IP cache ID string for 
                             specified <ip>
  [-get_entry_location]      Return directory where this cache-ID entry is 
                             located.
  [-disk_usage_output_repo]  Return total disk usage in MB for all cache 
                             entries in the current project's ip_output_repo.
  [-import_from_project]     Import existing synthesized IP from the project 
                             into the cache.
  [-zip_cache]               Zip up all cache entries used by IP instances in
                             the current project and write to the given 
                             zipfilename.
  [-remove]                  Remove the corresponding cache entry for the 
                             specified IP instance or specified cachedInst; 
                             return cache ID string if successful, otherwise 
                             blank.
  [-purge]                   Delete all cache entries that match the 
                             specified type(s): -vlnv, -obs_swvers, 
                             -obs_synth_crc, and/or -swver. Returns the 
                             number of entries deleted.
  [-vlnv]                    Used with -purge, specifies the VLNV of the IP 
                             the cache entries were created from. May use a 
                             wildcard ('*') in one or more fields in the 
                             VLNV.
  [-old_swvers]              Used with -purge to delete cache entries created
                             with old Vivado SW Versions.
  [-unused]                  Used with -purge to delete cache entries that 
                             have never been used.
  [-swver]                   Used with -purge to delete any cache entries 
                             created from this specific Vivado SW Version 
                             (i.e., '2017.1').
  [-num_days_old]            Used with -purge to delete any cache entries 
                             that are this number of days old or older.
  [-num_days_unused]         Used with -purge to delete any cache entries 
                             that have not been used for this number of days 
                             or longer.
  [-obs_synth_crc]           Used with -purge to delete cache entries whose 
                             component synth checksum is not the same as the 
                             IP Catalog's current component synthesis 
                             checksum.
  [-report]                  Report cache statistics for the specified IP or 
                             cache object, or for the current cache location 
                             if none specified. If -rptfile is specified, 
                             write statistics to that file. If -dir is 
                             specified, write statistics for cache entries 
                             found under that directory.
  [-rptfile]                 Used with -report, specifies the text file to 
                             write the cache statistics to.
  [-csvfile]                 Used with -report, specifies the csv file to 
                             write the cache statistics to, in csv format.
  [-dir]                     Used eith -report, specifies the directory to 
                             report cache entry statistics for.
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  [<ip>]                     IP instance object, IP file, or IP name pattern

Categories: 
Object, IPFlow

Description:

  This command lets you manage the AMD Vivado Design Suite out-of-context
  (OOC) IP cache. The Vivado Design Suite caches the synthesis results for
  customized OOC IP in a cache repository, so multiple IP that use the same
  customization profile can share OOC synthesis results to decrease run time.
  The cached synthesis results can be reused in a single project from the
  project cache, or across multiple projects using a remote cache location.

  When generating the synthesis output products for an OOC IP, if a matching
  IP customization is found in the cache repository, the cached synthesis
  results will be used. If no suitable match is found in the cache
  repository, the synthesis output products will be generated as usual and
  the results, including the design checkpoint (DCP), will be copied into the
  cache for future use.

  Tip: When cached results are used, an information message is displayed in
  the Tcl console indicating the IP cache-ID of the results used. The
  cache-ID is a string value calculated from the IP configuration settings,
  as well as other pertinent data, such as the vivado software version, used
  when the cached synthesis results were first generated. This string is also
  used as the directory name under the cache repository where this entry's
  files are stored.

  You can specify a location for the cached IP synthesis results either
  within the current project, or at an external location. The location of the
  IP cache is defined by the IP_OUTPUT_REPO property on a project, with the
  value of a string defining a valid file system directory. You can set this
  property using the config_ip_cache command with either the
  -use_cache_location or the -use_project_cache options. The default IP
  synthesis cache location is in the current project folders.

  The use of the IP synthesis cache is controlled by the IP_CACHE_PERMISSIONS
  project property that can be set with the set_property command. The current
  values are:

   *  disabled - Do not use the IP synthesis cache.

   *  read - Use the IP synthesis cache to read OOC synthesis results from
      and apply as appropriate in the current project.

   *  write - Use the IP synthesis cache to write OOC synthesis results into,
      but do not use them to read IP into the current project.

   *  read write - Use the IP synthesis cache for both writing results to,
      and using those results in the current project. This is the default
      setting.

  Tip: The IP synthesis cache can be enabled, and the cache repository
  specified, in the Vivado Design Suite IDE using the Settings dialog box.
  Refer to the Vivado Design Suite User Guide: Designing with IP (UG896) for
  more information on using the cache.

  Note: Cache entries created by one Vivado software version are not viable
  in a different Vivado software version. Local project caches are
  automatically cleared when updating a Vivado project to a new Vivado
  release.

  By default, without any of the arguments specified below, the
  config_ip_cache command returns a list of entries in the IP synthesis
  cache, or returns an error if it fails.

Arguments:

  -use_cache_location <arg> - (Optional) Specify a directory pathname to use
  as the IP cache repository for the current project. For example,
  "config_ip_cache -use_cache_location /mydata/global_cache".

  -use_project_cache - (Optional) This is the default location for the cached
  IP synthesis results. This option enables the current project to use the
  default IP cache location inside the local project directory. You can use
  this option to restore the default. For example, "config_ip_cache
  -use_project_cache".

  -disable_cache - (Optional) Disable the IP synthesis cache. This has the
  effect of setting the IP_CACHE_PERMISSIONS property to "disabled". For
  example, "config_ip_cache -disable_cache".

  Tip: To re-enable the cache after it has been disabled, you will need to
  set the IP_CACHE_PERMISSIONS property, or use the Vivado Design Suite IDE.

  -clear_output_repo - (Optional) This clears the IP synthesis cache of all
  existing cached results, whether the cache is local to the project or a
  remote directory that is shared across multiple projects. For example,
  "config_ip_cache -clear_output_repo".

  Important: You will not be prompted to confirm this command before the
  cached results are deleted.

  -clear_local_cache - (Optional) This clears the IP synthesis cache of all
  existing cached results, but only if using the local project cache. For
  example, "config_ip_cache -clear_local_cache".

  -cache_has_match - (Optional) Returns the cache-ID of the cached entry that
  would work for the specified IP instance. For example, "config_ip_cache
  -cache_has_match [get_ips my_ip_0]".

  -cache_was_used - (Optional) Returns '1' if the cache was used to obtain
  the specified IP's current synthesis results; else '0'. For example,
  "config_ip_cache -cache_was_used [get_ips my_ip_0]".

  -get_id - (Optional) Calculates and returns the cache-ID string for the
  specified IP instance. The cache-ID is unique to each cache entry,
  generated based on the IP instance configuration and current Vivado version
  and settings. For example, "config_ip_cache -get_id [get_ips my_ip_0]".

  -disk_usage_output_repo - (Optional) Returns the total disk usage in MB for
  all cache entries in the current project's IP Cache repository. For
  example, "config_ip_cache -disk_usage_output_repo".

  -import_from_project - (Optional) Populates the current IP cache with
  synthesis results from the current design. This can be used to populate an
  IP cache with the synthesis results of an existing project to be reused by
  other projects or design iterations. For example, config_ip_cache
  -import_from_project.

  -zip_cache <file_name> - (Optional) Zips up all cache entries used by the
  IP instances in the current project and writes to the specified
  <file_name>. The cache entries could be found in the Cache repository, or
  in any of the loaded user repositories. If any IP instance in the project
  does not have a cache entry found, then the return string holds a message
  that lists those IP instances. For example, "config_ip_cache -zip_cache
  /mydata/projCache.zip".

  -remove - (Optional) Removes the corresponding cache entry for the
  specified IP instance or specified cache object. Returns cache-ID string if
  successful, otherwise blank. For example, "config_ip_cache -remove [get_ips
  my_ip_0]".

  -purge - (Optional) Deletes all cache entries that match the specified
  type(s): -vlnv, -old_swvers, -unused, -num_days_old, -num_days_unused,
  -obs_synth_crc, and/or -swver. Returns the number of entries deleted. More
  than one specified type can be used in a single -purge command. The
  specific types of entries to purge are provided by the following options:

   *  -vlnv <arg> - (Optional) Used with -purge, specifies the VLNV of the IP
      the cache entries were created from. Entries created from IPs with the
      specified VLNV will be deleted. May use a wildcard ('*') in one or more
      fields in the VLNV. For example, "config_ip_cache -purge -vlnv
      xilinx.com:ip:axi_gpio:*".

      Tip: The VLNV is the IPDEF property on an individual IP instance.

   *  -swver <arg> - (Optional) Used with -purge, deletes cache entries
      created by the specified software version. The software version can be
      specified as <version>.<revision>, for example 2017.2. For example,
      config_ip_cache -purge -swver 2017.2.

   *  -old_swvers - (Optional) Used with -purge, deletes cache entries
      created by an older software version than the one currently in use. For
      example, "config_ip_cache -purge -old_swvers".

   *  -unused - (Optional) Used with -purge, deletes cache entries that have
      never been used. For example, "config_ip_cache -purge -unused".

   *  -num_days_old <arg> - (Optional) Used with -purge, deletes any cache
      entries older than the specified number of days. For example, to delete
      cache entries that were created 10 days or longer ago, type
      "config_ip_cache -purge -num_days_old 10".

   *  -num_days_unused <arg> - (Optional) Used with -purge, deletes cache
      entries that have not been used for the specified number of days or
      longer. For example, to delete cached entries that have not been used
      for 10 days or longer, type "config_ip_cache -purge -num_days_unused
      10".

   *  -obs_synth_crc - (Optional) Used with -purge, deletes cache entries
      that were generated with the component's synthesis checksum that is
      different from the checksum found in the current IP catalog's
      component. This is only relevant if the component has been modified
      since the cache entry was generated. For example, "config_ip_cache
      -purge -obs_synth_crc".

  -report - (Optional) Reports cache statistics for the specified IP or cache
  object, or for the current cache location if none specified. Use -rptfile
  to have the report written to a text file, or -csvfile for a csv format
  file. Use -dir to report statistics for cache entries found under that
  directory. Cache statistics include the VLNV of the IP used to create the
  cached synthesis results, the number of times the cache entry was used, the
  date of the last time it was used, and the synthesis runtime when the entry
  was created. For example, to write the current cache's statistics to the
  return string, type config_ip_cache -report. To write the statistics for
  the cache entry that would work for the specified IP instance, to the
  return string, type "config_ip_cache -report [get_ips my_ip_0]".

  -rptfile <arg> - (Optional) Used with the -report option to direct the
  report output to the specified file name. For example, to write statistics
  for the current cache to a text file, type "config_ip_cache -report
  /mydata/cacheStats/proj1_stats.txt".

  -csvfile <arg> - (Optional) Used with the -report option to direct the
  report output in CSV format to the specified CSV file name. For example, to
  write statistics for a specific IP instance's matching cache entry in CSV
  format to a file, type "config_ip_cache -report -csvfile
  /mydata/mystats/proj1_stats.csv [get_ips my_ip_0]".

  -dir <arg> - (Optional) Used with the -report option to specify a directory
  (that has cache entries under it) to get the statistics for the cache
  entries found there. Use this to get statistics from a directory other than
  the current cache setting. For example, to get statistics for all the cache
  entries found under the specified directory to a text file, type
  "config_ip_cache -report -dir /mytests/mycache -rptfile
  /myresults/mycacheStats.txt".

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the contents of the current IP cache, one
  cache entry per line:

    join [config_ip_cache] \n

  The following example specifies the use of an external IP cache location,
  and then updates the repository settings of the IP catalog:

    config_ip_cache -use_cache_location C:/Data/ip

See Also:

   *  get_ips
   *  set_property
   *  synth_design
   *  synth_ip


@@@COMMAND: config_linter@@@
config_linter

Description: 
Set configuration of RTL Linter

Syntax: 
config_linter  [-rule <arg>] [-severity <arg>] [-quiet] [-verbose]

Usage: 
  Name         Description
  ------------------------
  [-rule]      Linter Rule ID
  [-severity]  Severity of Linter Rules, valid values are WARNING, 
               CRITICAL_WARNING and ERROR
               Default: WARNING
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution

Categories: 
Tools


@@@COMMAND: config_run@@@
config_run

Description: 
Configure individual program options for a run

Syntax: 
config_run  [-quiet] [-verbose] <run> <program> <option> <value>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <run>       Run to modify
  <program>   Name of the program to set an option for
  <option>    Name of option to set
  <value>     Value of the argument to set for the option

Categories: 
Project

Description:

  Configures the various settings and options of a synthesis or
  implementation run for use in the tool. The run can be created with the use
  of the create_run command, and can be launched with launch_runs.

  The config_run command defines the value of a single option for a specified
  synthesis or implementation program. You will need multiple config_run
  statements to define all of the various options needed to configure XST for
  synthesis, or NGDBUILD, MAP, PAR, and TRACE for implementation.

  Refer to the XST User Guide (UG627) and the Command-Line Tools User Guide
  (UG628) for more information on each of these tools and the various
  required and optional settings that can be configured.

Arguments:

  <run> - The name of the synthesis or implementation run to be configured.

  -program <arg> - The program name the defined and <value> apply to. Program
  names are case sensitive. For the ISE tools, the programs are xst for
  synthesis runs, and ngdbuild, map, par, or trce for implementation runs.

  Note: For the Vivado tool flow, the programs are rds for synthesis, and
  place_design and route_design for implementation.

  -option <arg> - A single command line option for the specified program.
  Refer to the XST User Guide (UG627) for supported synthesis options, and
  the Command-Line Tools User Guide (UG628) for supported implementation
  options.

  -value <arg> - The value for the defined tool option. Refer to the XST User
  Guide (UG627) for allowed values for the specified synthesis options, and
  to the Command-Line Tools User Guide (UG628) for allowed values for the
  specified implementation options.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example configures the impl_1 run, setting options for
  NGDBUILD, MAP and PAR:

    
    config_run impl_1 -program ngdbuild -option -aul -value true  
    config_run impl_1 -program map -option -pr -value b  
    config_run impl_1 -program map -option -cm -value speed  
    config_run impl_1 -program map -option -ignore_keep_hierarchy -value true  
    config_run impl_1 -program par -option -pl -value high  
    config_run impl_1 -program par -option -r -value true  
    config_run impl_1 -program ngdbuild -option -aut -value true  
     
    

  The following example configures the synth_1 run, setting options for
  Vivado Synthesis:

    config_run synth_1 -program rds -option -flatten_hierarchy -value auto  
    config_run synth_1 -program rds -option -gated_clock_conversion -value on  
    config_run synth_1 -program rds -option -iob -value false  
    config_run synth_1 -program rds -option -bufg -value 8  
    config_run synth_1 -program rds -option -fanout_limit -value 200 
    

See Also:

   *  create_run

   *  current_run

   *  launch_runs


@@@COMMAND: config_simmodel@@@
config_simmodel

Description: 
Configure settings for simulation models

Syntax: 
config_simmodel  [-name <arg>] [-value <arg>] [-report] [-reset] [-quiet]
                 [-verbose] <simulator>

Usage: 
  Name         Description
  ------------------------
  [-name]      Name of the configuration (<simulator>.compile.<compiler>.<simm
               odel>)
  [-value]     Value of the configuration
  [-report]    Print the list of configuration settings of the specified 
               simulator
  [-reset]     Reset configuration settings of the specified simulator
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <simulator>  Name of the simulator

Categories: 
Simulation


@@@COMMAND: config_timing_analysis@@@
config_timing_analysis

Description: 
Configure timing analysis general settings

Syntax: 
config_timing_analysis  [-enable_input_delay_default_clock <arg>]
                        [-enable_preset_clear_arcs <arg>]
                        [-ignore_io_paths <arg>] [-disable_flight_delays <arg>]
                        [-merge_exceptions <arg>]
                        [-timing_early_launch_at_borrowing_latches <arg>]
                        [-enable_time_borrowing_for_max_delay_exceptions <arg>]
                        [-inter_slr_compensation <arg>] [-quiet] [-verbose]

Usage: 
  Name                                               Description
  --------------------------------------------------------------
  [-enable_input_delay_default_clock]                Launch SDC unclocked 
                                                     input delays from an 
                                                     internally defined 
                                                     clock: Values: true, 
                                                     false; This option is 
                                                     not supported for UCF 
                                                     constraints
  [-enable_preset_clear_arcs]                        Time paths through 
                                                     asynchronous preset or 
                                                     clear timing arcs: true,
                                                     false; 
  [-ignore_io_paths]                                 Ignore paths from 
                                                     primary inputs and paths
                                                     to primary outputs: 
                                                     Values: true, false
  [-disable_flight_delays]                           Disable adding package 
                                                     times to IO Calculations
                                                     : Values: true, false; 
  [-merge_exceptions]                                Allow/Prevent the timing
                                                     engine from merging 
                                                     timing exceptions : 
                                                     Values: true, false; 
  [-timing_early_launch_at_borrowing_latches]        Remove clock latency 
                                                     pessimism from the 
                                                     launching enable of 
                                                     paths through 
                                                     transparent latches. 
                                                     Values: auto, true, 
                                                     false
                                                     Default: auto
  [-enable_time_borrowing_for_max_delay_exceptions]  Allow timing paths 
                                                     covered by set_max_delay
                                                     timing exceptions to 
                                                     borrow time. Values: 
                                                     true, false
  [-inter_slr_compensation]                          Allow a choice of 
                                                     inter-SLR compensation 
                                                     between a conservative 
                                                     mode with runtime/memory
                                                     advantages or a relaxed 
                                                     mode with qor 
                                                     advantages. Values: 
                                                     conservative, relaxed
  [-quiet]                                           Ignore command errors
  [-verbose]                                         Suspend message limits 
                                                     during command execution

Categories: 
Timing

Description:

  This command configures general features of timing analysis.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -enable_input_delay_default_clock [ true | false ] - (Optional) Launch
  un-clocked input delays from an internally defined clock for timing
  analysis. The valid values are true or false, with a default setting of
  false.

  -enable_preset_clear_arcs [ true | false ] - (Optional) Enable timing paths
  through asynchronous preset or clear timing arcs. The valid values are true
  or false, with a default setting of false. By default the timing arcs of
  asynchronous resets are disabled in the AMD Vivado timing engine. This
  option lets you enable them for timing analysis to see if problems caused
  by the assertion of the asynchronous reset exist in the design.

  -ignore_io_paths [ true | false ] - (Optional) Ignore paths from primary
  inputs and paths to primary outputs. This lets you eliminate the net delay
  from the input port and to the output port as part of the timing path.

  -disable_flight_delays [ true | false ] - (Optional) Do not add package
  delays to I/O calculations when this option is true.

  -timing_early_launch_at_borrowing_latches [ auto | true | false ] -
  (Optional) Remove clock latency pessimism from the launching enable of
  paths through transparent latches. In an enabled latch the timing path for
  setup/hold calculations originates from the D pin of the latch instead of G
  pin. This option affects those timing paths. This option can be set to true
  to compensate for timing optimism when CRPR is not enabled, the Vivado
  timing engine uses the early launch edge from when the latch opens to
  calculate the launch clock latency. However, when CRPR is enabled, which is
  the default in the Vivado timer, this option is too conservative and should
  be set to false. The default setting is auto which lets the Vivado timing
  engine determine when to eliminate CRPR from paths through enabled latches.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example ignores the package delays during timing analysis:

    config_timing_analysis -disable_flight_delays true

See Also:

   *  report_config_timing
   *  config_timing_corners
   *  report_timing
   *  report_timing_summary


@@@COMMAND: config_timing_corners@@@
config_timing_corners

Description: 
Configure single / multi corner timing analysis settings

Syntax: 
config_timing_corners  [-corner <arg>] [-delay_type <arg>] [-setup] [-hold]
                       [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-corner]      Name of the timing corner to be modified : Values: Slow, 
                 Fast
  [-delay_type]  Type of path delays to be analyzed for specified timing 
                 corner: Values: none, max, min, min_max
  [-setup]       Enable timing corner for setup analysis (equivalent to 
                 -delay_type max)
  [-hold]        Enable timing corner for hold analysis (equivalent to 
                 -delay_type min)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Timing

Description:

  This command configures the Slow and Fast timing corners in the current
  design for single or multi-corner timing analysis. A synthesized or
  implemented design must be opened when running this command.

  The variation in the manufacturing process of the physical device, and the
  voltage and temperature at which the device is operating, combine to create
  a timing corner. These three variables (PVT) determine the delay across the
  device. The fast corner represents a device operating with the smallest
  manufacturing process tolerances, the highest voltage, and the lowest
  temperature. The slow corner represents a device operating with the
  greatest manufacturing tolerances, the lowest voltage, and the highest
  temperature. By default the AMD Vivado Design Suite performs both a setup
  and hold analysis for both slow and fast process corners, also known as
  quad analysis:

    config_timing_corners -corner Slow -setup -hold
    config_timing_corners -corner Fast -setup -hold

  The config_timing_corners command can be used to limit the default four
  corner analysis performed by the Vivado timing engine as appropriate to the
  design, to improve timing performance. To change or disable the default
  analysis for both corners, you must configure both the Fast and Slow
  corners:

    config_timing_corners -corner Slow -delay_type max
    config_timing_corners -corner Fast -delay_type none

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -corner [ slow | fast ] - (Optional) Specifies the timing corner to be
  configured. Valid values are "slow" and "fast". If -corner is not
  specified, the -delay_type applies to both corners.

  -delay_type <value> - (Optional) Specify the type of path delays to be
  analyzed for the specified timing corner. Valid values are "none", "max",
  "min" and "min_max". A -delay_type of "none" excludes the specified -corner
  from timing analysis.

  Tip: Although -delay_type and -setup/-hold are both optional, one of these
  options are required to configure the specified corner.

  -setup - (Optional) Specifies setup analysis for the specified timing
  corner. This is the same as -delay_type max.

  -hold - (Optional) Specifies hold analysis for the timing corner. This is
  the same as -delay_type min.

  Tip: You can specify both -setup and -hold which is the same as -delay_type
  min_max.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example configures the Slow timing corner for both setup and
  hold analysis:

    config_timing_corners -corner slow -setup -hold
    config_timing_corners -corner slow -delay_type min_max

  Note: The two preceding examples have the same effect.

  The following example configures the Fast corner for min delay analysis,
  and disables the Slow corner analysis:

    config_timing_corners -corner fast -delay_type min
    config_timing_corners -corner slow -delay_type none

See Also:

   *  config_timing_analysis
   *  report_config_timing
   *  report_timing


@@@COMMAND: config_timing_pessimism@@@
config_timing_pessimism

Description: 
Configure timing analysis common node pessimism removal settings

Syntax: 
config_timing_pessimism  [-enable] [-disable] [-transition <arg>]
                         [-threshold <arg>] [-common_node <arg>] [-quiet]
                         [-verbose]

Usage: 
  Name            Description
  ---------------------------
  [-enable]       Enable common node pessimism removal 
  [-disable]      Disable common node pessimism removal 
  [-transition]   Remove pessimism for specified transitions; Values: 
                  any_transition, same_transition
  [-threshold]    Common node pessimism threshold
                  Default: 0
  [-common_node]  Perform pessimism removal to common node in routing 
                  network. Values: on, off
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Timing


@@@COMMAND: connect_debug_cores@@@
connect_debug_cores

Description: 
Connect debug slave instances to the master instance. A valid master is a debug bridge or debug hub instance configured in "From BSCAN To DebugHUB" mode. A valid slave could be any of the following debug cores (Ex: ILA, VIO, JTAG_to_AXI). connect_debug_cores can only connect master and slave instances that exist in the same region (either in Reconfigurable Partition or static)

Syntax: 
connect_debug_cores  -master <args> -slaves <args> [-quiet] [-verbose]

Returns: 
debug master and slave instances

Usage: 
  Name        Description
  -----------------------
  -master     A valid debug bridge or debug hub instance configured in "From 
              BSCAN To DebugHUB" mode. Only one master instance is allowed.
              
  -slaves     List of valid slave instances. A valid slave instance is any of
              the following debug cores (Ex: ILA, VIO, JTAG_to_AXI)
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Debug, XDC

Description:

  Connect debug slave instances to the specified master instance. The command
  can add the specified slaves into an existing debug chain, where the
  specified slaves will be connected to the debug hub or bridge, without
  affecting debug slaves that are already in the connection chain.

  Debug masters include both the Debug Hub and Debug Bridge. The AMD Vivado
  Debug Hub core provides an interface between the JTAG Boundary Scan (BSCAN)
  interface of the device and the Vivado Debug cores, including the
  Integrated Logic Analyzer (ILA), Virtual Input/Output (VIO), and the
  JTAG-to-AXI. The Vivado Debug Bridge is a debug controller that provides
  multiple options to communicate with the debug cores in both flat designs,
  or Partial Reconfiguration (PR) designs. The Debug Bridge can be configured
  to debug designs using a JTAG cable, or remotely through Ethernet, PCIe, or
  other interfaces using a Xilinx Virtual Cable (XVC), without the need for a
  JTAG cable. Refer to the Vivado Design Suite User Guide: Vivado Programming
  and Debugging (UG908) for more information.

  Important: For Partial Reconfiguration (PR) designs, the
  connect_debug_cores command can only connect master and slave instances
  that occur in the Static Region, or in the same Reconfigurable Partition.

Arguments:

  -master <arg> - (Required) A valid debug hub instance, or debug bridge,
  configured in From BSCAN To Debug HUB mode for PR designs. Only one master
  can be specified.

  -slaves <args> - (Required) A list of one or more debug core slave
  instances. A valid slave instance is an ILA, VIO, or JTAG_to_AXI debug
  core.

  Note: If any of the specified slaves is already connected to another
  master, it is first disconnected from the current master and reconnected to
  the new master.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example connects the specified ILA cores to the debug bridge:

    connect_debug_cores -master [get_cells inst_count/debug_bridge_0] \
    -slaves [list [get_cells inst_count/ila_0] [get_cells inst_count/ila_1] ]

See Also:

   *  create_debug_core
   *  get_cells
   *  get_debug_cores
   *  get_hw_axis
   *  get_hw_ilas
   *  get_hw_vios


@@@COMMAND: connect_debug_port@@@
connect_debug_port

Description: 
Connect nets and pins to debug port channels

Syntax: 
connect_debug_port  [-channel_start_index <arg>] [-quiet] [-verbose] <port>
                    <nets>...

Usage: 
  Name                    Description
  -----------------------------------
  [-channel_start_index]  Connect nets starting at channel index
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <port>                  Debug port name
  <nets>                  List of nets or pins

Categories: 
Debug, XDC

Description:

  Connects a signal from the netlist design to a port on an ILA debug core
  that was added to the design using the create_debug_core command. The
  signal can either be connected to a specific channel index on the port, or
  simply connected to an available channel on the port.

  If you try to connect too many signals to a port, or there are not enough
  channels to support the connection, the tool will return an error.

  Additional ports can be added to a debug core through the use of the
  create_debug_port command, and you can increase the available channels on
  an existing port with the set_property port_width command. See the examples
  below.

  You can disconnect signals from ports using the disconnect_debug_port
  command.

  When the debug core has been defined and connected, you can implement the
  debug core as a block for inclusion in the netlist design. Use the
  implement_debug_core command to implement the core.

Arguments:

  -channel_start_index <arg> - (Optional) The channel index to use for the
  connection. If more than one signal has been specified, this is the channel
  index where connections will start to be added. Channel indexes are
  numbered starting at 0.

  Note: If this argument is not specified, the tool will place connections on
  the first available channel index.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <port> - (Required) The name of the port to connect signals to. The port
  must be referenced by the core_name/port_name.

  <nets> - (Required) A list of one or more net names from the netlist design
  to connect to the specified debug port.

Examples:

  The following example creates a new PROBE port on the myCore debug core,
  increases the PORT_WIDTH property of the port in order to prepare it to
  receive the number of signals to be connected, and connects signals to the
  port starting at the third channel position (index 2).

    create_debug_port myCore PROBE  
    set_property PORT_WIDTH 8 [get_debug_ports myCore/PROBE1]  
    connect_debug_port myCore/PROBE1 [get_nets [list m0_ack_o m0_cyc_i \  
       m0_err_o m0_rty_o m0_stb_i m0_we_i ]] -channel_start_index 2 
    

  Note: If you specify too many nets to connect to the available channels on
  the port, the tool will return an error and will not connect the ports.

See Also:

   *  create_debug_core
   *  create_debug_port
   *  disconnect_debug_port
   *  get_debug_ports
   *  get_nets
   *  implement_debug_core
   *  set_property


@@@COMMAND: connect_net@@@
connect_net

Description: 
Connect a net to pins or ports

Syntax: 
connect_net  [-hierarchical] [-basename <arg>] [-net <args>] [-objects <args>]
             [-net_object_list <args>] [-dict <args>] [-quiet] [-verbose]

Usage: 
  Name                Description
  -------------------------------
  [-hierarchical]     Allow hierarchical connection, creating nets and pins 
                      as needed (see -basename).
  [-basename]         base name to use for net / pin names needed when doing 
                      hierarchical connection (see -hier). Default value is 
                      inferred from the name of the net being connected (see 
                      -net).
  [-net]              Net to connect to given objects.
  [-objects]          List of pin and port objects to connect
  [-net_object_list]  optional, a list of net and pin/port list pairs, each 
                      pin or port list element is connected to the 
                      corresponding net, e.g. { net_a { pin_b port_c } net_d 
                      pin_e }. Cannot be used with -net, -objects list is 
                      ignored when -net_object_list is used.
  [-dict]             alternative to -net_object_list, faster, but requires a
                      list of net and pin/port object pairs (must be a list 
                      of objects, not names or other TCL objects), each pin 
                      or port list element is connected to the corresponding 
                      net, e.g. { $net_1 $pin_1 $net_2 $pin_2 }. Cannot be 
                      used with -net, -objects list is ignored when -dict is 
                      used.
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
Netlist

Description:

  This command allows the user to connect a specified net to one or more pins
  or ports in the netlist of an open Synthesized or Implemented Design.

  The connect_net command will also connect nets across levels of hierarchy
  in the design, by adding pins and hierarchical nets as needed to complete
  the connection. Added nets and pins can be assigned a custom basename to
  make them easy to identify, or will be assigned a basename by the AMD
  Vivado tool.

  Tip: You can specify multiple nets, and a list of pins and ports to connect
  those nets to, using a single connect_net command with the -net_object_list
  or -dict options, to significantly speed the addition of multiple nets to
  the current design.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -hierarchical - (Optional) Connect the net across different levels of the
  hierarchy.

  Important: If -hierarchical is not specified, attempting to connect to
  hierarchical pins will fail with a warning.

  -basename <arg> - (Optional) Specifies a custom name to use for any
  hierarchical nets or pins that are needed to connect the specified net
  across levels of the hierarchy. If this option is not used, the basename is
  automatically derived from the net being connected.

  -net <arg> - (Required) Specifies the net to connect.

  Tip: Although you can create a bus using the -from and -to arguments of the
  create_net command, you must connect each bit of the bus separately using
  the connect_net command.

  -objects <args> - (Required) Specified the list of pins or ports to connect
  the net to. You can connect a net to one or more pin or port objects.

  -net_object_list <args> - (Optional) A list of multiple nets and the pins
  and ports to connect those nets to. This option lets you connect multiple
  nets with a single connect_net command. Nets, pins, and ports, can be
  specified by name, or as objects as returned by get_nets, get_pins, or
  get_ports commands. The nets and pins/ports to connect it to are listed in
  the following form: {net1 {pin1 pin2...pinN} net2 {pin1 pin2} ...netN {pin1
  pin2...pinN}}.

  Tip: When -net_object_list or -dict is specified, -net and -objects should
  not be specified, and will be ignored by the tool. Although -net/-objects
  and -net_object_list, or -dict are all listed as optional, you must specify
  the net and objects to connect using one of those argument forms.

  -dict <args> - (Optional) This provides an alternate syntax to the
  -net_object_list option which offers some performance advantage. Specified
  as a list of net/pin or net/port object pairs that must be specified as
  objects, and not by name. For example:

    set myNetA [get_nets netA]
    set myPin1 [get_pins pin1]
    set myPin2 [get_pins pin2]
    set myPin3 [get_pins pin3]
    connect_net -dict [list $myNetA $myPin1 $myNetA $myPin2 $myNetA $myPin3 ]

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example creates a port; creates a pin on the myDMA instance;
  creates a net called myEnable; and connects the net to the newly created
  port and pin:

    create_port -direction IN enableIn
    create_pin -direction IN myDMA/en
    create_net myEnable
    connect_net -net myEnable -objects {enableIn myDMA/en}

  The following example creates 32-bit bus ports, pins, and nets, then
  connects them together one bit at a time using a for loop to connect each
  bit individually:

    create_port -from 0 -to 31 -direction IN dataIN
    create_pin -from 0 -to 31 -direction IN myDMA/data
    create_net -from 0 -to 31 dataBus
    for {set x 0} {$x<32} {incr x} { \
       connect_net -net dataBus[$x] -objects [list dataIN[$x] myDMA/data[$x]] }

  Note: Attempting to connect the dataBus will result in a "Net not found
  error." Each bit of the bus must be separately connected.

  This example creates a new cells, then uses the -net_object_list to connect
  multiple nets in a single connect_net command:

    create_cell -ref inv a2_i
    connect_net -net_object_list {top_I[2] {I[2] a2_i/I} \
       top_O[2] {O[2] a2_i/O} top_clk a2_i/clk}

See Also:

   *  create_net
   *  create_pin
   *  create_port
   *  disconnect_net
   *  remove_net
   *  resize_net_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: continue@@@
continue(n)           Tcl Built-In Commands           continue(n)



_________________________________________________________________

NAME
       continue - Skip to the next iteration of a loop

SYNOPSIS
       continue
_________________________________________________________________


DESCRIPTION
       This  command  is  typically  invoked inside the body of a
       looping command such as  for  or  foreach  or  while.   It
       returns  a  TCL_CONTINUE  code,  which  causes  a continue
       exception to occur.   The  exception  causes  the  current
       script  to be aborted out to the innermost containing loop
       command, which then continues with the next  iteration  of
       the  loop.   Catch  exceptions  are  also handled in a few
       other situations, such as the catch command and the outer-
       most scripts of procedure bodies.

EXAMPLE
       Print  a line for each of the integers from 0 to 10 except
       5:
              for {set x 0} {$x<10} {incr x} {
                 if {$x == 5} {
                    continue
                 }
                 puts "x is $x"
              }


SEE ALSO
       break(n), for(n), foreach(n), return(n), while(n)


KEYWORDS
       continue, iteration, loop



Tcl                                                   continue(n)


@@@COMMAND: convert_ips@@@
convert_ips

Description: 
Convert specified IP to or from core container format.

Syntax: 
convert_ips  [-force] [-to_core_container] [-from_core_container] [-quiet]
             [-verbose] <objects>

Usage: 
  Name                    Description
  -----------------------------------
  [-force]                Force conversion even if the IP is locked.
  [-to_core_container]    Convert IP to core container format.
  [-from_core_container]  Convert IP to non core container format.
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <objects>               Input objects for the IP. May IP or source file 
                          objects

Categories: 
IPFlow

Description:

  This command converts existing IP into core container format, or reverts
  core container IP into the expanded non-core container format.

  The core container format for IP is a compressed zip file that reduces the
  file structure in the design, and increases tool performance.

  By default, the Vivado tool adds IP from the Xilinx IP catalog into a
  design using the core container format. However, the convert_ips command
  lets you convert IP in existing designs to take advantage of the core
  container format. In addition, the convert_ips command also lets you revert
  the compressed core container format into the expanded non-core container
  format.

  Note: If neither -to_core_container or -from_core_container options are
  specified then the convert_ips command will convert the IP from its current
  format into the opposite form. Any core container IP will be converted to
  non-core container format, and any non-core container IP will be converted
  to core container format.

  IP that is user-managed, cannot be converted from its current format. IP
  that is locked requires the use of the -force option to convert. Refer to
  the Vivado Design Suite User Guide: Designing with IP (UG896) for more
  information on editing IP and the IS_LOCKED and IS_MANAGED properties.

  This command returns a transcript of its actions, or returns an error if it
  fails.

Arguments:

  -force - (Optional) Force the conversion of IP that are currently locked
  (IS_LOCKED).

  -to_core_container - (Optional) Convert existing expanded form IP into the
  core container format. Any IP specified that are already in core container
  format will simply be ignored.

  -from_core_container - (Optional) Convert IP currently in the core
  container format into the expanded form of the non-core container format.
  Any IP specified that are already in non-core container format will simply
  be ignored.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) Specify the IP objects or IP files to convert. IP
  files can be specified using the get_files command, or IP objects can be
  specified with get_ips.

Examples:

  The following example converts all IP in the current project into core
  container format:

    
    convert_ips -to_core_container [get_ips] 
    

  Note: Any IP already in the core container format will be skipped.

  The following example converts the specified IP file to core container
  format:

    convert_ips -to_core_container \  
    [get_files  C:/Data/wave1/wave1.srcs/sources_1/ip/char_fifo/char_fifo.xci] 
    

  The following example toggles the current format of all IP in the design,
  switching from core container to non-core container, and from non-core
  container to core container:

    convert_ips [get_ips] 
    

See Also:

   *  get_files
   *  get_ips
   *  get_property
   *  set_property


@@@COMMAND: convert_ngc@@@
convert_ngc

Description: 
(User-written application)
Convert all provided NGC files to a supported format


Syntax: 
convert_ngc  [-output_dir <arg>] [-format <arg>] [-add_to_project] [-force]
             [-quiet] [-verbose] <files>

Returns: 
None


Usage: 
  Name               Description
  ------------------------------
  [-output_dir]      Directory to place all output, else the output is placed
                     at location of NGC file
                     Default: Script output directory path
  [-format]          Accepts 'Verilog' or 'EDIF' (Default: EDIF), specifies 
                     the desired output format
                     Default: EDIF
  [-add_to_project]  Adds the output files to the current project, if no 
                     project is open, then this option does nothing
  [-force]           Force overwriting of files that already exist on disk, 
                     replaces files in project if add_to_project switch was 
                     specified
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <files>            A list of NGC files to convert

Categories: 
xilinxtclstore, projutils, user-written
Description:

  Converts provided NGC files to a supported format.

Arguments:

  -output_dir <arg> - (Optional) Directory to place all output, else the 
  output is placed in the directory where the NGC file resides.

  -format <arg> - (Optional) Accepts 'Verilog' or 'EDIF' (Default: EDIF), 
  specifies the desired output format

  -add_to_project - (Optional) Adds the output files to the current project, 
  if no project is open, then this option does nothing.

  -force - (Optional) Force overwriting of files that already exist on disk, 
  replaces files in project if add_to_project switch was specified

  <files> - (Required) A list of NGC files to convert.

Examples:

  The following example will convert test.ngc to test.edn. The test.edn file
  will be added to the open project. Verbose messaging will be printed:-
  
  % tclapp::xilinx::projutils::convert_ngc ./test.ngc -add_to_project -verbose
  
  The following example will convert test.ngc to test.edn. The test.edn file
  will be placed in the ./output directory. If ./output/test.edn exists it 
  will be replaced:-
  
  % tclapp::xilinx::projutils::convert_ngc ./test.ngc -output_dir output -force

  The following example converts all NGC files in the current directory and in 
  all sub-directories:-

  % tclapp::xilinx::projutils::convert_ngc [ glob ./**/*.ngc ] [ glob ./*.ngc ]


See Also:

   *  add_files
   *  current_project
   *  get_files
   *  glob
   *  read_edif


@@@COMMAND: copy_constraints@@@
copy_constraints

Description: 
creates a copy of given constraint set

Syntax: 
copy_constraints  [-constrset <arg>] [-quiet] [-verbose] <name>

Returns: 
returns the copied constraint set object

Usage: 
  Name          Description
  -------------------------
  [-constrset]  Contraint FileSet from which files are copied
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <name>        Name of the copied constraint set

Categories: 
Project


@@@COMMAND: copy_ip@@@
copy_ip

Description: 
Copy an existing IP

Syntax: 
copy_ip  -name <arg> [-dir <arg>] [-quiet] [-verbose] <objects>...

Returns: 
IP file object that was added to the project

Usage: 
  Name        Description
  -----------------------
  -name       Name of copied IP
  [-dir]      Directory path for remote IP to be created and managed outside 
              the project
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   IP to be copied

Categories: 
Project, IPFlow

Description:

  Create a copy of an IP core that has been previously instanced into the
  current project.

Arguments:

  -name <arg> - (Required) Specify the name of the new IP to be created.

  -dir <arg> - (Optional) The path to a directory outside of the local
  project to store the newly created IP. The specified directory must already
  exist, or the command will return an error.

  Note: If a directory is not specified, the new IP will be added to the
  local project directory structure at <project_name>.srcs/sources_1/ip.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <object> - (Required) The IP object to copy. The copy_ip command can only
  be used to copy a single IP core at one time. The IP must be specified as
  an IP object returned by the get_ips command, and not simply referenced by
  name.

Example:

  The following example create a copy of the FIFO core previously instanced
  into the current project and writes it to the specified directory:

    copy_ip -name newFIFO -dir C:/Data/new_IP [get_ips oldFIFO] 
    

See Also:

   *  create_ip
   *  get_ips
   *  import_ip
   *  read_ip


@@@COMMAND: copy_run@@@
copy_run

Description: 
(User-written application)
Copy a run from an already existing run, source-run, to a new copy of that run, destination-run.


Syntax: 
copy_run  [-parent_run <arg>] [-verbose] -name <arg> [-quiet] <run>

Returns: 
The new run object


Usage: 
  Name           Description
  --------------------------
  [-parent_run]  Specify the synthesis run for the new implementation run, 
                 accepts name or run object (Default: same as source run)
                 Default: None
  [-verbose]     Print detailed information as the copy progresses
  -name          Specify the name of the new run
  [-quiet]       Ignore command errors
  <run>          The run to be copied, accepts name or run object

Categories: 
xilinxtclstore, projutils, user-written
Description:

  Copies a preexisting run.

Arguments:

  -name <arg> - (Required) Specify the name for the new run.

  -parent_run <arg> - (Optional) Specify the synthesis run for the new 
  implementation run. Can be either the run name or the run object.

  -verbose - (Optional) Print detailed information as the copy progresses.

  <run> - (Required) The run to be copied. . Can be either the run name or the 
  run object.

Examples:

  The following example will copy synth_1 run into a new synth_2 run:-
  
  % copy_run -name synth_2 [get_runs synth_1] 
  
  The following example will copy impl_1 run into a new impl_2 run, and it 
  will set the copied run's parent run to synth_2:-
  
  % copy_run -name impl_3 [get_runs impl_1] -parent_run synth_2

See Also:

   *  create_runs
   *  current_run
   *  get_runs


@@@COMMAND: create_cell@@@
create_cell

Description: 
Create cells in the current design

Syntax: 
create_cell  -reference <arg> [-black_box] [-quiet] [-verbose] <cells>...

Usage: 
  Name          Description
  -------------------------
  -reference    Library cell or design which cells reference
  [-black_box]  Create black box instance
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <cells>       Names of cells to create

Categories: 
Netlist

Description:

  Add cells to the netlist of the current Synthesized or Implemented design.

  Note: You cannot add cells to library macros, or macro-primitives.

  New cell instances can be added to the top-level of the design, or
  hierarchically within any module of the design. Instances can reference an
  existing cell from the library or design source files, or a black box
  instance can be added that reference cells that have not yet been created.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  This command returns the name of the created cell instance or instances.

Arguments:

  -reference <arg> - (Required) The library cell or source file module
  referenced by the new cell instances.

  -black_box - (Optional) Define a black box instance of the specified
  reference cell. Use this argument when the reference cell does not exist
  yet, but you would like to create a black box instance of the cell for a
  top-down design approach.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cells> - (Required) Instance names of the cells to create. The instance
  name can be specified as a hierarchical name, from the top-level of the
  design. In this case, you must use the hierarchy separator character in the
  hierarchical instance name. You can determine the current hierarchy
  separator with the get_hierarchy_separator command.

Examples:

  The following example creates three new cell instances of the or1200_cpu
  module with the specified instance names:

    create_cell -reference or1200_cpu myCell1 myCell2 myCell3 
    

  The following example sets the hierarchy separator character, then creates
  a black box instance for the referenced cell, specifying a hierarchical
  instance name:

    set_hierarchy_separator |  
    create_cell -reference dmaBlock -black_box usbEngine0|myDMA 
    

  Note: The tool will return an error when -black_box is used, but the
  -reference cell already exists.

See Also:

   *  connect_net
   *  create_net
   *  create_pin
   *  create_port
   *  remove_cell
   *  rename_cell
   *  set_hierarchy_separator
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: create_clock@@@
create_clock

Description: 
Create a clock object

Syntax: 
create_clock  -period <arg> [-name <arg>] [-waveform <args>] [-add] [-quiet]
              [-verbose] [<objects>]

Returns: 
new clock object

Usage: 
  Name         Description
  ------------------------
  -period      Clock period: Value > 0
  [-name]      Clock name
  [-waveform]  Clock edge specification
  [-add]       Add to the existing clock in source_objects
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<objects>]  List of clock source ports, pins or nets

Categories: 
SDC, XDC

Description:

  Tip: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the AMD Vivado IDE offer timing diagrams and 
  additional details around defining specific timing constraints. You 
  can refer to these sources for additional information.

  Create a clock object with the specified period or waveform defined in
  nanoseconds (ns). This command defines primary clocks which are used by the
  timing engine as the delay propagation starting point of any clock edge.
  The defined clock can be added to the definition of an existing clock, or
  overwrite the existing clock.

  A virtual clock can be created that has no source in the design. A virtual
  clock can be used as a time reference for setting input and output delays
  but does not physically exist in the design.

  A clock can also be generated from an existing physical clock, and derive
  many of its properties from the master clock. Use the
  create_generated_clock command to derive a clock from an existing physical
  clock.

  Important: If you use create_clock to create a generated clock, instead of
  create_generated_clock, the created clock does not inherit any of the
  properties of its source clock. The insertion delay and jitter of the
  parent clock will not be propagated to the generated clock, causing
  incorrect timing calculations.

  The create_clock command returns the name of the clock object that is
  created.

Arguments:

  -period <arg> - (Required) Specifies the clock period of the clock object
  to be created. The value is specified as nanoseconds (ns) and must be
  greater than zero (>0).

  -name <arg> - (Optional) The name of the clock object to be created. If the
  name is omitted, a system-generated name will be used based on the
  specified source <objects>. You can also use the -name option without
  source <objects> to create a virtual clock for the design that is not
  associated with a physical source on the design.

  -waveform <arg1 arg2 ...> - (Optional) The rising and falling edge times of
  the waveform of the defined clock, in nanoseconds, over one full clock
  cycle. You can use multiple rising and falling edges to define the
  characteristics of the waverform, but there must be an even number of
  edges, representing both the rising and falling edges of the waveform. The
  first time specified (arg1) represents the time of the first rising
  transition, and the second time specified (arg2) is the falling edge. If
  the value for the falling edge is smaller than the value for the rising
  edge, it means that the falling edge occurs before the rising edge.

  Note: If you do not specify the waveform, the default waveform is assumed
  to have a rising edge at time 0.0 and a falling edge at one half the
  specified period (-period/2).

  -add - (Optional) Define multiple clocks on the same source for
  simultaneous analysis with different clock waveforms. Use -name to specify
  the new clock to add. If you do not specify this option, the create_clock
  command will overwrite any existing clock of the same name.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) The ports, pins, or nets which are the source of the
  specified clock. If you specify a clock on a source object that already has
  a clock, the new clock will overwrite the original clock unless you also
  specify the -add option. If no <objects> are specified to attach the clock
  object to, the clock will be created as a virtual clock in the design.

  Note: The first driver pin of a specified net will be used as the source of
  the clock.

Examples:

  The following example creates a physical clock called bftClk and defines
  the clock period:

    create_clock -name bftClk -period 5.000 [get_ports bftClk]

  Note: If the get_ports command defining the objects is left off of this
  example, a virtual clock is created in the design rather than a physical
  clock.

  The following example creates a clock named clk on the input port, bftClk,
  with a period of 10ns, the rising edge at 2.4ns and the falling edge at
  7.4ns:

    create_clock -name clk -period 10.000 -waveform {2.4 7.4} [get_ports bftClk]

  The following example creates a virtual clock since no clock source is
  specified:

    create_clock -name virtual_clock -period 5.000

  The following example creates a clock with the falling edge at 2ns and the
  rising edge at 7ns:

    create_clock -name clk -period 10.000 -waveform {7 2} [get_ports bftClk]

  Note: Because the falling edge is earlier than the rising edge in the
  -waveform definition, although it is specified as arg2, it occurs first in
  the waveform.

See Also:

   *  all_clocks
   *  create_generated_clock
   *  get_clocks
   *  report_clocks
   *  report_clock_interaction
   *  report_clock_networks
   *  report_clock_utilization
   *  set_clock_groups
   *  set_clock_latency
   *  set_clock_uncertainty
   *  set_input_delay
   *  set_output_delay
   *  set_propagated_clock


@@@COMMAND: create_cluster_configuration@@@
create_cluster_configuration

Description: 
Creates a cluster configuration

Syntax: 
create_cluster_configuration  -submit_cmd <arg> -kill_cmd <arg>
                              [-monitor_cmd <arg>] [-job_id_proc <arg>]
                              [-job_id_tcl <arg>] -type <arg> [-force] [-quiet]
                              [-verbose] <name>

Usage: 
  Name            Description
  ---------------------------
  -submit_cmd     Submit command of cluster configuration
  -kill_cmd       Kill command of cluster configuration
  [-monitor_cmd]  Monitor command of cluster configuration
  [-job_id_proc]  Proc name to parse job Id
  [-job_id_tcl]   path to the tcl file contatining the proc
  -type           Type of cluster configuration
  [-force]        Force to overwrite a cluster configuration if it already 
                  exists.
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <name>          Name of cluster configuration

Categories: 
cluster_configuration


@@@COMMAND: create_dashboard@@@
create_dashboard

Description: 
Create the Project summary dashboard

Syntax: 
create_dashboard  -name <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -name       Name of the dashboard
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project


@@@COMMAND: create_dashboard_gadget@@@
create_dashboard_gadget

Description: 
Create the Gadget for Project summary dashboard

Syntax: 
create_dashboard_gadget  -name <arg> -type <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -name       Name of the gadget
  -type       Type of the gadget
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project

Description:

  Note: This command is primarily intended to be used in the Vivado IDE, with
  the Project Summary, and the Add Gadget command.

  Create a new "gadget" for a dashboard, such as the Project Summary
  dashboard that lets you view different aspects of the synthesized or
  implemented design run. Aspects of the design include timing information,
  resource utilization, DRC and methodology violations, and power analysis.

  A dashboard gadget has a series of properties that define the information
  displayed, and the way it is displayed. These properties can be set using
  the set_property command. To determine the properties on a gadget, you can
  use the following command:

    report_property -all [get_dashboard_gadget <gadget_name>]

  Properties of a dashboard gadget can be set using the set_property command.
  Some of the properties of a gadget that can be set include:

   *  TYPE: Indicates the type of information presented by the gadget as
      defined by the -type option.

   *  ROW: Indicates the row placement in the dashboard.

   *  COL: Indicates the column placement of the gadget in the dashboard.

   *  REPORTS: specifies the reports associated with the gadget.

   *  RUN.STEP and TYPE: specifies the synthesis or implementation run step
      that the gadget applies to.

   *  VIEW.TYPE and ORIENTATION: Specifies the presentation of information as
      a graph or table, and indicates the orientation of the data.

Arguments:

  -name <arg> - (Required) Specify the name of the gadget to create.

  -type <arg> - (Required) Specify the type of dashboard gadget to create.
  The type is specified as one of an enumerated set which includes the
  following types: DRC, Methodology, Power, Timing, and Utilization.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example creates a power type gadget, and defines the reports
  and run stages the gadget applies to:

    create_dashboard_gadget -name gadget_power -type power 
    set_property reports {impl_1#impl_1_route_report_power_0} [get_dashboard_gadgets [list {gadget_power}]] 
    set_property active_reports {impl_1#impl_1_route_report_power_0} [get_dashboard_gadgets [list {gadget_power}]] 
    set_property run.step all_stages [get_dashboard_gadgets [list {gadget_power}]] 
    

See Also:

   *  delete_dashboard_gadgets
   *  get_dashboard_gadgets
   *  move_dashboard_gadget


@@@COMMAND: create_dataflow_design@@@
create_dataflow_design

Description: 
New design for dataflow

Syntax: 
create_dataflow_design  [-name <arg>] [-min_bus_width <arg>] [-quiet]
                        [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-name]           Design name
  [-min_bus_width]  Minimum width of Data buses in Dataflow Design
                    Default: 16
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Netlist, Project

Description:

  The create_dataflow_design command creates a dataflow design from a design
  that is loaded in memory. The command opens design after synthesis in
  viewer mode, it is not possible to edit the design, run flow commands, or
  most reporting commands on a dataflow design. Understanding dataflow gives
  a wider understanding of the design, leading to user actions that results
  in improved placement through floorplanning addressing congestion or timing
  closure issues.

  A dataflow design has a trimmed down netlist based off the parent design.
  It is optimized to quickly trace wide datapaths through to important blocks
  that have an impact on place and route.

  The dataflow netlist trims out:

   *  Single bit signals

   *  Buses that are below than the min_bus_width

   *  All flops

   *  Most LUTs

   *  Carry Look-Ahead elements

  The dataflow netlist keeps:

   *  Buses that are greater than the min_bus_width

   *  Advanced primitives for example, tranceivers, processors, PCIe.

   *  LUTRAMs, BlockRAMs and URAMs

   *  AI Engine and DSP blocks

  The dataflow netlist is a subset of the parent design netlist. All the cell
  objects in the dataflow design can be cross probed to the parent design but
  as it is a subset of the design, the opposite is not true. However, if the
  cell exists it can be cross probed.

  When analyzing a dataflow design, there are three main entry points to
  analysis:

   *  Use the get_dataflow_paths command

   *  Use the Dataflow Hierarchy Browser to identify key large modules based
      on primitive usage

   *  Select objects either in the Netlist window or Schematic and expand by
      double clicking on pins or cells

  Frequently there are reasons to examine the full netlist. For example, to
  see registers or reports such as a timing or congestion report. This is
  achieved through cross probing to other views. Cross probing happens when
  an object is selected and then the design is updated using the
  current_design command.

Arguments:

  -name: <arg> - The name of the design to be created, uses default name if
  no name is specified. The default name is based on the parent design name
  and min_bus_width. For example, for impl_1 and 16, default name is
  dfvnl_16_impl_1. It is recommended to include dfv in the name so that it is
  distinct from a parent design.

  -min_bus_width: (Optional) Changes the minimum bus width for buses is
  required in the design. Increasing the width likely results in a smaller
  netlist.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  To cross probe between different designs on a selected object, identify the
  available designs. In the following example,impl_1 is the opened
  implemented design and dfvnl is an open dataflow design.

    get_designs
    > impl_1 dfvnl_16_impl_1

  The following example switches design to impl_1.

    current_design impl_1

  The following example switches back to the dataflow design.

    current_design dfvnl_16_impl_1

See Also:

   *  get_dataflow_paths
   *  get_designs
   *  current_design


@@@COMMAND: create_debug_core@@@
create_debug_core

Description: 
Create a new Integrated Logic Analyzer debug core

Syntax: 
create_debug_core  [-quiet] [-verbose] <name> <type>

Returns: 
new debug_core object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of the new debug core instance
  <type>      Type of the new debug core

Categories: 
Debug, XDC

Description:

  Adds a new Integrated Logic Analyzer (ILA) debug core to an open netlist
  design in the current project. The ILA debug core defines ports for
  connecting nets to for debugging the design in the logic analyzer feature
  of the Vivado Design Suite available through the open_hw command.

  ILA debug cores can be added to the RTL source files of the design using
  debug cores from the Xilinx IP catalog, or added to the netlist design
  after synthesis using this command. Refer to the Vivado Design Suite User
  Guide: Vivado Programming and Debugging (UG908) for more information on
  using ILA debug cores.

  Note: A debug core can only be added to an open netlist design using this
  command.

  The ILA core is created with a CLK port and a PROBE port by default. The
  CLK port defines the clock domain for the ILA core, and allows you to probe
  signals that are common to that domain. The CLK port only supports one
  clock signal, and so you must create a separate debug core for each clock
  domain. The PROBE port provides a probe point for nets marked for debug
  with the MARK_DEBUG property. The PROBE port offers multiple channels to
  probe multiple nets from a single ILA core.

  You can add new ports to an existing ILA core with the create_debug_port
  command, and connect signals to the ports using the connect_debug_port
  command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the ILA debug core to add to the project.

  <type> - (Required) The type of debug core to insert. Only the ILA debug
  core is currently supported in the Vivado tool. The ILA debug core simply
  adds another load onto a connected net without otherwise altering it.

  Note: When the ILA core is added to the project, the tool also adds a Debug
  Hub core (labtools_xsdbm_v1) as a container for one or more ILA cores.
  However, you cannot directly add a Debug Hub to the project.

Examples:

  The following example opens the synthesis run, creating the specified
  netlist design name, and then creates a new ILA debug core in that design:

    open_run -name netlist_1 synth_1  
    create_debug_core myCore ila 
    

  The properties of the debug core can be customized by using the
  set_property command as in the following example:

    set_property C_DATA_DEPTH 2048 [get_debug_cores myCore] 
    

  This example marks a sequence of nets for debugging using the MARK_DEBUG
  property, creates a new debug core, connects the CLK port to the
  appropriate clock domain, and assigns the debug nets to the PROBE ports on
  the core:

    set_property MARK_DEBUG true [get_nets [list {control_reg[0]} {control_reg[1]} \  
       {control_reg[2]} {control_reg[3]} {control_reg[4]} {control_reg[5]} \  
       {control_reg[6]} {control_reg[7]} {control_reg[8]} {control_reg[9]} \  
       {control_reg[10]} {control_reg[11]} {control_reg[12]} {control_reg[13]} \  
       {control_reg[14]} {control_reg[15]} {control_reg[16]} {control_reg[17]} \  
       {control_reg[18]} {control_reg[19]} {control_reg[20]} {control_reg[21]} \  
       {control_reg[22]} {control_reg[23]} {control_reg[24]} {control_reg[25]} \  
       {control_reg[26]} {control_reg[27]} {control_reg[28]} {control_reg[29]} \  
       {control_reg[30]} {control_reg[31]}]]  
    create_debug_core u_ila_0 ila  
    set_property port_width 1 [get_debug_ports u_ila_0/CLK]  
    connect_debug_port u_ila_0/CLK [get_nets [list wbClk ]]  
    set_property port_width 32 [get_debug_ports u_ila_0/PROBE0]  
    connect_debug_port u_ila_0/PROBE0 [get_nets [list {control_reg[0]}  
       {control_reg[1]} {control_reg[2]} {control_reg[3]} {control_reg[4]} \  
       {control_reg[5]} {control_reg[6]} {control_reg[7]} {control_reg[8]} \  
       {control_reg[9]} {control_reg[10]} {control_reg[11]} {control_reg[12]} \  
       {control_reg[13]} {control_reg[14]} {control_reg[15]} {control_reg[16]} \  
       {control_reg[17]} {control_reg[18]} {control_reg[19]} {control_reg[20]} \  
       {control_reg[21]} {control_reg[22]} {control_reg[23]} {control_reg[24]} \  
       {control_reg[25]} {control_reg[26]} {control_reg[27]} {control_reg[28]} \  
       {control_reg[29]} {control_reg[30]} {control_reg[31]} ]] 
    

See Also:

   *  connect_debug_port
   *  create_debug_port
   *  delete_debug_core
   *  get_debug_cores
   *  implement_debug_core
   *  open_hw
   *  open_run
   *  report_debug_core
   *  report_property
   *  set_property


@@@COMMAND: create_debug_port@@@
create_debug_port

Description: 
Create a new debug port

Syntax: 
create_debug_port  [-quiet] [-verbose] <name> <type>

Returns: 
new debug_port object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of the debug core instance
  <type>      Type of the new debug port

Categories: 
Debug, XDC

Description:

  Defines a new port to be added to an existing Vivado ILA debug core that
  was added to the design using the create_debug_core command. The port
  provides connection points on an ILA core to attach nets from the design
  for debugging.

  When a new debug core is created using the create_debug_core command, it
  includes a clk and probe port by default. However, you can add trigger
  input/output port types as well. Refer to the Vivado Design Suite User
  Guide: Programming and Debugging (UG908) for more information on port types
  and purpose.

  A port can have one or more connection points to support one or more nets
  to debug. As a default new ports are defined as having a width of 1,
  allowing only one net to be attached. You can change the port width of
  probe ports to support multiple signals using the set_property port_width
  command (see Examples).

  Note: clk, trig_in, trig_in_ack, trig_out, and trig_out_ack ports can only
  have a width of 1.

  You can connect signals to ports using the connect_debug_port command,
  modify existing probe connections using modify_debug_ports, and disconnect
  signals with the disconnect_debug_port command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the ILA debug core to add the new port to.
  The debug core must already exist in the project having been created with
  create_debug_core.

  <type> - (Required) The type of debug port to insert. The supported port
  types are:

   *  clk - Defines the clock port for connecting the ILA debug core to a
      clock domain. Each debug core can only have one clk port, and each clk
      port can only connect to one clock domain. Therefore you must use
      multiple ILA cores to probe signals from different clock domains.

      Note: Ensure that the connected clocks are free-running clocks. Failure
      to do so could result in an inability to communicate with the debug
      core when the design is loaded onto the device.

   *  probe - Provides probe points to connect to signals that are marked for
      debugging with the MARK_DEBUG property. The ILA debug core can contain
      multiple probe ports, which are automatically numbered by the Vivado
      tool when the port is added to the core. Each probe port can contain
      one or more channels, or connection points, as defined by the
      PORT_WIDTH property.

   *  trig_in/trig_in_ack, and trig_out/trig_out_ack - The ILA probe trigger
      comparators used to detect specific comparison conditions on the probe
      inputs to the ILA core. trig_in and trig_in_ack, and trig_out and
      trig_out_ack should be added to the debug core as port pairs when used.
      Refer to the Vivado Design Suite User Guide: Programming and Debugging
      (UG908) for more information.

Examples:

  The following example creates a new debug core, and then adds an additional
  probe port to the core, then sets the width of that new port to 8, and
  connects signals to the probe port:

    create_debug_core myCore ila  
    create_debug_port myCore probe  
    set_property PORT_WIDTH 8 myCore/probe1   
    connect_debug_port -channel_start_index 1 myCore/probe1 \  
    {m1_cyc_i m1_ack_o m1_err_o m1_rty_o} 
    

  Note: Recall that the ILA core is created with a clk and probe port by
  default, so the new probe port is automatically numbered as probe1.

See Also:

   *  connect_debug_port
   *  create_debug_core
   *  disconnect_debug_port
   *  set_property


@@@COMMAND: create_drc_check@@@
create_drc_check

Description: 
Create a user defined DRC rule

Syntax: 
create_drc_check  [-hiername <arg>] -name <arg> [-desc <arg>] [-msg <arg>]
                  -rule_body <arg> [-severity <arg>] [-quiet] [-verbose]

Usage: 
  Name         Description
  ------------------------
  [-hiername]  Specify the hiername for this rule.  When the DRC UI panel is 
               created, this is used to place the new rule in the menu 
               hierarchy.  Use a dot (.) to separate layers in the menu 
               hierarchy. It is optional and will default to User Defined.
               Default: User Defined
  -name        Specify the name for this rule.  This must be of the form 
               PREFIX-id where XXXX is a 4-6 letter abbreviation and id is an
               integer identifying a particular rule.  Similar checks should 
               have the same abbreviation and each a unique id.
  [-desc]      Specify the short description for this rule. It is optional 
               and will default to <User rule - default description>.
               Default: User rule - default description
  [-msg]       Specify the full description for this rule. Including the 
               substitutions.  Values are: %MSG_STRING %NETLIST_ELEMENT 
               %SITE_GROUP %CLOCK_REGION %BANK %BEL_GROUP.
  -rule_body   The string representing the body of the rule. This can be a 
               tcl proc name or any string of tcl code to be evaluated.
  [-severity]  Specify severity level for a DRC rule.
               Default: Warning.
               Values: Error, Critical Warning, Warning, Advisory.
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution

Categories: 
DRC, Object

Description:

  Create a new user-defined DRC rule check, drc_check, for use by the tool
  when running report_drc.

  This command allows you to define a unique name or abbreviation for the
  user-defined rule check, optionally group the rule into a special hierarchy
  and provide a description of the rule, define a general placeholder message
  for the check when violations are encountered, and refer to the Tcl code
  associated with the design rule check to be run during the report_drc
  command.

  The general placeholder message defined in this command is populated with
  specific information related to the design objects and violations found by
  the Tcl checker procedure, and by the create_drc_violation command.

  The process in brief is:

   *  Write a Tcl checker procedure to define the method applied when
      checking the user-defined rule, and the objects to check against the
      rule. The Tcl checker procedure is defined in a separate Tcl script
      that must be loaded by the source command prior to running report_drc.

   *  Use create_drc_violation in the Tcl checker to identify and flag
      violations found when checking the rule against a design.

   *  Define a user-defined DRC rule check using the create_drc_check command
      that calls the Tcl checker proc from the -rule_body.

   *  Create a rule deck using the create_drc_ruledeck command, and add the
      user-defined rule check to the rule deck using the add_drc_checks
      command.

   *  Run report_drc, and specify either the rule deck, or the user-defined
      rule check to check for violations.

  If a drc_check of the specified name is already defined in the tool, an
  error is returned. In this case, to overwrite or redefine and existing
  drc_check, you must first delete the check using the delete_drc_check
  command.

  The DRC rule check object features the is_enabled property that can be set
  to TRUE or FALSE using the set_property command. When a new rule check is
  created, the is_enabled property is set to TRUE as a default. Set the
  is_enabled property to FALSE to disable the rule check from being used when
  report_drc is run. This lets you create new DRC checks, add them to rule
  decks using add_drc_checks, and then enable them or disable them as needed
  without having to remove them from the rule deck.

  Each user defined DRC rule check has the `USER_DEFINED` property, which
  lets you quickly identify and select user-defined rule checks.

Arguments:

  -hiername <arg> - (Optional) Defines a rule grouping for the new rule. The
  default is "User Defined". This is used as the first level of hierarchy in
  the GUI when listing DRC rules. All newly created DRC checks are also added
  to the "all" hierarchy used by default by the report_drc command.

  -name <arg> - (Required) The unique name for the design rule. This should
  match the name used by the create_drc_violation commands in the Tcl checker
  procedure specified in -rule_body. The name will appear in the DRC report
  with any associated violations. The name should consist of a short 4 to 6
  letter abbreviation for the rule group, and an ID to differentiate it from
  other checks in the same group, for instance ABCD-1 or ABCD-23.

  -desc <arg> - (Optional) A brief description of the rule. The default is
  "User Rule". This is displayed when listing DRC rules in the GUI. The
  description is also used in the DRC report and summary.

  -msg< arg> - (Optional) This is the message displayed when a violation of
  the rule is found. The message can include placeholders for dynamic
  substitution with design elements found in violation of the rule. The
  design data is substituted into the message at the time report_drc is run.
  Each substitution key has a long form, and a short form as shown below.
  Valid substitutions keys are:

   *  %MSG_STRING (%STR) - This is the message string defined by the -msg
      option in the create_drc_violation command for the specific violation.

      Note: %STR is the default message for the create_drc_check command if
      the -msg option is not specified. In this case, any message defined by
      create_drc_violation in the -rule_body is simply passed through to the
      DRC report.

   *  %NETLIST_ELEMENT (%ELG) - Netlist elements including cells, pins,
      ports, and nets.

   *  %SITE_GROUP (%SIG) - Device site.

   *  %CLOCK_REGION (%CRG) - Clock region.

   *  %BANK (%PBG) - Package IO bank.

  -rule_body <arg> - (Required) This is the name of the Tcl procedure which
  defines the rule checking functionality. The Tcl procedure can be embedded
  here, into the -rule_body option, or can be separately defined in a Tcl
  script that must be loaded with the source command when the tool is
  launched, or prior to running the report_drc command.

  The Tcl checker procedure can create DRC violation objects, using the
  create_drc_violation command, containing the design elements that are
  associated with a design rule violation. The tool populates the
  substitution keys in the message defined by -msg with the design elements
  from the violation object.

  -severity <arg> - (Optional) Specifies the severity of the rule being
  created. The default value is Warning. The possible values are:

   *  ERROR

   *  "CRITICAL WARNING"

   *  WARNING

   *  ADVISORY

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example defines a new design rule check named RAMW-1, with
  the hierarchy name and description defined, using the default severity of
  Warning, and calling the dataWidthCheck procedure when the check is run:

    
    create_drc_check -name {RAMW-1} -hiername {RAMB} \  
      -desc {Data Width Check} -rule_body dataWidthCheck -severity Advisory 
    

  The following Tcl script defines the dataWidthCheck procedure which is
  called by the -rule_body argument of the RAMW-1 check. This Tcl script file
  must be loaded into the tool using the source command, prior to running the
  report_drc command.

    
    # This is a simplistic check -- report BRAM cells with WRITE_WIDTH_B  
    # wider than 36.  
    proc dataWidthCheck {} {  
      # list to hold violations  
      set vios {}  
     
      # iterate through the objects to be checked  
      foreach bram [get_cells -hier -filter {PRIMITIVE_SUBGROUP == bram}] {  
        set bwidth [get_property WRITE_WIDTH_B $bram]  
        if { $bwidth > 36} {  
          # define the message to report when violations are found  
          set msg "On cell %ELG, WRITE_WIDTH_B is $bwidth"  
          set vio [ create_drc_violation -name {RAMW-1} -msg $msg $bram ]  
          lappend vios $vio  
        }  
      }  
      if {[llength $vios] > 0} {  
        return -code error $vios  
      } else {  
        return {}  
      }  
     
    }  
    create_drc_check -name {RAMW-1} -hiername {RAMB Checks} \  
       -desc {Data Width Check} -rule_body dataWidthCheck \  
       -severity Advisory 
    

  Note: The script file can contain both the Tcl checker procedure, and the
  create_drc_check command that defines it for use by report_drc command. In
  this case, when the Tcl script file is sourced, both the dataWidthCheck
  proc and the RAMW-1 design rule check are loaded into the tool.

See Also:

   *  add_drc_checks
   *  create_drc_ruledeck
   *  create_drc_violation
   *  delete_drc_check
   *  get_drc_checks
   *  get_drc_violations
   *  report_drc


@@@COMMAND: create_drc_ruledeck@@@
create_drc_ruledeck

Description: 
Create one or more user defined DRC rule deck objects

Syntax: 
create_drc_ruledeck  [-quiet] [-verbose] <ruledecks>...

Returns: 
drc_ruledeck

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <ruledecks>  Names of DRC rule decks to create

Categories: 
DRC, Object

Description:

  Create one or more user-defined rule decks for use when running report_drc.

  A drc_ruledeck object is a collection of design rule checks, grouped for
  convenience, to be run at different stages of the FPGA design flow, such as
  during I/O planning or placement. The tool comes with a set of factory
  predefined rule decks. Use the get_drc_ruledecks command to return a list
  of the currently defined rule decks.

  The rule decks created by this command are empty, without any checks. You
  must add design rule checks to the rule deck using the add_drc_checks
  command. Checks can be removed from a rule deck using the remove_drc_checks
  command. To see a list of design rule checks that are available to include
  in the ruledeck, use the get_drc_checks command.

  This command returns the list of drc_ruledecks created.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ruledecks> - (Required) Specify the name of one or more user-defined DRC
  rule decks to create.

Examples:

  The following example creates two new drc_ruledeck objects:

    create_drc_ruledeck my_rules project_rules 
    

See Also:

   *  add_drc_checks
   *  delete_drc_ruledeck
   *  get_drc_checks
   *  get_drc_ruledecks
   *  remove_drc_checks
   *  report_drc


@@@COMMAND: create_drc_violation@@@
create_drc_violation

Description: 
Create a DRC violation

Syntax: 
create_drc_violation  -name <arg> [-severity <arg>] [-msg <arg>] [-quiet]
                      [-verbose] [<objects>...]

Usage: 
  Name         Description
  ------------------------
  -name        Specify the name for this rule.  This is the typically a 4-6 
               letter specification for your rule.
  [-severity]  Specify severity level for a DRC rule.
               Default: WARNING.
               Values: FATAL, ERROR, CRITICAL WARNING, WARNING, ADVISORY.
  [-msg]       Specify your message string for this DRC rule.
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<objects>]  Cells, ports, pins, nets, clock regions, sites, package banks 
               to query.

Categories: 
DRC, Report

Description:

  Create a DRC violation object and manage the list of design objects
  associated with the violation for reporting by the report_drc command.

  The create_drc_violation command is specified as part of the Tcl checker
  procedure that defines and implements the checking feature of a
  user-defined design rule check created by the create_drc_check command. A
  violation object is created by the Tcl checker each time a violation of the
  design rule is encountered.

  The process in brief is:

   *  Write a Tcl checker procedure to define the method applied when
      checking the user-defined rule, and the objects to check against the
      rule. The Tcl checker procedure is defined in a separate Tcl script
      that must be loaded by the source command prior to running report_drc.

   *  Use create_drc_violation in the Tcl checker to identify and flag
      violations found when checking the rule against a design.

   *  Define a user-defined DRC rule check using the create_drc_check command
      that calls the Tcl checker proc from the -rule_body.

   *  Create a rule deck using the create_drc_ruledeck command, and add the
      user-defined rule check to the rule deck using the add_drc_checks
      command.

   *  Run report_drc, and specify either the rule deck, or the user-defined
      rule check to check for violations.

  Violations are reported by the report_drc command, and violation objects
  can be returned by the get_drc_violations command. The design objects
  associated with a DRC violation object can be obtained using the
  -of_objects option of the appropriate get_* command, such as get_cells,
  get_nets, or get_ports for instance:

    get_ports -of_objects [get_drc_violations -name drc_1 NSTD*] 
    

Arguments:

  -name <arg> - (Required) The name of the design rule check associated with
  the violation. This should be the same name used by the create_drc_check
  command which calls the associated Tcl checker procedure from its
  -rule_body argument. Messages from the create_drc_violation command are
  passed up to the drc_check with the same -name.

  -severity <arg> - (Optional) The severity of the created violation. This
  allows individual DRC violations to override the default severity of a
  specific rule check. The default severity for user-defined DRCs is
  determined by the definition of -severity in the create_drc_check command.
  The supported values are:

   *  ERROR

   *  "CRITICAL WARNING"

   *  WARNING

   *  ADVISORY

  Note: The SEVERITY is stored as a property on the DRC rule associated with
  the DRC violation object.

  -msg <arg> - (Optional) This is a violation specific message that is
  substituted for the general string variable (%STR) specified in the
  optional placeholder message defined in the create_drc_check command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) Cell, port, pin, net, clock region, site, and
  package I/O bank objects associated with violations found by the Tcl
  checker procedure that are substituted into the placeholder message of the
  drc_object with the same -name. Design objects map to substitution keys in
  the message as follows:

   *  %ELG - netlist elements such as cells, ports, pins, and nets.

   *  %CRG - clock regions.

   *  %SIG - device sites.

   *  %PBG - package I/O banks.

  Note: Both the order and the type of <objects> passed from the
  create_drc_violation command must match the -msg specification from the
  create_drc_check command, or the expected substitution will not occur.

Examples:

  The following Tcl script defines the dataWidthCheck procedure which is
  called by the -rule_body argument of the RAMW-1 check. This Tcl script file
  must be loaded into the tool using the source command, prior to running the
  report_drc command.

  Some features of the Tcl checker proc to notice are:

   *  A list variable is created to store violations ($vios )

   *  A violation object is created, and added to the list variable, each
      time a violation is found.

   *  The placeholder key %ELG in the $msg string is dynamically substituted
      with the specific $bram cell associated with the violation.

   *  The dataWidthCheck proc returns an error code when any violations are
      found ($vios >0) to inform the report_drc command of the results of the
      check.

   *  The list of violations is passed along with the return code, and the
      violations are reported by report_drc.

    # This is a simplistic check -- report BRAM cells with WRITE_WIDTH_B  
    # wider than 36.  
    proc dataWidthCheck {} {  
      # list to hold violations  
      set vios {}  
     
      # iterate through the objects to be checked  
      foreach bram [get_cells -hier -filter {PRIMITIVE_SUBGROUP == bram}] {  
        set bwidth [get_property WRITE_WIDTH_B $bram]  
        if { $bwidth > 36} {  
          # define the message to report when violations are found  
          set msg "On cell %ELG, WRITE_WIDTH_B is $bwidth"  
          set vio [ create_drc_violation -name {RAMW-1} -msg $msg $bram ]  
          lappend vios $vio  
        }  
      }  
      if {[llength $vios] > 0} {  
        return -code error $vios  
      } else {  
        return {}  
      }  
     
    }  
    create_drc_check -name {RAMW-1} -hiername {RAMB Checks} \  
       -desc {Data Width Check} -rule_body dataWidthCheck \  
       -severity Advisory 
    

  Note: The script file can contain both the Tcl checker procedure, and the
  create_drc_check command that defines it for use by report_drc command. In
  this case, when the Tcl script file is sourced, both the dataWidthCheck
  proc and the RAMW-1 design rule check are loaded into the tool.

See Also:

   *  add_drc_checks
   *  create_drc_ruledeck
   *  create_drc_check
   *  get_cells
   *  get_drc_checks
   *  get_drc_violations
   *  get_nets
   *  get_pins
   *  get_ports
   *  get_sites
   *  report_drc
   *  set_property


@@@COMMAND: create_fileset@@@
create_fileset

Description: 
Create a new fileset

Syntax: 
create_fileset  [-constrset] [-simset] [-blockset] [-clone_properties <arg>]
                -define_from <arg> [-quiet] [-verbose] <name>

Returns: 
new fileset object

Usage: 
  Name                 Description
  --------------------------------
  [-constrset]         Create fileset as constraints fileset (default)
  [-simset]            Create fileset as simulation source fileset
  [-blockset]          Create fileset as block source fileset
  [-clone_properties]  Fileset to initialize properties from
  -define_from         Name of the module in the source fileset to be the top
                       of the blockset
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <name>               Name of the fileset to be create

Categories: 
Project, Simulation

Description:

  Defines a new fileset within a design project. Files can be added to a
  newly created fileset using the add_files command.

  A fileset is a list of files with a specific function within the project.
  One or more constraint files is a constraint set (-constrset); one or more
  simulation test benches is a simulation set (-simset). Only one fileset
  option can be specified when using the create_fileset command. As a
  default, the tool will create a constraint fileset if the type is not
  specified.

  You can also use the create_fileset -blockset command to configure an IP
  core, or hierarchical module of the design, as an out-of-context (OOC)
  block. The block fileset, or blockset, creates a hierarchical file
  collection for the IP or module specified with the -define_from option. The
  files related to the specified hierarchical module will be moved from their
  current fileset to the new blockset. When the blockset is created, the
  Vivado Design Suite also defines out-of-context synthesis and
  implementation runs for the block. The output products for the OOC module
  are stored in the blockset, including the synthesized design checkpoint
  (DCP) and any required structural simulation netlists. Stuctural simulation
  netlists are needed when a behavioral model for the block is not available,
  or is not available in the language supported by the target simulator. You
  can define an out-of-context constraint file for the IP or moduleif needed,
  and add the at to the block fileset as well.

  Note: Refer to the Vivado Design Suite User Guide: Designing with IP
  (UG896) or the Vivado Design Suite User Guide: Hierarchical Design (UG905)
  for more information on out-of-context design.

  The create_fileset command returns the name of the newly created fileset,
  or will return an error message if it fails.

Arguments:

  -constrset - (Optional) Creates a constraint set to hold one or more
  constraint files. This is the default fileset created if neither the
  -constrset, -simset, or -blockset argument is specified.

  -simset - (Optional) Create a simulation fileset to hold one or more
  simulation source files. You can only specify one type of fileset argument,
  either -constrset or -simset. You will get an error if both are specified.

  -blockset - (Optional) Create a block fileset to configure an IP core or
  hierarchical module for out-of-context design.

  Note: The -blockset option requires the -define_from option to specify the
  IP or module to use as the top-level of the blockset.

  -clone_properties <arg> - (Optional) Clone the properties of a specified
  fileset to add to the newly created fileset. This is useful for ensuring
  that new filesets are created with needed properties such as USED_IN.

  -define_from <arg> - (Optional) Specify the top-module of an IP core to
  define the block fileset.

  Note: This option is required when the -blockset option is used.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the fileset to be created.

Examples:

  The following example creates a new constraint file set named constraints2:

    create_fileset -constrset -quiet constraints2 
    

  Note: With -quiet specified, the tool will not return anything if it
  encounters an error in trying to create the specified fileset.

  The following example creates an out-of-context (OOC) blockset for the
  hierarchical module specified by the -define_from option:

    create_fileset -blockset -define_from dac_spi dac_spi 
    

  The following example creates a new simulation fileset named sim_1:

    create_fileset -simset sim_1 
    

See Also:

   *  add_files
   *  current_fileset
   *  synth_ip


@@@COMMAND: create_generated_clock@@@
create_generated_clock

Description: 
Create a generated clock object

Syntax: 
create_generated_clock  [-name <arg>] [-source <args>] [-edges <args>]
                        [-divide_by <arg>] [-multiply_by <arg>]
                        [-combinational] [-duty_cycle <arg>] [-invert]
                        [-edge_shift <args>] [-add] [-master_clock <args>]
                        [-quiet] [-verbose] <objects>

Returns: 
new clock object

Usage: 
  Name              Description
  -----------------------------
  [-name]           Generated clock name
  [-source]         Master clock source object pin/port
  [-edges]          Edge Specification
  [-divide_by]      Frequency division factor: Value >= 1
                    Default: 1
  [-multiply_by]    Frequency multiplication factor: Value >= 1
                    Default: 1
  [-combinational]  Create a divide_by 1 clock through combinational logic
  [-duty_cycle]     Duty cycle of clock period: Range: 0.0 to 100.0
                    Default: 50.0
  [-invert]         Invert the signal
  [-edge_shift]     Edge shift specification
  [-add]            Add to the existing clock in source_objects
  [-master_clock]   Use this clock if multiple clocks present at master pin
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <objects>         List of clock source ports, pins, or nets

Categories: 
SDC, XDC

Description:

  Tip: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the AMD Vivado IDE offer timing diagrams and 
  additional details around defining specific timing constraints. You can 
  refer to these sources for additional information.

  Generate a new clock object from an existing physical clock object in the
  design.

  Clocks can be added to a design in one of three ways:

   *  Primary physical or virtual clocks defined with the create_clock command.

   *  Derived clocks defined with the create_generated_clock command
      generated from a primary physical clock.

   *  Derived clocks automatically generated by the Vivado Design Suite when
      a clock propagates through an MMCM/PLL/BUFR.

  You can also use the create_generated_clock command to change the name of
  clocks that the Vivado tool has auto-derived from an MMCM/PLL/BUFR. In this
  case, a new clock is not created, but an existing clock defined on the
  specified source object is renamed to the provided name. This requires
  -name and <object> to be specified, and supports the use of -source and/or
  -master_clock to further identify the clock to rename when multiple clocks
  exist on the source object. Refer to the Vivado Design Suite User Guide:
  Using Constraints (UG903) for more information on renaming auto-derived
  clocks.

  Important: You cannot rename a clock that is already in use by other
  constraints at the time of renaming. You must rename the clock prior to any
  other appearance or use of the clock in an XDC file.

  This command returns the name of the clock object that is created, or
  returns an error if it fails.

Arguments:

  -name <arg> - (Optional) The name of the generated clock to create on the
  specified object, or the name to assign to an existing clock on the
  specified object. If no name is specified, the generated clock will be
  given the name of the <object> it is assigned to. If assigned to multiple
  <objects>, the name will be the first object in the list.

  -source <arg> - (Optional) The pin or port of the master clock from which
  to derive the generated clock. The master clock must be a previously
  defined physical clock, not a virtual clock; but can be a primary clock or
  another generated clock. If the source pin or port currently has multiple
  clocks defined, the -master_clock option must be used to identify which
  clock on the source is to be used to define the generated clock.

  -edges <arg> - (Optional) Specifies the edges of the master clock to use in
  defining transitions on the generated clock. Specify transitions on the
  generated clock in a sequence of 1, 2, 3, by referencing the appropriate
  edge count from the master clock in numerical order, counting from the
  first edge. The sequence of transitions on the generated clock defines the
  period and duty cycle of the clock: position 1 is the first rising edge of
  the generated clock, position 2 is the first falling edge of the generated
  clock and so defines the duty cycle, position 3 is the second rising edge
  of the generated clock and so defines the clock period. Enclose multiple
  edge numbers in braces {}. See the example below for specifying edge
  numbers.

  -divide_by <arg> - (Optional) Divide the frequency of the master clock by
  multiplying period by the specified value to establish the period of the
  generated clock object. The value specified must be >= 1, and must be
  specified as an integer.

  -multiply_by <arg> - (Optional) Multiply the frequency of the master clock
  by dividing period by the specified value to establish the period of the
  generated clock object. The value specified must be >= 1, and must be
  specified as an integer. The default is 1.

  -combinational - (Optional) Calculate the generated clock latency by
  tracing delays through only the combinational paths between the source pin
  of the generated clock and the source pin of the master clock. By default
  the tool computes the latency for the generated clock by tracing both
  sequential and combinational paths.

  -duty_cycle <arg> - (Optional) The duty cycle of the generated clock
  defined as a percentage of the new clock period when used with the
  -multiply_by argument. The value is specified as a percentage from 0.0 to
  100. The default value is 50.0.

  -invert - (Optional) Create a generated clock with the phase inverted from
  the master clock.

  -edge_shift <arg> - (Optional) Shift the edges of the generated clock by
  the specified values relative to the master clock. See the example below
  for specifying edge shift.

  -add - (Optional) Define multiple clocks on the same source for
  simultaneous analysis with different clock waveforms. Use -name to specify
  the new clock to add. If you do not specify this option, the create_clock
  command will automatically assign a name and will overwrite any existing
  clock of the same name.

  Note: -master_clock and -name options must be specified with -add.

  -master_clock <arg> - (Optional) If there are multiple clocks found on the
  source pin or port, the specified clock object is the one to use as the
  master for the generated clock object.

  Note: -add and -name options must be specified with -master_clock.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) The pin or port objects to which the generated clock
  should be assigned. If the specified objects already have a clock defined,
  use the -add option to add the new generated clock and not overwrite any
  existing clocks on the object.

Examples:

  The following example defines a generated clock that is divided from the
  master clock found on the specified CLK pin. Since -name is not specified,
  the generated clock is assigned the same name as the pin it is assigned to:

    create_generated_clock -divide_by 2 -source \
       [get_pins clkgen/cpuClk] [get_nets fftEngine/CLK]

  The following example defines a generated clock named CLK1 from the
  specified source clock, specifying the edges of the master clock to use as
  transition points for the generated clock, with edges shifted by the
  specified amount. In this example, the -edges option indicates that the
  second edge of the source clock is the first rising edge of the generated
  clock, the third edge of the source clock is the first falling edge of the
  generated clock, and the eighth edge of the source clock is the second
  rising edge of the generated clock. These values determine the period of
  the generated clock as the time from edge 2 to edge 8 of the source clock,
  and the duty cycle as the percentage of the period between edge 2 and edge
  3 of the source clock. In addition, each edge of the generated clock is
  shifted by the specified amount:

    create_generated_clock -name CLK1 -source CMB/CLKIN -edges {2 3 8} \
    -edge_shift {0 -1.0 -2.0} CMB/CLKOUT

  Note: The waveform pattern of the generated clock is repeated based on the
  transitions defined by the -edges argument.

  This example creates two generated clocks from the output of a MUX, using
  -master_clock to identify which clock to use, using -add to assign the
  generated clocks to the Q pin of a flip flop, and using -name to define a
  name for the generated clock, since the object it is assigned to has
  multiple clocks assigned:

    create_generated_clock -source [get_pins muxOut] -master_clock M_CLKA \
    -divide_by 2 -add -name gen_CLKA [get_pins flop_Q]
    create_generated_clock -source [get_pins muxOut] -master_clock M_CLKB \
    -divide_by 2 -add -name gen_CLKB [get_pins flop_Q]

  The following example renames the automatically named clock that is derived
  by the Vivado Design Suite on the MMCM clock output:

    create_generated_clock -name CLK_DIV2 [get_pins mmcm/CLKOUT1]

See Also:

   *  check_timing
   *  create_clock
   *  get_generated_clocks
   *  get_pins
   *  report_clocks
   *  set_clock_latency
   *  set_clock_uncertainty
   *  set_propagated_clock


@@@COMMAND: create_gui_custom_command@@@
create_gui_custom_command

Description: 
Create a custom command in the GUI

Syntax: 
create_gui_custom_command  -name <arg> [-menu_name <arg>] [-description <arg>]
                           [-show_on_toolbar] [-run_proc <arg>]
                           [-toolbar_icon <arg>] [-command <arg>]
                           [-tcl_file <arg>] [-quiet] [-verbose]

Usage: 
  Name                Description
  -------------------------------
  -name               Unique name of the command to create.
  [-menu_name]        Menu name for the custom command.
  [-description]      Display this text for the description of the menu item 
                      and optionally the toolbar button
  [-show_on_toolbar]  Add this command to the toolbar
  [-run_proc]         Needed when '-command' and 'tcl_file' options are both 
                      specified.
                      If true, gui button will run command mentioned in 
                      '-command' option otherwise source script mentioned in 
                      '-tcl_file' option
  [-toolbar_icon]     The full path to the PNG or JPEG file to display on the
                      toolbar button
  [-command]          The command to execute
  [-tcl_file]         The full path to the Tcl file to source
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
GUIControl

Description:

  This commands creates a GUI menu item for a user custom command. The menu
  command appears in the Tools > Custom Commands menu in the Vivado IDE.

  The custom GUI command can also be shown/hidden on the toolbar menu. When
  the GUI button is clicked the custom command is executed. A Tcl file can
  also be sourced when the GUI button is clicked.

  You can use the get_gui_custom_commands to determine the list of
  user-defined custom commands.

Arguments:

  -name - (Required) Unique name of the command to create.

  -menu_name - (Optional) Menu name for the custom command.

  -description - (Optional) Display this text for the description of the menu
  item and optionally the toolbar button

  -show_on_toolbar - (Optional) Add this command to the toolbar

  -run_proc - (Optional) Needed when both -command and -tcl_file options are
  specified. If TRUE, the menu command will run the specified -command,
  otherwise source the Tcl script specified by -tcl_file.

  -toolbar_icon - (Optional) The full path to the PNG or JPEG file to display
  on the toolbar button

  -command - (Optional) The command to be executed.

  -tcl_file - (Optional) The full path to the Tcl file to source.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example creates a GUI custom command with name
  'print_version', and adds it to the toolbar.

    create_gui_custom_command -name print_version -command "version" \ 
    -description "Gets tool version" -show_on_toolbar

See Also:

   *  create_gui_custom_command_arg
   *  get_gui_custom_command_args
   *  get_gui_custom_commands
   *  remove_gui_custom_command_arg
   *  remove_gui_custom_command


@@@COMMAND: create_gui_custom_command_arg@@@
create_gui_custom_command_arg

Description: 
Create a custom command argument for a custom command in the GUI

Syntax: 
create_gui_custom_command_arg  -command_name <arg> -arg_name <arg>
                               [-default <arg>] [-comment <arg>] [-optional]
                               [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  -command_name  Unique name of the custom command for which an argument is 
                 being created.
  -arg_name      Unique name of the custom command argument to create.
  [-default]     Default value of the custom command argument.
  [-comment]     Comment for the custom command argument.
  [-optional]    Make the custom command argument optional.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
GUIControl

Description:

  This commands defines an argument for a specific custom GUI command.

  You can use the get_gui_custom_commands to determine the list of defined
  custom commands. You can use the get_gui_custom_command_args to determine
  the list of defined GUI custom command arguments of a particular GUI custom
  command.

Arguments:

  -command_name - (Required) The name of the custom GUI command to create an
  argument for.

  -arg_name - (Required) The unique name of the argument to create.

  -default - (Optional) Specifies a default value for the argument.

  -comment - (Optional) Comment for the custom command argument.

  -optional - (Optional) Make the custom command argument optional.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  This example creates an argument named 'quiet' for the custom GUI command
  print_version. The argument is defined as optional and its default value is
  -quiet.

    create_gui_custom_command_arg -command_name print_version -arg_name quiet \ 
    -default "-quiet" -comment "Ignore commands errors" -optional

See Also:

   *  create_gui_custom_command
   *  get_gui_custom_command_args
   *  get_gui_custom_commands
   *  remove_gui_custom_command_arg
   *  remove_gui_custom_command


@@@COMMAND: create_interface@@@
create_interface

Description: 
Create a new I/O port interface

Syntax: 
create_interface  [-parent <arg>] [-quiet] [-verbose] <name>

Returns: 
new interface object

Usage: 
  Name        Description
  -----------------------
  [-parent]   Assign new interface to this parent interface
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name for new I/O port interface

Categories: 
PinPlanning

Description:

  Creates a new interface for grouping scalar or differential I/O ports.

Arguments:

  -parent <arg> - (Optional) Assign the new interface to the specified parent
  interface.

  Note: If the specified parent interface does not exist, an error will be
  returned.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the I/O port interface to create.

Examples:

  Create a new USB interface:

    create_interface USB0 
    

  Create an Ethernet interface within the specified parent interface:

    create_interface -parent Top_Int ENET0 
    

See Also:

   *  delete_interface
   *  create_port
   *  make_diff_pair_ports
   *  place_ports
   *  remove_port
   *  set_package_pin_val
   *  split_diff_pair_ports


@@@COMMAND: create_ip@@@
create_ip

Description: 
Create an instance of a configurable IP and add it to the fileset

Syntax: 
create_ip  [-vlnv <arg>] -module_name <arg> [-dir <arg>] [-force]
           [-allow_hidden] [-vendor <arg>] [-library <arg>] [-name <arg>]
           [-version <arg>] [-revision <arg>] [-quiet] [-verbose]

Returns: 
list of file objects that were added

Usage: 
  Name             Description
  ----------------------------
  [-vlnv]          VLNV string for the Catalog IP from which the new IP will 
                   be created (colon delimited Vendor, Library, Name, 
                   Version)
  -module_name     Name for the new IP that will be added to the project
  [-dir]           Directory path for remote IP to be created and managed 
                   outside the project
  [-force]         Overwrite existing IP instance; allowed only with -dir 
                   option
  [-allow_hidden]  Allow hidden cores to be instantiated
  [-vendor]        IP Vendor name
  [-library]       IP Library name
  [-name]          IP Name
  [-version]       IP Version
  [-revision]      (Optional) IP core revision
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution

Categories: 
IPFlow

Description:

  This command creates an XCI file for a configurable IP core from the IP
  catalog, and adds it to the source files of the current project. This
  creates an IP source object which must be instantiated into the HDL design
  to create an instance of the IP core in the netlist.

  For multiple instances of the same core, simply instantiate the core module
  into the HDL design as many times as needed. However, to use the same IP
  core with different customizations, use the create_ip command to create
  separate IP source objects.

  The create_ip command is used to import IP cores from the current IP
  catalog. Use the import_ip command to read existing XCI and XCO files
  directly, without having to add IP to a catalog.

  This command returns a transcript of the IP generation process, concluding
  with the file path and name of the imported IP core file.

  Note: IP cores are native to Vivado, and can be customized and regenerated
  within that tool. The convert_ip command lets you to convert legacy IP to
  native IP supported by Vivado.

Arguments:

  -vlnv <arg> - (Optional) Specifies the VLNV string for the existing Catalog
  IP from which the new IP will be created. The VLNV is the
  Vendor:Library:Name:Version string which identifies the IP in the catalog.
  The VLNV string maps to the IPDEF property on the IP core.

  Note: You must specify either -vlnv or all of -vendor, -library, -name, and
  -version.

  -module_name <arg> - (Required) Specifies the name for the new IP instance
  that will be created. The module is created with the
  <module_name>/<module_name>.xci naming convention.

  -dir <arg> - (Optional) The directory to write the IP core files into. If
  this option is not specified, the IP files (.xci, .veo...) are written in
  the hierarchy of the <project_name>.srcs directory.

  -force - (Optional) Overwrite an existing IP instance of the same
  <module_name>, if one exists in the specified directory. All files
  associated with the existing IP will be overwritten by files associated
  with the newly created IP. This option can only be used with the -dir
  option.

  -vendor <arg> - (Optional) Specifies the vendor name for the IP`s creator.

  -library <arg> - (Optional) Specifies the IP library from which the core
  should be added.

  -name <arg> - (Optional) Specifies the name of the IP core in the catalog.

  -version <arg> - (Optional) Specifies the version number for the IP core.

  Note: You must specify either -vlnv or all of -vendor, -library, -name, and
  -version.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The example below imports the IP core specified by the -vlnv string, and
  gives it the specified module name in the current project:

    create_ip -vlnv xilinx.com:ip:c_addsub:11.0 -module_name test_addr 
    

  The following example, from Vivado, creates an IP block with the specified
  -vendor, -library, -name, -version values, and assigns it the specified
  module name. After the IP is created, attributes of the IP are customized
  using set_property commands. Then the instantiation template and the
  synthesis targets are generated for the IP:

    create_ip -name c_addsub -version 11.0 -vendor xilinx.com -library ip \  
       -module_name c_addsub_v11_0_0  
    set_property CONFIG.COMPONENT_NAME  c_addsub_v11_0_0 \  
       [get_ips c_addsub_v11_0_0]  
    set_property CONFIG.A_WIDTH  32 [get_ips c_addsub_v11_0_0]  
    set_property CONFIG.B_WIDTH 32 [get_ips c_addsub_v11_0_0]  
    set_property CONFIG.ADD_MODE Add_Subtract [get_ips c_addsub_v11_0_0]  
    set_property CONFIG.C_IN true [get_ips c_addsub_v11_0_0]  
    generate_target  {instantiation_template synthesis} \  
       [get_files C:/Data/c_addsub_v11_0_0/c_addsub_v11_0_0.xci \  
       -of_objects [get_filesets sources_1]] 
    

See Also:

   *  convert_ip
   *  generate_target
   *  import_ip
   *  upgrade_ip
   *  validate_ip


@@@COMMAND: create_ip_run@@@
create_ip_run

Description: 
Creates a run for the given IP.

Syntax: 
create_ip_run  [-force] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-force]    Force regeneration of products of the given IP.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   All of the IP objects (from get_ips or get_files) for which a 
              run needs to be generated for.

Categories: 
Project, IPFlow

Description:

  Defines a synthesis and implementation run for a single IP object as
  specified by the get_ips command, or for the specified IP core file (XCI)
  as specified by the get_files command.

  The IP run is used to generate the synthesis design checkpoint file (DCP)
  to support the out-of-context (OOC) IP flow, or to synthesize and implement
  an IP module in the OOC hierarchical design flow.

  Two runs are created: one for synthesis, and one for implementation. The
  runs are named after the IP core and the run type, <ip_name>_synth_1 and
  <ip_name>_impl_1.

  The IP source files required to synthesize the run are copied into the IP
  run directory. The attributes of the run can be configured with the use of
  the set_property command.

  This command returns the name of the synthesis run created for the IP module.

Arguments:

  -force - (Optional) Force the creation of an IP run, even if the generated
  output products for the specified IP are all current.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <object> - (Required) An IP object as returned by the get_ips command, or
  an IP file (XCI) as specified by the get_files command.

  Note: Only a single IP may be specified.

Examples:

  The following example creates synthesis and implementation runs for the
  specified IP module:

    create_ip_run [get_ips add1] 
    

See Also:

   *  create_run
   *  get_files
   *  get_ips
   *  set_property


@@@COMMAND: create_macro@@@
create_macro

Description: 
Create a Macro

Syntax: 
create_macro  [-quiet] [-verbose] <name>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Macro to create.

Categories: 
XDC

Description:

  Create a macro for the relative placement of cells.

  Macros are primarily used to place small groups of associated cells
  together to improve resource efficiency and enable faster interconnections.
  The create_macro command lets you define macros in an open synthesized or
  implemented design for relative placement by place_design, like RPMs
  defined by the RLOC constraint in RTL source files. Refer to the Vivado
  Design Suite User Guide: Implementation (UG904) for more information on
  defining relatively placed macros.

  After creating the macro, specific cells can be assigned to the macro using
  the update_macro command. To change a currently defined macro, you must
  delete the macro with delete_macro, recreate the macro, and update the
  macro with the new contents. You cannot simply overwrite an existing macro.

  Use delete_macro to delete a defined macro. Use get_macros to return a list
  of currently defined macros in the design.

  This command operates silently and does not return anything.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specify the name of the macro to create.

Examples:

  The following example creates a macro called usbMacro1:

    create_macro usbMacro1 
    

See Also:

   *  delete_macros
   *  get_macros
   *  place_design
   *  update_macro


@@@COMMAND: create_msg_db@@@
create_msg_db

Description: 
Create Message Db

Syntax: 
create_msg_db  [-quiet] [-verbose] <file>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Message file to be created

Categories: 
Report


@@@COMMAND: create_net@@@
create_net

Description: 
Create nets in the current design

Syntax: 
create_net  [-from <arg>] [-to <arg>] [-quiet] [-verbose] <nets>...

Usage: 
  Name        Description
  -----------------------
  [-from]     Starting bus index
  [-to]       Ending bus index
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <nets>      Names of nets to create

Categories: 
Netlist

Description:

  Create new nets in the current netlist of an open Synthesized or
  Implemented Design.

  Note: You cannot add nets to library macros, or macro-primitives.

  Nets can be created hierarchically from the top-level of the design, or
  within any level of the hierarchy by specifying the hierarchical net name.

  Bus nets can be created with increasing or decreasing bus indexes, using
  negative and positive index values.

  New nets are unconnected in the netlist at the time of creation. You must
  connect nets as desired using the connect_net command. Connected nets can
  be unconnected using the disconnect_net command, and can be removed from
  the netlist using the remove_net command.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -from <arg> - (Optional) The starting index of a new bus.

  -to <arg> - (Optional) The ending index of a new bus.

  Note: Specifying -from or -to without the other will results in a one-bit
  bus with index value specified by the -from or -to argument.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <nets> - (Required) The names of nets to create. Net names can be specified
  from the top-level, as name only (net1), or can be specified within the
  design hierarchy by specifying the hierarchical net name
  (cell1/cellA/net1).

Example:

  The following example creates a new 24-bit bus in the current Synthesized
  or Implemented Design:

    create_net tempBus -from 23 -to 0 
    

See Also:

   *  connect_net
   *  create_pin
   *  create_port
   *  disconnect_net
   *  get_nets
   *  remove_net
   *  resize_net_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: create_new_qor_suggestion@@@
create_new_qor_suggestion

Description: 
Set FAILED_TO_APPLY property to 1, and APPLIED property to 0, for specified RQS suggestion ID

Syntax: 
create_new_qor_suggestion  [-quiet] [-verbose] [<IDs>]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<IDs>]     Match suggestion names against given names

Categories: 
Object, Feasibility, Timing


@@@COMMAND: create_noc_connection@@@
create_noc_connection

Description: 
Create NOC Connection.

Syntax: 
create_noc_connection  -source <arg> -target <arg> [-quiet] [-verbose] [<path>]

Usage: 
  Name        Description
  -----------------------
  -source     Source NOC Interface.
  -target     Target NOC Interface.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<path>]    NOC Connection path.

Categories: 



@@@COMMAND: create_noc_interface@@@
create_noc_interface

Description: 
Create NOC Interface.

Syntax: 
create_noc_interface  [-type <arg>] -mode <arg> [-category <arg>] [-quiet]
                      [-verbose] <path>

Usage: 
  Name         Description
  ------------------------
  [-type]      NOC Interface type (default AXIMM).
  -mode        NOC Interface mode.
  [-category]  NOC Interface category (default PL).
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <path>       NOC Interface path.

Categories: 



@@@COMMAND: create_partition_def@@@
create_partition_def

Description: 
Create new PartitionDef

Syntax: 
create_partition_def  -name <arg> -module <arg> [-library <arg>] [-quiet]
                      [-verbose]

Usage: 
  Name        Description
  -----------------------
  -name       Name of the PartitionDef
  -module     Module name of the PartitionDef
  [-library]  Library name of the module of PartitionDef
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object, Partition

Description:

  Note: You must first define the project as a Dynamic Function eXchange (DFX)
  project by setting the PR_FLOW property on the project to TRUE, or by using
  the Tools > Enable Dynamic Function eXchange command.

  The Dynamic Function eXchange flow lets you create Partition Definitions
  (partitionDefs) from hierarchical cells in a design, and to specify
  reconfigurable modules (RMs) to be assigned to these partitionDefs to
  create a unique configurations of the design based on the combination of
  the core design and one or more RMs. The DFX design flow requires the
  implementation of each PR configuration, resulting in partial bitstreams
  for the RMs, but complete bitstreams for each integrated configuration.
  Refer to the Vivado Design Suite User Guide: Dynamic Function eXchange
  (UG909) for more information.

  The create_partition_def command defines a partitionDef object in a DFX
  project from a specified hierarchical cell. The partitionDef defines a
  partition hierarchy that RMs can be assigned to for a specific PR
  configuration.

  This command returns the name of the newly created partitionDef, or returns
  an error if the command fails.

Arguments:

  -name <arg> - (Required) The name to assign to the new partitionDef.

  -module <arg> - (Required) The name of the hierarchical cell or module in
  the current project that defines the partitionDef. The hierarchical cell
  can be specified by name. The module specifies the hierarchical boundary of
  the partition definition. Reconfigurable modules (RMs) will be defined to
  fit within the hierarchical boundary of the partitionDef.

  -library <arg> - (Optional) Specifies the library name to assign to the
  partitionDef. If no library is specified, the xil_defaultlib is used.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example sets the PR_FLOW property on the current project,
  defines a new partitionDef and assigns the specified module, and then
  creates the reconfigurable module from the specified hierarchy:

    set_property PR_FLOW 1 [current_project]   
    create_partition_def -name partDef1 -module fftTop \  
    -library xil_defaultlib  
    create_reconfig_module -name fftTop -define_from fftTop \  
    -partition_def [get_partition_defs partDef1]  
    

See Also:

   *  create_pr_configuration
   *  create_reconfig_module
   *  delete_partition_defs
   *  get_partition_defs
   *  set_property


@@@COMMAND: create_pblock@@@
create_pblock

Description: 
Create a new Pblock

Syntax: 
create_pblock  [-quiet] [-verbose] <name>

Returns: 
new pblock object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of the new pblock

Categories: 
XDC, Floorplan

Description:

  Defines a Pblock to allow you to add logic instances for floorplanning
  purposes.

  You can add logic elements to the Pblock using the add_cells_to_pblock
  command, and then place the Pblocks onto the fabric of the FPGA using the
  resize_pblocks command. The resize_pblock command can also be used to
  manually move and resize Pblocks.

  You can nest one Pblock inside another for hierarchical floorplanning using
  the set_property command to define the PARENT property as shown in the
  second example.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the Pblock to be created.

Examples:

  The following example creates a Pblock called pb_cpuEngine, and then adds
  only the leaf-cells found in the cpuEngine module, clearing placement
  constraints for placed instances:

    create_pblock pb_cpuEngine  
    add_cells_to_pblock pb_cpuEngine [get_cells cpuEngine/*] \  
       -add_primitives -clear_locs 
    

  The following example shows nesting Pblocks, by creating Pblocks called
  pb_usbEngine0 and pb_usbEngine1, and a third Pblock called pb_usbTop. Then
  pb_usbEngine0 and pb_usbEngine1 are nested inside pb_usbTop using the
  set_property command:

    create_pblock pb_usbEngine0  
    create_pblock pb_usbEngine1  
    create_pblock pb_usbTop  
    set_property PARENT pb_usbTop [get_pblocks {pb_usbEngine?}] 
    

See Also:

   *  add_cells_to_pblock
   *  get_pblocks
   *  place_pblocks
   *  resize_pblock
   *  set_property


@@@COMMAND: create_pin@@@
create_pin

Description: 
Create pins in the current design

Syntax: 
create_pin  [-from <arg>] [-to <arg>] -direction <arg> [-quiet] [-verbose]
            <pins>...

Usage: 
  Name        Description
  -----------------------
  [-from]     Starting bus index
  [-to]       Ending bus index
  -direction  Pin direction
              Values: IN, OUT, INOUT
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <pins>      Names of pins to create

Categories: 
Netlist

Description:

  Add single pins or bus pins to the current netlist of an open Synthesized
  or Implemented Design. You may define attributes of the pin such as
  direction and bus width, as well as the pin name.

  Bus pins can be created with increasing or decreasing bus indexes, using
  negative and positive index values.

  The pins must be created on an existing cell instance, or it is considered
  a top-level pin which should be created using the create_port command. If
  the instance name of a cell is not specified as part of the pin name, an
  error will be returned.

  Note: You cannot add pins to library macros, or macro-primitives.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -from <arg> - (Optional) The starting index of a bus pin.

  -to <arg> - (Optional) The ending index of a bus pin.

  -direction - (Required) The direction of the pin. Valid values are IN, OUT,
  and INOUT.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pins> - (Required) The name of the pins to create. You must specify the
  pin names hierarchically from the cell instance the pin is assigned to.
  Pins created at the top-level of the design are ports, and should be
  created with the create_port command.

Examples:

  The following example creates a new input pin on the cpuEngine module with
  the specified pin name:

    create_pin -direction IN cpuEngine/inPin 
    

  The following example sets the hierarchy separator, creates a new black box
  instance of the reference cell, and creates a twenty-four bit bidirectional
  bus for that instance:

    set_hierarchy_separator |  
    create_cell -reference dmaBlock -black_box usbEngine0|myDMA  
    create_pin -direction INOUT -from 0 -to 23 usbEngine0|myDMA|dataBus 
    

See Also:

   *  create_cell
   *  create_net
   *  create_port
   *  connect_net
   *  disconnect_net
   *  remove_cell
   *  remove_pin
   *  resize_pin_bus
   *  set_hierarchy_separator
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: create_port@@@
create_port

Description: 
Create scalar or bus port

Syntax: 
create_port  -direction <arg> [-from <arg>] [-to <arg>] [-diff_pair]
             [-interface <arg>] [-quiet] [-verbose] <name> [<negative_name>]

Returns: 
list of port objects that were created

Usage: 
  Name               Description
  ------------------------------
  -direction         Direction of port. Valid arguments are IN, OUT and INOUT
  [-from]            Beginning index of new bus
  [-to]              Ending index of new bus
  [-diff_pair]       Create differential pair of ports
  [-interface]       Assign new port to this interface
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <name>             Name of the port
  [<negative_name>]  Optional negative name of a diff-pair

Categories: 
PinPlanning

Description:

  Creates a port and specifies such parameters as direction, width,
  single-ended or differential, and optionally assigns it to an existing
  interface. New ports are added at the top-level of the design hierarchy.

  Bus ports can be created with increasing or decreasing bus indexes, using
  negative and positive index values.

  The create_port command can be used to create a new port in an I/O Planning
  project, or while editing the netlist of an open Synthesized or Implemented
  design.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -direction - (Required) The direction of the port. Valid arguments are IN,
  OUT, and INOUT.

  -from <arg> - (Optional) The beginning index of a new bus. A bus can start
  from a negative index value.

  -to <arg> - (Optional) The ending index of a new bus. A bus can end on a
  negative index value.

  -diff_pair - (Optional) Create the specified port as a differential pair of
  ports. In this case both a positive and negative side port will be created.
  If only <name> is specified, the positive side port will be assigned the
  specified <name>, and the negative side port will be assigned <name_N>. If
  both <name> and <negative_name> are specified, the positive side port will
  be assigned <name>, and the negative side port will be assigned
  <negative_name>.

  -interface <arg> - (Optional) Assign the port to the specified interface.

  Note: The interface must first be defined with the create_interface command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the port to create. If -diff_pair is
  specified, <name> is assigned to the positive side port, and the negative
  side port is <name>_N.

  <negative_name> - (Optional) Use this option to specify the name of the
  negative side port when -diff_pair is specified. In this case, <name> will
  be assigned to the positive side port, and <negative_name> will be assigned
  to the negative side port.

Examples:

  The following example creates a new input port, named PORT0:

    create_port -direction IN PORT0 
    

  The following example creates a new interface called Group1, and then
  creates a four-bit, differential pair output bus using the specified
  interface. Since the bus ports are defined as differential pairs, and only
  <name> is specified, the negative side ports are automatically named
  D_BUS_N:

    create_interface Group1  
    create_port -direction OUT -from 0 -to 3 -diff_pair -interface Group1 D_BUS 
    

  Note: This command results in the creation of eight ports: D_BUS[0]
  D_BUS_N[0] D_BUS[1] D_BUS_N[1] D_BUS[2] D_BUS_N[2] D_BUS[3] D_BUS_N[3]

  With only <name> specified, the following example creates differential pair
  output ports named data and data_N.

    create_port -direction OUT -diff_pair data 
    

  With both <name> and <negative_name> specified, the following example
  creates differential pair output ports named data_P and data_N.

    create_port -direction OUT -diff_pair data_P data_N 
    

See Also:

   *  create_interface
   *  make_diff_pair_ports
   *  place_ports
   *  remove_port
   *  resize_port_bus
   *  split_diff_pair_ports


@@@COMMAND: create_port_on_reconfigurable_module@@@
create_port_on_reconfigurable_module

Description: 
Generate a port on a given reconfigurable cell

Syntax: 
create_port_on_reconfigurable_module  [-cell <arg>] [-port <arg>]
                                      [-direction <arg>] [-from <arg>]
                                      [-to <arg>] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  [-cell]       (Required) specify the HD.RECONFIGURABLE cell name for port 
                punching
  [-port]       (Required) specify the newly added port name on given 
                HD.RECONFIGURABLE cell
  [-direction]  (Required) specify the direction of ports, it could be either
                INPUT, OUTPUT or INOUT
  [-from]       (Optional) specify the lower boundary of port bus
                Default: -1
  [-to]         (Optional) specify the higher boundary of port bus
                Default: -1
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
FileIO


@@@COMMAND: create_power_rail@@@
create_power_rail

Description: 
Create a new Power Rail

Syntax: 
create_power_rail  [-power_sources <args>] [-phased_power_source <args>]
                   [-direct] [-num_phases <arg>] [-quiet] [-verbose] <name>

Returns: 
new power_rail object

Usage: 
  Name                    Description
  -----------------------------------
  [-power_sources]        List of power sources. Can be power rails and/or 
                          power supplies
  [-phased_power_source]  Pair of phased power source and its phase value. 
                          Power source can be a phased power rail.
  [-direct]               Implies if the power is a direct rail
  [-num_phases]           Number of phases
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <name>                  Name of the new power rail

Categories: 
XDC, Floorplan


@@@COMMAND: create_pr_configuration@@@
create_pr_configuration

Description: 
Create new Configuration

Syntax: 
create_pr_configuration  -name <arg> [-partitions <args>] [-greyboxes <args>]
                         [-use_netlist] [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  -name           Name of the Configuration
  [-partitions]   List of partition instances and reconfig modules pairs
  [-greyboxes]    List of instances to which buffers need to be inserted for 
                  all ports
  [-use_netlist]  Use netlist for getting instances of partition_defs to 
                  creating configurations
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Object, Partition

Description:

  Note: You must first define the project as a Dynamic Function eXchange (DFX)
  project by setting the PR_FLOW property on the project to TRUE, or by using
  the Tools > Enable Dynamic Function eXchange command.

  The Dynamic Function eXchange flow lets you create Partition Definitions
  (partitionDefs) from hierarchical cells in a design, and to specify
  reconfigurable modules (RMs) to be assigned to these partitionDefs to
  create unique configurations of the design based on the combination of the
  core design and one or more RMs. The DFX design flow requires the
  implementation of each PR configuration, resulting in partial bitstreams
  for the RMs, but complete bitstreams for each integrated configuration.
  Refer to the Vivado Design Suite User Guide: Dynamic Function eXchange
  (UG909) for more information.

  The create_pr_configuration command defines the combination of the static
  logic and the RM to create a unique configuration of the design. The PR
  configuration is the design that is implemented and the bitstream is
  generated for.

  You will also need to create implementation runs for the PR configuration
  using the create_run -pr_config command.

  This command returns the name of the newly created PR configuration, or
  returns an error if the command fails.

Arguments:

  -name <arg> - (Required) The name to give to the new PR configuration.

  -partitions <arg> - (Optional) Specify the partition instance and
  reconfigurable module to apply to that instance in the PR configuration.
  The argument must be specified as <partitionInstance>:<RM>, and should be
  specified as a list when multiple name/value pairs are defined. This format
  lets you assign different RMs to multiple instances of a single
  partitionDef in the design.

  -greyboxes <arg> - (Optional) Indicates that the specified partition
  instances will be defined as greyboxes, which are populated with LUT1s and
  signal buffers. Refer to the Vivado Design Suite User Guide: Dynamic
  Function eXchange (UG909) for more information.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example defines a new PR configuration and assigns the
  partitions:

    create_pr_configuration -name prConfig1 -partitions fftEngine:fftTop 
    

  The following example defines three PR configurations, with two
  partitionDefs and different RMs assigned to each partition, as well an
  empty configuration with greyboxes:

    create_pr_configuration -name cfg1 -partitions \  
    [list fftEngine:fftTop mgtEngine:mgtTop]  
    create_pr_configuration -name cfg2 -partitions \  
    [list fftEngine:fftTop mgtEngine:mgtBottom]  
    create_pr_configuration -name cfg3 -partitions { } \  
    -greyboxes [list fftEngine mgtEngine] 
    

See Also:

   *  create_partition_def
   *  create_reconfig_module
   *  current_pr_configuration
   *  delete_pr_configurations
   *  get_pr_configurations
   *  report_pr_configuration_analysis
   *  setup_pr_configurations


@@@COMMAND: create_project@@@
create_project

Description: 
Create a new project

Syntax: 
create_project  [-part <arg>] [-force] [-in_memory] [-ip] [-rtl_kernel]
                [-quiet] [-verbose] [<name>] [<dir>]

Returns: 
new project object

Usage: 
  Name           Description
  --------------------------
  [-part]        Target part
  [-force]       Overwrite existing project directory
  [-in_memory]   Create an in-memory project
  [-ip]          Default GUI behavior is for a managed IP project
  [-rtl_kernel]  Default GUI behavior is for a RTL Kernel project
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<name>]       Project name
  [<dir>]        Directory where the project file is saved
                 Default: .

Categories: 
Project

Description:

  Creates an AMD Vivado Design Suite project file (.xpr), or a project file 
  for the Vivado Lab Edition (.lpr), in the specified directory.

  For the Vivado Lab Edition: The create_project command has a different
  command syntax, with fewer options, in the Vivado Lab Edition. The options
  that are not supported in Vivado Lab Edition are:

   *  -part - The Vivado Lab Edition project (.lpr) does not specify a target
      part because the current_hw_target and current_hw_device determine the
      target part.

   *  -ip - The Vivado Lab Edition does not define projects for the Managed
      IP flow.

  For the Vivado Design Suite: The default project created for the Vivado
  Design Suite is an RTL project, which defines the project as holding and
  manage RTL source files in the source fileset. The type of project is
  determined by the DESIGN_MODE Property on the source fileset when the
  project is created. To change the project type, use the set_property
  command to set the DESIGN_MODE property on the current_fileset as follows:

   *  RTL Project - set_property DESIGN_MODE RTL [current_fileset]

   *  Netlist Project - set_property DESIGN_MODE GateLvl [current_fileset]

   *  I/O Planning Project - set_property DESIGN_MODE PinPlanning
      [current_fileset]

  Refer to the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895) for more information on the different types of projects.

  This command returns a transcript of its process and the name of the
  created project, or returns an error if it fails.

Arguments:

  -part <arg> - (Optional) Specifies the part to be used for the project.
  This can be changed after the project is created. If the -part option is
  not specified, the default part will be used. This option is not supported
  in Vivado Lab Edition.

  -force - (Optional) This option is required to overwrite an existing
  project. If the project name is already define in the specified <dir> then
  you must also specify the -force option for the tool to overwrite the
  existing project.

  Note: If the existing project is currently open in the tool, the new
  project will overwrite the existing project on the disk, but both projects
  will be opened in the tool. In this case you should probably run the
  close_project command prior to running create_project.

  -in_memory - (Optional) Specifies that the project should be created in the
  in-memory database of the Vivado Design Suite to support the Non-Project
  design flow. This project will not result in a project file or directory
  structure being written to disk. The purpose of the in-memory project is to
  allow properties usually associated with a project-based design to be
  associated with the in-memory design of the non-project design flow.

  Tip: The use of -in_memory is not part of the standard non-project design
  flow, and may cause unexpected behaviors in the Vivado tools. For more
  information on Non-Project Mode refer to the Vivado Design Suite User
  Guide: Design Flows Overview (UG892).

  -ip - (Optional) Create a project for the Managed IP flow for exploring IP
  in the IP catalog, customizing IP, and managing a repository of configured
  IP. Refer to the Vivado Design Suite User Guide: Designing with IP (UG896)
  for more information on the Managed IP flow. This option is not supported
  in Vivado Lab Edition.

  -rtl_kernel - (Optional) Specifies the creation of the project is for use
  in defining an RTL kernel for the Vitis core development kit.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) This argument does not require a parameter name,
  however, it must appear before the specified <dir>. Since these commands do
  not have parameters, the tool interprets the first argument as <name> and
  uses the second argument as <dir>. A project file is created <name>.xpr,
  (or <name>.lpr) and a project data folder is also created <name>.data and
  both are written into the specified directory <dir>.

  Note: The project file created by the tool is an RTL source file by
  default. You must use the set_property command to set the DESIGN_MODE
  property to change the project from an RTL source project to a Netlist or
  an I/O Pin Planning project.

  <dir> - (Optional) This argument specifies the directory name to write the
  new project file into. If the specified directory does not exist a new
  directory will be created. If the directory is specified with the complete
  path, the tool uses the specified path name. However, if <dir> is specified
  without a path, the tool looks for or creates the directory in the current
  working directory, or the directory from which the tool was launched.

  Note: When creating a project in GUI-mode, the tool appends the <name> to
  the <dir> and creates a project directory <dir>/<name> and places the new
  project file and project data folder into that project directory.

Examples:

  When run from the Vivado Design Suite, the following example creates a
  project called project1.xpr in a directory called myDesigns:

    create_project project1 myDesigns

  Note: Because the <dir> is specified as the folder name only, the tool will
  create the project in the current working directory, or the directory from
  which the tool was launched.

  When run from the Vivado Lab Edition, this example creates a project called
  project1.lpr in a directory called myDesigns:

    create_project project1 myDesigns

  The following example creates a project called Proj1 in a directory called
  FPGA in C:/Designs. In addition, the tool will overwrite an existing
  project if one is found to exist in the specified location. In the second
  and third lines, the location of -force is changed to show the flexibility
  of argument placement.

    create_project Proj1 C:/Designs/FPGA -force
    -or-
    create_project Proj1 -force C:/Designs/FPGA
    -or-
    create_project -force Proj1 C:/Designs/FPGA

  Note: In all cases the first argument without a preceding keyword is
  interpreted as the <name> variable, and the second argument without a
  preceding keyword is the <dir> variable.

  The following example creates a project for the Manage IP flow in the
  specified directory:

    create_project -ip manageIP C:/Data

  The following example creates a new project called pin_project, and then
  sets the DESIGN_MODE property as required for an I/O Pin Planning project,
  and finally opens an IO design:

    create_project pin_project C:/Designs/PinPlanning
    set_property design_mode PinPlanning [current_fileset]
    open_io_design -name io_1

See Also:

   *  close_project
   *  current_hw_device
   *  current_hw_target
   *  current_project
   *  open_io_design
   *  open_project
   *  save_project_as
   *  set_property


@@@COMMAND: create_property@@@
create_property

Description: 
Create property for class of objects(s)

Syntax: 
create_property  [-description <arg>] [-type <arg>] [-enum_values <args>]
                 [-default_value <arg>] [-file_types <args>]
                 [-display_text <arg>] [-quiet] [-verbose] <name> <class>

Returns: 
The property that was created if success, "" if failure

Usage: 
  Name              Description
  -----------------------------
  [-description]    Description of property
  [-type]           Type of property to create; valid values are: string, 
                    int, long, double, bool, enum, file
                    Default: string
  [-enum_values]    Enumeration values
  [-default_value]  Default value of type string
  [-file_types]     File type extensions (without the dot)
  [-display_text]   Text to display when selecting the file in file browser
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <name>            Name of property to create
  <class>           Object type to create property for; valid values are: 
                    design, net, cell, pin, port, pblock, interface, fileset

Categories: 
PropertyAndParameter, XDC

Description:

  Creates a new property of the <type> specified with the user-defined <name>
  for the specified <class> of objects. The property that is created can be
  assigned to an object of the specified class with the set_property command,
  but is not automatically associated with all objects of that class.

  The report_property -all command will not report the newly created property
  for an object of the specified class until the property has been assigned
  to that object.

Arguments:

  -description <arg> - (Optional) Provide a description of the property being
  created. The description will be returned by the Vivado Design Suite help
  system when the property is queried.

  -type <arg> - (Optional) The type of property to create. There allowed
  property types include:

   *  string - Allows the new property to be defined with string values. This
      is the default value when -type is not specified.

   *  int - Allows the new property to be defined with short four-byte signed
      integer values with a range of -2,147,483,648 to 2,147,483,647. If a
      floating point value is specified for an int property type, the Vivado
      tool will return an error.

   *  long - Specifies signed 64-bit integers with value range of
      -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807. If a floating
      point value is specified for an long property type, the tool will
      return an error.

   *  double - Allows the new property value to be defined with a floating
      point number.

   *  bool - Allows the new property to be defined as a boolean with a true
      (1, or yes) or false (0, or no) value.

   *  enum - An enumerated data type, with the valid enumerated values
      specified by the -enum_values option.

   *  string_list - A Tcl list of string values.

   *  int_list - A Tcl list of integer values.

   *  double_list - A Tcl list of floating point values.

  -enum_values <args> - (Optional) A list of enumerated values that the
  property can have. The list must be enclosed in braces, {}, with values
  separated by spaces. This option can only be used with -type enum.

  -default_value <args> - (Optional) The default value to assign to the
  property. This option can be used for string, int, bool, and enum type
  properties.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the property to be defined. The name is
  case sensitive.

  <class> - (Required) The class of object to assign the new property to. All
  objects of the specified class will be assigned the newly defined property.
  Valid classes are: design, net, cell, pin, port, Pblock, interface, and
  fileset.

Examples:

  The following example defines a property called PURPOSE for cell objects:

    create_property PURPOSE cell 
    

  Note: Because the -type was not specified, the value will default to strings.

  The following example creates a pin property called COUNT which holds an
  Integer value:

    create_property -type int COUNT pin 
    

See Also:

   *  get_property
   *  list_property
   *  list_property_value
   *  report_property
   *  reset_property
   *  set_property


@@@COMMAND: create_qor_check@@@
create_qor_check

Description: 
Add a new RQS suggestion

Syntax: 
create_qor_check  -name <arg> [-type <arg>] -rule_body <arg>
                  -property_values <args> [-opt_switches <arg>] [-quiet]
                  [-verbose]

Usage: 
  Name              Description
  -----------------------------
  -name             Suggestion ID of user suggestion to create
  [-type]           Type of QoR check to create. Should be either 
                    "suggestion" or "assessment"
                    Default: suggestion
  -rule_body        List of names of TCL procs to execute as part of 
                    suggestion. First proc must return true or false. Second 
                    proc is executed to actually create COMMAND property of 
                    suggestion instance
  -property_values  Properties of new check specified as list of key value 
                    pairs
  [-opt_switches]   Switches to pass to opt_design which may be invoked as 
                    part of suggestion application
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Object, Feasibility, Timing


@@@COMMAND: create_qor_ruledeck@@@
create_qor_ruledeck

Description: 
Create new QoR ruledecks

Syntax: 
create_qor_ruledeck  [-quiet] [-verbose] <ruledecks>...

Returns: 
Create new QoR ruledecks

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <ruledecks>  Names of QoR rule decks to create

Categories: 
Netlist, Project


@@@COMMAND: create_reconfig_module@@@
create_reconfig_module

Description: 
Create new reconfig Module

Syntax: 
create_reconfig_module  -name <arg> [-top <arg>] [-gate_level]
                        -partition_def <arg> [-define_from <arg>]
                        [-define_from_file <arg>] [-quiet] [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  -name                Name of the Reconfig Module
  [-top]               module name of the top module
  [-gate_level]        Create Reconfig Module whcih alllows adding DCP/EDIF 
                       files only
  -partition_def       PartitionDef in which reconfig module will be created
  [-define_from]       Name of the module in the source fileset to be the top
                       of the blockset
  [-define_from_file]  full path of the top source file in the source fileset
                       for which reconfigurable module to be created.
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Object, Partition

Description:

  Note: You must first define the project as a Dynamic Function eXchange (DFX)
  project by setting the PR_FLOW property on the project to TRUE, or by using
  the Tools > Enable Dynamic Function eXchange command.

  The create_reconfig_module command defines a reconfigurable module (RM)
  from a specified hierarchical cell, or design file, and assigns it to the
  specified Partition Definition (partitionDef) in the current project.

  The Dynamic Function eXchange flow allows RMs to be swapped into and out of a
  partitionDef to create a unique configuration of the design based on the
  combination of the core design and an RM. A single partitionDef can have
  multiple RMs to contain different netlists, constraints, or
  implementations. Each instance of the partitionDef in the design can be
  assigned a different RM to support many different configurations. The DFX
  design flow requires the implementation of each PR configuration, resulting
  in partial bitstreams for the RMs, but complete bitstreams for each
  integrated configuration. Refer to the Vivado Design Suite User Guide:
  Dynamic Function eXchange (UG909) for more information.

  This command returns the hierarchical name of the newly created RM, or
  returns an error if the command failed.

Arguments:

  -name <arg> - (Required) Specify a name for the reconfigurable module (RM)
  being created.

  -top <arg> - (Optional) Specify the top-level cell that defines the
  hierarchy of the RM. The cell can be specified by name.

  -gate_level - (Optional) Indicates that the RM is defined by a netlist file
  (EDIF or DCP) rather than by RTL source files.

  -partition_def <arg> - (Required) Specify the partitionDef object that the
  RM is assigned to. The partitionDef can be specified by name, or as an
  object as returned by the get_partition_defs command.

  -define_from <arg> - (Optional) Specify the hierarchical cell in the
  current project that the RM is defined from. The source files of the
  specified cell will define the source file contents of the RM. The cell can
  be specified by name.

  -define_from_file <arg> - (Optional) Specify the netlist or DCP file that
  defines the source for gate-level RM. If the path is not specified as part
  of the filename, the file will be looked for in the current working
  directory, or the directory that the Vivado tool was launched from.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The example below creates a reconfigurable module with the specified name:

    create_reconfig_module -name fftBottom -partition_def \  
    [get_partition_defs partDef1 ] -top fftTop 
    

See Also:

   *  create_partition_def
   *  create_pr_configuration
   *  delete_reconfig_modules
   *  get_partition_defs
   *  get_reconfig_modules
   *  report_pr_configuration_analysis
   *  set_property


@@@COMMAND: create_report_config@@@
create_report_config

Description: 
Create Configurable Report objects.

Syntax: 
create_report_config  [-report_name <arg>] [-report_type <arg>] -steps <args>
                      -runs <args> [-options <arg>] [-copy_of <args>] [-quiet]
                      [-verbose]

Returns: 
List of configurable report objects

Usage: 
  Name            Description
  ---------------------------
  [-report_name]  Name of configurable report object created. Can not be used
                  when creating multiple objects
  [-report_type]  Type of configurable report object(s) created. Not required
                  with '-copy_of'
  -steps          List of run step(s) for object(s) created
  -runs           List of run(s) for object(s) created
  [-options]      options for report command to be set at creation of 
                  configurable report object, except with '-copy_of'
  [-copy_of]      configurable report object to be copied
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Object, Report

Description:

  This command lets you create configurable report objects to add to
  synthesis and implementation runs, or to add to Report Strategies. A report
  object defines the report type and options that are run every time a
  specified step of a synthesis or implementation design run is completed. A
  Report Strategy lets you define a collection of report objects to associate
  with many synthesis and implementation runs, and reuse at different stages
  of the design flow. See the Vivado Design Suite User Guide: Implementation
  (UG904) for more information.

  Each report object has the `OPTIONS.MORE_OPTIONS` property, which lets you
  specify command line options of the Tcl report_* command associated with
  the report object. These command line options are used when the report is
  generated during the synthesis or implementation run. You can specify the
  command line options using the -options argument as described below, or by
  manually setting the `OPTIONS.MORE_OPTIONS` property of an existing report
  object using the set_property command. Refer to the specific report_*
  command for information on the available command line options.

Arguments:

  -report_name <arg> - (Optional) Specifies the name to assign to the report
  when it is generated. When the name is not specified, the name will be
  automatically defined as a combination of the -runs, -steps, and
  -report_type options.

  Note: The -report_name option cannot be specified when creating multiple
  report objects. In this case the report name will be automatically defined.

  -report_type <arg> - (Optional) Specifies the report command to be run by
  the report object. Most of the report_* Tcl commands can be specified as
  the report type to create.

  Note: The -report_type cannot be specified when using the -copy_of option
  to create a copy of an existing report object.

  -steps <args> - (Required) Specifies the synthesis or implementation
  process steps to associate the report object with. The object can be
  specified for use with multiple steps to have the report rerun at each
  step, in which case the name of the report will be automatically defined.
  Accepted values include all of the available process steps for synthesis or
  implementation: synth_design, opt_design, place_design, route_design...

  -runs <args> - (Required) Specifies the synthesis or implementation design
  run to associate the report object with. The object can be specified for
  use with multiple design runs, in which case the name of the report will be
  automatically defined.

  -options <arg> - (Optional) Specifies various command line options for the
  specific report_* command being run. See the specific report command for
  the available options. This option can not be specified when using the
  -copy_of option to create a copy of an existing report object.

  Note: There is no checking provided of the -options to ensure the options
  are correct and applicable to the report type specified. If you indicate
  options that are incorrect the report will return an error when it is run.

  -copy_of <arg> - (Optional) Specifies a report object to use as a template
  for the new report object. The new report object can be associated with new
  -steps and -runs.

  Note: The -report_type and -options cannot be specified when using the
  -copy_of option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example defines a new report object with the specified name
  and type and associates it with the route_design step of the impl_1 run:

    create_report_config -report_name post_route_datasheet -report_type report_datasheet \  
    -steps route_design -runs impl_1 
    

  This example is the same as the prior example, except it does not specify
  the name, and so the report object is named automatically as shown in the
  return value:

    create_report_config -report_type report_datasheet -steps route_design -runs impl_1  
    impl_1_route_report_datasheet_0 
    

  The following example creates a new report object for the timing summary
  report, with the specified command-line options, and associates the object
  with multiple steps of an implementation run:

    create_report_config -report_type report_timing_summary \  
    -steps {opt_design place_design route_design} -runs {impl_2}\  
    -options {-no_detailed_paths -report_unconstrained} 
    

See Also:

   *  delete_report_configs
   *  generate_reports
   *  get_report_configs
   *  set_property


@@@COMMAND: create_rqs_runs@@@
create_rqs_runs

Description: 
Create ML Strategy implementation runs

Syntax: 
create_rqs_runs  [-reference_run <arg>] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-reference_run]  Reference implementation run name
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Timing

Description:

  This command is used to create up to 3 implementation runs using ML
  Strategies that are selected based on an analysis of critical features in a
  reference design run.

  This command can only be used in Project mode implementation runs and for
  the Ultrascale, Ultrascale+, and Versal families. Refer to the Examples
  section for usage on both the project and non-project use-cases for using
  ML Strategies.

  It is a second step in a two-step process, where

   *  step one create the ML Strategy RQS files.

   *  step two create the implementation runs and reference the RQS files.

  This command copies any required properties such as Tcl hooks from the
  -reference_run, reference the RQS file containing the strategy, and set up
  the directives to use RQS. It requires ML Strategy RQS files to be present
  at the location.

    <impl_run_name>/MLStrategy

  Note: In Vivado Advanced Flow, ML Strategies are not supported for Versal 
  adaptive SoC.

Arguments:

  -reference_run <arg> - (Required) A reference implementation run object
  which has RQS strategy files generated in the <run_name>/MLStrategy folder.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following command creates ML Strategy RQS files after a run is
  completed from within a project.

    generate_ml_strategies [get_runs impl_1] -suggestions_filter {APPLIED || Category==Strategy}

  The following example generate the ML strategies during the implementation
  run, by either turning on the AUTO_RQS feature or adding a Tcl hook script
  to the post route phase. AUTO_RQS will collect other category QoR
  Suggestions. For more control over the other suggestions collected, use the
  Tcl hook option and modify the filter command.

   *  To enable AUTO_RQS

        set_property AUTO_RQS 1 [get_runs impl_1]

   *  Alternatively, add the following commands into the Tcl file and modify
      the filter as required.

        report_qor_suggestions write_qor_suggestions -strategy_dir ./MLStrategy -of_objects [get_qor_suggestions -filter {APPLIED || Category == Strategy}]

   *  Add the Tcl file to the post route Tcl hook.

        import_files -fileset utils_1 post_route.tcl set_property STEPS.ROUTE_DESIGN.TCL.POST [ get_files post_route.tcl -of [get_fileset utils_1] ] [get_runs impl_1]

  The following command create new runs and configure them to use the
  strategy, whenever ML Strategies are generated.

    create_rqs_runs -reference_run [get_runs impl_1]

  Note: It is recommended to run three ML Strategies per design to maximize
  timing improvement and smooth out variations.

  For non-project users, the following commands generate ML strategy
  suggestions and writes them to an RQS file in ./MLStrategy directory.

    report_qor_suggestions
     write_qor_suggestions -strategy_dir ./MLStrategy -of_objects [get_qor_suggestions -filter {APPLIED || Category == Strategy}]

  The following example shows the equivalent non-project based commands to
  reference the RQS strategies.

    <insert after link design or open checkpoint>
    read_qor_suggestions ./MLStrategy/<top>_routedSuggestionFile[1||2||3].rqs
    opt_design -directive RQS
    place_design -directive RQS
    phys_opt_design -directive RQS
    route_design -directive RQS

See Also:

   *  report_qor_suggestions
   *  write_qor_suggestions
   *  create_run


@@@COMMAND: create_run@@@
create_run

Description: 
Define a synthesis or implementation run for the current project

Syntax: 
create_run  [-constrset <arg>] [-parent_run <arg>] [-part <arg>] -flow <arg>
            [-strategy <arg>] [-report_strategy <arg>] [-pr_config <arg>]
            [-dfx_mode <arg>] [-rm_instance <arg>] [-quiet] [-verbose] <name>

Returns: 
run object

Usage: 
  Name                Description
  -------------------------------
  [-constrset]        Constraint fileset to use
  [-parent_run]       Synthesis run to link to new implementation run
  [-part]             Target part
  -flow               Flow name
  [-strategy]         Strategy to apply to the run
  [-report_strategy]  Report strategy to apply to the run
  [-pr_config]        partition configuration to apply to the run
  [-dfx_mode]         dynamic function exchange mode
                      Default: STANDARD
  [-rm_instance]      reconfigurable module instance information. Format 
                      <partition cell>:<reconfigurable module>
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution
  <name>              Name for new run

Categories: 
Project

Description:

  Defines a synthesis or implementation run. The attributes of the run can be
  configured with the use of the set_property command.

Arguments:

  -constrset <arg> - (Optional) The constraint set to use for the synthesis
  or implementation run.

  -parent_run <arg> - The run that defines the netlist for the current run.
  For netlist-based projects the -parent_run argument is not required. For an
  RTL sources project, the parent_run must be specified for implementation
  runs, but is not required for synthesis runs. For the Dynamic Function
  eXchange (DFX) flow the -parent_run can describe the synthesis run, an
  implementation run, or the PR configuration as specified by the -pr_config
  option.

  -part <partName> - (Optional) The AMD part to be used for the run. If
  the -part option is not specified, the default part defined for the project
  will be assigned as the part to use.

  -flow <arg> - (Required) The tool flow and release version for the
  synthesis tool, for example {Vivado Synthesis 2017} or the implementation
  tool {Vivado Implementation 2017}.

  -strategy <arg> - (Optional) The strategy to employ for the synthesis or
  implementation run. There are many different strategies to choose from
  within the tool, including custom strategies you can define. Refer to the
  appropriate user guide for a discussion of the available synthesis and
  implementation strategies. If the strategy argument is not specified,
  "Synthesis Defaults" or "Implementation Defaults" will be used as
  appropriate.

  -report_strategy <arg> - (Optional) Specifies a Report Strategy that
  defines a collection of report objects to run at different stages of the
  design flow. Report objects are created with the create_report_config
  command. Report strategies are defined in the Settings dialog box of the
  Vivado IDE.

  -pr_config <arg> - (Optional) Specifies a partition configuration to apply
  to the new run. Partition configurations are defined by the
  create_pr_configuration command. Refer to the Vivado Design Suite User
  Guide: Dynamic Function eXchange (UG909) for more information.

  -dfx_mode <arg> - (Optional) Specifies the Dynamic Function eXchange mode.
  It can either be "STANDARD" or "ABSTRACT SHELL". "STANDARD" mode takes full design
  into consideration while implementing the reconfigurable modules but 
  "ABSTRACT SHELL" mode uses the shell for a single reconfigurable partition to 
  implement a single reconfigurable module. "ABSTRACT SHELL" mode saves implementation 
  time compared to "STANDARD" mode. "STANDARD" mode is the default.

  -rm_instance <arg> - (Optional) Reconfigurable module instance information.
  This information is needed when a run is in "ABSTRACT SHELL" mode. It specifies
  which reconfigurable module instance will be implemented by the run. Its format
  is <partition cell>:<reconfigurable module>

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the synthesis or implementation run to be
  created.

Examples:

  The following example creates a run named synth_1 referencing the Vivado
  synthesis tool flow:

    create_run -flow {Vivado Synthesis 2013} synth_1 
    

  Note: The defaults of sources_1, constrs_1, and the default part for the
  project will be used in the synthesis run. In addition, since this is a
  synthesis run, the -parent_run argument is not required.

  The following example creates an implementation run based on the Vivado
  Implementation 2013 tool flow, and attaches it to the synth_1 synthesis run
  previously created:

    create_run impl_2 -parent_run synth_1 -flow {Vivado Implementation 2013} 
    

  Note: The -parent_run argument is required in this example because it is an
  implementation of synthesized RTL sources.

See Also:

   *  create_pr_configuration
   *  create_report_config
   *  current_run
   *  launch_runs
   *  set_property


@@@COMMAND: create_single_pass_run@@@
create_single_pass_run

Description: 
Exports an intelligent design run result into a single run for the current project

Syntax: 
create_single_pass_run  -reference_run <arg> [-quiet] [-verbose] <name>

Returns: 
run object

Usage: 
  Name            Description
  ---------------------------
  -reference_run  Intelligent design run for which the result has to be 
                  exported into a single run
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <name>          Name for new run

Categories: 
Project

Description:

  Generates a single pass design run that will be equivalent to the
  multi-pass Intelligent Design Run. As Intelligent Design Runs can take the
  equivalent compile time of many single pass runs, the output run of this
  command allows faster iterations when the design changes.

Arguments:

  -reference_run <arg> - (Required) The top level completed Intelligent
  Design Run name.

  <name> - (Required) The new design run name for the single pass run to be
  created. The run name must not be a run that already exists.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example creates an implementation run call new_impl_1 from
  the completed run Intelligent Design Run i_impl_1_1:

    create_single_pass_run -reference_run [get_runs i_impl_1_1] new_impl_1

See Also:

   *  create_run


@@@COMMAND: create_slack_histogram@@@
create_slack_histogram

Description: 
Create histogram

Syntax: 
create_slack_histogram  [-to <args>] [-delay_type <arg>] [-num_bins <arg>]
                        [-max_paths <arg>] [-slack_less_than <arg>]
                        [-slack_greater_than <arg>] [-group <args>]
                        [-significant_digits <arg>] [-scale <arg>]
                        [-file <arg>] [-append] [-details] [-no_header]
                        [-name <arg>] [-cells <args>] [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-to]                  To clock
  [-delay_type]          Type of path delay: Values: max, min, min_max
                         Default: max
  [-num_bins]            Maximum number of bins: Valid Range (1-100)
                         Default: 10
  [-max_paths]           Number of paths to consider for -timing option
                         Default: INT_MAX
  [-slack_less_than]     Display paths with slack less than this
                         Default: 1e+30
  [-slack_greater_than]  Display paths with slack greater than this
                         Default: -1e+30
  [-group]               Limit report to paths in this group(s)
  [-significant_digits]  Number of digits to display: Range: 0 to 3
                         Default: 3
  [-scale]               Type of scale on which to draw the histogram; 
                         Values: linear, logarithmic
                         Default: linear
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append the results to file, don't overwrite the 
                         results file
  [-details]             Report will generate detailed table
  [-no_header]           do not generate a report header
  [-name]                Output the results to GUI panel with this name
  [-cells]               run create_slack_histogram on the specified cell(s)
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Create a slack histogram grouping paths into slack ranges, and displaying
  the results graphically or in text format.

  Inside the text report, this command generates some slack tables based on
  the timing corners and number of paths that are analyzed. An optional
  detailed table provides specific information for all the analyzed
  endpoints.

  In GUI report, this command creates a slack histogram grouping paths into
  slack ranges, and displaying the results graphically.

  Tip: This command provides a graphical slack histogram that requires the
  tool to be running in GUI mode.

Arguments:

  -to <args> - (Optional) Specify a clock name, to analyze paths that end in
  the specified clock domain.

  -delay_type <arg> - (Optional) Specifies the type of path delay to analyze
  when creating the slack report. The valid values are min, max, and min_max.
  The default setting for -delay_type is max.

  -num_bins <args> - (Optional) Specify the number of slack bins to divide
  the results into. The number of bins determines the granularity of the
  histogram returned. The range of slack values calculated is divided evenly
  into the specified number of bins, and the paths are grouped into the bins
  according to their slack values. The value can be specified as a number
  between 1 and 100, with a default value of 10.

  -max_paths <arg> - (Optional) The maximum number of paths to analyze. This
  is specified as a value greater than or equal to 1. By default the
  create_slack_histogram command will report all existing critical paths.

  -slack_less_than <arg> - (Optional) Report slack on paths with a calculated
  slack value less than the specified value. Can be used with
  -slack_greater_than to provide a range of slack values of specific
  interest.

  -slack_greater_than <arg> - (Optional) Report slack on paths with a
  calculated slack value greater than the specified value. Can be used with
  -slack_less_than to provide a range of slack values of specific interest.

  -group <args> - (Optional) Report slack for paths in the specified path
  groups. Currently defined path groups can be determined with the
  get_path_groups command.

  -significant_digits <arg> - (Optional) The number of significant digits in
  the output results. The valid range is 0 to 3. The default setting is 3
  significant digits.

  -scale [ linear | logarithmic ] - (Optional) Specify the Y-axis scale to
  use when presenting the slack histogram. Logarithmic allows for a smoother
  presentation of greatly different values, but linear is the default.

  Note: -scale is specific to the GUI report.

  -details - (Optional) Provide a detailed table of the timing paths that are
  analyzed. The table lists each endpoint pin or port with the
  source/destination clock, and timing corner used for analysis.

  -no_header - (Optional) Do not write a header to the report.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results set for the GUI.
  If the name specified is currently opened, the create_slack_histogram will
  overwrite the current results.

  -cells <arg> - (Option) Generate the report for the specified hierarchical
  cells. The details of the report will be based on the specified cells
  rather than the whole design or current_instance.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Create a slack histogram of the current design, using the default values
  and outputting the results to the named result set in the GUI.

    create_slack_histogram -name slack1

  Generate a slack histogram text report (including detailed table) of the
  current design, using the default values and outputting the results to the
  specified file.

    create_slack_histogram -details -file text_report.txt

See Also:

   *  delete_timing_results
   *  get_path_groups
   *  report_timing


@@@COMMAND: create_sysgen@@@
create_sysgen

Description: 
Create DSP source for Xilinx System Generator and add to the source fileset

Syntax: 
create_sysgen  [-quiet] [-verbose] <name>

Returns: 
Name for the new sub module

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Sub module name

Categories: 
SysGen

Description:

  Create a DSP sub-module for use in the current project, and add it to the
  source files.

  This command will launch System Generator for DSP to let you design the
  hardware portion of your system design. System Generator is a DSP design
  tool from AMD that allows the RTL source files, Simulink and MATLAB
  software models, and C/C++ components of a DSP system to come together in a
  single simulation and implementation environment.

  For more information on using specific features of the tool refer to System
  Generator for DSP Getting Started Guide (UG639).

  You can also add existing DSP model files (.mdl) from System Generator into
  the current project using the add_files command.

  The command returns the name of the DSP module created and added to the
  project.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the DSP module to create and add to the
  current project.

Examples:

  The following example launches System Generator and allows you to define
  and configure the specified DSP module:

    create_sysgen DSP_mod1 
    

See Also:

   *  add_files
   *  generate_target
   *  list_targets
   *  make_wrapper


@@@COMMAND: create_testbench@@@
create_testbench

Description: 
Create testbench for design unit instance

Syntax: 
create_testbench  [-name <arg>] [-mode <arg>] [-type <arg>]
                  [-add_to_simset <arg>] [-runtime <arg>] [-set_as_top]
                  [-force] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-name]           Name of the testbench module
                    Default: testbench
  [-mode]           Simulation mode (behavioral, post-synthesis or 
                    post-implementation)
                    Default: behavioral
  [-type]           Netlist type (functional or timing)
  [-add_to_simset]  Add the generated testbench to the specified simulation 
                    fileset
  [-runtime]        Set simulation runtime
  [-set_as_top]     Set generated testbench module as top
  [-force]          Overwrite existing testbench source file
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
ToolLaunch, Simulation

Description:

  Create testbench for a design unit instance. This command will create a
  functional system verilog based testbench for the scoped hierarchical
  instance. The testbench contains port/signal specification, parameter
  declaration, stimuli vector include file, and module instantiation of the
  selected instance as DUT (Design Under Test).

  The command allows user to add the testbench to an existing or a new
  simulation fileset from which the simulation can be launched.

  Note: The generated testbench is simulator independent.

Arguments:

  -name <arg> - (Optional) Specify the name of the testbench module name.
  Default name is testbench.

  -add_to_simset <arg> - (Optional) Specify name of the simulation fileset to
  which the testbench needs to be added. If this switch is not specified then
  the command will add the testbench to current active simulation fileset.

  -set_as_top - (Optional) Set the generated testbench module as top in the
  simulation fileset where the testbench will be added.

  -mode <arg> - (Optional) Specifies simulation mode. Allowed values are:
  behavioral, post-synthesis, or post-implementation. Default is behavioral.

  -type <arg> - (Optional) Specifies simulation type. Allowed values are:
  functional or timing (not applicable for behavioral mode).

  -force - (Optional) Overwrite existing testbench file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following command will create a testbench for module fifo and add it to
  the sub_design_fifo simulation fileset:

    create_testbench -name fifo -add_to_simset sub_design_fifo

  The following commands will generate VCD file for /top/DUT/fifo/buf_1
  instance of type buf module, record the waveform activity in VCD file for
  2000ns, create a testbench with module named tb, add the testbench to the
  test_buffer simulation fileset and set tb as top module in this fileset:

    generate_vcd_ports {/top/DUT/fifo/buf_1}
        run 2000ns
        close_vcd -ports
        create_testbench -name tb -add_to_simset test_buffer -set_as_top

See also:

   *  generate_vcd_ports

   *  close_vcd

   *  launch_simulation


@@@COMMAND: create_waiver@@@
create_waiver

Description: 
Create a DRC/METHODOLOGY/CDC/LINT message waiver

Syntax: 
create_waiver  [-type <arg>] [-id <arg>] [-objects <args>] [-from <args>]
               [-to <args>] [-strings <args>] [-rtl_name <args>]
               [-rtl_hierarchy <args>] [-rtl_file <args>] [-of_objects <args>]
               [-user <arg>] -description <arg> [-tags <arg>]
               [-timestamp <arg>] [-scoped] [-quiet] [-verbose]

Returns: 
waiver

Usage: 
  Name              Description
  -----------------------------
  [-type]           Type of waiver - DRC, METHODOLOGY, CDC, LINT
  [-id]             ID of the DRC/METHODOLOGY/CDC/LINT message being waived, 
                    not needed for -of_objects use
  [-objects]        List of inserted message objects for which a 
                    DRC/METHODOLOGY waiver will be set (i.e. %ELG, %SIG, etc.
                    for cells or nets, etc., sites, etc., or '*CELL', '*NET',
                    '*SITE', etc. as wildcards
  [-from]           List of source (driver) pins or ports (or '*PORT', '*PIN'
                    as wildcard) for which a CDC waiver will be set
  [-to]             List of target (load) pins or ports (or '*PORT', '*PIN' 
                    as wildcard) for which a CDC waiver will be set
  [-strings]        List of inserted message string values for which a 
                    DRC/METHODOLOGY waiver will be set (i.e. %STR for 
                    strings, or '*' as wildcard)
  [-rtl_name]       List of rtl_name values for the LINT waiver ('*' as 
                    wildcard)
  [-rtl_hierarchy]  List of rtl_hierarchy values for the LINT waiver ('*' as 
                    wildcard)
  [-rtl_file]       List of rtl_file values for the LINT waiver ('*' as 
                    wildcard)
  [-of_objects]     List of DRC/METHODOLOGY/CDC violation objects for which 
                    waiver(s) will be set
  [-user]           Name of the user creating the waiver (required, but if 
                    not specified, the waivers will take the USER name from 
                    the environment if it is available)
  -description      Description string of the cause for the waiver
  [-tags]           Optional list of one or more tags to aid in subsequent 
                    waiver identification or categorization
  [-timestamp]      Timestamp of waiver - for restaining the original time of
                    a waiver being (re)created after being written
  [-scoped]         Flag waiver to interpret object wildcards as scoped to 
                    the current_instance that is set
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Waiver, XDC, DRC, Methodology, CDC, Lint, Object

Description:

  After report_drc, report_methodology, or report_cdc commands are run, they
  return messages of specific violations or conditions found in the design.
  These violations can prevent the design from progressing until they have
  been resolved or addressed in some way. The create_waiver command lets you
  select individual violations or specific checks that can be waived for a
  design, letting you move forward in the design flow.

  Note: Use caution when waiving violations. Waivers may let you proceed in
  the design flow, but also let you create a design that is fundamentally
  flawed.

  The user creating the waiver is required to provide a user ID and
  description in the create_waiver command in order to provide some history
  of the waiver.

  A waiver must be specified for an individual DRC or methodology violation,
  or for a specific DRC or methodology check, or for a CDC path. The waiver
  must be assigned to a specific object, or specific violation ID, or for
  paths using -from/-to arguments. The form of the create_waiver command
  varies depending on the check, violation, or object being waived, as shown
  in the examples below.

  Note: Although many of the arguments are described as optional, some form
  of identifier is required to associate the waiver with its target.

  To save waivers from one design session to the next, you must use
  write_waivers to create an XDC file of the waiver commands, and read_xdc to
  read those waivers back into the design when it is reopened.

  After creating a waiver, you will need to rerun the DRC, methodology, or
  CDC report to have the waiver considered in the analysis. To see what
  waivers are in place in the current design you can use the report_waivers
  command. In addition, the report_drc, report_methodology, and report_cdc
  commands have options to run the reports on waived violations or checks.
  Use the delete_waivers command to remove waivers from the design.

Arguments:

  -type <arg> - (Optional) Specifies the type of waiver to create. Currently
  supports DRC, METHODOLOGY, and CDC.

  -id <arg> - (Optional) Specifies the ID of the check or violation being
  waived. This is not required when using the -of_objects option. The waiver
  associated with the ID can also be further limited by specifying the
  -objects, -from/-to, or the -strings arguments.

  -objects <arg> - (Optional) For DRC and methodology checks and violations,
  this option specifies the object or list of objects that the waiver applies
  to. Objects are specified using the convention of the violation definition
  (e.g. %ELG, %SIG, etc. for cells or nets, etc., sites, etc., or '*CELL',
  '*NET', '*SITE', etc. as wildcards). Refer to the create_drc_check or
  create_drc_violation commands for more information.

  -from <arg> - (Optional) For CDC checks or violations, this option lists
  source (driver) pins or ports (or '*PORT', '*PIN' as wildcard) that the
  waiver applies to.

  -to <arg> - (Optional) For CDC checks or violations, this option lists
  target (load) pins or ports (or '*PORT', '*PIN' as wildcard) that the
  waiver applies to.

  -strings - (Optional) For DRC and methodology checks and violations, this
  option specifies inserted message string values (i.e. %STR for strings, or
  '*' as wildcard) that the waiver applies to.

  -of_objects <arg> - (Optional) Specifies a list of DRC violations as
  returned by get_drc_violations; or a list of methodology violations as
  returned by get_methodology_violations; or a list of CDC violations as
  returned by get_cdc_violations. The defined waiver applies to the specified
  list of violation objects.

  -user <arg> - (Optional) Specifies the user ID of the person responsible
  for creating the waiver. When not specified, the user ID is obtained from
  the OS.

  -description <arg> - (Required) Provides a brief description of the waiver,
  and why it is being applied.

  -tags <arg> - (Optional) Specifies a list of user-defined strings to be
  associated with the waiver. Tags can be used to filter waivers when using
  the get_waivers command.

  -timestamp <arg> - (Optional) Specifies the original time of the waiver as
  it is created. Timestamp must be specified in the form "SUN Aug 6 17:02:21
  GMT 2017". If -timestamp is not specified, the current time is used.

  Note: The following Tcl command specifes the timestamp in local time: clock
  format [clock seconds] -gmt 0

  -scoped - (Optional) Specify that waivers should be interpreted with object
  wildcards as scoped to the current_instance that is set.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  This example creates a waiver for a methodology check based on the
  specified ID:

    create_waiver -id TIMING-18 -user samwise -description {waive rule check} 
    

  The following example creates a DRC check waiver for the indicated ID on
  the specified list of port objects, and provides the timestamp in local
  time:

    create_waiver -type DRC -id UCIO-1 -user samwise -desc {waiving DRC violation} \  
    -objects [get_ports {src_in* dest_out*}] \  
    -timestamp [clock format [clock seconds] -gmt 0] 
    

  The following example creates a waiver for specific CDC paths in the
  design, defined by the -from/-to arguments:

    create_waiver -type CDC -id CDC-6 -user samwise \  
    -description {Paths to be re-tested later}\  
    -from [list [get_pins {inst_xpm_grey/src_gray_ff_reg[3]/C \  
    inst_xpm_grey/src_gray_ff_reg[16]/C \  
    inst_xpm_grey/src_gray_ff_reg[22]/C \  
    inst_xpm_grey/src_gray_ff_reg[25]/C}]  ] \  
    -to [list [get_pins {inst_xpm_grey/dest_graysync_ff_reg[0][1]/D \  
    inst_xpm_grey/dest_graysync_ff_reg[0][6]/D \  
    inst_xpm_grey/dest_graysync_ff_reg[0][9]/D \  
    inst_xpm_grey/dest_graysync_ff_reg[0][24]/D}]  ] 
    

See Also:

   *  current_instance
   *  delete_waivers
   *  get_cdc_violations
   *  get_drc_violations
   *  get_methodology_violations
   *  get_waivers
   *  report_cdc
   *  report_drc
   *  report_methodology
   *  report_waivers
   *  write_waivers


@@@COMMAND: create_xps@@@
create_xps

Description: 
Create embedded source for XPS and add to the source fileset (Not supported anymore. Please use Vivado IP integrator.)

Syntax: 
create_xps  [-quiet] [-verbose] <name>

Returns: 
source file name that was created

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Source name

Categories: 
Project

Description:

  Create an Embedded Processor source for use in the current project, and add
  it to the source files.

  This command will launch the Xilinx Platform Studio (XPS) to let you design
  the hardware portion of the embedded processor system. In XPS you can
  define and configure the microprocessor, peripherals, and the
  interconnection of these components. After you exit XPS, the created files
  for the Embedded Processor sub-design will be written to the local project
  directory (<project_name>.srcs/sources_1/edk/<name> ), and added to the
  source files.

  For more information on using specific features of XPS refer to EDK
  Concepts, Tools, and Techniques (UG683).

  You can also add existing Xilinx Microprocessor Project (.xmp) files from
  XPS in the current project using the add_files command.

  The command returns the name of the Embedded Processor sub-design created.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the Embedded Processor sub-design to create
  and add to the current project.

Examples:

  The following example launches XPS to define and configure the specified
  Embedded Processor sub-design:

    create_xps xpsTest1 
    

See Also:

   *  add_files
   *  generate_target
   *  list_targets
   *  make_wrapper


@@@COMMAND: current_board@@@
current_board

Description: 
Get the current board object

Syntax: 
current_board  [-quiet] [-verbose]

Returns: 
current board object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object, Board

Description:

  Returns the board in use in the current project.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  The board can be specified:

   *  When the project is created by selecting Boards from the Default Part
      dialog box.

   *  By setting the BOARD_PART property on the current project as shown in
      the example.

   *  By selecting the Project Device in the Settings dialog box in an open
      project in the Vivado IDE.

  Refer to the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895) for information on creating projects, and on configuring project
  settings.

  Note: When you specify the board with the set_property command, the target
  part is also changed to match the part required by the specified BOARD
  property.

  The current_board command returns the Vendor:Board_Name:File_Version
  attributes of the current board, as defined in the BOARD_PART property. The
  command returns nothing when the project targets a AMD FPGA instead of a
  TRD and board, or when the BOARD_PART property has not been defined. The
  command returns an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example sets the BOARD property for the current project, then
  reports the board in use by the project:

    set_property BOARD_PART xilinx.com:kc705:1.0 [current_project]  
    current_board  
       xilinx.com:kintex7:kc705:1.0 
    

  This example shows the results of setting the BOARD_PART property, causing
  the target part to be changed as a result. The target part, as defined in
  the PART property, is changed automatically, and a warning is returned:

    set_property BOARD_PART xilinx.com:ac701:1.0 [current_project]  
       WARNING: [Project 1-153] The current project part `xc7k325tffg900-2` does   
       not match with the `XILINX.COM:AC701:1.0` board part settings. The project   
       part will be reset to `XILINX.COM:AC701:1.0` board part. 
    

  Note: You can use the report_property command to check the BOARD_PART and
  PART property on the current_project to see the changes.

See Also:

   *  current_board_part
   *  current_project
   *  get_board_components
   *  get_board_interfaces
   *  get_board_parts
   *  get_board_pins
   *  get_boards
   *  report_property
   *  set_property


@@@COMMAND: current_board_part@@@
current_board_part

Description: 
Get the current board_part object

Syntax: 
current_board_part  [-quiet] [-verbose]

Returns: 
current board_part object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object, Project, Board

Description:

  Return the device used in the current project or design.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  The board part provides a representation of the AMD device in the context
  of the board-level system, and is represented by the part0 component in the
  Board Interface file.

  The board can be specified:

   *  When the project is created by selecting Boards from the Default Part
      dialog box.

   *  By setting the BOARD_PART property on the current project as shown in
      the example.

   *  By selecting the Project Device in the Settings dialog box in an open
      project in the Vivado IDE.

  Refer to the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895) for information on creating projects, and on configuring project
  settings.

  Important: When you specify the board with the set_property command, the
  target part is also changed to match the part required by the specified
  BOARD_PART property.

  The current_board_part command returns the NAME property of the current
  board part. The command returns a warning when the project targets an AMD
  FPGA instead of a board, or when the BOARD_PART property has not been
  defined. The command returns an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example sets the BOARD_PART property for the current project,
  then reports the board part in use by the project:

    set_property BOARD_PART xilinx.com:kc705:part0:1.0 [current_project]
    current_board_part
       xilinx.com:kc705:part0:1.0

  This example shows the results of setting the BOARD_PART property, causing
  the target part to be changed as well. The target part is changed
  automatically, and a warning is returned:

    set_property BOARD_PART xilinx.com:ac701:part0:1.0 [current_project]
    WARNING: [Project 1-153] The current project part `xc7k325tffg900-2`
       does not    match with the `XILINX.COM:AC701:PART0:1.0` board part
       settings. The project part will be reset to `XILINX.COM:AC701:PART0:1.0`
       board part.
    INFO: [Project 1-152] Project part set to artix7 (xc7a200tfbg676-2)

  Note: You can use the report_property command to check the BOARD_PART and
  PART property on the current_project to see the changes.

  The following example shows how to get DEVICE, PACKAGE, SPEED and FAMILY
  properties for the part defined by the PART_NAME property of the current
  board part:

    get_property DEVICE [get_parts [get_property PART_NAME \
       [current_board_part]]]
    get_property PACKAGE [get_parts [get_property PART_NAME \
       [current_board_part]]]
    get_property SPEED [get_parts [get_property PART_NAME \
       [current_board_part]]]
    get_property FAMILY [get_parts [get_property PART_NAME \
       [current_board_part]]]

See Also:

   *  current_project
   *  get_board_components
   *  get_boards
   *  get_board_part_interfaces
   *  get_board_part_pins
   *  get_board_parts
   *  report_property
   *  set_property


@@@COMMAND: current_dashboard@@@
current_dashboard

Description: 
Get the current Project summary dashboard

Syntax: 
current_dashboard  [-quiet] [-verbose] [<dashboard>...]

Usage: 
  Name           Description
  --------------------------
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<dashboard>]  Specify the dashboard to be set as current_dashboard

Categories: 
Project


@@@COMMAND: current_design@@@
current_design

Description: 
Set or get the current design.

Syntax: 
current_design  [-quiet] [-verbose] [<design>]

Returns: 
design object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<design>]  Name of current design to be set

Categories: 
SDC, XDC

Description:

  Defines the current design or returns the name of the current design in the
  active project.

  The current design and current instance are the target of most Tcl
  commands, design edits and constraint changes made in the tool. The current
  instance can be defined using the current_instance command.

  You can use the get_designs command to get a list of open designs in the
  active project, and use the get_projects command to get a list of open
  projects.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <design> - (Optional) The name of design to set as the current design. If a
  <design> is not specified, the command returns the current design of the
  active project.

Examples:

  The following example sets the design rtl_1 as the current design:

    current_design rtl_1  
    

See Also:

   *  current_instance
   *  get_designs
   *  get_projects


@@@COMMAND: current_fileset@@@
current_fileset

Description: 
Get the current fileset (any type) or set the current fileset (applicable to simulation filesets only)

Syntax: 
current_fileset  [-constrset] [-simset] [-quiet] [-verbose] [<fileset>...]

Returns: 
current fileset (the current srcset by default)

Usage: 
  Name          Description
  -------------------------
  [-constrset]  Get the current constraints fileset
  [-simset]     Get the current active simulation fileset
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<fileset>]   Specify the simulation fileset to set as current (active); 
                optional

Categories: 
Project

Description:

  Get the active source, constraint, or simulation fileset within the current
  project.

  When used without any options, current_fileset sets and returns the
  sources_1 set as the active fileset.

  This command can also be used to set the current simulation fileset.

  Note: Use set_property CONSTRSET to define the active constraint set on a
  synthesis or implementation run.

Arguments:

  -constrset - (Optional) Return the currently active constraint set.

  -simset - (Optional) Return or set the currently active simulation fileset.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <fileset> - (Optional) The name of the simulation fileset to make active.
  This argument sets the active simulation fileset in projects with multiple
  filesets. When <fileset> is not specified, the sources_1 fileset is
  returned as the active fileset.

Examples:

  The following example returns the name of the currently active constraint
  fileset:

    current_fileset -constrset 
    

  The following example sets sim_2 as the active simulation set:

    current_fileset -simset sim_2 
    

See Also:

   *  create_fileset
   *  delete_fileset
   *  get_filesets


@@@COMMAND: current_instance@@@
current_instance

Description: 
Set or get the current instance

Syntax: 
current_instance  [-quiet] [-verbose] [<instance>]

Returns: 
instance name

Usage: 
  Name          Description
  -------------------------
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<instance>]  Name of instance

Categories: 
SDC, XDC

Description:

  Set the current instance in the design hierarchy to the specified instance
  cell or to the top of the current design. By default, current_instance
  points to the top module of the current_design, which is not an
  instantiated cell object. You can also set current_instance to reference an
  instantiated hierarchical cell in the design.

  Note: Since the top module is not an instantiated object, current_instance
  returns an empty string rather than a design object, when set to the
  top-level of the current design.

  The current design and current instance are the target of most of the
  commands and design changes you will make. The current design can be
  defined using the current_design command.

  You must specify the <instance> name relative to the currently defined
  instance, and use the established hierarchy separator to define instance
  paths. You can determine the current hierarchy separator with the
  get_hierarchy_separator command.

  Use `..` to traverse up the hierarchical instance path when specifying the
  current instance.

  This command returns the name of the design object of the current_instance,
  or returns nothing when set to the top of current design.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <instance> - (Optional) The name of the instance to be set as the current
  instance of the current design.

   *  The <instance> is specified relative to the presently defined current
      instance, using the defined hierarchy separator.

   *  Use `..` to move up one level of the hierarchy relative to the current
      instance.

   *  If the <instance> argument is omitted, the current instance is reset to
      the top module in the design hierarchy.

   *  If the <instance> is specified as `.` then the name of the current
      instance is returned, and the instance is not changed.

Examples:

  The following example sets the current instance to the top module of the
  current design:

    current_instance  
       INFO: [Vivado 12-618] Current instance is the top level of design `netlist_1`. 
    

  In this example you have selected an object in the Vivado IDE, and you want
  to set that selected object as the current instance:

    current_instance [lindex [get_selected_objects] 0]  
    

  Note: get_selected_objects returns a list, even of one object, so you must
  use lindex to specify an object from that list.

  The following example first sets the hierarchy separator character, and
  then sets the current instance relative to the presently defined current
  instance:

    set_hierarchy_separator |  
    current_instance ..|cpu_iwb_dat_o|buffer_fifo 
    

  The following example returns the name of the presently defined current
  instance:

    current_instance .  
    cpuEngine|cpu_iwb_dat_o|buffer_fifo 
    

See Also:

   *  current_design
   *  get_hierarchy_separator
   *  get_selected_objects
   *  set_hierarchy_separator


@@@COMMAND: current_pr_configuration@@@
current_pr_configuration

Description: 
Get a list of PartitionDefs

Syntax: 
current_pr_configuration  [-quiet] [-verbose] [<config>...]

Returns: 
list of PartitionDef objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<config>]  Specify the PR configuration to be set as current (active); 
              optional

Categories: 
Object, Partition

Description:

  Get or set the current PR configuration.

  In the Dynamic Function eXchange (DFX) design flow, the PR configuration
  lets you specify a reconfigurable module (RM) to assign to a specific
  instance of a Partition Definition (partitionDef). This flow lets you
  create unique configurations of the design based on the combination of the
  core design and one or more RMs. The DFX design flow requires the
  implementation of each PR configuration, resulting in partial bitstreams
  for the RMs, but complete bitstreams for each integrated configuration.
  Refer to the Vivado Design Suite User Guide: Dynamic Function eXchange
  (UG909) for more information.

  The current_pr_configuration either returns the PR configuration that is
  the current or active configfuration in the design, or lets you specify a
  PR configuration to make active.

  This command returns the name of the current PR configuration, or returns
  an error if the command fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <config> - (Optional) Specify a PR configuration to make current. The
  configuration can be specified by name or returned as an object by
  get_pr_configurations. If the configuration is not specified, the current
  PR configuration is returned.

Example:

  The following example sets the current PR configuration as specified:

    current_pr_configuration clockHigh

See Also:

   *  create_partition_def
   *  create_pr_configuration
   *  create_reconfig_module
   *  delete_pr_configurations
   *  get_pr_configurations
   *  setup_pr_configurations


@@@COMMAND: current_project@@@
current_project

Description: 
Set or get current project

Syntax: 
current_project  [-quiet] [-verbose] [<project>]

Returns: 
current or newly set project object

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<project>]  Project to set as current

Categories: 
Project

Description:

  Specifies the current project or returns the current project when no
  project is specified.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <project> - (Optional) The name of the project to make current. This
  command can be used prior to the close_project to make a specific project
  active and then to close the project.

Examples:

  The following example sets project_2 as the current project:

    current_project project_2 
    

  This command makes the current project the focus of all the tool commands.
  In the GUI mode, the current project is defined automatically when
  switching the GUI between projects.

  The following example returns the name of the current project in the tool:

    current_project 
    

  Note: The returned value is the name of the project and not the name or
  path of the project file.

See Also:

   *  close_project
   *  create_project
   *  current_design


@@@COMMAND: current_run@@@
current_run

Description: 
Set or get the current run

Syntax: 
current_run  [-synthesis] [-implementation] [-quiet] [-verbose] [<run>]

Returns: 
run object

Usage: 
  Name               Description
  ------------------------------
  [-synthesis]       Set or get the current synthesis run
  [-implementation]  Set or get the current implementation run (default 
                     unless '-synthesis' is specified)
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  [<run>]            Run to set as current; optional

Categories: 
Project

Description:

  Defines the current synthesis or implementation run, or returns the name of
  the current run. The current run is the one automatically selected when the
  Synthesize or Implement commands are launched.

  You can use the get_runs command to determine the list of defined runs in
  the current design.

Arguments:

  -synthesis - (Optional) Specifies that the current_run command should set
  or return the name of the current synthesis run.

  -implementation - (Optional) Specifies that the current_run command should
  set or return the name of the current implementation run. This is the
  default used when neither -synthesis or -implementation are specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <run> - (Optional) Sets the name of the synthesis or implementation run to
  make the current run.

Examples:

  The following example defines the synth_1 run as the current_run:

    current_run synth_1 
    

  Note: The -synthesis and -implementation arguments are not required because
  the name allows the tool to identify the specific run of interest.

  The following command returns the name of the current implementation run:

    current_run -implementation -quiet 
    

See Also:

   *  create_run
   *  get_runs
   *  launch_runs


@@@COMMAND: current_vivado_preferences@@@
current_vivado_preferences

Description: 
Returns the vivado prefernces object.

Syntax: 
current_vivado_preferences  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
vivado_preferences


@@@COMMAND: customize_kernel@@@
customize_kernel

Description: 
Customize a baseline RTL kernel by assigning values for parameters on the top module to create a new customized kernel while keeping the baseline IP definition the same. The customized kernel cannot be incrementally customized again.

Syntax: 
customize_kernel  -xo_path <arg> [-output_xo_path <arg>] -kernel_name <arg>
                  [-output_kernel <arg>] [-ip_params <args>]
                  [-ip_params_file <arg>] [-target_board <arg>] [-quiet]
                  [-verbose]

Returns: 
Path to destination object file

Usage: 
  Name               Description
  ------------------------------
  -xo_path           Absolute path to the object file that contains the named
                     kernel
  [-output_xo_path]  Write results to the given .xo file, leaving input file 
                     unmodified
  -kernel_name       Kernel to customize
  [-output_kernel]   A kernel name. Must differ from the value specified by 
                     -kernel_name
  [-ip_params]       Customize RTL based IP used by the kernel. A list of 
                     config name/value pairs.
  [-ip_params_file]  Customize RTL based IP used by the kernel. Reads input 
                     from file.
  [-target_board]    Customize DCP based IP used by the kernel. Add the 
                     support for the target board.
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution

Categories: 
Vitis, Acceleration, FileIO


@@@COMMAND: decrypt_bitstream@@@
decrypt_bitstream

Description: 
Decrypt an AES-GCM encrypted bitstream

Syntax: 
decrypt_bitstream  -encrypted_file <arg> -keyfile <arg> [-force] [-quiet]
                   [-verbose] <file>

Usage: 
  Name             Description
  ----------------------------
  -encrypted_file  Input AES-GCM encrypted bitstream (.bit or .rbt)
  -keyfile         File containing encryption keys
  [-force]         Overwrite existing file
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <file>           Output decrypted bitstream (.bit, .bin or .rbt)

Categories: 
FileIO

Description:

  During implementation of secure encrypted AMD UltraScale architecture
  designs, bitstream-level verification must be performed on the final
  bitstream against the "golden" bitstream of the AMD tested Security Monitor
  (SecMon) IP.

  The decrypt_bitstream command takes an AES-GCM encrypted bitstream file
  (.bit or .rbt) from an implemented design that incorporates the SecMon IP,
  and an encryption key file (.nky or .nkz), and returns an unencrypted
  bitstream file. The decrypted bitstream can then be used to complete the
  bitstream verification process.

  This command returns the requested file if successful, or returns an error
  if it fails.

Arguments:

  -encrypted_file <arg> - (Required) Specifies the AES-GCM encrypted
  bitstream (.bit or .rbt) to be decrypted.

  -keyfile <arg> - (Required) Specifies the name of the encryption key file
  (.nky or .nkz). This is necessary for decrypting the encrypted bitstream.

  -force - (Optional) Overwrite an existing file of the same name.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Write the decrypted bitstream in standard format (.bit)
  or without header information (.bin).

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Example:

  The following example decrypts the specified encrypted bitstream:

    decrypt_bitstream -encrypted_file C:/Data/myDesign.bit \
       -keyfile C:/Data/key.nky -force C:/Data/myDesign_decrypted.bit

See Also:

   *  write_bitstream


@@@COMMAND: delete_clock_networks_results@@@
delete_clock_networks_results

Description: 
Clear a set of clock networks results from memory

Syntax: 
delete_clock_networks_results  [-quiet] [-verbose] <name>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name for the set of results to clear

Categories: 
Report

Description:

  Clear the results of the specified report_clock_networks report from the
  named result set.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specifies the name of the clock networks results to be
  cleared.

Examples:

  The following example clears the specified results set from memory:

    delete_clock_network_results ClkNets 
    

See Also:

   *  report_clock_networks


@@@COMMAND: delete_dashboard@@@
delete_dashboard

Description: 
Delete the Project summary dashboard

Syntax: 
delete_dashboard  -name <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -name       Name of the dashboard
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project


@@@COMMAND: delete_dashboard_gadgets@@@
delete_dashboard_gadgets

Description: 
Deletes the gadgets from project summary dashboard

Syntax: 
delete_dashboard_gadgets  [-quiet] [-verbose] <gadgets>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <gadgets>   Gadgets to delete

Categories: 
Project

Description:

  This command removes the gadget from the Project Summary dashboard, and
  removes it from the project.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <gadgets> - (Required) Specifies the dashboard gadgets to delete. Gadgets
  can be specified by name, or returned by the get_dashboard_gadgets command.

Example:

  The following example deletes the specified gadget:

    delete_dashboard_gadget gadget_power

See Also:

   *  create_dashboard_gadget
   *  get_dashboard_gadgets
   *  move_dashboard_gadget


@@@COMMAND: delete_debug_core@@@
delete_debug_core

Description: 
Delete a debug core

Syntax: 
delete_debug_core  [-quiet] [-verbose] <cores>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <cores>     Debug cores to delete

Categories: 
Debug

Description:

  Removes Vivado Lab Edition debug cores from the current project that were
  added by the create_debug_core command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cores> - (Required) One or more debug core names to remove from the
  current project.

Examples:

  The following command deletes the myCore debug core from the current project:

    delete_debug_core myCore 
    

  The following command deletes all debug cores from the current project:

    delete_debug_core [get_debug_cores] 
    

  Note: The get_debug_cores command returns all debug cores as a default.

See Also:

   *  create_debug_core
   *  get_debug_cores


@@@COMMAND: delete_debug_port@@@
delete_debug_port

Description: 
Delete debug port

Syntax: 
delete_debug_port  [-quiet] [-verbose] <ports>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <ports>     Debug ports to delete

Categories: 
Debug

Description:

  Deletes ports from Vivado Lab Edition debug cores in the current project.
  You can disconnect a signal from a debug port using disconnect_debug_port,
  or remove the port altogether using this command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ports> - (Required) The <core_name>/<port_name> of the debug port to be
  removed from the core.

Examples:

  The following example deletes the DATA port from myCore:

    delete_debug_port myCore/DATA 
    

  Note: Some ports cannot be deleted because an ILA port requires one CLK
  port and one TRIG port as a minimum.

  The following example deletes the trigger ports (TRIG) from the myCore
  debug core:

    delete_debug_port [get_debug_ports myCore/TRIG*] 
    

  Note: This example will not delete all TRIG ports from myCore, because an
  ILA core must have at least one TRIG port. The effect of this command will
  be to delete the TRIG ports starting at TRIG0 and removing all of them
  except the last port.

See Also:

   *  disconnect_debug_port
   *  get_debug_ports


@@@COMMAND: delete_drc_check@@@
delete_drc_check

Description: 
Delete one or more user-defined DRC checks.

Syntax: 
delete_drc_check  [-quiet] [-verbose] <name>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Specify the key for the check to remove.  This is the typically
              of the form PREFIX-id where PREFIX is a 4-6 letter abbreviation
              and id is a unique identifier.  Use get_drc_checks to determine
              the correct name to use. Only user-defined DRC checks may be 
              deleted.

Categories: 
DRC, Object

Description:

  Delete a single user-defined design rule check from the current project.
  User-defined design rule checks are created using the create_drc_checks
  command.

  Note: You cannot delete factory defined rule checks.

  Once it has been deleted there is no way to recover a rule check. The undo
  command will not work.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specify the name of a user-defined design rule check to
  be deleted from the current project.

Examples:

  The following example deletes the specified design rule check:

    delete_drc_check LJH-1 
    

See Also:

   *  create_drc_check


@@@COMMAND: delete_drc_ruledeck@@@
delete_drc_ruledeck

Description: 
Delete one or more user defined DRC rule deck objects

Syntax: 
delete_drc_ruledeck  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
                     [<patterns>]

Returns: 
drc_ruledeck

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching. (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match the 'drc_ruledeck' objects against patterns.
                Default: *

Categories: 
DRC, Object

Description:

  Delete one or more user-defined drc_ruledeck objects from the current
  project. The rule deck does not have to be empty to be deleted, and once it
  is deleted there is no way to recover it. The undo command will not restore
  a deleted rule deck.

  Note: You cannot delete factory defined rule decks.

  A rule deck is a collection of design rule checks grouped for convenience,
  to be run with the report_drc command at different stages of the FPGA
  design flow, such as during I/O planning or placement. The tool comes with
  a set of factory defined rule decks, but you can also create new
  user-defined rule decks with the create_drc_ruledeck command.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  the search pattern, based on specified property values. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Delete the drc_ruledeck objects that match the
  specified patterns. The default pattern is the wildcard `*` which deletes
  all user-defined rule decks from the current project. More than one pattern
  can be specified to delete multiple rule decks based on different search
  criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example deletes all user-defined rule decks from the current
  project:

    delete_drc_ruledeck 
    

See Also:

   *  create_drc_ruledeck
   *  list_property
   *  report_property


@@@COMMAND: delete_fileset@@@
delete_fileset

Description: 
Delete a fileset

Syntax: 
delete_fileset  [-merge <arg>] [-quiet] [-verbose] <fileset>

Usage: 
  Name        Description
  -----------------------
  [-merge]    Fileset to merge files from the deleted fileset into
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <fileset>   Fileset to be deleted

Categories: 
Project, Simulation

Description:

  Deletes the specified fileset. However, if the fileset cannot be deleted,
  then no message is returned.

Arguments:

  -merge <arg> - (Optional) Specify a different fileset to merge the files
  from the deleted fileset into. If the -merge option is not specified, then
  all files in the fileset are removed from the project.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <fileset> - (Required) The name of the fileset to delete. The last
  constraint or simulation fileset will not be deleted, and no error will be
  returned under these circumstances.

Examples:

  The following example deletes the sim_2 fileset from the current project.

    delete_fileset sim_2 
    

  Note: The fileset and all of its files are removed from the project. The
  files are not removed from the hard drive.

See Also:

   *  create_fileset
   *  current_fileset


@@@COMMAND: delete_interface@@@
delete_interface

Description: 
Delete I/O port interfaces from the project

Syntax: 
delete_interface  [-all] [-quiet] [-verbose] <interfaces>...

Usage: 
  Name          Description
  -------------------------
  [-all]        Also remove all of the ports and buses belonging to the 
                interface
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <interfaces>  I/O port interfaces to remove

Categories: 
PinPlanning

Description:

  Deletes an existing interface and optionally deletes all of the associated
  ports and buses using the interface.

Arguments:

  -all - (Optional) Delete all ports, buses, or nested interfaces associated
  with the specified interface.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <interfaces> - (Required) The name of interfaces to delete.

Examples:

  The following example deletes the specified interface and all of its
  associated ports and buses:

    delete_interface USB0 
    

See Also:

   *  create_interface
   *  create_port


@@@COMMAND: delete_ip_run@@@
delete_ip_run

Description: 
Deletes the block fileset and run associated with a given IP.

Syntax: 
delete_ip_run  [-force] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-force]    Force the deletion of the block fileset and run.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   All of the IP objects (from get_ips or get_files) for which the
              block fileset and run will be deleted.

Categories: 
Project, IPFlow

Description:

  Deletes the out-of-context (OOC) synthesis and implementation runs for the
  specified IP module.

  The contents of the run directory are deleted from the project as well as
  the run. However, the output products created by the run and copied to the
  IP sources folder, the DCP file and Verilog and VHDL structural netlists,
  are not deleted from the project. You must use the reset_target or
  generate_target command to update the IP output products.

  Note: The command requires an IP object as specified by the get_ips or
  get_files command, and will not delete a run based on either the name of
  the run, or a run object as returned by get_runs.

Arguments:

  -force - Force the deletion of the run.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) The IP object or file to delete the run from. An IP
  can be specified as an object using the get_ips command, or as a file (XCI)
  using the get_files command.

Examples:

  The following example deletes the OOC synthesis and implementation runs
  from the specified IP module:

    delete_ip_run [get_ips add1] 
    

  Note: In this example, all run results will also be removed from the run
  directory on the hard drive.

See Also:

   *  create_ip_run
   *  generate_target
   *  get_files
   *  get_ips
   *  reset_target


@@@COMMAND: delete_macros@@@
delete_macros

Description: 
Delete a list of macros

Syntax: 
delete_macros  [-quiet] [-verbose] <macros>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <macros>    Macros to delete

Categories: 
XDC

Description:

  Delete one or more macro defined by the create_macro command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <macros> - (Required) Specify the name or names of the macros to delete.

Examples:

  The following example deletes a macro called usbMacro1:

    
    delete_macros usbMacro1 
    

See Also:

   *  create_macro


@@@COMMAND: delete_noc_connection@@@
delete_noc_connection

Description: 
Delete NOC Connection.

Syntax: 
delete_noc_connection  [-quiet] [-verbose] <connection>

Usage: 
  Name          Description
  -------------------------
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <connection>  NOC Connection to delete.

Categories: 



@@@COMMAND: delete_noc_interface@@@
delete_noc_interface

Description: 
Delete NOC Interface.

Syntax: 
delete_noc_interface  [-quiet] [-verbose] <interface>

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <interface>  NOC Interface to delete.

Categories: 



@@@COMMAND: delete_partition_defs@@@
delete_partition_defs

Description: 
Delete existing PartitionDefs

Syntax: 
delete_partition_defs  [-merge <arg>] [-quiet] [-verbose] <partition_defs>

Usage: 
  Name              Description
  -----------------------------
  [-merge]          Fileset to merge files into from the default RM of deleted 
                    Partition Def
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <partition_defs>  List of PartitionDefs to delete

Categories: 
Partition

Description:

  Delete the specified Partition Definition (partitionDef) objects from the
  current project.

  This command returns a transcript of the file merge process, returns
  nothing without file merge, or returns an error if the command fails.

Arguments:

  -merge <arg> - (Optional) Specify the name of a fileset to merge files from
  the default Reconfigurable Module (DEFAULT_RM) of a deleted partitionDef
  object. The files will be moved from the default RM to the specified
  fileset.

  Note: If -merge is not specified, then all files in the default RM are
  removed from the project.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <partition_defs> - (Required) Specify one or more partitionDef objects to
  remove from the current project. The partitionDef objects can be specified
  by name, or as objects returned by the get_partition_defs command.

Example:

  The following example deletes all the partitionDefs from the current
  design, merging files from the default RMs of each partition into the
  source fileset for the design:

    delete_partition_defs -merge sources_1 [get_partition_defs]  
    

See Also:

   *  create_partition_def
   *  get_partition_defs


@@@COMMAND: delete_pblocks@@@
delete_pblocks

Description: 
Remove Pblock

Syntax: 
delete_pblocks  [-hier] [-quiet] [-verbose] <pblocks>...

Usage: 
  Name        Description
  -----------------------
  [-hier]     Also delete all the children of Pblock
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <pblocks>   Pblocks to delete

Categories: 
Floorplan, XDC

Description:

  Deletes the specified Pblocks from the design. Pblocks are created using
  the create_pblock command.

Arguments:

  -hier - (Optional) Specifies that Pblocks nested inside the specified
  Pblock should also be deleted. If the parent Pblock is deleted without the
  -hier option specified, the nested Pblocks will simply be moved up one
  level.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pblocks> - (Required) One or more Pblocks to be deleted.

Examples:

  The following example deletes the specified Pblock as well as any Pblocks
  nested inside:

    delete_pblocks -hier cpuEngine 
    

See Also:

   *  create_pblock


@@@COMMAND: delete_power_rails@@@
delete_power_rails

Description: 
Delete a Power Rail

Syntax: 
delete_power_rails  [-quiet] [-verbose] <power_rail>

Usage: 
  Name          Description
  -------------------------
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <power_rail>  power rail to delete

Categories: 
XDC, Floorplan


@@@COMMAND: delete_power_results@@@
delete_power_results

Description: 
Delete power results that were stored in memory under a given name.

Syntax: 
delete_power_results  -name <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -name       Name for the set of results to clear
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Power

Description:

  Deletes the power analysis results for the specified results set.

  Note: This command operates silently and does not return direct feedback of
  its operation

Arguments:

  -name <arg> - (Required) The name of the results set to delete. This name
  was either explicitly defined, or was automatically defined when the
  report_power command was run.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example runs power analysis, and then clears the results:

    report_power -name my_set  
    delete_power_results -name my_set 
    

See Also:

   *  power_opt_design
   *  report_power
   *  reset_switching_activity
   *  set_switching_activity


@@@COMMAND: delete_pr_configurations@@@
delete_pr_configurations

Description: 
Delete existing configurations

Syntax: 
delete_pr_configurations  [-quiet] [-verbose] <configs>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <configs>   List of Configurations to delete

Categories: 
Partition

Description:

  Delete the specified PR configuration from the current project.

  This command returns nothing if successful, or returns an error if the
  command fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <configs> - (Required) Specify one or more PR configuration objects to
  remove from the current project. The configurations can be specified by
  name, or as objects returned by the get_pr_configurations command.

Example:

  The following example deletes the specified PR configuration:

    delete_pr_configurations [get_pr_configurations clockHigh] 
    

See Also:

   *  create_pr_configuration
   *  get_pr_configurations
   *  setup_pr_configurations


@@@COMMAND: delete_property@@@
delete_property

Description: 
Delete user defined property for class of object(s)

Syntax: 
delete_property  [-quiet] [-verbose] <name> <class>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of property to delete
  <class>     Object type to delete property for; valid values are: design, 
              net, cell, pin, port, pblock, interface, fileset

Categories: 
PropertyAndParameter


@@@COMMAND: delete_qor_check@@@
delete_qor_check

Description: 
Delete a user QoR suggestion check

Syntax: 
delete_qor_check  [-quiet] [-verbose] <name>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Suggestion ID of user suggestion to delete

Categories: 
Object, Feasibility, Timing


@@@COMMAND: delete_qor_ruledeck@@@
delete_qor_ruledeck

Description: 
Delete a user QoR ruledeck

Syntax: 
delete_qor_ruledeck  [-quiet] [-verbose] <name>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of QoR ruledeck to delete

Categories: 
Object, Feasibility, Timing


@@@COMMAND: delete_qor_suggestions@@@
delete_qor_suggestions

Description: 
Deletes a list of available QoR suggestions

Syntax: 
delete_qor_suggestions  [-quiet] [-verbose] [<IDs>]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<IDs>]     Match suggestion names against given names

Categories: 
Object, Feasibility, Timing

Description:

  Removes QoR suggestion objects that are currently in memory. Suggestion
  objects are generated running the report_qor_suggestion command, without
  specifying -of_objects, and by reading an RQS file using the
  read_qor_suggestions command. You can get QoR objects by using the
  get_qor_suggestions command.

Arguments:

  <IDs> - (Required) A TCL list of suggestion object IDs. IDs can be returned
  using the get_qor_suggestions command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following deletes all the suggestion objects in memory:

    delete_qor_suggestions [get_qor_suggestions]

  The following deletes only the Utilization suggestions:

    delete_qor_suggestions [get_qor_suggestions -filter {CATEGORY==Utilization}]

See Also:

   *  get_qor_suggestions
   *  read_qor_suggestions
   *  report_qor_assessment
   *  write_qor_suggestions


@@@COMMAND: delete_reconfig_modules@@@
delete_reconfig_modules

Description: 
Delete existing reconfig modules

Syntax: 
delete_reconfig_modules  [-merge <arg>] [-quiet] [-verbose] <rms>

Usage: 
  Name        Description
  -----------------------
  [-merge]    Fileset to merge files into from the deleted Reconfig Module
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <rms>       List of Reconfig Modules to delete

Categories: 
Partition

Description:

  Delete the specified reconfigurable modules (RMs) from the current project.

  This command returns nothing if successful, or returns an error if the
  command fails.

Arguments:

  -merge <arg> - (Optional) Specify the name of a fileset to merge files from
  the deleted RM. The files will be moved from the deleted RM to the
  specified fileset.

  Note: If -merge is not specified, then all files in the deleted RM are
  removed from the project.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <rms> - (Required) Specify one or more RM objects to remove from the
  current project. The RMs can be specified by name, or as objects returned
  by the get_reconfigurable_modules command.

Example:

  The following example deletes the specified RM:

    delete_reconfig_modules usbBlock 
    

See Also:

   *  create_reconfig_module
   *  get_reconfig_modules


@@@COMMAND: delete_report_configs@@@
delete_report_configs

Description: 
Delete a set of existing configurable report objects

Syntax: 
delete_report_configs  [-quiet] [-verbose] <report_configs>...

Usage: 
  Name              Description
  -----------------------------
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <report_configs>  List of configurable report objects to delete

Categories: 
Object, Report

Description:

  Removes specified report objects from the current project. The report
  objects are created by the create_report_config command.

  This command returns nothing if successful, or an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <report_configs> - (Required) Specifies the list of report objects to
  remove from the current project. The reports must be specified as objects
  returned by the get_report_configs command.

Examples:

  The following example deletes the specified report_config object:

    delete_report_configs [get_report_configs post_route_datasheet] 
    

See Also:

   *  create_report_config
   *  get_report_configs


@@@COMMAND: delete_rpm@@@
delete_rpm

Description: 
Delete an RPM

Syntax: 
delete_rpm  [-quiet] [-verbose] <rpm>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <rpm>       RPM to delete

Categories: 
Floorplan

Description:

  Deletes the specified Relationally Placed Macro (RPM) from the design.

  An RPM is a list of logic elements (FFS, LUT, CY4, RAM, etc.) collected
  into a set (U_SET, H_SET, and HU_SET). The placement of each element within
  the set, relative to other elements of the set, is controlled by Relative
  Location Constraints (RLOCs). Logic elements with RLOC constraints and
  common set names are associated in an RPM. Refer to the Constraints Guide
  (UG625) for more information on defining these constraints.

  Only user-defined RPMs can be deleted from the design. RPMs defined by the
  hierarchy or defined in the netlist cannot be deleted by this command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <rpm> - (Required) The RPM to be deleted.

Examples:

  The following example deletes the specified RPM (cs_ila_0/U0) from the
  design:

    delete_rpm cs_ila_0/U0 
    


@@@COMMAND: delete_runs@@@
delete_runs

Description: 
Delete existing runs

Syntax: 
delete_runs  [-noclean_dir] [-quiet] [-verbose] <runs>

Usage: 
  Name            Description
  ---------------------------
  [-noclean_dir]  Do not remove all output files and directories from disk
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <runs>          Run to modify

Categories: 
Project

Description:

  Deletes the specified runs from the project, and deletes all results of the
  run from the project directory on the hard drive unless otherwise
  specified.

Arguments:

  -noclean_dir - Do not delete the run results from the hard drive. The run
  will be deleted from the project, but the run files will remain in the
  project directory.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <runs> - (Required) The names of the synthesis or implementation runs to
  delete from the project.

Examples:

  The following example deletes the first_pass run from the project:

    delete_runs first_pass 
    

  Note: In this example, all run results will also be removed from the
  project directory on the hard drive.

  The following command deletes the first_pass run, but leaves the run
  results on the hard drive:

    delete_runs -noclean_dir first_pass 
    

See Also:

   *  create_run
   *  current_run


@@@COMMAND: delete_timing_results@@@
delete_timing_results

Description: 
Clear a set of timing results from memory

Syntax: 
delete_timing_results  [-type <arg>] [-quiet] [-verbose] <name>

Usage: 
  Name        Description
  -----------------------
  [-type]     Type of timing results to clear; Values: bus_skew, 
              check_timing, clock_interaction, clock_domain_crossings, 
              config_timing, datasheet, pulse_width, slack_histogram, 
              timing_path, timing_summary
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name for the set of results to clear

Categories: 
Report, Timing

Description:

  Clear the specified timing results from the named result set. Both the type
  of the timing report, and the name of the timing report must be specified,
  or the command will fail.

Arguments:

  -type <arg> - (Optional) Specifies the type of timing results to be
  cleared. The available types are:

   *  bus_skew - Delete the named report_bus_skew report .

   *  check_timing - Delete the named check_timing report.

   *  clock_interaction - Delete the named report_clock_interaction report.

   *  clock_domain_crossing - Delete the named CDC report.

   *  config_timing - Delete the current Timing COnfig report.

   *  datasheet - Delete the named report_datasheet report.

   *  pulse_width - Delete the named report_pulse_width report.

   *  slack_histogram - Delete the named create_slack_histogram report.

   *  timing_path - Delete the named report_timing report.

   *  timing_summary - Delete the named report_timing_summary report.

  Note: The default -type is timing_path, to delete reports generated by the
  report_timing command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specifies the name of the timing results to be cleared.

Examples:

  The following example clears the specified results set from memory:

    delete_timing_results -type clock_interaction clkNets 
    

See Also:

   *  check_timing
   *  create_slack_histogram
   *  report_bus_skew
   *  report_clock_interaction
   *  report_cdc
   *  report_config_timing
   *  report_datasheet
   *  report_pulse_width
   *  report_timing
   *  report_timing_summary


@@@COMMAND: delete_utilization_results@@@
delete_utilization_results

Description: 
Delete utilization results that were stored in memory under a given name.

Syntax: 
delete_utilization_results  -name <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -name       Name for the set of results to clear
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Report

Description:

  Clear the specified utilization results from the named result set.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -name <arg> - (Required) Specifies the name of the results to be cleared.

Examples:

  The following example clears the specified results set from memory:

    delete_utilization_results -name SSO1 
    

See Also:

   *  report_utilization


@@@COMMAND: delete_waivers@@@
delete_waivers

Description: 
Delete one or more DRC/METHODOLOGY/CDC message waivers

Syntax: 
delete_waivers  [-scoped] [-quiet] [-verbose] [<objects>...]

Usage: 
  Name         Description
  ------------------------
  [-scoped]    Flag waiver to interpret object wildcards as scoped to the 
               current_instance that is set
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<objects>]  List of waiver objects, or a list of message objects (cells, 
               nets, sites, etc.) for which DRC/METHODOLOGY waiver(s) were set

Categories: 
Waiver, Object

Description:

  After report_drc, report_methodology, or report_cdc commands are run, they
  return messages of specific violations or conditions found in the design.
  These violations can prevent the design from progressing until they have
  been resolved or addressed in some way. The create_waiver command lets you
  select individual violations or specific checks that can be waived for a
  design, letting you move forward in the design flow.

  Use the delete_waivers command to remove waivers from the design.

Arguments:

  -scoped - (Optional) Specify that waivers should be interpreted with object
  wildcards as scoped to the current_instance that is set.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) List of waiver objects as returned by get_waivers.

Examples:

  This example deletes all the DRC waivers in the design:

    delete_waivers [get_waivers -type DRC] 
    

See Also:

   *  create_waiver
   *  current_instance
   *  get_waivers
   *  report_cdc
   *  report_drc
   *  report_methodology


@@@COMMAND: device_enable@@@
device_enable

Description: 
Enable specified devices

Syntax: 
device_enable  [-quiet] [-verbose] <enable>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <enable>    Enable the given part

Categories: 
Debug


@@@COMMAND: dict@@@
dict(n)               Tcl Built-In Commands               dict(n)



_________________________________________________________________

NAME
       dict - Manipulate dictionaries

SYNOPSIS
       dict option arg ?arg ...?
_________________________________________________________________

DESCRIPTION
       Performs one of several operations on dictionary values or
       variables containing dictionary values (see the DICTIONARY
       VALUES  section  below  for  a  description), depending on
       option.  The legal options (which may be abbreviated) are:

       dict append dictionaryVariable key ?string ...?
              This  appends  the given string (or strings) to the
              value that the given key maps to in the  dictionary
              value  contained in the given variable, writing the
              resulting dictionary value back to  that  variable.
              Non-existent  keys are treated as if they map to an
              empty string.

       dict create ?key value ...?
              Create a new dictionary that contains each  of  the
              key/value  mappings  listed  as arguments (keys and
              values alternating, with each key being followed by
              its associated value.)

       dict exists dictionaryValue key ?key ...?
              This returns a boolean value indicating whether the
              given key (or path of keys through a set of  nested
              dictionaries) exists in the given dictionary value.
              This returns a true value exactly when dict get  on
              that path will succeed.

       dict filter dictionaryValue filterType arg ?arg ...?
              This  takes  a  dictionary  value and returns a new
              dictionary that contains just those key/value pairs
              that  match the specified filter type (which may be
              abbreviated.)  Supported filter types are:

              dict filter dictionaryValue key globPattern
                     The key rule only  matches  those  key/value
                     pairs whose keys match the given pattern (in
                     the style of string match.)

              dict filter dictionaryValue script  {keyVar  value-
              Var} script
                     The  script  rule  tests  for  matching   by
                     assigning  the  key  to  the  keyVar and the
                     value to the valueVar, and  then  evaluating
                     the  given  script  which  should  return  a
                     boolean value (with the key/value pair  only
                     being  included  in  the  result of the dict
                     filter when a true value is returned.)  Note
                     that  the  first  argument  after  the  rule
                     selection word is a  two-element  list.   If
                     the  script  returns  with  a  condition  of
                     TCL_BREAK, no further  key/value  pairs  are
                     considered  for  inclusion  in the resulting
                     dictionary, and a condition of  TCL_CONTINUE
                     is   equivalent   to  a  false  result.  The
                     key/value pairs are tested in the  order  in
                     which  the  keys were inserted into the dic-
                     tionary.

              dict filter dictionaryValue value globPattern
                     The value rule only matches those  key/value
                     pairs  whose  values match the given pattern
                     (in the style of string match.)

       dict for {keyVar valueVar} dictionaryValue body
              This command takes three  arguments,  the  first  a
              two-element list of variable names (for the key and
              value respectively of each mapping in  the  dictio-
              nary),  the  second the dictionary value to iterate
              across, and the third a script to be evaluated  for
              each  mapping  with the key and value variables set
              appropriately (in  the  manner  of  foreach.)   The
              result  of  the  command is an empty string. If any
              evaluation  of  the  body  generates  a   TCL_BREAK
              result,  no  further pairs from the dictionary will
              be iterated over and the dict for command will ter-
              minate  successfully immediately. If any evaluation
              of the body generates a TCL_CONTINUE  result,  this
              shall  be  treated  exactly  like  a  normal TCL_OK
              result. The order of  iteration  is  the  order  in
              which the keys were inserted into the dictionary.

       dict get dictionaryValue ?key ...?
              Given a dictionary value (first argument) and a key
              (second argument), this will retrieve the value for
              that  key.  Where  several  keys  are supplied, the
              behaviour of the command shall be as if the  result
              of  dict  get $dictVal $key was passed as the first
              argument to dict get with the  remaining  arguments
              as second (and possibly subsequent) arguments. This
              facilitates lookups  in  nested  dictionaries.  For
              example, the following two commands are equivalent:
                     dict get $dict foo bar spong
                     dict get [dict get [dict get $dict foo] bar] spong
              If no keys are provided, dict would return  a  list
              containing pairs of elements in a manner similar to
              array get. That is, the first element of each  pair
              would  be  the  key and the second element would be
              the value for that key.

              It is an error to attempt to retrieve a value for a
              key that is not present in the dictionary.

       dict incr dictionaryVariable key ?increment?
              This  adds  the  given  increment value (an integer
              that defaults to 1 if not specified) to  the  value
              that  the given key maps to in the dictionary value
              contained  in  the  given  variable,  writing   the
              resulting  dictionary  value back to that variable.
              Non-existent keys are treated as if they map to  0.
              It is an error to increment a value for an existing
              key if that value is not an integer.

       dict info dictionaryValue
              This returns information (intended for  display  to
              people)  about the given dictionary though the for-
              mat of this data is dependent on the implementation
              of the dictionary. For dictionaries that are imple-
              mented by hash tables, it  is  expected  that  this
              will  return  the string produced by Tcl_HashStats,
              similar to array info.

       dict keys dictionaryValue ?globPattern?
              Return a list of all keys in the  given  dictionary
              value.  If  a  pattern is supplied, only those keys
              that match it (according to  the  rules  of  string
              match)  will be returned. The returned keys will be
              in the order that they were inserted into the  dic-
              tionary.

       dict lappend dictionaryVariable key ?value ...?
              This appends the given items to the list value that
              the given key maps to in the dictionary value  con-
              tained in the given variable, writing the resulting
              dictionary value back to that  variable.  Non-exis-
              tent  keys  are  treated as if they map to an empty
              list, and it is legal for there to be no  items  to
              append  to  the  list. It is an error for the value
              that the key maps to to not be representable  as  a
              list.

       dict merge ?dictionaryValue ...?
              Return  a  dictionary that contains the contents of
              each of the dictionaryValue arguments.   Where  two
              (or  more)  dictionaries  contain a mapping for the
              same key, the resulting dictionary maps that key to
              the  value  according to the last dictionary on the
              command line containing a mapping for that key.

       dict remove dictionaryValue ?key ...?
              Return a new dictionary that is a copy  of  an  old
              one passed in as first argument except without map-
              pings for each of the keys listed.  It is legal for
              there  to  be  no keys to remove, and it also legal
              for any of the keys to be removed to not be present
              in the input dictionary in the first place.

       dict replace dictionaryValue ?key value ...?
              Return  a  new  dictionary that is a copy of an old
              one passed in as first argument  except  with  some
              values  different  or  some  extra  key/value pairs
              added. It is legal for this command  to  be  called
              with  no key/value pairs, but illegal for this com-
              mand to be called with a key but no value.

       dict set dictionaryVariable key ?key ...? value
              This operation takes the name of  a  variable  con-
              taining  a  dictionary  value and places an updated
              dictionary value in that variable containing a map-
              ping  from  the  given key to the given value. When
              multiple keys are present, this  operation  creates
              or updates a chain of nested dictionaries.

       dict size dictionaryValue
              Return  the  number  of  key/value  mappings in the
              given dictionary value.

       dict unset dictionaryVariable key ?key ...?
              This operation (the companion to  dict  set)  takes
              the  name  of  a  variable  containing a dictionary
              value and places an  updated  dictionary  value  in
              that  variable  that does not contain a mapping for
              the given key. Where  multiple  keys  are  present,
              this  describes  a path through nested dictionaries
              to the mapping to remove. At least one key must  be
              specified,  but  the  last key on the key-path need
              not exist.  All other components on the  path  must
              exist.

       dict  update  dictionaryVariable  key varName ?key varName
       ...? body
              Execute  the  Tcl script in body with the value for
              each key (as found by reading the dictionary  value
              in  dictionaryVariable) mapped to the variable var-
              Name. There may be multiple key/varName pairs. If a
              key does not have a mapping, that corresponds to an
              unset varName. When body  terminates,  any  changes
              made  to the varNames is reflected back to the dic-
              tionary within dictionaryVariable  (unless  dictio-
              naryVariable  itself  becomes  unreadable, when all
              updates are silently discarded), even if the result
              of  body  is  an error or some other kind of excep-
              tional exit. The result of dict update  is  (unless
              some kind of error occurs) the result of the evalu-
              ation of body. Note that the mapping of  values  to
              variables  does not use traces; changes to the dic-
              tionaryVariable's contents only  happen  when  body
              terminates.

       dict values dictionaryValue ?globPattern?
              Return a list of all values in the given dictionary
              value. If a pattern is supplied, only those  values
              that  match  it  (according  to the rules of string
              match) will be returned. The returned  values  will
              be  in  the  order of that the keys associated with
              those values were inserted into the dictionary.

       dict with dictionaryVariable ?key ...? body
              Execute the Tcl script in body with the  value  for
              each  key in dictionaryVariable mapped (in a manner
              similarly to dict update) to a  variable  with  the
              same  name.  Where  one or more keys are available,
              these indicate a chain of nested dictionaries, with
              the  innermost  dictionary being the one opened out
              for the execution of body.  As  with  dict  update,
              making  dictionaryVariable unreadable will make the
              updates to the dictionary be  discarded,  and  this
              also  happens if the contents of dictionaryVariable
              are adjusted so that the chain of  dictionaries  no
              longer  exists.  The result of dict with is (unless
              some kind of error occurs) the result of the evalu-
              ation  of  body. Note that the mapping of values to
              variables does not use traces; changes to the  dic-
              tionaryVariable's  contents  only  happen when body
              terminates.

DICTIONARY VALUES
       Dictionaries are values that contain an efficient,  order-
       preserving  mapping  from arbitrary keys to arbitrary val-
       ues.  Each key in the dictionary maps to a  single  value.
       They  have  a  textual  format that is exactly that of any
       list with an even number of elements, with each mapping in
       the dictionary being represented as two items in the list.
       When a command takes a dictionary and produces a new  dic-
       tionary  based  on  it  (either returning it or writing it
       back into the variable that the  starting  dictionary  was
       read  from) the new dictionary will have the same order of
       keys, modulo any deleted keys and with new keys  added  on
       to  the end.  When a string is interpreted as a dictionary
       and it would otherwise have duplicate keys, only the  last
       value  for  a  particular  key  is  used;  the  others are
       ignored, meaning that, "apple banana"  and  "apple  carrot
       apple  banana" are equivalent dictionaries (with different
       string representations).

EXAMPLES
       Constructing and using nested dictionaries:
              # Data for one employee
              dict set employeeInfo 12345-A forenames "Joe"
              dict set employeeInfo 12345-A surname   "Schmoe"
              dict set employeeInfo 12345-A street "147 Short Street"
              dict set employeeInfo 12345-A city   "Springfield"
              dict set employeeInfo 12345-A phone  "555-1234"
              # Data for another employee
              dict set employeeInfo 98372-J forenames "Anne"
              dict set employeeInfo 98372-J surname   "Other"
              dict set employeeInfo 98372-J street "32995 Oakdale Way"
              dict set employeeInfo 98372-J city   "Springfield"
              dict set employeeInfo 98372-J phone  "555-8765"
              # The above data probably ought to come from a database...

              # Print out some employee info
              set i 0
              puts "There are [dict size $employeeInfo] employees"
              dict for {id info} $employeeInfo {
                 puts "Employee #[incr i]: $id"
                 dict with info {
                    puts "   Name: $forenames $surname"
                    puts "   Address: $street, $city"
                    puts "   Telephone: $phone"
                 }
              }
              # Another way to iterate and pick out names...
              foreach id [dict keys $employeeInfo] {
                 puts "Hello, [dict get $employeeInfo $id forenames]!"
              }

       A localizable version of string toupper:
              # Set up the basic C locale
              set capital [dict create C [dict create]]
              foreach c [split {abcdefghijklmnopqrstuvwxyz} ""] {
                 dict set capital C $c [string toupper $c]
              }

              # English locales can luckily share the "C" locale
              dict set capital en [dict get $capital C]
              dict set capital en_US [dict get $capital C]
              dict set capital en_GB [dict get $capital C]

              # ... and so on for other supported languages ...

              # Now get the mapping for the current locale and use it.
              set upperCaseMap [dict get $capital $env(LANG)]
              set upperCase [string map $upperCaseMap $string]

SEE ALSO
       append(n), array(n), foreach(n),  incr(n),  list(n),  lap-
       pend(n), set(n)

KEYWORDS
       dictionary, create, update, lookup, iterate, filter



Tcl                            8.5                        dict(n)


@@@COMMAND: diff_board@@@
diff_board

Description: 
Print a summary of the differences between the current board part and the given newer version of that board part.  Currently only differences in the pins of the board part and their properties are reported.

Syntax: 
diff_board  [-file <arg>] [-quiet] [-verbose] <version>

Returns: 
new board version

Usage: 
  Name        Description
  -----------------------
  [-file]     the output file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <version>   the other board version to compare

Categories: 
Object, Board


@@@COMMAND: disconnect_debug_port@@@
disconnect_debug_port

Description: 
Disconnect nets and pins from debug port channels

Syntax: 
disconnect_debug_port  [-channel_index <arg>] [-quiet] [-verbose] <port>

Usage: 
  Name              Description
  -----------------------------
  [-channel_index]  Disconnect the net at channel index
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <port>            Debug port name

Categories: 
Debug

Description:

  Disconnect signals from the debug ports.

  Signals from the Netlist Design are connected to ports of a ILA debug core
  using the connect_debug_port command.

  A port can also be deleted from the debug core rather than simply
  disconnected by using the delete_debug_port command.

  If you need to determine the specific name of a port on a debug core, use
  the get_debug_ports command to list all ports on a core. You can also use
  the report_debug_core command to list all of the cores in the projects, and
  their specific parameters.

Arguments:

  -channel_index <value> - (Optional) The channel index of the port to
  disconnect.

  Note: The entire port is disconnected if -channel_index is not specified.

  <port> - (Required) The name of the port on the debug core to disconnect.
  The port name must be specified as core_name/port_name. See the examples
  below.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example disconnects only the specified channel index from the
  PROBE1 port of myCore:

    disconnect_debug_port -channel_index 2 myCore/PROBE1 
    

  If you do not specify the channel_index, all of the channels of the
  specified port will be disconnected, as in the following example:

    disconnect_debug_port myCore/PROBE1 
    

See Also:

   *  connect_debug_port
   *  delete_debug_port
   *  get_debug_ports
   *  report_debug_core


@@@COMMAND: disconnect_net@@@
disconnect_net

Description: 
Disconnect a net from pins or ports

Syntax: 
disconnect_net  [-prune] [-net <arg>] [-objects <args>] [-pinlist <args>]
                [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-prune]    When performing disconnect, remove the net and any pin/net 
              chain up to the pin on any primitive instance as long as each 
              object in the chain has only 1 remaining connection.
  [-net]      Net to disconnect - optional, net attached to first pin or port
              object is used if not specified.
  [-objects]  List of pin and port names to disconnect. String expressions 
              are supported.
  [-pinlist]  List of pin and port objects to disconnect.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Netlist

Description:

  This command allows the user to disconnect a specified net from one or more
  pins or ports in the netlist of an open Synthesized or Implemented Design.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -prune - (Optional) Remove hierarchical pins, ports, or nets that are left
  unconnected after disconnecting the specified nets. This will not remove
  the pins specified by -objects, which are disconnected, but removes the net
  and pins or ports connected to the specified pins.

  -net <arg> - (Optional) Specifies the net to disconnect. If no net is
  specified, the net connected to the first pin or port object will be
  disconnected.

  Note: Although you can create a bus using the -bus_from and -bus_to
  arguments of the create_net command, you must disconnect each bit of the
  bus separately using the disconnect_net command.

  -objects <args> - (Optional) The string list of pin and port names to
  disconnect from the specified net. String expressions representing patterns
  are supported. When first-class objects are available, the command line
  option -pinlist should be used instead as it will be faster

  -pinlist <args> - (Optional) Recommended option over -objects. List of pin
  and port objects to disconnect from the specified net. If the list of pins
  and ports is built around first-class objects, the -pinlist processing is
  much faster than -objects. This option will also take a list of object
  names as string, but at the cost of increased runtime.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  Using the following connection network:

    leaf_cell1/pin1 > net1 > block1/pin1 > 
        topnet  
    < block2/pin1 < net2 < leaf_cell2/pin1

  This example first disconnects the signal, topnet, from block1/pin1, and
  then prunes topnet, block2/pin1, and net2, but does not prune
  leaf_cell2/pin1:

    disconnect_net -prune -net topnet -objects [get_pins block1/pin1]

  Note: net2 is not removed, because block1/pin1 is not pruned as part of the
  -prune option.

  The following example disconnects the specified bit of the dataBus:

    disconnect_net -net dataBus[1] -objects {dataIN[1] myDMA/data[1]}

  This example demonstrates the most efficient coding style to disconnect
  nets from multiple pins or ports. In the first code sample, all pins are
  presented as a single list of pins or ports, and the disconnect_net command
  runs more quickly than the second code sample that is presented as multiple
  disconnect_net commands:

    disconnect_net -objects [list {pad_rin1_IBUF[0]_inst/O} {hcore0/pad_rin1[9][0]} \  
    {pad_rin1_IBUF[1]_inst/O} {hcore0/pad_rin1[9][1]} \  
    {pad_rin1_IBUF[2]_inst/O} {hcore0/pad_rin1[9][2]} \  
    {pad_rin1_IBUF[3]_inst/O} {hcore0/pad_rin1[9][3]} \  
    {pad_rin1_IBUF[4]_inst/O} {hcore0/pad_rin1[9][4]} \  
    {pad_rin1_IBUF[5]_inst/O} {hcore0/pad_rin1[9][5]} \  
    {pad_rin1_IBUF[6]_inst/O} {hcore0/pad_rin1[9][6]} \  
    {pad_rin1_IBUF[7]_inst/O} {hcore0/pad_rin1[9][7]} \  
    {pad_rin1_IBUF[8]_inst/O} {hcore0/pad_rin1[9][8]} \  
    {pad_rin1_IBUF[9]_inst/O} {hcore0/pad_rin1[9][9]} ]  
    

  Note: The lack of the -net option in these samples means that the net
  attached to the first pin or port specified is the net that will be
  disconnected from all subsequent pins and ports.

    disconnect_net -objects [list {pad_rin1_IBUF[0]_inst/O} {hcore0/pad_rin1[9][0]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[1]_inst/O} {hcore0/pad_rin1[9][1]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[2]_inst/O} {hcore0/pad_rin1[9][2]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[3]_inst/O} {hcore0/pad_rin1[9][3]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[4]_inst/O} {hcore0/pad_rin1[9][4]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[5]_inst/O} {hcore0/pad_rin1[9][5]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[6]_inst/O} {hcore0/pad_rin1[9][6]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[7]_inst/O} {hcore0/pad_rin1[9][7]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[8]_inst/O} {hcore0/pad_rin1[9][8]}]  
    disconnect_net -objects [list {pad_rin1_IBUF[9]_inst/O} {hcore0/pad_rin1[9][9]}]  
    

See Also:

   *  connect_net
   *  remove_net
   *  create_net
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: enable_beta_device@@@
enable_beta_device

Description: 
Enable all licensed beta devices matching an optional pattern

Syntax: 
enable_beta_device  [-quiet] [-verbose] [<pattern>]

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<pattern>]  Enable parts matching pattern

Categories: 
Device


@@@COMMAND: encoding@@@
encoding(n)           Tcl Built-In Commands           encoding(n)



_________________________________________________________________

NAME
       encoding - Manipulate encodings

SYNOPSIS
       encoding option ?arg arg ...?
_________________________________________________________________


INTRODUCTION
       Strings  in  Tcl  are encoded using 16-bit Unicode charac-
       ters.  Different operating system interfaces  or  applica-
       tions  may  generate  strings  in  other encodings such as
       Shift-JIS.  The encoding command helps to bridge  the  gap
       between Unicode and these other formats.

DESCRIPTION
       Performs  one  of  several  encoding  related  operations,
       depending on option.  The legal options are:

       encoding convertfrom ?encoding? data
              Convert data to Unicode from the  specified  encod-
              ing.   The characters in data are treated as binary
              data where the lower 8-bits of  each  character  is
              taken  as a single byte.  The resulting sequence of
              bytes is treated  as  a  string  in  the  specified
              encoding.   If  encoding is not specified, the cur-
              rent system encoding is used.

       encoding convertto ?encoding? string
              Convert string from Unicode to the specified encod-
              ing.  The result is a sequence of bytes that repre-
              sents the converted string.  Each byte is stored in
              the lower 8-bits of a Unicode character.  If encod-
              ing is not specified, the current  system  encoding
              is used.

       encoding dirs ?directoryList?
              Tcl can load encoding data files from the file sys- |
              tem that describe additional encodings  for  it  to |
              work  with.  This  command sets the search path for |
              *.enc encoding data files to the list  of  directo- |
              ries  directoryList.  If  directoryList  is omitted |
              then the command returns the current list of direc- |
              tories that make up the search path. It is an error |
              for directoryList to not be a valid list. If,  when |
              a search for an encoding data file is happening, an |
              element in directoryList does not refer to a  read- |
              able,   searchable   directory,   that  element  is |
              ignored.

       encoding names
              Returns a list containing the names of all  of  the
              encodings that are currently available.

       encoding system ?encoding?
              Set the system encoding to encoding. If encoding is
              omitted then the command returns the current system
              encoding.  The system encoding is used whenever Tcl
              passes strings to system calls.

EXAMPLE
       It is common practice to write script files using  a  text
       editor  that produces output in the euc-jp encoding, which
       represents  the  ASCII  characters  as  singe  bytes   and
       Japanese  characters  as two bytes.  This makes it easy to
       embed literal strings that correspond to non-ASCII charac-
       ters  by simply typing the strings in place in the script.
       However, because the source  command  always  reads  files
       using  the  current  system encoding, Tcl will only source
       such files correctly when the encoding used to  write  the
       file  is the same.  This tends not to be true in an inter-
       nationalized setting.  For example, if  such  a  file  was
       sourced  in North America (where the ISO8859-1 is normally
       used), each byte in the file would be treated as  a  sepa-
       rate  character  that maps to the 00 page in Unicode.  The
       resulting  Tcl  strings  will  not  contain  the  expected
       Japanese   characters.    Instead,  they  will  contain  a
       sequence of Latin-1  characters  that  correspond  to  the
       bytes of the original string.  The encoding command can be
       used to convert this string to the expected Japanese  Uni-
       code characters.  For example,
              set s [encoding convertfrom euc-jp "\xA4\xCF"]
       would  return  the  Unicode  string "\u306F", which is the
       Hiragana letter HA.


SEE ALSO
       Tcl_GetEncoding(3)


KEYWORDS
       encoding



Tcl                            8.1                    encoding(n)


@@@COMMAND: encrypt@@@
encrypt

Description: 
Encrypt files in place with a language specific key file in IEEE 1735. no default

Syntax: 
encrypt  [-key <arg>] -lang <arg> [-batch <arg>] [-ext <arg>] [-quiet]
         [-verbose] [<files>...]

Usage: 
  Name        Description
  -----------------------
  [-key]      key file to be used to encrypt; if absent, use embedded keys
  -lang       HDL language of the input/output file
  [-batch]    An input file contains a list of files to be encrypted
  [-ext]      extension to use for encrypted file; the original source files 
              will be preserved.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<files>]   Files to be encrypted in place

Categories: 
FileIO

Description:

  Note: The encrypt command is provided with limited access, and requires a
  special license to use.

  Allows anyone with an encryption license to encrypt Verilog or VHDL files
  using the IEEE 1735 encryption standard.

  Encrypted files can be provided by third-party IP providers to protect
  their intellectual property, while still enabling the Vivado Design Suite
  to read the encrypted files for synthesis and simulation. The data is in
  plain text prior to encryption.

  Note: Unless the -ext option is used, the specified files are encrypted in
  place, overwriting the input files with the encrypted files.

Arguments:

  -key <arg> - (Optional) Specifies an RSA key file that includes the Xilinx
  public key. If the -key is not specified, the Vivado tool looks for keys
  embedded within the specified files. These are 1735 supported pragmas, or
  directives embedded into the specified files, that provide the encryption
  key and indicate where the protected data begins and ends.

  Note: The Xilinx public key can be found in data/pubkey directory from the 
  installation area.

  -lang [ vhdl | verilog ] - (Required) Specify the HDL language of the
  source files to be encrypted. Supported values are VHDL or verilog.

  -files - (Optional) The names of Verilog or VHDL files to encrypt. 

  -batch - (Optional) The name of file contains a list of files to be encrypted. 
  Each line of the file represents a file to be encrypted, using either absolute path 
  or relative path. Option -ext may be used with -batch. The file should contain only
  verilog files or vhdl files, not both.

  Note: Either -files or -batch is required.
  
  -ext <arg> - (Optional) Specify an extension to use for the output
  encrypted files. The original source files will be preserved.

  Note: If this option is not specified, the original source files will be
  overwritten with the encrypted output.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example encrypts the specified Verilog file, using the
  specified key file:

    encrypt -lang verilog -key C:/Data/xilinx_rsa_key.txt C:/Data/design_1.v 

  Note: The specified source file is overwritten by the encrypted output file.

  The following example encrypts files listed inside a batch file in Verilog, using the
  specified key file and an extension:

    encrypt -lang verilog -key C:/Data/xilinx_rsa_key.txt -batch filelist.txt -ext .vp


See Also:

   *  write_verilog
   *  write_vhdl


@@@COMMAND: encrypt_package@@@
encrypt_package

Description: 
Protect a packaged IP archive with an encryption wrapper.

Syntax: 
encrypt_package  [-customer_key <arg>] -ip_partner_private_key <arg>
                 [-ip_partner_keyowner <arg>] -ip_partner_envelope <arg>
                 [-output <arg>] [-exclude <arg>] [-quiet] [-verbose]
                 <input>...

Usage: 
  Name                     Description
  ------------------------------------
  [-customer_key]          The name of a PEM format file containing the IP 
                           customer's RSA public key. If not specified a key 
                           pair will be generated and the private key 
                           installed on the user's host when 
                           install_encrypted_package is run.
  -ip_partner_private_key  The name of a PEM format file containing the IP 
                           partner's RSA private key. If the name specified 
                           does not include a file extension, .pem will be 
                           assumed.
  [-ip_partner_keyowner]   If specified, will replace the value of 
                           key_keyowner in the encryption envelope specified 
                           by -ip_partner_envelope.
  -ip_partner_envelope     Filename of the file containing the encryption 
                           envelope - the IP partner's public RSA key and the
                           rights being granted the user. Note that this file
                           is not included in the zip file in any form, it is
                           only used to encrypt the HDL files in the package.
  [-output]                Name of the output archive file. If not specified 
                           and the input is an archive, the input archive 
                           file will be overwritten. If the input is a 
                           directory, this name of the output archive must be
                           specified.
  [-exclude]               If input is directory, this option can be used to 
                           specify a comma-separated list of files to exclude
                           from the packaged archive. Not valid if input is 
                           an archive.
  [-quiet]                 Ignore command errors
  [-verbose]               Suspend message limits during command execution
  <input>                  Either the name of the input archive (zip) file, 
                           which should have been generated using the Vivado 
                           IP Packager to package an IP, or the name of a 
                           directory containing the files to include. If a 
                           directory is specified, it will be searched 
                           recursively for all the files to include in the 
                           output archive. HDL files will be encrypted.

Categories: 
FileIO


@@@COMMAND: endgroup@@@
endgroup

Description: 
End a set of commands that can be undone/redone as a group

Syntax: 
endgroup  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
GUIControl

Description:

  Ends a sequence of commands that can be undone or redone as a series. Use
  startgroup to start the sequence of commands.

  You can have multiple command groups to undo or redo, but you cannot nest
  command groups. You must use endgroup to end a command sequence before
  using startgroup to create a new command sequence.

  Note: The startgroup/endgroup commands are provided to support sequences of
  related commands that can be undone via the undo command, or redone if
  needed using the redo command. However, some Tcl commands can trigger an
  endgroup unexpectedly, and certain commands do not support either UNDO or
  REDO. The limitations are not fully defined.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example defines a startgroup, executes a sequence of related
  commands, and then executes the endgroup. This sequence of commands can be
  undone as a group:

    startgroup  
    create_pblock pblock_wbArbEngine  
    create_pblock pblock_usbEng  
    add_cells_to_pblock pblock_wbArbEngine \  
       [get_cells [list wbArbEngine]] -clear_locs  
    add_cells_to_pblock pblock_usbEng \  
       [get_cells [list usbEngine1/usbEngineSRAM]] -clear_locs  
    endgroup 
    

See Also:

   *  startgroup
   *  redo
   *  undo


@@@COMMAND: eof@@@
eof(n)                Tcl Built-In Commands                eof(n)



_________________________________________________________________

NAME
       eof - Check for end of file condition on channel

SYNOPSIS
       eof channelId
_________________________________________________________________


DESCRIPTION
       Returns  1 if an end of file condition occurred during the
       most recent input operation on channelId (such as gets), 0
       otherwise.

       ChannelId  must  be an identifier for an open channel such
       as a Tcl standard channel (stdin, stdout, or stderr),  the
       return  value from an invocation of open or socket, or the
       result of a channel creation command  provided  by  a  Tcl
       extension.

EXAMPLES
       Read and print out the contents of a file line-by-line:
              set f [open somefile.txt]
              while {1} {
                  set line [gets $f]
                  if {[eof $f]} {
                      close $f
                      break
                  }
                  puts "Read line: $line"
              }

       Read  and  print  out the contents of a file by fixed-size
       records:
              set f [open somefile.dat]
              fconfigure $f -translation binary
              set recordSize 40
              while {1} {
                  set record [read $f $recordSize]
                  if {[eof $f]} {
                      close $f
                      break
                  }
                  puts "Read record: $record"
              }


SEE ALSO
       file(n), open(n), close(n), fblocked(n), Tcl_StandardChan-
       nels(3)


KEYWORDS
       channel, end of file



Tcl                            7.5                         eof(n)


@@@COMMAND: error@@@
error(n)              Tcl Built-In Commands              error(n)



_________________________________________________________________

NAME
       error - Generate an error

SYNOPSIS
       error message ?info? ?code?
_________________________________________________________________


DESCRIPTION
       Returns a TCL_ERROR code, which causes command interpreta-
       tion to be unwound.  Message is a string that is  returned
       to the application to indicate what went wrong.

       The  -errorinfo return option of an interpreter is used to
       accumulate a stack trace of what was in progress  when  an
       error  occurred; as nested commands unwind, the Tcl inter-
       preter adds information to the -errorinfo  return  option.
       If  the info argument is present, it is used to initialize
       the -errorinfo return options and the first  increment  of
       unwind  information  will  not  be added by the Tcl inter-
       preter.  In other words, the command containing the  error
       command  will  not appear in the stack trace; in its place
       will be info.  Historically, this feature  had  been  most
       useful  in conjunction with the catch command: if a caught
       error cannot be handled successfully, info can be used  to
       return  a  stack  trace  reflecting  the original point of
       occurrence of the error:
              catch {...} errMsg
              set savedInfo $::errorInfo
              ...
              error $errMsg $savedInfo
       When working with Tcl 8.5 or  later,  the  following  code
       should be used instead:
              catch {...} errMsg options
              ...
              return -options $options $errMsg

       If  the code argument is present, then its value is stored
       in the -errorcode return option.   The  -errorcode  return
       option  is intended to hold a machine-readable description
       of the error in cases where such information is available;
       see  the  return manual page for information on the proper
       format for this option's value.

EXAMPLE
       Generate an error if a basic mathematical operation fails:
              if {1+2 != 3} {
                  error "something is very wrong with addition"
              }


SEE ALSO
       catch(n), return(n)


KEYWORDS
       error



Tcl                                                      error(n)


@@@COMMAND: eval@@@
eval(n)               Tcl Built-In Commands               eval(n)



_________________________________________________________________

NAME
       eval - Evaluate a Tcl script

SYNOPSIS
       eval arg ?arg ...?
_________________________________________________________________


DESCRIPTION
       Eval  takes one or more arguments, which together comprise
       a Tcl script containing one or more commands.   Eval  con-
       catenates  all  its  arguments  in the same fashion as the
       concat command, passes the concatenated string to the  Tcl
       interpreter  recursively,  and  returns the result of that
       evaluation (or any error generated by it).  Note that  the
       list  command quotes sequences of words in such a way that
       they are not further expanded by the eval command.

EXAMPLES
       Often, it is useful to store a fragment of a script  in  a
       variable  and  execute  it  later  on  with  extra  values
       appended. This technique is used in  a  number  of  places
       throughout  the  Tcl  core (e.g. in fcopy, lsort and trace
       command callbacks). This example  shows  how  to  do  this
       using core Tcl commands:
              set script {
                  puts "logging now"
                  lappend $myCurrentLogVar
              }
              set myCurrentLogVar log1
              # Set up a switch of logging variable part way through!
              after 20000 set myCurrentLogVar log2

              for {set i 0} {$i<10} {incr i} {
                  # Introduce a random delay
                  after [expr {int(5000 * rand())}]
                  update    ;# Check for the asynch log switch
                  eval $script $i [clock clicks]
              }

       Note  that in the most common case (where the script frag- |
       ment is actually just a list of words  forming  a  command |
       prefix),  it  is  better to use {*}$script when doing this |
       sort of invocation pattern.  It is less general  than  the |
       eval command, and hence easier to make robust in practice.
       The following procedure acts in a way that is analogous to
       the lappend command, except it inserts the argument values
       at the start of the list in the variable:
              proc lprepend {varName args} {
                 upvar 1 $varName var
                 # Ensure that the variable exists and contains a list
                 lappend var
                 # Now we insert all the arguments in one go
                 set var [eval [list linsert $var 0] $args]
              }
       However, the last line would now normally be written with- |
       out eval, like this:                                       |
              set var [linsert $var 0 {*}$args]                   |


SEE ALSO
       catch(n),  concat(n), error(n), interp(n), list(n), names-
       pace(n), subst(n), tclvars(n), uplevel(n)


KEYWORDS
       concatenate, evaluate, script



Tcl                                                       eval(n)


@@@COMMAND: exec@@@
exec(n)               Tcl Built-In Commands               exec(n)



_________________________________________________________________

NAME
       exec - Invoke subprocesses

SYNOPSIS
       exec ?switches? arg ?arg ...?
_________________________________________________________________


DESCRIPTION
       This  command treats its arguments as the specification of
       one or more subprocesses to execute.  The  arguments  take
       the  form  of  a  standard  shell  pipeline where each arg
       becomes one word of a command, and each  distinct  command
       becomes a subprocess.

       If  the  initial  arguments to exec start with - then they
       are treated as command-line switches and are not  part  of
       the  pipeline  specification.   The following switches are
       currently supported:

       -ignorestderr
                    Stops the exec command from treating the out- |
                    put  of  messages  to the pipeline's standard |
                    error channel as an error case.

       -keepnewline Retains a trailing newline in the  pipeline's
                    output.   Normally a trailing newline will be
                    deleted.

       --           Marks the end of switches.  The argument fol-
                    lowing  this one will be treated as the first
                    arg even if it starts with a -.

       If an arg (or pair of args) has one of the forms described
       below then it is used by exec to control the flow of input
       and output among the subprocess(es).  Such arguments  will
       not  be passed to the subprocess(es).  In forms such as "<
       fileName", fileName may either be in a  separate  argument
       from "<" or in the same argument with no intervening space
       (i.e.  "<fileName").

       |              Separates   distinct   commands   in    the
                      pipeline.   The standard output of the pre-
                      ceding command will be piped into the stan-
                      dard input of the next command.

       |&             Separates    distinct   commands   in   the
                      pipeline.  Both standard output  and  stan-
                      dard error of the preceding command will be
                      piped into the standard input of  the  next
                      command.   This  form  of redirection over-
                      rides forms such as 2> and >&.

       < fileName     The file named by fileName  is  opened  and
                      used  as  the  standard input for the first
                      command in the pipeline.

       <@ fileId      FileId must be the identifier for  an  open
                      file,  such as the return value from a pre-
                      vious call to open.   It  is  used  as  the
                      standard input for the first command in the
                      pipeline.  FileId must have been opened for
                      reading.

       << value       Value is passed to the first command as its
                      standard input.

       > fileName     Standard output from the  last  command  is
                      redirected  to  the  file  named  fileName,
                      overwriting its previous contents.

       2> fileName    Standard error from  all  commands  in  the
                      pipeline  is  redirected  to the file named
                      fileName,  overwriting  its  previous  con-
                      tents.

       >& fileName    Both  standard output from the last command
                      and standard error from  all  commands  are
                      redirected  to  the  file  named  fileName,
                      overwriting its previous contents.

       >> fileName    Standard output from the  last  command  is
                      redirected  to  the  file  named  fileName,
                      appending to it rather than overwriting it.

       2>> fileName   Standard  error  from  all  commands in the
                      pipeline is redirected to  the  file  named
                      fileName, appending to it rather than over-
                      writing it.

       >>& fileName   Both standard output from the last  command
                      and  standard  error  from all commands are
                      redirected  to  the  file  named  fileName,
                      appending to it rather than overwriting it.

       >@ fileId      FileId must be the identifier for  an  open
                      file,  such as the return value from a pre-
                      vious call to open.  Standard  output  from
                      the  last command is redirected to fileId's
                      file, which must have been opened for writ-
                      ing.

       2>@ fileId     FileId  must  be the identifier for an open
                      file, such as the return value from a  pre-
                      vious  call  to  open.  Standard error from
                      all commands in the pipeline is  redirected
                      to  fileId's file.  The file must have been
                      opened for writing.

       2>@1           Standard error from  all  commands  in  the
                      pipeline   is  redirected  to  the  command
                      result.  This operator is only valid at the
                      end of the command pipeline.

       >&@ fileId     FileId  must  be the identifier for an open
                      file, such as the return value from a  pre-
                      vious  call  to open.  Both standard output
                      from the last command  and  standard  error
                      from   all   commands   are  redirected  to
                      fileId's file.  The  file  must  have  been
                      opened for writing.

       If  standard  output has not been redirected then the exec
       command returns the standard output from the last  command
       in  the  pipeline,  unless  "2>@1" was specified, in which |
       case standard error is included as well.  If  any  of  the
       commands  in the pipeline exit abnormally or are killed or
       suspended, then exec will return an error  and  the  error
       message  will  include  the  pipeline's output followed by
       error messages describing the abnormal  terminations;  the
       -errorcode  return option will contain additional informa-
       tion about the last abnormal termination encountered.   If
       any  of the commands writes to its standard error file and
       that standard error is not redirected and -ignorestderr is |
       not  specified, then exec will return an error;  the error
       message will include the pipeline's standard output,  fol-
       lowed  by  messages  about abnormal terminations (if any),
       followed by the standard error output.

       If the last character of the result or error message is  a
       newline  then  that character is normally deleted from the
       result or error message.  This is  consistent  with  other
       Tcl  return  values,  which  do not normally end with new-
       lines.  However, if -keepnewline  is  specified  then  the
       trailing newline is retained.

       If standard input is not redirected with "<", "<<" or "<@"
       then the standard input  for  the  first  command  in  the
       pipeline  is taken from the application's current standard
       input.

       If the last arg is "&" then the pipeline will be  executed
       in  background.  In this case the exec command will return
       a list whose elements are the process identifiers for  all
       of  the subprocesses in the pipeline.  The standard output
       from the last command in  the  pipeline  will  go  to  the
       application's  standard  output  if  it has not been redi-
       rected, and error output from all of the commands  in  the
       pipeline  will go to the application's standard error file
       unless redirected.

       The first word in each command is  taken  as  the  command
       name;  tilde-substitution  is  performed on it, and if the
       result contains no slashes then  the  directories  in  the
       PATH  environment  variable are searched for an executable
       by the given name.  If the name contains a slash  then  it
       must  refer  to  an  executable reachable from the current
       directory.  No "glob" expansion or other  shell-like  sub-
       stitutions are performed on the arguments to commands.

PORTABILITY ISSUES
       Windows (all versions)
              Reading  from  or  writing  to  a socket, using the
              "@ fileId" notation, does not work.   When  reading
              from  a  socket, a 16-bit DOS application will hang
              and a 32-bit application  will  return  immediately
              with  end-of-file.  When either type of application
              writes to a socket, the information is instead sent
              to the console, if one is present, or is discarded.

              The Tk console text widget does  not  provide  real
              standard IO capabilities.  Under Tk, when redirect-
              ing from standard input, all applications will  see
              an immediate end-of-file; information redirected to
              standard output or  standard  error  will  be  dis-
              carded.

              Either  forward or backward slashes are accepted as
              path separators  for  arguments  to  Tcl  commands.
              When executing an application, the path name speci-
              fied for the application may also  contain  forward
              or  backward  slashes  as path separators.  Bear in
              mind,  however,  that  most  Windows   applications
              accept  arguments  with  forward  slashes  only  as
              option delimiters and backslashes  only  in  paths.
              Any arguments to an application that specify a path
              name with forward slashes will not automatically be
              converted  to  use  the backslash character.  If an
              argument contains forward slashes as the path sepa-
              rator,  it  may  or may not be recognized as a path
              name, depending on the program.

              Additionally, when calling a 16-bit DOS or  Windows
              3.X application, all path names must use the short,
              cryptic, path format  (e.g.,  using  "applba~1.def"
              instead  of  "applbakery.default"),  which  can  be
              obtained with the "file attributes fileName -short-
              name" command.

              Two or more forward or backward slashes in a row in
              a path refer to a network  path.   For  example,  a
              simple concatenation of the root directory c:/ with
              a subdirectory /windows/system will yield  c://win-
              dows/system (two slashes together), which refers to
              the mount point called system on the machine called
              windows (and the c:/ is ignored), and is not equiv-
              alent  to  c:/windows/system,  which  describes   a
              directory  on  the current computer.  The file join
              command should be used to concatenate  path  compo-
              nents.

              Note that there are two general types of Win32 con-
              sole applications:

                      [1]    CLI -- CommandLine Interface,  simple
                             stdio   exchange.   netstat.exe  for
                             example.

                      [2]    TUI -- Textmode User  Interface,  any
                             application  that  accesses the con-
                             sole API for doing  such  things  as
                             cursor movement, setting text color,
                             detecting  key  presses  and   mouse
                             movement,  etc.  An example would be
                             telnet.exe from Windows 2000.  These
                             types of applications are not common
                             in a  windows  environment,  but  do
                             exist.

              exec  will not work well with TUI applications when
              a console is not present, as is done when launching
              applications  under  wish.  It is desirable to have
              console applications hidden and detached.  This  is
              a  designed-in limitation as exec wants to communi-
              cate over pipes.  The  Expect  extension  addresses
              this  issue  when communicating with a TUI applica-
              tion.

       Windows NT
              When attempting to  execute  an  application,  exec
              first  searches  for  the name as it was specified.
              Then, in order, .com, .exe, and .bat  are  appended
              to  the  end  of the specified name and it searches
              for the longer name.  If a directory name  was  not
              specified as part of the application name, the fol-
              lowing directories are  automatically  searched  in
              order when attempting to locate the application:

              Â·      The  directory from which the Tcl executable
                     was loaded.

              Â·      The current directory.

              Â·      The Windows NT 32-bit system directory.

              Â·      The Windows NT 16-bit system directory.

              Â·      The Windows NT home directory.

              Â·      The directories listed in the path.

              In order to execute shell  built-in  commands  like
              dir  and  copy, the caller must prepend the desired
              command with "cmd.exe /c "  because  built-in  com-
              mands are not implemented using executables.

       Windows 9x
              When  attempting  to  execute  an application, exec
              first searches for the name as  it  was  specified.
              Then,  in  order, .com, .exe, and .bat are appended
              to the end of the specified name  and  it  searches
              for  the  longer name.  If a directory name was not
              specified as part of the application name, the fol-
              lowing  directories  are  automatically searched in
              order when attempting to locate the application:

              Â·      The directory from which the Tcl  executable
                     was loaded.

              Â·      The current directory.

              Â·      The Windows 9x system directory.

              Â·      The Windows 9x home directory.

              Â·      The directories listed in the path.

              In  order  to  execute shell built-in commands like
              dir and copy, the caller must prepend  the  desired
              command  with  "command.com  /c "  because built-in
              commands are not implemented using executables.

              Once a 16-bit DOS  application  has  read  standard
              input  from  a  console  and  then quit, all subse-
              quently run 16-bit DOS applications  will  see  the
              standard  input as already closed.  32-bit applica-
              tions do not have this problem and  will  run  cor-
              rectly,  even after a 16-bit DOS application thinks
              that standard input is closed.  There is  no  known
              workaround for this bug at this time.

              Redirection  between  the  NUL: device and a 16-bit
              application does not always work.  When redirecting
              from  NUL:, some applications may hang, others will
              get an infinite stream of "0x01"  bytes,  and  some
              will  actually  correctly  get an immediate end-of-
              file; the behavior seems to depend  upon  something
              compiled  into  the application itself.  When redi-
              recting greater than 4K or so to NUL:, some  appli-
              cations  will hang.  The above problems do not hap-
              pen with 32-bit applications.

              All DOS 16-bit applications are run  synchronously.
              All  standard  input  from  a  pipe to a 16-bit DOS
              application is collected into a temporary file; the
              other  end  of  the  pipe must be closed before the
              16-bit DOS application begins executing.  All stan-
              dard  output or error from a 16-bit DOS application
              to a pipe is collected into  temporary  files;  the
              application  must  terminate  before  the temporary
              files are redirected  to  the  next  stage  of  the
              pipeline.   This  is due to a workaround for a Win-
              dows 95 bug in the implementation of pipes, and  is
              how the standard Windows 95 DOS shell handles pipes
              itself.

              Certain applications, such as  command.com,  should
              not  be executed interactively.  Applications which
              directly access the  console  window,  rather  than
              reading  from  their  standard input and writing to
              their standard output may fail, hang Tcl,  or  even
              hang the system if their own private console window
              is not available to them.

       Unix
              The exec command is fully functional and  works  as
              described.

UNIX EXAMPLES
       Here  are  some examples of the use of the exec command on
       Unix.

       To execute a simple program and get its result:
              exec uname -a

       To execute a program that can return  a  non-zero  result,
       you  should  wrap  the call to exec in catch and check the
       contents of the -errorcode return option if  you  have  an
       error:
              set status 0
              if {[catch {exec grep foo bar.txt} results options]} {
                 set details [dict get $options -errorcode]
                 if {[lindex $details 0] eq "CHILDSTATUS"} {
                    set status [lindex $details 2]
                 } else {
                    # Some kind of unexpected failure
                 }
              }

       When  translating  a command from a Unix shell invocation,
       care should be taken over the fact that single quote char-
       acters have no special significance to Tcl.  Thus:
              awk '{sum += $1} END {print sum}' numbers.list
       would be translated into something like:
              exec awk {{sum += $1} END {print sum}} numbers.list

       If  you  are  converting invocations involving shell glob-
       bing, you should remember that Tcl does not  handle  glob-
       bing  or expand things into multiple arguments by default.
       Instead you should write things like this:
              exec ls -l {*}[glob *.tcl]

WINDOWS EXAMPLES
       Here are some examples of the use of the exec  command  on
       Windows.

       To  start  an  instance  of notepad editing a file without
       waiting for the user to finish editing the file:
              exec notepad myfile.txt &

       To print a text file using notepad:
              exec notepad /p myfile.txt

       If a program calls other programs, such as is common  with
       compilers,  then  you may need to resort to batch files to
       hide the console windows that sometimes pop up:
              exec cmp.bat somefile.c -o somefile
       With the file cmp.bat looking something like:
              @gcc %1 %2 %3 %4 %5 %6 %7 %8 %9

       Sometimes you need to be careful,  as  different  programs
       may  have  the  same  name and be in the path. It can then
       happen that typing a command at the  DOS  prompt  finds  a
       different program than the same command run via exec. This
       is because of the (documented)  differences  in  behaviour
       between exec and DOS batch files.

       When in doubt, use the command auto_execok: it will return
       the complete path to the program as seen by the exec  com-
       mand.   This  applies  especially  when  you  want  to run
       "internal" commands like dir from a  Tcl  script  (if  you
       just want to list filenames, use the glob command.)  To do
       that, use this:
              exec {*}[auto_execok dir] *.tcl

SEE ALSO
       error(n), open(n)

KEYWORDS
       execute, pipeline, redirection, subprocess



Tcl                            8.5                        exec(n)


@@@COMMAND: exit@@@
exit(n)               Tcl Built-In Commands               exit(n)



_________________________________________________________________

NAME
       exit - End the application

SYNOPSIS
       exit ?returnCode?
_________________________________________________________________


DESCRIPTION
       Terminate  the process, returning returnCode to the system
       as the exit status.  If returnCode is not  specified  then
       it defaults to 0.

EXAMPLE
       Since non-zero exit codes are usually interpreted as error
       cases by the calling  process,  the  exit  command  is  an
       important  part of signaling that something fatal has gone
       wrong. This code fragment is useful in scripts to act as a
       general problem trap:
              proc main {} {
                  # ... put the real main code in here ...
              }

              if {[catch {main} msg options]} {
                  puts stderr "unexpected script error: $msg"
                  if {[info exist env(DEBUG)]} {
                      puts stderr "---- BEGIN TRACE ----"
                      puts stderr [dict get $options -errorinfo]
                      puts stderr "---- END TRACE ----"
                  }

                  # Reserve code 1 for "expected" error exits...
                  exit 2
              }


SEE ALSO
       exec(n)


KEYWORDS
       exit, process



Tcl                                                       exit(n)


@@@COMMAND: export_as_example_design@@@
export_as_example_design

Description: 
Export current design as a static example design

Syntax: 
export_as_example_design  -vlnv <arg> [-no_ip_version] [-force] [-quiet]
                          [-verbose] -directory <arg>

Usage: 
  Name              Description
  -----------------------------
  -vlnv             VLNV of the example design to be generated
  [-no_ip_version]  Flag to not include the IP version as part of the IP VLNV
                    in create_bd_cell commands.
  [-force]          create a directory if it does not exist
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  -directory        Destination directory in which example design needs to be
                    generated

Categories: 
IPIntegrator


@@@COMMAND: export_bd_synth@@@
export_bd_synth

Description: 
(User-written application)
Create and write a single design checkpoint and stub files for a Block Design (BD), for use with third party synthesis tools. Perform synthesis as necessary.


Syntax: 
export_bd_synth  [-force] [-keep] [-verbose] [-quiet] <file>

Returns: 
(none) An error will be thrown if the command is not successful


Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrite existing design checkpoint and stub files
  [-keep]     Keep the temporary directory and project
  [-verbose]  Print verbose messaging
  [-quiet]    Ignore command errors
  <file>      The Block Design file to write a synthesized checkpoint for

Categories: 
synthesis, xilinxtclstore, projutils, user-written

Description:

  Runs synthesis for a Block Design (BD), integrates the design along with any
  needed sub-designs (e.g. OOC synthesized IP), and writes out a single design
  checkpoint of the entire synthesized design along with HDL stub files for
  use in other synthesis tools. The output files will be placed in the same
  directory as the source BD file.

Arguments:

  -help - (Optional) Print this help.

  -force - (Optional) Overwrite existing design checkpoint and stub files

  -verbose - (Optional) Print verbose messaging.

  -keep - (Optional) Keep temporary directory and project after export_bd_checkpoint has finished.

  <file> - (Required) The Block Design file to write a synthesized checkpoint for

Syntax:

  export_bd_synth [-help] [-force] [-verbose] [-keep] <file>

Returns:

  (none) An error will be thrown if the command is not successful.

Examples:

  The following command will generate a synthesis checkpoint along with stub
  files for the block_1.bd.

  % export_bd_synth [get_files block_1.bd]

See Also:

   *  get_files


@@@COMMAND: export_ip_user_files@@@
export_ip_user_files

Description: 
Generate and export IP/IPI user files from a project. This can be scoped to work on one or more IPs.

Syntax: 
export_ip_user_files  [-of_objects <args>] [-ip_user_files_dir <arg>]
                      [-ipstatic_source_dir <arg>] [-lib_map_path <arg>]
                      [-single_step] [-no_script] [-for_target_sim] [-sync]
                      [-reset] [-force] [-quiet] [-verbose]

Usage: 
  Name                    Description
  -----------------------------------
  [-of_objects]           IP, BD file object
  [-ip_user_files_dir]    Base directory path for exporting IP files
  [-ipstatic_source_dir]  Custom directory path for exporting IP static files
  [-lib_map_path]         Compiled simulation library directory path
  [-single_step]          Write a single-step script
  [-no_script]            Do not export simulation scripts
  [-for_target_sim]       Export simulation scripts for target simulator only
  [-sync]                 Delete IP/IPI dynamic and simulation script files
  [-reset]                Delete all IP/IPI static, dynamic and simulation 
                          script files
  [-force]                Overwrite files
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
ToolLaunch, Simulation

Description:

  Export IP generated static, dynamic, netlist, verilog/vhdl stubs, and
  memory initializaton files to the ip_user_files.

Arguments:

  -of_objects <arg> - (Optional) Target object, IP, block design (.bd), or a
  fileset, for which the generated files needs to be exported.

  -ip_user_files_dir <arg> - (Optional) Directory path to IP user files. By
  default, if this switch is not specified then this this command will use
  the path specified with the IP.USER_FILES_DIR project property value.

  -ipstatic_source_dir <arg> - (Optional) Directory path to the static IP
  files. By default, if this switch is not specified then this command will
  use the path specified with the SIM.IPSTATIC_SOURCE_DIR project property
  value.

  Note: If the -ip_user_files_dir switch is specified, then by default the IP
  static files will be exported under the sub-directory with the name
  ipstatic. If this switch is specified in conjunction with
  -ipstatic_source_dir, then the IP static files will be exported in the path
  specified with the -ipstatic_source_dir switch.

  -lib_map_path <arg> - (Optional) Directory path to the pre-compiled
  simulation library.

  -no_script - (Optional) Do not export simulation scripts generated by the
  export_simulation Tcl command. By default, this command will call the
  export_simulation command to generate simulation scripts as well after
  exporting the generated files.

  -sync - (Optional) Delete exported IP/BD sources and simulation scripts
  from the ip_user_files dir.

  -reset - (Optional) Delete all IP/BD generated sources and simulation
  script files from the ip_user_files dir.

  -force - (Optional) Overwrite existing source files in the ip_user_files
  directory with generated IP/BD files.

  -quiet (Optional) Execute the command quietly, ignoring any command line
  errors and returning no messages. The command also returns TCL_OK
  regardless of any errors encountered during execution.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The command export_ip_user_files -of_objects [get_ips char_fifo] exports
  the following:

   *  Dynamic files for the char_fifo IP to
      <project>/<project>.ip_user_files/ip/char_fifo directory

   *  IP static files to <project>/<project>.ip_user_files/ipstatic directory

   *  Simulation script to the
      <project>/<project>.ip_user_files/sim_scripts/char_fifo/<simulator>
      directory

  The following command, will export char_fifo IP static and dynamic files to
  the my_proj/user_files/static and /my_proj/user_files directories:

    export_ip_user_files \
         -of_objects [get_ips char_fifo] \
         -ipstatic_source_dir /my_proj/user_files/static
         -ip_user_files_dir /my_proj/user_files \

  The following command will export char_fifo simulation script files using
  the pre-compiled simulation library from /my_proj/compiled_libs/lib:

    export_ip_user_files \
         -of_objects [get_ips char_fifo] \
         -lib_map_path /my_proj/compiled_libs/lib

  The following command will export files without generating simulation
  scripts for the char_fifo IP:

    export_ip_user_files \
         -of_objects [get_ips char_fifo] \
         -no_script

  The following command will delete generated files and simulation scripts
  for the char_fifo IP:

    export_ip_user_files \
         -of_objects [get_ips char_fifo]\
         -sync

  The following command will delete all generated files and simulation
  scripts for the char_fifo IP:

    export_ip_user_files \
         -of_objects [get_ips char_fifo] \
         -reset

  The following command will overwrite all generated files and simulation
  scripts for the char_fifo:

    export_ip_user_files \
         -of_objects [get_ips char_fifo] \
         -force

See Also:

   *  get_files
   *  get_ips


@@@COMMAND: export_simulation@@@
export_simulation

Description: 
Export a script and associated data files (if any) for driving standalone simulation using the specified simulator.

Syntax: 
export_simulation  [-simulator <arg>] [-of_objects <args>] [-step <arg>]
                   [-ip_user_files_dir <arg>] [-ipstatic_source_dir <arg>]
                   [-lib_map_path <arg>] [-install_path <arg>]
                   [-gcc_install_path <arg>] [-script_name <arg>]
                   [-directory <arg>] [-runtime <arg>] [-define <args>]
                   [-generic <args>] [-include <args>] [-more_options <args>]
                   [-single_step] [-use_ip_compiled_libs] [-absolute_path]
                   [-export_source_files] [-generate_hier_access] [-exec]
                   [-report_ip_status] [-force] [-quiet] [-verbose]

Usage: 
  Name                     Description
  ------------------------------------
  [-simulator]             Target simulator (all|xsim|modelsim|questa|xcelium
                           |vcs|riviera|activehdl). Default:all
  [-of_objects]            Export simulation script for the specified object 
                           (IP/BD)
  [-step]                  Write script for the specified step (Values: 
                           'compile', 'elaborate', 'simulate'). For 
                           -single_step specify 'simulate' value.
  [-ip_user_files_dir]     Directory path to the exported IP/BD files 
                           (static, dynamic, data)
  [-ipstatic_source_dir]   Directory path to the exported IP/BD static files
  [-lib_map_path]          Compiled simulation library directory path
  [-install_path]          Simulator installation directory path
  [-gcc_install_path]      GNU compiler installation directory path for the 
                           g++/gcc executables
  [-script_name]           Output script filename (Default:<ip>)
  [-directory]             output directory path for the generated script
  [-runtime]               Simulation run time (default:full simulation run 
                           or until a logical break or finish condition)
  [-define]                Verilog defines
  [-generic]               Vhdl generics
  [-include]               Include directory path(s)
  [-more_options]          Additional options for simulator tools
  [-single_step]           Write single-step script (supported simulators: 
                           xcelium)
  [-use_ip_compiled_libs]  Reference pre-compiled IP simulation library
  [-absolute_path]         Make all file paths absolute
  [-export_source_files]   Copy IP/BD source files to the output directory
  [-generate_hier_access]  Extract path for hierarchical access simulation
  [-exec]                  Execute generated script
  [-report_ip_status]      Check IP/BD generation status for 'not generated' 
                           or 'stale' simulation targets
  [-force]                 Overwrite previous files
  [-quiet]                 Ignore command errors
  [-verbose]               Suspend message limits during command execution

Categories: 
ToolLaunch, Simulation

Description:

  Export a simulation script file for the target simulator. The generated
  script will contain simulator tool commands for compiling, elaborating, and
  simulating the design.

  The command retrieves the simulation compile order of specified object and
  export this information in a shell script, .do or .prj file.

  The specified object can be either a simulation fileset, IP or a BD (Block
  Design). If the object is not specified, then this command will generate a
  script for the active simulation top in the current simulation fileset
  source hierarchy.

  By default, the design source file and include directory paths in the
  compiler command line will be set in relative format. To make these paths
  absolute, specify the -absolute_path switch. The command will also copy
  data files (if any) from the fileset, IP or a BD to the output directory.
  If the design contains verilog sources, then the generated script will also
  copy the glbl.v file from the Vivado software installation area to the
  output directory.

  Note: In order to perform simulation with the generated script, the Xilinx
  simulation library must be compiled first using compile_simlib Tcl command.
  The compiled library directory path then must be specified when generating
  the script. The generated script will automatically include the setup files
  for the target simulator from the compiled library directory.

  Note: If a design contains IP/BD sources, these sources will be generated
  automatically before exporting the script.

  This command returns nothing.

Arguments:

  -simulator <arg> - (Required) Specify the target simulator name for which
  the simulation script needs to be generated. The valid simulator names are: 
  xsim, modelsim, questa, xcelium, vcs, riviera, and activehdl. If this
  option is not specified, then the command will generate the script for 
  all simulators.

  -of_objects <arg> - (Optional) Specify the target object for which the
  simulation script needs to be generated. The target object can be a
  simulation fileset (simset), an IP, or BD source. If this option is not
  specified, then the command will generate scripts for the current 
  simulation fileset.

  Note: The -of_objects option requires objects to be specified using the
  get_files, get_ips, current_fileset, or current_fileset -simset commands
  rather than specifying objects by name. In addition, -of_objects cannot be
  used with a search <pattern>.

  -step <arg> - (Optional) Specify the name of the step for which the
  simulation script needs to be generated. The valid step values are:
  compile, elaborate, simulate. If this option is not specified, the script
  will execute all the steps applicable for the specified simulator.

  Note: The dependent steps (if applicable) will be generated first.

  -ip_user_files_dir <arg> - (Optional) Specify the directory path to the
  extracted design files for the generated IP/BD source. This is generally
  the sub-directory named <project>/project.ip_user_files in the project 
  directory structure. For a managed-IP project, the default path is 
  ip_user_files. If this option is not specified, the extracted design files
  will be picked automatically from the default directory path that is set
  by the "ip.user_files_dir" project property.

  -ipstatic_source_dir <arg> - (Optional) Specify the directory path to the
  exported IP/BD generated static source files. This is generally the
  sub-directory named <project>/<project>.ip_user_files/ipstatic. For a
  managed-IP project, the default path is ip_user_files/ipstatic. If this
  option is not specified, the extracted design file (static) will be
  picked automatically from the default directory path that is set by the
  "sim.ipstatic.source_dir" project property.

  -lib_map_path <arg> - (Optional) Specify directory path to the pre-compiled
  simulation library for the specified simulator. The simulation library is
  compiled using compile_simlib Tcl Command (Please see the header section in
  the generated script for more information).

  Alternatively, the pre-compiled simulation library path can be specified
  using the "compxlib.<simulator>_compiled_library_dir" fileset property.

  Note: If the design reference SystemC/C++/C based IPs or Simulation models,
  then you MUST specify the simulation library path using the -lib_map_path
  switch or using the above mentioned property.
 
  Note: If the specified path does not contain the compiled library, then the
  generated script will compile the static IP files locally.

   Use following syntax when exporting script for a single simulator:

    -lib_map_path <compiled-library>

    or,

    set_property \
        compxlib.<simulator>_compiled_library_dir <compiled-library> \
        [current_project]

   Use following syntax when exporting script for multiple simulators:

    -lib_map_path [list {<simulator>=<compiled-library>}
                        {<simulator>=<compiled-library>}
                        ...
                        {<simulator>=<compiled-library>}]

    or,

    Execute set_property Tcl command for respective simulators:

    set_property \
        compxlib.<simulator>_compiled_library_dir <compiled-library> \
        [current_project]


    Where <simulator> is the name of the simulator and <compiled-library>
    is the path to the simulation library that is compiled for the
    simulator specified with -simulator <simulator> switch.

  -install_path <arg> - (Optional) Specify the directory path to the
  simulator executables for the target simulator. If this option is not
  specified, then the path to these executables must be set before executing
  the generated script.

  -gcc_install_path <arg> - (Optional) Specify the directory path to the GNU
  executables for the target simulator. This option is required for designs
  that contain SystemC, C++, or C sources. If this option is not specified,
  then an attempt will be made to calculate the path to the GNU executables
  based on the simulator install path settings.

  -script_name <arg> - (Optional) Specify name of the generated script.
  Default name is <simulation_top>.sh. If the -of_objects switch is
  specified, then the default syntax of the script will be as follows:

    -------------------------------------------------------------
         Object Type                            Script Name
        -------------------------------------------------------------
        -of_objects [current_fileset -simset]   <simulation_top>.sh
        -of_objects [get_ips <ip>]              <ip_name>.sh
        -of_objects [get_files <ip>.xci]        <ip_name>.sh
        -of_objects [get_files <name>.bd]       <bd_name>.sh
        -------------------------------------------------------

  -directory <arg> - (Optional) Specify the directory path where the script
  file needs to be generated. By default, the script will be generated in the
  export_sim/<simulator> directory.

  -runtime <arg> - (Optional) Specify the simulation run time.

  Alternatively, the simulation run time can be specified using the
  "<simulator>.simulate.runtime" simulation fileset property.

  If the run time value is empty, then simulation will run for infinite time
  or until a logical break or finish condition.

  -define <arg> - (Optional) Specify the Verilog defines applicable for the
  current design. The syntax for specifying the defines is:

    -define [list {<variable[=value]} ... [{<variable[=value]>}]]

  Alternatively, the Verilog defines can be specified using the
  "verilog_defines" simulation fileset property.

  -generic <arg> - (Optional) Specify the VHDL generics applicable for the
  current design. The syntax for specifying the generic variables is:

    -generic [list {<variable[=value]} ... [{<variable[=value]>}]]

  Alternatively, the VHDL generics can be specified using the "vhdl_generic"
  simulation fileset property.

  -include <arg> - (Optional) Specify include directory paths for verilog
  include files in the design. The syntax for specifying the include file
  directory paths is:

    -include [list {<include-directory} ... [{<include-directory>}]]

  Alternatively, the include directory paths can be specified using the
  "include_dirs" simulation fileset property.

  -more_options <arg> - (Optional) Specify additional switches/args for the
  simulator tools that need to be added when executing the script. The syntax
  for specifying the switches/args is:

    -more_options [list {<simulator>.<step>.<tool>:<list of switches/args>}
                  {<simulator>.<step>.<tool>:<list of switches/args>}
                  ...
                  {<simulator>.<step>.<tool>:<list of switches/args>}]

  Alternatively, the additional switches/args can be specified using the
  "<simulator>.<step>.<tool>.more_options" simulation fileset property.

  where,

   *  <simulator> : Name of the simulator

   *  <step> : Name of the step (compile, elaborate, simulate)

   *  <tool> : Name of the simulator tool (xvlog, vcom, vcs, etc.)

  -single_step - (Optional) Generate a single-step based script. If this
  option is not specified, then a 3-step based script will be generated.

  Note: This option is currently applicable for "xcelium" simulator only.

  -use_ip_compiled_libs - (Optional) Reference precompiled IP static library
  during compilation. The IP static source will not be compiled but instead
  it is compiled version will be referenced during elaboration. This switch
  can also work with -ip_user_files_dir and -ipstatic_source_dir switches
  for generating scripts using the pre-compiled IPs.

  Alternatively, the usage or non-usage of precompiled IP static library can
  be set using the "sim.ipstatic.use_precompiled_libs" simulation fileset
  property.

  -absolute_path - (Optional) Specify this option to make the source and
  include directory paths into absolute format in the generated script file.
  By default, all the paths are written relative to the script output directory.

  -export_source_files - (Optional) Specify this option to copy the design,
  generated IP/BD, and data sources to the <simulator>/srcs sub-directory. If
  the -of_objects specifies an IP or BD source, then the source files for
  these objects will be copied to the <IP/BD>/<simulator>/srcs sub-directory.
  The source and include file paths in the generated script will be set
  relative to the srcs directory (the file paths can be made absolute using
  the -absolute_path switch).

  -generate_hier_access - (Optional) Specify this option to extract the path
  information for the hierarchical access simulation flow.

  -exec - (Optional) Execute the generated script.

  -force - (Optional) Overwrite an existing script file of the same name. If
  the script file already exists, is command returns an error unless the
  -force argument is specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Generate a simulation script for the clk_core IP in a managed-IP project
  for the questa simulator.

    export_simulation \
         -simulator questa \
         -of_objects [get_ips clk_core] \
         -directory proj/test_ip_questa \
         -ip_user_files_dir managed_ip_project/ip_user_files_dir \
         -ipstatic_source_dir managed_ip_project/ip_user_files_dir/ipstatic \
         -lib_map_path /design/compiled_libs/questa/lib \
         -use_ip_compiled_libs

  Generate a simulation script named tb_design.sh in test_xsim directory for
  the current simulation fileset with the top set to tb_design for project
  project_1/project_1.xpr for the xsim simulator. Use the pre-compiled IP
  static library from the Vivado installation.

    export_simulation \
          -simulator xsim \
          -directory test_xsim \
          -ip_user_files_dir project_1/project_1.ip_user_files_dir \
          -ipstatic_source_dir project_1/project_1.ip_user_files_dir/ipstatic \
          -use_ip_compiled_libs

  Generate a simulation script for project project_1/project_1.xpr for the
  modelsim simulator. Use the pre-compiled IP static library from the
  /design/compiled_libs/modelsim/lib directory and export the IP/BD source
  files to the proj/test_modelsim/srcs directory.

    export_simulation \
          -simulator modelsim \
          -directory proj/test_modelsim \
          -ip_user_files_dir project_1/project_1.ip_user_files_dir \
          -ipstatic_source_dir project_1/project_1.ip_user_files_dir/ipstatic \
          -lib_map_path /design/compiled_libs/modelsim/lib \
          -export_source_files \
          -use_ip_compiled_libs

  Generate a simulation script for project project_1/project_1.xpr for the
  questa simulator. Use the pre-compiled IP static library from the
  design/compiled_libs/questa/lib directory, set source file paths to the
  absolute format.

    export_simulation \
          -simulator questa \
          -directory proj/test_questa \
          -ip_user_files_dir project_1/project_1.ip_user_files_dir \
          -ipstatic_source_dir project_1/project_1.ip_user_files_dir/ipstatic \
          -lib_map_path design/compiled_libs/questa/lib \
          -absolute_path \
          -use_ip_compiled_libs

  Generate a simulation script for the clk_core IP for the xcelium simulator.
  Use pre-compiled IP static library from the
  /design/compiled_libs/xcelium/lib directory and overwrite the existing
  script named test_ip_xcelium.sh in the output directory.

    export_simulation \
          -simulator xcelium \
          -of_objects [get_ips clk_core] \
          -directory proj/test_xcelium \
          -ip_user_files_dir project_1/project_1.ip_user_files_dir \
          -ipstatic_source_dir project_1/project_1.ip_user_files_dir/ipstatic \
          -lib_map_path /design/compiled_libs/xcelium/lib \
          -script_name output/test_ip_xcelium.sh \
          -force \
          -use_ip_compiled_libs

  Generate and execute a simulation script for the clk_core BD for the vcs
  simulator. Pass HEX_VAR verilog define, pass INCREMENT vhdl generic, pass
  more options for vlogan and vcs and run simulation for 4000ns.

   *  Export the script for the clk_core IP.

        export_simulation \
               -simulator vcs \
               -of_objects [get_files clk_core.bd] \
               -directory xp \
               -ip_user_files_dir project_1/project_1.ip_user_files_dir \
               -ipstatic_source_dir project_1/project_1.ip_user_files_dir/ipstatic \
               -lib_map_path /design/compiled_libs/vcs/lib \
               -script_name verify.sh \
               -define [list {HEX_VAR=4'b0101}] \
               -generic [list {INCREMENT=10}] \
               -more_options \
                [list {vcs.compile.vlogan:-V} {vcs.elaborate.vcs:-timescale 1ps/1ps}] \
               -runtime 4000ns \
               -use_ip_compiled_libs

   *  Verify the simulation for the clk_core IP.

        cd xp/clk_core/vcs
        ./verify.sh

  Generate a simulation script for the current simulation fileset for the
  riviera simulator. Include verilog header files from the fifo/incl
  directory and run simulation for 3000ns.

    export_simulation \
          -simulator riviera \
          -directory proj/test_riviera \
          -ip_user_files_dir project_1/project_1.ip_user_files_dir \
          -ipstatic_source_dir /project_1/project_1.ip_user_files_dir/ipstatic \
          -lib_map_path /design/compiled_libs/riviera/lib \
          -include [list {fifo/incl}] \
          -runtime 3000ns \
          -use_ip_compiled_libs

  Generate a simulation script for all simulators. Use pre-compiled IP static
  library from the respective simulator directory paths specified with the
  -lib_map_path switch.

    export_simulation \
          -simulator all \
          -directory proj/test_sim \
          -ip_user_files_dir project_1/project_1.ip_user_files_dir \
          -ipstatic_source_dir project_1/project_1.ip_user_files_dir/ipstatic \
          -lib_map_path [list {xsim=/compiled_libs/xsim/lib} \
                              {modelsim=/compiled_libs/modelsim/lib}  \
                              {questa=/compiled_libs/questa/lib}  \
                              {xcelium=/compiled_libs/xcelium/lib}  \
                              {vcs=/compiled_libs/vcs/lib}  \
                              {riviera=/compiled_libs/riviera/lib}  \
                              {activehdl=/compiled_libs/activehdl/lib} ] \
          -use_ip_compiled_libs

  Generate a simulation script for the ten_gig_eth_mac IP for the Questa
  simulator. Use option values from the in memory project and simulation fileset
  properties that can be set upfront before calling export_simulation.

    create_project -in_memory
    set_property target_simulator questa [current_project]
    set_property compxlib.questa_compiled_library_dir \
                 /design/compiled_libs/questa/lib \
                 [current_project]
    set_property include_dirs [list {fifo/incl}] [current_fileset -simset]
    set_property questa.simulate.runtime 3000ns [current_fileset -simset]
    set_property verilog_define [list {HEX_VAR=4'b0101}] \
                 [current_fileset -simset]
    set_property vhdl_generic [list {INCREMENT=10}] [current_fileset -simset]

    export_simulation \
          -simulator questa \
          -of_objects [get_ips ten_gig_eth_mac] \
          -directory proj/test_questa \
          -script_name design.sh

See Also:

   *  current_fileset
   *  get_files
   *  get_ips
   *  compile_simlib
   *  set_property


@@@COMMAND: expr@@@
expr(n)               Tcl Built-In Commands               expr(n)



_________________________________________________________________

NAME
       expr - Evaluate an expression

SYNOPSIS
       expr arg ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       Concatenates  args (adding separator spaces between them),
       evaluates the result as a Tcl expression, and returns  the
       value.  The operators permitted in Tcl expressions include
       a subset of the operators permitted in C expressions.  For
       those  operators common to both Tcl and C, Tcl applies the
       same meaning and precedence as the corresponding C  opera-
       tors.   Expressions  almost  always  yield numeric results
       (integer or  floating-point  values).   For  example,  the
       expression
              expr 8.2 + 6
       evaluates  to 14.2.  Tcl expressions differ from C expres-
       sions in the way that operands are specified.   Also,  Tcl
       expressions  support  non-numeric operands and string com-
       parisons, as well as some additional operators  not  found
       in C.

   OPERANDS
       A  Tcl  expression  consists of a combination of operands,
       operators, and  parentheses.   White  space  may  be  used
       between  the operands and operators and parentheses; it is
       ignored by the expression's instructions.  Where possible,
       operands  are interpreted as integer values.  Integer val- |
       ues may be specified in  decimal  (the  normal  case),  in |
       binary  (if  the  first  two characters of the operand are |
       0b), in octal (if the first two characters of the  operand |
       are 0o), or in hexadecimal (if the first two characters of |
       the operand are 0x).  For  compatibility  with  older  Tcl |
       releases,  an octal integer value is also indicated simply |
       when the first character of the operand is 0,  whether  or |
       not  the  second  character is also o.  If an operand does |
       not have one of the integer formats given above,  then  it |
       is treated as a floating-point number if that is possible. |
       Floating-point numbers may be specified in any of  several |
       common formats making use of the decimal digits, the deci- |
       mal point ., the characters e or E  indicating  scientific |
       notation,  and  the  sign characters + or -.  For example, |
       all of the following  are  valid  floating-point  numbers: |
       2.1, 3., 6e4, 7.91e+16.  Also recognized as floating point |
       values are the strings Inf and NaN making use of any  case |
       for  each character.  If no numeric interpretation is pos-
       sible (note that all literal operands that are not numeric
       or  boolean must be quoted with either braces or with dou-
       ble quotes), then an operand is left as a string (and only
       a limited set of operators may be applied to it).

       Operands may be specified in any of the following ways:

       [1]    As  a  numeric  value,  either integer or floating-
              point.

       [2]    As a boolean value, using any  form  understood  by
              string is boolean.

       [3]    As  a Tcl variable, using standard $ notation.  The
              variable's value will be used as the operand.

       [4]    As a string enclosed in double-quotes.  The expres-
              sion  parser  will perform backslash, variable, and
              command substitutions on  the  information  between
              the  quotes,  and  use  the  resulting value as the
              operand

       [5]    As a string enclosed  in  braces.   The  characters
              between  the  open  brace  and matching close brace
              will be used as the operand without  any  substitu-
              tions.

       [6]    As a Tcl command enclosed in brackets.  The command
              will be executed and its result will be used as the
              operand.

       [7]    As a mathematical function whose arguments have any
              of the above forms for operands, such  as  sin($x).
              See  MATH  FUNCTIONS  below for a discussion of how
              mathematical functions are handled.

       Where the above substitutions occur  (e.g.  inside  quoted
       strings),  they are performed by the expression's instruc-
       tions.  However, the command parser may already have  per-
       formed  one  round  of  substitution before the expression
       processor was called.  As discussed below, it  is  usually
       best  to enclose expressions in braces to prevent the com-
       mand parser from performing substitutions on the contents.

       For some examples of simple expressions, suppose the vari-
       able a has the value 3 and the variable b has the value 6.
       Then  the  command  on  the left side of each of the lines
       below will produce the value on  the  right  side  of  the
       line:
              expr 3.1 + $a           6.1
              expr 2 + "$a.$b"        5.6
              expr 4*[llength "6 2"]  8
              expr {{word one} < "word $a"}0

   OPERATORS
       The  valid  operators (most of which are also available as
       commands in the tcl::mathop namespace; see  the  mathop(n)
       manual  page  for  details)  are  listed below, grouped in
       decreasing order of precedence:

       -  +  ~  !          Unary minus, unary plus, bit-wise NOT,
                           logical  NOT.  None of these operators
                           may be applied to string operands, and
                           bit-wise  NOT  may  be applied only to
                           integers.

       **                  Exponentiation.  Valid for any numeric |
                           operands.

       *  /  %             Multiply,  divide, remainder.  None of
                           these  operators  may  be  applied  to
                           string  operands, and remainder may be
                           applied only to integers.  The remain-
                           der  will always have the same sign as
                           the  divisor  and  an  absolute  value
                           smaller than the divisor.

       +  -                Add   and  subtract.   Valid  for  any
                           numeric operands.

       <<  >>              Left and right shift.  Valid for inte-
                           ger  operands  only.   A  right  shift
                           always propagates the sign bit.

       <  >  <=  >=        Boolean less, greater,  less  than  or
                           equal,  and  greater  than  or  equal.
                           Each operator produces 1 if the condi-
                           tion  is  true,  0  otherwise.   These
                           operators may be applied to strings as
                           well  as  numeric  operands,  in which
                           case string comparison is used.

       ==  !=              Boolean equal  and  not  equal.   Each
                           operator  produces  a zero/one result.
                           Valid for all operand types.

       eq  ne              Boolean string equal  and  string  not
                           equal.    Each   operator  produces  a
                           zero/one result.   The  operand  types
                           are interpreted only as strings.

       in  ni              List containment and negated list con- |
                           tainment.  Each  operator  produces  a |
                           zero/one  result  and treats its first |
                           argument as a string  and  its  second |
                           argument as a Tcl list.  The in opera- |
                           tor indicates whether the first  argu- |
                           ment  is  a member of the second argu- |
                           ment list; the ni operator inverts the |
                           sense of the result.

       &                   Bit-wise   AND.    Valid  for  integer
                           operands only.

       ^                   Bit-wise  exclusive  OR.   Valid   for
                           integer operands only.

       |                   Bit-wise   OR.    Valid   for  integer
                           operands only.

       &&                  Logical AND.  Produces a 1  result  if
                           both  operands  are non-zero, 0 other-
                           wise.  Valid for boolean  and  numeric
                           (integers  or floating-point) operands
                           only.

       ||                  Logical OR.  Produces a  0  result  if
                           both  operands  are zero, 1 otherwise.
                           Valid for boolean and  numeric  (inte-
                           gers or floating-point) operands only.

       x?y:z               If-then-else, as in C.  If x evaluates
                           to  non-zero,  then  the result is the
                           value of y.  Otherwise the  result  is
                           the  value  of  z.  The x operand must
                           have a boolean or numeric value.

       See the C manual for more details on the results  produced
       by  each  operator.   The exponentiation operator promotes |
       types like the multiply and divide operators, and produces |
       a  result  that is the same as the output of the pow func- |
       tion (after any type  conversions.)   All  of  the  binary
       operators  group  left-to-right within the same precedence
       level.  For example, the command
              expr {4*2 < 7}
       returns 0.

       The &&, ||, and ?: operators have "lazy evaluation",  just
       as  in  C,  which means that operands are not evaluated if
       they are not needed to determine the outcome.   For  exam-
       ple, in the command
              expr {$v ? [a] : [b]}
       only  one  of  "[a]"  or "[b]" will actually be evaluated,
       depending on the value of $v.  Note, however, that this is
       only  true if the entire expression is enclosed in braces;
       otherwise the Tcl parser  will  evaluate  both  "[a]"  and
       "[b]" before invoking the expr command.

   MATH FUNCTIONS
       When the expression parser encounters a mathematical func- |
       tion such as sin($x), it replaces it with  a  call  to  an |
       ordinary Tcl function in the tcl::mathfunc namespace.  The |
       processing of an expression such as:                       |
              expr {sin($x+$y)}                                   |
       is the same in every way as the processing of:             |
              expr {[tcl::mathfunc::sin [expr {$x+$y}]]}          |
       which in turn is the same as the processing of:            |
              tcl::mathfunc::sin [expr {$x+$y}]                   |

       The executor will search for tcl::mathfunc::sin using  the |
       usual  rules for resolving functions in namespaces. Either |
       ::tcl::mathfunc::sin  or  [namespace  current]::tcl::math- |
       func::sin will satisfy the request, and others may as well |
       (depending on the current namespace path setting).         |

       See the mathfunc(n) manual page  for  the  math  functions |
       that are available by default.

   TYPES, OVERFLOW, AND PRECISION
       All  internal  computations  involving  integers  are done |
       calling  on  the  LibTomMath  multiple  precision  integer |
       library  as  required so that all integer calculations are |
       performed exactly.  Note that in  Tcl  releases  prior  to |
       8.5, integer calculations were performed with one of the C |
       types long int  or  Tcl_WideInt,  causing  implicit  range |
       truncation  in  those calculations where values overflowed |
       the range of those types.  Any code that relied  on  these |
       implicit  truncations will need to explicitly add int() or |
       wide() function calls to expressions at the  points  where |
       such truncation is required to take place.

       All  internal  computations  involving  floating-point are
       done with the C type double.  When converting a string  to
       floating-point,  exponent overflow is detected and results
       in the double value of Inf or -Inf as appropriate.  Float-
       ing-point  overflow  and  underflow  are  detected  to the
       degree supported  by  the  hardware,  which  is  generally
       pretty reliable.

       Conversion  among  internal  representations  for integer,
       floating-point, and string operands is done  automatically
       as needed.  For arithmetic computations, integers are used
       until some  floating-point  number  is  introduced,  after
       which floating-point is used.  For example,
              expr {5 / 4}
       returns 1, while
              expr {5 / 4.0}
              expr {5 / ( [string length "abcd"] + 0.0 )}
       both   return  1.25.   Floating-point  values  are  always
       returned with a "."  or an "e" so that they will not  look
       like integer values.  For example,
              expr {20.0/5.0}
       returns 4.0, not 4.

   STRING OPERATIONS
       String  values  may  be used as operands of the comparison
       operators, although the expression evaluator tries  to  do
       comparisons  as  integer  or  floating-point  when it can,
       except in the case of the eq and ne operators.  If one  of
       the operands of a comparison is a string and the other has
       a numeric value, a canonical string representation of  the
       numeric  operand  value  is  generated to compare with the
       string operand.  Canonical string representation for inte-
       ger  values  is a decimal string format.  Canonical string
       representation for floating-point values is that  produced
       by  the  %g format specifier of Tcl's format command.  For
       example, the commands
              expr {"0x03" > "2"}
              expr {"0y" < "0x12"}
       both return 1.  The first comparison is done using integer
       comparison, and the second is done using string comparison
       after the second operand is converted to  the  string  18.
       Because of Tcl's tendency to treat values as numbers when-
       ever possible, it is not generally  a  good  idea  to  use
       operators  like  == when you really want string comparison
       and the values of the operands could be arbitrary;  it  is
       better  in  these  cases to use the eq or ne operators, or
       the string command instead.

PERFORMANCE CONSIDERATIONS
       Enclose expressions in braces for the best speed  and  the
       smallest  storage requirements.  This allows the Tcl byte-
       code compiler to generate the best code.

       As mentioned above,  expressions  are  substituted  twice:
       once  by the Tcl parser and once by the expr command.  For
       example, the commands
              set a 3
              set b {$a + 2}
              expr $b*4
       return 11, not a multiple of 4.  This is because  the  Tcl
       parser  will  first  substitute $a + 2 for the variable b,
       then the expr command will evaluate the  expression  $a  +
       2*4.

       Most  expressions do not require a second round of substi-
       tutions.  Either they are enclosed in braces or,  if  not,
       their  variable and command substitutions yield numbers or
       strings that  do  not  themselves  require  substitutions.
       However,  because  a  few  unbraced  expressions  need two
       rounds of substitutions, the bytecode compiler  must  emit
       additional  instructions  to  handle  this situation.  The
       most expensive code is required for  unbraced  expressions
       that  contain  command  substitutions.   These expressions
       must be implemented by generating new code each  time  the
       expression  is  executed.  When the expression is unbraced |
       to allow the substitution of a function or operator,  con- |
       sider  using the commands documented in the mathfunc(n) or |
       mathop(n) manual pages directly instead.

EXAMPLES
       Define a procedure that computes an  "interesting"  mathe-
       matical function:
              proc tcl::mathfunc::calc {x y} {
                  expr { ($x**2 - $y**2) / exp($x**2 + $y**2) }
              }

       Convert polar coordinates into cartesian coordinates:
              # convert from ($radius,$angle)
              set x [expr { $radius * cos($angle) }]
              set y [expr { $radius * sin($angle) }]

       Convert cartesian coordinates into polar coordinates:
              # convert from ($x,$y)
              set radius [expr { hypot($y, $x) }]
              set angle  [expr { atan2($y, $x) }]

       Print  a message describing the relationship of two string
       values to each other:
              puts "a and b are [expr {$a eq $b ? {equal} : {different}}]"

       Set a variable to whether an environment variable is  both
       defined at all and also set to a true boolean value:
              set isTrue [expr {
                  [info exists ::env(SOME_ENV_VAR)] &&
                  [string is true -strict $::env(SOME_ENV_VAR)]
              }]

       Generate a random integer in the range 0..99 inclusive:
              set randNum [expr { int(100 * rand()) }]

SEE ALSO
       array(n),  for(n),  if(n),  mathfunc(n), mathop(n), names-
       pace(n), proc(n), string(n), Tcl(n), while(n)

KEYWORDS
       arithmetic, boolean, compare, expression, fuzzy comparison

COPYRIGHT
       Copyright (c) 1993 The Regents of the University of California.
       Copyright (c) 1994-2000 Sun Microsystems Incorporated.
       Copyright (c) 2005 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved.



Tcl                            8.5                        expr(n)


@@@COMMAND: extract_files@@@
extract_files

Description: 
Extract files from a core container to disk

Syntax: 
extract_files  [-base_dir <arg>] [-force] [-no_ip_dir] [-no_paths] [-quiet]
               [-verbose] <files>...

Returns: 
list of files that were extracted with the new paths

Usage: 
  Name          Description
  -------------------------
  [-base_dir]   Base directory for extracted files
                Default: ip_files
  [-force]      Overwrite existing files
  [-no_ip_dir]  Don't include the IP dir as part of the extract directory
  [-no_paths]   Don't include directories when extracting files
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <files>       Name of the file(s) to be extracted

Categories: 
IPFlow

Description:

  Extract the files from an IP in core container format.

  The core container format for IP is a compressed zip file that reduces the
  file structure in the design, and increases tool performance.

  This command returns a list of files extracted from the core container IP,
  or returns an error if it fails.

Arguments:

  -base_dir <arg> - (Optional) Specify the directory to write the extracted
  files into. By default the extract_files command will write files into a
  folder called ip_files inside of the current working directory.

  -force - (Optional) Overwrite existing files of the same name if any exist.

  -no_ip_dir - (Optional) Don`t include an IP sub-folder as part of path for
  the the extracted files. In this case, the files will be exported to the
  specified directory, without a sub-folder named after the core container
  IP.

  -no_paths - (Optional) Don`t include sub-folders of the core container in
  the extracted files. This option will cause all files to be extracted to
  the top-level ip_files folder, or the folder specified by the -base_dir
  option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) Specify the name of the IP core container (.XCIX) file
  to extract the files from.

Examples:

  The following example extracts the files from the specified core container
  format IP to the specified base directory:

    extract_files -base_dir C:/Data [get_files char_fifo.xcix] 
    

See Also:

   *  convert_ips
   *  create_ip
   *  get_files
   *  get_ips


@@@COMMAND: fblocked@@@
fblocked(n)           Tcl Built-In Commands           fblocked(n)



_________________________________________________________________

NAME
       fblocked - Test whether the last input operation exhausted
       all available input

SYNOPSIS
       fblocked channelId
_________________________________________________________________


DESCRIPTION
       The fblocked command returns 1 if the  most  recent  input
       operation  on  channelId  returned  less  information than
       requested because all available input was exhausted.   For
       example,  if  gets  is  invoked  when there are only three
       characters  available  for  input   and   no   end-of-line
       sequence,  gets  returns  an empty string and a subsequent
       call to fblocked will return 1.

       ChannelId must be an identifier for an open  channel  such
       as  a Tcl standard channel (stdin, stdout, or stderr), the
       return value from an invocation of open or socket, or  the
       result  of  a  channel  creation command provided by a Tcl
       extension.

EXAMPLE
       The fblocked command is particularly useful  when  writing
       network  servers, as it allows you to write your code in a
       line-by-line style without  preventing  the  servicing  of
       other  connections.  This can be seen in this simple echo-
       service:

              # This is called whenever a new client connects to the server
              proc connect {chan host port} {
                  set clientName [format <%s:%d> $host $port]
                  puts "connection from $clientName"
                  fconfigure $chan -blocking 0 -buffering line
                  fileevent $chan readable [list echoLine $chan $clientName]
              }

              # This is called whenever either at least one byte of input
              # data is available, or the channel was closed by the client.
              proc echoLine {chan clientName} {
                  gets $chan line
                  if {[eof $chan]} {
                      puts "finishing connection from $clientName"
                      close $chan
                  } elseif {![fblocked $chan]} {
                      # Didn't block waiting for end-of-line
                      puts "$clientName - $line"
                      puts $chan $line
                  }
              }

              # Create the server socket and enter the event-loop to wait
              # for incoming connections...
              socket -server connect 12345
              vwait forever


SEE ALSO
       gets(n), open(n),  read(n),  socket(n),  Tcl_StandardChan-
       nels(3)


KEYWORDS
       blocking, nonblocking



Tcl                            7.5                    fblocked(n)


@@@COMMAND: fconfigure@@@
fconfigure(n)         Tcl Built-In Commands         fconfigure(n)



_________________________________________________________________

NAME
       fconfigure - Set and get options on a channel

SYNOPSIS
       fconfigure channelId
       fconfigure channelId name
       fconfigure channelId name value ?name value ...?
_________________________________________________________________

DESCRIPTION
       The  fconfigure  command  sets  and  retrieves options for
       channels.

       ChannelId identifies the channel for which to set or query
       an  option and must refer to an open channel such as a Tcl
       standard channel (stdin, stdout, or  stderr),  the  return
       value  from an invocation of open or socket, or the result
       of a channel creation command provided by a Tcl extension.

       If  no  name  or value arguments are supplied, the command
       returns a list containing  alternating  option  names  and
       values  for the channel.  If name is supplied but no value
       then the command returns the current value  of  the  given
       option.   If  one or more pairs of name and value are sup-
       plied, the command sets each of the named options  to  the
       corresponding  value;  in this case the return value is an
       empty string.

       The options described below are supported  for  all  chan-
       nels.  In addition, each channel type may add options that
       only it supports. See the manual  entry  for  the  command
       that  creates  each  type of channels for the options that
       that specific type of channel supports. For  example,  see
       the manual entry for the socket command for its additional
       options.

       -blocking boolean
              The -blocking option determines whether I/O  opera-
              tions on the channel can cause the process to block
              indefinitely.  The value of the option  must  be  a
              proper  boolean  value.   Channels  are normally in
              blocking mode;  if a channel is  placed  into  non-
              blocking  mode  it will affect the operation of the
              gets, read, puts,  flush,  and  close  commands  by
              allowing  them  to  operate asynchronously; see the
              documentation for those commands for details.   For
              nonblocking mode to work correctly, the application
              must be using the Tcl event loop (e.g.  by  calling
              Tcl_DoOneEvent or invoking the vwait command).

       -buffering newValue
              If newValue is full then the I/O system will buffer
              output until its internal buffer is full  or  until
              the  flush command is invoked. If newValue is line,
              then the I/O system will automatically flush output
              for  the  channel  whenever  a newline character is
              output. If newValue is none, the  I/O  system  will
              flush  automatically  after every output operation.
              The default is for -buffering to  be  set  to  full
              except  for  channels that connect to terminal-like
              devices; for these channels the initial setting  is
              line.  Additionally, stdin and stdout are initially
              set to line, and stderr is set to none.

       -buffersize newSize
              Newvalue must be an integer; its value is  used  to
              set  the  size  of  buffers, in bytes, subsequently
              allocated for this channel to store input  or  out-
              put.  Newvalue must be between ten and one million,
              allowing buffers of ten to  one  million  bytes  in
              size.

       -encoding name
              This  option is used to specify the encoding of the
              channel, so that the data can be converted  to  and
              from  Unicode  for  use  in  Tcl.  For instance, in
              order for Tcl to read characters  from  a  Japanese
              file  in  shiftjis and properly process and display
              the  contents,  the  encoding  would  be   set   to
              shiftjis.   Thereafter, when reading from the chan-
              nel, the bytes in the Japanese file would  be  con-
              verted  to  Unicode  as  they are read.  Writing is
              also supported - as Tcl strings are written to  the
              channel they will automatically be converted to the
              specified encoding on output.

              If a file contains pure binary data (for  instance,
              a  JPEG image), the encoding for the channel should
              be configured to be binary.  Tcl will  then  assign
              no  interpretation to the data in the file and sim-
              ply read or write raw bytes.  The Tcl  binary  com-
              mand  can  be used to manipulate this byte-oriented
              data.  It is usually better to set the -translation
              option  to  binary when you want to transfer binary
              data, as this turns off the other automatic  inter-
              pretations of the bytes in the stream as well.

              The  default  encoding for newly opened channels is
              the  same  platform-  and  locale-dependent  system
              encoding  used  for  interfacing with the operating
              system, as returned by encoding system.

       -eofchar char

       -eofchar {inChar outChar}
              This option supports DOS file systems that use Con-
              trol-z (\x1a) as an end of file marker.  If char is
              not an empty string, then  this  character  signals
              end-of-file  when  it  is encountered during input.
              For output, the  end-of-file  character  is  output
              when  the  channel is closed.  If char is the empty
              string, then there is no special end of file  char-
              acter  marker.  For read-write channels, a two-ele-
              ment list specifies the  end  of  file  marker  for
              input  and output, respectively.  As a convenience,
              when setting the end-of-file character for a  read-
              write  channel  you can specify a single value that
              will apply  to  both  reading  and  writing.   When
              querying  the end-of-file character of a read-write
              channel,  a  two-element  list   will   always   be
              returned.   The  default  value for -eofchar is the
              empty string in all cases except  for  files  under
              Windows.   In  that  case the -eofchar is Control-z
              (\x1a) for reading and the empty string  for  writ-
              ing.   The  acceptable range for -eofchar values is
              \x01 - \x7f; attempting to set -eofchar to a  value
              outside of this range will generate an error.

       -translation mode

       -translation {inMode outMode}
              In  Tcl  scripts the end of a line is always repre-
              sented using a single newline character (\n).  How-
              ever, in actual files and devices the end of a line
              may be represented differently on  different  plat-
              forms,  or  even  for different devices on the same
              platform.  For example,  under  UNIX  newlines  are
              used  in  files,  whereas  carriage-return-linefeed
              sequences are normally used in network connections.
              On  input  (i.e.,  with  gets and read) the Tcl I/O
              system automatically translates the  external  end-
              of-line  representation  into  newline  characters.
              Upon output  (i.e.,  with  puts),  the  I/O  system
              translates  newlines  to  the  external end-of-line
              representation.   The  default  translation   mode,
              auto,  handles  all the common cases automatically,
              but the -translation option provides explicit  con-
              trol over the end of line translations.

              The  value associated with -translation is a single
              item for read-only and  write-only  channels.   The
              value  is  a  two-element list for read-write chan-
              nels; the read translation mode is the  first  ele-
              ment of the list, and the write translation mode is
              the second element.  As a convenience, when setting
              the  translation  mode for a read-write channel you
              can specify a single value that will apply to  both
              reading and writing.  When querying the translation
              mode of a read-write channel,  a  two-element  list
              will  always be returned.  The following values are
              currently supported:

              auto   As the input translation mode,  auto  treats
                     any  of  newline (lf), carriage return (cr),
                     or carriage return  followed  by  a  newline
                     (crlf)  as  the  end of line representation.
                     The end  of  line  representation  can  even
                     change  from line-to-line, and all cases are
                     translated to  a  newline.   As  the  output
                     translation  mode,  auto  chooses a platform
                     specific representation; for sockets on  all
                     platforms  Tcl  chooses  crlf,  for all Unix
                     flavors, it chooses lf, and for the  various
                     flavors  of  Windows  it  chooses crlf.  The
                     default setting for -translation is auto for
                     both input and output.

              binary No  end-of-line  translations are performed.
                     This is nearly identical to lf mode,  except
                     that  in  addition binary mode also sets the
                     end-of-file character to  the  empty  string
                     (which disables it) and sets the encoding to
                     binary (which disables encoding  filtering).
                     See  the description of -eofchar and -encod-
                     ing for more information.

                     Internally, i.e. when it comes to the actual
                     behaviour  of  the  translator this value is
                     identical to lf and is therefore reported as
                     such  when  queried. Even if binary was used
                     to set the translation.

              cr     The end of a line in the underlying file  or
                     device  is  represented by a single carriage
                     return character.  As the input  translation
                     mode,  cr  mode converts carriage returns to
                     newline characters.  As the output  transla-
                     tion  mode, cr mode translates newline char-
                     acters to carriage returns.

              crlf   The end of a line in the underlying file  or
                     device  is  represented by a carriage return
                     character followed by a linefeed  character.
                     As  the  input  translation  mode, crlf mode
                     converts carriage-return-linefeed  sequences
                     to newline characters.  As the output trans-
                     lation mode, crlf  mode  translates  newline
                     characters    to    carriage-return-linefeed
                     sequences.  This mode is typically  used  on
                     Windows  platforms  and  for network connec-
                     tions.

              lf     The end of a line in the underlying file  or
                     device  is  represented  by a single newline
                     (linefeed)  character.   In  this  mode   no
                     translations  occur  during  either input or
                     output.  This mode is typically used on UNIX
                     platforms.


STANDARD CHANNELS
       The  Tcl standard channels (stdin, stdout, and stderr) can
       be configured through this command like every other  chan-
       nel opened by the Tcl library. Beyond the standard options
       described above they will also support any special  option
       according  to  their current type.  If, for example, a Tcl
       application is started by the inet super-server common  on
       Unix  system its Tcl standard channels will be sockets and
       thus support the socket options.

EXAMPLES
       Instruct Tcl to always send output to stdout  immediately,
       whether or not it is to a terminal:
              fconfigure stdout -buffering none

       Open a socket and read lines from it without ever blocking
       the processing of other events:
              set s [socket some.where.com 12345]
              fconfigure $s -blocking 0
              fileevent $s readable "readMe $s"
              proc readMe chan {
                 if {[gets $chan line] < 0} {
                    if {[eof $chan]} {
                       close $chan
                       return
                    }
                    # Could not read a complete line this time; Tcl's
                    # internal buffering will hold the partial line for us
                    # until some more data is available over the socket.
                 } else {
                    puts stdout $line
                 }
              }

       Read a PPM-format image from a file:
              # Open the file and put it into Unix ASCII mode
              set f [open teapot.ppm]
              fconfigure $f -encoding ascii -translation lf

              # Get the header
              if {[gets $f] ne "P6"} {
                 error "not a raw-bits PPM"
              }

              # Read lines until we have got non-comment lines
              # that supply us with three decimal values.
              set words {}
              while {[llength $words] < 3} {
                 gets $f line
                 if {[string match "#*" $line]} continue
                 lappend words {*}[join [scan $line %d%d%d]]
              }

              # Those words supply the size of the image and its
              # overall depth per channel. Assign to variables.
              lassign $words xSize ySize depth

              # Now switch to binary mode to pull in the data,
              # one byte per channel (red,green,blue) per pixel.
              fconfigure $f -translation binary
              set numDataBytes [expr {3 * $xSize * $ySize}]
              set data [read $f $numDataBytes]

              close $f


SEE ALSO
       close(n), flush(n), gets(n),  open(n),  puts(n),  read(n),
       socket(n), Tcl_StandardChannels(3)


KEYWORDS
       blocking,  buffering, carriage return, end of line, flush-
       ing, linemode, newline,  nonblocking,  platform,  transla-
       tion, encoding, filter, byte array, binary



Tcl                            8.3                  fconfigure(n)


@@@COMMAND: fcopy@@@
fcopy(n)              Tcl Built-In Commands              fcopy(n)



_________________________________________________________________

NAME
       fcopy - Copy data from one channel to another

SYNOPSIS
       fcopy inchan outchan ?-size size? ?-command callback?
_________________________________________________________________


DESCRIPTION
       The fcopy command copies data from one I/O channel, inchan
       to another I/O channel, outchan.  The fcopy command lever-
       ages  the  buffering  in the Tcl I/O system to avoid extra
       copies and to avoid buffering too much data in main memory
       when copying large files to slow destinations like network
       sockets.

       The fcopy command transfers data from inchan until end  of
       file  or  size  bytes  have  been transferred. If no -size
       argument is given, then the copy goes until end  of  file.
       All the data read from inchan is copied to outchan.  With-
       out the -command option, fcopy blocks until  the  copy  is
       complete  and  returns  the  number  of  bytes  written to
       outchan.

       The -command argument makes fcopy work in the  background.
       In  this  case  it returns immediately and the callback is
       invoked later when the copy completes.   The  callback  is
       called with one or two additional arguments that indicates
       how many bytes were  written  to  outchan.   If  an  error
       occurred  during  the background copy, the second argument
       is the error string associated with  the  error.   With  a
       background  copy,  it  is  not  necessary to put inchan or
       outchan into non-blocking mode; the  fcopy  command  takes
       care  of  that automatically.  However, it is necessary to
       enter the event loop by using  the  vwait  command  or  by
       using Tk.

       You are not allowed to do other I/O operations with inchan
       or outchan during a background fcopy.  If either inchan or
       outchan get closed while the copy is in progress, the cur-
       rent copy is stopped and the command callback is not made.
       If  inchan  is  closed,  then  all data already queued for
       outchan is written out.

       Note that inchan can become readable during  a  background
       copy.  You should turn off any fileevent handlers during a
       background copy so those handlers do  not  interfere  with
       the  copy.   Any I/O attempted by a fileevent handler will
       get a "channel busy" error.

       Fcopy  translates  end-of-line  sequences  in  inchan  and
       outchan  according  to  the  -translation option for these
       channels.  See the manual entry for fconfigure for details
       on  the  -translation  option.  The translations mean that
       the number of bytes read from inchan can be different than
       the  number  of bytes written to outchan.  Only the number
       of bytes written to outchan is  reported,  either  as  the
       return  value of a synchronous fcopy or as the argument to
       the callback for an asynchronous fcopy.

       Fcopy obeys the encodings and character translations  con-
       figured  for  the  channels.  This means that the incoming
       characters are converted internally first UTF-8  and  then
       into  the encoding of the channel fcopy writes to. See the
       manual entry for fconfigure for details on  the  -encoding
       and  -translation  options.  No conversion is done if both
       channels are set to encoding "binary"  and  have  matching
       translations.  If only the output channel is set to encod-
       ing "binary" the system will write the internal UTF-8 rep-
       resentation  of the incoming characters. If only the input
       channel is set to encoding "binary" the system will assume
       that  the  incoming  bytes  are valid UTF-8 characters and
       convert  them  according  to  the  output  encoding.   The
       behaviour  of  the  system  for  bytes which are not valid
       UTF-8 characters is undefined in this case.


EXAMPLES
       The first example transfers the contents  of  one  channel
       exactly  to  another.  Note  that when copying one file to
       another, it is better to use file copy which  also  copies
       file  metadata  (e.g.  the  file access permissions) where
       possible.
              fconfigure $in -translation binary
              fconfigure $out -translation binary
              fcopy $in $out

       This second example shows how the callback gets passed the
       number  of  bytes  transferred.  It also uses vwait to put
       the application into the event loop.  Of course, this sim-
       plified  example  could  be done without the command call-
       back.
              proc Cleanup {in out bytes {error {}}} {
                  global total
                  set total $bytes
                  close $in
                  close $out
                  if {[string length $error] != 0} {
                # error occurred during the copy
                  }
              }
              set in [open $file1]
              set out [socket $server $port]
              fcopy $in $out -command [list Cleanup $in $out]
              vwait total

       The third example copies in chunks and tests  for  end  of
       file in the command callback
              proc CopyMore {in out chunk bytes {error {}}} {
                  global total done
                  incr total $bytes
                  if {([string length $error] != 0) || [eof $in]} {
                set done $total
                close $in
                close $out
                  } else {
                fcopy $in $out -size $chunk \
                              -command [list CopyMore $in $out $chunk]
                  }
              }
              set in [open $file1]
              set out [socket $server $port]
              set chunk 1024
              set total 0
              fcopy $in $out -size $chunk \
                      -command [list CopyMore $in $out $chunk]
              vwait done


SEE ALSO
       eof(n), fblocked(n), fconfigure(n), file(n)


KEYWORDS
       blocking,  channel, end of line, end of file, nonblocking,
       read, translation



Tcl                            8.0                       fcopy(n)


@@@COMMAND: file@@@
file(n)               Tcl Built-In Commands               file(n)



_________________________________________________________________

NAME
       file - Manipulate file names and attributes

SYNOPSIS
       file option name ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       This  command provides several operations on a file's name
       or attributes.  Name is the name of a file; if  it  starts
       with  a tilde, then tilde substitution is done before exe-
       cuting the command (see the manual entry for filename  for
       details).  Option indicates what to do with the file name.
       Any unique abbreviation for  option  is  acceptable.   The
       valid options are:

       file atime name ?time?
              Returns  a  decimal string giving the time at which
              file name was last accessed.  If time is specified,
              it is an access time to set for the file.  The time
              is measured in the standard POSIX fashion  as  sec-
              onds  from  a fixed starting time (often January 1,
              1970).  If the file does not exist  or  its  access
              time cannot be queried or set then an error is gen-
              erated.  On Windows, FAT file systems do  not  sup-
              port access time.

       file attributes name

       file attributes name ?option?

       file attributes name ?option value option value...?
              This  subcommand  returns or sets platform specific
              values associated  with  a  file.  The  first  form
              returns  a  list of the platform specific flags and
              their values. The second form returns the value for
              the  specific  option.  The  third form sets one or
              more of the values. The values are as follows:

              On Unix, -group gets or sets the group name for the
              file.  A  group id can be given to the command, but
              it returns a group name. -owner gets  or  sets  the
              user  name  of  the  owner of the file. The command
              returns the owner name, but the numerical id can be
              passed when setting the owner. -permissions sets or
              retrieves the octal code that chmod(1) uses.   This
              command  does  also has limited support for setting
              using the symbolic attributes for chmod(1), of  the
              form   [ugo]?[[+-=][rwxst],[...]],  where  multiple
              symbolic attributes  can  be  separated  by  commas
              (example: u+s,go-rw add sticky bit for user, remove
              read and write permissions for group and other).  A
              simplified  ls  style string, of the form rwxrwxrwx
              (must be 9 characters), is also supported (example:
              rwxr-xr-t  is equivalent to 01755).  On versions of
              Unix supporting file  flags,  -readonly  gives  the
              value  or  sets or clears the readonly attribute of
              the file, i.e. the  user  immutable  flag  uchg  to
              chflags(1).

              On  Windows,  -archive  gives  the value or sets or
              clears the archive attribute of the  file.  -hidden
              gives  the  value  or  sets  or  clears  the hidden
              attribute of the file. -longname will  expand  each
              path  element  to  its long version. This attribute
              cannot be set. -readonly gives the value or sets or
              clears  the readonly attribute of the file. -short-
              name gives a string where  every  path  element  is
              replaced  with its short (8.3) version of the name.
              This attribute cannot be set. -system gives or sets
              or  clears the value of the system attribute of the
              file.

              On Mac OS X and Darwin, -creator gives or sets  the
              Finder  creator  type of the file. -hidden gives or
              sets or clears the hidden attribute  of  the  file.
              -readonly  gives  or  sets  or  clears the readonly
              attribute of the file. -rsrclength gives the length
              of  the  resource  fork of the file, this attribute
              can only be set to the value 0,  which  results  in
              the resource fork being stripped off the file.

       file channels ?pattern?
              If  pattern  is  not  specified,  returns a list of
              names of  all  registered  open  channels  in  this
              interpreter.   If  pattern is specified, only those
              names matching pattern are returned.   Matching  is
              determined  using  the  same  rules  as  for string
              match.

       file copy ?-force? ?--? source target

       file copy ?-force? ?--? source ?source ...? targetDir
              The first form makes a copy of the file  or  direc-
              tory source under the pathname target. If target is
              an existing directory,  then  the  second  form  is
              used.   The second form makes a copy inside target-
              Dir of each source file listed.  If a directory  is
              specified  as  a  source,  then the contents of the
              directory will be recursively copied  into  target-
              Dir.  Existing files will not be overwritten unless
              the -force option is specified (when Tcl will  also
              attempt  to  adjust  permissions on the destination
              file or directory if that is necessary to allow the
              copy  to  proceed).   When  copying within a single
              filesystem, file copy will copy  soft  links  (i.e.
              the  links  themselves  are  copied, not the things
              they point to).  Trying to  overwrite  a  non-empty
              directory,  overwrite  a  directory with a file, or
              overwrite a file with a directory will  all  result
              in  errors even if -force was specified.  Arguments
              are processed in the order  specified,  halting  at
              the  first  error,  if  any.  A -- marks the end of
              switches; the argument following  the  --  will  be
              treated as a source even if it starts with a -.

       file delete ?-force? ?--? pathname ?pathname ... ?
              Removes  the  file  or  directory specified by each
              pathname argument.  Non-empty directories  will  be
              removed  only  if  the  -force option is specified.
              When operating on symbolic links, the  links  them-
              selves  will be deleted, not the objects they point
              to.  Trying to delete a non-existent  file  is  not
              considered  an error.  Trying to delete a read-only
              file will cause the file to be deleted, even if the
              -force  flags  is  not  specified.   If  the -force
              option  is  specified  on  a  directory,  Tcl  will
              attempt  both  to  change  permissions and move the
              current directory "pwd" out of the  given  path  if
              that is necessary to allow the deletion to proceed.
              Arguments are processed  in  the  order  specified,
              halting at the first error, if any.  A -- marks the
              end of switches; the argument following the -- will
              be  treated  as a pathname even if it starts with a
              -.

       file dirname name
              Returns a name comprised of all of the path  compo-
              nents  in name excluding the last element.  If name
              is a relative file name and only contains one  path
              element,  then  returns  ".".   If name refers to a
              root  directory,  then  the   root   directory   is
              returned.  For example,
                     file dirname c:/
              returns c:/.

              Note that tilde substitution will only be performed
              if it is necessary to  complete  the  command.  For
              example,
                     file dirname ~/src/foo.c
              returns ~/src, whereas
                     file dirname ~
              returns /home (or something similar).

       file executable name
              Returns 1 if file name is executable by the current
              user, 0 otherwise.

       file exists name
              Returns 1 if file name exists and the current  user
              has  search  privileges for the directories leading
              to it, 0 otherwise.

       file extension name
              Returns all of the characters  in  name  after  and
              including the last dot in the last element of name.
              If there is no dot in the last element of name then
              returns the empty string.

       file isdirectory name
              Returns 1 if file name is a directory, 0 otherwise.

       file isfile name
              Returns 1 if file name is a regular file, 0  other-
              wise.

       file join name ?name ...?
              Takes  one  or  more  file names and combines them,
              using the correct path separator  for  the  current
              platform.   If  a particular name is relative, then
              it will be joined to the previous file  name  argu-
              ment.   Otherwise,  any  earlier  arguments will be
              discarded, and joining will proceed from  the  cur-
              rent argument.  For example,
                     file join a b /foo bar
              returns /foo/bar.

              Note  that any of the names can contain separators,
              and that the result is  always  canonical  for  the
              current platform: / for Unix and Windows.

       file link ?-linktype? linkName ?target?
              If  only  one  argument  is given, that argument is
              assumed to be linkName, and  this  command  returns
              the  value  of the link given by linkName (i.e. the
              name of the file it points to).  If linkName is not
              a  link  or its value cannot be read (as, for exam-
              ple, seems to be the case with  hard  links,  which
              look  just  like  ordinary files), then an error is
              returned.

              If 2 arguments are given, then these are assumed to
              be linkName and target. If linkName already exists,
              or if target does  not  exist,  an  error  will  be
              returned.  Otherwise, Tcl creates a new link called
              linkName which points to  the  existing  filesystem
              object  at  target  (which  is  also  the  returned
              value), where the type of the link is platform-spe-
              cific   (on  Unix  a  symbolic  link  will  be  the
              default).  This is useful for the  case  where  the
              user  wishes  to  create a link in a cross-platform
              way, and does not care what type of  link  is  cre-
              ated.

              If  the  user  wishes  to make a link of a specific
              type only, (and signal an error if for some  reason
              that  is not possible), then the optional -linktype
              argument should  be  given.   Accepted  values  for
              -linktype are "-symbolic" and "-hard".

              On  Unix,  symbolic  links  can be made to relative
              paths, and those paths  must  be  relative  to  the
              actual linkName's location (not to the cwd), but on
              all other platforms where relative  links  are  not
              supported, target paths will always be converted to
              absolute, normalized form before the link  is  cre-
              ated  (and therefore relative paths are interpreted
              as relative  to  the  cwd).   Furthermore,  "~user"
              paths  are  always expanded to absolute form.  When
              creating links on filesystems that  either  do  not
              support  any  links, or do not support the specific
              type requested, an error message will be  returned.
              In  particular Windows 95, 98 and ME do not support
              any links at present, but most Unix platforms  sup-
              port  both  symbolic and hard links (the latter for
              files only) and Windows NT/2000/XP (on NTFS drives)
              support  symbolic  directory  links  and  hard file
              links.

       file lstat name varName
              Same as stat option (see  below)  except  uses  the
              lstat kernel call instead of stat.  This means that
              if name refers to a symbolic link  the  information
              returned in varName is for the link rather than the
              file it refers to.  On systems that do not  support
              symbolic links this option behaves exactly the same
              as the stat option.

       file mkdir dir ?dir ...?
              Creates each directory specified.  For  each  path-
              name  dir  specified,  this command will create all
              non-existing parent  directories  as  well  as  dir
              itself.   If  an  existing  directory is specified,
              then no action is taken and no error  is  returned.
              Trying  to overwrite an existing file with a direc-
              tory will result in an error.  Arguments  are  pro-
              cessed in the order specified, halting at the first
              error, if any.

       file mtime name ?time?
              Returns a decimal string giving the time  at  which
              file name was last modified.  If time is specified,
              it is a modification  time  to  set  for  the  file
              (equivalent  to  Unix touch).  The time is measured
              in the standard POSIX fashion  as  seconds  from  a
              fixed  starting  time  (often January 1, 1970).  If
              the file does not exist or its modified time cannot
              be queried or set then an error is generated.

       file nativename name
              Returns  the  platform-specific  name  of the file.
              This is useful if the filename is needed to pass to
              a  platform-specific  call, such as to a subprocess
              via exec under Windows (see EXAMPLES below).

       file normalize name
              Returns a unique normalized path representation for
              the  file-system  object  (file,  directory,  link,
              etc), whose string value can be used  as  a  unique
              identifier  for  it.  A normalized path is an abso-
              lute path which has all  "../"  and  "./"  removed.
              Also  it  is  one which is in the "standard" format
              for the native platform.  On Unix, this  means  the
              segments  leading  up  to  the path must be free of
              symbolic links/aliases (but the very last path com-
              ponent  may  be a symbolic link), and on Windows it
              also means we want the long form with  that  form's
              case-dependence  (which  gives  us  a unique, case-
              dependent path).  The one exception concerning  the
              last  link in the path is necessary, because Tcl or
              the user may wish to operate on the actual symbolic
              link  itself (for example file delete, file rename,
              file copy are defined to operate on symbolic links,
              not on the things that they point to).

       file owned name
              Returns  1  if  file  name  is owned by the current
              user, 0 otherwise.

       file pathtype name
              Returns one of absolute, relative,  volumerelative.
              If  name  refers  to  a specific file on a specific
              volume, the path type will  be  absolute.  If  name
              refers  to  a  file relative to the current working
              directory, then the path type will be relative.  If
              name refers to a file relative to the current work-
              ing directory on a specified volume, or to  a  spe-
              cific  file on the current working volume, then the
              path type is volumerelative.

       file readable name
              Returns 1 if file name is readable by  the  current
              user, 0 otherwise.

       file readlink name
              Returns  the  value  of  the symbolic link given by
              name (i.e. the name of the file it points to).   If
              name  is npt a symbolic link or its value cannot be
              read, then an error is returned.  On  systems  that
              do  not support symbolic links this option is unde-
              fined.

       file rename ?-force? ?--? source target

       file rename ?-force? ?--? source ?source ...? targetDir
              The first form takes the file or  directory  speci-
              fied  by  pathname source and renames it to target,
              moving the file if the pathname target specifies  a
              name  in  a  different  directory.  If target is an
              existing directory, then the second form  is  used.
              The second form moves each source file or directory
              into the directory targetDir. Existing  files  will
              not  be  overwritten  unless  the  -force option is
              specified.  When operating inside a single filesys-
              tem, Tcl will rename symbolic links rather than the
              things that they point to.  Trying to  overwrite  a
              non-empty  directory,  overwrite a directory with a
              file, or a file with a directory will all result in
              errors.  Arguments are processed in the order spec-
              ified, halting at the first error, if  any.   A  --
              marks  the  end of switches; the argument following
              the -- will be treated  as  a  source  even  if  it
              starts with a -.

       file rootname name
              Returns all of the characters in name up to but not
              including the last "."  character in the last  com-
              ponent of name.  If the last component of name does
              not contain a dot, then returns name.

       file separator ?name?
              If no argument  is  given,  returns  the  character
              which  is used to separate path segments for native
              files on this platform.  If a path  is  given,  the
              filesystem  responsible  for  that path is asked to
              return its separator character.  If no file  system
              accepts name, an error is generated.

       file size name
              Returns  a  decimal  string giving the size of file
              name in bytes.  If the file does not exist  or  its
              size  cannot be queried then an error is generated.

       file split name
              Returns a list whose elements are the  path  compo-
              nents  in name.  The first element of the list will
              have the same path type as name.   All  other  ele-
              ments  will  be  relative.  Path separators will be
              discarded unless they are  needed  ensure  that  an
              element  is  unambiguously  relative.  For example,
              under Unix
                     file split /foo/~bar/baz
              returns /  foo  ./~bar  baz to  ensure  that  later
              commands  that  use  the  third  component  do  not
              attempt to perform tilde substitution.

       file stat  name varName
              Invokes the stat kernel call on name, and uses  the
              variable  given  by  varName  to  hold  information
              returned from the kernel call.  VarName is  treated
              as an array variable, and the following elements of
              that variable are set: atime, ctime, dev, gid, ino,
              mode,  mtime, nlink, size, type, uid.  Each element
              except type is a decimal string with the  value  of
              the corresponding field from the stat return struc-
              ture; see the manual entry for stat for details  on
              the meanings of the values.  The type element gives
              the type of the file in the same form  returned  by
              the  command  file  type.   This command returns an
              empty string.

       file system name
              Returns a list of one or two elements, the first of
              which  is the name of the filesystem to use for the
              file, and the second, if given, an arbitrary string
              representing the filesystem-specific nature or type
              of the  location  within  that  filesystem.   If  a
              filesystem  only  supports  one  type  of file, the
              second element may not be  supplied.   For  example
              the native files have a first element "native", and
              a second element which when given  is  a  platform-
              specific  type  name  for  the  file's system (e.g.
              "NTFS", "FAT", on Windows).  A generic virtual file
              system might return the list "vfs ftp" to represent
              a file on a remote ftp site mounted  as  a  virtual
              filesystem  through  an extension called "vfs".  If
              the file does not  belong  to  any  filesystem,  an
              error is generated.

       file tail name
              Returns  all of the characters in the last filesys-
              tem component of name.  Any trailing directory sep-
              arator  in  name  is  ignored.  If name contains no
              separators then returns name.  So, file  tail  a/b,
              file tail a/b/ and file tail b all return b.

       file type name
              Returns  a  string  giving  the  type of file name,
              which will be one of file, directory, characterSpe-
              cial, blockSpecial, fifo, link, or socket.

       file volumes
              Returns  the  absolute paths to the volumes mounted
              on the system, as a proper Tcl list.   Without  any
              virtual  filesystems  mounted  as  root volumes, on
              UNIX, the command will always return "/", since all
              filesystems  are  locally  mounted.  On Windows, it
              will return a list of the  available  local  drives
              (e.g.   "a:/  c:/").  If any virtual filesystem has
              mounted additional volumes, they  will  be  in  the
              returned list.

       file writable name
              Returns  1  if file name is writable by the current
              user, 0 otherwise.

PORTABILITY ISSUES
       Unix
              These commands always operate using the  real  user
              and group identifiers, not the effective ones.

EXAMPLES
       This  procedure shows how to search for C files in a given
       directory that have a correspondingly-named object file in
       the current directory:
              proc findMatchingCFiles {dir} {
                 set files {}
                 switch $::tcl_platform(platform) {
                    windows {
                       set ext .obj
                    }
                    unix {
                       set ext .o
                    }
                 }
                 foreach file [glob -nocomplain -directory $dir *.c] {
                    set objectFile [file tail [file rootname $file]]$ext
                    if {[file exists $objectFile]} {
                       lappend files $file
                    }
                 }
                 return $files
              }

       Rename  a file and leave a symbolic link pointing from the
       old location to the new place:
              set oldName foobar.txt
              set newName foo/bar.txt
              # Make sure that where we're going to move to exists...
              if {![file isdirectory [file dirname $newName]]} {
                 file mkdir [file dirname $newName]
              }
              file rename $oldName $newName
              file link -symbolic $oldName $newName

       On Windows, a file can be "started" easily enough (equiva-
       lent  to  double-clicking on it in the Explorer interface)
       but the name passed to the operating  system  must  be  in
       native format:
              exec {*}[auto_execok start] {} [file nativename ~/example.txt]

SEE ALSO
       filename(n),  open(n), close(n), eof(n), gets(n), tell(n),
       seek(n), fblocked(n), flush(n)

KEYWORDS
       attributes, copy files,  delete  files,  directory,  file,
       move files, name, rename files, stat



Tcl                            8.3                        file(n)


@@@COMMAND: fileevent@@@
fileevent(n)          Tcl Built-In Commands          fileevent(n)



_________________________________________________________________

NAME
       fileevent  - Execute a script when a channel becomes read-
       able or writable

SYNOPSIS
       fileevent channelId readable ?script?

       fileevent channelId writable ?script?
_________________________________________________________________


DESCRIPTION
       This command is used to create  file  event  handlers.   A
       file  event  handler  is a binding between a channel and a
       script, such that the script  is  evaluated  whenever  the
       channel becomes readable or writable.  File event handlers
       are most commonly used to allow data to be  received  from
       another  process  on  an  event-driven  basis, so that the
       receiver can continue to  interact  with  the  user  while
       waiting for the data to arrive.  If an application invokes
       gets or read on a blocking channel when there is no  input
       data  available,  the  process will block; until the input
       data arrives, it will not be able to service other events,
       so  it  will  appear  to  the  user  to "freeze up".  With
       fileevent, the process can tell when data is  present  and
       only invoke gets or read when they will not block.

       The  channelId  argument  to  fileevent  refers to an open
       channel such as a Tcl standard channel (stdin, stdout,  or
       stderr),  the  return  value from an invocation of open or
       socket, or the result of a channel creation  command  pro-
       vided by a Tcl extension.

       If  the  script argument is specified, then fileevent cre-
       ates a new event handler:  script will be evaluated  when-
       ever  the  channel becomes readable or writable (depending
       on the  second  argument  to  fileevent).   In  this  case
       fileevent  returns  an  empty  string.   The  readable and
       writable event handlers for a file  are  independent,  and
       may be created and deleted separately.  However, there may
       be at most one readable and one  writable  handler  for  a
       file at a given time in a given interpreter.  If fileevent
       is called when the specified handler already exists in the
       invoking interpreter, the new script replaces the old one.

       If the script argument is not specified, fileevent returns
       the  current  script  for channelId, or an empty string if
       there is none.  If the script argument is specified as  an
       empty string then the event handler is deleted, so that no
       script will be invoked.  A  file  event  handler  is  also
       deleted  automatically  whenever  its channel is closed or
       its interpreter is deleted.

       A channel is considered to be readable if there is  unread
       data  available  on  the  underlying device.  A channel is
       also considered to be readable if there is unread data  in
       an input buffer, except in the special case where the most
       recent attempt to read from the channel was  a  gets  call
       that  could  not find a complete line in the input buffer.
       This feature allows a file to be read a line at a time  in
       nonblocking  mode using events.  A channel is also consid-
       ered to be readable if an end of file or  error  condition
       is present on the underlying file or device.  It is impor-
       tant for script to check for these conditions  and  handle
       them  appropriately;   for example, if there is no special
       check for end of file, an infinite loop  may  occur  where
       script  reads no data, returns, and is immediately invoked
       again.

       A channel is considered to be writable  if  at  least  one
       byte  of  data  can  be  written to the underlying file or
       device without blocking,  or  if  an  error  condition  is
       present on the underlying file or device.

       Event-driven  I/O  works  best for channels that have been
       placed into nonblocking mode with the fconfigure  command.
       In  blocking mode, a puts command may block if you give it
       more data than the underlying file or device  can  accept,
       and  a  gets  or read command will block if you attempt to
       read more data than is ready;  no events will be processed
       while the commands block.  In nonblocking mode puts, read,
       and gets never block.  See the documentation for the indi-
       vidual  commands for information on how they handle block-
       ing and nonblocking channels.

       The script for a file event is executed  at  global  level
       (outside  the  context of any Tcl procedure) in the inter-
       preter in which the fileevent command was invoked.  If  an
       error  occurs  while executing the script then the command
       registered with interp  bgerror  is  used  to  report  the
       error.   In addition, the file event handler is deleted if
       it ever returns an error;  this is done in order  to  pre-
       vent infinite loops due to buggy handlers.

EXAMPLE
       In  this  setup GetData will be called with the channel as
       an argument whenever $chan becomes readable.
              proc GetData {chan} {
                  if {![eof $chan]} {
                      puts [gets $chan]
                  }
              }

              fileevent $chan readable [list GetData $chan]


CREDITS
       fileevent is based on the addinput command created by Mark
       Diekhans.


SEE ALSO
       fconfigure(n),   gets(n),   interp(n),  puts(n),  read(n),
       Tcl_StandardChannels(3)


KEYWORDS
       asynchronous I/O, blocking, channel, event  handler,  non-
       blocking, readable, script, writable.



Tcl                            7.5                   fileevent(n)


@@@COMMAND: filter@@@
filter

Description: 
Filter a list, resulting in new list

Syntax: 
filter  [-regexp] [-nocase] [-quiet] [-verbose] [<objects>] [<filter>]

Returns: 
new list

Usage: 
  Name         Description
  ------------------------
  [-regexp]    Operators =~ and !~ use regular expressions
  [-nocase]    Perform case-insensitive matching (valid only when -regexp 
               specified)
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<objects>]  List of objects to filter
  [<filter>]   Filter list with expression

Categories: 
Object, PropertyAndParameter, XDC

Description:

  Takes a list of objects, and returns a reduced list of objects that match
  the specified filter search pattern.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) A list of objects that should be filtered to reduce
  the set to the desired results. The list of objects can be obtained by
  using one of the many get_* commands such as get_parts.

  <filter> - (Optional) The expression to use for filtering. The specified
  pattern filters the list of objects returned based on property values on
  the objects. You can find out which properties are on an object with the
  report_property or list_property command. Any property/value pair can be
  used as a filter. For example, in the case of the "part" object, "DEVICE",
  "FAMILY" and "SPEED" are some of the properties that can be used to filter
  results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

Examples:

  The following example returns a list of parts filtered for the specified
  speed grade:

    filter [get_parts] {speed == -3} 
    

  The following example filters parts based according to speed grade -3 OR
  speed grade -2. All parts matching either speed grade will be returned.

    filter [get_parts] {speed == -3  ||  speed == -2} 
    

  The following example uses regular expression and returns a list of VStatus
  ports in the design, with zero or more wildcards, and the numbers 0 to 9
  appearing one or more times within square brackets:

    filter -regexp [get_ports] {NAME =~ VStatus.*\[[0-9]+\]} 
    

See Also:

   *  get_parts

   *  get_ports


@@@COMMAND: find_routing_path@@@
find_routing_path

Description: 
Find a routing path between two nodes.

Syntax: 
find_routing_path  [-from <args>] [-to <args>] [-max_nodes <arg>]
                   [-min_nodes <arg>] [-exclude_nodes <args>]
                   [-include_nodes <args>] [-sort_include_nodes]
                   [-ignore_all_routing] [-show_fixed_routes] [-allow_overlap]
                   [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-from]                -from <start node> or <start site_pin> Start of 
                         routing path.
  [-to]                  -to <end node> or <end site_pin> End of routing 
                         path.
  [-max_nodes]           Specifies the maximum number of nodes (including 
                         from and to nodes) allowed in solution.
                         Default: 500
  [-min_nodes]           Specifies the minimum number of nodes (including 
                         from and to nodes) allowed in solution.
                         Default: 2
  [-exclude_nodes]       Exclude specified nodes from routing path.
  [-include_nodes]       Specify the nodes which must exist in the path.
  [-sort_include_nodes]  Sort the given nodes which must exist in the path.
  [-ignore_all_routing]  Solution may include nodes used in any existing 
                         (including fixed) routes.
  [-show_fixed_routes]   Solution will mark fix routes with '*'.
  [-allow_overlap]       Solution may include nodes used in existing 
                         non-fixed routes.
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Device, Object

Description:

  Finds a routing solution between two nodes on an unrouted, or partially
  routed net, in an implemented design.

  This command can be used to define a routing path to assign to the FIXED_ROUTE
  property of a net, which can be saved to the XDC file for later reuse. Refer
  to Vivado Design Suite Tutorial: Implementation (UG986) for an example of 
  manual routing and the use of the FIXED_ROUTE property.

  You must define nodes for the start and end points of the routing path, and can
  specify the maximum and minimum number of nodes to use for the route path,
  including the start and end points. The nodes must be specified as objects
  returned by the get_nodes command. For unrouted net objects, since nodes have
  not been assigned to the net, the nodes can be found by association of the net
  to the bel_pin or site_pin:

   *  Net > Bel_Pin > Bel > Tile > Node

   *  Net > Site_Pin > Tile > Node

  For partially routed nets, the nodes can be found associated directly tothe net.
  Refer to the Vivado Design Suite Properties Reference Guide (UG912) for more
  information on the relationship between these objects.

  The find_routing_path command returns a list of nodes representing the route 
  path found from the start point to the end point, or returns "no path found"
  if the command runs but has no result, or returns an error if the command fails
  to run.

  The returned list of nodes can be assigned to the FIXED_ROUTE property using
  the set_property command as shown in the example.

  Note: The report_property command does not return the string of the FIXED_ROUTE
  property. Use the get_property command instead.

Arguments:

  Note: This option can be used to generate a meandering route that will provide
  some added timing delay.

  -from <arg> - (Optional) The starting node of the route path. Nodes must be
   specified as objects returned by the get_nodes command.

  -to <arg> - (Optional) The ending node of the route path. Nodes must be
   specified as objects returned by the get_nodes command.

  -max_nodes <arg> - (Optional) Indicates the maximum number of nodes the route
   can contain, including the -from node and the -to node. The default is 500.

  -min_nodes <arg> - (Optional) Indicates the minimum number of nodes the route
   can contain, including the -from node and the -to node. The default is 2, and
   the value specified must be >= 2.

  -exclude_nodes <args> - Excludes given nodes from the path which would be found.

  -include_nodes <args> - Considers given nodes while finding a path, so the path
   will pass through those nodes.

  -sort_include_nodes - Sorts the given include nodes(Defasul value is "false").

  -allow_overlap - (Optional) Enable a loose style of routing which can create
   conflicts that must be later resolved. These overlapping routes will need to
   be cleaned up to eliminate routing conflicts. Route conflicts can be
   identified using the report_route_status command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
   the command. The command also returns TCL_OK regardless of any errors
   encountered during execution.

  Note: Any errors encountered on the command-line, while launching the command,
  will be returned. Only errors occurring inside the command will be trapped.

  -verbose - (Optional) Temporarily override any message limits and return all
   messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example finds a routing path for the specified net, using one
  end as the -from point and the other end as the -to point, and assigns that
  path to the specified Tcl variable. Then it uses that Tcl variable to
  assign the path to the FIXED_ROUTE property of the net:

    set fndPath [find_routing_path -from [lindex [get_nodes -of \
       [get_site_pins -of [get_nets wbOutputData_OBUF[14]]]] 0] -to \
       [lindex [get_nodes -of  [get_site_pins -of \
       [get_nets wbOutputData_OBUF[14]]]] 1]]
    set_property FIXED_ROUTE $fndPath [get_nets wbOutputData_OBUF[14]]


See Also:

   *  get_bel_pins
   *  get_nets
   *  get_nodes
   *  get_property
   *  get_site_pins
   *  report_property
   *  report_route_status
   *  set_property


@@@COMMAND: find_top@@@
find_top

Description: 
Find top module candidates in the supplied files, fileset, or active fileset. Returns a rank ordered list of candidates.

Syntax: 
find_top  [-fileset <arg>] [-files <args>] [-return_file_paths] [-quiet]
          [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-fileset]            Fileset to parse to search for top candidates
  [-files]              Files to parse to search for top candidates
  [-return_file_paths]  For each top returned, also include the associated 
                        file path. The returned value will be a single list 
                        of strings, alternating top names and file paths.
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Project

Description:

  Find the most likely candidates for the top module in the files defined in
  the current fileset, or in the specified fileset, or in the specified list
  of files.

  The command returns an ordered list of modules that the tool identifies as
  the best candidates for the top-level of the design. You can use the lindex
  command, and choose index 0 to select the best candidate for the top
  module.

Arguments:

  -fileset <arg> - (Optional) Search the specified simulation or source
  fileset for top module candidates. The default is to search the current
  fileset of the current design.

  -files <arg> - (Optional) Find the top module candidates in the specified
  list of files.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example chooses the best top module of the current design for
  synthesis:

    synth_design -top [lindex [find_top] 0]  
    

  Note: Since find_top returns multiple possible candidates, choosing index 0
  chooses the best top candidate for synthesis.

  The following example returns the best top module candidate from the
  specified list of files:

    find_top -files [get_files -filter {NAME =~ *or1200*}] 
    

  The following example sets the results of find_top into the variable
  $topVar, then uses that variable to define the top module in the current
  fileset using the set_property command:

    set topVar [ find_top -files [get_files -filter {NAME =~ *usbf*} ] ]  
    usbf_top  
    set_property top $topVar [current_fileset] 
    

See Also:

   *  set_property
   *  synth_design


@@@COMMAND: fix_pin_mapping@@@
fix_pin_mapping

Description: 
sample internal tcltask

Syntax: 
fix_pin_mapping  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: flow_viz@@@
flow_viz

Description: 
Generate flow visualization data

Syntax: 
flow_viz  [-verbose] [-quiet]

Usage: 
  Name        Description
  -----------------------
  [-verbose]  Suspend message limits during command execution
  [-quiet]    Ignore command errors

Categories: 
Tools, Tcl


@@@COMMAND: flush@@@
flush(n)              Tcl Built-In Commands              flush(n)



_________________________________________________________________

NAME
       flush - Flush buffered output for a channel

SYNOPSIS
       flush channelId
_________________________________________________________________


DESCRIPTION
       Flushes any output that has been buffered for channelId.

       ChannelId  must  be an identifier for an open channel such
       as a Tcl standard channel (stdout or stderr),  the  return
       value  from an invocation of open or socket, or the result
       of a channel creation command provided by a Tcl extension.
       The channel must have been opened for writing.

       If  the  channel  is in blocking mode the command does not
       return until all the buffered output has been  flushed  to
       the  channel.  If  the channel is in nonblocking mode, the
       command may return before all  buffered  output  has  been
       flushed;  the  remainder will be flushed in the background
       as fast as the underlying file or device is able to absorb
       it.

EXAMPLE
       Prompt  for  the  user  to type some information in on the
       console:
              puts -nonewline "Please type your name: "
              flush stdout
              gets stdin name
              puts "Hello there, $name!"


SEE ALSO
       file(n), open(n), socket(n), Tcl_StandardChannels(3)


KEYWORDS
       blocking, buffer, channel, flush, nonblocking, output



Tcl                            7.5                       flush(n)


@@@COMMAND: for@@@
for(n)                Tcl Built-In Commands                for(n)



_________________________________________________________________

NAME
       for - 'For' loop

SYNOPSIS
       for start test next body
_________________________________________________________________


DESCRIPTION
       For  is  a  looping command, similar in structure to the C
       for statement.  The start, next, and body  arguments  must
       be  Tcl command strings, and test is an expression string.
       The for command first invokes the Tcl interpreter to  exe-
       cute  start.   Then  it  repeatedly  evaluates  test as an
       expression; if the result is non-zero it invokes  the  Tcl
       interpreter  on  body, then invokes the Tcl interpreter on
       next, then repeats the loop.  The command terminates  when
       test  evaluates  to  0.   If a continue command is invoked
       within body then any remaining  commands  in  the  current
       execution  of  body  are  skipped; processing continues by
       invoking the Tcl  interpreter  on  next,  then  evaluating
       test,  and  so  on.   If a break command is invoked within
       body or next, then the for  command  will  return  immedi-
       ately.  The operation of break and continue are similar to
       the corresponding statements in C.  For returns  an  empty
       string.

       Note: test should almost always be enclosed in braces.  If
       not, variable substitutions will be made  before  the  for
       command   starts  executing,  which  means  that  variable
       changes made by the loop body will not  be  considered  in
       the  expression.   This is likely to result in an infinite
       loop.  If test is enclosed in braces,  variable  substitu-
       tions  are  delayed  until  the  expression  is  evaluated
       (before each loop iteration), so changes in the  variables
       will be visible.  See below for an example:

EXAMPLES
       Print a line for each of the integers from 0 to 10:
              for {set x 0} {$x<10} {incr x} {
                 puts "x is $x"
              }

       Either  loop  infinitely or not at all because the expres-
       sion being evaluated is actually  the  constant,  or  even
       generate  an  error!   The actual behaviour will depend on
       whether the variable x exists before the  for  command  is
       run  and whether its value is a value that is less than or
       greater than/equal to ten, and this is because the expres-
       sion  will  be  substituted before the for command is exe-
       cuted.
              for {set x 0} $x<10 {incr x} {
                 puts "x is $x"
              }

       Print out the powers of two from 1 to 1024:
              for {set x 1} {$x<=1024} {set x [expr {$x * 2}]} {
                 puts "x is $x"
              }


SEE ALSO
       break, continue, foreach, while


KEYWORDS
       for, iteration, looping



Tcl                                                        for(n)


@@@COMMAND: foreach@@@
foreach(n)            Tcl Built-In Commands            foreach(n)



_________________________________________________________________

NAME
       foreach - Iterate over all elements in one or more lists

SYNOPSIS
       foreach varname list body
       foreach varlist1 list1 ?varlist2 list2 ...? body
_________________________________________________________________


DESCRIPTION
       The foreach command implements a loop where the loop vari-
       able(s) take on values from one or  more  lists.   In  the
       simplest case there is one loop variable, varname, and one
       list, list, that is a list of values to assign to varname.
       The  body  argument  is a Tcl script.  For each element of
       list (in order from first to last),  foreach  assigns  the
       contents  of  the element to varname as if the lindex com-
       mand had been used to extract the element, then calls  the
       Tcl interpreter to execute body.

       In  the general case there can be more than one value list
       (e.g., list1 and list2), and each value list can be  asso-
       ciated  with  a list of loop variables (e.g., varlist1 and
       varlist2).  During each iteration of the  loop  the  vari-
       ables of each varlist are assigned consecutive values from
       the corresponding list.  Values in each list are  used  in
       order  from  first to last, and each value is used exactly
       once.  The total number of loop iterations is large enough
       to  use  up all the values from all the value lists.  If a
       value list does not contain enough elements  for  each  of
       its  loop  variables  in  each iteration, empty values are
       used for the missing elements.

       The break and continue statements may  be  invoked  inside
       body, with the same effect as in the for command.  Foreach
       returns an empty string.

EXAMPLES
       This loop prints every value in a list together  with  the
       square and cube of the value:
              set values {1 3 5 7 2 4 6 8}  ;# Odd numbers first, for fun!
              puts "Value\tSquare\tCube"    ;# Neat-looking header
              foreach x $values {           ;# Now loop and print...
                  puts " $x\t [expr {$x**2}]\t [expr {$x**3}]"
              }

       The following loop uses i and j as loop variables to iter-
       ate over pairs of elements of a single list.
              set x {}
              foreach {i j} {a b c d e f} {
                  lappend x $j $i
              }
              # The value of x is "b a d c f e"
              # There are 3 iterations of the loop.

       The next loop uses i and j to iterate over  two  lists  in
       parallel.
              set x {}
              foreach i {a b c} j {d e f g} {
                  lappend x $i $j
              }
              # The value of x is "a d b e c f {} g"
              # There are 4 iterations of the loop.

       The two forms are combined in the following example.
              set x {}
              foreach i {a b c} {j k} {d e f g} {
                  lappend x $i $j $k
              }
              # The value of x is "a d e b f g c {} {}"
              # There are 3 iterations of the loop.


SEE ALSO
       for(n), while(n), break(n), continue(n)


KEYWORDS
       foreach, iteration, list, looping



Tcl                                                    foreach(n)


@@@COMMAND: format@@@
format(n)             Tcl Built-In Commands             format(n)



_________________________________________________________________

NAME
       format - Format a string in the style of sprintf

SYNOPSIS
       format formatString ?arg arg ...?
_________________________________________________________________


INTRODUCTION
       This  command  generates  a  formatted string in a fashion
       similar to the ANSI  C  sprintf  procedure.   FormatString
       indicates  how  to  format  the result, using % conversion
       specifiers as in sprintf, and the additional arguments, if
       any,  provide  values  to  be substituted into the result.
       The return value from format is the formatted string.

DETAILS ON FORMATTING
       The command operates by scanning formatString from left to
       right.   Each character from the format string is appended
       to the result string unless it is a percent sign.  If  the
       character  is  a  %  then  it  is not copied to the result
       string.  Instead, the characters following the % character
       are  treated  as  a  conversion specifier.  The conversion
       specifier controls the conversion of the  next  successive
       arg  to  a particular format and the result is appended to
       the result string in place of  the  conversion  specifier.
       If  there are multiple conversion specifiers in the format
       string, then each one controls the conversion of one addi-
       tional  arg.  The format command must be given enough args
       to meet the needs of all of the conversion  specifiers  in
       formatString.

       Each  conversion specifier may contain up to six different
       parts: an XPG3 position specifier, a set of flags, a mini-
       mum  field width, a precision, a size modifier, and a con-
       version character.  Any of these  fields  may  be  omitted
       except  for the conversion character.  The fields that are
       present must appear in the order given above.   The  para-
       graphs below discuss each of these fields in turn.

       If  the  %  is followed by a decimal number and a $, as in
       "%2$d", then the value to convert is not  taken  from  the
       next  sequential  argument.  Instead, it is taken from the
       argument indicated by the number, where 1  corresponds  to
       the  first arg.  If the conversion specifier requires mul-
       tiple arguments because of * characters in  the  specifier
       then  successive  arguments  are  used,  starting with the
       argument given by the number.  This follows the XPG3  con-
       ventions  for  positional  specifiers.   If  there are any
       positional specifiers in  formatString  then  all  of  the
       specifiers must be positional.

       The  second  portion of a conversion specifier may contain
       any of the following flag characters, in any order:

       -         Specifies that the converted argument should  be
                 left-justified  in  its  field (numbers are nor-
                 mally right-justified  with  leading  spaces  if
                 needed).

       +         Specifies that a number should always be printed
                 with a sign, even if positive.

       space     Specifies that a space should be  added  to  the
                 beginning  of  the number if the first character
                 is not a sign.

       0         Specifies that the number should  be  padded  on
                 the left with zeroes instead of spaces.

       #         Requests  an  alternate output form. For o and O
                 conversions it guarantees that the  first  digit
                 is  always  0.  For x or X conversions, 0x or 0X
                 (respectively) will be added to the beginning of
                 the result unless it is zero.  For all floating-
                 point conversions (e, E, f, g, and G) it guaran-
                 tees that the result always has a decimal point.
                 For g and G conversions it specifies that trail-
                 ing zeroes should not be removed.

       The  third  portion of a conversion specifier is a decimal
       number giving a minimum field width for  this  conversion.
       It  is  typically  used to make columns line up in tabular
       printouts.  If the converted argument contains fewer char-
       acters than the minimum field width then it will be padded
       so that it is as wide as the minimum field width.  Padding
       normally  occurs by adding extra spaces on the left of the
       converted argument, but the 0 and - flags may be  used  to
       specify  padding with zeroes on the left or with spaces on
       the right, respectively.  If the minimum  field  width  is
       specified  as  * rather than a number, then the next argu-
       ment to the format command determines  the  minimum  field
       width; it must be an integer value.

       The  fourth  portion of a conversion specifier is a preci-
       sion, which consists of a period  followed  by  a  number.
       The number is used in different ways for different conver-
       sions.  For e, E, and f conversions it specifies the  num-
       ber of digits to appear to the right of the decimal point.
       For g and G conversions it specifies the total  number  of
       digits  to  appear,  including  those on both sides of the
       decimal point (however, trailing zeroes after the  decimal
       point  will  still  be  omitted unless the # flag has been
       specified).  For integer conversions, it specifies a mini-
       mum  number  of  digits  to  print (leading zeroes will be
       added if necessary).  For s conversions it  specifies  the
       maximum  number of characters to be printed; if the string
       is longer than this then the trailing characters  will  be
       dropped.  If the precision is specified with * rather than
       a number then the next  argument  to  the  format  command
       determines the precision; it must be a numeric string.

       The  fifth  part of a conversion specifier is a size modi-
       fier, which must be ll, h, or l.  If it is ll it specifies
       that an integer value is taken without truncation for con-
       version to a formatted substring.  If it is h it specifies
       that  an  integer  value  is  truncated  to a 16-bit range
       before converting.  This option is rarely useful.   If  it
       is  l  it specifies that the integer value is truncated to
       the same range as that produced by the wide() function  of
       the  expr command (at least a 64-bit range).  If neither h
       nor l are present, the integer value is truncated  to  the
       same  range  as that produced by the int() function of the
       expr command (at least a 32-bit range, but  determined  by
       the value of tcl_platform(wordSize)).

       The  last thing in a conversion specifier is an alphabetic
       character that determines what kind of conversion to  per-
       form.   The  following conversion characters are currently
       supported:

       d         Convert integer to signed decimal string.

       u         Convert integer to unsigned decimal string.

       i         Convert integer to signed decimal string (equiv-
                 alent to d).

       o         Convert integer to unsigned octal string.

       x or X    Convert  integer to unsigned hexadecimal string,
                 using  digits  "0123456789abcdef"  for   x   and
                 "0123456789ABCDEF" for X).

       c         Convert integer to the Unicode character it rep-
                 resents.

       s         No conversion; just insert string.

       f         Convert number to signed decimal string  of  the
                 form  xx.yyy,  where the number of y's is deter-
                 mined by the precision  (default:  6).   If  the
                 precision  is 0 then no decimal point is output.

       e or E    Convert number to  scientific  notation  in  the
                 form  x.yyye±zz,  where  the  number  of  y's is
                 determined by the precision  (default:  6).   If
                 the precision is 0 then no decimal point is out-
                 put.  If the E form is used then  E  is  printed
                 instead of e.

       g or G    If  the exponent is less than -4 or greater than
                 or equal to the precision, then  convert  number
                 as  for  %e or %E.  Otherwise convert as for %f.
                 Trailing zeroes and a trailing decimal point are
                 omitted.

       %         No conversion: just insert %.

DIFFERENCES FROM ANSI SPRINTF
       The behavior of the format command is the same as the ANSI
       C sprintf procedure except for the following differences:

       [1]    %p and %n specifiers are not supported.

       [2]    For %c conversions the argument must be an  integer
              value,  which  will then be converted to the corre-
              sponding character value.

       [3]    The size  modifiers  are  ignored  when  formatting
              floating-point  values.   The  ll  modifier  has no
              sprintf counterpart.

EXAMPLES
       Convert the numeric value of a UNICODE  character  to  the
       character itself:
              set value 120
              set char [format %c $value]

       Convert  the output of time into seconds to an accuracy of
       hundredths of a second:
              set us [lindex [time $someTclCode] 0]
              puts [format "%.2f seconds to execute" [expr {$us / 1e6}]]

       Create a packed X11 literal color specification:
              # Each color-component should be in range (0..255)
              set color [format "#%02x%02x%02x" $r $g $b]

       Use XPG3 format codes to allow  reordering  of  fields  (a
       technique  that  is  often used in localized message cata-
       logs; see  msgcat)  without  reordering  the  data  values
       passed to format:
              set fmt1 "Today, %d shares in %s were bought at $%.2f each"
              puts [format $fmt1 123 "Global BigCorp" 19.37]

              set fmt2 "Bought %2\$s equity ($%3$.2f x %1\$d) today"
              puts [format $fmt2 123 "Global BigCorp" 19.37]

       Print a small table of powers of three:
              # Set up the column widths
              set w1 5
              set w2 10

              # Make a nice header (with separator) for the table first
              set sep +-[string repeat - $w1]-+-[string repeat - $w2]-+
              puts $sep
              puts [format "| %-*s | %-*s |" $w1 "Index" $w2 "Power"]
              puts $sep

              # Print the contents of the table
              set p 1
              for {set i 0} {$i<=20} {incr i} {
                 puts [format "| %*d | %*ld |" $w1 $i $w2 $p]
                 set p [expr {wide($p) * 3}]
              }

              # Finish off by printing the separator again
              puts $sep

SEE ALSO
       scan(n), sprintf(3), string(n)

KEYWORDS
       conversion  specifier,  format, sprintf, string, substitu-
       tion



Tcl                            8.1                      format(n)


@@@COMMAND: generate_base_platform@@@
generate_base_platform

Description: 
Generate a base platform based on a given routed checkpoint

Syntax: 
generate_base_platform  [-source <arg>] [-reconfig_platform <arg>]
                        [-base_platform <arg>]
                        [-reconfig_platform_prefix <arg>] [-quiet] [-verbose]

Usage: 
  Name                         Description
  ----------------------------------------
  [-source]                    (Required) Specify routed checkpoint path
  [-reconfig_platform]         (Required) Specify reconfigurable platform 
                               module name
  [-base_platform]             (Optional) Specify the output file name, the 
                               default file name is 'base_platform'
  [-reconfig_platform_prefix]  (Optional) Specify wrapper port name prefix 
                               from reconfigurable platform module, the 
                               default prefix is 'RL_'
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution

Categories: 
FileIO


@@@COMMAND: generate_dsa_emu@@@
generate_dsa_emu

Description: 
Used to generate the emulation section for DSAs.

Syntax: 
generate_dsa_emu  [-dsa <arg>] [-platform <arg>] [-prop-json-path <arg>]
                  [-output-dir-path <arg>] [-quiet] [-verbose]

Usage: 
  Name                Description
  -------------------------------
  [-dsa]              The target DSA
  [-platform]         The target PLATFORM
  [-prop-json-path]   emu properties json file
  [-output-dir-path]  Output path where to dump the emulation output
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
Vitis, Platform, FileIO


@@@COMMAND: generate_hier_access@@@
generate_hier_access

Description: 
(User-written application)
Generate sources for hierarchical access simulation


Syntax: 
generate_hier_access  [-bypass <arg>] [-driver <arg>] [-directory <arg>]
                      [-pseudo_top <arg>] [-testbench <arg>] [-log <arg>]
                      [-quiet] [-verbose]

Returns: 
None


Usage: 
  Name           Description
  --------------------------
  [-bypass]      Hierarchical access module name
                 Default: xil_dut_bypass
  [-driver]      Signal driver template module name
                 Default: xil_bypass_driver
  [-directory]   Output directory for the generated sources
                 Default: current working directory
  [-pseudo_top]  Top-level pseudo testbench module name
                 Default: None
  [-testbench]   User design testbench module name
                 Default: None
  [-log]         Simulator log containing hierarchical path information 
                 (required for the non-Vivado standalone flow only)
                 Default: None
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
simulation, xilinxtclstore, user-written


@@@COMMAND: generate_hw_emu_dir@@@
generate_hw_emu_dir

Description: 
Used to generate the emulation section for DSAs.

Syntax: 
generate_hw_emu_dir  [-platform-name <arg>] [-emu-prop-dict <arg>]
                     [-output-dir-path <arg>] [-working-dir <arg>] [-quiet]
                     [-verbose]

Usage: 
  Name                Description
  -------------------------------
  [-platform-name]    Arguments
  [-emu-prop-dict]    emu properties dict file
  [-output-dir-path]  Output path where to place the emulation output
  [-working-dir]      Staging files are created in the path and deleted post 
                      completion
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
Vitis, Platform, FileIO


@@@COMMAND: generate_hwh@@@
generate_hwh

Description: 
Generate HWH file

Syntax: 
generate_hwh  -connectivity_file <arg> -outdir <arg> [-quiet] [-verbose]
              <state_file>

Returns: 
Parse the metadata files and generate the HWH file

Usage: 
  Name                Description
  -------------------------------
  -connectivity_file  Path of the connectivity file to be read
  -outdir             Path of the output directory
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution
  <state_file>        Path of the state json file

Categories: 
Project


@@@COMMAND: generate_mem_files@@@
generate_mem_files

Description: 
Write all the simulation .mem files.

Syntax: 
generate_mem_files  [-force] [-quiet] [-verbose] <directory>

Returns: 
The name of the directory

Usage: 
  Name         Description
  ------------------------
  [-force]     Overwrite existing .mem files
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <directory>  Directory for exporting .mem files.
               Values: A directory with alphanumeric characters.

Categories: 
FileIO, Simulation

Description:

  For embedded processor based designs, with associated Executable Linkable
  Files (ELF) from the Software Development Kit (SDK), this command merges
  the Block Memory Map (BMM) for the design with the program data in the ELF
  file to generate memory (MEM) files for use during simulation.

  The MEM file is a text file that describes how individual Block RAMs on the
  AMD device are grouped together to form a contiguous address space
  called an Address Block, with the ELF data mapped into the memory.

  The file names and the number of MEM files generated is determined by the
  memory map data specified by the processor system IP cores, or IP
  integrator block designs.

  This command returns the directory where the MEM files are written, or
  returns an error if it fails.

Arguments:

  -force - (Optional) Overwrite the specified output directory if it already
  exists.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <directory> - (Required) The name of the directory to write the memory
  files into.

Example:

  The following example merges the block RAM map with the ELF file data and
  generates MEM files in the specified directory for use during simulation:

    generate_mem_files C:/Data/gen_mem 
    

See Also:

   *  write_bmm
   *  write_mem_info


@@@COMMAND: generate_ml_strategies@@@
generate_ml_strategies

Description: 
Generate ML strategies for a run

Syntax: 
generate_ml_strategies  [-jobs <arg>] [-details] [-force] [-keep_launch_dir]
                        [-suggestions_filter <arg>] [-quiet] [-verbose]
                        <runs>...

Usage: 
  Name                   Description
  ----------------------------------
  [-jobs]                Number of jobs
                         Default: 1
  [-details]             Prints job details
  [-force]               Force to regenerate the ml strategies.
  [-keep_launch_dir]     Keep the launch directory and files for analysis
  [-suggestions_filter]  Filter for the internal call to write_qor_suggestion
                         command
                         Default: Category==Strategy
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution
  <runs>                 List of runs to generate ML strategies for

Categories: 
Object, Run

Description:

  Generates ML Strategies for a completed implementation run. It is a two
  step process where the first step is to create the ML Strategy RQS files
  and the second step is to create the implementation runs and reference the
  RQS files.

  ML Strategies are written to the directory <run>/MLStrategy. Once
  strategies have been generated, implementation runs that reference the
  strategy can be created.

  In order to generate ML strategies, flow criteria must be met:

   *  opt_design must be run with either Default or Explore directive.

   *  place_design, phys_opt_design, and route_design must be run with the
      same directive and be either Default or Explore.

  For project mode strategies, there are two provided implementation
  strategies that meet this criteria:

   *  Implementation Defaults

   *  Performance Explore

  This command is intended for use in interactive mode where a user generates
  strategies from a completed implementation run. For script users, it is
  recommended to generate ML strategies as part of an implementation run as
  this is a more efficient method. See the example below.

  Note: This command is not supported in non-project mode. Refer alternative
  examples in the Examples section. In classic Vivado flow, ML Strategies are
  supported for Versal adaptive SoC, UltraScale+, and UltraScale families. In
  Vivado Advanced Flow, ML Strategies are not supported for Versal adaptive
  SoC.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -jobs <arg> - (Optional) The number of parallel jobs to run on the local
  host.

  -details - (Optional) Print details on the jobs such as host, memory, and
  user id.

  -force - (Optional) Allows previous ML Strategies to be overwritten.

  -keep_launch_dir - (Optional) Preserves the run directory used to open the
  checkpoint and generate the ML strategies.

  -suggestions_filter - (Optional) Filters the other QoR suggestions that are
  generated. It is recommended to keep APPLIED suggestions as these form part
  of the design that was evaluated to generate the strategies. This command
  can be used to add other GENERATED suggestions.

  Note: For more complex filtering, it is recommended to open the design and
  write QoR suggestions from the Report > QoR Suggestions or Tcl natively
  using report_qor_suggestions and write_qor_suggestions command.

  <runs> - (Required) The names of implementation runs to launch. One or more
  run names may be specified.

Examples:

  The following command creates ML Strategy RQS files after a run is complete
  from within a project.

    generate_ml_strategies [get_runs impl_1] -suggestions_filter {APPLIED || Category==Strategy}

  The following commad generate the ML strategies during the implementation
  run, either turn on the AUTO_RQS feature or add a Tcl hook script to the
  post route phase. AUTO_RQS will collect other category QoR Suggestions. For
  more control over the other suggestions collected, use the Tcl hook option
  and modify the filter command.

   *  Execute the following command to enable AUTO_RQS

        set_property AUTO_RQS 1 [get_runs impl_1]

   *  Alternatively, add the following commands into the Tcl file and modify
      the filter as required.

        report_qor_suggestions write_qor_suggestions -strategy_dir ./MLStrategy -of_objects [get_qor_suggestions -filter {APPLIED || Category == Strategy}]

   *  Execute the following command to add the Tcl file to the post route Tcl
      hook.

        import_files -fileset utils_1 post_route.tcl set_property STEPS.ROUTE_DESIGN.TCL.POST [ get_files post_route.tcl -of [get_fileset utils_1] ] [get_runs impl_1]

  The following command create new runs and configure them to use the
  strategy, whenever ML Strategies are generated.

    create_rqs_runs -reference_run [get_runs impl_1]

  Note: It is recommended to run three ML Strategies per design in maximize
  timing improvement and smooth out variations.

  For non-project users, the following commands generate ML strategy
  suggestions and write them to an RQS file in ./MLStrategy directory.

    report_qor_suggestions
    write_qor_suggestions -strategy_dir ./MLStrategy -of_objects [get_qor_suggestions -filter {APPLIED || Category == Strategy}]

  The following example shows the equivalent non-project based commands to
  reference the RQS strategies.

    <insert after link design or open checkpoint>
        read_qor_suggestions ./MLStrategy/<top>_routedSuggestionFile[1||2||3].rqs
        opt_design -directive RQS
        place_design -directive RQS
        phys_opt_design -directive RQS
        route_design -directive RQS


@@@COMMAND: generate_parallel_reports@@@
generate_parallel_reports

Description: 
Generate reports in parallel

Syntax: 
generate_parallel_reports  [-quiet] [-verbose] <reports>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <reports>   list of report commands

Categories: 
Report


@@@COMMAND: generate_pblock@@@
generate_pblock

Description: 
Generate PBLOCK by exclude static 

Syntax: 
generate_pblock  [-cell <arg>] [-inverse_pblock <arg>] [-nested_pblock <arg>]
                 [-nested_width <arg>] [-quiet] [-verbose]

Usage: 
  Name               Description
  ------------------------------
  [-cell]            Specify cell to add to pblock.
  [-inverse_pblock]  Specify name of the inverse pblock.  The pblock will 
                     cover everything that the static pblock does not.
  [-nested_pblock]   Specify name of nested pblock inside inverse_pblock left
                     adjacent to static pblock.
  [-nested_width]    Specify the width of the nested pblock.  The nested 
                     pblock height is the same as the adjacent static pblock.
                     Default: 3
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution

Categories: 
FileIO


@@@COMMAND: generate_qor_suggestions@@@
generate_qor_suggestions

Description: 
Generate QoR Suggestions

Syntax: 
generate_qor_suggestions  [-max_paths <arg>] [-evaluate_pipelining]
                          [-cell <args>] [-quiet] [-verbose]

Usage: 
  Name                    Description
  -----------------------------------
  [-max_paths]            Number of paths to consider for suggestion analysis
                          Default: 100
  [-evaluate_pipelining]  Generate DSP/BRAM pipelining xdc file
  [-cell]                 Report QOR suggestions for a given cell
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
Feasibility, Report, Timing


@@@COMMAND: generate_reports@@@
generate_reports

Description: 
Generate a set of configurable report objects

Syntax: 
generate_reports  [-jobs <arg>] [-quiet] [-verbose] <report_configs>...

Usage: 
  Name              Description
  -----------------------------
  [-jobs]           Number of jobs
                    Default: 1
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <report_configs>  List of configurable report objects to generate

Categories: 
Object, Report

Description:

  Generates specified report objects as created by the create_report_config
  command.

  Because the report objects are associated with specific steps of synthesis
  or implementation runs, those steps must be completed prior to the
  generation of the report. If a step is not completed, or the report is not
  enabled, then the generate_report command will return an error.

Arguments:

  -jobs <arg> - (Optional) Specifies the number of jobs to use to generate
  the specified report objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <report_configs> - (Required) Specifies the list of report objects to
  generate. The reports must be specified as objects returned by the
  get_report_configs command.

Examples:

  The following example generates the specified report object:

    generate_report [get_report_configs post_route_datasheet] 
    

  Note: If the report is already GENERATED according to the STATE property,
  the report will not be regenerated.

See Also:

   *  create_report_config
   *  delete_report_configs
   *  get_report_configs


@@@COMMAND: generate_rl_platform@@@
generate_rl_platform

Description: 
Generate new platform based on base platform and wrapper module

Syntax: 
generate_rl_platform  [-use_source <arg>] [-reconfig_platform <arg>]
                      [-base_platform <arg>] [-platform <arg>] [-quiet]
                      [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-use_source]         Specify wrapper checkpoint path
  [-reconfig_platform]  (Required) Specify reconfigurable platform module 
                        name
  [-base_platform]      (Required) Specify base platform checkpoint path
  [-platform]           (Optional) Specify new platform checkpoint path, the 
                        default file name is 'rl_platform.dcp'
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
FileIO


@@@COMMAND: generate_shx_platform@@@
generate_shx_platform

Description: 
Move HD.RECONFIGURABLE and related properties to sub-cells

Syntax: 
generate_shx_platform  [-base_platform <arg>] [-wrapper <arg>] [-output <arg>]
                       [-reconfig_platform <arg>] [-quiet] [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-base_platform]      Specify Base Platform DCP path.
  [-wrapper]            Specify wrapper DCP path
  [-output]             Specify output DCP name.
  [-reconfig_platform]  Specify reconfigurable platform name
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
FileIO


@@@COMMAND: generate_switch_network_for_noc@@@
generate_switch_network_for_noc

Description: 
Generate switch network and simulation wrapper for NoC

Syntax: 
generate_switch_network_for_noc  [-mode <arg>] [-type <arg>] [-quiet]
                                 [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-mode]     Simulation mode. Values: behavioral, post-synthesis, 
              post-implementation
              Default: behavioral
  [-type]     Netlist type. Values: functional, timing. This is only 
              applicable when mode is set to post-synthesis or post-impleme  
                ntation
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
ToolLaunch, Simulation


@@@COMMAND: generate_target@@@
generate_target

Description: 
Generate target data for the specified source

Syntax: 
generate_target  [-force] [-quiet] [-verbose] <name> <objects>

Usage: 
  Name        Description
  -----------------------
  [-force]    Force target data regeneration
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      List of targets to be generated, or 'all' to generate all 
              supported targets
  <objects>   The objects for which data needs to be generated

Categories: 
Project, IPFlow, IPIntegrator

Description:

  This command generates target data for the specified IP objects (get_ips)
  or source file for IP cores (.xci and .xco), DSP modules (.slx or .mdl), or
  block designs (.bd). The target data that is generated are the files
  necessary to support the IP or block design through the FPGA design flow.

  The instantiation template, synthesis netlist, and simulation netlist are
  standard targets. However, each IP in the catalog may also support its own
  set of targets. You can view the available targets on an object by
  examining the SUPPORTED_TARGETS property, or you can use the list_targets
  command to list the targets for design source file.

Arguments:

  -force - (Optional) Force target data regeneration, and overwrite any
  existing target data files. Without -force, the tool will not regenerate
  any target data that is up-to-date.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The names of the types of target data to create for the
  specified source. The specific targets supported by an IP core are listed
  in the SUPPORTED_TARGETS property on the object. You can query this
  property to see which targets a specific object supports. Standard values
  are:

   *  all - Generate all targets for the specified IP or file, except the
      example project.

      Note: You can generate an example project for an IP core using the
      open_example_project command.

   *  instantiation_template - Generate the Instantiation template used to
      add the RTL module definition for the IP core into the current design.
      The instantiation template can be copied into any desired level of the
      design hierarchy.

   *  synthesis - Synthesis targets deliver HDL files that are used during
      synthesis for native IP, or deliver a synthesized netlist file (DCP)
      generated by Vivado synthesis.

   *  simulation - Simulation targets deliver HDL files that are used in
      simulation.

   *  implementation - Implementation generates the necessary data for
      implementing the IP core, DSP module, or Embedded Processor in the
      current design.

  <objects> - (Required) The objects to generate the target from. Supported
  objects can include IP core objects (get_ips), or the source files (.xci or
  .xco), block design files (.bd) from IP integrator, and DSP modules (.slx
  or .mdl) imported from System Generator.

  Note: Use get_files to specify a file object, rather than specifying a file
  name.

Examples:

  This example generates the change log for all of the IP cores in the
  current project, forcing regeneration of any targets that are up-to-date:

    generate_target changelog [get_ips] -force 
    

  The following example generates the instantiation template and synthesis
  targets for all of the IP cores in the current project:

    generate_target {instantiation_template synthesis} [get_ips] 
    

  Note: Note the use of the braces to pass the list of targets to the
  command. The absence of the -force option means that only out-of-date
  targets will be regenerated.

  The following example generates all targets for the specified block design:

    generate_target all \  
    [get_files  C:/Data/project_mb/project_mb.srcs/sources_1/bd/base_mb/base_mb.bd] 
    

  Note: The use of get_ips is not supported to generate targets for
  individual IP within block designs. The tool will return an error.

  The following queries the SUPPORTED_TARGETS property of the specified IP
  object, and then generates the example project for the IP:

    get_property SUPPORTED_TARGETS [get_ips blk_mem*]  
    open_example_project -dir C:/Data/examples -force [get_ips blk_mem*] 
    

See Also:

   *  add_files
   *  create_ip
   *  import_ip
   *  list_targets
   *  open_example_project
   *  read_ip
   *  report_property
   *  reset_target


@@@COMMAND: generate_vcd_ports@@@
generate_vcd_ports

Description: 
Generate VCD ports for the instance

Syntax: 
generate_vcd_ports  [-quiet] [-verbose] <scope>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <scope>     Instance scope hierarchy

Categories: 
ToolLaunch, Simulation

Description:

  Open a VCD file handle for writing the port activity of the design unit
  instance. The VCD file is read by create_testbench Tcl command to read the
  port activity for writing stimuli source. The instance can be selected from
  the scope window in Vivado simulator IDE or by specifying the hierarchical
  path to the instance when executing this command from Tcl console.

  The command creates dummports.vcd file that will get populated when running
  simulation for the selected instance scope.

  Note: The Vivado simulator must be up and running in order to generate this
  file for the selected instance.

  If running this command from Vivado IDE, then the dumpports.vcd file will
  be created in the simulation run directory. If running this command from
  Vivado simulator standalone GUI, then the dumpports.vcd file will be 
  created in vcd2tb sub-directory in the current directory.

Arguments:

  -scope <arg> - (Required) Specify the instance scope hierarchy name.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose- (Optional) Temporarily override any message limits and return all
  messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following commands will create VCD file for /top/DUT/fifo/buf_1
  instance of type buf module, record waveform activity for 2000ns, and close
  the VCD file handle:

    generate_vcd_ports {/top/DUT/fifo/buf_1}
        run 2000ns
        close_vcd -ports

See Also:

   *  close_vcd
   *  create_testbench


@@@COMMAND: genkey_customer@@@
genkey_customer

Description: 
To generate a pair of RSA keys to be used with Xilinx encryption: genkey_customer <base_key_name>.


Syntax: 
genkey_customer  [-overwrite] [-quiet] [-verbose] <file>

Usage: 
  Name          Description
  -------------------------
  [-overwrite]  overwrite existing file.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <file>        generate a pair of key with base name

Categories: 
FileIO


@@@COMMAND: genkey_ipprovider@@@
genkey_ipprovider

Description: 
To generate a pair of RSA keys to be used with Xilinx encryption: genkey_ipprovide <base_key_name>.


Syntax: 
genkey_ipprovider  [-overwrite] [-quiet] [-verbose] <file>

Usage: 
  Name          Description
  -------------------------
  [-overwrite]  overwrite existing file.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <file>        generate a pair of key with base name

Categories: 
FileIO


@@@COMMAND: get_address_assigns@@@
get_address_assigns

Description: 
Get Address Assignments.

Syntax: 
get_address_assigns  [-source <arg>] [-target <arg>] [-block <arg>] [-quiet]
                     [-verbose] [<path>]

Usage: 
  Name        Description
  -----------------------
  [-source]   Filter by source Address Block.
  [-target]   Filter by target Address Space.
  [-block]    Current block.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<path>]    Address Assignment path to search.

Categories: 



@@@COMMAND: get_address_blocks@@@
get_address_blocks

Description: 
Get Address Blocks.

Syntax: 
get_address_blocks  [-type <arg>] [-access <arg>] [-block <arg>] [-quiet]
                    [-verbose] [<path>]

Usage: 
  Name        Description
  -----------------------
  [-type]     Filter by Address Block type (e.g. register).
  [-access]   Filter by Address Block access (e.g. read_write).
  [-block]    Current block.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<path>]    Address Block path to search.

Categories: 



@@@COMMAND: get_address_spaces@@@
get_address_spaces

Description: 
Get Address Spaces.

Syntax: 
get_address_spaces  [-block <arg>] [-quiet] [-verbose] [<path>]

Usage: 
  Name        Description
  -----------------------
  [-block]    Current block.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<path>]    Address Space path to search.

Categories: 



@@@COMMAND: get_assessment_score@@@
get_assessment_score

Description: 
Get QOR Assessment Score for the given design

Syntax: 
get_assessment_score  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Feasibility, Timing

Description:

  Returns the quality of results (QoR) assessment score of the design in
  memory. The QoR assessment score is provided as a value between 1 and 5
  with the following meaning:

   *  Design will fail implementation

   *  Design will complete implementation but not pass timing

   *  Design is likely to fail timing but may meet requirement if 10 or more
      placer directives are run

   *  Design will likely meet timing if 3 or more placer directives are run

   *  Design will meet timing

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following returns the QoR assessment for the current design:

    get_assessment_score

See Also:

   *  report_qor_assessment
   *  report_qor_suggestions


@@@COMMAND: get_bel_pins@@@
get_bel_pins

Description: 
Get a list of bel_pins in the device.

Syntax: 
get_bel_pins  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>] [-quiet]
              [-verbose] [<patterns>]

Returns: 
bel_pins

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'bel_pin' objects of these types: 'net bel site pin'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'bel_pin' objects against patterns.
                 Default: *

Categories: 
Device, Object, XDC

Description:

  Returns a list of pins on the specified BELs, or matching a specified
  search pattern.

  The default command gets a list of all pins on all BELs on the device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_bel_pins based on property values on the bel_pins. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the bel_pin
  object, "NAME" and "IS_INVERTED" are two of the properties that can be used
  to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) This option can be used with the get_bels
  command to return the pins of specified BELs.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match bel_pin objects against the specified
  patterns. The default pattern is the wildcard `*` which gets a list of all
  bel_pins on the device. More than one search pattern can be specified to
  find pins based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the pins of the specified BELs associated
  with the specified range of sites on the device:

    get_bel_pins -of_objects [get_bels -of_objects [get_sites \  
       -range {SLICE_X0Y0 SLICE_X1Y1}] ] 
    

  The following example returns the clock enable (CE) pins of all BELs on the
  device:

    get_bel_pins *CE 
    

See Also:

   *  get_bels
   *  get_sites
   *  list_property
   *  report_property


@@@COMMAND: get_bels@@@
get_bels

Description: 
Get a list of bels. If a design is loaded, gets the constructed site type bels.

Syntax: 
get_bels  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
          [-include_routing_bels] [-include_routethru_bels] [-net_segment_only]
          [-quiet] [-verbose] [<patterns>]

Returns: 
bels

Usage: 
  Name                       Description
  --------------------------------------
  [-regexp]                  Patterns are full regular expressions
  [-nocase]                  Perform case-insensitive matching. (valid only 
                             when -regexp specified)
  [-filter]                  Filter list with expression
  [-of_objects]              Get the bels of these slr, tiles, sites, cells, 
                             clock_regions, nets or pseudo pips.
  [-include_routing_bels]    Also look for and include matching rbels.
  [-include_routethru_bels]  Also look for and include routethru bels
  [-net_segment_only]        Only look for the given net segment.
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  [<patterns>]               Match bels against patterns
                             Default: *

Categories: 
Device, Object, XDC

Description:

  Basic Elements, or BELs, are building blocks of logic, such as flip-flops,
  LUTs, and carry logic, that make up a SLICE. This command returns a list of
  BELs on the target part that match a specified search pattern in an open
  design.

  The default command gets a list of all BELs on the device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_bels based on property values on the BELs. You can find the properties
  on an object with the report_property or list_property commands. Any
  property/value pair can be used as a filter. In the case of the BEL object,
  "IS_OCCUPIED" and "TYPE" are two of the properties that can be used to
  filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the BELs associated with the specified
  cells, nets, sites, clock_regions, or slrs.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match BELs against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all BELs on the
  device. More than one search pattern can be specified to find BELs based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the total number of BELs on the target part:

    llength [get_bels] 
    

  The following example returns the BELs associated with the specified site:

    get_bels -of_objects [get_sites PHASER_IN_PHY_X0Y5] 
    

See Also:

   *  get_sites
   *  list_property
   *  report_property


@@@COMMAND: get_board_bus_nets@@@
get_board_bus_nets

Description: 
Gets the list of board bus net objects

Syntax: 
get_board_bus_nets  [-regexp] [-nocase] [-all] [-filter <arg>]
                    -of_objects <args> [-quiet] [-verbose] [<patterns>...]

Returns: 
list of bus nets in the board

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching
  [-all]        Returns all enabled as well as disabled buses
  [-filter]     Filter list with expression
  -of_objects   Get 'board_bus_net' objects of these types: 'board_bus 
                board_component board_component_pin'.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  match board net names against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of individual connection bus nets of the specified connection
  bus object, or the board component or board component pin objects.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  Connection buses define the connections between the AMD device (part0)
  and other components on the board. Bus nets define individual connections
  of the connection bus.

  This command returns a list of connection bus nets, or returns an error if
  it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -all - (Optional) Return a list of all connection bus nets defined in Board
  Interface file of the specified object.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_bus_nets based on property values on the bus nets. You can find
  the properties on an object with the report_property or list_property
  commands. Any property/value pair can be used as a filter. In the case of
  the board bus net object, "BUS", "NAME", and "DELAY" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Required) Get the nets of connection buses of the
  specified board_bus, board_component, or board_component_pin objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board bus nets against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  connection bus nets of the specified objects.

Examples:

  The following example gets the connection bus nets associated with the
  specified component of the current board:

    get_board_bus_nets -of_objects [get_board_components {*iic_main*}] 
    

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_buses@@@
get_board_buses

Description: 
Gets the list of board bus objects

Syntax: 
get_board_buses  [-regexp] [-nocase] [-all] [-filter <arg>]
                 [-of_objects <args>] [-quiet] [-verbose] [<patterns>...]

Returns: 
list of buses in the board

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-all]         Returns all enabled as well as disabled buses
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_bus' objects of these types: 'board 
                 board_component board_bus_net'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   match board bus names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of connection buses defined on the current board, as defined in
  the Board Interface file.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  Connection buses define the connections between the AMD device (part0)
  and other components on the board.

  This command returns a list of buses, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -all - (Optional) Return a list of all connection buses defined in Board
  Interface file of the current board.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_buses based on property values on the buses. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the board
  bus object, "COMPONENT_1", "COMPONENT_2", and "DELAY" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the connection buses of the specified
  board, board_component, or board_bus_net objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board buses against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  connection buses defined on the current board.

Examples:

  The following example gets the connection buses associated with the
  specified component of the current board:

    get_board_buses -of_objects [get_board_components sgmii] 
    

See Also:

   *  current_board_part
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_component_interfaces@@@
get_board_component_interfaces

Description: 
Gets the list of interfaces in the board components that implement busdef specified by VLNV

Syntax: 
get_board_component_interfaces  [-regexp] [-nocase] [-all] [-filter <arg>]
                                [-of_objects <args>] [-quiet] [-verbose]
                                [<patterns>...]

Returns: 
list of bus interfaces

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-all]         Returns all enabled as well as disabled interfaces
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_component_interface' objects of these types: 
                 'board board_component'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match Bus Interface names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of interfaces defined on the components found on the current
  board, as defined in the Board Interface file.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, defined components
  and supported interfaces. You can create custom boards by defining a custom
  Board Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  The component interface defines related groups of signals that are found on
  a component, or a component mode.

  This command returns a list of component interfaces, or returns an error if
  it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -all - (Optional) Return a list of all component interfaces defined in the
  Board Interface file of the current board.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_component_interfaces based on property values on the component
  interfaces. You can find the properties on an object with the
  report_property or list_property commands. Any property/value pair can be
  used as a filter. In the case of the component interface object, "NAME" and
  "BUSDEF_NAME" are two of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the component interfaces of the
  specified board, or board_component objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match component interfaces against the specified
  search patterns. The default pattern is the wildcard `*` which gets a list
  of all component interfaces defined on the current board.

Examples:

  The following example gets the component interfaces defined in the Board
  Interface file for the specified board component:

    get_board_component_interfaces -of_objects [get_board_components *part0*] 
    

  The following example gets the component interfaces defined in the Board
  Interface file, and then uses that information to create interfaces in the
  current project:

    #Get and Create Interfaces for I/O Ports  
    foreach x [get_board_component_interfaces] {  
    create_interface $x } 
    

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_component_modes@@@
get_board_component_modes

Description: 
Gets the list of component mode objects

Syntax: 
get_board_component_modes  [-regexp] [-nocase] [-all] [-filter <arg>]
                           -of_objects <args> [-quiet] [-verbose]
                           [<patterns>...]

Returns: 
list of component modes in the board

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching
  [-all]        Returns all enabled as well as disabled interfaces
  [-filter]     Filter list with expression
  -of_objects   Get 'board_component_mode' objects of these types: 
                'board_component'.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  match board component modes against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of various component modes defined on the current board, as
  defined in the Board Interface file.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  The component mode defines various modes of operations that the components
  on a board may have, and the interfaces and preferred IP of those modes.

  This command returns a list of component modes, or returns an error if it
  fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -all - (Optional) Return a list of all component modes defined in the Board
  Interface file of the current board.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_component_modes based on property values on the component modes.
  You can find the properties on an object with the report_property or
  list_property commands. Any property/value pair can be used as a filter. In
  the case of the component mode object, "NAME" and "INTERFACES" are two of
  the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Required) Get the component modes of the specified
  board_components.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match component modes against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  component modes defined on the specified board components.

Examples:

  The following example gets the component modes defined in the Board
  Interface file of the specified board:

    get_board_component_modes -of_objects [get_board_components *part0*] 
    

See Also:

   *  current_board
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_component_pins@@@
get_board_component_pins

Description: 
Gets the list of board_part pins object

Syntax: 
get_board_component_pins  [-regexp] [-nocase] [-filter <arg>]
                          -of_objects <args> [-quiet] [-verbose]
                          [<patterns>...]

Returns: 
list of pins in the board_part

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching
  [-filter]     Filter list with expression
  -of_objects   Get 'board_component_pin' objects of these types: 
                'board_component board_bus_net'.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  match board component pin names against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of individual board component pins of the specified board
  component object of the current_board.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  Board components define the list of components found on the board defined
  by the Board Interface file. Component pins enumerate the individual pins
  of the component.

  This command returns a list of component pin objects, or returns an error
  if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_component_pins based on property values on the component pins.
  You can find the properties on an object with the report_property or
  list_property commands. Any property/value pair can be used as a filter. In
  the case of the board component pin object, "NAME", "IOSTANDARD", and
  "PIN_INDEX" are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Required) Get the component pins of the specified
  board_bus_net, or board_component objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board component pins against the specified
  search patterns. The default pattern is the wildcard `*` which gets a list
  of all component pins of the specified objects.

Examples:

  The following example gets the component pins associated with the specified
  Xilinx device (part0) component object of the current board:

    get_board_component_pins -of_objects [get_board_components *part0*]

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_components
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_components@@@
get_board_components

Description: 
Get the list of components available in the board

Syntax: 
get_board_components  [-regexp] [-nocase] [-all] [-filter <arg>]
                      [-of_objects <args>] [-quiet] [-verbose] [<patterns>...]

Returns: 
list of component objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-all]         Returns all enabled as well as disabled components
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_component' objects of these types: 'board 
                 board_bus board_component_pin'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match component names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of components defined on the current board, as defined in the
  Board Interface file.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  This command returns a list of components, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -all - (Optional) Return a list of all components defined in Board
  Interface file of the current board.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_components based on property values on the components. You can
  find the properties on an object with the report_property or list_property
  commands. Any property/value pair can be used as a filter. In the case of
  the board component object, "COMPONENT_NAME", "TYPE", and "DESCRIPTION" are
  some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the components of the specified boards,
  board_buses, or board_component_pins.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board components against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  board components defined on the current board.

Examples:

  The following example gets the components defined in the Board Interface
  file of the specified board:

    get_board_components -of_objects [get_boards zed]

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_interface_ports@@@
get_board_interface_ports

Description: 
Gets the list of interface ports object

Syntax: 
get_board_interface_ports  [-regexp] [-nocase] [-filter <arg>]
                           -of_objects <args> [-quiet] [-verbose]
                           [<patterns>...]

Returns: 
list of ports in the given interface

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching
  [-filter]     Filter list with expression
  -of_objects   Get 'board_component_pin' objects of these types: 
                'board_component_interface board_component_pin'.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  match interface port names against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of various physical ports assigned to the component interfaces
  defined on the current board, as defined in the Board Interface file. The
  interface ports can be returned from component interfaces as specified by
  the get_board_component_interfaces command, or from the component pins
  returned by get_board_component_pins.

  The Board Interface file, board.xml located in the data/boards folder of
  the Vivado Design Suite installation area, stores information regarding
  board attributes. The board provides a representation of the overall system
  that the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  In the Board Interface file, a component interface includes a map of the
  logical ports, that are defined in the interface file, with a physical port
  that relates to the component pin or pins on the AMD device (part0).

  This command returns a list of the physical ports of the specified
  component interface, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_interface_ports based on property values on the interface ports.
  You can find the properties on an object with the report_property or
  list_property commands. Any property/value pair can be used as a filter. In
  the case of the interface port object, "LOGICAL_NAME" and "DIRECTION" are
  two of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Required) Get the physical interface ports of the
  specified board component interface, or board component pin objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match physical interface ports against the
  specified search patterns. The default pattern is the wildcard `*` which
  gets a list of all component interface ports defined on the specified
  object.

Examples:

  The following example gets the board interface ports defined in the Board
  Interface file for the specified board component:

    get_board_interface_ports -of_objects \  
       [get_board_component_interfaces *gmii*] 
    

See Also:

   *  current_board_part
   *  get_board_component_interfaces
   *  get_board_component_pins
   *  get_board_components
   *  get_boards


@@@COMMAND: get_board_ip_preferences@@@
get_board_ip_preferences

Description: 
Gets the list of ip preference objects

Syntax: 
get_board_ip_preferences  [-regexp] [-nocase] [-filter <arg>]
                          -of_objects <args> [-quiet] [-verbose]
                          [<patterns>...]

Returns: 
list of ip preferences for the component

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching
  [-filter]     Filter list with expression
  -of_objects   Get 'ip_preference' objects of these types: 
                'board_component_mode board_component_interface'.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  match ip preferences against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of IP preferences defined on the current board, as defined in
  the Board Interface file.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  IP preferences define the preferred IP to connect a component interface to
  in the Board Interface file.

  This command returns a list of preferred IP for specified component
  interfaces, or component modes, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_ip_preferences based on property values on the ip_preference
  objects. You can find the properties on an object with the report_property
  or list_property commands. Any property/value pair can be used as a filter.
  In the case of the ip_preference object, "IP_NAME" and "IP_VENDOR" are two
  of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Required) Get the preferred IP of the specified
  board_component_mode or board_component_interface objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match preferred IP against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  IP preferences defined for the specified component mode or component
  interface.

Examples:

  The following example gets the IP preferences of the specified component
  interfaces:

    
    get_board_ip_preferences -of_objects \  
       [get_board_component_interfaces *clock*] 
    

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_jumpers@@@
get_board_jumpers

Description: 
Gets the list of board jumper objects

Syntax: 
get_board_jumpers  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                   [-quiet] [-verbose] [<patterns>...]

Returns: 
list of jumpers in the board

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_jumper' objects of these types: 'board'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   match jumper names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of jumpers defined on the current board, as defined in the
  Board Interface file.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  The jumpers defined in the board file can be used to enable specific
  component modes and interfaces of the board.

  This command returns a list of jumpers, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_jumpers based on property values on the jumpers. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the board
  jumper object, "NAME" and "CURRENT_VALUE" are two of the properties that
  can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the jumpers of the specified boards.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board jumpers against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  board jumpers defined on the current board.

Examples:

  The following example gets the jumpers defined in the Board Interface file
  of the specified board:

    get_board_jumpers -of_objects [get_boards kc705]

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_parameters@@@
get_board_parameters

Description: 
Gets the list of board parameter objects

Syntax: 
get_board_parameters  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                      [-quiet] [-verbose] [<patterns>...]

Returns: 
list of parameters in the board

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_parameter' objects of these types: 'board 
                 board_component board_component_interface'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   match parameter names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of parameters defined on the current board, as defined in the
  Board Interface file.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  The parameters defined in the board file specify custom or user-defined
  characteristics of the board.

  This command returns a list of board parameters, or returns an error if it
  fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_parameters based on property values on the parameter objects. You
  can find the properties on an object with the report_property or
  list_property commands. Any property/value pair can be used as a filter. In
  the case of the board parameter object, "NAME", "VALUE", and "VALUE_TYPE"
  are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the parameters of the specified boards,
  board components, or board component interfaces.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board parameters against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  board parameters defined on the current board.

Examples:

  The following example gets the parameters defined in the Board Interface
  file of the current board:

    get_board_parameters

See Also:

   *  current_board_part
   *  get_board_buses
   *  get_board_part_interfaces
   *  get_board_parts
   *  get_boards


@@@COMMAND: get_board_part_interfaces@@@
get_board_part_interfaces

Description: 
Gets the list of interfaces in the board_part that implement busdef specified by VLNV

Syntax: 
get_board_part_interfaces  [-regexp] [-nocase] [-filter <arg>]
                           [-of_objects <args>] [-quiet] [-verbose]
                           [<patterns>...]

Returns: 
list of bus interfaces

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_component_interface' objects of these types: 
                 'board board_component'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match Bus Interface names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of interfaces defined on the device, or current board part as
  defined by the BOARD_PART property, on the board in use by the current
  project or open design.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  The board part provides a representation of the AMD device in the context
  of the board-level system, and is represented by the part0 component in the
  Board Interface file. The current_board_part command returns the board part
  in use by the current project.

  The interfaces defined on the current board part define related groups of
  signals that can be used to quickly connect the elements of a block design
  in Vivado IP integrator, or configure IP from the Xilinx IP catalog. The
  interfaces available on the current_board_part can be used to define the
  interfaces required in an IP subsystem design, using
  create_bd_interface_port or create_bd_port. It can also be used to define
  the interfaces available in the overall FPGA design using create_interface
  and create_port.

  This command returns a list of available interfaces on the current board
  part, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_board_part_interfaces based on property values on the interfaces. You
  can find the properties on an object with the report_property or
  list_property commands. For example:

    report_property -all [get_board_part_interfaces ddr3*]

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the interfaces of the specified board
  objects, as returned by the get_boards command, or board components as
  returned by get_board_components.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match available board part interfaces against the
  specified search patterns. The default pattern is the wildcard `*` which
  gets a list of all interfaces available for use in the current project or
  design. More than one pattern can be specified to find multiple interfaces
  based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example gets a list of all interfaces defined on the current
  board part:

    join [get_board_part_interfaces] \n

See Also:

   *  create_bd_intf_port
   *  create_interface
   *  current_board_part
   *  current_project
   *  get_boards
   *  get_board_components
   *  get_board_part_pins
   *  get_board_parts


@@@COMMAND: get_board_part_pins@@@
get_board_part_pins

Description: 
Gets the list of board_part pins object

Syntax: 
get_board_part_pins  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                     [-quiet] [-verbose] [<patterns>...]

Returns: 
list of pins in the board_part

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board_component_pin' objects of these types: 
                 'board_component_interface board_interface_port'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   match board_part pin names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Board

Description:

  Gets a list of component pin objects on the current board part in use by
  the current project or design.

  The board file, board.xml located in the data/boards folder of the Vivado
  Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the AMD device is a part of, and can help define key aspects of the
  design, such as clock constraints, I/O port assignments, and supported
  interfaces. You can create custom boards by defining a custom Board
  Interface file, as described in the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895).

  The board part provides a representation of the AMD device in the
  context of the board-level system, and is represented by the part0
  component in the Board Interface file. The current_board_part command
  returns the board part in use by the current project.

  The board part pin represents the component pin of an implemented interface
  on the AMD device. The component pin includes properties like LOC,
  IOSTANDARD, and SLEW. Board part pins can be scalar or vector, so it is
  always represented as bitwise.

  The board part pins can be used to define and place PORTS in the top-level
  FPGA design, using the create_port and set_property PACKAGE_PIN commands.

  This command returns a list of component pins, or returns an error if it
  fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_board_part_pins based on property values on the board part pins. You
  can find the properties on an object with the report_property or
  list_property commands. For example:

    report_property [get_board_part_pins RESET] 
    

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the pin assignments of the specified
  board component interface objects, or board interface ports for the current
  board part.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match available board part pins against the
  specified search patterns. The default pattern is the wildcard `*` which
  gets a list of all board part pins available for use in the current project
  or design. More than one pattern can be specified to find multiple
  interfaces based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  This example returns the physical pins of the specified board part interface:

    
    get_board_part_pins -of [get_board_part_interfaces push_buttons_5bits] 
    

  The following example assigns the PACKAGE_PIN and IOSTANDARD properties on
  the specified port in the current design according to the properties on the
  leds_8bits pins in the current board:

    
    set_property PACKAGE_PIN [get_property LOC \  
       [get_board_part_pins leds_8bits_TRI_O[1]]] [get_ports LEDS_n[1]]  
    set_property IOSTANDARD [get_property IOSTANDARD \  
       [get_board_part_pins leds_8bits_TRI_O[1]]] [get_ports LEDS_n[1]] 
    

  The following example gets a list of board part pins assigned to the
  leds_8bits board part interface; stores those pins in a Tcl variable
  $boardPins, and then prints the LOC property for each of those pins:

    set boardPins [get_board_part_pins -of \  
       [get_board_part_interfaces -filter {NAME == led_8bits}]]  
    foreach pin $boardPins {puts "The location of $pin is: \  
       [get_property LOC $pin]"}  
    The location of leds_8bits_tri_o[0] is: AB8  
    The location of leds_8bits_tri_o[1] is: AA8  
    The location of leds_8bits_tri_o[2] is: AC9  
    The location of leds_8bits_tri_o[3] is: AB9  
    The location of leds_8bits_tri_o[4] is: AE26  
    The location of leds_8bits_tri_o[5] is: G19  
    The location of leds_8bits_tri_o[6] is: E18  
    The location of leds_8bits_tri_o[7] is: F16  
    

See Also:

   *  create_bd_interface_port
   *  create_interface
   *  current_board_part
   *  current_project
   *  get_board_part_interfaces
   *  get_board_parts


@@@COMMAND: get_board_parts@@@
get_board_parts

Description: 
Get the list of board_part available in the project

Syntax: 
get_board_parts  [-regexp] [-nocase] [-latest_file_version]
                 [-latest_hw_revision] [-filter <arg>] [-quiet] [-verbose]
                 [<patterns>...]

Returns: 
list of board_part objects

Usage: 
  Name                    Description
  -----------------------------------
  [-regexp]               Patterns are full regular expressions
  [-nocase]               Perform case-insensitive matching
  [-latest_file_version]  Show only latest board parts by file version
  [-latest_hw_revision]   Show only latest board parts by board revision
  [-filter]               Filter list with expression
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  [<patterns>]            Match Board Part names against patterns
                          Default: *
                          Values: The default search pattern is the wildcard 
                          *, or .* when -regexp is specified.

Categories: 
Object, Project, XPS, Board

Description:

  Gets a list of available board parts in the board repository, as defined by
  the Board Interface files available for use by the current project or
  design.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  The board part provides a representation of the AMD device in the context
  of the board-level system, and is represented by the part0 component in the
  Board Interface file. The current_board_part command returns the board part
  in use by the current project. Refer to the current_board_part command for
  the different methods of defining the board in use.

  This command returns the list of available AMD devices (part0) in the Board
  Interface files defined in the current board repository, or returns an
  error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -latest_file_version - (Optional) Return the board parts defined in the
  latest version of the Board Interface file. There can be multiple versions
  of the Board Interface file. This option returns the board parts in the
  latest version only. Refer to the Vivado Design Suite User Guide:
  System-Level Design Entry (UG895) for more information on the Board
  Interface file.

  -latest_hw_revision - (Optional) Return the board parts defined in the
  latest compatible hardware revision of the board represented in the Board
  Interface file. The board Interface file can represent multiple compatible
  revisions of boards. This option only returns the latest revision.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by
  get_board_parts based on property values on the board parts. You can find
  the properties on an object with the report_property or list_property
  commands. Any property/value pair can be used as a filter. In the case of
  the board part object, "NAME", "PART_NAME", and "BOARD_NAME" are some of
  the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match board parts against the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  board parts available for use in the project. More than one pattern can be
  specified to find multiple boards based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the board parts matching the specified filter
  search pattern:

    get_board_parts -filter {BOARD_NAME=~z*}

  The following example returns all board parts matching the specified search
  patterns:

    get_board_parts {*av* *kc*}

See Also:

   *  current_board_part
   *  get_board_part_interfaces
   *  get_board_part_pins
   *  list_property
   *  report_property
   *  set_property


@@@COMMAND: get_boards@@@
get_boards

Description: 
Get the list of boards available in the project

Syntax: 
get_boards  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
            [-verbose] [<patterns>...]

Returns: 
list of board objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-filter]      Filter list with expression
  [-of_objects]  Get 'board' objects of these types: 'board_component'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match Board names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, Project, Board

Description:

  Gets a list of evaluation boards available for use by the current project.

  The board file, board.xml located in the data/boards folder of the AMD
  Vivado Design Suite installation area, stores information regarding board
  attributes. The board provides a representation of the overall system that
  the device is a part of, and can help define key aspects of the design,
  such as clock constraints, I/O port assignments, and supported interfaces.
  You can create custom boards by defining a custom Board Interface file, as
  described in the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895).

  The board in use by the project is returned by the current_board_part
  command.

  The board can be specified:

   *  When the project is created by selecting Boards from the Default Part
      dialog box.

   *  By setting the BOARD property on the current project as shown in the
      example.

   *  By selecting the Project Device in the Settings dialog box in an open
      project in the Vivado IDE.

  Refer to the Vivado Design Suite User Guide: System-Level Design Entry
  (UG895) for information on creating projects, and on configuring project
  settings.

  Important: When you specify the board with the set_property command, the
  target part is also changed to match the part required by the specified
  BOARD property.

  This command returns a list of boards that are available for use by the
  current project, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter - (Optional) Filter the results list with the specified expression.
  The -filter argument filters the list of objects returned by get_boards
  based on property values on the boards. You can find the properties on an
  object with the report_property or list_property commands. Any
  property/value pair can be used as a filter. In the case of the board
  object, "NAME", "DEVICE", and "FAMILY" are some of the properties that can
  be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the boards of the specified
  board_component objects as returned by get_board_components.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match boards against the specified search patterns.
  The default pattern is the wildcard `*` which gets a list of all boards
  available for use in the project. More than one pattern can be specified to
  find multiple boards based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example reports the properties of the specified evaluation
  board:

    report_property [get_boards -filter {LIBRARY_NAME==artix7}]

  The following example returns all boards matching the specified search
  patterns:

    get_boards {*ar* *kc*}

See Also:

   *  current_board_part
   *  get_board_interface_ports
   *  get_board_part_pins
   *  list_property
   *  report_property
   *  set_property


@@@COMMAND: get_cdc_violations@@@
get_cdc_violations

Description: 
Get a list of CDC violations from a previous report_cdc run

Syntax: 
get_cdc_violations  [-name <arg>] [-regexp] [-filter <arg>] [-nocase] [-quiet]
                    [-verbose] [<patterns>]

Returns: 
list of CDC violation objects

Usage: 
  Name          Description
  -------------------------
  [-name]       Get the results with this name
  [-regexp]     Patterns are full regular expressions
  [-filter]     Filter list with expression
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match CDC violations against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
CDC, Object

Description:

  Gets a list of violation objects found in the design when the report_cdc
  command is run. The properties of individual violation objects can be
  queried using report_property or list_property commands for details of the
  violation.

  Violation objects are associated with the clock-domain crossing paths in
  the current design. The design objects associated with a methodology
  violation object can be obtained using the -of_objects option of the
  appropriate get_* command, such as get_cells, or get_nets for instance.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -name <arg> - (Optional) Get the violations associated with the named CDC
  result set. In this case the report_cdc command must also have been run
  with the -name option.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_cdc_violations based on property values on the violations. You can find
  the properties on an object with the report_property or list_property
  commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match violations against the specified patterns.
  The default pattern is the wildcard `*` which gets all violations. More
  than one pattern can be specified to find multiple violations based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example reports the CDC violations found in the current
  design, then returns a list of all those violations:

    report_cdc
    get_cdc_violations

  The following example generates list of violations in the named CDC report,
  and then gets the endpoint pins associated with any violations found:

    report_cdc -name cdc_1
    get_property ENDPOINT_PIN [get_cdc_violations -name cdc_1]

See Also:

   *  list_property
   *  report_cdc
   *  report_property


@@@COMMAND: get_cells@@@
get_cells

Description: 
Get a list of cells in the current design

Syntax: 
get_cells  [-hsc <arg>] [-hierarchical] [-regexp] [-nocase] [-filter <arg>]
           [-of_objects <args>] [-match_style <arg>] [-leaf]
           [-include_replicated_objects] [-quiet] [-verbose] [<patterns>]

Returns: 
list of cell objects

Usage: 
  Name                           Description
  ------------------------------------------
  [-hsc]                         Hierarchy separator
                                 Default: /
  [-hierarchical]                Search level-by-level in current instance
  [-regexp]                      Patterns are full regular expressions
  [-nocase]                      Perform case-insensitive matching (valid 
                                 only when -regexp specified)
  [-filter]                      Filter list with expression
  [-of_objects]                  Get cells of these pins, timing paths, nets,
                                 bels, clock regions, sites, or drc 
                                 violations
  [-match_style]                 Style of pattern matching
                                 Default: sdc
                                 Values: ucf, sdc
  [-leaf]                        Replace hierarchical cells with leaf cells.
  [-include_replicated_objects]  Include replicated objects when searching 
                                 for patterns. This option is valid only when
                                 patterns is specified.
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution
  [<patterns>]                   Match cell names against patterns
                                 Default: *

Categories: 
SDC, XDC, Object

Description:

  Gets a list of cell objects in the current design that match a specified
  search pattern. The default command returns a list of all cells in the
  current_instance of the open design, as specified by the current_instance
  command.

  You can use the -hierarchical option to extract cells from the hierarchy of
  the current design.

  The get_cells command also includes an option to get all replicated cells
  that are added to a design during physical optimization, or
  phys_opt_design. The use of the -include_replicated_objects option returns
  the replicated cells of an object when the original cell is returned. You
  can use this option to ensure that constraints or properties that are
  applied to a cell are also applied to its replicated cells.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -hsc <arg> - (Optional) Set the hierarchy separator. The default hierarchy
  separator is `/`.

  -hierarchical - (Optional) Get cells from all levels of the design
  hierarchy starting from the level of the current_instance, or from the top
  of the current design. Without this argument, the command will only get
  cells from the current_instance of the design hierarchy. When using
  -hierarchical, the search pattern should not contain a hierarchy separator
  because the search pattern is applied at each level of the hierarchy, not
  to the full hierarchical cell name. For instance, searching for U1/*
  searches each level of the hierarchy for instances with U1/ in the name.
  This may not return the intended results. This is illustrated in the
  examples below.

  Note: When used with -regexp, the specified search string is matched
  against the full hierarchical name, and the U1/* search pattern will work
  as intended.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_cells based on property values on the cells. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "cell" object, "IS_PARTITION", "IS_PRIMITIVE" and
  "IS_LOC_FIXED" are some of the properties that can be used to filter
  results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the cells connected to the specified
  pins, timing paths, nets, bels, clock regions, sites or DRC violation
  objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -match_style - (Optional) Indicates that the search pattern matches UCF
  constraints or SDC constraints. The default is SDC.

  -leaf - (Optional) Replace the hierarchical cells by all the primitive cells
  underneath.

  -include_replicated_objects - (Optional) Include cells that have been added
  through replication during optimizations. This option is valid only when
  specified with <patterns>, and returns replicated cell instances that match
  the pattern. As a default, the get_cells command does not return replicated
  cells.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match cells against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all cells in the
  project. More than one pattern can be specified to find multiple cells
  based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example uses regular expression to return cells in the BFT
  example design that match the filter expressions for NAME and REF_NAME. In
  the first command the NAME is specified in the search pattern, while the
  second command filters on the NAME property. These commands return the same
  results:

    get_cells -regexp -filter { REF_NAME =~ FD.* } .*validFor.*  
    get_cells -regexp -filter { NAME =~ .*validFor.* && REF_NAME =~ FD.* } 
    

  The following example searches all levels of the hierarchy for cells
  beginning with cpu, or fft, and joins each cell returned with the newline
  character to put it on a separate line:

    join [get_cells -hier {cpu* fft*}] \n 
    

  This example gets a list of properties and property values attached to the
  second object of the list returned by get_cells:

    report_property [lindex [get_cells] 1] 
    

  Note: If there are no cells matching the pattern you will get a warning.

  This example prints a list of the library cells instantiated into the
  design at all levels of the hierarchy, sorting the list for unique names so
  that each cell is only printed one time:

    foreach cell [lsort -unique [get_property LIB_CELL [get_cells -hier \  
    -filter {IS_PRIMITIVE==1}]]] {puts $cell} 
    

  The following example demonstrates the effect of -hierarchical searches,
  without and with -regexp:

    get_cells -hierarchical *mmcm*  
       mmcm_replicator_inst_1  
       mmcm_replicator_inst_1/mmcm_stage[0].mmcm_channel[0].mmcm  
    get_cells -hierarchical -regexp .*mmcm.*  
       mmcm_replicator_inst_1  
       mmcm_replicator_inst_1/mmcm_stage[0].mmcm_channel[0].mmcm  
       mmcm_replicator_inst_1/mmcm_stage[0].mmcm_channel[0].mmcm/GND  
       mmcm_replicator_inst_1/mmcm_stage[0].mmcm_channel[0].mmcm/MMCM_Base 
    

  Note: The last two cells (GND and MMCM_Base) were not returned in the first
  example (without -regexp) because the cell names do not match the search
  pattern, as it is applied to each level of the hierarchy.

  The following example runs the report_drc command on the current design,
  and returns any cells associated with DRC violations:

    report_drc -name drc_1  
    get_cells -of_objects [get_drc_violations] 
    

See Also:

   *  current_instance
   *  get_drc_vioations
   *  get_lib_cells
   *  get_nets
   *  get_pins
   *  list_property
   *  phys_opt_design
   *  report_drc
   *  report_property


@@@COMMAND: get_clock_regions@@@
get_clock_regions

Description: 
Get the clock regions for the current device.

Syntax: 
get_clock_regions  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                   [-quiet] [-verbose] [<patterns>]

Returns: 
clock_regions

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions.
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified).
  [-filter]      Filter list with expression
  [-of_objects]  Get the clock_regions of these tiles, sites, slrs, cells, or
                 package bank
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match objects' name against patterns.
                 Default: *

Categories: 
Device, Object

Description:

  Gets a list of clock regions on the target part that match a specified
  search pattern. The default command gets a list of all clock regions on the
  device in an open design.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_clock_regions based on property values on the clock regions. You can
  find the properties on an object with the report_property or list_property
  commands. Any property/value pair can be used as a filter. In the case of
  the clock region object, "COLUMN_INDEX", "HIGH_X", and "LOW_X" are some of
  the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the clock regions of the SLRs that the
  clock region is part of using the get_slrs command. Or get the
  clock_regions that the specified tiles, device sites, I/O banks, or cells
  are assigned to.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match clock regions against the specified patterns.
  The default pattern is the wildcard `*` which gets a list of all clock
  regions on the device. More than one search pattern can be specified to
  find clock regions based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the clock regions matching the search pattern:

    get_clock_regions X0* 
    

  The following example returns the clock regions filtered by the specified
  property:

    get_clock_regions -filter {LOW_X==0} 
    

  Note: These two examples return the same set of clock regions.

  The following example returns the clock regions that the specified ILA
  debug core trigger is assigned to, or placed in:

    get_clock_regions -of_objects [get_cells -hierarchical basic_trigger*] 
    

See Also:

   *  get_sites
   *  list_property
   *  report_property


@@@COMMAND: get_clocks@@@
get_clocks

Description: 
Get a list of clocks in the current design

Syntax: 
get_clocks  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
            [-match_style <arg>] [-include_generated_clocks] [-quiet]
            [-verbose] [<patterns>]

Returns: 
list of clocks

Usage: 
  Name                         Description
  ----------------------------------------
  [-regexp]                    Patterns are full regular expressions
  [-nocase]                    Perform case-insensitive matching (valid only 
                               when -regexp specified)
  [-filter]                    Filter list with expression
  [-of_objects]                Get clocks of these pins, nets, or cells
  [-match_style]               Style of pattern matching, valid values are 
                               ucf, sdc
                               Default: sdc
  [-include_generated_clocks]  Include auto-inferred/generated_clocks also.
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution
  [<patterns>]                 Match clock names against patterns
                               Default: *

Categories: 
SDC, XDC, Object

Description:

  Gets a list of clocks in the current design that match a specified search
  pattern. The default command gets a list of all clocks in the design, like
  the all_clocks command.

  Clocks can be created using the create_clock or the create_generated_clock
  commands, or can be automatically generated by the tool, at the output of
  an MMCM for instance.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_clocks based on property values on the clocks. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the clock object, "PERIOD", "WAVEFORM", and "IS_GENERATED"
  are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the clocks connected to the specified
  cell, pin, port, or net objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -match_style - (Optional) Indicates that the search pattern matches UCF
  constraints or SDC constraints. The default is SDC.

  -include_generated_clocks - (Optional) Returns all clocks, including
  generated clocks that match the specified pattern. This argument should be
  used when clock <patterns> are specified in order to return generated
  clocks of the specified master clocks.

  Note: You can get just the generated clocks with the get_generated_clocks
  command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match clocks against the specified patterns. The
  default pattern is the wildcard `*` which gets all clocks in the project.
  More than one pattern can be specified to find multiple clocks based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example gets a list of clocks matching the various search
  patterns:

    get_clocks {*clock *ck *Clk} 
    

  Note: If there are no clocks matching the pattern you will get a warning.

  The following example gets the master clock object, and all generated
  clocks derived from that clock:

    get_clocks -include_generated_clocks wbClk 
    

  The following example gets all properties and property values attached to
  the specified clock:

    report_property -all [get_clocks wbClk] 
    

See Also:

   *  all_clocks
   *  create_clock
   *  create_generated_clock
   *  get_generated_clocks
   *  list_property
   *  report_property


@@@COMMAND: get_cluster_configurations@@@
get_cluster_configurations

Description: 
Returns all cluster configuration objects

Syntax: 
get_cluster_configurations  [-filter <arg>] [-regexp] [-nocase] [-quiet]
                            [-verbose] [<patterns>]

Usage: 
  Name          Description
  -------------------------
  [-filter]     Filter list with expression
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match cluster configuration against patterns
                Default: *

Categories: 
cluster_configuration


@@@COMMAND: get_constant_paths@@@
get_constant_paths

Description: 
Get constant paths

Syntax: 
get_constant_paths  [-max_paths_per_endpoint <arg>] [-filter <arg>] [-regexp]
                    [-nocase] [-quiet] [-verbose] <objects>

Usage: 
  Name                       Description
  --------------------------------------
  [-max_paths_per_endpoint]  number of branches per endpoint to report traces
                             for
                             Default: 1
  [-filter]                  Filter list with expression
  [-regexp]                  Patterns specified in filter are full regular 
                             expressions
  [-nocase]                  Perform case-insensitive matching for patterns 
                             specified in filter (valid only when -regexp 
                             specified)
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  <objects>                  endpoint pins or instances

Categories: 
Object, Timing

Description:

  Get constant paths objects that meet the specified criteria.

Arguments:

  -max_paths_per_endpoint - Specifies maximum number of paths to report per
  constant endpoint object.

  Note: By default, 1 path per endpoint has been reported.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  the search pattern, based on specified property values.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string.

  Note: You can add ".*" to the beginning or end of a search string to widen
  the search to include a substring.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  <objects> - (Required) design cell(s) or pin(s) object list to report

Example:

  Gets constant paths of the specified pin.

    get_constant_paths [get_pins cpuEngine/or1200_cpu/or1200_sprs/esr/D]

  Gets constant paths of the specified cell.

    report_constant_paths [get_cells cpuEngine/or1200_cpu/or1200_sprs/esr]

See also:

   *  report_constant_paths

   *  get_path_groups

   *  group_path

   *  place_design

   *  report_timing_summary

   *  route_design

   *  set_clock_groups

   *  set_false_path


@@@COMMAND: get_dashboard_gadgets@@@
get_dashboard_gadgets

Description: 
Create the Project summary dashboard

Syntax: 
get_dashboard_gadgets  [-quiet] [-verbose] [<patterns>...]

Usage: 
  Name          Description
  -------------------------
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match gadget names against patterns
                Default: *
                Values: The default search pattern is the wildcard *

Categories: 
Object, Project

Description:

  Gets a list of the dashboard gadgets in the current project.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match dashboard gadget names against the specified
  patterns. The default pattern is the wildcard `*` which gets all dashboard
  gadgets. More than one pattern can be specified to find dashboard gadgets
  based on multiple search criteria.

Examples:

  The following example returns the dashboard gadgets in the current project.

    get_dashboard_gadgets

See Also:

   *  create_dashboard_gadget
   *  delete_dashboard_gadgets
   *  move_dashboard_gadget


@@@COMMAND: get_dashboards@@@
get_dashboards

Description: 
Get list of Project summary dashboards

Syntax: 
get_dashboards  [-quiet] [-verbose] [<patterns>...]

Usage: 
  Name          Description
  -------------------------
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match gadget names against patterns
                Default: *
                Values: The default search pattern is the wildcard *

Categories: 
Project


@@@COMMAND: get_dataflow_paths@@@
get_dataflow_paths

Description: 
Get a list of dataflow paths

Syntax: 
get_dataflow_paths  [-filter <arg>] [-max_paths <arg>] [-max_depth <arg>]
                    [-min_depth <arg>] [-min_width <arg>] [-from <args>]
                    [-to <args>] [-through <args>] [-quiet] [-verbose]

Returns: 
List of dataflow paths

Usage: 
  Name          Description
  -------------------------
  [-filter]     Filter list with given expression.
  [-max_paths]  Maximum number of paths.
                Default: 100
  [-max_depth]  Maximum number of instances that can be skipped to find the 
                next required end point.
                Default: 10
  [-min_depth]  Minimum number of instances that can be skipped to find the 
                next required end point.
                Default: 1
  [-min_width]  Minimum number of bus depth to consider for paths to be 
                shown.
                Default: 1
  [-from]       From leaf cells.
  [-to]         To leaf cells.
  [-through]    Through leaf cells.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
Netlist, Project

Description:

  This returns a list of dataflow path objects which is useful to generate a
  group of paths to analyze within the Dataflow Design view. A dataflow
  design is an optimized netlist that has low level objects trimmed out and
  focuses on sparse netlist objects and wide buses. A dataflow path object is
  a path extracted from a dataflow design.

  This command works when a dataflow design is open and the Dataflow view is
  selected in the Vivado Design Suite. The command iterates through dataflow
  primitives until max_depth is reached and returns all paths that meet the
  criteria. The following are the typical dataflow primitives available in
  the dataflow netlist.

   *  Memories

   *  DSP

   *  Other IP blocks such as Transceivers, PCIe, and DCMAC

Arguments:

  -filter <args> - (Optional) Filter the results list with the specified
  expression.

  -start_ref_name <arg> - (Optional) Provides the REF_NAME of the intended
  startpoint. The REF_NAME must exist in the dataflow design.

  -end_ref_name <arg> - (Optional) Provides the REF_NAME of intended
  endpoint. The REF_NAME must exist in the dataflow design.

  -max_paths <arg> - (Optional) Specifies the maximum number of paths to
  return. Default value is 100.

  -max_depth <arg> - (Optional) Specifies the maximum number of netlist
  objects to trace through before reaching the endpoint. Default value is 10.

  -min_depth <arg> - (Optional) Specifies the minimum number of netlist
  objects to trace through before reaching the endpoint. Default value is 1.

  -from <arg> - (Optional) Specify a startpoint cell or list of cells. The
  returned path starts from one of the cells provided. The argument only
  accepts cell objects.

  -to <arg> - (Optional) Specify a endpoint cell or list of cells. The
  returned path ends at one of the cells provided. The argument only accepts
  cell objects.

  -through <arg> - (Optional) Specify a midpoint cell or list of cells to
  trace paths through. The argument only accepts cell objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example generates up to 100 dataflow path objects:

    show_objects -name dfv_1 [get_dataflow_paths]

  The following example generates dataflow paths from NoC Slave NOC_NSU512
  cells:

    show_objects -name dfv_2 [get_dataflow_paths -start_ref_name NOC_NSU512]

  The following example generates up to 50 paths from a given cell called
  start_cell with a max_depth of 20 cells:

    show_objects -name dfv_3 [get_dataflow_paths -from [get_cells start_cell] \
                        -max_depth 20 -max_paths 50]

See Also:

   *  create_dataflow_design

   *  show_objects


@@@COMMAND: get_debug_cores@@@
get_debug_cores

Description: 
Get a list of debug cores in the current design

Syntax: 
get_debug_cores  [-filter <arg>] [-of_objects <args>] [-regexp] [-nocase]
                 [-quiet] [-verbose] [<patterns>]

Returns: 
list of debug_core objects

Usage: 
  Name           Description
  --------------------------
  [-filter]      Filter list with expression
  [-of_objects]  Get cores of these debug ports or nets
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match debug cores against patterns
                 Default: *

Categories: 
Object, Debug, XDC

Description:

  Gets a list of AMD Vivado Lab Edition debug cores in the current project
  that match a specified search pattern. The default command gets a list of
  all debug cores in the project.

  Debug cores are added to the project with the create_debug_core command.
  When a ILA debug core (labtools_ila_v3) is added to the project, it is
  contained within a Debug Hub core (labtools_xsdbmasterlib_v2), and includes
  a CLK port and a PROBE port as a default. Additional ports can be added to
  the debug core with the use of the create_debug_port command.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_debug_cores based on property values on the debug cores. You can find
  the properties on an object with the report_property or list_property
  commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the ILA debug cores associated with the
  specified debug ports, or nets.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match debug cores against the specified patterns.
  The default pattern is the wildcard `*` which gets all debug cores. More
  than one pattern can be specified to find multiple debug cores based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following command gets a list of the Vivado Lab Edition debug cores in
  the current project:

    get_debug_cores

  Note: A Debug Hub core is returned as one of the debug cores in the
  project. You cannot directly create this core, but it is automatically
  added by the tool when you add any ILA cores to the project.

  The following example gets the properties of the specified debug core:

    report_property [get_debug_cores myCore]

See Also:

   *  create_debug_core
   *  create_debug_port
   *  get_debug_ports
   *  list_property
   *  report_property
   *  set_property


@@@COMMAND: get_debug_ports@@@
get_debug_ports

Description: 
Get a list of debug ports in the current design

Syntax: 
get_debug_ports  [-filter <arg>] [-of_objects <args>] [-regexp] [-nocase]
                 [-quiet] [-verbose] [<patterns>]

Returns: 
list of debug_port objects

Usage: 
  Name           Description
  --------------------------
  [-filter]      Filter list with expression
  [-of_objects]  Get ports of these debug cores
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match debug ports against patterns
                 Default: *

Categories: 
Object, Debug, XDC

Description:

  Gets a list of ports defined on Integrated Logic Analyzer (ILA) debug cores
  in the current project that match a specified search pattern. The default
  command gets a list of all debug ports in the project.

  Debug ports are defined when ILA debug cores are created with the
  create_debug_core command. Ports can be added to existing debug cores with
  the create_debug_port command.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_debug_ports based on property values on the debug ports. You can find
  the properties on an object with the report_property or list_property
  commands. Any property/value pair can be used as a filter. In the case of
  the debug_port object, "PORT_WIDTH", and "MATCH_TYPE" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <args> - (Optional) Get the ChipScope debug ports associated
  with the specified debug cores.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match debug ports against the specified patterns.
  The default pattern is the wildcard `*` which gets all debug ports. More
  than one pattern can be specified to find multiple debug ports based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following command gets a list of the ports from the ILA debug cores in
  the current project, with a PORT_WIDTH property of 8:

    get_debug_ports -filter {PORT_WIDTH==8}

  The following example gets the properties attached to the specified debug
  port:

    report_property [get_debug_ports myCore/PROBE1]

  Note: The debug port is defined by the core_name/port_name combination.

See Also:

   *  create_debug_core
   *  create_debug_port
   *  list_property
   *  report_property


@@@COMMAND: get_designs@@@
get_designs

Description: 
Get a list of designs in the current project

Syntax: 
get_designs  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
             [<patterns>]

Returns: 
list of design objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match design names against patterns
                Default: *

Categories: 
Object

Description:

  Gets a list of open designs in the current project that match a specified
  search pattern. The default command gets a list of all open designs in the
  project.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_designs based on property values on the designs. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "design" object, "CONSTRSET", and "PART" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match designs against the specified patterns. The
  default pattern is the wildcard `*` which gets all designs. More than one
  pattern can be specified to find multiple designs based on different search
  criteria.

Examples:

  The following example gets all open designs in the current project:

    get_designs 
    

  The following example gets the assigned properties of an open design
  matching the search pattern:

    report_property [get_designs r*] 
    

  Note: If there are no designs matching the pattern you will get a warning.

See Also:

   *  report_property


@@@COMMAND: get_dfx_footprint@@@
get_dfx_footprint

Description: 
Get footprint tiles for different DFX flows.

Syntax: 
get_dfx_footprint  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                   [-place] [-route] [-pu] [-bli_tiles] [-frame] [-half_frame]
                   [-shared] [-cell_type <arg>] [-site_type <arg>] [-overlap]
                   [-prohibit] [-illegal_nodes] [-illegal_clock_nodes]
                   [-snapped_tiles] [-quiet] [-verbose] [<patterns>]

Returns: 
tiles, sites, cells, nodes

Usage: 
  Name                    Description
  -----------------------------------
  [-regexp]               Patterns are full regular expressions
  [-nocase]               Perform case-insensitive matching. (valid only when
                          -regexp specified)
  [-filter]               Filter list with expression
  [-of_objects]           Accepts cell instance of the reconfigurable module 
                          and tile of the device. It accepts one object as 
                          input.
  [-place]                Returns the placement footprint of a cell specified
                          by -of_objects
  [-route]                Returns the routing footprint of a cell specified 
                          by -of_objects
  [-pu]                   Returns the programmable unit of a given tile 
                          specified by -of_object
  [-bli_tiles]            Returns the BLI tiles connected to given HSR tile
  [-frame]                Returns frame tiles of a given tile specified by 
                          -of_object
  [-half_frame]           Returns half frame tiles of a given tile specified 
                          by -of_object
  [-shared]               Returns the tiles of a given cell specified by 
                          -of_objects, that are shared with another 
                          reconfigurable pblock
  [-cell_type]            Returns the cells of type specified by value. The 
                          cells are of the reconfigurable module specified by
                          `-of_objects`. Valid values are: non_clock, clock, 
                          and clock_control.
                          Note: -cell_type is only used for disjoint pblock.
  [-site_type]            Returns the sites of type specified by value. The 
                          sites are of the reconfigurable module specified by
                          `-of_objects`. Valid values are hsr, fsr, fsr_hsr.
                          Note: -site_type is only used for disjoint pblock.
  [-overlap]              Returns the overlapped tiles of routing footprint 
                          of a given cell specified by -of_object
  [-prohibit]             Returns the prohibited sites of RM module specified
                          by -of_objects
  [-illegal_nodes]        Returns the illegal nodes of a RP module specified 
                          by -of_objects, or illegal nodes prohibited for 
                          static if no cell is specified 
  [-illegal_clock_nodes]  Returns the illegal clock nodes of a net specified 
                          by -of_objects
  [-snapped_tiles]        Returns the tiles of a given cell that are in 
                          derived ranges and not in XDC constraints
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  [<patterns>]            Match tiles, sites, cells, nodes against patterns
                          Default: *

Categories: 
HD, Debug

Description:

  This command is used in the Dynamic Function eXchange (DFX) flow. The
  command highlights the placement and routing footprints of reconfigurable
  Pblocks and to view the overlapping tiles. It can also be used for
  debugging and analysis of DFX DRCs.

  The get_dfx_footprint command returns tiles, sites, and cells objects which
  can be further used in create_pblock and resize_pblock commands to create
  valid reconfigurable Pblocks. Most of the arguments take the reconfigurable
  module (RM) cell name as a valid value for -of_objects. The command
  requires the reconfigurable Pblock to be defined by user before executing
  the command. For more details about footprint and expanded footprint, see
  Vivado Design Suite User Guide: Dynamic Function eXchange (UG909).

  Note: get_dfx_footprint command is supported for Versal adaptive SoC
  devices only. For Ultrascale and Ultrascale+ devices, -place, -route, and
  -illegal_nodes are supported.

Arguments:

  -of_objects - (Optional) Dependent on the argument passed, it is used to
  return objects associated with specified reconfigurable module or device
  tiles. It accepts one object as input.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -place - (Optional) Returns the tiles which are included in the placement
  footprint of a reconfigurable module specified by -of_objects. Following is
  an example of getting placement footprnit of the reconfigurable module
  design_0_i/rp1_rm1.

    get_dfx_footprint -place -of_objects [get_cells design_0_i/rp1_rm1]

  -route - (Optional) Returns the tiles which are included in the routing
  footprint of a reconfigurable module specified by -of_objects. Routing
  footprint is superset of placement footprint.

  -pu - (Optional) Returns the tiles included in programmable unit (PU) which
  are the minimum required resource set for partial reconfiguration for the
  tile specified by -of_objects. The granularity varies based on the resource
  type and architecture family.

  -bli_tiles - (Optional) Returns the Boundary logic interface (BLI) tile
  connected to given HSR tile specified by -of_objects. BLI tiles are
  register stages available for signal going in and out of FSR to and from
  HSR resources.

  -snapped_tiles - (Optional) Returns the list of tiles added to derived
  ranges by snapping and are not present in XDC constraints. With
  SNAPPING_MODE on, the tool includes PU of tiles in the Pblock derived
  ranges that are not included in XDC. The following example shows getting
  tiles of reconfigurable module that are snapped in derived range and not
  part of XDC.

    get_dfx_footprint -snapped_tiles -of_objects [get_cells design_0_i/rp1rm1_0]

  -prohibit - (Optional) Returns the prohibited sites of RM module specified
  by -of_objects. This lists all prohibited sites of the given RM cell.

  -illegal_nodes - (Optional) Returns the illegal nodes of a RP module
  specified by -of_objects, or illegal nodes prohibited for static if no cell
  is specified. Illegal nodes cannot be used in routing of RM or static net.

  -illegal_clock_nodes - (Optional) Returns the illegal clock nodes of a
  clock net specified by -of_objects. Illegal clock nodes cannot be used in
  clock routing. These nodes are subset of illegal nodes.

  -frame - (Optional) Returns the tiles included in a frame of the given tile
  specified by -of_objects. A Reconfigurable Frame is the smallest size
  physical region that can be reconfigured, and aligns with clock region
  boundaries.

  -half_frame - (Optional) Returns the tiles included in a half frame of the
  given tile specified by -of_objects. A Reconfigurable Frame is the smallest
  size physical region that can be reconfigured, and aligns with clock region
  boundaries and half frame aligns with half of the clock region boundary.

  -site_type - (Optional) Returns the sites of type specified by value. It
  takes the reconfigurable module cell name in -of_objects. Valid values are:

   *  hsr - Returns the valid sites of the horizontal super region which
      needs to be part of the reconfigurable Pblock of the reconfigurable
      module specified by -of_objects.

   *  fsr - Returns the valid sites of the fabric logic region which needs to
      be part of the reconfigurable Pblock of the reconfigurable module
      specified by -of_objects.

   *  fsr_hsr - Returns the valid sites of horizontal super region and
      adjoined fabric logic region which needs to be part of the
      reconfigurable Pblock of the reconfigurable module specified by
      -of_objects. The clock sources needs to be placed in the HSR and the
      clock control logic needs to be placed in this adjoined fabric logic
      region in case of disjoint Pblock.

      Note: -site_type is only used for disjoint Pblocks. This option is
      disabled for non-disjoint Pblocks and does not return any objects.

  The following example get the sites of type fsr of the reconfigurable
  module design_0_i/rp1_rm1.

    get_dfx_footprint -site_type fsr -of_objects [get_cells design_0_i/rp1_rm1]

  -cell_type - (Optional) Used to return the cells of type specified by
  value. The cells are of the reconfigurable module specified by -of_objects.
  Valid values are:

   *  non_clock - Returns list of cells which needs to be placed in fabric
      logic region.

   *  clock - Returns list of cells which are of clock type and needs to be
      placed in HSR.

   *  clock_control - Returns list of cells which are part of the clock
      control logic and needs to be placed in the fabric logic region just
      above the HSR where the source clock cells are placed.

      Note: -cell_type is only used for disjoint Pblocks. This option is
      disabled for non-disjoint Pblocks and does not return any objects.

  -overlap - (Optional) Returns the overlapping tiles of routing footprint of
  a given reconfigurable module specified by -of_objects. This argument can
  be used to get the tiles which are part of multiple reconfigurable Pblocks
  in a DFX design which could lead to DRC errors.

  -shared - (Optional) Returns the tiles of a given reconfigurable module
  specified by -of_objects which can be shared with another reconfigurable
  Pblock. This lists all shared clocking tiles of the given RM cell.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information, refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

Examples:

  The following example returns the Programmable Unit (PU) of a CLE_E_CORE
  tile.

    get_dfx_footprint -pu -of_objects [get_tiles CLE_E_CORE_X27Y4]

  The following example returns the overlapping tiles of the RM cells
  design_0_i/rp1_rm1 footprint .

    get_dfx_footprint -overlap -of_objects [get_cells design_0_i/rp1_rm1]

  The following example shows usage of get_dfx_footprint command to create a
  valid child Pblock to handle disjoint Pblock usecase. Here rp_pblock is the
  parent Pblock which is disjoint and rp_child_pblock is the child Pblock.

    set fsr_tiles [get_dfx_footprint -of $rm_cell -site_type fsr]
    set non_clock_cells [get_dfx_footprint -of $rm_cell -cell_type non_clock]
    resize_pblock [get_pblock rp_child_pblock] -add $fsr_tiles
    # Add sites and cells to child pblock
    add_cells_to_pblock [get_pblocks rp_child_pblock] $non_clock_cells -clear_locs

  The following example returns the BLI tiles connected to CMT_MMCM HSR tile.

    get_dfx_footprint -bli_tiles -of_objects [get_tiles CMT_MMCM_X25Y0]

See Also:

   *  create_pblock
   *  resize_pblock


@@@COMMAND: get_drc_checks@@@
get_drc_checks

Description: 
Get a list of DRC rule check objects

Syntax: 
get_drc_checks  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>]
                [-abbrev <arg>] [-ruledecks <args>] [-quiet] [-verbose]
                [<patterns>]

Returns: 
list of DRC rule_check objects

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'rule_check' objects of these types: 'drc_ruledeck'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-abbrev]      Get the largest ID for this abbrev
  [-ruledecks]   Containers of Report DRC rule checks
                 Default: default
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'rule_check' objects against patterns.
                 Default: *

Categories: 
DRC, Object

Description:

  Gets a list of the currently defined DRC checks. This list includes both
  factory defined design rule checks, and user-defined checks created by the
  create_drc_check command.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -of_objects <args> - (Optional) Get the design rule checks associated with
  a rule deck object. The ruledeck object must be specified by the
  get_drc_ruledecks command.

  Note: -of_objects cannot be used with a search <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of rule checks returned
  by get_drc_checks based on property values on the rule checks. You can find
  the properties on an object with the report_property or list_property
  commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -abbrev <arg> - (Optional) Get the design rule checks associated with the
  specified rule name or abbreviation.

  -ruledecks <args> - (Optional) Get the design rule checks associated with
  the specified rule decks.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match design rule checks against the specified
  patterns. The default pattern is the wildcard `*` which gets all rule
  checks. More than one pattern can be specified to find multiple rule checks
  based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following command gets a list of all AVAL design rule checks:

    get_drc_checks AVAL* 
    

  The following example gets the checks associated with the specified rule
  deck:

    get_drc_checks -of_objects [get_drc_ruledecks placer_checks] 
    

See Also:

   *  create_drc_check
   *  get_drc_ruledecks
   *  list_property
   *  report_drc
   *  report_property


@@@COMMAND: get_drc_ruledecks@@@
get_drc_ruledecks

Description: 
Get a list of DRC rule deck objects

Syntax: 
get_drc_ruledecks  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>]
                   [-quiet] [-verbose] [<patterns>]

Returns: 
drc_ruledeck

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'drc_ruledeck' objects of these types: 'rule_check'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'drc_ruledeck' objects against patterns.
                 Default: *

Categories: 
DRC, Object

Description:

  Gets a list of currently defined rule decks for use with the report_drc
  command.

  A rule deck is a collection of design rule checks grouped for convenience,
  to be run at different stages of the FPGA design flow, such as during I/O
  planning or placement. The tool comes with a set of factory defined rule
  decks, but you can also create new user-defined rule decks with the
  create_drc_ruledeck command, and add checks to the rule deck using the
  add_drc_checks command.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -of_objects <args> - (Optional) Get the DRC ruledeck object of the
  associated rule check objects.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_drc_ruledecks based on property values on the rule decks. You can find
  the properties on an object with the report_property or list_property
  commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match rule decks against the specified patterns.
  The default pattern is the wildcard `*` which gets all rule decks. More
  than one pattern can be specified to find multiple rule decks based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example gets a list of rule decks defined in the current
  project:

    
    get_drc_ruledecks 
    

  The following example lists each of the checks associated with the
  placer_checks rule deck on a separate line:

    foreach rule [get_drc_checks -of_objects \  
       [get_drc_ruledecks placer_checks]] {puts $rule} 
    

See Also:

   *  add_drc_checks
   *  create_drc_ruledeck
   *  list_property
   *  report_drc
   *  report_property


@@@COMMAND: get_drc_violations@@@
get_drc_violations

Description: 
Get a list of DRC violations from a previous report_drc run

Syntax: 
get_drc_violations  [-name <arg>] [-regexp] [-filter <arg>] [-nocase] [-quiet]
                    [-verbose] [<patterns>]

Returns: 
list of DRC violation objects

Usage: 
  Name          Description
  -------------------------
  [-name]       Get the results with this name
  [-regexp]     Patterns are full regular expressions
  [-filter]     Filter list with expression
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match drc_violations against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
DRC, Object

Description:

  Gets a list of violation objects found in the design when the report_drc
  command is run. Violation objects are created at the time DRC is run,
  either by the internal design rule checks provided by the Vivado tools, or
  created by the create_drc_violation command in user-defined DRC checks. The
  properties of individual violation objects can be queried using
  report_property or list_property commands for details of the violation.

  Violation objects are associated with the cells, nets, pins, or ports in
  the current design, or sites on the current device. The design objects
  associated with a DRC violation object can be obtained using the
  -of_objects option of the appropriate get_* command, such as get_cells, or
  get_nets for instance.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -name <arg> - (Optional) Get the violations associated with the named DRC
  result set. In this case the report_drc command must have been run with the
  -name option.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_drc_violations based on property values on the violations. You can find
  the properties on an object with the report_property or list_property
  commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match violations against the specified patterns.
  The default pattern is the wildcard `*` which gets all violations. More
  than one pattern can be specified to find multiple violations based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example reports the DRC violations found in the current
  design, then returns a list of all those violations:

    report_drc  
    get_drc_violations 
    

  The following example gets the properties of the specified DRC violation:

    report_property [lindex [get_drc_violations] 0] 
    

  The following example returns the list of violations in the specified DRC
  report of the current design, and then returns the ports associated with
  any violations of the unspecified I/O Standard rule (NSTD):

    get_drc_violations -name drc_1  
    get_ports -of_objects [get_drc_violations -name drc_1 NSTD*] 
    

See Also:

   *  create_drc_check
   *  create_drc_violation
   *  get_cells
   *  get_nets
   *  get_pins
   *  get_ports
   *  get_sites
   *  report_drc


@@@COMMAND: get_example_designs@@@
get_example_designs

Description: 
Get a list of example designs

Syntax: 
get_example_designs  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
                     [<patterns>...]

Returns: 
list of design objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  The patterns to match against
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
IPIntegrator

Description:

  The command returns a list of example designs available in the current
  release of the Vivado Design Suite, or returns an error if it fails.

  Example designs can be opened, or instantiated into the Vivado Design
  Suite, onto specific target hardware devices or boards.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_example_designs based on property values on the designs. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the "example design" object, "NAME",
  "SUPPORTED_BOARDS" and "SUPPORTED_PARTS" are some of the properties that
  can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match example designs against the specified
  patterns. The default pattern is the wildcard `*` which gets a list of all
  supported example designs.

Examples:

  The following example returns reports the properties of each of the example
  designs in the current release:

    foreach x [get_example_designs] {  
    puts "********* Design $x **************"  
    report_property -all $x} 
    

  Note: The reported properties include the PARTS property which lists the
  compatible parts for the example design.

See Also:

   *  instantiate_example_design


@@@COMMAND: get_file_path@@@
get_file_path

Description: 
Get the full path to the specific file, for the given part.

Syntax: 
get_file_path  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
               [-part <arg>] [-partname <arg>] [-partobj <arg>] [-v <arg>]
               [-vaultFileId <arg>] [-useLegacy <arg>] [-filename <arg>]
               [-legacyFileId <arg>] [-dataLevel <arg>] [-isTimingFile <arg>]
               [-checkDeviceFilesDir <arg>] [-useOldAPIs <arg>]
               [-askGetDataFilePath <arg>]
               [-askGetMostSpecificDataLocation <arg>]
               [-askGetDataLocation_Filename <arg>]
               [-askGetDataLocation_DataLevel_Filename <arg>] [-quiet]
               [-verbose] [<patterns>]

Returns: 
string

Usage: 
  Name                                      Description
  -----------------------------------------------------
  [-regexp]                                 Patterns are full regular 
                                            expressions
  [-nocase]                                 Perform case-insensitive 
                                            matching. (valid only when 
                                            -regexp specified)
  [-filter]                                 Filter list with expression
  [-of_objects]                             Get the string of these part.
  [-part]                                   (same as -partname) partname to 
                                            use if not providing a part 
                                            object.
  [-partname]                               partname to use if not providing 
                                            a part object.
  [-partobj]                                part Tcl object
  [-v]                                      Verbose level where 
                                            0=None;1=Errors;2=Warnings;3=Info
                                            ;4=Trace;5=Verbose
                                            Default: 2=Warnings
  [-vaultFileId]                            Vault Key or Filename for looking
                                            up file location in vault's 
                                            device.manifest.
  [-useLegacy]                              Use legacy / pre-vault file 
                                            locating logic, where 
                                            0=NO_LEGACY_FILE_LOCATING, 
                                            1=GET_DATA_FILE_PATH, 
                                            2=GET_MOST_SPECIFIC_DATA_LOC, 
                                            3=GET_DATA_LOCATION, 
                                            4=GET_DATA_LOCATION_IN_DPX_COMMON
                                            Default: 0=NO_LEGACY_FILE_LOCATIN
                                            G
  [-filename]                               filename is an obsolete parameter
                                            because it is now ambiguous. It 
                                            will be used as the legacyFileId,
                                            but you may have intended it to 
                                            be used as the vaultFileId.  
                                            Please use those two parameters 
                                            instead of this one.
  [-legacyFileId]                           Legacy Filename or Token(e.g. 
                                            "<xng>".
  [-dataLevel]                              0=HDPA_ARCH, 1=HDPA_FAMILY, 
                                            2=HDPA_DEVICE, 3=HDPA_PACKAGE, 
                                            4=HDPA_SPEED to use with 
                                            getDataLocation(dataLevel, 
                                            filename) or getMostSpecificDataL
                                            ocation(dataLevel, filename, 
                                            isTimingFile(default=false), 
                                            checkDeviceFilesDir(default=false
                                            ))
                                            Default: 0=HDPA_ARCH
  [-isTimingFile]                           Legacy option to indicate a 
                                            timing file, to use with 
                                            getMostSpecificDataLocation(dataL
                                            evel, filename, isTimingFile(defa
                                            ult=false), checkDeviceFilesDir(d
                                            efault=false))
                                            Default: 0=false
  [-checkDeviceFilesDir]                    Legacy option to look in 
                                            "devicefiles" directory, to use 
                                            with getMostSpecificDataLocation(
                                            dataLevel, filename, 
                                            isTimingFile(default=false), 
                                            checkDeviceFilesDir(default=false
                                            ))
                                            Default: 0=false
  [-useOldAPIs]                             if true, force the use of 
                                            old/deprecated/legacy HDARPart 
                                            API calls directly rather then 
                                            indirectly through new HDARPart 
                                            getFilePath API.
                                            Default: 0=false
  [-askGetDataFilePath]                     ask getDataFilePath
                                            Default: 0=false
  [-askGetMostSpecificDataLocation]         ask getMostSpecificDataLocation
                                            Default: 0=false
  [-askGetDataLocation_Filename]            ask getDataLocation(filename)
                                            Default: 0=false
  [-askGetDataLocation_DataLevel_Filename]  ask getDataLocation(DataLevel, 
                                            filename)
                                            Default: 0=false
  [-quiet]                                  Ignore command errors
  [-verbose]                                Suspend message limits during 
                                            command execution
  [<patterns>]                              Match string against patterns
                                            Default: *

Categories: 
Device, Object, Internal


@@@COMMAND: get_files@@@
get_files

Description: 
Get a list of source files

Syntax: 
get_files  [-regexp] [-nocase] [-filter <arg>] [-compile_order <arg>]
           [-used_in <arg>] [-references] [-all] [-of_objects <args>] [-quiet]
           [-verbose] [<patterns>]

Returns: 
list of file objects

Usage: 
  Name              Description
  -----------------------------
  [-regexp]         Patterns are full regular expressions
  [-nocase]         Perform case-insensitive matching (valid only when 
                    -regexp specified)
  [-filter]         Filter list with expression
  [-compile_order]  Get files by type and in compilation order (must use with
                    -used_in)
  [-used_in]        Get files used in a specific step (must use with 
                    -compile_order)
  [-references]     Get files referenced in the provided objects (must use 
                    with -of_objects)
  [-all]            Include all internal files.
  [-of_objects]     Get 'file' objects of these types: 'file fileset ip 
                    reconfig_module'.
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  [<patterns>]      Match file names against patterns
                    Default: *

Categories: 
Object, Project

Description:

  Gets a list of files in the current project that match a specified search
  pattern. The default command gets a list of all files in the project.

  The get_files command returns a machine readable list of files in the
  project, in a design, or in a sub-design such as an IP core or block
  design. You can filter the results returned by get_files using one of the
  command arguments such as -of_objects, -compile_order, -used_in, and
  -filter.

  The -compile_order and -used_in options must be used together to return a
  list of files from the sources or constraints filesets used in synthesis,
  simulation, or implementation, sorted according to the order of evaluation
  by the Vivado tools. The -compile_order and -used_in options use complex
  file ordering rules that can change based on header files, include files,
  or other language options. You can also filter files returned by get_files
  according to the USED_IN property, using the -filter option instead of the
  -used_in option.

  You can use the report_compile_order command to generate a report of all
  files in the sources or constraints filesets, used in synthesis,
  simulation, AND implementation, sorted into different sections.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_files based on property values on the files. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the "file"
  object, "FILE_TYPE", and "IS_ENABLED" are some of the properties that can
  be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the files that are associated with the
  specified file, fileset, IP, or reconfig_module objects. The default is to
  search all filesets. When -compile_order and -used_in are specified, the
  -of_objects switch will only accept a single fileset, or a single
  sub-design such as an IP core, Block Design, or DSP design. A sub-design is
  also known as a composite file.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -compile_order [ sources | constraints ] - (Optional) Returns the source
  design files, or the constraint files sorted according to the order of
  compilation by the Vivado Design Suite.

  Note: This option must be used with the -used_in option. When specified,
  the -of_objects switch will only accept a single fileset or sub-design.

  -used_in <arg> - (Optional) Accepts one of the enumerated values of the
  USED_IN property for files, and returns files matching the specified value.
  Valid values for this option include the following: synthesis, simulation,
  or implementation. Refer to the Vivado Design Suite Properties Reference
  Guide (UG912) for information on the USED_IN property and its supported
  values.

  Note: This option must be used with the -compile_order option. When
  specified, the -of_objects switch will only accept a single fileset or
  sub-design.

  -all - (Optional) Returns all of the files in the design, including
  internal files in support of IP and other objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match files against the specified patterns. The
  default pattern is the wildcard `*` which gets all files in the project or
  of_objects. More than one pattern can be specified to find multiple files
  based on different search criteria.

Examples:

  The following example returns the VHDL files in the design that are used in
  simulation:

    get_files -filter {FILE_TYPE == VHDL && USED_IN =~ simulation*} 
    

  This example returns the design source files that are used in simulation:

    get_files -compile_order sources -used_in simulation 
    

  This example gets a list of files associated with the specified IP core
  composite file (ip.xci), from the sources_1 fileset that are used in
  synthesis:

    get_files -compile_order sources -used_in synthesis -of [get_files ip.xci]  
    

  The following example gets a list of the files found in the sources_1 and
  constrs_1 filesets:

    get_files -of [get_filesets {sources_1 constrs_1}] 
    

  Note: If there are no files matching the pattern you will get a warning.

See Also:

   *  report_compile_order
   *  report_property


@@@COMMAND: get_filesets@@@
get_filesets

Description: 
Get a list of filesets in the current project

Syntax: 
get_filesets  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
              [-verbose] [<patterns>]

Returns: 
list of fileset objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get 'fileset' objects of these types: 'reconfig_module'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match fileset names against patterns
                 Default: *

Categories: 
Object, Project

Description:

  Gets a list of filesets in the current project that match a specified
  search pattern. The default command gets a list of all filesets in the
  project.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_filesets based on property values on the filesets. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the fileset object, "DESIGN_MODE", and "FILESET_TYPE" are
  some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the filesets that are associated with
  the specified reconfig_module objects. The default is to search all
  filesets.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match fileset names against the specified patterns.
  The default pattern is the wildcard `*` which gets all filesets. More than
  one pattern can be specified to find filesets based on multiple search
  criteria.

Examples:

  The following example returns the source files in the Source Set:

    get_files -of_objects [get_filesets sources_1] 
    

  The following example makes project_2 the active project, and then gets a
  list of filesets beginning with the letter s or the letter r:

    current_project project_2  
    get_filesets s* r* -quiet 
    

  Note: If there are no filesets matching the pattern, such as r*, you will
  get a warning that no filesets matched the specified pattern. However, in
  the above example the use of -quiet will suppress that warning message.

  The following example gets filesets beginning with the letter C, using a
  case insensitive regular expression:

    get_filesets C.* -regexp -nocase 
    

  In the above example, constrs_1 and constrs_2 constraint sets would be
  returned if defined in the current project.

See Also:

   *  get_files
   *  report_property


@@@COMMAND: get_gcc_versions@@@
get_gcc_versions

Description: 
Get supported GCC version(s) for the specified simulator

Syntax: 
get_gcc_versions  [-quiet] [-verbose] [<name>]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<name>]    Simulator name

Categories: 
ToolLaunch, Simulation


@@@COMMAND: get_generated_clocks@@@
get_generated_clocks

Description: 
Get a list of generated clocks in the current design

Syntax: 
get_generated_clocks  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                      [-match_style <arg>] [-quiet] [-verbose] [<patterns>]

Returns: 
list of clocks

Usage: 
  Name            Description
  ---------------------------
  [-regexp]       Patterns are full regular expressions
  [-nocase]       Perform case-insensitive matching (valid only when -regexp 
                  specified)
  [-filter]       Filter list with expression
  [-of_objects]   Get generated clocks of these pins, ports or nets
  [-match_style]  Style of pattern matching, valid values are ucf, sdc
                  Default: sdc
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<patterns>]    Match generated clock names against patterns
                  Default: *

Categories: 
XDC, Object

Description:

  Gets a list of generated clocks in the current project that match a
  specified search pattern. The default command gets a list of all generated
  clocks in the project.

  A generated clock can be added to the design using the
  create_generated_clock command, or can be automatically generated by the
  tool, at the output of an MMCM for instance.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - Filter the results list with the specified expression. The
  -filter argument filters the list of objects returned by
  get_generated_clocks based on property values on the generated clocks. You
  can find the properties on an object with the report_property or
  list_property commands. In the case of the generated_clock object,
  "DUTY_CYCLE" and "MASTER_CLOCK" are some of the properties that can be used
  to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the generated clocks connected to the
  specified port, pin, or net objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -match_style - (Optional) Indicates that the search pattern matches UCF
  constraints or SDC constraints. The default is SDC.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match generated clocks against the specified
  patterns. The default pattern is the wildcard `*` which gets all generated
  clocks in the project.

Examples:

  The following example gets the names of all generated clocks in the current
  project:

    get_generated_clocks 
    

See Also:

   *  create_generated_clock
   *  get_clocks
   *  report_property


@@@COMMAND: get_gtbanks@@@
get_gtbanks

Description: 
Get a list of gtbanks.

Syntax: 
get_gtbanks  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
             [-verbose] [<patterns>]

Returns: 
gtbanks

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the gtbanks of these package_pins, ports, clock regions,
                 slrs or sites.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match gtbanks against patterns
                 Default: *

Categories: 
Device, XDC, Object


@@@COMMAND: get_gui_custom_command_args@@@
get_gui_custom_command_args

Description: 
Get custom command arguments

Syntax: 
get_gui_custom_command_args  -command_name <arg> [-regexp] [-nocase] [-quiet]
                             [-verbose] [<patterns>...]

Returns: 
list of custom command argument names

Usage: 
  Name           Description
  --------------------------
  -command_name  Unique name of the custom command whose arguments need to be
                 displayed.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the custom command argument names against patterns
                 Default: *

Categories: 
GUIControl

Description:

  Returns the list of GUI custom command argument names for a particular GUI
  custom command.

  You can use the get_gui_custom_commands to determine the list of defined
  custom commands.

Arguments:

  -command_name - The name of the custom GUI command whose arguments should
  be returned.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match custom GUI command arguments against the
  specified patterns. The default pattern is the wildcard `*` which returns
  all arguments for the custom GUI command.

Examples:

  The following example returns a list of command arguments for the GUI
  custom command abc:

    get_gui_custom_command_args -command_name abc

See Also:

   *  create_gui_custom_command
   *  create_gui_custom_command_arg
   *  get_gui_custom_commands
   *  remove_gui_custom_command_arg
   *  remove_gui_custom_command


@@@COMMAND: get_gui_custom_commands@@@
get_gui_custom_commands

Description: 
Get custom commands

Syntax: 
get_gui_custom_commands  [-regexp] [-nocase] [-quiet] [-verbose]
                         [<patterns>...]

Returns: 
list of custom command names

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match the custom command names against patterns
                Default: *

Categories: 
GUIControl

Description:

  Returns the list of GUI custom commands.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match custom GUI commands against the specified
  patterns. The default pattern is the wildcard `*` which returns all
  currently defined custom GUI commands.

Examples:

  The following example returns a list of all the GUI custom commands which
  has names starting with 'p':

    get_gui_custom_commands p*

See Also:

   *  create_gui_custom_command
   *  create_gui_custom_command_arg
   *  get_gui_custom_command_args
   *  remove_gui_custom_command_arg
   *  remove_gui_custom_command


@@@COMMAND: get_hierarchy_separator@@@
get_hierarchy_separator

Description: 
Get hierarchical separator character

Syntax: 
get_hierarchy_separator  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Gets the character currently used for separating levels of hierarchy in the
  design. You can set the hierarchy separator using the
  set_hierarchy_separator command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example gets the currently defined hierarchy separator:

    get_hierarchy_separator 
    

See Also:

   *  set_hierarchy_separator


@@@COMMAND: get_highlighted_objects@@@
get_highlighted_objects

Description: 
Get highlighted objects

Syntax: 
get_highlighted_objects  [-color_index <arg>] [-rgb <args>] [-color <arg>]
                         [-quiet] [-verbose]

Returns: 
list of highlighted objects

Usage: 
  Name            Description
  ---------------------------
  [-color_index]  Color index
  [-rgb]          RGB color index list
  [-color]        Valid values are red green blue magenta yellow cyan and 
                  orange
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Object, GUIControl

Description:

  Gets the highlighted objects in the current design open in the Vivado IDE.
  Objects can be highlighted with the highlight_objects command.

  You can get all highlighted objects in the design, or specify highlighted
  objects by color, by color index, or by RGB value.

  Note: This Tcl command works only when Vivado is run in GUI mode.

Arguments:

  -color_index <arg> - (Optional) Valid values are integers from 1 to 19.
  Specifies the color index used for highlighting the selected object or
  objects. The color index is defined by the Colors > Highlight category of
  the Tools > Settings command. Refer to the Vivado Design Suite User Guide:
  Using the IDE (UG893) for more information on setting themes.

  -rgb <args> - (Optional) The color used for highlighting objects in the
  form of an RGB code specified as {R G B}. For instance, {255 255 0}
  specifies the color yellow.

  -color <arg> - (Optional) The color used for highlighting the specified
  object or objects. Supported highlight colors are: red, green, blue,
  magenta, yellow, cyan, and orange.

  Note: White is the color used to display selected objects with the
  select_objects command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example gets all the highlighted objects in the current design:

    get_highlighted_objects 
    

  The following example gets the object in the current design that are
  highlighted in the specified color:

    get_highlighted_objects -color cyan 
    

See Also:

   *  get_marked_objects
   *  get_selected_objects
   *  highlight_objects
   *  mark_objects
   *  select_objects


@@@COMMAND: get_interfaces@@@
get_interfaces

Description: 
Get a list of I/O port interfaces in the current design

Syntax: 
get_interfaces  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                [-quiet] [-verbose] [<patterns>]

Returns: 
list of interface objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get interfaces of these pins or nets
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match I/O port interfaces against patterns
                 Default: *

Categories: 
Object

Description:

  Gets a list of IO interfaces in the current project that match a specified
  search pattern. The default command gets a list of all IO interfaces in the
  project.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_interfaces based on property values on the interfaces. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) One or more pins or nets to which the
  interfaces are assigned.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - Match interfaces against the specified pattern. The default
  pattern is the wildcard `*` which gets a list of all interfaces in the
  project.

Examples:

  The following example gets a list of all interfaces in the project:

    get_interfaces 
    

See Also:

   *  create_interface
   *  delete_interface


@@@COMMAND: get_io_standards@@@
get_io_standards

Description: 
Get a list of IO standards.

Syntax: 
get_io_standards  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                  [-quiet] [-verbose] [<patterns>]

Returns: 
IO standards

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the IO standards of these bels, sites, package_pins, 
                 io_banks, ports.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match IO standards against patterns
                 Default: *

Categories: 
Device, Object

Description:

  Get a list of IOSTANDARDs available for use on the target device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_io_standards based on property values on the objects. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of IOSTANDARDs object, "NAME", "IS_DCI" and "IS_DIFFERENTIAL"
  are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the IOSTANDARDs of package_pin, site,
  bel, io_bank, and port objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match IOSTANDARDs against the specified patterns.
  The default pattern is the wildcard `*` which gets a list of all
  IOSTANDARDs for use on the target part. More than one pattern can be
  specified to find multiple IOSTANDARDs based on different search criteria.

  Note: You must enclose multiple search patterns in braces {} to present the
  list as a single element.

Examples:

  The following example gets a list of differential IOSTANDARDs available for
  use on the target device:

    get_io_standards -filter {IS_DIFFERENTIAL} 
    

  Note: If there are no objects matching the pattern you will get a warning.

See Also:

   *  list_property
   *  report_property


@@@COMMAND: get_iobanks@@@
get_iobanks

Description: 
Get a list of iobanks.

Syntax: 
get_iobanks  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
             [-verbose] [<patterns>]

Returns: 
iobanks

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the iobanks of these package_pins, ports, clock regions,
                 slrs or sites.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match iobanks against patterns
                 Default: *

Categories: 
Device, XDC, Object

Description:

  Gets a list of I/O Banks on the target device in the current project that
  match a specified search pattern. The default command gets a list of all
  I/O Banks on the target device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_iobanks based on property values on the I/O Banks. You can find the
  properties on an object with the report_property or list_property commands.
  Some of the properties that can be used with for an iobank object include
  "BANK_TYPE", "DCI_CASCADE", and "INTERNAL_VREF".

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get a list of the I/O Banks connected to
  these objects. Valid object types are clock_regions, package_pins, ports,
  slrs and sites.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match I/O Banks against the specified pattern. The
  default pattern is the wildcard `*` which gets a list of all I/O Banks in
  the design.

Examples:

  The following example returns the I/O Bank of the specified package pin:

    get_iobanks -of_objects [get_package_pins H4] 
    

  This example returns the GT Banks on the device:

    get_iobanks -filter {BANK_TYPE == BT_MGT} 
    

See Also:

   *  get_package_pins
   *  get_pkgpin_bytegroup
   *  get_pkgpin_nibble
   *  get_ports
   *  get_sites
   *  list_property
   *  place_ports
   *  report_property


@@@COMMAND: get_ip_upgrade_results@@@
get_ip_upgrade_results

Description: 
Get a list of results for IP upgrades during the current project

Syntax: 
get_ip_upgrade_results  [-srcset <arg>] [-quiet] [-verbose] [<objects>...]

Returns: 
list of IP upgrade results

Usage: 
  Name         Description
  ------------------------
  [-srcset]    (Optional) Specifies the source file set containing the 
               upgraded IP
               Default: The current source fileset
               Values: Source set name
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<objects>]  IP to be upgraded
               Values: IP instance(s) within the design, as returned by 
               'get_ips <instance name>' or 'get_bd_cells <cell name>'

Categories: 
Object, Project, IPFlow

Description:

  Returns the names of the upgrade_log files for the specified IPs.

  This command is used by the Vivado IDE to populate the IP Status Report
  window with information from the upgrade_log file. You can use the command
  to quickly obtain the upgrade_log file name, and then use the appropriate
  file commands, to read or display the contents.

  This command returns the upgrade_log file names of the specified IP
  objects, or returns an error if it fails.

Arguments:

  -srcset <arg> - (Optional) Specify an alternate source file set to examine
  for the specified IPs. This lets you change from the default, which is the
  sources_1 fileset.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) Specify the IP objects to report the upgrade results
  for. IP objects are returned by the get_ips command.

Example:

  The following example returns the upgrade_log filenames for all IPs in the
  current fileset:

    get_ip_upgrade_results [get_ips] 
    

  The following example prints the upgrade logs for the upgraded IP to the
  Tcl console:

    set ipDefs [get_ip_upgrade_results [get_ips]]  
    for {set x 0} {$x<[llength $ipDefs]} {incr x} {  
       set ipRoot [file rootname [lindex $ipDefs $x]]  
       puts "Upgrade Log for $ipRoot"  
       set ipDir [get_property IP_DIR [get_ips $ipRoot]]  
       set ipLog [lindex $ipDefs $x]  
       set catLog [concat $ipDir/$ipLog]  
     
       # Check for file existence, and read file contents  
       if {[file isfile $catLog]} {  
          # Open the file for read, save the File Handle  
          set FH [open $catLog r]  
          #puts "Open $FH"  
          set content [read $FH]   
          foreach line [split $content \n] {  
             # The current line is saved inside $line variable  
             puts $line  
          }  
          close $FH  
          #puts "Close $FH"  
       }  
    } 
    

See Also:

   *  current_fileset
   *  get_ips
   *  import_ip
   *  report_ip_status
   *  upgrade_ip


@@@COMMAND: get_ipdefs@@@
get_ipdefs

Description: 
Get a list of IP from the current IP Catalog

Syntax: 
get_ipdefs  [-name] [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
            [-all] [-quiet] [-verbose] [<patterns>...]

Returns: 
List of Catalog IP objects

Usage: 
  Name           Description
  --------------------------
  [-name]        Match the pattern against IP display name instead of VLNV
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching
  [-filter]      Filter list with expression
  [-of_objects]  Get the IPDefs of the objects specified: IP inst or XCI 
                 file.
  [-all]         Return hidden IP
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   The patterns to match against
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object, IPFlow

Description:

  Get a list of IP cores defined in the IP catalog of the current project,
  based on the specified search pattern. The default is to return all IP
  cores defined in the Vivado tools IP catalog.

  By default, the search is based on the VLNV property of the IP cores in the
  catalog. You can specify the -name option to search on the display name of
  IP cores instead.

Arguments:

  -name - (Optional) Indicates that the specified <pattern> refers to the
  DISPLAY_NAME property of the IP instead of the VLNV property.

  Note: In the case of multi-word display names, such as "Multiply Adder",
  you can only search for a single string, so you would need to search for
  *Multiply* or *Adder* to locate this IP core.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - Filter the results list with the specified expression. The
  -filter argument filters the list of objects returned by get_ipdefs based
  on property values on the objects. You can find the properties on an object
  with the report_property or list_property commands. In the case of the
  "ipdefs" object, "VLNV", "NAME" and "IS_AXI" are some of the properties
  that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get the IP definitions for the specified IP
  instances or IP file (.xci) objects. Objects must be specified by the
  get_ips or get_files command.

  -all - (Optional) Get the IP definitions from all defined IP catalogs and
  repositories. By default, the get_ipdefs command will return the IP cores
  from the standalone IP catalog. This option returns IP from both the
  standard Vivado tool IP catalog, and the IP integrator IP catalog.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match IP core definitions in the IP catalog against
  the specified search patterns. The default pattern is the wildcard `*`
  which gets a list of all IP cores in the catalog. More than one pattern can
  be specified to find multiple core definitions based on different search
  criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns a list of all IP cores with NAME property
  matching the specified pattern:

    get_ipdefs -filter {NAME=~*agilent*} 
    

  Note: The filter operator `=~` loosely matches the specified pattern.

  The following example returns a list of all AXI compliant IP cores:

    get_ipdefs -filter {IS_AXI==1} 
    

  The following example returns IP from both the Vivado tools standard IP
  catalog and the IP integrator IP catalog:

    get_ipdefs -all *axi_interconnect* 
    

  The following example filters the above results with the
  DESIGN_TOOL_CONTEXTS property to return only the IP integrator IP:

    get_ipdefs -all *axi_interconnect* -filter {DESIGN_TOOL_CONTEXTS =~*IPI*} 
    

  Note: By filtering on the DESIGN_TOOL_CONTEXTS property, you can identify
  IP from the IP integrator catalog instead of the Vivado tools standard
  catalog.

  In some cases, where multiple versions of an IP are returned, you can also
  filter on the UPGRADE_VERSIONS property to get as specific version or the
  latest IP version, as shown in the following example:

    get_ipdefs -all *axi_interconnect* -filter {UPGRADE_VERSIONS == ""} 
    

  Note: The {UPGRADE_VERSIONS == ""} filter returns IP defs that have no
  upgrade, and so are the latest version.

See Also:

   *  create_ip
   *  generate_target
   *  get_ips
   *  import_ip
   *  report_property
   *  update_ip_catalog


@@@COMMAND: get_ips@@@
get_ips

Description: 
Get a list of IPs in the current design

Syntax: 
get_ips  [-regexp] [-nocase] [-all] [-filter <arg>] [-gt_sources] [-gt_targets]
         [-exclude_bd_ips] [-of_objects <args>] [-quiet] [-verbose]
         [<patterns>...]

Returns: 
list of IP objects

Usage: 
  Name               Description
  ------------------------------
  [-regexp]          Patterns are full regular expressions
  [-nocase]          Perform case-insensitive matching
  [-all]             Include subcore IP in search
  [-filter]          Filter list with expression
  [-gt_sources]      Return gt wizard peer IPs
  [-gt_targets]      Return gt wizard IPs
  [-exclude_bd_ips]  Exclude all IP owned by a block design.
  [-of_objects]      Get 'ip' objects of these types: 'ip file'.
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  [<patterns>]       Match IP names against patterns
                     Default: *
                     Values: The default search pattern is the wildcard *, or
                     .* when -regexp is specified.

Categories: 
Object, Project, IPFlow

Description:

  Get a list of IP cores in the current project based on the specified search
  pattern. The default command returns a list of all IPs in the project.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -all - (Optional) Returns submodules of IP objects. Submodules are IP
  instances that are created as part of the generation of the parent IP core.
  By default, only parent IP objects used in the current project or design
  are returned, any IP cores used within those parent IP objects are not
  returned.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_ips based on property values on the IP cores. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "IP" object, "NAME" and "DELIVERED_TARGETS" are some of
  the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -exclude_bd_ips - (Optional) Do not include IPs from the current design
  that belong to a block design object.

  -of_objects <arg> - (Optional) Get a list of the IP cores of the specified
  IP or file objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match IP cores in the design against the specified
  search patterns. The default pattern is the wildcard `*` which gets a list
  of all IP cores in the project. More than one pattern can be specified to
  find multiple cores based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns a list of IP cores with names beginning with
  the string "EDK":

    get_ips EDK* 
    

See Also:

   *  create_ip
   *  generate_target
   *  get_ipdefs
   *  import_ip
   *  update_ip_catalog


@@@COMMAND: get_kernels@@@
get_kernels

Description: 
Get kernel definitions in a Xilinx object file

Syntax: 
get_kernels  -xo_path <arg> [-quiet] [-verbose]

Returns: 
List of kernel definitions

Usage: 
  Name        Description
  -----------------------
  -xo_path    Absolute path to the Xilinx object file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
SDAccel, Kernel


@@@COMMAND: get_lib_cells@@@
get_lib_cells

Description: 
Get a list of Library Cells

Syntax: 
get_lib_cells  [-regexp] [-filter <arg>] [-nocase] [-include_unsupported]
               [-device <arg>] [-of_objects <args>] [-quiet] [-verbose]
               <patterns>

Returns: 
list of library cells

Usage: 
  Name                    Description
  -----------------------------------
  [-regexp]               Patterns are regular expressions.
  [-filter]               Filter list with expression.
  [-nocase]               Perform case-insensitive matching when a pattern 
                          has been specified. This argument applies to the 
                          use of -regexp only.
  [-include_unsupported]  Include test-only library cells.
  [-device]               Include only library cells supported on device
  [-of_objects]           Get the library cells of the objects passed in 
                          here. Valid objects are cells or instances (ie, 
                          get_cells), cell pins (ie, get_pins) and library 
                          pins (ie, get_lib_pins).
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <patterns>              Match library cell names against patterns.

Categories: 
Object

Description:

  Get a list of cells in the library for the target part of the current
  design. Use this command to query and look for a specific library cell, or
  type of cell and to get the properties of the cells.

  This command requires a hierarchical name which includes the library name
  as well as the cell name: lib_name/cell_name.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_lib_cells based on property values on the cells. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get a list of library cells of specific
  cells, pins, or library pins.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Required) Match library cells against the specified patterns.
  The pattern must specify both the library name and the cell name.

Examples:

  The following example gets the number of the cells in the library for the
  target part in the current design, and then gets the number of AND type
  cells in that library:

    llength [get_lib_cells [get_libs]/*]  
    795  
    llength [get_lib_cells [get_libs]/AND*]  
    18 
    

  The following example gets the library cell for the specified cell object:

    get_lib_cells -of_objects [lindex [get_cells] 1] 
    

See Also:

   *  get_cells
   *  get_libs
   *  get_lib_pins
   *  list_property
   *  report_property


@@@COMMAND: get_lib_pins@@@
get_lib_pins

Description: 
Get a list of Library Cell Pins

Syntax: 
get_lib_pins  [-regexp] [-filter <arg>] [-nocase] [-of_objects <args>] [-quiet]
              [-verbose] <patterns>

Returns: 
list of library cell pins

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are regular expressions
  [-filter]      Filter list with expression
  [-nocase]      Perform case-insensitive matching when a pattern has been 
                 specified. This argument applies to the use of -regexp only.
  [-of_objects]  Get the library cell pins of the objects passed in here. 
                 Valid objects are cells or instances (ie, get_cells), cell 
                 pins (ie, get_pins) and library cells (ie get_lib_cells).
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <patterns>     Match library cell pin names against patterns of the form 
                 <library cell pattern>/<library pin pattern>.

Categories: 
Object

Description:

  Gets a list of the pins on a specified cell of the cell library for the
  target part in the current design.

  Note: This command requires a hierarchical name which includes the library
  name and cell name as well as the pins: lib_name/cell_name/pins.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_lib_pins based on property values on the pins. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get a list of library cell pins of the
  specified cells, library cells, or pin objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Required) Match lib pins against the specified patterns. The
  pattern must specify the library name, cell name, and the pins.

Examples:

  The following example gets a list of all library cell pins:

    get_lib_pins xt_virtex6/AND2/* 
    

  The following example gets a list of all pins, of all cells in the cell
  library for the target device:

    get_lib_pins [get_libs]/*/* 
    

See Also:

   *  get_libs
   *  get_lib_cells
   *  list_property
   *  report_property


@@@COMMAND: get_libs@@@
get_libs

Description: 
Get a list of Libraries

Syntax: 
get_libs  [-regexp] [-filter <arg>] [-nocase] [-quiet] [-verbose] [<patterns>]

Returns: 
list of libraries

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are regular expressions
  [-filter]     Filter list with expression
  [-nocase]     Perform case-insensitive matching when a pattern has been 
                specified. This argument applies to the use of -regexp only.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match library names against patterns. 
                Default: *

Categories: 
Object

Description:

  Gets the cell library for the target device in the current design. There is
  a library for each device family because there are primitives that may be
  available in one device family but not in others.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_libs based on property values on the objects. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match libraries against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all libraries in
  the project.

Examples:

  The following example gets the cell library for the target part:

    get_libs 
    

See Also:

   *  get_lib_cells
   *  get_lib_pins
   *  list_property
   *  report_property


@@@COMMAND: get_macros@@@
get_macros

Description: 
Get a list of macros in the current design

Syntax: 
get_macros  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
            [-verbose] [<patterns>]

Returns: 
list of macro objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get macros of these cells
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match macro names against patterns
                 Default: *

Categories: 
XDC, Object

Description:

  Gets a list of macros in the current design that match a specified search
  pattern. The default command returns a list of all macros in the design.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_macros based on property values on the macros. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "macro" object, "NAME", "ABSOLUTE_GRID" and "RLOCS" are
  some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the macros of the specified cell objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match macros against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all macros in the
  project. More than one pattern can be specified to find multiple macros
  based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the properties currently assigned to the
  macro matching the specified search pattern:

    report_property [get_macro *Macro1] 
    

  Note: If there are no macros matching the pattern you will get a warning.

See Also:

   *  create_macro
   *  delete_macro
   *  list_property
   *  report_property
   *  update_macro


@@@COMMAND: get_marked_objects@@@
get_marked_objects

Description: 
Get marked objects

Syntax: 
get_marked_objects  [-rgb <args>] [-color <arg>] [-quiet] [-verbose]

Returns: 
list of marked objects

Usage: 
  Name        Description
  -----------------------
  [-rgb]      RGB color index list
  [-color]    Valid values are red green blue magenta yellow cyan and orange
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object, GUIControl

Description:

  Get the marked objects in the current design open in the Vivado IDE.
  Objects can be marked with the mark_objects command.

  You can get all marked objects in the design, or specify marked objects by
  color, or by RGB value.

  Note: This Tcl command works only when Vivado is run in GUI mode.

Arguments:

  -rgb <args> - (Optional) The color to use in the form of an RGB code
  specified as {R G B}. For instance, {255 255 0} specifies the color yellow,
  while {0 255 0} specifies green.

  -color <arg> - (Optional) The color used for marking the specified object
  or objects. Supported colors are: red, green, blue, magenta, yellow, cyan,
  and orange.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example gets all the marked objects in the current design:

    get_marked_objects 
    

  The following example gets the object in the current design that are marked
  in the specified color:

    get_marked_objects -color yellow 
    

See Also:

   *  get_highlighted_objects
   *  highlight_objects
   *  mark_objects
   *  select_objects


@@@COMMAND: get_methodology_checks@@@
get_methodology_checks

Description: 
Get a list of Methodology rule check objects

Syntax: 
get_methodology_checks  [-regexp] [-nocase] [-filter <arg>] [-abbrev <arg>]
                        [-quiet] [-verbose] [<patterns>]

Returns: 
list of Methodology rule_check objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching. (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-abbrev]     Get the largest ID for this abbrev
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match the 'rule_check' objects against patterns.
                Default: *

Categories: 
Methodology, Object

Description:

  Gets a list of the currently defined methodology checks. This list includes
  the factory defined methodology checks for process and timing.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of methodology checks
  returned by get_methodology_checks based on property values on the rule
  checks. You can find the properties on an object with the report_property
  or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -abbrev <arg> - (Optional) Get the methodology checks associated with the
  specified name or abbreviation.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match methodology checks against the specified
  patterns. The default pattern is the wildcard `*` which gets all
  methodology checks.

Examples:

  The following command gets a list of all synthesis methodology checks:

    get_methodology_checks SYNTH* 
    

See Also:

   *  get_methodology_violations
   *  list_property
   *  report_methodology
   *  report_property


@@@COMMAND: get_methodology_violations@@@
get_methodology_violations

Description: 
Get a list of Methodology violations from a previous report_methodology run

Syntax: 
get_methodology_violations  [-name <arg>] [-regexp] [-filter <arg>] [-nocase]
                            [-quiet] [-verbose] [<patterns>]

Returns: 
list of Methodology violation objects

Usage: 
  Name          Description
  -------------------------
  [-name]       Get the results with this name
  [-regexp]     Patterns are full regular expressions
  [-filter]     Filter list with expression
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match methodology_violations against patterns
                Default: *
                Values: The default search pattern is the wildcard *, or .* 
                when -regexp is specified.

Categories: 
Methodology, Object

Description:

  Gets a list of violation objects found in the design when the
  report_methodology command is run. The properties of individual violation
  objects can be queried using report_property or list_property commands for
  details of the violation.

  Violation objects are associated with the cells, nets, pins, or ports in
  the current design, or sites on the current device. The design objects
  associated with a methodology violation object can be obtained using the
  -of_objects option of the appropriate get_* command, such as get_cells, or
  get_nets for instance.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -name <arg> - (Optional) Get the violations associated with the named
  methodology result set. In this case the report_methodology command must
  also have been run with the -name option.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_methodology_violations based on property values on the violations. You
  can find the properties on an object with the report_property or
  list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match violations against the specified patterns.
  The default pattern is the wildcard `*` which gets all violations. More
  than one pattern can be specified to find multiple violations based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example reports the methodology violations found in the
  current design, then returns a list of all those violations:

    report_methodology  
    get_methodology_violations 
    

  The following example generates list of violations in the named methodology
  report, and then gets the pins associated with any violations found:

    report_methodology -name method_1  
    get_pins -of_objects [get_methodology_violations -name method_1] 
    

See Also:

   *  get_methodology_checks
   *  list_property
   *  report_methodology
   *  report_property


@@@COMMAND: get_msg_config@@@
get_msg_config

Description: 
Returns the current message count, limit, or the message configuration rules previously defined by the set_msg_config command.

Syntax: 
get_msg_config  [-id <arg>] [-severity <arg>] [-rules] [-limit] [-count]
                [-quiet] [-verbose]

Usage: 
  Name         Description
  ------------------------
  [-id]        The message id to match. Should be used in conjunction with 
               -limit or -count
               Default: empty
  [-severity]  The message severity to match. Should be used in conjunction 
               with -limit or -count
               Default: empty
  [-rules]     Show a table displaying all message control rules for the 
               current project
  [-limit]     Show the limit for the number of messages matching either -id 
               or -severity that will be displayed
  [-count]     Show the number of messages matching either -id or -severity 
               that have been displayed
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution

Categories: 
Report

Description:

  Returns the current message limit or count applied to a specified message
  ID or severity, or returns all message configuration rules defined in the
  current project. Message configuration rules are defined using the
  set_msg_config command.

  When used with -count this command will display the total number of
  messages that have been generated with the matching message id, or for the
  specified severity.

  Note: The get_msg_config command reports the message count for the original
  CPU process from which Vivado was launched. Any sub-processes that the
  Vivado Design Suite launches, such as sub-processes used by the launch_runs
  command to launch synthesis and implementation runs, will not be reported
  in the message count. This can create confusion when the message count
  returned by get_msg_config -count is different from what is displayed in
  the Vivado IDE for instance, or different from what you expect. For this
  reason, the -count option is best used for non-project based designs.

  When used with -limit this command will display the current limit of
  messages with the matching message id, or for the specified severity.

  When used with -rules, it will display a table of all message configuration
  rules currently in effect.

  Note: You can only return the limit, the count, or the rules in a single
  get_msg_config command. An error is returned if more than one action is
  attempted.

Arguments:

  -id <arg> - (Optional) The message ID, which is included in all returned
  messages. For example, "Common 17-54" and "Netlist 29-28".

  -severity <value> - (Optional) The severity of the message. There are five
  message severities:

   *  ERROR - An ERROR condition implies an issue has been encountered which
      will render design results unusable and cannot be resolved without user
      intervention.

   *  {CRITICAL WARNING} - A CRITICAL WARNING message indicates that certain
      input/constraints will either not be applied or are outside the best
      practices for a FPGA family. User action is strongly recommended.

      Note: Since this is a two word value, it must be enclosed in {}.

   *  WARNING - A WARNING message indicates that design results may be
      sub-optimal because constraints or specifications may not be applied as
      intended. User action may be taken or may be reserved.

   *  INFO - An INFO message is the same as a STATUS message, but includes a
      severity and message ID tag. An INFO message includes a message ID to
      allow further investigation through answer records if needed.

   *  STATUS - A STATUS message communicates general status of the process
      and feedback to the user regarding design processing. A STATUS message
      does not include a message ID.

  -rules - (Optional) Return the message configuration rules in the current
  project as defined by the set_msg_config command.

  Note: When -rule is specified, all configuration rules for the current
  project are returned regardless of any message qualifier such as -id or
  -severity.

  -limit - (Optional) Return the current limit of messages that match the
  message ID or the message severity.

  -count - (Optional) Return the current count of messages that match the
  specified message ID or message severity.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example gets the current count of the specified INFO message:

    get_msg_config -id "Common 17-81" -count 
    

  The following example returns the message configuration rules in the
  current project:

    get_msg_config -rules 
    

  This example changes the severity of messages with the specified message
  ID, gets the current message configuration rules, and then shows two
  different command forms to reset the specific rule and restore the message:

    set_msg_config -id "Common 17-361" -severity INFO -new_severity WARNING  
    get_msg_config -rules  
    ---------------------  
    Message control rules currently in effect are:  
    Rule Name  Rule                                                  Current Message Count    
    1  set_msg_config -ruleid {1} -id {Common 17-361} -severity {INFO} -new_severity {WARNING} 0  
    ---------------------  
    reset_msg_config -id "Common 17-361" -default_severity    
    reset_msg_config -ruleid {1}                      
     
    

  Note: In the preceding example, only one of the reset_msg_config commands
  is needed to reset the message.

See Also:

   *  reset_msg_config
   *  set_msg_config


@@@COMMAND: get_nearest_site@@@
get_nearest_site

Description: 
Get a site of a particular site type nearest a site

Syntax: 
get_nearest_site  [-site <args>] [-quiet] [-verbose] [<site_types>]

Returns: 
site object

Usage: 
  Name            Description
  ---------------------------
  [-site]         Site from which to search
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<site_types>]  Target site types

Categories: 
Device


@@@COMMAND: get_net_delays@@@
get_net_delays

Description: 
Get the routed or estimated delays in picoseconds on a net from the driver to each load pin.

Syntax: 
get_net_delays  -of_objects <args> [-regexp] [-nocase] [-patterns <arg>]
                [-filter <arg>] [-to <args>] [-interconnect_only] [-quiet]
                [-verbose]

Returns: 
net_delays

Usage: 
  Name                  Description
  ---------------------------------
  -of_objects           Get 'net_delay' objects of these types: 'net'.
  [-regexp]             Patterns are full regular expressions
  [-nocase]             Perform case-insensitive matching. (valid only when 
                        -regexp specified)
  [-patterns]           Match the 'net_delay' objects against patterns.
                        Default: *
  [-filter]             Filter list with expression
  [-to]                 Get the delay of the net to the given terminal(s) or 
                        port(s).
  [-interconnect_only]  Include only interconnect delays. The default is to 
                        include the intra-site delay.
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Timing, Netlist, Object

Description:

  Get delay objects for the specified nets in the current design, from the
  driver to each load pin, or to specified load pins, through specific pins.

  The delay object contains properties defining the maximum and minimum
  delays for the fast and slow process corners. Use the get_property command
  to extract the property of interest from the delay object. Delay property
  values on the delay object are specified in picoseconds.

  Tip: In most cases, the AMD Vivado tools return delay values specified in
  nanoseconds, but the delay object uses picoseconds.

  The values returned are calculated or estimated depending upon whether the
  net is routed. Delay values can include the actual delay of routed
  interconnect, or estimated net delays for unrouted nets. The net delay can
  also include delay through logic elements or device sites, or just include
  the interconnect delay.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

  The get_net_delays command returns the delay objects for the specified
  nets, or returns an error if it fails.

Arguments:

  -of_objects <arg> - (Required) Get the net delays of the specified net
  objects. This option can be used to reduce the amount of data returned by
  the get_net_delays command.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_nets in the case of the get_net_delays command.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -patterns <arg> - (Optional) Match net_delays against the specified
  patterns. The default pattern is the wildcard `*` which gets a list of all
  net_delays in the project. More than one pattern can be specified to find
  multiple pins based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_net_delays based on property values on the delay objects. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the delay object, "NET", "FAST_MAX" and "FAST_MIN"
  are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -to <args> - (Optional) Specifies the endpoints of nets for delay
  calculation. Pin, port, and pip objects can be specified as endpoints.

  -interconnect_only - (Optional) Include only interconnect delays to
  determine the delay on the net due to routing. The default is to also
  include the intra-site delay into the delay calculation.

  Tip: When using get_net_delays to define delay limits for the route_design
  command -min_delay or -max_delay options, you should use the
  -interconnect_only option to ensure the specified net delay includes just
  the interconnect.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example gets the interconnect delay values for the specified
  net, and returns it in the form of a delay object:

    report_property -all [lindex [get_net_delays -interconnect_only \
    -of_objects [get_nets control_reg[*]]] 16 ]

  Tip: The FAST_MAX, FAST_MIN, SLOW_MAX, and SLOW_MIN properties on the delay
  object are reported in picoseconds.

See Also:

   *  get_pins
   *  get_pips
   *  get_ports
   *  get_property
   *  list_property
   *  report_property


@@@COMMAND: get_nets@@@
get_nets

Description: 
Get a list of nets in the current design

Syntax: 
get_nets  [-hsc <arg>] [-hierarchical] [-regexp] [-nocase] [-filter <arg>]
          [-of_objects <args>] [-match_style <arg>]
          [-top_net_of_hierarchical_group] [-segments] [-parent_net]
          [-boundary_type <arg>] [-quiet] [-verbose] [<patterns>]

Returns: 
list of net objects

Usage: 
  Name                              Description
  ---------------------------------------------
  [-hsc]                            Hierarchy separator
                                    Default: /
  [-hierarchical]                   Search level-by-level in current instance
  [-regexp]                         Patterns are full regular expressions
  [-nocase]                         Perform case-insensitive matching (valid 
                                    only when -regexp specified)
  [-filter]                         Filter list with expression
  [-of_objects]                     Get nets of these pins, ports, cells, 
                                    timing paths or clocks, drc violations
  [-match_style]                    Style of pattern matching, valid values 
                                    are ucf, sdc
                                    Default: sdc
  [-top_net_of_hierarchical_group]  Return net segment(s) which belong(s) to 
                                    the high level of a hierarchical net
  [-segments]                       Return all segments of a net across the 
                                    hierarchy
  [-parent_net]                     Return parent net(s)
  [-boundary_type]                  Return net segment connected to a 
                                    hierarchical pin which resides at the 
                                    same level as the pin (upper) or at the 
                                    level below (lower), or both. Valid 
                                    values are : upper, lower, both
                                    Default: upper
  [-quiet]                          Ignore command errors
  [-verbose]                        Suspend message limits during command 
                                    execution
  [<patterns>]                      Match net names against patterns
                                    Default: *

Categories: 
SDC, XDC, Object

Description:

  Gets a list of nets in the current design that match a specified search
  pattern. The default command gets a list of all nets in the
  current_instance of the open design, as specified by the current_instance
  command.

  You can use the -hierarchical option to extract nets from the hierarchy of
  the current design.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -hsc <arg> - (Optional) The default hierarchy separator is `/`. Use this
  argument to specify a different hierarchy separator.

  -hierarchical - (Optional) Get nets from all levels of the design hierarchy
  starting at the current instance. Without this argument, the command will
  only get nets from the current instance, as set by the current_instance
  command. When using -hierarchical, the search pattern should not contain a
  hierarchy separator because the search pattern is applied at each level of
  the hierarchy, not to the full hierarchical net name. For instance,
  searching for U1/* searches each level of the hierarchy for nets with U1/
  in the name. This may not return the intended results. See get_cells for
  examples of -hierarchical searches.

  Note: When used with -regexpr, the specified search string is matched
  against the full hierarchical name, and the U1/* search pattern will work
  as intended.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_nets based on property values on the nets. You can find the properties
  on an object with the report_property or list_property commands. In the
  case of the nets object, "PARENT", "TYPE" and "MARK_DEBUG" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get a list of the nets connected to the
  specified cells, pins, ports, or clocks; or nets associated with specified
  DRC violation objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -parent_net - (Optional) Only return the parent nets from a list of net
  segments. The parent net is the net segment connected to the driver leaf
  pin.

  Note: The command line options -parent_net and
  -top_net_of_hierarchical_group are mutually exclusive.

  -match_style [sdc | ucf] - (Optional) Indicates that the search pattern
  matches UCF constraints or SDC constraints. The default is SDC.

  -top_net_of_hierarchical_group - (Optional) Returns the top-level net
  segment of a hierarchical net, or nets, or the top-level net segments of
  all nets. Use this option with -segment to return the top-level net segment
  from all the segments of a hierarchical net.

  -segments - (Optional) Get all the segments of a hierarchical net, across
  all levels of the hierarchy. This differs from the -hierarchical argument
  in that it returns all segments of the specified net, rather than just the
  specified net.

  Note: The -segments option is applied after the -filter option has
  eliminated nets that do not match the filter pattern. Because of this, you
  may expect to see net segments returned that have already been filtered out
  of the returned results. To change this behavior, you can use the filter
  command rather than the -filter option to apply the -segments option to the
  get_nets command, and then filter the segments returned. See the Examples
  for more information.

  -boundary_type [ upper | lower | both ] - (Optional) Gets the net segment
  at the level (upper) of a specified hierarchical pin, at the level below
  (lower) the pin or port, or both the level of and the level below. Valid
  values are upper, lower, or both. The default value is upper.

  Note: This argument must be used with the -of_objects argument to specify
  the hierarchical pin.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match nets against the specified patterns. The
  default pattern is the wildcard `*` which returns a list of all nets in the
  project. More than one pattern can be specified to find multiple nets based
  on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example runs the report_drc command on the current design,
  returns the list of violations in the specified DRC report, and then
  returns any nets associated with the driverless net rule (NDRV):

    
    report_drc -name drc_1  
    get_drc_violations -name drc_1  
    get_nets -of_objects [get_drc_violations -name drc_1 NDRV*] 
    

  The following example returns a list of nets that have been marked for
  debug with the connect_debug_port command:

    
    get_nets -hier -filter {MARK_DEBUG==1} 
    

  This example returns the net attached to the specified hierarchical pin
  object, then returns the net segments attached to the pin object, then
  returns the top-level net segment attached to the pin object:

    
    get_nets \  
       -of [get_pins cpuEngine/or1200_cpu/or1200_sprs/esr_reg[9]_i_3/I0]  
     
    get_nets -segments \  
       -of [get_pins cpuEngine/or1200_cpu/or1200_sprs/esr_reg[9]_i_3/I0]  
     
    get_nets -top -segments \  
       -of [get_pins cpuEngine/or1200_cpu/or1200_sprs/esr_reg[9]_i_3/I0]  
    

  In the following example, the first command applies the -filter to find
  nets that have the IS_INTERNAL property, and then -segment is applied to
  return the segments of those nets. This command returns 0 net segments (and
  a warning). The second command, returns the segments of all nets, and
  filters the results to find the segments that have the IS_INTERNAL
  property, of which there are 448:

    llength [get_nets -segments -filter {IS_INTERNAL}]  
    WARNING: [Vivado 12-1023] No nets matched for command `get_nets -segments   
    -filter IS_INTERNAL`.  
    0  
    llength [filter [get_nets -segments] {IS_INTERNAL}]  
    448 
    

See Also:

   *  connect_debug_port
   *  current_instance
   *  get_cells
   *  get_clocks
   *  get_drc_violations
   *  get_pins
   *  get_ports
   *  list_property
   *  report_drc
   *  report_property


@@@COMMAND: get_noc_channels@@@
get_noc_channels

Description: 
Get NOC physical channels

Syntax: 
get_noc_channels  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                  [-quiet] [-verbose] [<patterns>]

Returns: 
noc_channel

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_channel of these noc_component.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_channel against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_noc_components@@@
get_noc_components

Description: 
Get NOC physical components

Syntax: 
get_noc_components  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                    [-quiet] [-verbose] [<patterns>]

Returns: 
noc_component

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_component of these noc_channel.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_component against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_noc_connections@@@
get_noc_connections

Description: 
Get NOC Connections.

Syntax: 
get_noc_connections  [-source <arg>] [-target <arg>] [-filter <arg>] [-quiet]
                     [-verbose] [<path>]

Usage: 
  Name        Description
  -----------------------
  [-source]   Source NOC Interface to search.
  [-target]   Target NOC Interface to search.
  [-filter]   Filter NOC Connections with expression.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<path>]    NOC Connection path to search.

Categories: 



@@@COMMAND: get_noc_interfaces@@@
get_noc_interfaces

Description: 
Get NOC Interfaces.

Syntax: 
get_noc_interfaces  [-mode <arg>] [-type <arg>] [-category <arg>]
                    [-filter <arg>] [-quiet] [-verbose] [<path>]

Usage: 
  Name         Description
  ------------------------
  [-mode]      Filter by NOC Interface mode (e.g. NMU).
  [-type]      Filter by NOC Interface type (e.g. AXIMM).
  [-category]  Filter by NOC Interface category (e.g. PL).
  [-filter]    Filter NOC Interfaces with expression.
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<path>]     NOC Interface path to search.

Categories: 



@@@COMMAND: get_noc_logical_instances@@@
get_noc_logical_instances

Description: 
Get a list of NOC logical instances

Syntax: 
get_noc_logical_instances  [-regexp] [-nocase] [-filter <arg>]
                           [-of_objects <args>] [-quiet] [-verbose]
                           [<patterns>]

Returns: 
noc_logical_inst

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_logical_inst of these cells or BD_ports.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_logical_inst against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_noc_logical_nets@@@
get_noc_logical_nets

Description: 
Get a list of NOC logical nets

Syntax: 
get_noc_logical_nets  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                      [-quiet] [-verbose] [<patterns>]

Returns: 
noc_logical_net

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_logical_net of these noc_logical_inst.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_logical_net against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_noc_logical_paths@@@
get_noc_logical_paths

Description: 
Get a list of NOC logical paths

Syntax: 
get_noc_logical_paths  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                       [-quiet] [-verbose] [<patterns>]

Returns: 
noc_logical_path

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_logical_path of these noc_logical_inst.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_logical_path against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_noc_model@@@
get_noc_model

Description: 
Get NOC physical model

Syntax: 
get_noc_model  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
               [-quiet] [-verbose] [<patterns>]

Returns: 
noc_model

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_model of these device.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_model against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_noc_net_routes@@@
get_noc_net_routes

Description: 
Get a list of NOC net physical routes

Syntax: 
get_noc_net_routes  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                    [-quiet] [-verbose] [<patterns>]

Returns: 
noc_net_route

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the noc_net_route of these noc_logical_path.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match noc_net_route against patterns
                 Default: *

Categories: 
NOC, Object


@@@COMMAND: get_nodes@@@
get_nodes

Description: 
Get a list of nodes in the device.

Syntax: 
get_nodes  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>] [-uphill]
           [-downhill] [-flyover] [-from <args>] [-to <args>]
           [-slls_between <args>] [-quiet] [-verbose] [<patterns>]

Returns: 
nodes

Usage: 
  Name             Description
  ----------------------------
  [-of_objects]    Get 'node' objects of these types: 'net tile node bel_pin 
                   site_pin wire pip speed_model pin'.
  [-regexp]        Patterns are full regular expressions
  [-nocase]        Perform case-insensitive matching. (valid only when 
                   -regexp specified)
  [-filter]        Filter list with expression
  [-uphill]        Get the nodes uphill (driver) from the site_pin, pip, node
                   or tile(s) provided in the -of_objects.
  [-downhill]      Get the nodes downhill (loads) from the site_pin, pip, 
                   node or tile(s) provided in the -of_objects.
  [-flyover]       Get the nodes that fly over the given tile(s).
  [-from]          -from <pip/site pin> Return the nodes beginning at this 
                   pip or site pin.  May be used in combination with uphill. 
                   Default is downhill.  -all is implied.
  [-to]            -to <pip/site pin> Return the nodes ending at this wire or
                   site pin.  May be used in combination with uphill.  
                   Default is downhill.  -all is implied.
  [-slls_between]  -slls_between takes SLR1 and SLR2 and returns intermediate
                   SLL nodes. May be used with -filter.
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  [<patterns>]     Match the 'node' objects against patterns.
                   Default: *

Categories: 
Device, Object, XDC

Description:

  Returns a list of nodes on the device that match a specified search pattern
  in an open design.

  The default command gets a list of all nodes on the device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -of_objects <args> - (Optional) Return the nodes of the specified nets,
  tiles, nodes, bel_pins, site_pins, wires, speed_model or pip objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - Filter the results list with the specified expression. The
  -filter argument filters the list of objects returned by get_nodes based on
  property values on the nodes. You can find the properties on an object with
  the report_property or list_property commands. Any property/value pair can
  be used as a filter. In the case of the node object, "IS_INPUT_PIN",
  "IS_BEL_PIN" and "NUM_WIRES" are some of the properties that can be used to
  filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -uphill - (Optional) Return the nodes uphill of objects specified by the
  -of_objects option. Uphill nodes precede the specified object in the logic
  network.

  -downhill - (Optional) Return the nodes downhill of objects specified by
  the -of_objects option. Downhill nodes follow the specified object in the
  logic network.

  -flyover - (Optional) Return the nodes that pass through (or flyover) the
  specified tiles.

  -from <args> - (Optional) Defines the starting points of the nodes to get
  from site_pin or pip objects. This option can be combined with -uphill. The
  default is to return nodes downhill of a start point. By default, all nodes
  will be returned.

  -to <args> - (Optional) Defines the ending points of the nodes to get from
  site_pin or pip objects. This option can be combined with -uphill. The
  default is to return nodes downhill of a start point to the specified end
  point. By default, all nodes will be returned.

  -slls_between <args> - (Optional) Return SLL nodes between provided SLRs.
  SLL nodes are ones that have IS_SLL property set to true.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Return nodes matching the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  nodes on the device. More than one search pattern can be specified to find
  nodes based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the nodes associated with the specified tile:

    get_nodes -of_objects [get_tiles CLBLM_R_X11Y158] 
    

  The following example returns the nodes downhill from the specified node:

    get_nodes -downhill -of_objects [get_nodes LIOB33_SING_X0Y199/IOB_PADOUT0] 
    

See Also:

   *  get_site_pins
   *  get_tiles
   *  get_wires
   *  list_property
   *  report_property


@@@COMMAND: get_oracle_feature_specs@@@
get_oracle_feature_specs

Description: 
Get the Oracle Feature Specifications for the current part.

Syntax: 
get_oracle_feature_specs  [-regexp] [-nocase] [-filter <arg>]
                          [-of_objects <args>] [-part <arg>] [-quiet]
                          [-verbose] [<patterns>]

Returns: 
oracle_feature_spec

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the oracle_feature_spec of these part.
  [-part]        Target part
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match oracle_feature_spec against patterns
                 Default: *

Categories: 
Device, Object, Internal


@@@COMMAND: get_package_pins@@@
get_package_pins

Description: 
Get a list of package pins

Syntax: 
get_package_pins  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                  [-quiet] [-verbose] [<patterns>]

Returns: 
list of package pin objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the list of package pin objects of these sites, bels, 
                 iobanks, pkgpin_bytegroups, pkgpin_nibbles, or ports.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match list of package pin objects against patterns
                 Default: *

Categories: 
XDC, Object

Description:

  Gets a list of the pins on the selected package for the target device. The
  default command gets a list of all pins on the package.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_package_pins based on property values on the pins. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the package pin object, "IS_CLK_CAPABLE", "IS_VREF" and
  "IS_GLOBAL_CLK" are some of the properties that can be used to filter
  results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the package pins connected to the
  specified objects. Valid objects include sites, bels, iobanks,
  pkgpin_bytegroups, pkgpin_nibbles, or ports.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match pins against the specified patterns. The
  default pattern is the wildcard `*` which returns all pins on the package.
  More than one pattern can be specified to find multiple pins based on
  different search criteria.

Examples:

  The following example gets a list of the package pins associated with the
  specified bytegroup of an UltraScale device:

    get_package_pins -of [get_pkgpin_bytegroups BANK44_BYTE0] 
    

  The following example gets the number of clock capable (CC) pins on the
  package:

    llength [get_package_pins -filter {IS_CLK_CAPABLE==1}] 
    

  Note: If there are no pins matching the pattern you will get a warning.

See Also:

   *  get_pkgpin_bytegroups
   *  get_pkgpin_nibble
   *  get_ports
   *  get_sites
   *  list_property
   *  place_ports
   *  report_property


@@@COMMAND: get_param@@@
get_param

Description: 
Get a parameter value

Syntax: 
get_param  [-quiet] [-verbose] <name>

Returns: 
parameter value

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Parameter name

Categories: 
PropertyAndParameter

Description:

  This command gets the currently defined value for a specified tool
  parameter. These parameters are user-definable configuration settings that
  control various behaviors within the tool. Refer to report_param for a
  description of what each parameter configures or controls.

Arguments:

  <name> - (Required) The name of the parameter to get the value of. The list
  of user-definable parameters can be obtained with list_param. This command
  requires the full name of the desired parameter. It does not perform any
  pattern matching, and accepts only one parameter at a time.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the current value of the MaxThreads parameter
  used for multi-threaded processes:

    get_param general.MaxThreads 
    

See Also:

   *  list_param
   *  report_param
   *  reset_param
   *  set_param


@@@COMMAND: get_partition_defs@@@
get_partition_defs

Description: 
Get a list of PartitionDefs

Syntax: 
get_partition_defs  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
                    [<patterns>]

Returns: 
list of PartitionDef objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match partition definition names against patterns
                Default: *

Categories: 
Object, Partition

Description:

  Important: You must first define the project as a Dynamic Function eXchange
  (DFX) project by setting the PR_FLOW property on the project to TRUE, or by
  using the Tools > Enable Dynamic Function eXchange command.

  Get a list of all Partition Definition (partitionDef) objects in the
  current design, or the partitionDefs that match a specified search pattern.

  The DFX flow lets you create Partition Definitions (partitionDefs) from
  hierarchical cells in a design, and to specify reconfigurable modules (RMs)
  to be assigned to these partitionDefs to create a unique configurations of
  the design based on the combination of the core design and one or more RMs.
  The PR design flow requires the implementation of each PR configuration,
  resulting in partial bitstreams for the RMs, but complete bitstreams for
  each integrated configuration. Refer to the Vivado Design Suite User Guide:
  Dynamic Function eXchange (UG909) for more information.

  This command returns a list of partitionDef objects, or returns an error if
  the command fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_partition_defs based on property values on the partitionDefs. You can
  find the properties on an object with the report_property or list_property
  commands. In the case of the "partitionDef" object, "DEFAULT_RM" and
  "LIBRARY" are two of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match partitionDefs against the specified search
  pattern. The default pattern is the wildcard `*` which gets a list of all
  partitionDefs in the project.

Example:

  The following example gets all of the partitionDef objects in the project:

    get_partition_defs

See Also:

   *  create_partition_def
   *  delete_partition_defs
   *  set_property


@@@COMMAND: get_parts@@@
get_parts

Description: 
Get a list of parts available in the software

Syntax: 
get_parts  [-regexp] [-filter <arg>] [-of_objects <args>] [-quiet] [-verbose]
           [<patterns>]

Returns: 
list of part objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-filter]      Filter list with expression
  [-of_objects]  Get the parts of the objects specified: project, design, or 
                 run.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match part names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Object

Description:

  Gets a list of parts that match a specified search pattern. The default
  command gets a list of all parts.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_parts based on property values on the parts. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the part
  object, "DEVICE", "FAMILY" and "SPEED" are some of the properties that can
  be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Return the parts of the specified project,
  design, or run objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match parts against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all parts. More
  than one search pattern can be specified to find parts based on different
  search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example gets a list of 7vx485t parts, speed grade -1:

    get_parts -filter {DEVICE =~ xc7vx485t* && speed == -1}  
    

  The following example gets the number of 7 series and 6 series Virtex parts:

    llength [get_parts -regexp {xc7v.* xc6V.*} -nocase] 
    

  Note: If there are no parts matching the pattern, the tool will return a
  warning.

See Also:

   *  list_property
   *  report_property


@@@COMMAND: get_path_groups@@@
get_path_groups

Description: 
Get a list of path groups in the current design

Syntax: 
get_path_groups  [-regexp] [-nocase] [-quiet] [-verbose] [<patterns>]

Returns: 
list of path groups

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match path group names against patterns
                Default: *

Categories: 
XDC, Object

Description:

  Gets a list of timing path groups in the current project that match a
  specified search pattern. The default command gets a list of all path
  groups in the design.

  Path groups are automatically created when a new clock is created in the
  design, containing all paths in that clocks domain. Path groups can also be
  manually created with the use of the group_path command.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match path groups against the specified patterns.
  The default pattern is the wildcard `*` which gets all path groups in the
  project.

Examples:

  The following example gets a list of all the path groups in the design.

    get_path_groups 
    

  The following example gets all path groups with the string "Clk" somewhere
  in the name:

    get_path_groups *Clk* 
    

  Note: If no path groups match the pattern you will get a warning.

See Also:

   *  group_path


@@@COMMAND: get_pblocks@@@
get_pblocks

Description: 
Get a list of Pblocks in the current design

Syntax: 
get_pblocks  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
             [-include_nested_pblocks] [-quiet] [-verbose] [<patterns>]

Returns: 
list of Pblock objects

Usage: 
  Name                       Description
  --------------------------------------
  [-regexp]                  Patterns are full regular expressions
  [-nocase]                  Perform case-insensitive matching (valid only 
                             when -regexp specified)
  [-filter]                  Filter list with expression
  [-of_objects]              Get Pblocks of these cells
  [-include_nested_pblocks]  Display the the list of nested pblocks
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  [<patterns>]               Match Pblock names against patterns
                             Default: *

Categories: 
Object, Floorplan, XDC

Description:

  Gets a list of Pblocks defined in the current project that match a specific
  pattern. The default command gets a list of all Pblocks in the project.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_pblocks based on property values on the Pblocks. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the Pblock object, "NAME" and "GRID_RANGES" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the Pblocks to which the specified cells
  are assigned.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -include_nested_pblocks - (Optional) Also get and return any Pblocks nested
  inside the group of Pblocks returned by the specified search. The nested
  Pblocks will be added to the list of Pblock objects returned by this
  command. Refer to the create_pblock command for an example of nesting
  Pblocks.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match Pblocks against the specified patterns. The
  default pattern is the wildcard `*` which returns all Pblocks in the
  project.

Examples:

  The following example gets a list of all Pblocks in the current project:

    get_pblocks 
    

  This example gets a list of all Pblocks which do not have a Slice Range
  defined:

    get_pblocks -filter {GRIDTYPES !~ SLICE} 
    

  The following example gets the Pblock assignments of the specified cell:

    get_pblocks -of [get_cells CORE/BR_TOP/RLD67_MUX/REG_PMBIST_C1]  
    

  This example returns the specified Pblock, including any nested Pblocks:

    get_pblocks -include_nested_pblocks usbTop 
    

See Also:

   *  add_cells_to_pblock
   *  create_pblock
   *  get_cells
   *  place_pblocks
   *  resize_pblock


@@@COMMAND: get_pins@@@
get_pins

Description: 
Get a list of pins in the current design

Syntax: 
get_pins  [-hsc <arg>] [-hierarchical] [-regexp] [-nocase] [-leaf]
          [-filter <arg>] [-of_objects <args>] [-match_style <arg>]
          [-include_replicated_objects] [-quiet] [-verbose] [<patterns>]

Returns: 
list of pin objects

Usage: 
  Name                           Description
  ------------------------------------------
  [-hsc]                         Hierarchy separator
                                 Default: /
  [-hierarchical]                Search level-by-level in current instance
  [-regexp]                      Patterns are full regular expressions
  [-nocase]                      Perform case-insensitive matching (valid 
                                 only when -regexp specified)
  [-leaf]                        Get leaf/global pins of nets with 
                                 -of_objects
  [-filter]                      Filter list with expression
  [-of_objects]                  Get pins of these cells, nets, timing paths,
                                 clocks, drc violations
  [-match_style]                 Style of pattern matching, valid values are 
                                 ucf, sdc
                                 Default: sdc
  [-include_replicated_objects]  Include replicated objects when searching 
                                 for patterns. This option is valid only when
                                 patterns is specified.
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution
  [<patterns>]                   Match pin names against patterns
                                 Default: *

Categories: 
SDC, XDC, Object

Description:

  Gets a list of pin objects in the current design that match a specified
  search pattern. The default command gets a list of all pins in the
  current_instance of the open design, as specified by the current_instance
  command. You can use the -hierarchical option to extract pins from the
  hierarchy of the current design.

  Note: Because there are so many pins in the design, the get_pins command
  can cause performance issues, and add significant time to processing design
  constraints. In many cases, a design constraint that is written with the
  get_pins command can be rewritten using the get_cells command, as shown in
  the examples, to significantly improve constraint processing and
  performance of the Vivado tool.

  The get_pins command also includes an option to get all replicated pins
  that are added to a design during physical optimization, or
  phys_opt_design. The use of the -include_replicated_objects option returns
  the pins on replicated cells when the pins of an original cell are
  returned. You can use this option to ensure that constraints or properties
  that are applied to the pins of a cell are also applied to the pins of its
  replicated cells.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -hsc <arg> - (Optional) The default hierarchy separator is `/`. Use this
  argument to specify a different hierarchy separator.

  -hierarchical - (Optional) Get pins from all levels of the design hierarchy
  starting from the level of the current_instance, or from the top of the
  current design. Without this argument, the command will only get pins from
  the current_instance of the design hierarchy. When using -hierarchical, the
  search pattern should not contain a hierarchy separator because the search
  pattern is applied at each level of the hierarchy, not to the full
  hierarchical cell name. For instance, searching for U1/* searches each
  level of the hierarchy for pins with U1/ in the name. This may not return
  the intended results. See get_cells for examples of -hierarchical searches.

  Note: When used with -regexpr, the specified search string is matched
  against the full hierarchical name, and the U1/* search pattern will work
  as intended.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -leaf - (Optional) Include leaf pins, from primitive or black box cells,
  for the objects specified with the -of_object argument.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_pins based on property values on the pins. You can find the properties
  on an object with the report_property or list_property commands. In the
  case of the pins object, "PARENT" and "TYPE" are some of the properties
  that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  -of_objects <arg> - (Optional) Get the pins connected to the specified
  cell, clock, timing path, or net; or pins associated with specified DRC
  violation objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -match_style [sdc | ucf] - (Optional) Indicates that the search pattern
  matches UCF constraints or SDC constraints. The default is SDC.

  -include_replicated_objects - (Optional) Include pins that have been added
  through replication of cell instances during optimization. This option is
  valid only when specified with <patterns>, and returns the pins matching
  the specified pattern, from replicated cell instances. As a default, the
  get_pins command does not return the pins of replicated cells.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match pins against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all pins in the
  project. More than one pattern can be specified to find multiple pins based
  on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example gets a list of pins attached to the specified cells:

    get_pins -of_objects [get_cells usb*] 
    

  Note: If there are no pins matching the pattern, the tool will return a
  warning.

  This example shows how using get_cells can improve the performance of the
  get_pins command:

    [get_pins -hier * -filter {NAME=~xx*/yy*}] 
    

  can be rewritten as:

    [get_pins -filter {REF_PIN_NAME=~yy*} -of [get_cells -hier xx*]]  
    

  The following shows how rewriting the set_max_delay constraint can
  significantly improve performance:

    set_max_delay 15 -from [get_pins -hier \  
       -filter name=~*/aclk_dpram_reg*/*/CLK] \  
       -to [get_cells -hier -filter name=~*/bclk_dout_reg*] -datapath_only 
    

  can be rewritten as:

    set_max_delay 15 -from [get_pins -of \  
       [get_cells -hier -filter name=~*aclk_dpram_reg*/*] \  
       -filter {REF_PIN_NAME == CLK}] \  
       -to [get_pins -of [get_cells -hier -filter {name =~ */bclk_dout_reg*}] \  
       -filter {REF_PIN_NAME == D}] -datapath_only 
    

  Note: Although the second command syntax is more complex, the performance
  gains can be significant.

  This example runs the report_drc command on the current design, and then
  returns any pins associated with DRC violations:

    report_drc -name drc_1  
    get_pins -of_objects [get_drc_violations] 
    

See Also:

   *  current_instance
   *  get_cells
   *  get_drc_violations
   *  list_property
   *  phys_opt_design
   *  report_drc
   *  report_property
   *  set_max_delay


@@@COMMAND: get_pips@@@
get_pips

Description: 
Get a list of pips in the device.

Syntax: 
get_pips  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>] [-uphill]
          [-downhill] [-from <args>] [-to <args>] [-quiet] [-verbose]
          [<patterns>]

Returns: 
pips

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'pip' objects of these types: 'site net tile node wire 
                 pip'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-uphill]      Get the pips uphill from the provided wire or pip.
  [-downhill]    Get the pips downhill from the provided wire or pip.
  [-from]        -from <pip/site pin> Return the ordered list of pips 
                 beginning at this pip or site pin.  May be used in 
                 combination with uphill.  Default is downhill.  -all is 
                 implied.
  [-to]          -to <pip/site pin> Return the ordered list of pips ending at
                 this wire or site pin.  May be used in combination with 
                 uphill.  Default is downhill.  -all is implied.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'pip' objects against patterns.
                 Default: *

Categories: 
Device, Object, XDC

Description:

  Programmable interconnect points, or PIPs, provide the physical routing
  paths on the device used to connect logic networks. This command returns a
  list of PIPs on the device that match a specified search pattern. The
  command requires a design to be open.

  The default command gets a list of all PIPs on the device. However, this is
  not a recommended use of the command due to the number of pips on a device.
  You should specify the -of_objects argument to limit the number of pips
  returned.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_pips based on property values on the PIPs. You can find the properties
  on an object with the report_property or list_property commands. Any
  property/value pair can be used as a filter. In the case of the PIP object,
  "IS_DIRECTIONAL" and "FROM_PIN" are two of the properties that can be used
  to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Return the PIPs of the specified sites,
  tiles, wires, nodes, pips, or nets objects. AMD recommends that you
  always use the -of_objects argument to limit the runtime and memory used by
  the get_pips command. The number of programmable interconnect points
  returned can be considerable.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -uphill - (Optional) Return the PIPs uphill of the specified wire or PIPs.
  Uphill PIPs precede the specified object in the logic network.

  -downhill - (Optional) Return the PIPs downhill of the specified wire or
  PIPs. Downhill PIPs follow the specified object in the logic network.

  -from <args> - (Optional) Defines the starting points of the pips to get
  from wire or site_pin objects. This option can be combined with -uphill.
  The default is to return pips downhill of a start point. By default, all
  pips will be returned.

  -to <args> - (Optional) Defines the ending points of the pips to get from
  wire or site_pin objects. This option can be combined with -uphill. The
  default is to return pips downhill of a start point to the specified end
  point. By default, all pips will be returned.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Return PIPs matching the specified search patterns.
  The default pattern is the wildcard `*` which gets a list of all PIPs on
  the device. More than one search pattern can be specified to find PIPs
  based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the PIPs associated with the specified tile:

    get_pips -of_object [get_tiles DSP_R_X9Y75] 
    

See Also:

   *  get_sites
   *  get_tiles
   *  get_wires
   *  list_property
   *  report_property


@@@COMMAND: get_pkgpin_bytegroups@@@
get_pkgpin_bytegroups

Description: 
Get a list of package pin byte groups.

Syntax: 
get_pkgpin_bytegroups  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                       [-quiet] [-verbose] [<patterns>]

Returns: 
pin_group

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the pin_group of these package_pins, iobank, site, or 
                 port.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match pin_group against patterns
                 Default: *

Categories: 
Device, XDC, Object

Description:

  Gets a list of the byte groups on the I/O banks of the current AMD
  UltraScale device.

  For 7 series devices, the hierarchy of IO Banks is divided into two object
  types: I/O Banks and Package Pins. For AMD UltraScale FPGA devices, the IO
  Bank hierarchy includes two additional divisions: Byte groups and Nibbles.

  The relationships of these objects on an UltraScale device are defined as
  follows:

   *  An iobank has 2 or 4 bytegroups.

   *  Each pkgpin_bytegroup has 2 nibbles, an upper and lower, and has 13
      package pins.

   *  Each pkgpin_nibble has 6 or 7 pins, and is the upper or lower nibble of
      the pkgpin_bytegroup.

   *  A package_pin is one pin of an iobank, a pkgpin_bytegroup, or a
      pkgpin_nibble.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_pkgpin_bytegroup based on property values on the objects. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the pkgpin_bytegroup object, "NAME", and "IOBANK"
  are two of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <arg> - (Optional) Get the pkgpin_bytegroups of the specified
  iobank, site, port, or package_pin objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match pkgpin_bytegroups against the specified
  patterns. The default pattern is the wildcard `*` which returns all
  pkgpin_bytegroups. More than one pattern can be specified to find multiple
  pins based on different search criteria.

Examples:

  The following example gets a list of all pins on the package of the target
  device:

    get_pkgpin_bytegroups -of [get_iobanks 44]

See Also:

   *  get_iobanks
   *  get_package_pins
   *  get_pkgpin_nibbles
   *  list_property
   *  report_property


@@@COMMAND: get_pkgpin_nibbles@@@
get_pkgpin_nibbles

Description: 
Get a list of pkgpin nibbles.

Syntax: 
get_pkgpin_nibbles  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                    [-quiet] [-verbose] [<patterns>]

Returns: 
pin_nibble

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the pin_nibble of these package_pins, iobank, site, or 
                 port.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match pin_nibble against patterns
                 Default: *

Categories: 
Device, XDC, Object

Description:

  Return a list of nibbles, or half-bytes, on the I/O banks of the current
  AMD UltraScale device.

  For 7 series devices, the hierarchy of IO Banks is divided into two object
  types: I/O Banks and Package Pins. For AMD UltraScale FPGA devices, the IO
  Bank hierarchy includes two additional divisions: Byte groups and Nibbles.

  The relationships of these objects on an UltraScale device are defined as
  follows:

   *  An iobank has 2 or 4 bytegroups.

   *  Each pkgpin_bytegroup has 2 nibbles, an upper and lower, and has 13
      package pins.

   *  Each pkgpin_nibble has 6 or 7 pins, and is the upper or lower nibble of
      the pkgpin_bytegroup.

   *  A package_pin is one pin of an iobank, a pkgpin_bytegroup, or a
      pkgpin_nibble.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_pkgpin_nibbles based on property values on the objects. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the pkgpin_nibble object, "NAME", "IOBANK" and
  "TYPE" are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <arg> - (Optional) Get the pkgpin_nibble objects of the
  specified package_pins, iobank, site, or port.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match pkgpin_nibbles against the specified
  patterns. The default pattern is the wildcard `*` which returns all
  pkgpin_nibble objects on the current device.

Examples:

  The following example returns the Upper nibbles associated with the
  specified IO bank:

    get_pkgpin_nibbles -of [get_iobanks 44] -filter {TYPE == U}

See Also:

   *  get_iobanks
   *  get_package_pins
   *  get_pkgpin_bytegroups
   *  list_property
   *  report_property


@@@COMMAND: get_ports@@@
get_ports

Description: 
Get a list of ports in the current design

Syntax: 
get_ports  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
           [-match_style <arg>] [-scoped_to_current_instance] [-no_traverse]
           [-prop_thru_buffers] [-quiet] [-verbose] [<patterns>]

Returns: 
list of port objects

Usage: 
  Name                           Description
  ------------------------------------------
  [-regexp]                      Patterns are full regular expressions
  [-nocase]                      Perform case-insensitive matching (valid 
                                 only when -regexp specified)
  [-filter]                      Filter list with expression
  [-of_objects]                  Get ports of these nets, instances, sites, 
                                 clocks, timing paths, io standards, io 
                                 banks, package pins, drc violations
  [-match_style]                 Style of pattern matching, valid values are 
                                 ucf, sdc
                                 Default: sdc
  [-scoped_to_current_instance]  Match patterns on instance pins specified 
                                 using current instance, and then find top 
                                 level connected ports.
  [-no_traverse]                 Do not traverse to find top level terminals.
  [-prop_thru_buffers]           Allow propagate through buffers when 
                                 traversing to find top level terminals 
                                 connected to pins of scoped instance.
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution
  [<patterns>]                   Match port names against patterns
                                 Default: *

Categories: 
SDC, XDC, Object

Description:

  Gets a list of port objects in the current design that match a specified
  search pattern. The default command gets a list of all ports in the design.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_ports based on property values on the ports. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "ports" object, "PARENT" and "TYPE" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the ports connected to the specified
  nets, bels, sites, clocks, timing paths, io_standards, iobanks, or
  package_pins; or ports associated with specified DRC violation objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -match_style [sdc | ucf] - (Optional) Indicates that the search pattern
  matches UCF constraints or SDC constraints. The default is SDC.

  -scoped_to_current_instance - (Optional) This returns the top-level pins of
  the current instance. Applies the specified search <patterns> to find the
  instance pins on the current instance.

  -prop_thru_buffers - (Optional) This option returns the top-level ports
  connected to pins on the current instance. This option can be used with the
  -scoped_to_current_instance option to propagate the search from the pins of
  the current instance, through buffers, to the top-level ports of the
  design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match ports against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all ports in the
  project. More than one pattern can be specified to find multiple ports
  based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example gets a list of pins attached to the specified cell:

    get_ports -of_objects [lindex [get_cells] 1] 
    

  Note: If there are no ports matching the pattern, the tool will return a
  warning.

  The following example runs the report_drc command on the current design,
  returns the list of violations in the specified DRC report, and then
  returns the ports associated with any violations of the unspecified I/O
  Standard rule (NSTD):

    report_drc -name drc_1  
    get_drc_violations -name drc_1  
    get_ports -of_objects [get_drc_violations -name drc_1 NSTD*] 
    

  This example specifies a cell for the current instance, returns the pins
  scoped to the current instance, and returns the top-level ports connected
  to those pins:

    current_instance [get_cells dac_spi*]  
    get_ports -scoped_to_current_instance  
    get_ports -scoped_to_current_instance -prop_thru_buffers 
    

See Also:

   *  current_instance
   *  get_cells
   *  get_clocks
   *  get_drc_violations
   *  get_nets
   *  get_timing_paths
   *  list_property
   *  report_drc
   *  report_property


@@@COMMAND: get_power_rails@@@
get_power_rails

Description: 
Get a list of Power Rails in the current design

Syntax: 
get_power_rails  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
                 [<patterns>]

Returns: 
list of power rail objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match Power rail names against patterns
                Default: *

Categories: 
XDC, Floorplan


@@@COMMAND: get_pplocs@@@
get_pplocs

Description: 
Internal TCL task for reporting PPLOCs on pins or nets: (1) -nets option returns PPLOCs on given nets; (2) -pins option returns PPLOCs on given pins; (3) if option -nets and option -pins are both not specificed, it returns all PPLOCs in the design.

Syntax: 
get_pplocs  -nets <args> -pins <args> [-count] [-unlocked] [-locked]
            [-level <arg>] [-wire] [-quiet] [-verbose]

Returns: 
PPLOC nodes or number of PPLOCs

Usage: 
  Name         Description
  ------------------------
  -nets        List of nets to report its PPLOCs
  -pins        List of pins to report its PPLOCs
  [-count]     Count number of PPLOCs;; Do not report PPLOC or node names.
  [-unlocked]  Report unlocked/unfixed PPLOCs only 
  [-locked]    Report locked/fixed PPLOCs only; use -level to specify locked 
               level.
  [-level]     Specify locked level; Valid values are placement and routing.
               Default: placement
  [-wire]      get wires instead of nodes for assigned PPLOCs
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution

Categories: 
Report


@@@COMMAND: get_pr_configurations@@@
get_pr_configurations

Description: 
Get a list of partition configurations

Syntax: 
get_pr_configurations  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
                       [<patterns>]

Returns: 
list of Configuration objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match partition configuration names against patterns
                Default: *

Categories: 
Object, Partition

Description:

  Get a list of Dynamic Function eXchange (DFX) configuration objects in the
  current project.

  In the DFX design flow, the PR configuration lets you specify a
  reconfigurable module (RM) to assign to a specific instance of a Partition
  Definition (partitionDef). This flow lets you create unique configurations
  of the design based on the combination of the core design and one or more
  RMs. The DFX design flow requires the implementation of each PR
  configuration, resulting in partial bitstreams for the RMs, but complete
  bitstreams for each integrated configuration. Refer to the Vivado Design
  Suite User Guide: Dynamic Function eXchange (UG909) for more information.

  This command returns a list of PR configuration objects, or returns an
  error if the command fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_pr_configurations based on property values on the configurations. You
  can find the properties on an object with the report_property or
  list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match PR configurations against the specified
  search pattern. The default pattern is the wildcard `*` which gets a list
  of all PR configurations in the project.

Example:

  The following example gets all of the PR configuration objects in the
  project:

    get_pr_configurations

See Also:

   *  create_partition_def
   *  create_pr_configuration
   *  create_reconfig_module
   *  delete_pr_configurations
   *  setup_pr_configurations


@@@COMMAND: get_primitives@@@
get_primitives

Description: 
Get a list of available unisim primitives for a part

Syntax: 
get_primitives  [-regexp] [-nocase] [-filter <arg>] [-part <arg>] [-retarget]
                [-macro] [-hierarchy] [-quiet] [-verbose] [<patterns>]

Returns: 
primitive types

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching. (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-part]       Part to get primitives for
  [-retarget]   Include primitive types that will be automatically retargeted
                to the current (or specified) part
  [-macro]      Include primitive types that always convert into more basic, 
                natively supported primitives, such as logic gates
  [-hierarchy]  Include primitive types that will be automatically expanded 
                into a hierarchy of leaf cells during implementation
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match primitive types against patterns
                Default: *

Categories: 
Object

Description:

  Get a list of all supported primitives for the specified device. This
  command can be used on an open elaborated, synthesized, or implemented
  design, in which case it will get the PART from the current design. You can
  also specify the -part option to return the primitives for any device.

  By default the command always returns native primitives that can be placed
  on the target part without modification. The -retarget, -macro, and
  -hierarchy options add additional primitives to the list returned.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_primitives based on property values on the object. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -part <arg> - (Optional) Get a list of primitives for the specified part.

  -retarget - (Optional) Include primitives that are automatically
  re-targeted to the current or specified part.

  -macro - (Optional) Include macro primitives that convert into more basic
  primitives, such as logic gates.

  -hierarchy - (Optional) Include primitives that will be automatically
  expanded into a hierarchy of leaf cells during implementation.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Required) Match primitives against the specified patterns.

Examples:

  The following example gets the native primitives for the current part, and
  includes macro primitives:

    get_primitives -macro 
    

See Also:

   *  get_cells
   *  get_libs
   *  get_lib_pins
   *  get_lib_cells
   *  get_parts
   *  list_property
   *  report_property


@@@COMMAND: get_projects@@@
get_projects

Description: 
Get a list of projects

Syntax: 
get_projects  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
              [<patterns>]

Returns: 
list of project objects

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match project names against patterns
                Default: *

Categories: 
Object, Project

Description:

  Gets a list of open projects that match the specified search pattern. The
  default gets a list of all open projects.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_projects based on property values on the projects. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "projects" object, "NAME", "DIRECTORY" and
  "TARGET_LANGUAGE" are some of the properties that can be used to filter
  results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match projects against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all parts. More
  than one pattern can be specified to find multiple projects based on
  different search criteria.

Examples:

  The following example gets a list of all open projects.

    get_projects 
    

  The following example sets a variable called project_found to the length of
  the list of projects returned by get_projects, then prints either that
  projects were found or were not found as appropriate:

    
    set project_found [llength [get_projects ISC*] ]  
    if {$project_found > 0} {puts "Project Found."} \  
       else {puts "No Projects Found."} 
    

  Note: If there are no projects matching the pattern you will get a warning.

See Also:

   *  create_project
   *  current_project
   *  open_project


@@@COMMAND: get_property@@@
get_property

Description: 
Get properties of object

Syntax: 
get_property  [-min] [-max] [-quiet] [-verbose] <name> <object>

Returns: 
property value

Usage: 
  Name        Description
  -----------------------
  [-min]      Return only the minimum value
  [-max]      Return only the maximum value
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of property whose value is to be retrieved
  <object>    Object to query for properties

Categories: 
Object, PropertyAndParameter, XDC

Description:

  Gets the current value of the named property from the specified object or
  objects. If multiple objects are specified, a list of values is returned.

  If the property is not currently assigned to the object, or is assigned
  without a value, then the get_property command returns nothing, or the null
  string. If multiple objects are queried, the null string is added to the
  list of values returned.

  If multiple objects are passed to the get_property command, you can use the
  -min or -max options to return the smallest or greatest value of the
  property specified by name. This feature can be useful when setting timing
  constraints.

  Note: For numeric properties, the min/max determination is based on numeric
  values. For all other properties, the determination is based on string
  sorting.

  This command returns a value, or list of values, or returns an error if it
  fails.

Arguments:

  -min - (Optional) When multiple <objects> are specified, this option
  examines the values of the property specified by <name>, and returns the
  smallest value from the list of objects. Numeric properties are sorted by
  value. All other properties are sorted as strings.

  -max - (Optional) When multiple <objects> are specified, this option
  examines the values of the property specified by <name>, and returns the
  largest value from the list of objects. Numeric properties are sorted by
  value. All other properties are sorted as strings.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the property to be returned. The name is
  not case sensitive.

  <objects> - (Required) One or more objects to examine for the specified
  property.

Examples:

  The following example gets the NAME property from the specified cell:

    get_property NAME [lindex [get_cells] 3] 
    

  The following example returns the smallest PERIOD property from the
  specified clock objects:

    get_property -min PERIOD [get_clocks] 
    

  This example demonstrates the string based sorting of the SITE property for
  the specified ports:

    get_property SITE [get_ports]  
    IOB_X1Y75 IOB_X1Y76 IOB_X1Y98 IOB_X1Y125 IOB_X0Y94 IOB_X1Y95 IOB_X1Y96  
    IOB_X1Y93 IOB_X1Y94  
     
    get_property -min SITE [get_ports]  
    IOB_X0Y94  
     
    get_property -max SITE [get_ports]  
    IOB_X1Y98 
    

  Note: While IOB_X1Y125 is the largest site value on the port objects, the
  property value IOB_X1Y98 is returned because of the sorting of the property
  values as strings.

See Also:

   *  create_property
   *  get_cells
   *  get_ports
   *  list_property
   *  list_property_value
   *  report_property
   *  reset_property
   *  set_property


@@@COMMAND: get_qor_checks@@@
get_qor_checks

Description: 
Get a list of available QoR suggestions

Syntax: 
get_qor_checks  [-type <arg>] [-family <arg>] [-filter <arg>]
                [-of_objects <args>] [-quiet] [-verbose]

Returns: 
List of available qor suggestions

Usage: 
  Name           Description
  --------------------------
  [-type]        Report available QoR checks of given type ('suggestion' or 
                 'assessment'
                 Default: suggestion
  [-family]      Reports available QoR suggestions for given family
  [-filter]      Filter list with given expression
  [-of_objects]  List of QoR checks for given Ruledecks
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Object, Timing

Description:

  Get all available QoR suggestion objects.

  This command returns a list of all available QoR suggestion objects.

Arguments:

  -filter <arg> - (Optional) Filter the returned available suggestion objects
  with the specified expression. The -filter argument filters the list of 
  objects returned by the command based on property values on the objects. 
  You can find the properties on an object with the report_property or 
  list_property commands. In the case of the available_suggestion object, 
  CATEGORY, AUTO and INCR_FRIENDLY are a few of properties you might use to 
  filter the list of available suggestions.

  -family <arg> - (Optional) Filter the returned available suggestion objects
  with the specified family name. Some valid device family names are zynquplus, 
  kintexu and versalpremium.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <IDs> - (Optional) Specify a list of QoR suggestion IDs to select the
  specified objects.

Examples:

  To return an individual suggestion, you can supply the full ID:

    get_qor_checks RQS_CLOCK-5_1

  To get available suggestion objects based on the device family (Ultrascale, 
  Ultrascale+ or Versal)

    get_qor_checks -family Versal

  You can also filter suggestions objects within a given category. Available
  categories include: Timing, Congestion, Utilization, XDC and Clocking.
  For example, the following returns suggestions related to the Timing 
  category:

    get_qor_checks -filter {CATEGORY==Timing}

See Also:

   *  get_qor_suggestions
   *  report_qor_suggestions
   *  read_qor_suggestions
   *  write_qor_suggestions


@@@COMMAND: get_qor_ruledecks@@@
get_qor_ruledecks

Description: 
Get a list of QoR ruledecks

Syntax: 
get_qor_ruledecks  [-filter <arg>] [-quiet] [-verbose]

Returns: 
List of QoR ruledecks

Usage: 
  Name        Description
  -----------------------
  [-filter]   Filter list with given expression
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Netlist, Project


@@@COMMAND: get_qor_suggestions@@@
get_qor_suggestions

Description: 
Get a list of available QoR suggestions

Syntax: 
get_qor_suggestions  [-filter <arg>] [-quiet] [-verbose] [<IDs>]

Returns: 
list of qor suggestion objects

Usage: 
  Name        Description
  -----------------------
  [-filter]   Filter list with expression
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<IDs>]     Match suggestion names against given names

Categories: 
Object, Feasibility, Timing

Description:

  Get existing QoR suggestion objects created by the report_qor_suggestions
  command, or read into the design using read_qor_suggestions. The selected
  QoR objects can be written to a file using the write_qor_suggestions
  command. The suggestions created by the report command remain in memory
  until delete_qor_suggestions is run, or until it is overwritten by another
  report.

  This command returns a list of existing QoR suggestion objects from the
  open design, or returns an error if it fails.

Arguments:

  -filter <arg> - (Optional) Filter the returned suggestion objects with the
  specified expression. The -filter argument filters the list of objects
  returned by the command based on property values on the objects. You can
  find the properties on an object with the report_property or list_property
  commands. In the case of the qor_suggestion object, ENABLED, CATEGORY, and
  AUTO are a few of properties you might use to filter the list of
  suggestions.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <IDs> - (Optional) Specify a list of QoR suggestion IDs to select the
  specified objects.

Examples:

  To return an individual suggestion, you can supply the full ID:

    get_qor_suggestions RQS_CLOCK-5_1-1

  You can also filter suggestions objects within a given category. Available
  categories are: Timing, Congestion, Utilization, XDC, Clocking, Netlist, and
  Strategy. For example, the following returns suggestions related to the
  Timing category:

    get_qor_suggestions -filter {CATEGORY==Timing}
  
  To generate a list of suggestion objects that have been applied in the current 
  run:

    get_qor_suggestions -filter {APPLIED} 
  
  To view the Tcl command associated with the RQS_UTIL-4-1 suggestion:

    get_property COMMAND [get_qor_suggestions RQS_UTIL-4-1]
  
  To view all suggestions that need to have opt_design rerun in order to apply them:

    set suggs [get_qor_suggestions -filter {APPLICABLE_FOR==opt_design}]
  
See Also:

   *  delete_qor_suggestions
   *  read_qor_suggestions
   *  report_qor_suggestions
   *  write_qor_suggestions


@@@COMMAND: get_reconfig_modules@@@
get_reconfig_modules

Description: 
Get a list of ReconfigModules

Syntax: 
get_reconfig_modules  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                      [-quiet] [-verbose] [<patterns>]

Returns: 
list of ReconfigModule objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get 'reconfig_module' objects of these types: 
                 'partition_def'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match reconfigurable module names against patterns
                 Default: *

Categories: 
Object, Partition

Description:

  Get a list of reconfigurable modules (RMs) in the current design that match
  a specified search pattern. The default command returns a list of all RMs
  in the current project.

  This command returns a list of RM objects, or returns an error if the
  command fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_reconfig_modules based on property values on the RMs. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the "RM" object, "IS_GATE_LEVEL" and "PARTITION_DEF" are two
  of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the reconfig_modules of specified
  partition_def objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match reconfigurable modules (RMs) against the
  specified search pattern. The default pattern is the wildcard `*` which
  gets a list of all RMs in the project.

Example:

  The following example gets all gate level, or netlist-based RMs in the
  project:

    get_reconfig_modules -filter {IS_GATE_LEVEL} 
    

See Also:

   *  create_partition_def
   *  create_pr_configuration
   *  delete_reconfig_modules
   *  get_partition_defs
   *  set_property


@@@COMMAND: get_report_configs@@@
get_report_configs

Description: 
Get a list of Configurable Report objects

Syntax: 
get_report_configs  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                    [-quiet] [-verbose] [<patterns>]

Returns: 
list of Configurable Report objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get 'report' objects of these types: 'run'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match report names against patterns
                 Default: *

Categories: 
Object, Report

Description:

  Returns a list of report objects created by the create_report_config command.

  This command returns the list of report objects matching the search pattern
  and filters, or returns an error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_report_configs based on property values on the objects. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the "report" object, "REPORT_TYPE", "RUN_STEP" and
  "STATE" are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the reports associated with the
  specified design run objects as returned by the get_runs command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match report objects against the specified
  patterns. The default pattern is the wildcard `*` which gets a list of all
  report objects in the project.

Examples:

  The following example gets all of the report objects in the current project:

    get_report_configs 
    

  The following example gets all of the report objects in the current project
  that are associated with the opt_design step:

    get_report_configs -filter {RUN_STEP == opt_design} 
    

See Also:

   *  create_report_config
   *  delete_report_configs
   *  generate_reports
   *  get_runs


@@@COMMAND: get_runs@@@
get_runs

Description: 
Get a list of runs

Syntax: 
get_runs  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
          [-verbose] [<patterns>]

Returns: 
list of run objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get 'run' objects of these types: 'reconfig_module'.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match run names against patterns
                 Default: *

Categories: 
Object, Project

Description:

  Gets a list of synthesis and implementation runs in the current project
  that match a specified search pattern. The default command gets a list of
  all runs defined in the project.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_runs based on property values on the runs. You can find the properties
  on an object with the report_property or list_property commands. Any
  property/value pair can be used as a filter. In the case of the runs
  object, "CONSTRSET", "IS_IMPLEMENTATION", "IS_SYNTHESIS", and "FLOW" are
  some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the design runs for the specified
  reconfig_module objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match run names against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all defined runs
  in the project. More than one pattern can be specified to find multiple
  runs based on different search criteria.

Examples:

  The following example gets a list of all incomplete runs in the current
  project:

    get_runs -filter {PROGRESS < 100} 
    

  The following example gets a list of runs matching the specified pattern:

    get_runs imp*  
    

  Note: If there are no runs matching the pattern you will get a warning.

See Also:

   *  create_run
   *  current_run
   *  get_reconfig_modules
   *  report_property


@@@COMMAND: get_selected_objects@@@
get_selected_objects

Description: 
Get selected objects

Syntax: 
get_selected_objects  [-primary] [-quiet] [-verbose]

Returns: 
list of selected objects

Usage: 
  Name        Description
  -----------------------
  [-primary]  Do not include objects that were selected due to selection 
              rules
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object, GUIControl

Description:

  Gets the objects currently selected in the Vivado IDE by the select_objects
  command. Can get the primary selected object and any secondary selected
  objects as well.

  Note: This Tcl command works only when Vivado is run in GUI mode.

  Primary objects are directly selected, while secondary objects are selected
  based on the selection rules currently defined by the Tools > Settings
  command. Refer to the Vivado Design Suite User Guide: Using the IDE (UG893)
  for more information on setting selection rules.

  This command returns a Tcl list of selected objects, even a list with just
  one object. This can be an issue for some of the Vivado tool commands that
  do not accept a list of objects, such as the current_instance command. In
  this case you can use lindex to pass a specific object from the
  get_selected_objects list to the current_instance command:

    current_instance [lindex [get_selected_objects] 0] 
    

Arguments:

  -primary - (Optional) Indicates that only the primary selected object or
  objects should be returned; not secondary objects. As a default
  get_selected_objects will return all currently selected objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the properties of all currently selected
  objects, both primary and secondary:

    report_property [get_selected_objects] 
    

See Also:

   *  get_highlighted_objects
   *  get_marked_objects
   *  highlight_objects
   *  mark_objects
   *  select_objects


@@@COMMAND: get_sim_versions@@@
get_sim_versions

Description: 
Get supported version(s) for the specified simulator

Syntax: 
get_sim_versions  [-quiet] [-verbose] [<name>]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<name>]    Simulator name

Categories: 
ToolLaunch, Simulation


@@@COMMAND: get_simulators@@@
get_simulators

Description: 
Get registered simulators

Syntax: 
get_simulators  [-regexp] [-nocase] [-filter <arg>] [-quiet] [-verbose]
                [<patterns>]

Usage: 
  Name          Description
  -------------------------
  [-regexp]     Patterns are full regular expressions
  [-nocase]     Perform case-insensitive matching (valid only when -regexp 
                specified)
  [-filter]     Filter list with expression
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<patterns>]  Match simulator names against patterns
                Default: *

Categories: 
ToolLaunch, Simulation

Description:

  Get the list of simulators registered for use with the Vivado Design Suite
  unified simulation environment.

  The Vivado Design Suite comes with some simulators pre-registered for use
  with the unified simulation environment. You can also register your own
  third-party simulators using the register_simulator command.

  This command returns the names of registered simulators, or returns an
  error if it fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_simulators based on the properties on the registered simulators. You
  can find the properties on a registered simulator object with the
  report_property or list_property commands. In the case of the "simulator"
  object, "NAME", "DESCRIPTION", and "TCLPROC.BOOTSTRAP" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match available simulators against the specified
  patterns. The default pattern is the wildcard `*` which gets all registered
  simulators.

Example:

  The following example returns all registered simulators:

    get_simulators 
    

See Also:

   *  launch_simulation
   *  register_simulator


@@@COMMAND: get_site_pins@@@
get_site_pins

Description: 
Get a list of site_pins.

Syntax: 
get_site_pins  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>]
               [-quiet] [-verbose] [<patterns>]

Returns: 
site_pins

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'site_pin' objects of these types: 'site xdef_site node 
                 pin net bel_pin'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'site_pin' objects against patterns.
                 Default: *

Categories: 
Device, Object, XDC

Description:

  Returns a list of site pins of the specified site, node, logical cell pin,
  or net objects in an open design.

  This command recommends the use of the -of_objects argument to prevent high
  run times and compute resources.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -of_objects <args> - (Optional) Return the site pins of specified site,
  node, pin, or net objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_site_pins based on property values on the site pins. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the site
  pin object, "IS_CLOCK", "IS_DATA" and "IS_PART_OF_BUS" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match site pins against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all site pins of
  the specified objects. More than one search pattern can be specified to
  find site pins based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the site_pins of the specified Nets:

    get_site_pins -of_objects [get_nets *Clk]  
    IOB_X1Y24/I 
    

  The following example returns the output site_pins associated with the site
  SLICE_X21Y92:

    
    get_site_pins -of_objects [get_sites SLICE_X21Y92] -filter {DIRECTION==OUT}  
    SLICE_X21Y92/A SLICE_X21Y92/AMUX SLICE_X21Y92/AQ  
    SLICE_X21Y92/B SLICE_X21Y92/BMUX SLICE_X21Y92/BQ   
    SLICE_X21Y92/C SLICE_X21Y92/CMUX SLICE_X21Y92/COUT  
    SLICE_X21Y92/CQ SLICE_X21Y92/D SLICE_X21Y92/DMUX   
    SLICE_X21Y92/DQ 
    

See Also:

   *  get_nets
   *  get_nodes
   *  get_pins
   *  get_sites
   *  list_property
   *  report_property


@@@COMMAND: get_site_pips@@@
get_site_pips

Description: 
Get a list of site_pips from the given object.

Syntax: 
get_site_pips  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
               [-quiet] [-verbose] [<patterns>]

Returns: 
site_pips

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the site_pips of these sites.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match site_pips against patterns
                 Default: *

Categories: 
Device, Object, XDC

Description:

  Programmable interconnect points, or PIPs, provide the physical routing
  paths on the device used to connect logic networks. This command returns a
  list of PIPs on specified sites that match a specified search pattern. The
  command requires a design to be open.

  This command requires the use of the -of_objects option to specify the
  sites to return PIPs from.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_site_pips based on property values on the site PIPs. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the PIP
  object, "IS_DIRECTIONAL" and "FROM_PIN" are two of the properties that can
  be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) This option can be used with the get_sites
  command to return the PIPs of specified Sites.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match PIPs against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all PIPs for the
  Sites specified by -of_objects. More than one search pattern can be
  specified to find pins based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the pins of the specified BELs associated
  with the specified range of sites on the device:

    get_site_pips -of_objects [get_sites SLICE_X21Y92] 
    

See Also:

   *  get_sites
   *  list_property
   *  report_property


@@@COMMAND: get_sites@@@
get_sites

Description: 
Get a list of Sites

Syntax: 
get_sites  [-regexp] [-filter <arg>] [-nocase] [-range <args>]
           [-of_objects <args>] [-quiet] [-verbose] [<patterns>]

Returns: 
list of site objects

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-filter]      Filter list with expression
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-range]       Match site names which fall into the range.  Range is 
                 defined by exactly two site names.
  [-of_objects]  Get the sites of slrs, tiles, bels, site_pins, package_pins,
                 ports, pblocks, nets, site_types, io_banks, cells, 
                 clock_regions or drc_violation
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match site names against patterns. Bonded sites will also 
                 match on package pin names.
                 Default: *

Categories: 
Device, XDC, Object

Description:

  Gets a list of sites on the target device that match a specified search
  pattern. The default command gets a list of all sites on the target device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_sites based on property values on the sites. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the site object, "SITE_TYPE", "IS_USED", "NUM_INPUTS", and
  "NUM_OUTPUTS" are some of the properties that can be used to filter
  results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -range <arg> - (Optional) Get all the sites that fall into a specified
  range. The range of sites must be specified with two site values, of the
  same SITE_TYPE, such as {SLICE_X2Y12 SLICE_X3Y15}. The SITE_TYPE of a site
  can be determined by the report_property command.

  Note: Specifying a range with two different types will result in an error.

  -of_objects <arg> - (Optional) Get sites from the specified object or
  objects. Valid objects include: tiles, BELs, pins, package pins, ports,
  Pblocks, I/O Banks, cells, and clock_regions; or sites associated with
  specified DRC violation objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match sites against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all sites on the
  target device.

Examples:

  The following example gets a list of all sites available on the target
  device:

    get_sites 
    

  The following example returns the number of sites that are not currently
  used on the device. Both command forms in the example return the same
  results. The second command directly evaluates the IS_USED boolean
  property:

    llength [get_sites -filter {IS_USED==0}]  
    -or-  
    llength [get_sites -filter !IS_USED] 
    

  Note: If no sites match the pattern you will get a warning.

  The following example gets all of the sites on the device, and returns the
  unique SITE_TYPEs:

    set sites [get_sites]  
    set type {}  
    foreach x $sites {  
       set prop [get_property SITE_TYPE $x]  
       if { [lsearch -exact $type $prop] == -1 } {   
          lappend type $prop   
       }   
    }  
    foreach y $type {   
       puts "SITE_TYPE: $y"   
    } 
    

  The following example shows three different forms for specifying the range
  of sites to return:

    get_sites -range {SLICE_X0Y0 SLICE_X1Y1}  
    SLICE_X0Y0 SLICE_X0Y1 SLICE_X1Y0 SLICE_X1Y1 
    get_sites -range SLICE_X0Y0 -range SLICE_X1Y1  
    SLICE_X0Y0 SLICE_X0Y1 SLICE_X1Y0 SLICE_X1Y1 
    get_sites -range {SLICE_X0Y0:SLICE_X1Y1}  
    SLICE_X0Y0 SLICE_X0Y1 SLICE_X1Y0 SLICE_X1Y1 
    

See Also:

   *  get_cells
   *  get_drc_violations
   *  get_property
   *  list_property
   *  report_property


@@@COMMAND: get_slrs@@@
get_slrs

Description: 
Get a list of slrs.

Syntax: 
get_slrs  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
          [-verbose] [<patterns>]

Returns: 
slr

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the slr of these device, tiles, sites, bels, sitepins, 
                 belpins, clock region, node, pip, pin, package pin, iobank, 
                 cell.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match slr against patterns
                 Default: *

Categories: 
Device, Object, XDC

Description:

  Get a list of the super logic regions (SLRs) on the target device. On
  Devices that do not contain multiple SLRs, the SLR0 is returned.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_slrs based on property values on the SLRs. You can find the properties
  on an object with the report_property or list_property commands. In the
  case of the SLR object, "NUM_CHANNELS", "NUM_SLLS" and "NUM_TILES" are some
  of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the SLRs associated with the specified
  device, tiles, sites, bels, site_pins, bel_pins, clock_regions, nodes,
  pips, pins, package_pins, iobanks, or cells.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match SLRs against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all SLRs in the
  current design. More than one pattern can be specified to find multiple
  SLRs based on different search criteria.

  Note: You must enclose multiple search patterns in braces {} to present the
  list as a single element.

Examples:

  The following example highlights each of the SLRs on the target device in a
  different color:

    foreach x [get_slrs] {  
       incr i  
       highlight_objects -color_index $i $x  
    } 
    

  Note: If there are no cells matching the pattern you will get a warning.

  The following example returns the number of super long lines (SLLs) between
  super logic regions on the current device:

    get_property NUM_SLLS [get_slrs SLR0] 
    

See Also:

   *  get_property
   *  list_property
   *  report_property


@@@COMMAND: get_speed_models@@@
get_speed_models

Description: 
Get a list of speed_models in the device.

Syntax: 
get_speed_models  [-of_objects <args>] [-regexp] [-nocase] [-patterns <arg>]
                  [-filter <arg>] [-speed_pattern <arg>] [-quiet] [-verbose]

Returns: 
speed_models

Usage: 
  Name              Description
  -----------------------------
  [-of_objects]     Get 'speed_model' objects of these types: 'node bel pip 
                    cell'.
  [-regexp]         Patterns are full regular expressions
  [-nocase]         Perform case-insensitive matching. (valid only when 
                    -regexp specified)
  [-patterns]       Match the 'speed_model' objects against patterns.
                    Default: *
  [-filter]         Filter list with expression
  [-speed_pattern]  Returns a single model that exactly matches the pattern.
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Device, Object, XDC

Description:

  Get speed models for AMD UltraScale architecture device resources in the
  current design.

  Speed files are provided by AMD for each device and speed grade. Speed
  files contain speed models. There are speed models for the various elements
  of a device: nodes, pips, bels. There are speed models for setup and hold,
  propagation delays, and jitter.

  The speed models include information on the delays in nanoseconds (ns)
  associated with device resources like BELs and SITEs and routing resources.
  Speed models are used by the AMD Vivado timing engine to perform analysis
  of the current design in the context of the target part.

  The objects returned are the speed models associated with specific physical
  resources like pips and wires, drawn directly from the speed files. These
  can include capacitance and resistance values and buffer models.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

  This command returns the specified speed model objects, or returns an error
  if the command fails.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_speed_models based on property values on the objects. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the speed_model object, "NAME", "TYPE" and "DELAY" are some
  of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -of_objects <arg> - (Optional) Get the speed models for the specified node,
  bel, pip, or cell objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the properties on the speed model for an A6LUT:

    report_property -all [lindex [get_speed_models -of \
    [get_bels SLICE_X0Y0/A6LUT]] 0]
    Property              Type    Read-only  Value
    CLASS                 string  true       speed_model
    DELAY                 double  true       0.043
    FAST_MAX              double  true       0.035
    FAST_MIN              double  true       0.028
    IS_INSTANCE_SPECIFIC  bool    true       1
    NAME                  string  true       bel_d_lut6_a1_o6
    NAME_LOGICAL          string  true       bel_d_lut6_a1_o6
    SLOW_MAX              double  true       0.043
    SLOW_MIN              double  true       0.036
    SPEED_INDEX           int     true       65535
    TYPE                  string  true       bel_delay

  The following example returns the delays, in nanoseconds, for a specific
  A6LUT on the device, followed by the delay name for the specified object:

    set x [get_speed_models -of [get_bels SLICE_X0Y0/A6LUT]]
    puts [format "%6.3f : %s" [get_property DELAY [lindex $x 0 ]] \
    [get_property NAME [lindex $x 0 ]]]

See Also:

   *  get_bels
   *  list_property
   *  report_property


@@@COMMAND: get_template_bd_designs@@@
get_template_bd_designs

Description: 
Get a list of IPI example designs

Syntax: 
get_template_bd_designs  [-quiet] [-verbose]

Returns: 
list of IPI design objects

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
IPIntegrator

Description:

  The command returns the list of template block designs available in the
  current release of the AMD Vivado Design Suite, or returns an error if it
  fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the list of available block design templates
  in the current release:

    get_template_bd_designs

See Also:

   *  instantiate_template_bd_design


@@@COMMAND: get_tiles@@@
get_tiles

Description: 
Get a list of tiles.

Syntax: 
get_tiles  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-quiet]
           [-verbose] [<patterns>]

Returns: 
tiles

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the tiles of these slr, sites, bels, site_pins, 
                 bel_pins, nodes, wires, pips, nets, clock_regions.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match tiles against patterns
                 Default: *

Categories: 
Device, Object, XDC

Description:

  This command returns a list of tiles on the device in an open design. The
  default command gets a list of all tiles on the device.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_tiles based on property values on the tile objects. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the tile
  object, "NUM_ARCS", "NUM_SITES", and "IS_GT_SITE_TILE" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Can be used to return the tiles associated
  with specified sites, bels, site_pins, bel_pins, nodes, wires, pips, nets,
  clock_regions, or slrs.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match tiles against the specified patterns. The
  default pattern is the wildcard `*` which gets a list of all tiles on the
  device. More than one search pattern can be specified to find tiles based
  on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the total number of tiles where the number of
  timing arcs is greater than 100 and 150 respectively:

    llength [get_tiles -filter {NUM_ARCS>100} ]  
    13468  
     
    llength [get_tiles -filter {NUM_ARCS>150} ]  
    11691 
    

See Also:

   *  get_bels
   *  get_nodes
   *  get_pips
   *  get_site_pins
   *  get_sites
   *  get_wires
   *  list_property
   *  report_property


@@@COMMAND: get_timing_arcs@@@
get_timing_arcs

Description: 
Get a list of timing arcs

Syntax: 
get_timing_arcs  [-from <args>] [-to <args>] [-filter <arg>]
                 [-of_objects <args>] [-quiet] [-verbose]

Returns: 
list of timing arc objects

Usage: 
  Name           Description
  --------------------------
  [-from]        List of pin or ports
  [-to]          List of pin or ports
  [-filter]      Filter list with expression
  [-of_objects]  Get timing arcs for these cells
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
XDC, Object, Timing

Description:

  Gets a list of timing arcs for the specified objects. You can filter the
  timing arcs according to specified properties.

  Timing arcs are a part of a timing path. A timing arc can be a wire between
  two pins, or can be the internal path of a logic instance between an input
  pin and output pin, or clock input and data output pins.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -from <args> - (Optional) The starting points of the timing arcs to be
  returned. Ports, pins, or nets can be specified as startpoints.

  -to <args> - (Optional) The endpoints or destination objects of timing arcs
  to be returned. Ports, pins, or nets can be specified as endpoints.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_timing_arcs based on property values on the timing arcs. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the "timing arc" object, "FROM_PIN", "TO_PIN" and
  "LIB_CELL" are some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Get timing arcs from the Specified cell
  objects. If a cell is specified, all cell_arcs of that cell are returned.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the timing arc from the output pin of the
  specified buffer:

    
    report_property -all [get_timing_arcs -of_objects [get_cells go_IBUF_inst]] 
    

  The following example returns the timing arcs of the specified cell:

    get_timing_arcs -of_objects [get_cells count_reg[6]]  
    {count_reg[6]/C --> count_reg[6]/Q [Reg Clk to Q] }   
    {count_reg[6]/C --> count_reg[6]/D [setup] }   
    {count_reg[6]/C --> count_reg[6]/D [hold] }   
    {count_reg[6]/C --> count_reg[6]/CLR [recovery] }   
    {count_reg[6]/C --> count_reg[6]/CE [hold] }   
    {count_reg[6]/C --> count_reg[6]/CLR [removal] }   
    {count_reg[6]/C --> count_reg[6]/CE [setup] }   
    {count_reg[6]/CLR --> count_reg[6]/Q [Reg Set/Clr] } 
    

See Also:

   *  get_timing_path
   *  report_timing
   *  set_msg_limit


@@@COMMAND: get_timing_paths@@@
get_timing_paths

Description: 
Get timing paths

Syntax: 
get_timing_paths  [-from <args>] [-rise_from <args>] [-fall_from <args>]
                  [-to <args>] [-rise_to <args>] [-fall_to <args>]
                  [-through <args>] [-rise_through <args>]
                  [-fall_through <args>] [-delay_type <arg>] [-setup] [-hold]
                  [-max_paths <arg>] [-nworst <arg>] [-unique_pins]
                  [-slack_lesser_than <arg>] [-slack_greater_than <arg>]
                  [-group <args>] [-no_report_unconstrained] [-user_ignored]
                  [-routable_nets] [-sort_by <arg>] [-filter <arg>] [-regexp]
                  [-nocase] [-cell <args>] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-from]                     From pins, ports, cells or clocks
  [-rise_from]                Rising from pins, ports, cells or clocks
  [-fall_from]                Falling from pins, ports, cells  or clocks
  [-to]                       To pins, ports, cells or clocks
  [-rise_to]                  Rising to pins, ports, cells or clocks
  [-fall_to]                  Falling to pins, ports, cells or clocks
  [-through]                  Through pins, ports, cells or nets
  [-rise_through]             Rising through pins, ports, cells or nets
  [-fall_through]             Falling through pins, ports, cells or nets
  [-delay_type]               Type of path delay: Values: max, min, min_max, 
                              max_rise, max_fall, min_rise, min_fall
                              Default: max
  [-setup]                    Get max delay timing paths (equivalent to 
                              -delay_type max)
  [-hold]                     Get min delay timing paths (equivalent to 
                              -delay_type min)
  [-max_paths]                Maximum number of paths to return: Value >=1
                              Default: 1
  [-nworst]                   List N worst paths to endpoint: Value >=1
                              Default: 1
  [-unique_pins]              for each unique set of pins, show at most 1 
                              path per path group
  [-slack_lesser_than]        Include paths with slack less than this
                              Default: 1e+30
  [-slack_greater_than]       Include paths with slack greater than this
                              Default: -1e+30
  [-group]                    Limit paths in this group(s)
  [-no_report_unconstrained]  Do not get unconstrained paths
  [-user_ignored]             only report paths which have infinite slack 
                              because of set_false_path or set_clock_groups 
                              timing constraints
  [-routable_nets]            store the number of routable nets traversed as 
                              a property on timing paths.
  [-sort_by]                  Sorting order of paths: Values: group, slack
                              Default: slack
  [-filter]                   Filter list with expression
  [-regexp]                   Patterns specified in filter are full regular 
                              expressions
  [-nocase]                   Perform case-insensitive matching for patterns 
                              specified in filter (valid only when -regexp 
                              specified)
  [-cell]                     run get_timing_paths on the cell
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Object, Timing

Description:

  Gets timing path objects that meet the specified criteria. This command can
  be used to predefine timing paths to pass to the report_timing command for
  instance. Another usage of this command is to create custom reporting and
  analysis.

  The get_timing_paths command is very similar to the report_timing command.
  However, get_timing_paths returns timing path objects which can be queried
  for properties, or passed to other Tcl commands for processing, where
  report_timing returns a file or a string.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -from <args> - (Optional) Defines the starting points of the timing paths
  to be analyzed. Ports, pins, or cells can be specified as timing path
  startpoints. You can also specify a clock object, and all startpoints
  clocked by the named clock will be analyzed.

  -rise_from <args> - (Optional) Similar to the -from option, but only the
  rising edge of signals coming from the startpoints are considered for
  timing analysis. If a clock object is specified, only the paths launched by
  the rising edge of the clock are considered as startpoints.

  -fall_from <args> - (Optional) Similar to the -from option, but only the
  falling edge of signals coming from the startpoints are considered for
  timing analysis. If a clock object is specified, only the paths launched by
  the falling edge of the clock are considered as startpoints.

  -to <args> - (Optional) Specifies the endpoints, or destination objects of
  timing paths to be analyzed. Ports, pins, and cell objects can be specified
  as endpoints. A clock object can also be specified, in which case endpoints
  clocked by the named clock are analyzed.

  -rise_to <args> - (Optional) Similar to the -to option, but only the rising
  edge of signals going to the endpoints is considered for timing analysis.
  If a clock object is specified, only the paths captured by the rising edge
  of the named clock are considered as endpoints.

  -fall_to <args> - (Optional) Similar to the -to option, but only the
  falling edge of signals going to the endpoints is considered for timing
  analysis. If a clock object is specified, only the paths captured by the
  falling edge of the named clock are considered as endpoints.

  -through <args> - (Optional) Specifies that only paths through the
  specified pins, cell instance, or nets are considered during timing
  analysis. You can specify individual -through (or -rise_through and
  -fall_through ) points in sequence to define a specific path through the
  design for analysis. The order of the specified through points is important
  to define a specific path. You can also specify through points with
  multiple objects, in which case the timing path can pass through any of the
  specified through objects.

  -rise_through <args> - (Optional) Similar to the -through option, but
  timing analysis is only performed on paths with a rising transition at the
  specified objects.

  -fall_through <args> - (Optional) Similar to the -through option, but
  timing analysis is only performed on paths with a falling transition at the
  specified objects.

  -delay_type <arg> - (Optional) Specifies the type of delay to analyze when
  running the timing report. The valid values are min, max, min_max,
  max_rise, max_fall, min_rise, min_fall. The default setting for -delay_type
  is max.

  -setup - (Optional) Check for setup violations. This is the same as
  specifying -delay_type max.

  -hold - (Optional) Check for hold violations. This is the same as
  specifying -delay_type min.

  Note: -setup and -hold can be specified together, which is the same as
  specifying -delay_type min_max.

  -max_paths <arg> - (Optional) The maximum number of paths to output when
  sorted by slack; or the maximum number of paths per path group when sorted
  by group, as specified by -sort_by. This is specified as a value greater
  than or equal to 1. The default value is 1, returning the single worst
  timing path, or the worst path per group.

  -nworst <arg> - (Optional) The number of timing paths to show to each
  endpoint. The timing report will report the N worst paths based on the
  specified value. This is specified as a value greater than or equal to 1.
  The default setting is 1.

  -unique_pins - (Optional) Show only one timing path per each unique pin or
  group of pins. This is a boolean option, enabled by its use.

  -routable_nets - (Optional) Report the number of routable nets traversed as
  a property of the timing paths returned.

  -slack_greater_than <arg> - (Optional) Report timing on paths with a
  calculated slack value greater than the specified value. Used with
  -slack_lesser_than to provide a range of slack values of specific interest.

  -slack_lesser_than <arg> - (Optional) Report timing on paths with a
  calculated slack value less than the specified value. Used with
  -slack_greater_than to provide a range of slack values of specific
  interest.

  -group <args> - (Optional) Report timing for paths in the specified path
  groups.

  -no_report_unconstrained - (Optional) Do not report timing on unconstrained
  paths.

  -user_ignored - (Optional) Show the timing paths that are ignored during
  timing analysis because the user has specified set_false_path or
  set_clock_groups timing constraints. This is a boolean option, enabled by
  its use.

  -sort_by [ slack | group ] - (Optional) Sort timing paths by path groups,
  or by slack values. The default sort order is by slack values.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_timing_paths based on property values on the timing paths. You can find
  the properties on an object with the report_property or list_property
  commands. In the case of the timing path object, "DATAPATH_DELAY",
  "ENDPOINT_PIN" and "ENDPOINT_CLOCK" are some of the properties that can be
  used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters. String matching is case-sensitive and is always
  anchored to the start and to the end of the search string. The wildcard "*"
  character can be used at the beginning or at the end of a search string to
  widen the search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  The following example gets the first 100 most critical timing paths objects
  and returns only those from the path group clk_tx_clk_core_1:

    get_timing_paths -max_paths 100 -filter {GROUP == clk_tx_clk_core_1}

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"}

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED}

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -cell <arg> - (Optional) Apply the get_timing_paths command to the
  specified cell. Cells can be specified by name, or as an object returned by
  the get_cells command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Get the five worst timing paths from the specified endpoint and report all
  the properties of the fourth timing path in the list:

    report_property -all [lindex [get_timing_paths -to [get_ports led_pins[*]]\
    -nworst 5] 3]

  Define a procedure called custom_report and report the 100 worst paths from
  the clk_tx_clk_core_1 path group using the procedure.

    proc custom_report { listOfPaths } {
       puts [format {%-40s %-40s %-20s %-20s %7s} "Startpoint" "Endpoint" \
          "Launch Clock" "Capture Clock" "Slack"]
       puts [string repeat "-" 140]
       foreach path $listOfPaths {
          set startpoint [get_property STARTPOINT_PIN $path]
          set startclock [get_property STARTPOINT_CLOCK $path]
          set endpoint [get_property ENDPOINT_PIN $path]
          set endclock [get_property ENDPOINT_CLOCK $path]
          set slack [get_property SLACK $path]
          puts [format {%-40s %-40s %-20s %-20s %7s} $startpoint $endpoint \
             $startclock $endclock $slack]
       }
    }
    set paths [get_timing_paths -group clk_tx_clk_core_1 -max_paths 100]\
    custom_report $paths

  Use get_timing_paths to perform a timing analysis on the specified paths.

    set paths [get_timing_paths -group clk_tx_clk_core_1 -max_paths 100]
    report_timing -of_objects $paths

  Which is the equivalent of:

    report_timing -group clk_tx_clk_core_1 -max_paths 100

  Return timing paths where the logic levels are greater than the specified
  number of logic levels.

    get_timing_paths -max_paths 1000 -filter {LOGIC_LEVELS > 1}

See Also:

   *  report_property
   *  report_timing


@@@COMMAND: get_utilization@@@
get_utilization

Description: 
Compute utilization of device and returns a list of resources used for script processing

Syntax: 
get_utilization  [-cells <args>] [-exclude_cells <args>] [-pblocks <args>]
                 [-exclude_child_pblocks] [-exclude_non_assigned]
                 [-supplyAsPblockAreaSLR] [-ranges <args>] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name                      Description
  -------------------------------------
  [-cells]                  Report utilization of given list of cells
  [-exclude_cells]          Report utilization of given list of excluded 
                            cells
  [-pblocks]                get utilization of given pblock
  [-exclude_child_pblocks]  get utilization with out child pblocks
  [-exclude_non_assigned]   Pblock utilization with out Non-assigned Cells
  [-supplyAsPblockAreaSLR]  For SLR wise report, Pblock supply per SLR is 
                            calculated on pblock area in the SLR
  [-ranges]                 Site ranges(s)
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution

Categories: 
Report

Description:

  Report the utilization of the device resources by the whole design, or the
  utilization of a list of cells from the design. This command requires a
  hierarchical cell name or names.

  Note: This command can also generate the utilization of the device by the
  whole design, excluding a list of cells.

  The get_utilization command returns a summary form of the information
  returned by report_utilization. This command returns the number of LUT,
  REG, BRAM, and DSP resources consumed, as well as the available number of
  each on the device.

Arguments:

  -cells <args> - (Optional) Determine the device resource utilization by the
  specified list of cells from the design.

  -exclude_cells <args> - (Optional) Determine the device resource
  utilization by the currrent design, excluding the specified list of cells.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example gets the utilization of the device by the current
  design:

    get_utilization 
    

  The following example gets the device resource utilization for the
  specified list of cells:

    get_utilization -cells [get_cells cpuEngine] 
    

See Also:

   *  get_cells
   *  report_utilization


@@@COMMAND: get_waivers@@@
get_waivers

Description: 
Get one or more DRC/METHODOLOGY/CDC/LINT message waivers

Syntax: 
get_waivers  [-type <arg>] [-id <arg>] [-of_objects <args>] [-regexp]
             [-filter <arg>] [-nocase] [-quiet] [-verbose] [<patterns>]

Returns: 
waivers

Usage: 
  Name           Description
  --------------------------
  [-type]        Type of waiver - DRC, METHODOLOGY, CDC, LINT, ALL
  [-id]          ID of the DRC/METHODOLOGY/CDC/LINT message being waived
  [-of_objects]  List of objects (cells, nets, pins, sites, etc.) for which 
                 DRC/METHODLOGY/CDC/LINT waiver(s) were set
  [-regexp]      Patterns are full regular expressions
  [-filter]      Filter list with expression
  [-nocase]      Perform case-insensitive matching (valid only when -regexp 
                 specified)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match waiver names against patterns
                 Default: *
                 Values: The default search pattern is the wildcard *, or .* 
                 when -regexp is specified.

Categories: 
Waiver, Object

Description:

  The create_waiver command lets you select individual DRC, methodology, or
  CDC violations or rule checks that can be waived for a design, letting you
  move forward in the design flow. The get_waivers command lets you query the
  defined waiver objects in the current design.

  A waiver must be specified for an individual DRC or methodology violation,
  or for a specific DRC or methodology check, or for a CDC path. The waiver
  must be assigned to a specific object, or specific violation ID, or for
  paths using -from/-to arguments. You can format the get_waivers command to
  return the specific types of waivers you are looking for, or waivers
  associated with specific objects.

  You can report the waivers defined in the current design with
  report_waivers, and remove waivers from the design using delete_waivers.

Arguments:

  -type <arg> - (Optional) Specifies the type of waiver to get. Currently
  supports DRC, METHODOLOGY, and CDC.

  -id <arg> - (Optional) Specifies the ID of the check or violation
  associated with the waiver.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_waivers based on property values on the waivers. You can find the
  properties on an object with the report_property or list_property commands.
  In the case of the waivers object, "NAME", "OBJECT_COUNTS" and "TYPE" are
  some of the properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <arg> - (Optional) Get the waivers associated with the
  specified objects (cells, nets, pins, sites, etc.).

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Match waivers against the specified search pattern.
  The default pattern is the wildcard `*` which gets a list of all waivers in
  the project.

Examples:

  This example gets any waivers in the current design:

    get_waivers 
    

  The following example gets all DRC check waivers:

    get_waivers -type DRC * 
    

  The following example gets all waivers associated with the specified objects:

    get_waivers -of_objects [get_ports {src_in* dest_out*}] 
    

See Also:

   *  create_waiver
   *  delete_waivers
   *  report_waivers


@@@COMMAND: get_wires@@@
get_wires

Description: 
Get a list of wires.

Syntax: 
get_wires  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>] [-uphill]
           [-downhill] [-from <args>] [-to <args>] [-quiet] [-verbose]
           [<patterns>]

Returns: 
wires

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the wires of these tiles, nodes, pips, or nets.
  [-uphill]      Get the wires uphill from the provided pip.
  [-downhill]    Get the wires downhill from the provided pip.
  [-from]        -from <pip/site pin> Return the ordered list of wires 
                 beginning at this pip or site pin.  May be used in 
                 combination with uphill.  Default is downhill.  -all is 
                 implied.
  [-to]          -to <pip/site pin> Return the ordered list of wires ending 
                 at this wire or site pin.  May be used in combination with 
                 uphill.  Default is downhill.  -all is implied.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match wires against patterns
                 Default: *

Categories: 
Device, Object, XDC

Description:

  Returns a list of wires in the design that match a specified search pattern
  in an open design.

  The default command gets a list of all wires in the design.

  Note: To improve memory and performance, the get_* commands return a
  container list of a single type of objects (e.g. cells, nets, pins, or
  ports). You can add new objects to the list (using lappend for instance),
  but you can only add the same type of object that is currently in the list.
  Adding a different type of object, or string, to the list is not permitted
  and will result in a Tcl error.

Arguments:

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  get_wires based on property values on the wires. You can find the
  properties on an object with the report_property or list_property commands.
  Any property/value pair can be used as a filter. In the case of the wire
  object, "NAME", "NUM_DOWNHILL_PIPS" and "NUM_UPHILL_PIPS" are some of the
  properties that can be used to filter results.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -of_objects <args> - (Optional) Return the wires of the specified nodes,
  PIPs, or tiles.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Return wires matching the specified search
  patterns. The default pattern is the wildcard `*` which gets a list of all
  wires in the design. More than one search pattern can be specified to find
  wires based on different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example returns the wires associated with the specified tile:

    get_wires -of_objects [get_tiles IO_INT_INTERFACE_L_X0Y198] 
    

See Also:

   *  get_nodes
   *  get_pips
   *  get_tiles
   *  list_property
   *  report_property


@@@COMMAND: gets@@@
gets(n)               Tcl Built-In Commands               gets(n)



_________________________________________________________________

NAME
       gets - Read a line from a channel

SYNOPSIS
       gets channelId ?varName?
_________________________________________________________________


DESCRIPTION
       This  command  reads the next line from channelId, returns
       everything in the line up to (but not including) the  end-
       of-line character(s), and discards the end-of-line charac-
       ter(s).

       ChannelId must be an identifier for an open  channel  such
       as  the  Tcl  standard  input  channel (stdin), the return
       value from an invocation of open or socket, or the  result
       of a channel creation command provided by a Tcl extension.
       The channel must have been opened for input.

       If varName is omitted the line is returned as  the  result
       of  the command.  If varName is specified then the line is
       placed in the variable by that name and the  return  value
       is a count of the number of characters returned.

       If  end  of file occurs while scanning for an end of line,
       the command returns whatever input is available up to  the
       end  of  file.   If  channelId  is in nonblocking mode and
       there is not a full line of input available,  the  command
       returns  an  empty  string and does not consume any input.
       If varName is specified and an empty string is returned in
       varName  because of end-of-file or because of insufficient
       data in nonblocking mode, then the  return  count  is  -1.
       Note that if varName is not specified then the end-of-file
       and no-full-line-available  cases  can  produce  the  same
       results  as if there were an input line consisting only of
       the end-of-line character(s).  The eof and  fblocked  com-
       mands can be used to distinguish these three cases.

EXAMPLE
       This example reads a file one line at a time and prints it
       out with the current line number attached to the start  of
       each line.

              set chan [open "some.file.txt"]
              set lineNumber 0
              while {[gets $chan line] >= 0} {
                  puts "[incr lineNumber]: $line"
              }
              close $chan


SEE ALSO
       file(n), eof(n), fblocked(n), Tcl_StandardChannels(3)


KEYWORDS
       blocking,  channel,  end  of file, end of line, line, non-
       blocking, read



Tcl                            7.5                        gets(n)


@@@COMMAND: glob@@@
glob(n)               Tcl Built-In Commands               glob(n)



_________________________________________________________________

NAME
       glob - Return names of files that match patterns

SYNOPSIS
       glob ?switches? pattern ?pattern ...?
_________________________________________________________________


DESCRIPTION
       This  command  performs  file name "globbing" in a fashion
       similar to the csh shell.  It returns a list of the  files
       whose  names  match any of the pattern arguments.  No par-
       ticular order is guaranteed in the list, so  if  a  sorted
       list is required the caller should use lsort.

       If  the  initial  arguments to glob start with - then they
       are treated as switches.  The following switches are  cur-
       rently supported:

       -directory directory
              Search  for  files  which  match the given patterns
              starting  in  the  given  directory.   This  allows
              searching  of directories whose name contains glob-
              sensitive characters without the need to quote such
              characters explicitly.  This option may not be used
              in conjunction with -path, which is used  to  allow
              searching  for  complete file paths whose names may
              contain glob-sensitive characters.

       -join  The remaining pattern arguments are  treated  as  a
              single  pattern  obtained  by joining the arguments
              with directory separators.

       -nocomplain
              Allows an empty list to be returned without  error;
              without  this  switch  an  error is returned if the
              result list would be empty.

       -path pathPrefix
              Search for files with the  given  pathPrefix  where
              the  rest  of  the name matches the given patterns.
              This allows searching for files with names  similar
              to  a  given  file (as opposed to a directory) even
              when the names contain  glob-sensitive  characters.
              This  option  may  not  be used in conjunction with
              -directory.  For example, to find  all  files  with
              the  same  root name as $path, but differing exten-
              sions, you should use  glob  -path  [file  rootname
              $path]  .*  which  will work even if $path contains
              numerous glob-sensitive characters.

       -tails Only return the part of each file found which  fol-
              lows  the last directory named in any -directory or
              -path path specification.  Thus glob -tails -direc-
              tory  $dir  *  is  equivalent to set pwd [pwd] ; cd
              $dir ; glob *; cd $pwd.  For -path  specifications,
              the  returned names will include the last path seg-
              ment,  so  glob   -tails   -path   [file   rootname
              ~/foo.tex]  .*   will  return  paths  like  foo.aux
              foo.bib foo.tex etc.

       -types typeList
              Only list files or directories  which  match  type-
              List,  where  the items in the list have two forms.
              The first form is like the -type option of the Unix
              find  command: b (block special file), c (character
              special file), d (directory),  f  (plain  file),  l
              (symbolic  link),  p  (named  pipe), or s (socket),
              where multiple types may be specified in the  list.
              Glob will return all files which match at least one
              of the types given.  Note that symbolic links  will
              be  returned  both  if -types l is given, or if the
              target of a link matches the requested type.  So, a
              link  to  a  directory will be returned if -types d
              was specified.

              The second form specifies types where all the types
              given  must  match.  These are r, w, x as file per-
              missions, and readonly, hidden as  special  permis-
              sion cases.  On the Macintosh, MacOS types and cre-
              ators are also supported, where any item  which  is
              four  characters long is assumed to be a MacOS type
              (e.g. TEXT).  Items which are of the  form  {macin-
              tosh  type  XXXX}  or {macintosh creator XXXX} will
              match types or creators respectively.  Unrecognized
              types,   or   specifications   of   multiple  MacOS
              types/creators will signal an error.

              The two forms may be mixed, so -types  {d  f  r  w}
              will  find  all  regular  files OR directories that
              have both read AND write permissions.  The  follow-
              ing are equivalent:
                             glob -type d *
                             glob */
              except  that  the  first  case  doesn't  return the
              trailing "/" and is more platform independent.

       --     Marks the end of switches.  The argument  following
              this  one  will  be treated as a pattern even if it
              starts with a -.

       The pattern arguments may contain  any  of  the  following
       special characters:

       ?         Matches any single character.

       *         Matches any sequence of zero or more characters.

       [chars]   Matches any single character in chars.  If chars
                 contains  a  sequence  of  the form a-b then any
                 character  between  a  and  b  (inclusive)  will
                 match.

       \x        Matches the character x.

       {a,b,...} Matches any of the strings a, b, etc.

       On  Unix, as with csh, a "."  at the beginning of a file's
       name or just after a "/" must  be  matched  explicitly  or
       with  a  {}  construct,  unless  the -types hidden flag is
       given (since "."  at the beginning of a file's name  indi-
       cates  that  it  is  hidden).   On  other platforms, files
       beginning with a "."  are handled no  differently  to  any
       others,  except  the  special  directories  "."   and ".."
       which must be matched  explicitly  (this  is  to  avoid  a
       recursive pattern like "glob -join * * * *" from recursing
       up the directory hierarchy as well as down). In  addition,
       all "/" characters must be matched explicitly.

       If  the first character in a pattern is "~" then it refers
       to the home directory for the user whose name follows  the
       "~".   If  the "~" is followed immediately by "/" then the
       value of the HOME environment variable is used.

       The glob command differs from csh globbing  in  two  ways.
       First,  it  does  not  sort its result list (use the lsort
       command if you want the list sorted).  Second,  glob  only
       returns the names of files that actually exist;  in csh no
       check for existence is made unless a pattern contains a ?,
       *, or [] construct.

       When  the  glob command returns relative paths whose file-
       names start with a tilde "~" (for example through  glob  *
       or glob -tails, the returned list will not quote the tilde
       with "./".  This means care must be taken if  those  names
       are  later  to be used with file join, to avoid them being
       interpreted as absolute paths pointing to a  given  user's
       home directory.

PORTABILITY ISSUES
       Windows  For  Windows UNC names, the servername and share-
       name components of the path may not contain ?,  *,  or  []
       constructs.   On  Windows  NT,  if  pattern is of the form
       "~username@domain", it refers to the home directory of the
       user whose account information resides on the specified NT
       domain server.  Otherwise,  user  account  information  is
       obtained  from  the local computer.  On Windows 95 and 98,
       glob accepts patterns like ".../" and "..../" for  succes-
       sively higher up parent directories.

       Since the backslash character has a special meaning to the
       glob command, glob patterns containing Windows style  path
       separators  need  special  care. The pattern C:\\foo\\* is
       interpreted as C:\foo\* where \f  will  match  the  single
       character  f  and \* will match the single character * and
       will not be interpreted as a wildcard character. One solu-
       tion  to  this  problem  is  to use the Unix style forward
       slash as a path separator. Windows style paths can be con-
       verted  to  Unix  style  paths  with the command file join
       $path (or file normalize $path in Tcl 8.4).

EXAMPLES
       Find all the Tcl files in the current directory:
              glob *.tcl

       Find all the Tcl files in the user's home directory, irre-
       spective of what the current directory is:
              glob -directory ~ *.tcl

       Find all subdirectories of the current directory:
              glob -type d *

       Find  all  files  whose name contains an "a", a "b" or the
       sequence "cde":
              glob -type f *{a,b,cde}*


SEE ALSO
       file(n)


KEYWORDS
       exist, file, glob, pattern



Tcl                            8.3                        glob(n)


@@@COMMAND: global@@@
global(n)             Tcl Built-In Commands             global(n)



_________________________________________________________________

NAME
       global - Access global variables

SYNOPSIS
       global varname ?varname ...?
_________________________________________________________________


DESCRIPTION
       This  command has no effect unless executed in the context
       of a proc body.  If the global command is executed in  the
       context  of a proc body, it creates local variables linked
       to the corresponding global variables (though these linked
       variables,  like  those created by upvar, are not included
       in the list returned by info locals).

       If varname contains namespace qualifiers, the local  vari-
       able's  name  is  the unqualified name of the global vari-
       able, as determined by the namespace tail command.

       varname is always treated as the name of a  variable,  not
       an  array element.  An error is returned if the name looks
       like an array element, such as a(b).

EXAMPLES
       This procedure sets the namespace variable ::a::x
              proc reset {} {
                  global a::x
                  set x 0
              }

       This procedure accumulates the strings passed to it  in  a
       global  buffer,  separated  by newlines.  It is useful for
       situations when you want to build a message piece-by-piece
       (as  if  with puts) but send that full message in a single
       piece (e.g. over a connection opened  with  socket  or  as
       part of a counted HTTP response).
              proc accum {string} {
                  global accumulator
                  append accumulator $string \n
              }


SEE ALSO
       namespace(n), upvar(n), variable(n)


KEYWORDS
       global, namespace, procedure, variable



Tcl                                                     global(n)


@@@COMMAND: group_path@@@
group_path

Description: 
Groups paths for cost function calculations

Syntax: 
group_path  [-name <args>] [-weight <arg>] [-default] [-from <args>]
            [-to <args>] [-through <args>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-name]     The name of group, can be multiple names
  [-weight]   Cost function Weight, Valid values are 1, 2
              Default: 1.0
  [-default]  Restore path to its default group
  [-from]     Filter by paths starting at these path startpoints
  [-to]       Filter by paths terminating at these path endpoints
  [-through]  Consider paths through pins, cells or nets
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  This command lets you group a set of paths for cost function calculations,
  primarily for timing analysis. The Vivado tool automatically defines path
  groups of clock signals for special handling. User-defined path groups can
  be specified generally as from a startpoint, or to an endpoint, or as
  specific paths from-through-to specific points. Once a path group has been
  created, some timing analysis can be performed against it with the
  report_timing command.

  You can specify a weight for an existing path group of clocks, and let the
  placement, routing, and optimization engines prioritize those paths first.

  To remove a path from a path group, you must specify the -default option to
  remove the path from a named path group and restore the path to the
  standard "default" path group.

  This option has the following limitations:

   *  For paths originally assigned by the tool to a clock path group, the
      -default option will revert those paths to the clock path group instead
      of reverting them to the "default" path group.

   *  group_path -default and reset_path are completely independent commands.
      The reset_path command doesn't affect path groups, and the group_path
      command doesn't affect other timing exceptions .

  The path groups currently defined in a design can be found by using the
  get_path_groups command.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -name <arg> - (Optional) Specifies the name of the path group. If the path
  group name already exists, the specified paths will be added to the
  existing group.

  -weight [ 1 | 2 ] - (Optional) Specify the priority of real clock path
  groups with a value of 1 for standard priority, or 2 for high priority.
  High priority path groups are processed first during placement, routing,
  and physical optimization. The default is 1, or standard priority.

  Note: The -weight option is only supported for use with clock path groups,
  and requires the use of -name to specify the path group. It is not
  supported for use with user-defined path groups, or with -from/-through/-to
  options.

  -default - (Optional) Restores a path group back to the "default" group,
  which contains all paths not assigned to other group. This option cannot be
  specified with -name or -weight. The path must be specified by
  -from/-through/-to as it was initially defined when assigned to a path
  group.

  -from <args> - (Optional) Include paths starting at the specified
  startpoints. The startpoints can be specified as pins, ports, or clocks.

  -through <element_names> - (Optional) Include paths routed through the
  specified pins, cells, or nets.

  -to <path_names> - (Optional) Include all paths to the specified endpoints.
  Endpoints can be specified as pins, ports, or clocks.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example creates a group named signal_grp to the specified
  registers' endpoints matching *signal*reg/D, and then reports timing on the
  specified group:

    group_path -to [get_pins *signal*reg/D -hierarchical] -name signal_grp  
    report_timing -group signal_grp 
    

  The path group signal_grp is also returned by the get_path_groups command:

    get_path_groups signal_grp 
    

  The following example removes the path from the signal_grp, restoring it to
  the default path group:

    group_path -to [get_pins *signal*reg/D -hierarchical] -default 
    

See Also:

   *  get_path_groups
   *  report_timing
   *  reset_path


@@@COMMAND: has_dedicated_connection@@@
has_dedicated_connection

Description: 
checks dedicated connectivity 

Syntax: 
has_dedicated_connection  [-of_objects <args>] [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Accepts only boundary pins of an instance as input
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 



@@@COMMAND: help@@@
help

Description: 
Display help for one or more topics

Syntax: 
help  [-category <arg>] [-args] [-syntax] [-long] [-prop <arg>] [-class <arg>]
      [-message <arg>] [-quiet] [-verbose] [<pattern_or_object>]

Usage: 
  Name                   Description
  ----------------------------------
  [-category]            Search for topics in the specified category
  [-args]                Display arguments description
  [-syntax]              Display syntax description
  [-long]                Display long help description
  [-prop]                Display property help for matching property names
                         Default: *
  [-class]               Display object type help
  [-message]             Display information about the message with the given 
                         message. Every message delivered by the tool has a 
                         unique global message ID that consists of an 
                         application sub-system code and a message identifier. 
                         Example: -message {Common 17-8}.
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution
  [<pattern_or_object>]  Display help for topics that match the specified 
                         pattern
                         Default: *

Categories: 
Project

Description:

  Returns a long description of the specified Tcl command; or a list of
  available AMD Tcl command categories; or a list of commands matching a
  specific pattern.

  The default help command without any arguments returns a list of Tcl
  command categories that can be further explored. Command categories are
  groups of commands performing a specific function, like File I/O commands
  for instance.

  Available options for the help command can return just the command syntax
  for a quick reminder of how the command should be structured; the command
  syntax and a brief description of each argument; or the long form of the
  command with more detailed descriptions and examples of the command.

  To limit the memory usage of the AMD Vivado Design Suite, some features of
  the tool are only loaded into memory when that feature set is used. To
  access the complete list of Tcl commands and help text associated with a
  given feature, you must load the feature into memory using the
  load_features command.

  The help command can also return any available information related to
  various properties assignable to design objects. Use the -prop and -class
  options to return help information for properties.

  This command returns the specified help text, or an error.

Arguments:

  -category <arg> - (Optional) Get a list of the commands grouped under the
  specified command category.

  -args - (Optional) Get abbreviated help text for the specified command. The
  default is to return the extended help for the specified command. Use this
  argument to keep it brief.

  -syntax - (Optional) Returns only the syntax line for the command as a
  quick reminder of the proper form for using the command.

  -long - (Optional) Returns the extended help description for the command,
  including the syntax, a brief description of the arguments, and a more
  detailed description of the command with examples. This is the default
  setting for the help command.

  -prop <arg> - (Optional) Return the specified property of an object class,
  or the properties assigned to a specific object in the current design.

  Note: This option requires the use of -class, or the specification of a
  single design object.

  -class <arg> - (Optional) Return information related to the specified class
  of objects.

  -message <arg> - (Optional) Return information related to the specified
  message. Messages are specified in the form of a unique global message ID,
  that consists of an application sub-system code and a message identifier:
  "Common 17-24", or {Common 17-24}. Refer to the set_msg_config command for
  more information.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pattern_or_object> - (Optional) Returns information related to the
  specified command, or a list of commands that match the specified pattern.

  Note: A Vivado first class object, like a cell or site, must be specified
  when used with -class and -prop to return information about properties.

Examples: The following example returns a list of AMD Tcl command categories:

    help

  This example loads the simulator feature of the Vivado Design Suite, and
  then returns a list of Tcl commands in the simulation and waveform
  categories:

    load_features simulator
    help -category simulation
    help -category waveform

  Returns a list of all commands matching the specified search pattern:

    help *file*

  This list can be used to quickly locate a command for a specific purpose,
  such as remove_files or delete_files.

  The following help command returns a long description of the remove_files
  command and its arguments:

    help remove_files

  Note: You can also use the -args option to get a brief description of the
  command.

  This example defines a procedure called short, and returns the -args form
  of help for the specified command:

    proc short cmdName {help -args $cmdName}

  Note: You can add this procedure to your init.tcl file to load this command
  every time the tool is launched. Refer to Chapter 1, Introduction of the
  Vivado Design Suite Tcl Command Reference (UG835) for more information on
  the init.tcl file.

  The following examples show how to obtain help for properties of design
  objects, or a class of design objects:

    help -class cell -prop NAME
    help -prop NAME [get_cells cpuEngine]

  Note: In the preceding example, the first command returns general
  information related to the NAME property, while the second command also
  returns the value of the NAME property on the specified design object.

See Also:

   *  get_cells

   *  list_features

   *  list_property

   *  load_features

   *  report_property

   *  set_msg_config


@@@COMMAND: highlight_objects@@@
highlight_objects

Description: 
Highlight objects in different colors

Syntax: 
highlight_objects  [-color_index <arg>] [-rgb <args>] [-color <arg>]
                   [-leaf_cells] [-quiet] [-verbose] <objects>

Usage: 
  Name            Description
  ---------------------------
  [-color_index]  Color index
  [-rgb]          RGB color index list
  [-color]        Valid values are red green blue magenta yellow cyan and 
                  orange
  [-leaf_cells]   Leaf cells
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <objects>       Objects to highlight

Categories: 
GUIControl

Description:

  Highlights the specified or selected object or objects in a color as
  determined by one of the available color options.

  Note: Only one of the available color option should be used to specify the
  highlight color. However, if more than one color option is used, the order
  of precedence to define the color is -rgb, -color_index, and -color.

  Selected objects are automatically unselected in order to display the
  objects in the specified highlight color. Objects can be unhighlighted with
  the unhighlight_objects command.

Arguments:

  -color_index <arg> - (Optional) Valid values are integers from 1 to 20.
  Specifies the color index to use for highlighting the selected object or
  objects. The color indexes are displayed, and can be configured, on the
  Colors > Highlight page of the Tools > Settings dialog box. Refer to the
  Vivado Design Suite User Guide: Using the IDE (UG893) for more information
  on setting colors.

  -rgb <args> - (Optional) The color to use in the form of an RGB code
  specified as {R G B}. For instance, {255 255 0} specifies the color yellow.

  -color <arg> - (Optional) The color to use for highlighting the specified
  object or objects. Supported highlight colors are: red, green, blue,
  magenta, yellow, cyan, and orange.

  Note: White is the color used to display selected objects with the
  select_objects command.

  -leaf_cells <arg> - (Optional) Specifies one or more cell names or objects
  to highlight with the specified color.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) Specifies one or more objects to be highlighted.

Examples:

  The following example highlights the currently selected objects in the
  color red:

    highlight_objects -color red [get_selected_objects] 
    

  This example highlights the specified cells in green:

    highlight_objects -color green -leaf_cells [get_cells cpuEngine/*]

See Also:

   *  get_highlighted_objects
   *  get_marked_objects
   *  get_selected_objects
   *  mark_objects
   *  select_objects
   *  unhighlight_objects


@@@COMMAND: history@@@
history(n)            Tcl Built-In Commands            history(n)



_________________________________________________________________

NAME
       history - Manipulate the history list

SYNOPSIS
       history ?option? ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       The  history  command  performs  one of several operations
       related to recently-executed commands recorded in  a  his-
       tory list.  Each of these recorded commands is referred to
       as an "event".  When specifying an event  to  the  history
       command, the following forms may be used:

       [1]    A number:  if positive, it refers to the event with
              that number (all events are  numbered  starting  at
              1).  If the number is negative, it selects an event
              relative to the current event  (-1  refers  to  the
              previous  event,  -2 to the one before that, and so
              on).  Event 0 refers to the current event.

       [2]    A string:   selects  the  most  recent  event  that
              matches  the  string.   An  event  is considered to
              match the string either if the string is  the  same
              as  the  first  characters  of the event, or if the
              string matches the event in the sense of the string
              match command.

       The history command can take any of the following forms:

       history
              Same as history info, described below.

       history add command ?exec?
              Adds  the command argument to the history list as a
              new event.  If exec is specified  (or  abbreviated)
              then the command is also executed and its result is
              returned.  If exec is not specified then  an  empty
              string is returned as result.

       history change newValue ?event?
              Replaces  the value recorded for an event with new-
              Value.  Event specifies the event to  replace,  and
              defaults to the current event (not event -1).  This
              command is intended for use in commands that imple-
              ment  new forms of history substitution and wish to
              replace the current event (which invokes  the  sub-
              stitution) with the command created through substi-
              tution.  The return value is an empty string.

       history clear
              Erase the history list.  The current keep limit  is
              retained.  The history event numbers are reset.

       history event ?event?
              Returns  the  value  of  the  event given by event.
              Event defaults to -1.

       history info ?count?
              Returns a formatted string (intended for humans  to
              read) giving the event number and contents for each
              of the events in the history list except  the  cur-
              rent  event.   If  count is specified then only the
              most recent count events are returned.

       history keep ?count?
              This command may be used to change the size of  the
              history list to count events.  Initially, 20 events
              are retained in the history list.  If count is  not
              specified, the current keep limit is returned.

       history nextid
              Returns the number of the next event to be recorded
              in the history list.  It is useful for things  like
              printing  the event number in command-line prompts.

       history redo ?event?
              Re-executes the  command  indicated  by  event  and
              returns  its  result.   Event defaults to -1.  This
              command results in history revision:  see below for
              details.

HISTORY REVISION
       Pre-8.0 Tcl had a complex history revision mechanism.  The
       current mechanism is more limited,  and  the  old  history
       operations  substitute and words have been removed.  (As a
       consolation, the clear operation was added.)

       The history option redo results in much  simpler  "history
       revision".   When  this  option  is  invoked then the most
       recent event is modified to eliminate the history  command
       and replace it with the result of the history command.  If
       you want to redo an event without modifying history,  then
       use  the  event  operation to retrieve some event, and the
       add operation to add it to history and execute it.

KEYWORDS
       event, history, record



Tcl                                                    history(n)


@@@COMMAND: if@@@
if(n)                 Tcl Built-In Commands                 if(n)



_________________________________________________________________

NAME
       if - Execute scripts conditionally

SYNOPSIS
       if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ...
       ?else? ?bodyN?
_________________________________________________________________


DESCRIPTION
       The if command evaluates expr1 as an  expression  (in  the
       same  way that expr evaluates its argument).  The value of
       the expression must be a boolean (a numeric value, where 0
       is  false  and anything is true, or a string value such as
       true or yes for true and false or no for false); if it  is
       true  then  body1  is  executed  by  passing it to the Tcl
       interpreter.  Otherwise expr2 is evaluated as  an  expres-
       sion  and if it is true then body2 is executed, and so on.
       If none of the expressions evaluates to true then bodyN is
       executed.  The then and else arguments are optional "noise
       words" to make the command easier to read.  There  may  be
       any  number  of elseif clauses, including zero.  BodyN may
       also be omitted as long  as  else  is  omitted  too.   The
       return  value  from  the command is the result of the body
       script that was executed, or an empty string  if  none  of
       the expressions was non-zero and there was no bodyN.

EXAMPLES
       A simple conditional:
              if {$vbl == 1} { puts "vbl is one" }

       With an else-clause:
              if {$vbl == 1} {
                 puts "vbl is one"
              } else {
                 puts "vbl is not one"
              }

       With an elseif-clause too:
              if {$vbl == 1} {
                 puts "vbl is one"
              } elseif {$vbl == 2} {
                 puts "vbl is two"
              } else {
                 puts "vbl is not one or two"
              }

       Remember,  expressions can be multi-line, but in that case
       it can be a good idea to use the optional then keyword for
       clarity:
              if {
                 $vbl == 1 || $vbl == 2 || $vbl == 3
              } then {
                 puts "vbl is one, two or three"
              }


SEE ALSO
       expr(n), for(n), foreach(n)


KEYWORDS
       boolean, conditional, else, false, if, true



Tcl                                                         if(n)


@@@COMMAND: implement_debug_core@@@
implement_debug_core

Description: 
Implement debug core

Syntax: 
implement_debug_core  [-quiet] [-verbose] [<cores>...]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<cores>]   Debug core

Categories: 
Debug

Description:

  Implements the AMD Vivado logic analyzer debug cores in the current
  project. The tools will be run once for any ILA debug cores specified, and
  run one more time for the Debug Hub core if all cores are specified. The
  ILA core (labtools_ila_v3) is the only core type currently supported by the
  create_debug_core command. The tool automatically adds a Debug Hub core
  (labtools_xsdbmasterlib_v2) to contain and configure the ILA cores in the
  project.

  The Vivado tool creates Debug Hub core and ILA cores initially as black
  boxes. These cores must be implemented prior to running through place and
  route. After the core is created with create_debug_core, and while ports
  are being added and connected with create_debug_port and
  connect_debug_port, the content of the debug core is not defined or visible
  within the design.

  Debug core implementation is automatic when you launch an implementation
  run using the launch_runs command, or during design optimization using
  opt_design. However, you can also use the implement_debug_core command to
  implement one or more of the cores in the design without having to
  implement the whole design.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cores> - (Optional) One or more debug cores to implement. All debug cores
  will be implemented if no cores are specified.

Examples:

  The following example implements all debug cores in the current project:

    implement_debug_core [get_debug_cores]

See Also:

   *  connect_debug_port
   *  create_debug_core
   *  create_debug_port
   *  get_debug_cores
   *  launch_runs


@@@COMMAND: implement_mig_cores@@@
implement_mig_cores

Description: 
Call IP Services to regenerate an IP, then stitch it into the current netlist

Syntax: 
implement_mig_cores  [-output_dir <arg>] [-rtl_only] [-force] [-debug_output]
                     [-quiet] [-verbose]

Usage: 
  Name             Description
  ----------------------------
  [-output_dir]    Target Output Directory for PHY IP Generated Files
                   Default: empty
  [-rtl_only]      Run the complete process to generate the PHY RTL code but 
                   do not replace the PHY core netlist
  [-force]         Implement all non-optimized memory cores.  When use with 
                   -rtl_only, optimized cores will be included, as well.
  [-debug_output]  Enable debugging output.
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution

Categories: 
Memory

Description:

  Implements the memory IP cores in the current project.

  Memory IP included in the AMD Vivado Design Suite IP catalog are used to
  generate memory controllers and interfaces for AMD devices. Memory IP
  includes different IP cores from the Vivado IP catalog depending on the
  device architecture and memory interface specified. Refer to Zynq-7000 SoC
  and 7 Series Devices Memory Interface Solutions (UG586), or UltraScale
  Architecture-Based FPGAs Memory Interface Solutions (PG150), for details of
  the available memory IP.

  The implement_mig_cores command generates the RTL information for the
  physical interface (PHY) of the memory controller, and integrates the
  synthesized netlist of the memory controller into the top-level design.

  A memory controller can be debug enabled when added into the design from
  the IP catalog. In the AMD Vivado logic analyzer, or the Vivado Lab
  Edition, memory controllers implemented into a design are associated with
  hw_mig objects, one hw_mig object per debug-enabled memory controller. The
  hw_mig object will have all the properties needed to get the calibration
  status and draw the per-bit eye margin views.

  Implementation of the memory IP, and debug core, is automatic when you
  launch an implementation run using the launch_runs command, or when you run
  opt_design. However, you can also use the implement_mig_cores command to
  integrate the memory IP without having to implement the whole design.

  Tip: All pins of the memory controller must be assigned prior to running
  the implement_mig_cores command, or an error will be returned. You can use
  report_drc to check the status of the memory controller.

  This command returns a transcript of its process, or returns an error if it
  fails.

Arguments:

  -output_dir <arg> - (Optional) Specify the output directory for the
  generated output products of the memory IP. If -outputdir is not specified,
  the output will be written to the current project folders.

  -rtl_only - (Optional) Generate only the PHY RTL information for the memory
  controller.

  -force - (Optional) Force the implementation of the memory IP even if it is
  up-to-date.

  -debug_output - (Optional) Enable the debugging feature of the memory IP.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example implements the memory IP cores in the current design:

    implement_mig_cores

See Also:

   *  commit_hw_mig
   *  get_hw_migs
   *  launch_runs
   *  opt_design
   *  refresh_hw_mig
   *  report_hw_mig


@@@COMMAND: implement_xphy_cores@@@
implement_xphy_cores

Description: 
Call IP Services to regenerate an IP, then stitch it into the current netlist

Syntax: 
implement_xphy_cores  [-output_dir <arg>] [-rtl_only] [-force] [-debug_output]
                      [-update_delay_value_only] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-output_dir]               Target Output Directory for PHY IP Generated 
                              Files
                              Default: empty
  [-rtl_only]                 Run the complete process to generate the PHY 
                              RTL code but do not replace the PHY core 
                              netlist
  [-force]                    Implement all non-optimized memory cores.  When
                              use with -rtl_only, optimized cores will be 
                              included, as well.
  [-debug_output]             Enable debugging output.
  [-update_delay_value_only]  Update latest Delay value.
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Memory


@@@COMMAND: import_files@@@
import_files

Description: 
Import files and/or directories into the active fileset

Syntax: 
import_files  [-fileset <arg>] [-force] [-of_objects <args>] [-norecurse]
              [-flat] [-relative_to <arg>] [-quiet] [-verbose] [<files>...]

Returns: 
A list of file objects that were imported

Usage: 
  Name            Description
  ---------------------------
  [-fileset]      Fileset name
  [-force]        Overwrite files of the same name in project directory
  [-of_objects]   RMs to import the files to
  [-norecurse]    Disables the default behavior of recursive directory 
                  searches
  [-flat]         Import the files into a flat directory structure
  [-relative_to]  Import the files with respect to the given relative 
                  directory
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<files>]       Name of the files to import into fileset

Categories: 
Project, Simulation

Description:

  Imports one or more files or the source file contents of one or more
  directories to the specified fileset.

  For every file added to a project the Vivado Design Suite attempts to store
  and maintain both a relative path and an absolute path to the file or
  directory. When a project is opened, these paths are used to locate the
  files and directories. By default the Vivado Design Suite applies a
  Relative First approach to resolving paths, searching the relative path
  first, then the absolute path. You can use the PATH_MODE property to change
  how the Vivado tool resolves file paths or properties for specific objects.
  For more information, see the Vivado Design Suite Properties Reference
  Guide (UG912).

  Note: Importing multiple files one at a time can cause noticeable
  performance degradation. It is more efficient to use a single import_files
  command to import a list of files:

    import_files {file1 file2 file3 ... fileN} 
    

  This command is different from the add_files command, which adds files by
  reference into the specified fileset. This command imports the files into
  the local project folders under project.srcs\<fileset>\imports and then
  adds the file to the specified fileset.

Arguments:

  -fileset <name> - (Optional) The fileset to which the specified source
  files should be added. If the specified fileset does not exist, the tool
  will return an error. If no fileset is specified the files will be added to
  the source fileset by default.

  -force - (Optional) Overwrite files of the same name in the local project
  directory and in the fileset.

  -norecurse - (Optional) Do not recurse through subdirectories of any
  specified directories. Without this argument the tool will also search
  through any subdirectories for additional source files that can be added to
  a project.

  -flat - (Optional) Import all files into the imports folder without
  preserving their relative paths. By default the directory structure of
  files is preserved as they are imported into the design.

  -relative_to <arg> - (Optional) Import the files relative to the specified
  directory. This allows you to preserve the path to the imported files in
  the directory structure of the local project. The files will be imported to
  the imports folder with the path relative to the specified directory.

  Note: The -relative_to argument is ignored if the -flat argument is also
  specified. The -flat command eliminates the directory structure of the
  imported files.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Optional) One or more file names or directory names to be added
  to the specified fileset. If a directory name is specified, all valid
  source files found in the directory, and in subdirectories of the
  directory, will be added. If no files are specified, the tool imports files
  in the source set for the current project.

  Note: If the path is not specified as part of the file name, the current
  working directory is used, or the directory from which the tool was
  launched.

Examples:

  The following example imports the top.ucf file into the constrs_1
  constraint fileset.

    import_files -fileset constrs_1 top.ucf  
    

  The following example imports the valid source files into the source
  fileset (sources_1) as a default since the -fileset argument is not
  specified. In addition, the -norecurse argument restricts the tool to
  looking only in the specified \level1 directory and not searching any
  subdirectories. All valid source files will be imported into the \imports
  folder of the project because the -flat argument has been specified.

    import_files C:/Data/FPGA_Design/level1 -norecurse -flat  
    

  Note: Without the -flat option a \level1 directory would be created inside
  of the \imports folder of the project.

  The following example imports files into the source fileset (sources_1)
  because the -fileset argument is not specified. Valid source files are
  imported from the \level1 directory, and all subdirectories, and the files
  will be written into the \imports folder of the project starting at the
  \Data directory due to the use of the -relative_to argument.

    import_files C:/Data/FPGA_Design/level1 -relative_to C:/Data  
    

See Also:

   *  add_files


@@@COMMAND: import_ip@@@
import_ip

Description: 
Import an IP file and add it to the fileset

Syntax: 
import_ip  [-srcset <arg>] [-name <arg>] [-quiet] [-verbose] [<files>]

Returns: 
list of file objects that were added

Usage: 
  Name        Description
  -----------------------
  [-srcset]   (Optional) Specifies the source file set containing the objects
              to be upgraded
              Default: The current source fileset
              Values: Source set name
  [-name]     (Optional) Specifies a replacement name for the imported IP; 
              may not be used with multiple files.
              Default: The current name for the imported IP
              Values: The new name for the imported IP
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<files>]   Names of the IP files to be imported
              Values: A list of XCI (and/or XCO) file name(s)

Categories: 
Project, IPFlow

Description:

  Adds an existing XCI or XCO file as an IP source into the current project,
  and copies it into the local project directory structure.

  The import_ip command allows you to read existing IP files directly, and
  copy them into the local project folders. Use the read_ip or add_files
  command to add IP files by reference into the current project.

  Use the create_ip command to create new IP files from the current IP catalog.

Arguments:

  -srcset <arg> - (Optional) Specifies the source file set to import the IP
  files into. If not specified, the default source file set is sources_1.

  -name <arg> - (Optional) The name to assign to the IP object as it is added
  to the current source fileset. This option can only be used when a single
  file is specified in <files>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Optional) The names of the IP files to be imported into the
  current project. Each IP must be in the form of an existing XCI file or XCO
  file. An XCI file is an IP-XACT format file that contains information about
  the IP parameterization. An XCO file is a CORE Generator log file that
  records all the customization parameters used to create the IP core and the
  project options in effect when the core was generated. The XCI or XCO files
  are used to recreate the core in the current project.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example copies the 10gig ethernet core into the current
  project, and assigns it a name of IP_block1:

    import_ip C:/Data/FPGA_Design/10gig_eth.xci -name IP_block1 
    

See Also:

   *  add_files
   *  create_ip
   *  generate_target
   *  read_ip


@@@COMMAND: import_synplify@@@
import_synplify

Description: 
Imports the given Synplify project file

Syntax: 
import_synplify  [-copy_sources] [-quiet] [-verbose] <file>

Returns: 
list of files object that were imported from the Synplify file

Usage: 
  Name             Description
  ----------------------------
  [-copy_sources]  Copy all the sources from synplify project file into the 
                   created project
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <file>           Name of the Synplify project file to be imported

Categories: 
Project

Description:

  Imports Synplify synthesis project files (.prj) into the current project,
  including the various source files used in the synthesis run.

Arguments:

  -copy_sources - (Optional) Copy Synplify project source files to the local
  project directory structure rather than referencing them from their current
  location. The default is to reference source files from their current
  location.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the Synplify project file from which to
  import the source files.

Examples:

  The following example creates a new project and imports the specified
  Synplify project file, copying the various source files from the Synplify
  project into the local project directories:

    create_project syn_test C:/Data/FPGA_Design/syn_test   
    import_synplify -copy_sources C:/Data/syn_data.prj 
    

See Also:

   *  create_project


@@@COMMAND: import_xise@@@
import_xise

Description: 
Import XISE project file settings into the created project

Syntax: 
import_xise  [-copy_sources] [-quiet] [-verbose] <file>

Returns: 
true

Usage: 
  Name             Description
  ----------------------------
  [-copy_sources]  Copy all ISE sources into the created project
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <file>           Name of the XISE project file to be imported

Categories: 
Project

Description:

  Imports an ISE project file (XISE) into the current project. This allows
  ISE projects to be quickly migrated into the Vivado Design Suite for
  synthesis, simulation, and implementation. All project source files,
  constraint files, simulation files, and run settings are imported from the
  ISE project and recreated in the current project.

  This command should be run on a new empty project. Since source files,
  constraints, and run settings are imported from the ISE project, any
  existing source files or constraints may be overwritten.

Arguments:

  -copy_sources - (Optional) Copy source files in the ISE project to the
  local project directory structure rather than referencing them from their
  current location. The default is to reference source files from their
  current location.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the ISE project file (.XISE) to be imported
  into the current project.

Examples:

  The following example creates a new project called importISE, and then
  imports the ISE project file (first_use.xise) into the new project.

    create_project importISE C:/Data/importISE import_xise \  
    C:/Data/FPGA_design/ise_designs/drp_des/first_use.xise 
    

  Note: This example does not specify the -copy_sources argument, so all
  source files in the ISE project will be added to the current project by
  reference.

See Also:

   *  create_project


@@@COMMAND: import_xst@@@
import_xst

Description: 
Imports the given XST project file

Syntax: 
import_xst  [-copy_sources] [-quiet] [-verbose] <file>

Returns: 
list of files object that were imported from the XST file

Usage: 
  Name             Description
  ----------------------------
  [-copy_sources]  Copy all the sources from xst project file into the 
                   created project
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <file>           Name of the XST project file to be imported

Categories: 
Project

Description:

  Imports XST synthesis project files into the current project, including the
  various source files used in the XST run.

Arguments:

  -copy_sources - (Optional) Copy XST project source files to the local
  project directory structure rather than referencing them from their current
  location. The default is to reference source files from their current
  location.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the XST project file from which to import
  the source files.

Examples:

  The following example creates a new project called xst_test, and imports
  the drp_des.xst file:

    create_project xst_test C:/Data/FPGA_Design/xst_test   
    import_xst C:/Data/ise_designs/drp_des.xst 
    

See Also:

   *  create_project


@@@COMMAND: improve_timing@@@
improve_timing

Description: 
Automatically place ports and leaf-level instances

Syntax: 
improve_timing  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Tools


@@@COMMAND: incr@@@
incr(n)               Tcl Built-In Commands               incr(n)



_________________________________________________________________

NAME
       incr - Increment the value of a variable

SYNOPSIS
       incr varName ?increment?
_________________________________________________________________


DESCRIPTION
       Increments  the value stored in the variable whose name is
       varName.  The value of the variable must  be  an  integer.
       If  increment is supplied then its value (which must be an
       integer) is added to the value of variable varName;   oth-
       erwise  1 is added to varName.  The new value is stored as
       a decimal string in variable varName and also returned  as
       result.

       Starting  with  the  Tcl 8.5 release, the variable varName |
       passed to incr may be unset, and in that case, it will  be |
       set  to  the  value  increment or to the default increment |
       value of 1.

EXAMPLES
       Add one to the contents of the variable x:
              incr x

       Add 42 to the contents of the variable x:
              incr x 42

       Add the contents of the variable y to the contents of  the
       variable x:
              incr x $y

       Add  nothing  at  all  to the variable x (often useful for
       checking whether an argument to a  procedure  is  actually
       integral and generating an error if it is not):
              incr x 0


SEE ALSO
       expr(n)


KEYWORDS
       add, increment, variable, value



Tcl                                                       incr(n)


@@@COMMAND: infer_diff_pairs@@@
infer_diff_pairs

Description: 
Infer differential pairs, typically for ports just imported from a CSV or XDC file

Syntax: 
infer_diff_pairs  [-file_type <arg>] [-quiet] [-verbose] [<file>...]

Usage: 
  Name          Description
  -------------------------
  [-file_type]  Input file type: 'csv' or 'xdc'
                Default: file type
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<file>]      Pin Planning CSV or XDC file
                Default: file

Categories: 
FileIO

Description:

  The infer_diff_pairs command can be used in an I/O Pin Planning project,
  after importing the I/O pin information using the read_csv or read_xdc
  command.

  There are several attributes that identify differential pairs in the file:
  Signal Name, DiffPair Signal, DiffPair Type, and I/O Standard.

  The tool will identify differential pairs using the following methods:

   *  Matching Diff Pair - This is a direct definition of the two signals
      which make up a differential pair. Two port entries, each have DiffPair
      Signal values linking to the Signal Name of the other, and have
      complementary DiffPair Type values, one N and one P. The tool checks to
      ensure that the other attributes such as I/O Standard are compatible
      when forming the diff pair.

   *  Unmatched Diff Pair - Two port entries, with complementary DiffPair
      Type values (one N, one P), but only one port has a DiffPair Signal
      linking to the other Signal Name. The tool will create the differential
      pair if all other attributes are compatible.

   *  Single Port Diff Pair - A single port entry with a differential I/O
      Standard, a DiffPair Type value, and a DiffPair Signal that does not
      otherwise appear in the CSV. The tool will create the opposite side of
      the differential pair (the N or P side), with all properties matching
      those on the original port.

   *  Inferred Diff Pair - Two ports entries, with Signal Names that imply
      the N and P side. The tool will infer a differential pair if all other
      attributes are compatible.

  After reading the port definitions from a CSV or XDC file, the tool will
  report that some differential pairs can be inferred from the data. You can
  run the infer_diff_pairs command to infer these differential pairs if you
  choose.

Arguments:

  -file_type [ csv | xdc ] - (Optional) Specify the type of file to import
  when inferring differential pairs. The valid file types are CSV and XDC.
  There is no default; the -file_type must be specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Optional) The name of the file previously imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example imports the specified XDC file, and then infers
  differential pairs from the file:

    read_xdc C:/Vivado_Install/io_1.xdc  
    infer_diff_pairs C:/Vivado_Install/io_1.xdc -file_type xdc 
    

See Also:

   *  read_csv
   *  read_xdc


@@@COMMAND: info@@@
info(n)               Tcl Built-In Commands               info(n)



_________________________________________________________________

NAME
       info  -  Return  information  about  the  state of the Tcl
       interpreter

SYNOPSIS
       info option ?arg arg ...?
_________________________________________________________________


DESCRIPTION
       This command provides information about various  internals
       of  the  Tcl interpreter.  The legal options (which may be
       abbreviated) are:

       info args procname
              Returns a list containing the names  of  the  argu-
              ments  to  procedure  procname, in order.  Procname
              must be the name of a Tcl command procedure.

       info body procname
              Returns the body of procedure  procname.   Procname
              must be the name of a Tcl command procedure.

       info cmdcount
              Returns  a  count  of  the total number of commands
              that have been invoked in this interpreter.

       info commands ?pattern?
              If pattern is not  specified,  returns  a  list  of |
              names  of  all  the Tcl commands visible (i.e. exe- |
              cutable without using a qualified name) to the cur- |
              rent  namespace,  including  both the built-in com- |
              mands written  in  C  and  the  command  procedures |
              defined  using  the  proc  command.   If pattern is |
              specified, only those names  matching  pattern  are |
              returned.   Matching  is  determined using the same |
              rules as for string match.  pattern can be a quali- |
              fied  name like Foo::print*.  That is, it may spec- |
              ify a particular  namespace  using  a  sequence  of |
              namespace  names  separated  by double colons (::), |
              and may have pattern matching special characters at |
              the end to specify a set of commands in that names- |
              pace.  If pattern is a qualified name, the  result- |
              ing  list  of  command names has each one qualified |
              with the name of the specified namespace, and  only |
              the  commands  defined  in  the named namespace are |
              returned.

       info complete command
              Returns 1 if command is a complete Tcl  command  in
              the  sense  of  having  no unclosed quotes, braces,
              brackets or array element names.   If  the  command
              does  not appear to be complete then 0 is returned.
              This command is  typically  used  in  line-oriented
              input  environments  to allow users to type in com-
              mands that span multiple lines;  if the command  is
              not  complete,  the  script can delay evaluating it
              until additional lines have been typed to  complete
              the command.

       info default procname arg varname
              Procname  must  be the name of a Tcl command proce-
              dure and arg must be the name  of  an  argument  to
              that  procedure.   If  arg  does not have a default
              value then the command  returns  0.   Otherwise  it
              returns  1 and places the default value of arg into
              variable varname.

       info exists varName
              Returns 1 if the variable named varName  exists  in
              the  current  context  (either as a global or local
              variable) and has been defined  by  being  given  a
              value, returns 0 otherwise.

       info frame ?number?
              This  command  provides access to all frames on the
              stack, even those hidden from info level. If number
              is  not  specified,  this  command returns a number
              giving the frame level of the command. This is 1 if
              the  command  is invoked at top-level. If number is
              specified, then the result is a dictionary contain-
              ing the location information for the command at the
              numbered level on the stack.

              If number is positive (> 0) then it selects a  par-
              ticular  stack  level  (1  refers  to  the top-most
              active command, i.e., info frame itself, 2  to  the
              command  it  was called from, and so on); otherwise
              it gives a level relative to the current command (0
              refers  to  the  current  command, i.e., info frame
              itself, -1 to its caller, and so on).

              This is similar to how  info  level  works,  except
              that  this  subcommand  reports  all  frames,  like
              sourced scripts, evals, uplevels, etc.

              Note that  for  nested  commands,  like  "foo  [bar
              [x]]",  only  "x"  will  be  seen  by an info frame
              invoked within "x".  This is the same as  for  info
              level and error stack traces.

              The  result  dictionary may contain the keys listed
              below, with the specified meanings for  their  val-
              ues:

              type   This  entry  is always present and describes
                     the nature of the location for the  command.
                     The  recognized  values  are  source,  proc,
                     eval, and precompiled.

                     source
                             means that the command is found in a
                             script loaded by the source command.

                     proc
                             means that the command is  found  in
                             dynamically  created procedure body.

                     eval
                             means that the command  is  executed
                             by eval or uplevel.

                     precompiled
                             means that the command is found in a
                             precompiled script (loadable by  the
                             package  tbcload),  and  no  further
                             information will be available.

              line   This entry provides the number of  the  line
                     the command is at inside of the script it is
                     a part of. This information is  not  present
                     for  type  precompiled. For type source this
                     information  is  counted  relative  to   the
                     beginning  of the file, whereas for the last
                     two types the line is  counted  relative  to
                     the start of the script.

              file   This  entry is present only for type source.
                     It provides the normalized path of the  file
                     the command is in.

              cmd    This  entry  provides the string representa-
                     tion of the command.  This  is  usually  the
                     unsubstituted  form,  however  for  commands
                     which are a pure list executed by eval it is
                     the  substituted  form as they have no other
                     string representation. Care  is  taken  that
                     the  pure-List property of the latter is not
                     spoiled.

              proc   This entry is present only if the command is
                     found  in  the  body of a regular Tcl proce-
                     dure. It then provides the name of that pro-
                     cedure.

              lambda This entry is present only if the command is
                     found in the body of an anonymous Tcl proce-
                     dure,  i.e.  a  lambda. It then provides the
                     entire definition of the lambda in question.

              level  This  entry  is  present only if the queried
                     frame has a corresponding frame returned  by
                     info  level.  It  provides the index of this
                     frame, relative to the current level (0  and
                     negative numbers).

              A  thing  of note is that for procedures statically
              defined in files the locations of commands in their
              bodies  will be reported with type source and abso-
              lute line numbers, and not as type proc.  The  same
              is true for procedures nested in statically defined
              procedures, and literal eval scripts  in  files  or
              statically defined procedures.

              In  contrast, a procedure definition or eval within
              a dynamically evaluated environment count  linenum-
              bers relative to the start of their script, even if
              they would be able to count relative to  the  start
              of  the  outer  dynamic script. That type of number
              usually makes more sense.

              A different way of  describing  this  behaviour  is
              that  file based locations are tracked as deeply as
              possible, and where this is not possible the  lines
              are  counted based on the smallest possible eval or
              procedure body, as that scope is usually easier  to
              find than any dynamic outer scope.

              The  syntactic  form {*} is handled like eval. I.e.
              if it is given a literal list argument  the  system
              tracks  the  linenumber  within  the  list words as
              well, and otherwise  all  linenumbers  are  counted
              relative to the start of each word (smallest scope)

       info functions ?pattern?
              If pattern is not specified, returns a list of  all
              the  math  functions currently defined.  If pattern
              is  specified,  only  those  functions  whose  name
              matches  pattern  are returned.  Matching is deter-
              mined using the same rules as for string match.

       info globals ?pattern?
              If pattern is not specified, returns a list of  all
              the  names  of  currently-defined global variables.
              Global variables are variables in the global names-
              pace.   If  pattern  is specified, only those names
              matching pattern are returned.  Matching is  deter-
              mined using the same rules as for string match.

       info hostname
              Returns  the  name  of  the  computer on which this
              invocation is being executed.  Note that this  name
              is  not guaranteed to be the fully qualified domain
              name of the host.  Where machines have several dif-
              ferent  names  (as  is  common on systems with both
              TCP/IP   (DNS)   and    NetBIOS-based    networking
              installed,)  it  is  the  name that is suitable for
              TCP/IP networking that is returned.

       info level ?number?
              If number is not specified, this command returns  a
              number  giving the stack level of the invoking pro-
              cedure, or 0 if the  command  is  invoked  at  top-
              level.   If number is specified, then the result is
              a list consisting of the name and arguments for the
              procedure  call  at  level number on the stack.  If
              number is positive then  it  selects  a  particular
              stack level (1 refers to the top-most active proce-
              dure, 2 to the procedure it  called,  and  so  on);
              otherwise  it gives a level relative to the current
              level (0 refers to the current procedure, -1 to its
              caller,  and  so  on).  See the uplevel command for
              more information on what stack levels mean.

       info library
              Returns the name of the library directory in  which
              standard  Tcl scripts are stored.  This is actually
              the value of the tcl_library variable  and  may  be
              changed  by  setting  tcl_library.  See the tclvars
              manual entry for more information.

       info loaded ?interp?
              Returns a list describing all of the packages  that
              have been loaded into interp with the load command.
              Each list element is a sub-list with  two  elements
              consisting  of  the name of the file from which the
              package was loaded and the  name  of  the  package.
              For  statically-loaded  packages the file name will
              be an empty string.   If  interp  is  omitted  then
              information  is returned for all packages loaded in
              any interpreter in the process.  To get a  list  of
              just the packages in the current interpreter, spec-
              ify an empty string for the interp argument.

       info locals ?pattern?
              If pattern is not specified, returns a list of  all
              the  names  of  currently-defined  local variables,
              including arguments to the  current  procedure,  if
              any.  Variables defined with the global, upvar  and
              variable commands will not be returned.  If pattern
              is specified, only those names matching pattern are
              returned.  Matching is determined  using  the  same
              rules as for string match.

       info nameofexecutable
              Returns  the full path name of the binary file from
              which the application  was  invoked.   If  Tcl  was
              unable  to  identify the file, then an empty string
              is returned.

       info patchlevel
              Returns the value of the global variable tcl_patch-
              Level; see the tclvars manual entry for more infor-
              mation.

       info procs ?pattern?
              If pattern is not specified, returns a list of  all
              the  names of Tcl command procedures in the current
              namespace.  If pattern  is  specified,  only  those
              procedure  names  in the current namespace matching
              pattern are returned.  Matching is determined using
              the  same  rules  as  for string match.  If pattern
              contains any namespace separators, they are used to
              select  a  namespace relative to the current names-
              pace (or relative to the global namespace  if  pat-
              tern  starts with ::) to match within; the matching
              pattern is taken to be  the  part  after  the  last
              namespace separator.

       info script ?filename?
              If  a  Tcl script file is currently being evaluated
              (i.e. there is a call  to  Tcl_EvalFile  active  or
              there  is  an  active invocation of the source com-
              mand), then this command returns the  name  of  the
              innermost  file  being  processed.   If filename is
              specified, then the return value  of  this  command
              will  be  modified  for  the duration of the active
              invocation to return that name.  This is useful  in
              virtual  file  system  applications.  Otherwise the
              command returns an empty string.

       info sharedlibextension
              Returns the extension used on this platform for the
              names  of  files  containing  shared libraries (for
              example, .so under Solaris).  If  shared  libraries
              are  not  supported  on this platform then an empty
              string is returned.

       info tclversion
              Returns the value of the global  variable  tcl_ver-
              sion;  see the tclvars manual entry for more infor-
              mation.

       info vars ?pattern?
              If pattern is not specified, returns a list of  all
              the  names  of  currently-visible  variables.  This
              includes locals and currently-visible globals.   If
              pattern  is  specified,  only  those names matching
              pattern are returned.  Matching is determined using
              the same rules as for string match.  pattern can be
              a qualified name like Foo::option*.   That  is,  it
              may specify a particular namespace using a sequence
              of namespace names separated by double colons (::),
              and may have pattern matching special characters at
              the end to specify  a  set  of  variables  in  that
              namespace.   If  pattern  is  a qualified name, the
              resulting list of variable names has each  matching
              namespace  variable  qualified with the name of its
              namespace.  Note that a currently-visible  variable
              may  not yet "exist" if it has not been set (e.g. a
              variable declared but not set by variable).

EXAMPLE
       This command prints out a procedure suitable for saving in
       a Tcl script:

              proc printProc {procName} {
                  set result [list proc $procName]
                  set formals {}
                  foreach var [info args $procName] {
                      if {[info default $procName $var def]} {
                          lappend formals [list $var $def]
                      } else {
                          # Still need the list-quoting because variable
                          # names may properly contain spaces.
                          lappend formals [list $var]
                      }
                  }
                  puts [lappend result $formals [info body $procName]]
              }

SEE ALSO
       global(n), proc(n)

KEYWORDS
       command,  information, interpreter, level, namespace, pro-
       cedure, variable



Tcl                            8.4                        info(n)


@@@COMMAND: install@@@
install

Description: 
Install board

Syntax: 
install  [-quiet] [-verbose] <board>

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <board>     Name of board to install

Categories: 
Tools


@@@COMMAND: install_encrypted_package@@@
install_encrypted_package

Description: 
Install an IP package previously protected by the encrypt_package command.

Syntax: 
install_encrypted_package  [-repo <arg>] [-force] [-quiet] [-verbose]
                           <archive>...

Usage: 
  Name        Description
  -----------------------
  [-repo]     A directory containing an IP repo where the IP should be 
              installed to.
              Default: cwd
  [-force]    Force the overwrite of an existing output files.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <archive>   Name of file containing the protected IP archive.

Categories: 
FileIO


@@@COMMAND: instantiate_example_design@@@
instantiate_example_design

Description: 
Creates an example design from a predefined template in an open project.

Syntax: 
instantiate_example_design  [-design <arg>] [-hier <arg>] [-project <arg>]
                            [-project_location <arg>] [-options <args>]
                            [-quiet] [-verbose] <template>

Returns: 
Returns the name of the template applied.

Usage: 
  Name                 Description
  --------------------------------
  [-design]            Block Design Name
  [-hier]              Hierarchy Block
  [-project]           Project Name
  [-project_location]  Project location
                       Default: .
  [-options]           Configurable options
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <template>           Configurable Design Name

Categories: 
IPIntegrator

Description:

  This command creates an example design from a predefined template in an
  open project. The target part specified by the open project must be
  compatible with the example design, as defined in the SUPPORTED_PARTS
  property of the example, or an error is returned.

  For the embedded processor example designs, base_microblaze and base_zynq,
  the example design must be created in an open block design in the Vivado IP
  integrator. Embedded processor example designs require the use of a board
  as defined by the BOARD_PART property, rather than a target part. Refer to
  the current_board_part command for more information.

  The command returns the name of the example design used and a transcript of
  commands; or it returns an error if it fails.

Arguments:

  -design <arg> - (Optional) For embedded processor example designs, this
  option specifies the name of the open and current block design to
  instantiate the example design into. This option is required for embedded
  processor example designs. If -design is not specified, an error is
  returned.

  -hier - (Optional) Hierarchy Block

  -options <args> - (Optional) Specify the values of configurable properties
  of the example design.

  Note: The configurable properties (CONFIG.*) of an example design can be
  returned by the report_property or get_property commands.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <template> - Specifies the template design to be instantiated into the
  specified design. The template can be specified by name, or as an object
  returned by the get_example_designs command.

Examples:

  The following example creates a new project as specified, overwriting an
  existing project of the same name if one is found, specifies the BOARD_PART
  property for the project, creates a new empty block design in the Vivado IP
  integrator, and then instantiates the Zynq embedded processor example
  design:

    create_project zynq1 -force  
    set_property BOARD_PART em.avnet.com:zed:1.3 [current_project]  
    create_bd_design myFirstZynq  
    instantiate_example_design -design myFirstZynq \  
    [lindex [get_example_designs] 1] 
    

  This example reports the configurable properties of the specified example
  design:

    
    report_property [lindex [get_example_designs] 3] CONFIG.* 
    

  This example creates a new empty project as specified, sets a target BOARD
  for the project, creates and opens a new empty block design, and then
  instantiates the configurable example design:

    
    create_project mb1 C:/Data/Vivado_Tutorial/Tutorial_Created_Data/mb1   
    set_property board_part xilinx.com:kcu105:part0:1.1 [current_project]  
    create_bd_design design_1  
    instantiate_example_design -design design_1 \  
       -options { Data_Cache.VALUE 8K Include_DDR4.VALUE true \  
       Local_memory.VALUE 128K }\  
    xilinx.com:design:config_mb:1.0    
    

See Also:

   *  create_bd_design
   *  create_project
   *  get_example_designs
   *  set_property


@@@COMMAND: instantiate_template_bd_design@@@
instantiate_template_bd_design

Description: 
Creates a block design in IP integrator from a predefined template.

Syntax: 
instantiate_template_bd_design  -design <arg> [-hier <arg>] [-options <args>]
                                [-quiet] [-verbose] <template>

Returns: 
Returns the name of the template applied.

Usage: 
  Name        Description
  -----------------------
  -design     Block Design Name
  [-hier]     Hierarchy Block
  [-options]  Configurable options
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <template>  Configurable Design Name

Categories: 
IPIntegrator

Description:

  This command creates an example design from a template Block Design in the
  IP integrator of the Vivado Design Suite.

  The template diagram is created in an existing and open block design. In
  addition, the target part specified by the current project or in-memory
  project must be compatible with the template design or an error is
  returned.

  The command returns a transcript of its process, or returns an error if it
  fails.

Arguments:

  -design <arg> - (Required) Specifies the name of the block design to
  instantiate the template diagram into. The specified block design must
  exist and be open in the IP integrator, or an error is returned.

  -hier - (Optional) Hierarchy Block

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <template> - Specifies the template diagram to be instantiated into the
  specified design. The template can be specified by name, or as an object
  specified by the get_template_db_designs command.

Examples:

  The following example builds the specified template block design in the
  specified design:

    instantiate_template_bd_design -design myFirstZynq \  
    [lindex [get_template_bd_designs] 1] 
    

See Also:

   *  get_template_bd_designs


@@@COMMAND: interp@@@
interp(n)             Tcl Built-In Commands             interp(n)



_________________________________________________________________

NAME
       interp - Create and manipulate Tcl interpreters

SYNOPSIS
       interp subcommand ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       This  command  makes it possible to create one or more new
       Tcl interpreters that co-exist with  the  creating  inter-
       preter  in the same application.  The creating interpreter
       is called the master and the new interpreter is  called  a
       slave.  A master can create any number of slaves, and each
       slave can itself create additional slaves for which it  is
       master, resulting in a hierarchy of interpreters.

       Each  interpreter  is  independent from the others: it has
       its own name space for commands,  procedures,  and  global
       variables.   A  master  interpreter may create connections
       between its slaves and itself using a mechanism called  an
       alias.   An  alias  is  a  command  in a slave interpreter
       which, when invoked, causes a command to be invoked in its
       master  interpreter  or in another slave interpreter.  The
       only other connections between  interpreters  are  through
       environment  variables  (the env variable), which are nor-
       mally shared among all interpreters  in  the  application, |
       and  by  resource limit exceeded callbacks.  Note that the
       name space for files (such as the names  returned  by  the
       open  command)  is  no longer shared between interpreters.
       Explicit commands are  provided  to  share  files  and  to
       transfer  references to open files from one interpreter to
       another.

       The interp command also provides support for  safe  inter-
       preters.   A  safe  interpreter is a slave whose functions
       have been greatly restricted, so that it is safe  to  exe-
       cute untrusted scripts without fear of them damaging other
       interpreters or the application's environment.  For  exam-
       ple,  all IO channel creation commands and subprocess cre-
       ation commands are made inaccessible to safe interpreters.
       See  SAFE  INTERPRETERS below for more information on what
       features are present in a safe interpreter.  The dangerous
       functionality  is  not  removed from the safe interpreter;
       instead, it is hidden, so that only  trusted  interpreters
       can  obtain  access  to  it. For a detailed explanation of
       hidden commands, see HIDDEN COMMANDS,  below.   The  alias
       mechanism  can be used for protected communication (analo-
       gous to a kernel call) between a slave interpreter and its
       master.   See ALIAS INVOCATION, below, for more details on
       how the alias mechanism works.

       A qualified interpreter name is a proper  Tcl  lists  con-
       taining a subset of its ancestors in the interpreter hier-
       archy, terminated by the string naming the interpreter  in
       its  immediate  master.  Interpreter names are relative to
       the interpreter in which they are used. For example, if  a
       is  a  slave of the current interpreter and it has a slave
       a1, which in turn has a slave a11, the qualified  name  of
       a11 in a is the list a1 a11.

       The  interp  command,  described  below, accepts qualified
       interpreter names as arguments; the interpreter  in  which
       the  command  is being evaluated can always be referred to
       as {} (the empty list or string). Note that it is impossi-
       ble to refer to a master (ancestor) interpreter by name in
       a slave interpreter except through aliases. Also, there is
       no  global name by which one can refer to the first inter-
       preter created in an application.  Both  restrictions  are
       motivated by safety concerns.

THE INTERP COMMAND
       The  interp command is used to create, delete, and manipu-
       late slave interpreters, and to share or transfer channels
       between  interpreters.   It can have any of several forms,
       depending on the subcommand argument:

       interp alias srcPath srcToken
              Returns a Tcl list whose elements are the targetCmd
              and  args  associated with the alias represented by
              srcToken (this is the value returned when the alias
              was  created;  it  is possible that the name of the
              source command in the slave is different from  src-
              Token).

       interp alias srcPath srcToken {}
              Deletes  the alias for srcToken in the slave inter-
              preter identified by srcPath.  srcToken  refers  to
              the  value returned when the alias was created;  if
              the source command has been  renamed,  the  renamed
              command will be deleted.

       interp  alias srcPath srcCmd targetPath targetCmd ?arg arg
       ...?
              This command creates an alias between one slave and
              another (see the alias slave command below for cre-
              ating  aliases between a slave and its master).  In
              this command, either of the slave interpreters  may
              be  anywhere in the hierarchy of interpreters under
              the interpreter invoking the command.  SrcPath  and
              srcCmd  identify  the source of the alias.  SrcPath
              is a Tcl list whose elements  select  a  particular
              interpreter.   For  example,  "a  b"  identifies an
              interpreter b, which is a slave of  interpreter  a,
              which  is  a slave of the invoking interpreter.  An
              empty list specifies the interpreter  invoking  the
              command.   srcCmd  gives the name of a new command,
              which will be created in  the  source  interpreter.
              TargetPath  and  targetCmd  specify a target inter-
              preter and command, and the arg arguments, if  any,
              specify additional arguments to targetCmd which are
              prepended to any arguments specified in the invoca-
              tion  of srcCmd.  TargetCmd may be undefined at the
              time of this call, or it may already exist;  it  is
              not  created  by  this command.  The alias arranges
              for the given target command to be invoked  in  the
              target  interpreter  whenever the given source com-
              mand is invoked in  the  source  interpreter.   See
              ALIAS  INVOCATION below for more details.  The com-
              mand returns a token that uniquely  identifies  the
              command  created  srcCmd,  even  if  the command is
              renamed afterwards. The token may but does not have
              to be equal to srcCmd.

       interp aliases ?path?
              This  command  returns  a Tcl list of the tokens of
              all the source commands for aliases defined in  the
              interpreter  identified  by path. The tokens corre-
              spond to the values returned when the aliases  were
              created  (which  may not be the same as the current
              names of the commands).

       interp bgerror path ?cmdPrefix?
              This command either gets or sets the current  back- |
              ground error handler for the interpreter identified |
              by path. If cmdPrefix is absent, the current  back- |
              ground  error  handler  is  returned,  and if it is |
              present, it is a list of words (of  minimum  length |
              one)  that  describes what to set the interpreter's |
              background error to. See the BACKGROUND ERROR  HAN- |
              DLING section for more details.

       interp create ?-safe? ?--? ?path?
              Creates  a slave interpreter identified by path and
              a new command, called a slave command. The name  of
              the  slave  command  is the last component of path.
              The new slave interpreter and the slave command are
              created  in  the interpreter identified by the path
              obtained by removing the last component from  path.
              For  example,  if  path  is  a b c then a new slave
              interpreter and slave command named c  are  created
              in the interpreter identified by the path a b.  The
              slave command may be used  to  manipulate  the  new
              interpreter as described below. If path is omitted,
              Tcl creates a unique  name  of  the  form  interpx,
              where  x  is an integer, and uses it for the inter-
              preter and the slave command. If the  -safe  switch
              is  specified  (or  if  the master interpreter is a
              safe interpreter), the new slave  interpreter  will
              be created as a safe interpreter with limited func-
              tionality; otherwise the  slave  will  include  the
              full  set  of  Tcl built-in commands and variables.
              The -- switch can  be  used  to  mark  the  end  of
              switches;   it  may be needed if path is an unusual
              value such as -safe. The result of the  command  is
              the  name  of  the  new  interpreter. The name of a
              slave interpreter must  be  unique  among  all  the
              slaves  for its master;  an error occurs if a slave
              interpreter by the given  name  already  exists  in
              this  master.   The  initial recursion limit of the
              slave interpreter is set to the  current  recursion
              limit of its parent interpreter.

       interp delete ?path ...?
              Deletes  zero  or  more  interpreters  given by the
              optional path arguments, and for each  interpreter,
              it  also  deletes  its  slaves.  The  command  also
              deletes the  slave  command  for  each  interpreter
              deleted.  For each path argument, if no interpreter
              by that name exists, the command raises an error.

       interp eval path arg ?arg ...?
              This command concatenates all of the arg  arguments
              in  the  same  fashion  as the concat command, then
              evaluates the resulting string as a Tcl  script  in
              the  slave  interpreter  identified  by  path.  The
              result of this  evaluation  (including  all  return
              options, such as -errorinfo and -errorcode informa-
              tion, if an error occurs) is returned to the invok-
              ing interpreter.  Note that the script will be exe-
              cuted in the current context  stack  frame  of  the
              path  interpreter;  this is so that the implementa-
              tions (in a master interpreter)  of  aliases  in  a
              slave  interpreter can execute scripts in the slave
              that find out information about the slave's current
              state and stack frame.

       interp exists path
              Returns  1  if a slave interpreter by the specified
              path exists in this master, 0 otherwise. If path is
              omitted, the invoking interpreter is used.

       interp expose path hiddenName ?exposedCmdName?
              Makes  the hidden command hiddenName exposed, even-
              tually bringing it back under a new  exposedCmdName
              name (this name is currently accepted only if it is
              a valid global name space name without any ::),  in
              the  interpreter  denoted  by  path.  If an exposed
              command with the targeted name already exists, this
              command  fails.   Hidden  commands are explained in
              more detail in HIDDEN COMMANDS, below.

       interp hide path exposedCmdName ?hiddenCmdName?
              Makes the exposed  command  exposedCmdName  hidden,
              renaming it to the hidden command hiddenCmdName, or
              keeping the  same  name  if  hiddenCmdName  is  not
              given,  in  the  interpreter denoted by path.  If a
              hidden  command  with  the  targeted  name  already
              exists,   this   command   fails.   Currently  both
              exposedCmdName and hiddenCmdName  can  not  contain
              namespace  qualifiers, or an error is raised.  Com-
              mands to be hidden by interp hide are looked up  in
              the  global namespace even if the current namespace
              is not the global one. This  prevents  slaves  from
              fooling  a master interpreter into hiding the wrong
              command, by making the current namespace be differ-
              ent  from  the  global  one.   Hidden  commands are
              explained in more detail in HIDDEN COMMANDS, below.

       interp hidden path
              Returns  a list of the names of all hidden commands
              in the interpreter identified by path.

       interp invokehidden path ?-option ...? hiddenCmdName  ?arg
       ...?
              Invokes the hidden command hiddenCmdName  with  the
              arguments  supplied  in  the interpreter denoted by
              path. No substitutions or evaluation are applied to
              the arguments. Three -options are supported, all of
              which start with -: -namespace (which takes a  sin-
              gle  argument afterwards, nsName), -global, and --.
              If the -namespace flag is present, the hidden  com-
              mand  is  invoked in the namespace called nsName in
              the target interpreter.  If  the  -global  flag  is
              present,  the  hidden  command  is  invoked  at the
              global level in the target  interpreter;  otherwise
              it  is  invoked  at  the current call frame and can
              access local  variables  in  that  and  outer  call
              frames.  The -- flag allows the hiddenCmdName argu-
              ment to start with a "-" character, and  is  other-
              wise  unnecessary.   If  both  the  -namespace  and
              -global flags are present, the -namespace  flag  is
              ignored.  Note that the hidden command will be exe-
              cuted (by default) in  the  current  context  stack
              frame of the path interpreter.  Hidden commands are
              explained in more detail in HIDDEN COMMANDS, below.

       interp limit path limitType ?-option? ?value ...?
              Sets  up, manipulates and queries the configuration |
              of the resource limit limitType for the interpreter |
              denoted  by  path.   If  no  -option  is specified, |
              return the current configuration of the limit.   If |
              -option  is  the sole argument, return the value of |
              that option.  Otherwise, a  list  of  -option/value |
              argument  pairs  must supplied. See RESOURCE LIMITS |
              below for a more detailed explanation of what  lim- |
              its and options are supported.

       interp issafe ?path?
              Returns  1  if  the  interpreter  identified by the
              specified path is safe, 0 otherwise.

       interp marktrusted path
              Marks  the  interpreter  identified  by   path   as
              trusted.  Does not expose the hidden commands. This
              command can only be invoked from a  trusted  inter-
              preter.   The  command  has no effect if the inter-
              preter identified by path is already trusted.

       interp recursionlimit path ?newlimit?
              Returns the maximum allowable nesting depth for the
              interpreter  specified  by  path.   If  newlimit is
              specified, the interpreter recursion limit will  be
              set  so that nesting of more than newlimit calls to
              Tcl_Eval() and related procedures  in  that  inter-
              preter will return an error.  The newlimit value is
              also returned.  The newlimit value must be a  posi-
              tive  integer  between 1 and the maximum value of a
              non-long integer on the platform.

              The command sets the maximum size of the  Tcl  call
              stack only. It cannot by itself prevent stack over-
              flows on the C stack being used by the application.
              If  your  machine  has a limit on the size of the C
              stack, you may get stack overflows before  reaching
              the  limit set by the command. If this happens, see
              if there is a mechanism in your system for increas-
              ing the maximum size of the C stack.

       interp share srcPath channelId destPath
              Causes  the  IO  channel identified by channelId to
              become shared between the interpreter identified by
              srcPath and the interpreter identified by destPath.
              Both interpreters have the same permissions on  the
              IO  channel.   Both  interpreters  must close it to
              close the underlying IO channel; IO channels acces-
              sible  in  an  interpreter are automatically closed
              when an interpreter is destroyed.

       interp slaves ?path?
              Returns a Tcl list of the names of  all  the  slave
              interpreters  associated with the interpreter iden-
              tified by path. If path is  omitted,  the  invoking
              interpreter is used.

       interp target path alias
              Returns  a  Tcl  list  describing the target inter-
              preter for an alias. The alias is specified with an
              interpreter  path  and source command name, just as
              in interp alias  above.  The  name  of  the  target
              interpreter  is  returned  as  an interpreter path,
              relative to the invoking interpreter.  If the  tar-
              get  interpreter  for  the  alias  is  the invoking
              interpreter then an empty list is returned. If  the
              target  interpreter for the alias is not the invok-
              ing interpreter or one of its descendants  then  an
              error  is  generated.   The target command does not
              have to be defined at the time of this  invocation.

       interp transfer srcPath channelId destPath
              Causes  the  IO  channel identified by channelId to
              become available in the interpreter  identified  by
              destPath and unavailable in the interpreter identi-
              fied by srcPath.

SLAVE COMMAND
       For each slave interpreter created with  the  interp  com-
       mand,  a  new  Tcl command is created in the master inter-
       preter with the same name as  the  new  interpreter.  This
       command  may  be  used to invoke various operations on the
       interpreter.  It has the following general form:
              slave command ?arg arg ...?
       Slave is the name of the interpreter, and command and  the
       args  determine  the  exact  behavior of the command.  The
       valid forms of this command are:

       slave aliases
              Returns a Tcl list whose elements are the tokens of
              all the aliases in slave.  The tokens correspond to
              the values returned when the aliases  were  created
              (which  may not be the same as the current names of
              the commands).

       slave alias srcToken
              Returns a Tcl list whose elements are the targetCmd
              and  args  associated with the alias represented by
              srcToken (this is the value returned when the alias
              was  created; it is possible that the actual source
              command in the slave is different from srcToken).

       slave alias srcToken {}
              Deletes the alias for srcToken in the slave  inter-
              preter.  srcToken refers to the value returned when
              the alias was created;  if the source  command  has
              been  renamed, the renamed command will be deleted.

       slave alias srcCmd targetCmd ?arg ..?
              Creates an  alias  such  that  whenever  srcCmd  is
              invoked  in slave, targetCmd is invoked in the mas-
              ter.  The arg arguments will be passed to targetCmd
              as additional arguments, prepended before any argu-
              ments passed in  the  invocation  of  srcCmd.   See
              ALIAS  INVOCATION  below  for details.  The command
              returns a token that uniquely identifies  the  com-
              mand created srcCmd, even if the command is renamed
              afterwards. The token may but does not have  to  be
              equal to srcCmd.

       slave bgerror ?cmdPrefix?
              This  command either gets or sets the current back- |
              ground error handler for the slave interpreter.  If |
              cmdPrefix  is  absent, the current background error |
              handler is returned, and if it is present, it is  a |
              list   of   words  (of  minimum  length  one)  that |
              describes what to set the interpreter's  background |
              error to. See the BACKGROUND ERROR HANDLING section |
              for more details.

       slave eval arg ?arg ..?
              This command concatenates all of the arg  arguments
              in  the  same  fashion  as the concat command, then
              evaluates the resulting string as a Tcl  script  in
              slave.   The  result  of this evaluation (including
              all  return  options,  such   as   -errorinfo   and
              -errorcode  information,  if  an  error  occurs) is
              returned to the invoking  interpreter.   Note  that
              the  script will be executed in the current context
              stack frame of slave; this is so that the implemen-
              tations  (in  a master interpreter) of aliases in a
              slave interpreter can execute scripts in the  slave
              that find out information about the slave's current
              state and stack frame.

       slave expose hiddenName ?exposedCmdName?
              This command exposes the hidden command hiddenName,
              eventually bringing it back under a new exposedCmd-
              Name name (this name is currently accepted only  if
              it  is  a  valid global name space name without any
              ::), in slave.  If an exposed command with the tar-
              geted name already exists, this command fails.  For
              more details on hidden commands,  see  HIDDEN  COM-
              MANDS, below.

       slave hide exposedCmdName ?hiddenCmdName?
              This  command hides the exposed command exposedCmd-
              Name, renaming it to the hidden command  hiddenCmd-
              Name,  or  keeping the same name if the argument is
              not given, in the slave interpreter.  If  a  hidden
              command with the targeted name already exists, this
              command fails.  Currently both  exposedCmdName  and
              hiddenCmdName can not contain namespace qualifiers,
              or an error is raised.  Commands to be  hidden  are
              looked  up in the global namespace even if the cur-
              rent namespace is not the global one. This prevents
              slaves  from fooling a master interpreter into hid-
              ing the wrong command, by making the current names-
              pace  be  different  from the global one.  For more
              details on hidden commands,  see  HIDDEN  COMMANDS,
              below.

       slave hidden
              Returns  a list of the names of all hidden commands
              in slave.

       slave invokehidden ?-option ...? hiddenName ?arg ..?
              This command invokes the hidden command  hiddenName
              with the supplied arguments, in slave. No substitu-
              tions or evaluations are applied to the  arguments.
              Three  -options  are  supported, all of which start
              with -: -namespace (which takes a  single  argument
              afterwards,  nsName),  -global,  and  --.   If  the
              -namespace flag is given,  the  hidden  command  is
              invoked  in  the  specified namespace in the slave.
              If the  -global  flag  is  given,  the  command  is
              invoked at the global level in the slave; otherwise
              it is invoked at the current  call  frame  and  can
              access  local  variables  in  that  or  outer  call
              frames.  The -- flag allows the hiddenCmdName argu-
              ment  to  start with a "-" character, and is other-
              wise  unnecessary.   If  both  the  -namespace  and
              -global  flags  are  given,  the -namespace flag is
              ignored.  Note that the hidden command will be exe-
              cuted  (by  default)  in  the current context stack
              frame of slave.  For more details  on  hidden  com-
              mands, see HIDDEN COMMANDS, below.

       slave issafe
              Returns  1 if the slave interpreter is safe, 0 oth-
              erwise.

       slave limit limitType ?-option? ?value ...?
              Sets up, manipulates and queries the  configuration |
              of  the  resource  limit  limitType  for  the slave |
              interpreter.  If no -option  is  specified,  return |
              the current configuration of the limit.  If -option |
              is the sole argument,  return  the  value  of  that |
              option.   Otherwise,  a list of -option/value argu- |
              ment pairs must supplied. See RESOURCE LIMITS below |
              for  a more detailed explanation of what limits and |
              options are supported.

       slave marktrusted
              Marks the slave interpreter as trusted. Can only be
              invoked by a trusted interpreter. This command does
              not expose any hidden commands in the slave  inter-
              preter.  The  command has no effect if the slave is
              already trusted.

       slave recursionlimit ?newlimit?
              Returns the maximum allowable nesting depth for the
              slave  interpreter.   If newlimit is specified, the
              recursion limit in slave will be set so that  nest-
              ing  of  more than newlimit calls to Tcl_Eval() and
              related procedures in slave will return  an  error.
              The  newlimit value is also returned.  The newlimit
              value must be a positive integer between 1 and  the
              maximum  value  of  a non-long integer on the plat-
              form.

              The command sets the maximum size of the  Tcl  call
              stack only. It cannot by itself prevent stack over-
              flows on the C stack being used by the application.
              If  your  machine  has a limit on the size of the C
              stack, you may get stack overflows before  reaching
              the  limit set by the command. If this happens, see
              if there is a mechanism in your system for increas-
              ing the maximum size of the C stack.

SAFE INTERPRETERS
       A  safe  interpreter is one with restricted functionality,
       so that is safe to execute an arbitrary script  from  your
       worst  enemy  without  fear  of  that  script damaging the
       enclosing application or the rest of your computing  envi-
       ronment.   In  order  to make an interpreter safe, certain
       commands and variables are removed from  the  interpreter.
       For example, commands to create files on disk are removed,
       and the exec command is removed, since it could be used to
       cause  damage  through  subprocesses.   Limited  access to
       these facilities can be provided, by creating  aliases  to
       the  master  interpreter which check their arguments care-
       fully and provide restricted access to a  safe  subset  of
       facilities.   For  example, file creation might be allowed
       in a particular  subdirectory  and  subprocess  invocation
       might be allowed for a carefully selected and fixed set of
       programs.

       A safe interpreter is  created  by  specifying  the  -safe
       switch  to  the  interp  create command.  Furthermore, any
       slave created by a safe interpreter will also be safe.

       A safe interpreter is created with exactly  the  following
       set of built-in commands:

              after       append      apply       array
              binary      break       catch       chan
              clock       close       concat      continue
              dict        eof         error       eval
              expr        fblocked    fcopy       fileevent
              flush       for         foreach     format
              gets        global      if          incr
              info        interp      join        lappend
              lassign     lindex      linsert     list
              llength     lrange      lrepeat     lreplace
              lsearch     lset        lsort       namespace
              package     pid         proc        puts
              read        regexp      regsub      rename
              return      scan        seek        set
              split       string      subst       switch
              tell        time        trace       unset
              update      uplevel     upvar       variable
              vwait       while

       The following commands are hidden by interp create when it
       creates a safe interpreter:

              cd          encoding    exec        exit
              fconfigure  file        glob        load
              open        pwd         socket      source
              unload

       These commands can be recreated later as Tcl procedures or
       aliases, or re-exposed by interp expose.

       The  following commands from Tcl's library of support pro-
       cedures are not present in a safe interpreter:

              auto_exec_ok    auto_import     auto_load
              auto_load_index auto_qualify    unknown

       Note in particular that safe interpreters have no  default
       unknown  command,  so Tcl's default autoloading facilities
       are not available.  Autoload access to Tcl's commands that
       are normally autoloaded:

              auto_mkindex         auto_mkindex_old
              auto_reset           history
              parray               pkg_mkIndex
              ::pkg::create        ::safe::interpAddToAccessPath
              ::safe::interpCreate ::safe::interpConfigure
              ::safe::interpDelete ::safe::interpFindInAccessPath
              ::safe::interpInit   ::safe::setLogCmd
              tcl_endOfWord        tcl_findLibrary
              tcl_startOfNextWord  tcl_startOfPreviousWord
              tcl_wordBreakAfter   tcl_wordBreakBefore

       can  only be provided by explicit definition of an unknown
       command in the safe interpreter.  This will involve expos-
       ing  the source command.  This is most easily accomplished
       by creating the safe interpreter with Tcl's Safe-Tcl mech-
       anism.   Safe-Tcl  provides safe versions of source, load,
       and other Tcl commands needed to  support  autoloading  of
       commands and the loading of packages.

       In  addition,  the  env  variable is not present in a safe
       interpreter, so it cannot share environment variables with
       other  interpreters.  The  env  variable  poses a security
       risk, because users can store sensitive information in  an
       environment  variable.  For example, the PGP manual recom-
       mends storing the PGP private key protection  password  in
       the  environment  variable  PGPPASS.  Making this variable
       available to untrusted code executing  in  a  safe  inter-
       preter would incur a security risk.

       If extensions are loaded into a safe interpreter, they may
       also restrict their own functionality to eliminate  unsafe
       commands. For a discussion of management of extensions for
       safety see the manual entries for Safe-Tcl  and  the  load
       Tcl command.

       A  safe  interpreter  may not alter the recursion limit of
       any interpreter, including itself.

ALIAS INVOCATION
       The alias mechanism has been carefully designed so that it
       can  be  used safely when an untrusted script is executing
       in a safe slave and the target of the alias is  a  trusted
       master.   The  most important thing in guaranteeing safety
       is to ensure that information passed from the slave to the
       master  is  never  evaluated or substituted in the master;
       if this were to occur, it would enable an evil  script  in
       the  slave  to  invoke  arbitrary functions in the master,
       which would compromise security.

       When the source for an  alias  is  invoked  in  the  slave
       interpreter,  the  usual  Tcl  substitutions are performed
       when parsing that command.  These substitutions  are  car-
       ried  out  in the source interpreter just as they would be
       for any other command invoked in  that  interpreter.   The
       command  procedure  for the source command takes its argu-
       ments and merges them with the targetCmd and args for  the
       alias to create a new array of arguments.  If the words of
       srcCmd were "srcCmd arg1 arg2 ... argN", the  new  set  of
       words  will  be  "targetCmd  arg arg ... arg arg1 arg2 ...
       argN", where targetCmd and args are  the  values  supplied
       when  the  alias  was  created.  TargetCmd is then used to
       locate a command procedure in the target interpreter,  and
       that  command  procedure  is  invoked  with the new set of
       arguments.  An error occurs if there is no  command  named
       targetCmd  in  the target interpreter.  No additional sub-
       stitutions are performed on the words:  the target command
       procedure  is  invoked directly, without going through the
       normal Tcl evaluation mechanism.  Substitutions  are  thus
       performed  on  each  word exactly once: targetCmd and args
       were substituted when parsing the command that created the
       alias,  and  arg1  - argN are substituted when the alias's
       source command is parsed in the source interpreter.

       When writing the targetCmds for  aliases  in  safe  inter-
       preters,  it  is very important that the arguments to that
       command never be  evaluated  or  substituted,  since  this
       would provide an escape mechanism whereby the slave inter-
       preter could execute arbitrary code in the  master.   This
       in turn would compromise the security of the system.

HIDDEN COMMANDS
       Safe   interpreters  greatly  restrict  the  functionality
       available to Tcl programs executing within them.  Allowing
       the  untrusted  Tcl  program to have direct access to this
       functionality is unsafe, because it  can  be  used  for  a
       variety of attacks on the environment.  However, there are
       times when there is a legitimate need to use the dangerous
       functionality  in the context of the safe interpreter. For
       example, sometimes a program  must  be  sourced  into  the
       interpreter.   Another  example  is  Tk, where windows are
       bound to the hierarchy of windows for  a  specific  inter-
       preter; some potentially dangerous functions, e.g.  window
       management, must be performed on these windows within  the
       interpreter context.

       The  interp command provides a solution to this problem in
       the form of hidden commands. Instead of removing the  dan-
       gerous  commands  entirely  from a safe interpreter, these
       commands are hidden so  they  become  unavailable  to  Tcl
       scripts executing in the interpreter. However, such hidden
       commands can be invoked by any  trusted  ancestor  of  the
       safe  interpreter, in the context of the safe interpreter,
       using interp invoke. Hidden commands and exposed  commands
       reside in separate name spaces. It is possible to define a
       hidden command and an exposed command  by  the  same  name
       within one interpreter.

       Hidden  commands  in a slave interpreter can be invoked in
       the body of procedures called in the master  during  alias
       invocation. For example, an alias for source could be cre-
       ated in a slave interpreter. When it  is  invoked  in  the
       slave  interpreter,  a  procedure  is called in the master
       interpreter to check that the operation is allowable (e.g.
       it  asks  to  source  a file that the slave interpreter is
       allowed to access). The procedure then it invokes the hid-
       den  source  command  in the slave interpreter to actually
       source in the contents of the file. Note that two commands
       named  source  exist  in the slave interpreter: the alias,
       and the hidden command.

       Because a master interpreter may invoke a  hidden  command
       as  part  of handling an alias invocation, great care must
       be taken to  avoid  evaluating  any  arguments  passed  in
       through  the alias invocation.  Otherwise, malicious slave
       interpreters could cause a trusted master  interpreter  to
       execute  dangerous  commands on their behalf. See the sec-
       tion on ALIAS INVOCATION for a more complete discussion of
       this  topic.  To help avoid this problem, no substitutions
       or evaluations are applied to arguments of interp  invoke-
       hidden.

       Safe  interpreters  are  not allowed to invoke hidden com-
       mands in themselves or in their descendants. This prevents
       safe slaves from gaining access to hidden functionality in
       themselves or their descendants.

       The set of hidden commands in an interpreter can be manip-
       ulated  by  a  trusted interpreter using interp expose and
       interp hide. The interp expose command moves a hidden com-
       mand  to  the  set  of exposed commands in the interpreter
       identified by path, potentially renaming  the  command  in
       the  process.  If  an exposed command by the targeted name
       already exists, the  operation  fails.  Similarly,  interp
       hide  moves  an  exposed command to the set of hidden com-
       mands in  that  interpreter.  Safe  interpreters  are  not
       allowed  to  move  commands  between the set of hidden and
       exposed commands, in either themselves  or  their  descen-
       dants.

       Currently,  the  names  of  hidden commands cannot contain
       namespace qualifiers, and you must first rename a  command
       in a namespace to the global namespace before you can hide
       it.  Commands to be hidden by interp hide are looked up in
       the  global namespace even if the current namespace is not
       the global one. This prevents slaves from fooling a master
       interpreter  into  hiding the wrong command, by making the
       current namespace be different from the global one.

RESOURCE LIMITS
       Every interpreter has two kinds of  resource  limits  that |
       may  be imposed by any master interpreter upon its slaves. |
       Command limits (of type command) restrict the total number |
       of Tcl commands that may be executed by an interpreter (as |
       can be inspected via the info cmdcount command), and  time |
       limits  (of  type  time)  place a limit by which execution |
       within the interpreter must complete. Note that time  lim- |
       its  are expressed as absolute times (as in clock seconds) |
       and not relative times (as in after) because they  may  be |
       modified after creation.                                   |

       When  a  limit  is  exceeded for an interpreter, first any |
       handler  callbacks  defined  by  master  interpreters  are |
       called.  If  those callbacks increase or remove the limit, |
       execution within the (previously) limited interpreter con- |
       tinues.  If  the  limit  is  still  in  force, an error is |
       generated at that point and normal  processing  of  errors |
       within the interpreter (by the catch command) is disabled, |
       so the error propagates outwards (building  a  stack-trace |
       as it goes) to the point where the limited interpreter was |
       invoked (e.g. by interp eval) where it becomes the respon- |
       sibility of the calling code to catch and handle.          |

   LIMIT OPTIONS                                                  |
       Every  limit  has  a number of options associated with it, |
       some of which are common across all kinds of  limits,  and |
       others of which are particular to the kind of limit.

       -command
              This  option (common for all limit types) specifies |
              (if non-empty) a Tcl script to be executed  in  the |
              global  namespace  of  the  interpreter reading and |
              writing the option when the particular limit in the |
              limited  interpreter is exceeded.  The callback may |
              modify the limit on the interpreter  if  it  wishes |
              the  limited  interpreter to continue executing. If |
              the callback generates an  error,  it  is  reported |
              through  the  background error mechanism (see BACK- |
              GROUND ERROR HANDLING).  Note  that  the  callbacks |
              defined  by one interpreter are completely isolated |
              from the callbacks defined by another, and that the |
              order  in which those callbacks are called is unde- |
              fined.

       -granularity
              This option (common for all limit types)  specifies |
              how  frequently  (out  of  the  points when the Tcl |
              interpreter is in a consistent  state  where  limit |
              checking  is  possible)  that the limit is actually |
              checked. This allows the tuning of how frequently a |
              limit  is  checked,  and hence how often the limit- |
              checking overhead (which may be substantial in  the |
              case of time limits) is incurred.

       -milliseconds
              This  option  specifies  the number of milliseconds |
              after the moment defined  in  the  -seconds  option |
              that  the time limit will fire. It should only ever |
              be  specified  in  conjunction  with  the  -seconds |
              option  (whether  it was set previously or is being |
              set this invocation.)

       -seconds
              This option specifies the number of  seconds  after |
              the  epoch  (see clock seconds) that the time limit |
              for the interpreter will be  triggered.  The  limit |
              will be triggered at the start of the second unless |
              specified at a sub-second  level  using  the  -mil- |
              liseconds  option.  This  option  may  be the empty |
              string, which indicates that a time  limit  is  not |
              set for the interpreter.

       -value This  option  specifies the number of commands that |
              the interpreter may execute before  triggering  the |
              command limit. This option may be the empty string, |
              which indicates that a command limit is not set for |
              the interpreter.                                    |

       Where  an interpreter with a resource limit set on it cre- |
       ates a slave interpreter, that slave interpreter will have |
       resource  limits  imposed  on  it  that  are  at  least as |
       restrictive as the limits on the  creating  master  inter- |
       preter.  If  the  master interpreter of the limited master |
       wishes to relax  these  conditions,  it  should  hide  the |
       interp  command  in the child and then use aliases and the |
       interp invokehidden subcommand to provide such  access  as |
       it  chooses to the interp command to the limited master as |
       necessary.                                                 |

BACKGROUND ERROR HANDLING                                         |
       When an error happens in a situation where  it  cannot  be |
       reported  directly  up  the  stack  (e.g.  when processing |
       events in an update or vwait call) the  error  is  instead |
       reported  through the background error handling mechanism. |
       Every interpreter has a background  error  handler  regis- |
       tered;  the default error handler arranges for the bgerror |
       command  in  the  interpreter's  global  namespace  to  be |
       called, but other error handlers may be installed and pro- |
       cess background errors in substantially different ways.    |

       A background error handler consists of a non-empty list of |
       words to which will be appended two further words at invo- |
       cation time. The first word  will  be  the  error  message |
       string, and the second will a dictionary of return options |
       (this is also the sort of information that can be obtained |
       by  trapping  a  normal  error using catch of course.) The |
       resulting list will then be executed in the  interpreter's |
       global  namespace without further substitutions being per- |
       formed.

CREDITS
       The safe interpreter mechanism is based  on  the  Safe-Tcl
       prototype implemented by Nathaniel Borenstein and Marshall
       Rose.

EXAMPLES
       Creating and using an alias for a command in  the  current
       interpreter:
              interp alias {} getIndex {} lsearch {alpha beta gamma delta}
              set idx [getIndex delta]

       Executing an arbitrary command in a safe interpreter where
       every invocation of lappend is logged:
              set i [interp create -safe]
              interp hide $i lappend
              interp alias $i lappend {} loggedLappend $i
              proc loggedLappend {i args} {
                 puts "logged invocation of lappend $args"
                 interp invokehidden $i lappend {*}$args
              }
              interp eval $i $someUntrustedScript

       Setting a resource limit on  an  interpreter  so  that  an |
       infinite loop terminates.                                  |
              set i [interp create]                               |
              interp limit $i command -value 1000                 |
              interp eval $i {                                    |
                 set x 0                                          |
                 while {1} {                                      |
                    puts "Counting up... [incr x]"                |
                 }                                                |
              }                                                   |

SEE ALSO
       bgerror(n), load(n), safe(n), Tcl_CreateSlave(3)

KEYWORDS
       alias,  master interpreter, safe interpreter, slave inter-
       preter



Tcl                            7.6                      interp(n)


@@@COMMAND: iphys_opt_design@@@
iphys_opt_design

Description: 
Interactive phys_opt_design.

Syntax: 
iphys_opt_design  [-fanout_opt] [-critical_cell_opt] [-replicate_cell]
                  [-reconnect] [-placement_opt] [-forward_retime]
                  [-backward_retime] [-net <arg>] -cluster <args>
                  -place_cell <args> [-dsp_register_opt] [-bram_register_opt]
                  [-uram_register_opt] [-shift_register_opt] [-cell <arg>]
                  [-packing] [-unpacking] [-port <arg>] [-critical_pin_opt]
                  [-restruct_opt] [-equ_drivers_opt] [-skipped_optimization]
                  [-create_bufg] [-insert_negative_edge_ffs] [-hold_fix]
                  [-slr_crossing_opt] [-shift_register_to_pipeline]
                  [-auto_pipeline] [-pipeline_to_shift_register]
                  [-control_set_opt] [-memory_rewire_opt] [-quiet] [-verbose]

Usage: 
  Name                           Description
  ------------------------------------------
  [-fanout_opt]                  Fanout optimization including very high 
                                 fanout optimizations
  [-critical_cell_opt]           Do cell-duplication based optimization on 
                                 timing critical nets
  [-replicate_cell]              Atomic cell replication operation, for 
                                 interconnect retiming and LUT optimizaton
  [-reconnect]                   Reconnect loads from equivalent drivers for 
                                 interconnect retiming and LUT optimization
  [-placement_opt]               Move cells to reduce delay on 
                                 timing-critical nets
  [-forward_retime]              Forward retiming optimization
  [-backward_retime]             Backward retiming optimization
  [-net]                         net to be optimized
  -cluster                       Clusters of load pins
  -place_cell                    Place cell or cell connecting to pin to loc
  [-dsp_register_opt]            DSP register optimization
  [-bram_register_opt]           BRAM register optimization
  [-uram_register_opt]           UltraRAM register optimization
  [-shift_register_opt]          Shift register optimization
  [-cell]                        cell to be optimized
  [-packing]                     Packing in DSP/BRAM
  [-unpacking]                   Unpacking in DSP/BRAM
  [-port]                        Port in DSP/BRAM that is optimized
  [-critical_pin_opt]            Pin Swap optimization
  [-restruct_opt]                LUT restructuring optimization
  [-equ_drivers_opt]             Equivalent driver rewiring
  [-skipped_optimization]        The change is not committed
  [-create_bufg]                 Insert bufg to drive HFO nets
  [-insert_negative_edge_ffs]    Inserting negative edge triggered FFs for 
                                 high hold mitigation
  [-hold_fix]                    Inserting buffers for hold fix optimization
  [-slr_crossing_opt]            Optimize slr crossing nets
  [-shift_register_to_pipeline]  shift register to pipeline opt
  [-auto_pipeline]               Auto pipeline
  [-pipeline_to_shift_register]  pipeline_to_shift_register
  [-control_set_opt]             Control set optimization
  [-memory_rewire_opt]           Memory rewire optimization
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution

Categories: 
Tools

Description:

  The iphys_opt_design command describes a specific optimization that was
  performed by the phys_opt_design command, such as replicating a critical
  cell or pulling registers from a block RAM to improve critical path delay.
  The iphys_opt_design command includes all the information necessary to
  recreate both the post-optimization logical netlist and the placement
  changes required for the optimized netlist.

  Interactive physical optimization can be used in two ways:

   *  Applying post-placement physical optimizations to the pre-placement
      netlist to improve the overall placement result and improve design
      performance.

   *  Saving the physical optimizations in a Tcl script to be repeated as
      needed.

  The various optimizations performed by phys_opt_design can be written to an
  iphys_opt Tcl script by write_iphys_opt_tcl, and read into the design by
  the read_iphys_opt_tcl command.

  Note: The iphys_opt_design command is intended for use inside the iphys_opt
  Tcl script file. These commands can be edited in the context of the
  iphys_opt Tcl script, but they are not intended to be specified at the
  command line.

  This command returns a transcript of its processes, or an error if it fails.

Arguments:

  -fanout_opt - (Optional) Performs delay-driven optimization on the
  specified net, by replicating drivers to reduce delay.

  -critical_cell_opt - (Optional) Replicate cells on specified nets to reduce
  delays.

  -placement_opt - (Optional) Move cells to reduce delay on specified nets.

  -rewire - (Optional) Refactor logic cones to reduce logic levels and reduce
  delay on critical signals.

  -net <arg> - (Optional) Specify the net to apply an optimization to.

  -cluster <args> - (Required) Specify a cluster of load pins.

  -place_cell <args> - (Required) Place the specified cells, or cells
  connected to the specified pins, on the device sites specified.

  -dsp_register_opt - (Optional) Improve critical path delay by moving
  registers from slices to DSP blocks, or from DSP blocks to slices.

  -bram_register_opt - (Optional) Improve critical path delay by moving
  registers from slices to block RAMs, or from block RAMs to slices.

  -uram_register_opt - (Optional) Improve critical path delay by moving
  registers from slices to UltraRAMs, or from UltraRAMs to slices.

  -shift_register_opt - (Optional) Perform shift register optimization to
  improve timing on negative slack paths between shift register cells (SRLs)
  and other logic cells.

  -cell <arg> - (Optional) Specify a cell to apply an optimization to.

  -packing - (Optional) Packing in DSP/BRAM.

  -unpacking - (Optional) Unpacking in DSP/BRAM.

  -port <arg> - (Optional) Specify a port on a cell to apply the optimization
  to.

  -critical_pin_opt - For LUT inputs, this optimization performs remapping of
  logical pins to physical pins, also known as pin-swapping, to improve
  critical path timing.

  -skipped_optimization - (Optional) Defines the specified optimization as
  not performed. These are optimizations identified by phys_opt_design that
  are skipped because suitable locations for optimized logic cannot be found.
  For example, BRAM register optimizations to improve slack that are skipped
  because no suitable locations can be found for the registers.

  -insert_negative_edge_ffs - (Optional) Insert negative edge, or falling
  edge triggered flip flops to help manage hold timing.

  -hold_fix - (Optional) Performs optimizations to insert data path delay
  buffers for hold fix optimization.

  -slr_crossing_opt - (Optional) Performs post-place or post-route
  optimizations to improve the path delay of inter-SLR connections. The
  optimization adjusts the locations of the driver, load, or both along the
  SLR crossing after potential replication. For use with UltraScale and
  UltraScale+ devices.

  -auto_pipeline - (Optional) Auto pipeline the design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs a critical cell optimization on the
  specified net and cluster of ports:

    iphys_opt_design -critical_cell_opt -net \  
       {ADUR_CORE_INST/CPE_INST/CPE_ANT_RESOURCE_TDM_INST0 \  
       /CPE_ANT_LINE_IQ_TDM_ANT0_INST/CPE_PN_MULT_INST/CPE_PN_MUL_INST3 \  
       /Q_PNI_MULT_INST/pn_mult_reg[3][0]} \  
       -cluster {pn_mult[3]_i_14_replica  {\  
       {ADUR_CORE_INST/CPE_INST/CPE_ANT_RESOURCE_TDM_INST0 \  
       /CPE_ANT_LINE_IQ_TDM_ANT0_INST/CPE_PN_MULT_INST/CPE_PN_MUL_INST2 \  
       /Q_ADD_INST/pn_mult_reg[3]_i_6_CARRY8/S[0]}}}\  
       -cluster {pn_mult[3]_i_14_replica_1  {\  
       {ADUR_CORE_INST/CPE_INST/CPE_ANT_RESOURCE_TDM_INST0 \  
       /CPE_ANT_LINE_IQ_TDM_ANT0_INST/CPE_PN_MULT_INST/CPE_PN_MUL_INST0 \  
       /Q_ADD_INST/pn_mult_reg[3]_i_10_CARRY8/S[0]}}}\ 
    

  The following example performs a shift register optimization on the
  specified cell:

    iphys_opt_design -shift_register_opt -cell \  
       {ADUR_CORE_INST/EMIF_INTERFACE_INST/EMIF_HOST_IF_INST/DLY_INST1 \  
       /PD_INST_FPGA/delay_chain_reg[9][16]_srl9} -port D  
    

See Also:

   *  phys_opt_design
   *  read_iphys_opt_tcl
   *  report_phys_opt_design
   *  write_iphys_opt_tcl


@@@COMMAND: is_part_supported@@@
is_part_supported

Description: 
Checks if a part is supported with a vlnv

Syntax: 
is_part_supported  [-vlnv <arg>] [-part <arg>] [-allowHiddenParts] [-quiet]
                   [-verbose]

Returns: 
1 if vlnv and part are compatible, 0 otherwise

Usage: 
  Name                 Description
  --------------------------------
  [-vlnv]              VLNV to be checked for
  [-part]              Part to be checked for compatibility with given VLNV
  [-allowHiddenParts]  Allow hidden parts
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 



@@@COMMAND: join@@@
join(n)               Tcl Built-In Commands               join(n)



_________________________________________________________________

NAME
       join - Create a string by joining together list elements

SYNOPSIS
       join list ?joinString?
_________________________________________________________________


DESCRIPTION
       The  list argument must be a valid Tcl list.  This command
       returns the string formed by joining all of  the  elements
       of  list together with joinString separating each adjacent
       pair of elements.  The joinString argument defaults  to  a
       space character.

EXAMPLES
       Making a comma-separated list:
              set data {1 2 3 4 5}
              join $data ", "
                   --> 1, 2, 3, 4, 5

       Using join to flatten a list by a single level:
              set data {1 {2 3} 4 {5 {6 7} 8}}
              join $data
                   --> 1 2 3 4 5 {6 7} 8


SEE ALSO
       list(n), lappend(n), split(n)


KEYWORDS
       element, join, list, separator



Tcl                                                       join(n)


@@@COMMAND: lappend@@@
lappend(n)            Tcl Built-In Commands            lappend(n)



_________________________________________________________________

NAME
       lappend - Append list elements onto a variable

SYNOPSIS
       lappend varName ?value value value ...?
_________________________________________________________________


DESCRIPTION
       This  command  treats  the  variable given by varName as a
       list and appends each of the value arguments to that  list
       as  a  separate element, with spaces between elements.  If
       varName does not exist, it is created as a list with  ele-
       ments given by the value arguments.  Lappend is similar to
       append except that the values are appended  as  list  ele-
       ments rather than raw text.  This command provides a rela-
       tively efficient way to build up large lists.   For  exam-
       ple,  "lappend  a  $b"  is much more efficient than "set a
       [concat $a [list $b]]" when $a is long.

EXAMPLE
       Using lappend to build up a list of numbers.
              % set var 1
              1
              % lappend var 2
              1 2
              % lappend var 3 4 5
              1 2 3 4 5


SEE ALSO
       list(n),  lindex(n),  linsert(n),   llength(n),   lset(n),
       lsort(n), lrange(n)


KEYWORDS
       append, element, list, variable



Tcl                                                    lappend(n)


@@@COMMAND: lassign@@@
lassign(n)            Tcl Built-In Commands            lassign(n)



_________________________________________________________________

NAME
       lassign - Assign list elements to variables

SYNOPSIS
       lassign list varName ?varName ...?
_________________________________________________________________


DESCRIPTION
       This  command  treats the value list as a list and assigns
       successive elements from that list to the variables  given
       by  the  varName  arguments  in  order.  If there are more
       variable names than list elements, the remaining variables
       are  set to the empty string.  If there are more list ele-
       ments than variables, a list  of  unassigned  elements  is
       returned.

EXAMPLES
       An illustration of how multiple assignment works, and what
       happens when there are either too few  or  too  many  ele-
       ments.
              lassign {a b c} x y z       ;# Empty return
              puts $x                     ;# Prints "a"
              puts $y                     ;# Prints "b"
              puts $z                     ;# Prints "c"

              lassign {d e} x y z         ;# Empty return
              puts $x                     ;# Prints "d"
              puts $y                     ;# Prints "e"
              puts $z                     ;# Prints ""

              lassign {f g h i} x y       ;# Returns "h i"
              puts $x                     ;# Prints "f"
              puts $y                     ;# Prints "g"
       The  lassign  command  has  other uses.  It can be used to
       create the analogue of the "shift" command in  many  shell
       languages like this:
              set ::argv [lassign $::argv argumentToReadOff]

SEE ALSO
       lindex(n), list(n), lset(n), set(n)


KEYWORDS
       assign, element, list, multiple, set, variable



Tcl                            8.5                     lassign(n)


@@@COMMAND: launch_chipscope_analyzer@@@
launch_chipscope_analyzer

Description: 
Issues an error that you can not run this command

Syntax: 
launch_chipscope_analyzer  [-run <arg>] [-csproject <arg>] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  [-run]        Implemented run to launch ChipScope Analyzer with
  [-csproject]  ChipScope project
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
ToolLaunch

Description:

  Launches the ChipScope Pro Analyzer tool for the active run, or a specified
  Implemented Design run. You can setup a Netlist Design for use with
  ChipScope prior to implementation, using the create_debug_core,
  create_debug_port, and connect_debug_port commands.

  The Implemented Design must also have a bitstream file generated by BitGen
  for launch_chipscope_analyzer to run. If BitGen has not been run, an error
  will be returned.

  Note: It is not enough to use the write_bitstream command to create a
  bitstream file. You must follow the steps outlined below in the second
  example.

Arguments:

  -run <arg> - The run name to use when launching the ChipScope Pro Analyzer.
  The specified run must be implemented and have a bitstream (.bit) file
  generated. ChipScope will use the bitstream file and the debug_nets.cdc
  file from the specified run.

  -csproject <arg> - The name of the project to open in ChipScope Pro
  Analyzer. If you do not specify the project name, the default project name
  of csdefaultproj.cpj will be used. When you specify the project name, you
  should also specify the .cpj extension.

  Note: The project is created in the project/project.data/sources_1/cs folder.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example launches ChipScope Pro Analyzer, specifying the
  implementation run to use and the name of the ChipScope project to create:

    launch_chipscope_analyzer -run impl_3 -csproject impl_3_cs_project 
    

  The following example sets the add_step Bitgen property for the impl_4 run,
  launches the impl_4 run, and then launches the ChipScope Pro Analyzer on
  the specified run:

    set_property add_step Bitgen [get_runs impl_4]  
    launch_runs impl_4 -jobs 2  
    launch_chipscope_analyzer -run impl_4 
    

  Note: In this example the ChipScope project will be called csdefaultproj.cpj.

See Also:

   *  connect_debug_port
   *  create_debug_core
   *  create_debug_port
   *  launch_runs
   *  set_property
   *  write_bitstream


@@@COMMAND: launch_impact@@@
launch_impact

Description: 
Issues an error that you can not run this command

Syntax: 
launch_impact  [-run <arg>] [-ipf <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-run]      Implemented run to launch iMPACT with
  [-ipf]      Project for iMPACT
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
ToolLaunch

Description:

  Launch iMPACT to configure your device and generate programming files. You
  can also read back and verify design configuration data, debug
  configuration problems, or execute XSVF files.

  You must generate the bitstream file using write_bitstream prior to using
  iMPACT.

  The command returns the list of files read.

Arguments:

  -run - (Optional) Launch iMPACT with the specified run. If no run is
  specified, then iMPACT is launched with the active implementation run.

  -ipf - (Optional) Specify the iMPACT project file to use to save the
  results to. The iMPACT Project File (IPF) contains information from a
  previous session of iMPACT. The target device is configured according to
  the settings in the specified IPF file. If you do not specify -ipf, the
  target device is configured according to the default settings.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example launches iMPACT using the specified implementation run:

    launch_impact -run impl_3 
    

See Also:

   *  write_bitstream


@@@COMMAND: launch_runs@@@
launch_runs

Description: 
Launch a set of runs

Syntax: 
launch_runs  [-jobs <arg>] [-scripts_only] [-lsf <arg>] [-sge <arg>]
             [-cluster_configuration <arg>] [-dir <arg>] [-to_step <arg>]
             [-next_step] [-host <args>] [-remote_cmd <arg>] [-email_to <args>]
             [-email_all] [-pre_launch_script <arg>]
             [-post_launch_script <arg>] [-custom_script <arg>] [-force]
             [-quiet] [-verbose] <runs>...

Usage: 
  Name                      Description
  -------------------------------------
  [-jobs]                   Number of jobs
                            Default: 1
  [-scripts_only]           Only generate scripts
  [-lsf]                    Use LSF to launch jobs. Required argument is the 
                            bsub command line to pass to LSF
                            Default: empty
  [-sge]                    Use SGE to launch jobs. Required argument is the 
                            qsub command line to pass to SGE
                            Default: empty
  [-cluster_configuration]  Run jobs on a particular cluster configuration 
                            (picks cluster configuration from GUI settings).
                            Default: empty
  [-dir]                    Launch directory
  [-to_step]                Last Step to run. Ignored when launching multiple
                            runs. Not valid with -next_step
  [-next_step]              Run next step. Ignored when launching multiple 
                            runs. Not valid with -to_step.
  [-host]                   Launch on specified remote host with a specified 
                            number of jobs. Example: -host {machine1 2} -host
                            {machine2 4}
  [-remote_cmd]             Command to log in to remote hosts
                            Default: ssh -q -o ConnectTimeout=30 -o 
                            ConnectionAttempts=3 -o BatchMode=yes
  [-email_to]               List of email addresses to notify when jobs 
                            complete (only applicable with -host)
  [-email_all]              Send email after each job completes (only 
                            applicable with -host)
  [-pre_launch_script]      Script to run before launching each job (only 
                            applicable with -host)
  [-post_launch_script]     Script to run after each job completes (only 
                            applicable with -host)
  [-custom_script]          User run script map file which contains run name 
                            to user run script mapping
  [-force]                  Run the command, even if there are pending 
                            constraint changes, which will be lost (in a 
                            Dynamic Function eXchange design)
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution
  <runs>                    Runs to launch

Categories: 
Project

Description:

  Launches synthesis and implementation runs when running the AMD Vivado
  Design Suite in the Project Mode. Refer to the Vivado Design Suite User
  Guide: Design Flows Overview (UG892) for a complete description of Project
  Mode and Non-Project Mode.

  A run must be previously defined using the create_run command, and the
  properties of the run must be previously configured using the set_property
  command. Both synthesis and implementation runs can be specified in the
  same launch_runs command. However, to launch an implementation run, the
  parent synthesis run must already be complete.

  In Non-Project Mode, Vivado synthesis can be launched directly using the
  synth_design command, and does not require the use of a defined run.

  In Non-Project Mode, Vivado implementation steps can be launched
  individually with the opt_design, power_opt_design, place_design,
  route_design, phys_opt_design, and write_bitstream commands.

Arguments:

  -jobs <arg> - (Optional) The number of parallel jobs to run on the local
  host. The number of jobs for a remote host is specified as part of the
  -host argument. You do not need to specify both -jobs and -host.

  -scripts_only - (Optional) Generate a script called runme.bat for each
  specified run so you can queue the runs to be launched at a later time.

  -lsf <arg> - (Optional) Use IBM Platform Load Sharing Facility (LSF) to
  launch synthesis and implementation runs. The bsub command line to pass to
  LSF must be specified as a required argument.

  -sge <arg> - (Optional) Use Oracle Grid Engine or Sun Grid Engine (SGE) to
  launch synthesis and implementation runs. The qsub command line is a
  required argument to submit a job to SGE.

  -cluster_configuration <arg> - (Optional) Run jobs on a particular cluster
  configuration. Name of the cluster configuration is specified to submit a
  job on a particular cluster.

   *  To get the list of the cluster configurations, use the
      get_cluster_configurations command.

   *  To create a cluster configuration, use the create_cluster_configuration
      command.

   *  To remove a cluster configuration, use the
      remove_cluster_configurations command.

   *  To validate a cluster configuration, use the
      validate_cluster_configurations command.

  -dir <arg> - (Optional) The directory for the tool to write run results
  into. A separate folder for each run is created under the specified
  directory. As a default the tool will write the results of each run into a
  separate folder under the <project>.runs directory.

  -to_step <arg> - (Optional) Launch the run through the specified step in
  the implementation process, and then stop. For instance, run implementation
  through the place_design step, and then stop. This will allow you to look
  at specific stages of a run without completing the entire run. The
  following are the valid steps for implementation runs.

   *  opt_design - Optionally optimize the logical design to more efficiently
      use the target device resources. This step is usually enabled by
      default even though it is an optional step.

   *  power_opt_design - Optionally optimize elements of the logic design to
      reduce power demands of the implemented FPGA.

   *  place_design - Place logic cells onto the target device. This is a
      required step.

   *  power_opt_design (Post-Place) - Optionally optimize power demands of
      the placed logic elements. This step must be enclosed in quotes or
      braces since it includes multiple words (e.g. -to_step
      "power_opt_design (Post-Place)" ).

   *  phys_opt_design - Optionally optimize design timing by replicating
      drives of high-fanout nets to better distribute the loads.

   *  route_design - Route the connections of the design onto the target
      FPGA. This is a required step.

   *  write_bitstream - Generate a bitstream file for device configuration.
      This is a required step.

  Note: The specified -to_step must be enabled for the implementation run
  using the set_property command, or the Vivado tool will return an error.

  -next_step - (Optional) Continue a prior run from the step at which it was
  stopped. This option can be used to complete a run previously launched with
  the -to_step argument.

  Note: The -to_step and -next_step arguments may not be specified together,
  and are ignored when launching multiple runs.

  -host <args> - (Optional) Launch on the named remote host with a specified
  number of jobs. The argument is in the form of {<hostname> <jobs> }, for
  example: -host {machine1 2}. If the -host argument is not specified, the
  runs will be launched from the local host.

  Note: This argument is supported on the Linux platform only.

  -remote_cmd <arg> - (Optional) The command to use to login to the remote
  host to launch jobs. The default remote command is "ssh -q -o
  BatchMode=yes".

  -email_to <args> - (Optional) Email addresses to send a notification to
  when the runs have completed processing. This option also requires the use
  of -host with an SMTP server running to send Email notifications.

  -email_all - (Optional) Send a separate Email for each run as it completes.
  This option also requires the use of -host with an SMTP server running to
  send Email notifications.

  -pre_launch_script <arg> - (Optional) A shell script to run on the
  specified host before launching each job. This option also requires the use
  of -host.

  -post_launch_script <arg> - (Optional) A shell script to run on the
  specified host after completion of all jobs. This option also requires the
  use of -host.

  -custom_script <arg> - (Optional) Specify a script map file, which contains
  a mapping of run names and scripts to launch for that run.

  -force - (Optional) Launch the run regardless of any pending constraint
  changes for Partial Reconfiguration designs.

  Note: This argument applies only to Partial Reconfiguration projects. Any
  pending constraint changes will be lost to the specified runs.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <runs> - (Required) The names of synthesis and implementation runs to
  launch. One or more run names may be specified.

Examples:

  The following command launches three different synthesis runs with two
  parallel jobs:

    launch_runs synth_1 synth_2 synth_4 -jobs 2

  Note: The results for each run will be written to a separate folder
  synth_1, synth_2, and synth_4 inside of the <project>.runs directory.

  The following example creates a results directory to write run results. In
  this case a separate folder named impl_3, impl_4, and synth_3 will be
  written to the specified directory. In addition, the -scripts_only argument
  tells the tool to write runme.bat scripts to each of these folders but not
  to launch the runs at this time.

    launch_runs impl_3 impl_4 synth_3 -dir C:/Data/FPGA_Design/results -scripts_only

  The following example configures the impl_1 run, setting options for Vivado
  Implementation 2013, enabling some of the optional optimizations, and then
  launches the run to the place_design step:

    set_property flow {Vivado Implementation 2013} [get_runs impl_1]
    set_property STEPS.POWER_OPT_DESIGN.IS_ENABLED true [get_runs impl_1]
    set_property STEPS.POST_PLACE_POWER_OPT_DESIGN.IS_ENABLED true \
       [get_runs impl_1]
    set_property STEPS.PHYS_OPT_DESIGN.IS_ENABLED true [get_runs impl_1]
    launch_runs -to_step place_design impl_1

See Also:

   *  create_run
   *  get_runs
   *  opt_design
   *  phys_opt_design
   *  place_design
   *  power_opt_design
   *  reset_runs
   *  route_design
   *  set_property
   *  synth_design
   *  write_bitstream


@@@COMMAND: launch_sdk@@@
launch_sdk

Description: 
Launch Xilinx Software Development Kit (SDK)

Syntax: 
launch_sdk  [-bit <arg>] [-bmm <arg>] [-workspace <arg>] [-lp <arg>]
            [-hwspec <arg>] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  [-bit]        Specify the bitstream file for FPGA programming
  [-bmm]        Specify the BMM file for BRAM initialization
  [-workspace]  Specify the workspace directory for SDK projects
  [-lp]         Add <repository_path> to the list of Driver/OS/Library search
                directories.
  [-hwspec]     Specify the hardware platform specification file 
                (<system>.xml)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
ToolLaunch

Description:

  Launch the Software Development Kit (SDK) to design the software for a
  top-level design that includes a block design with an embedded processor
  like MicroBlaze, or Zynq-7000 SoC. Block designs are created in the IP
  integrator of the Vivado Design Suite with the create_bd_design command.

  This command uses the hardware definition file created by the write_sysdef
  command which is run automatically by the Vivado Design Suite after
  implementation and bitstream generation. The <top_level_design_name>.sysdef
  file is found in the runs/impl_1 folder.

  This command returns a transcript of the SDK tool launch.

Arguments:

  -bit <arg> - (Optional) Specify the bitstream file for FPGA programming.

  -bmm <arg> - (Optional) Specify the BMM file for BRAM initialization.

  -workspace <arg> - (Optional) Specify the workspace directory for SDK
  projects. This is the folder in which your software projects are stored.

  -lp <arg> - (Optional) Specify the library, or repository path, for
  Driver/OS/Library search directories. This is a collection of libraries and
  drivers that form the lowest layer of your application software stack.

  -hwspec <arg> - (Optional) Specify the hardware definition file created by
  the write_sysdef command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example launches SDK, loading the specified hardware
  definition file for the project, and indicates the workspace to use:

    launch_sdk -hwspec C:/Data/ug940/lab1/lab1.runs/impl_1/lab1.sysdef \  
      -workspace C:/Data/sdk_work/ 
    

See Also:

   *  write_hwdef
   *  write_sysdef


@@@COMMAND: launch_simulation@@@
launch_simulation

Description: 
Generate simulation scripts of the design and launch steps for the target simulator.


Syntax: 
launch_simulation  [-step <arg>] [-simset <arg>] [-mode <arg>] [-type <arg>]
                   [-scripts_only] [-gui] [-exec] [-of_objects <args>]
                   [-absolute_path] [-install_path <arg>]
                   [-gcc_install_path <arg>] [-noclean_dir] [-quiet] [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  [-step]              Launch a simulation step. Values: all, compile, 
                       elaborate, simulate. Default:all (launch all steps).
                       Default: all
  [-simset]            Name of the simulation fileset
  [-mode]              Simulation mode. Values: behavioral, post-synthesis, 
                       post-implementation
                       Default: behavioral
  [-type]              Netlist type. Values: functional, timing. This is only
                       applicable when mode is set to post-synthesis or 
                       post-implementation
  [-scripts_only]      Only generate scripts
  [-gui]               Invoke simulator GUI (applicable for -scripts_only 
                       mode)
  [-exec]              Execute existing script for the step specified with 
                       the -step switch
  [-of_objects]        Generate compile order file for this object 
                       (applicable with -scripts_only option only)
  [-absolute_path]     Make design source file paths in 'absolute' format
  [-install_path]      Custom installation directory path
  [-gcc_install_path]  Specify GNU compiler installation directory path for 
                       the g++/gcc executables
  [-noclean_dir]       Do not remove simulation run directory files
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
ToolLaunch, Simulation

Description:

  Launch a simulator to perform analysis and verification of a design.

  The launch_simulation command creates a script file for the target
  simulator and then executes this file in the simulation run directory. The
  simulation results are saved in the log files created in the run directory.

  To run simulation for a specific simulator, you must first define the
  target simulator by setting the TARGET_SIMULATOR property on the design
  project:

    set_property TARGET_SIMULATOR <name> [current_project]

  The TARGET_SIMULATOR property can have a value of XSim, ModelSim, Xcelium,
  VCS, Riviera, or ActiveHDL. The default value is XSim, the Vivado
  simulator.
  
  Supported simulator versions.

   *  xsim - Vivado Simulator version 2023.2
   *  modelsim - ModelSim Simulator version 2023.2 or later
   *  questa - Questa Advanced Simulator version 2023.2 or later
   *  xcelium - (Linux only) Xcelium Parallel Simulator version 23.03.002 or
      later
   *  vcs - (Linux only) Verilog Compiler Simulator version U-2023.03-1 or
      later
   *  riviera - Riviera-PRO Simulator version 2022.10 or later
   *  activehdl - (Windows only) Active-HDL Simulator version 14.0

  The target simulator can also be defined from the Vivado IDE. Create or
  open a project, select Tools > Settings > Simulation menu item, and select
  the Target simulator from the drop-down menu. The available choices are:
  Vivado simulator, ModelSim Simulator, Questa Advanced Simulator, Xcelium
  Parallel Simulator, Verilog Compiler Simulator (VCS), Riviera-PRO
  Simulator, and Active-HDL Simulator.

  Tip: Some of these simulators are only available on Linux and some are only
  available on Windows.

  The launch_simulation command uses a three-step process comprised of
  compile, elaborate, and simulate steps. A script file for the target
  simulator is created for each step in the process, (compile.bat,
  elaborate.bat, simulate.bat), and written to the simulation run directory.

  Tip: On Linux the script files are named with the .sh suffix instead of .bat.

  By default, launch_simulation will run these script files in sequence to
  run the simulation. You can create the scripts without running them by
  using the -scripts_only option.

  This command returns a transcript of its process, or returns an error if it
  fails.

Arguments:

  -simset <arg> - (Optional) The name of the simulation fileset containing
  the simulation test benches and sources to be used during simulation. If
  not specified, the current simulation fileset is used.

  -mode [ behavioral | post-synthesis | post-implementation ] - (Optional)
  Specifies either a behavioral simulation of the HDL design sources to
  verify syntax and confirm that the design performs as intended, a
  functional or timing simulation of the post-synthesis netlist, or a
  functional or timing simulation of the post implementation design to verify
  circuit operation after place and route. The default mode is behavioral.

  -type [ functional | timing ] - (Optional) Specifies functional simulation
  of just the netlist, or timing simulation of the netlist and SDF file. This
  option must be specified with -mode for post-synthesis or
  post-implementation, but cannot be used with -mode behavioral.
  Post-synthesis timing simulation uses SDF component delays from the
  synth_design command. Post-implementation timing simulation uses SDF delays
  from the place_design and route_design commands.

  Important: Do not use -type with -mode behavioral, or the tool will return
  an error.

  -scripts_only - (Optional) Only generate the simulation scripts for the
  target simulator, rather than actually launching these scripts to start the
  "compile", "elaborate" and "simulate" steps. You can use the scripts to
  launch the simulation flow at a later time.

  -gui - (Optional) Invoke simulator in GUI mode when executing the simulate
  script (applicable for scripts only mode)

  -of_objects <arg> - (Optional) Run simulation for a single specified
  sub-design, or composite file. The sub-design must be specified as a design
  object as returned by the get_files command, rather than simply specified
  by name.

  -absolute_path - (Optional) Specify this option to define the source and
  include paths used in the simulation scripts as absolute paths. By default,
  all paths are written as relative to the simulation run directory. Relative
  paths include an "origin_dir" variable that is set in the simulation script
  to the current run directory, but you can edit the $origin_dir variable to
  point to a path of your choice when relocating the design and simulation
  scripts.

  -install_path <arg> - (Optional) Specifies the directory containing
  simulator executables ( e.g. vlog.exe, ncvlog, vlogan). If this option is
  not specified, the target simulator will be looked for in the current
  $PATH.

  -gcc_install_path <arg> - (Optional) Specifies the directory containing
  simulator GCC executables (e.g. gcc, g++). If this switch is not specified,
  then the directory path will be determined from the project property named
  "simulator.<name>_gcc_install_dir". If this property is not set, then the
  path set by the GCC_SIM_EXE_PATH environment variable will be used. If this
  variable is not set, then launch_simulation will automatically try to
  calculate the path from the simulator installation. If not able to
  determine, the path will then be searched from the $PATH (Linux) or %PATH%
  (Windows) environment variable.

  Supported GCC versions.

   *  xsim - 9.3.0
   *  questa - 7.4.0
   *  xcelium - 9.3.0
   *  vcs - 9.2.0
   *  riviera - 9.3.0

  -noclean_dir - (Optional) Do not remove files from the simulation run
  directory prior to launching the simulator. The default behavior is to
  remove files from the simulation run directory to create a clean start.
  With the -noclean_dir option, existing files in the run directory are left
  in place. However, some of the files generated for use by the simulator
  will be overwritten or updated by re-launching the simulator.

  -step - (Optional) Specifies the simulation step to be launched. The valid
  steps are: compile, elaborate, and simulate.

  Tip: By default, all the steps will be executed.

  -exec - (Optional) Execute script for the step specified with the -step
  switch. The script must be generated first and should be present in the
  simulation run directory.

  Note: This switch is applicable with the -step only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following commands run behavioral simulation of the design using the
  Vivado simulator:

    set_property target_simulator "XSim" [current_project]
    launch_simulation

  The following commands run post-synthesis functional simulation of the
  design using the ModelSim Simulator:

    set_property target_simulator "ModelSim" [current_project]
    launch_simulation -mode "post-synthesis" -type "functional"

  The following commands run post-implementation functional simulation of the
  design using the Cadence Xcelium Simulator:

    set_property target_simulator "Xcelium" [current_project]
    launch_simulation -mode "post-implementation" -type "functional"

  The following commands run post-implementation timing simulation of the
  design using the Synopsys VCS Simulator:

    set_property target_simulator "VCS" [current_project]
    launch_simulation -mode "post-implementation" -type "timing"

  The following command generates behavioral simulation scripts for the
  target simulator in the simulation run directory:

    launch_simulation -scripts_only

  The following command will setup the target simulator command in the script
  to run in the GUI mode:

    launch_simulation -scripts_only -gui

  The following command will generate and execute compile step:

    launch_simulation -step compile

  The following command will execute elaborate step by executing the existing
  elaborate script in the simulation run directory:

    launch_simulation -step elaborate -exec

  The following commands run behavioral simulation flow of the design for the
  my_simset simulation fileset for the target simulator in the simulation run
  directory:

    launch_simulation -simset [get_filesets my_simset]

  The following command runs behavioral simulation flow for the char_fifo.xci
  IP for the target simulator in the simulation run directory, and does not
  clean up prior simulation files:

    launch_simulation -noclean_dir -of_objects [get_files char_fifo.xci]

  The following command generates absolute paths for the source files in the
  generated script files:

    launch_simulation -absolute_path

  The following command will pick the Xcelium simulator tools from the
  specified installation path instead of from the PATH variable:

  launch_simulation -install_path /tools/20.09.006/tools/xcelium/bin

See Also:

   *  close_sim
   *  current_sim
   *  relaunch_sim
   *  xsim


@@@COMMAND: lindex@@@
lindex(n)             Tcl Built-In Commands             lindex(n)



_________________________________________________________________

NAME
       lindex - Retrieve an element from a list

SYNOPSIS
       lindex list ?index...?
_________________________________________________________________

DESCRIPTION
       The  lindex  command  accepts  a parameter, list, which it
       treats as a Tcl list. It also accepts zero or more indices
       into  the  list.  The indices may be presented either con-
       secutively on the command line, or grouped in a  Tcl  list
       and presented as a single argument.

       If no indices are presented, the command takes the form:
              lindex list
       or
              lindex list {}
       In  this  case,  the  return value of lindex is simply the
       value of the list parameter.

       When presented with a single  index,  the  lindex  command
       treats list as a Tcl list and returns the index'th element
       from it (0 refers to the first element of the  list).   In
       extracting  the  element,  lindex  observes the same rules
       concerning braces and quotes and backslashes  as  the  Tcl
       command  interpreter;  however,  variable substitution and
       command substitution do not occur.  If index  is  negative
       or  greater  than  or  equal  to the number of elements in
       value, then an empty string is returned.  The  interpreta- |
       tion  of  each  simple  index value is the same as for the |
       command string index, supporting simple  index  arithmetic |
       and indices relative to the end of the list.

       If  additional  index  arguments  are  supplied, then each
       argument is used in turn to select  an  element  from  the
       previous indexing operation, allowing the script to select
       elements from sublists.  The command,
              lindex $a 1 2 3
       or
              lindex $a {1 2 3}
       is synonymous with
              lindex [lindex [lindex $a 1] 2] 3

EXAMPLES
              lindex {a b c}
                    -> a b c
              lindex {a b c} {}
                    -> a b c
              lindex {a b c} 0
                    -> a
              lindex {a b c} 2
                    -> c
              lindex {a b c} end
                    -> c
              lindex {a b c} end-1
                    -> b
              lindex {{a b c} {d e f} {g h i}} 2 1
                    -> h
              lindex {{a b c} {d e f} {g h i}} {2 1}
                    -> h
              lindex {{{a b} {c d}} {{e f} {g h}}} 1 1 0
                    -> g
              lindex {{{a b} {c d}} {{e f} {g h}}} {1 1 0}
                    -> g

SEE ALSO
       list(n), lappend(n), linsert(n),  llength(n),  lsearch(n),
       lset(n), lsort(n), lrange(n), lreplace(n), string(n)       |


KEYWORDS
       element, index, list



Tcl                            8.4                      lindex(n)


@@@COMMAND: link_design@@@
link_design

Description: 
Open a netlist design

Syntax: 
link_design  [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>]
             [-mode <arg>] [-pr_config <arg>] [-reconfig_partitions <args>]
             [-partitions <args>] [-ignore_timing] [-quiet] [-verbose]

Returns: 
design object

Usage: 
  Name                    Description
  -----------------------------------
  [-name]                 Design name
  [-part]                 Target part
  [-constrset]            Constraint fileset to use
  [-top]                  Specify the top module name when the structural 
                          netlist is Verilog
  [-mode]                 The design mode. Values: default, out_of_context
                          Default: default
  [-pr_config]            PR Configuration to apply while opening the design
  [-reconfig_partitions]  List of reconfigurable partitions to load while 
                          opening the design
  [-partitions]           List of partitions to load while opening the design
  [-ignore_timing]        open a netlist design without the timing 
                          constraints.
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
Tools

Description:

  Opens a new or existing netlist design, linking the netlist files and
  constraints with the target part to create the design. This command is
  intended for use with netlist source files, such as files generated by
  third party synthesis tools, or AMD Vivado synthesis through the
  synth_design command.

  The DESIGN_MODE property for the current source fileset must be defined as
  GateLvl in order to open a netlist design. If not, you will get the
  following error:

    ERROR: The design mode of `sources_1` must be GateLvl.

  The -top switch is required for third-party synthesis designs. The netlist
  for the design must be rooted in a specific module. For project-based
  designs you can specify the TOP property on the project. However, in
  non-project mode, you must use the -top option for the link_design command.

  For project based designs with RTL source files, use launch_runs to launch
  synthesis or implementation, and then use the open_run command to open the
  design.

  For non-project based designs, use the open_checkpoint command to open a
  checkpoint into memory, opening the design in Non-Project Mode. Refer to
  the Vivado Design Suite User Guide: Design Flows Overview (UG892) for more
  information on Project Mode and Non-Project Mode.

Arguments:

  -name <arg> - (Optional) This is the name assigned to the netlist design
  when it is opened by the Vivado tool. This name is for reference purposes,
  and has nothing to do with the top-level of the design or any logic
  contained within.

  -part <arg> - (Optional) The device to use when creating a new design. If
  the part is not specified the default part will be used.

  -constrset <arg> - (Optional) The name of the constraint fileset to use
  when opening the design.

  Note: The -constrset argument must refer to a constraint fileset that
  exists. It cannot be used to create a new fileset. Use create_fileset for
  that purpose.

  -top <arg> - (Optional) The name of the top module of the design hierarchy
  of the netlist.

  Important: When specifying -top with an EDIF netlist-based design, or
  design checkpoint (DCP) file, the name of the top-level cell must match the
  top-level cell defined in the EDIF or DCP file.

  -mode [ default | out_of_context ] - (Optional) If you have synthesized a
  block, and disabled IO buffer insertion, you can load the resulting EDIF
  into the Vivado Design Suite using -mode out_of_context. This enables
  implementation of the module without IO buffers, prevents optimization due
  to unconnected inputs or outputs, and adjusts DRC rules appropriately for
  the design. Refer to the Vivado Design Suite User Guide: Hierarchical
  Design (UG905) for more information.

  -pr_config <arg> - (Optional) For the Partial Reconfiguration (PR)
  project-based design flow, this option specifies the PR Configuration to
  apply while opening the design. For PR designs, the create_pr_configuration
  command lets you associate a Reconfigurable Module (RM) with each Partition
  Definition in the design. This option tells the Vivado tool to link the
  design checkpoint files for the RMs into the design. See the Vivado Design
  Suite User Guide: Dynamic Function eXchange (UG909) for more information.

  -reconfig_partitions <args> - (Optional) Specify a list of reconfigurable
  partitions to load while opening the design. The specified reconfigurable
  partitions are marked with the HD.RECONFIGURABLE property for proper
  handling in the design.

  -partitions <args> - (Optional) List of hierarchical design partitions to
  load while opening the design. Hierarchical design partitions are marked
  with the HD.PARTITION property. See the Vivado Design Suite User Guide:
  Hierarchical Design (UG905) for more information.

  -ignore_timing - (Optional) open a netlist design without the timing
  constraints. This can be used to quickly open a design for evaluation,
  separate from the timing constraints.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following creates a new netlist design called Net1:

    link_design -name Net1

  Note: The default source set, constraint set, and part will be used in this
  example.

  The following example opens a netlist design called Net1, and specifies the
  constraint set to be used:

    link_design -name Net1 -constrset con1

See Also:

   *  launch_runs
   *  open_checkpoint
   *  open_run
   *  synth_design


@@@COMMAND: linsert@@@
linsert(n)            Tcl Built-In Commands            linsert(n)



_________________________________________________________________

NAME
       linsert - Insert elements into a list

SYNOPSIS
       linsert list index element ?element element ...?
_________________________________________________________________


DESCRIPTION
       This  command  produces  a new list from list by inserting
       all of the element arguments just before the index'th ele-
       ment  of  list.  Each element argument will become a sepa-
       rate element of the new list.  If index is  less  than  or
       equal  to  zero, then the new elements are inserted at the
       beginning of the list.  The interpretation  of  the  index |
       value  is  the  same as for the command string index, sup- |
       porting simple index arithmetic and  indices  relative  to |
       the end of the list.

EXAMPLE
       Putting  some  values into a list, first indexing from the
       start and then indexing from the end,  and  then  chaining
       them together:
              set oldList {the fox jumps over the dog}
              set midList [linsert $oldList 1 quick]
              set newList [linsert $midList end-1 lazy]
              # The old lists still exist though...
              set newerList [linsert [linsert $oldList end-1 quick] 1 lazy]


SEE ALSO
       list(n),  lappend(n),  lindex(n),  llength(n), lsearch(n),
       lset(n), lsort(n), lrange(n), lreplace(n), string(n)       |


KEYWORDS
       element, insert, list



Tcl                            8.2                     linsert(n)


@@@COMMAND: lint_files@@@
lint_files

Description: 
Run the Tcl linter on specified files.

Syntax: 
lint_files  [-quiet] [-verbose] [<files>...]

Returns: 
nothing.

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<files>]   List of Tcl files to lint

Categories: 
Tools


@@@COMMAND: list@@@
list(n)               Tcl Built-In Commands               list(n)



_________________________________________________________________

NAME
       list - Create a list

SYNOPSIS
       list ?arg arg ...?
_________________________________________________________________


DESCRIPTION
       This  command returns a list comprised of all the args, or
       an empty string if no  args  are  specified.   Braces  and
       backslashes  get  added  as  necessary, so that the lindex
       command may be used on the result to re-extract the origi-
       nal  arguments,  and also so that eval may be used to exe-
       cute the resulting list, with  arg1  comprising  the  com-
       mand's  name  and the other args comprising its arguments.
       List produces  slightly  different  results  than  concat:
       concat  removes  one  level of grouping before forming the
       list, while list works directly from  the  original  argu-
       ments.

EXAMPLE
       The command
              list a b "c d e  " "  f {g h}"
       will return
              a b {c d e  } {  f {g h}}
       while concat with the same arguments will return
              a b c d e f {g h}


SEE ALSO
       lappend(n),  lindex(n), linsert(n), llength(n), lrange(n), |
       lrepeat(n), lreplace(n), lsearch(n), lset(n), lsort(n)


KEYWORDS
       element, list



Tcl                                                       list(n)


@@@COMMAND: list_board_parameters@@@
list_board_parameters

Description: 
Get the list of parameters supported by board.xml file

Syntax: 
list_board_parameters  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object, Board


@@@COMMAND: list_features@@@
list_features

Description: 
List available features.

Syntax: 
list_features  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Tools

Description:

  In order to reduce the memory footprint of the AMD Vivado Design Suite,
  there are groups of Tcl commands called "features" which are unavailable
  for use until you run a command from that feature set, or unless you
  explicitly load the feature using the load_features command.

  This command lists the available features sets of the Vivado Design Suite
  that can be loaded with the load_features command.

  Note: If a feature has been previously loaded, it will not be listed as a
  feature available to load.

  This command returns a list of features, or an error message.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the list of features available to load into
  the Vivado Design Suite:

    list_features

See Also:

   *  help
   *  load_features


@@@COMMAND: list_hierarchical_cells@@@
list_hierarchical_cells

Description: 
Returns the hierarchical paths of instances for the named reference.

Syntax: 
list_hierarchical_cells  [-fileset <arg>] [-top_only] [-quiet] [-verbose]
                         [<reference_name>]

Returns: 
list of hierarchical paths

Usage: 
  Name                Description
  -------------------------------
  [-fileset]          Specifies the fileset to operate on
  [-top_only]         Only walk and list the hierarchy associated with the 
                      active top
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution
  [<reference_name>]  Specifies the name of the module/entity

Categories: 
Project


@@@COMMAND: list_param@@@
list_param

Description: 
Get all parameter names

Syntax: 
list_param  [-quiet] [-verbose]

Returns: 
list

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
PropertyAndParameter

Description:

  Gets a list of user-definable configuration parameters. These parameters
  configure a variety of settings and behaviors of the tool. For more
  information on a specific parameter use the report_param command, which
  returns a description of the parameter as well as its current value.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns a list of all user-definable parameters:

    list_param 
    

See Also:

   *  get_param
   *  report_param
   *  reset_param
   *  set_param


@@@COMMAND: list_property@@@
list_property

Description: 
List properties of object

Syntax: 
list_property  [-class <arg>] [-regexp] [-quiet] [-verbose] [<object>]
               [<pattern>]

Returns: 
list of property names

Usage: 
  Name         Description
  ------------------------
  [-class]     Object type to query for properties. Ignored if object is 
               specified.
  [-regexp]    Pattern is treated as a regular expression
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<object>]   Object to query for properties
  [<pattern>]  Pattern to match properties against
               Default: *

Categories: 
Object, PropertyAndParameter

Description:

  Gets a list of all properties on a specified object or class.

  Note: report_property also returns a list of properties on an object or
  class of objects, but also reports the property type and property value.

Arguments:

  -class <arg> - (Optional) Return the properties of the specified class
  instead of a specific object. The class argument is case sensitive, and
  most class names are lower case.

  Note: -class cannot be used together with an <object>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <object> - (Optional) A single object on which to report properties.

  Note: If you specify multiple objects you will get an error.

  <pattern> - (Optional) Match the available properties on the <object> or
  -class against the specified search pattern. The <pattern> applies to the
  property name, and only properties matching the specified pattern will be
  reported. The default pattern is the wildcard `*` which returns a list of
  all properties on the specified object.

  Note: The search pattern is case sensitive, and most properties are UPPER
  case.

Examples:

  The following example returns all properties of the specified CELL object:

    list_property [get_cells cpuEngine] 
    

  The following example returns the properties matching the specified search
  pattern from the BEL class of objects:

    list_property -class bel *NUM* 
    

See Also:

   *  create_property
   *  get_cells
   *  get_property
   *  list_property_value
   *  report_property
   *  reset_property
   *  set_property


@@@COMMAND: list_property_value@@@
list_property_value

Description: 
List legal property values of object

Syntax: 
list_property_value  [-default] [-class <arg>] [-quiet] [-verbose] <name>
                     [<object>]

Returns: 
list of property values

Usage: 
  Name        Description
  -----------------------
  [-default]  Show only the default value.
  [-class]    Object type to query for legal property values. Ignored if 
              object is specified.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of property whose legal values is to be retrieved
  [<object>]  Object to query for legal properties values

Categories: 
Object, PropertyAndParameter

Description:

  Gets a list of valid values for an enumerated type property of either a
  class of objects or a specific object.

  Note: The command cannot be used to return valid values for properties
  other than Enum properties. The report_property command will return the
  type of property to help you identify Enum properties.

Arguments:

  -default - (Optional) Return the default property value for the specified
  class of objects.

  -class <arg> - (Optional) Return the property values of the specified class
  instead of a specific object. The class argument is case sensitive, and
  most class names are lower case.

  Note: -class cannot be used together with an <object>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the property to be queried. Only properties
  with an enumerated value, or a predefined value set, can be queried with
  this command. All valid values of the specified property will be returned.

  <object> - (Optional) A single object on which to report properties.

  Note: If you specify multiple objects you will get an error.

Examples:

  The following example returns the list of valid values for the
  KEEP_HIERARCHY property from cell objects:

    list_property_value KEEP_HIERARCHY -class cell 
    

  The following example returns the same result, but uses an actual cell
  object in place of the general cell class:

    list_property_value KEEP_HIERARCHY [get_cells cpuEngine] 
    

  The following example returns the default value for the specified property
  by using the current design as a representative of the design class:

    list_property_value -default BITSTREAM.GENERAL.COMPRESS [current_design] 
    

See Also:

   *  create_property
   *  current_design
   *  get_cells
   *  get_property
   *  list_property
   *  report_property
   *  reset_property
   *  set_property


@@@COMMAND: list_repo_boards@@@
list_repo_boards

Description: 
List available boards from Board Store

Syntax: 
list_repo_boards  [-quiet] [-verbose] [<board>]

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<board>]   Name of boards to list, default is to list all boards

Categories: 
Tools


@@@COMMAND: list_targets@@@
list_targets

Description: 
List applicable targets for the specified source

Syntax: 
list_targets  [-quiet] [-verbose] <files>

Returns: 
list of targets

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <files>     Source file for which the targets needs to be listed

Categories: 
Project

Description:

  List the targets that are available for a specified IP core, DSP module, or
  IP Subsystem. The following file types are accepted: .xci, .xco, .mdl, .bd,
  .bxml.

  Use the generate_targets command to generate the listed targets.

  The command returns the list of available targets. If no targets are
  available for the specified file objects, nothing is returned.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) A files object that contains the list of source files
  to evaluate.

  Note: Use get_files to specify a files object, rather than specifying a
  file name.

Examples:

  The following example lists the available targets for any DSP modules in
  the design:

    list_targets [get_files *.mdl] 
    

See Also:

   *  create_bd_design
   *  generate_target
   *  get_files
   *  import_ip
   *  read_ip


@@@COMMAND: llength@@@
llength(n)            Tcl Built-In Commands            llength(n)



_________________________________________________________________

NAME
       llength - Count the number of elements in a list

SYNOPSIS
       llength list
_________________________________________________________________


DESCRIPTION
       Treats  list as a list and returns a decimal string giving
       the number of elements in it.


EXAMPLES
       The result is the number of elements:
              % llength {a b c d e}
              5
              % llength {a b c}
              3
              % llength {}
              0

       Elements are not guaranteed to be exactly words in a  dic-
       tionary sense of course, especially when quoting is used:
              % llength {a b {c d} e}
              4
              % llength {a b { } c d e}
              6

       An empty list is not necessarily an empty string:
              % set var { }; puts "[string length $var],[llength $var]"
              1,0


SEE ALSO
       list(n),  lappend(n),  lindex(n),  linsert(n), lsearch(n),
       lset(n), lsort(n), lrange(n), lreplace(n)


KEYWORDS
       element, list, length



Tcl                                                    llength(n)


@@@COMMAND: load@@@
load(n)               Tcl Built-In Commands               load(n)



_________________________________________________________________

NAME
       load - Load machine code and initialize new commands

SYNOPSIS
       load fileName
       load fileName packageName
       load fileName packageName interp
_________________________________________________________________


DESCRIPTION
       This command loads binary code from a file into the appli-
       cation's address space and calls an initialization  proce-
       dure in the package to incorporate it into an interpreter.
       fileName is the name of the file containing the code;  its
       exact  form  varies from system to system but on most sys-
       tems it is a shared library, such  as  a  .so  file  under
       Solaris  or  a DLL under Windows.  packageName is the name
       of the package, and is used to compute the name of an ini-
       tialization  procedure.   interp  is  the path name of the
       interpreter into which to load the package (see the interp
       manual  entry  for  details);  if  interp  is  omitted, it
       defaults to the interpreter in which the load command  was
       invoked.

       Once  the  file  has  been  loaded  into the application's
       address space, one of two initialization  procedures  will
       be  invoked in the new code.  Typically the initialization
       procedure will add new commands to a Tcl interpreter.  The
       name  of  the  initialization  procedure  is determined by
       packageName and whether or not the target interpreter is a
       safe  one.   For  normal interpreters the name of the ini-
       tialization procedure will have the form  pkg_Init,  where
       pkg  is the same as packageName except that the first let-
       ter is converted to upper case and all other  letters  are
       converted  to  lower case.  For example, if packageName is
       foo or FOo, the initialization procedure's  name  will  be
       Foo_Init.

       If  the target interpreter is a safe interpreter, then the
       name of the initialization procedure will be  pkg_SafeInit
       instead  of pkg_Init.  The pkg_SafeInit function should be
       written carefully, so that it initializes the safe  inter-
       preter  only  with  partial  functionality provided by the
       package that is safe for use by untrusted code.  For  more
       information on Safe-Tcl, see the safe manual entry.

       The initialization procedure must match the following pro-
       totype:
              typedef int Tcl_PackageInitProc(Tcl_Interp *interp);
       The interp argument identifies the  interpreter  in  which
       the package is to be loaded.  The initialization procedure
       must return TCL_OK or TCL_ERROR to indicate whether or not
       it  completed  successfully;   in the event of an error it
       should set the interpreter's result to point to  an  error
       message.   The  result  of  the  load  command will be the
       result returned by the initialization procedure.

       The actual loading of a file will only be  done  once  for
       each  fileName  in an application.  If a given fileName is
       loaded into multiple interpreters,  then  the  first  load
       will  load the code and call the initialization procedure;
       subsequent loads will call  the  initialization  procedure
       without  loading  the  code again.  For Tcl versions lower |
       than 8.5, it is not possible to unload or reload  a  pack- |
       age.  From  version 8.5 however, the unload command allows |
       the unloading of libraries loaded with load, for libraries |
       that are aware of the Tcl's unloading mechanism.

       The  load  command  also supports packages that are stati-
       cally linked with the application, if those packages  have
       been  registered  by  calling the Tcl_StaticPackage proce-
       dure.  If fileName is an empty  string,  then  packageName
       must be specified.

       If packageName is omitted or specified as an empty string,
       Tcl tries to guess the name of the package.  This  may  be
       done  differently  on  different  platforms.   The default
       guess, which is used on most UNIX platforms,  is  to  take
       the  last  element  of fileName, strip off the first three
       characters if they are lib, and use any  following  alpha-
       betic  and  underline  characters as the module name.  For
       example, the command load  libxyz4.2.so  uses  the  module
       name xyz and the command load bin/last.so {} uses the mod-
       ule name last.

       If fileName is an empty string, then packageName  must  be
       specified.   The  load command first searches for a stati-
       cally loaded package (one  that  has  been  registered  by
       calling  the Tcl_StaticPackage procedure) by that name; if
       one is found, it is used.   Otherwise,  the  load  command
       searches  for  a  dynamically loaded package by that name,
       and uses it if it is found.  If  several  different  files
       have  been  loaded with different versions of the package,
       Tcl picks the file that was loaded first.

PORTABILITY ISSUES
       Windows
              When a load fails with "library not  found"  error,
              it  is  also  possible that a dependent library was
              not found.  To see the  dependent  libraries,  type
              "dumpbin  -imports  <dllname>"  in a DOS console to
              see what the library must import.  When  loading  a
              DLL  in  the current directory, Windows will ignore
              "./" as a path specifier and use a search heuristic
              to  find  the DLL instead.  To avoid this, load the
              DLL with:
              load [file join [pwd] mylib.DLL]

BUGS
       If the same file is loaded by different fileNames, it will
       be loaded into the process's address space multiple times.
       The behavior of this varies from system  to  system  (some
       systems may detect the redundant loads, others may not).

EXAMPLE
       The following is a minimal extension:

              #include <tcl.h>
              #include <stdio.h>
              static int fooCmd(ClientData clientData,
                      Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) {
                  printf("called with %d arguments\n", objc);
                  return TCL_OK;
              }
              int Foo_Init(Tcl_Interp *interp) {
                  if (Tcl_InitStubs(interp, "8.1", 0) == NULL) {
                return TCL_ERROR;
                  }
                  printf("creating foo command");
                  Tcl_CreateObjCommand(interp, "foo", fooCmd, NULL, NULL);
                  return TCL_OK;
              }

       When  built  into a shared/dynamic library with a suitable
       name (e.g. foo.dll on Windows, libfoo.so  on  Solaris  and
       Linux) it can then be loaded into Tcl with the following:

              # Load the extension
              switch $tcl_platform(platform) {
                 windows {
                    load [file join [pwd] foo.dll]
                 }
                 unix {
                    load [file join [pwd] libfoo[info sharedlibextension]]
                 }
              }

              # Now execute the command defined by the extension
              foo


SEE ALSO
       info sharedlibextension, Tcl_StaticPackage(3), safe(n)


KEYWORDS
       binary code, loading, safe interpreter, shared library



Tcl                            7.5                        load(n)


@@@COMMAND: load_core_init@@@
load_core_init

Description: 
Load parts, drc checks and init scripts

Syntax: 
load_core_init  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Object


@@@COMMAND: load_features@@@
load_features

Description: 
Load Tcl commands for a specified feature.

Syntax: 
load_features  [-quiet] [-verbose] [<features>...]

Usage: 
  Name          Description
  -------------------------
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<features>]  Feature(s) to load, use list_features for a list of available 
                features.

Categories: 
Tools

Description:

  Load the specified features of the AMD Vivado Design Suite into memory.

  In order to reduce the memory footprint of the Vivado Design Suite, there
  are groups of Tcl commands called "features" which are unavailable for use
  until you run a command from that feature set, or unless you explicitly
  load the feature using the load_features command.

  For example, the load_features simulator command loads the commands for the
  Vivado simulator, as does directly launching the Vivado simulator using the
  launch_xsim command.

  To access the complete list of Tcl commands associated with a feature of
  the Vivado Design Suite, and the help text for these commands, you can load
  the feature into the application memory using the load_features command
  without actually running the feature of the tool.

  You can list the features that are available to be loaded using the
  list_features command. The list of features is dynamic, and changes from
  release to release.

  The command returns nothing if successful, or an error message if failed.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <features> - List of features to load.

Examples:

  The following example loads the Vivado simulator feature:

    load_features simulator

  The following example loads all of the loadable feature sets of the Vivado
  Design Suite:

    load_features [list_features]

See Also:

   *  help
   *  list_features


@@@COMMAND: load_msg_db@@@
load_msg_db

Description: 
Load Message Db file

Syntax: 
load_msg_db  [-file <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-file]     Message file to be loaded
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Report


@@@COMMAND: lock_design@@@
lock_design

Description: 
Locks or unlocks netlist, placement or routing of a design. The 'lock/unlock' will only applied on physically placed cells and routed nets

Syntax: 
lock_design  [-level <arg>] [-unlock] [-export] [-quiet] [-verbose] [<cell>]

Usage: 
  Name        Description
  -----------------------
  [-level]    specify the locking and unlocking level;  Valid values are 
              logical, placement, and routing.
              Default: placement
  [-unlock]   Unlock cells, if cells are not specified, whole design is 
              unlocked;  '-level' parameter must be specified for unlocking.
  [-export]   mark that the constraints can be exported.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<cell>]    Lock cells, if cells are not specified, whole design is locked.
              Notice only placed cells and routed nets will be locked.
              Default: *

Categories: 
Project

Description:

  This command is used in the Hierarchical Design Flows for Design
  Preservation and Dynamic Function eXchange (DFX). Refer to the Vivado
  Design Suite User Guide: Hierarchical Design (UG905) for more information
  on these design flows, and the use of this command.

  The lock_design command is used to lock down the placement and/or routing
  of a design, or of the specified cell of a design. After reading in an
  Out-of-Context (OOC) design checkpoint using the read_checkpoint command,
  the preservation level for the module must be defined.

  This command sets the IS_LOC_FIXED, IS_BEL_FIXED, and IS_ROUTE_FIXED
  properties of the specified logic.

Arguments:

  -level <arg> - (Optional) Specify the level of the cell or design to
  preserve in the current design. As a default, the placement data is
  preserved. Accepted values are:

   *  logical - Preserves the logical design. Any placement or routing
      information is still used, but can be changed if the tools can achieve
      better results.

   *  placement - Preserves the logical and placed design. Any routing
      information is still used, but can be changed if the tools can achieve
      better results. This is the default setting.

   *  routing - Preserves the logical, placed and routed design. Internal
      routes are preserved, but interface nets are not. In order to preserve
      routing, the CONTAIN_ROUTING property must have been used on the Pblock
      during the OOC implementation. This ensures that there will be no
      routing conflicts when the OOC implementation is reused.

  -unlock - (Optional) Unlock cells. If cells are not specified, the whole
  design is unlocked. The -level option must be specified for unlocking, just
  as it was for locking.

  Tip: Locking -level routing locks the logical, placement, and routing data
  of the design. However -unlock -level routing only unlocks the routing
  data. You must use -unlock -level logical to unlock the routing, placement,
  and logical data of the design.

  -export - (Optional) Permit the export the placement and routing data as an
  XDC file. The constraints of a locked design or cell can be exported using
  the write_xdc command. By default, the constraints of a locked design or
  cell cannot be exported.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cell> - (Optional) Lock the specified cells in the design, if cells are
  not specified, the whole design is locked. The default is to lock all cells
  in the design.

  Tip: Only placed cells and routed nets will be locked at the level specified.

Examples:

  The following example locks the netlist, placement, and routing data for
  the specified cells of the current design:

    lock_design -level routing [get_cells usbEngine*]

  This example unlocks the routing data for the specified cells of the
  current design, while leaving the netlist and placement data locked from
  the prior example:

    lock_design -unlock -level routing [get_cells usbEngine*]

  The following example unlocks the routing, placement, and netlist data for
  the specified cells of the current design:

    lock_design -unlock -level logical [get_cells usbEngine*]

See Also:

   *  read_checkpoint
   *  write_xdc


@@@COMMAND: lrange@@@
lrange(n)             Tcl Built-In Commands             lrange(n)



_________________________________________________________________

NAME
       lrange - Return one or more adjacent elements from a list

SYNOPSIS
       lrange list first last
_________________________________________________________________


DESCRIPTION
       List must be a valid Tcl list.  This command will return a
       new list consisting of elements first through last, inclu-
       sive.  The index values first and last are interpreted the |
       same as index values for the command  string  index,  sup- |
       porting  simple  index  arithmetic and indices relative to |
       the end of the list.  If first is less than  zero,  it  is
       treated  as  if  it were zero.  If last is greater than or
       equal to the number of elements in the list,  then  it  is
       treated  as if it were end.  If first is greater than last
       then an empty string  is  returned.   Note:  "lrange  list
       first  first"  does  not always produce the same result as
       "lindex list first" (although it  often  does  for  simple
       fields that are not enclosed in braces); it does, however,
       produce exactly the same results  as  "list  [lindex  list
       first]"

EXAMPLES
       Selecting the first two elements:
              % lrange {a b c d e} 0 1
              a b

       Selecting the last three elements:
              % lrange {a b c d e} end-2 end
              c d e

       Selecting everything except the first and last element:
              % lrange {a b c d e} 1 end-1
              b c d

       Selecting  a single element with lrange is not the same as
       doing so with lindex:
              % set var {some {elements to} select}
              some {elements to} select
              % lindex $var 1
              elements to
              % lrange $var 1 1
              {elements to}


SEE ALSO
       list(n), lappend(n),  lindex(n),  linsert(n),  llength(n),
       lsearch(n), lset(n), lreplace(n), lsort(n), string(n)      |


KEYWORDS
       element, list, range, sublist



Tcl                            7.4                      lrange(n)


@@@COMMAND: lrepeat@@@
lrepeat(n)            Tcl Built-In Commands            lrepeat(n)



_________________________________________________________________

NAME
       lrepeat - Build a list by repeating elements

SYNOPSIS
       lrepeat number element1 ?element2 element3 ...?
_________________________________________________________________

DESCRIPTION
       The lrepeat command creates a list of size number * number
       of elements by repeating number times the sequence of ele-
       ments  element1  element2  ....  number must be a positive
       integer, elementn can be any Tcl value.  Note that lrepeat
       1 arg ...  is identical to list arg ..., though the arg is
       required with lrepeat.

EXAMPLES
              lrepeat 3 a
                    -> a a a
              lrepeat 3 [lrepeat 3 0]
                    -> {0 0 0} {0 0 0} {0 0 0}
              lrepeat 3 a b c
                    -> a b c a b c a b c
              lrepeat 3 [lrepeat 2 a] b c
                    -> {a a} b c {a a} b c {a a} b c

SEE ALSO
       list(n), lappend(n), linsert(n), llength(n), lset(n)


KEYWORDS
       element, index, list



Tcl                            8.5                     lrepeat(n)


@@@COMMAND: lreplace@@@
lreplace(n)           Tcl Built-In Commands           lreplace(n)



_________________________________________________________________

NAME
       lreplace - Replace elements in a list with new elements

SYNOPSIS
       lreplace list first last ?element element ...?
_________________________________________________________________

DESCRIPTION
       lreplace  returns  a  new  list formed by replacing one or
       more elements of list with the element  arguments.   first |
       and  last  are  index values specifying the first and last |
       elements of the range to replace.  The index values  first |
       and  last are interpreted the same as index values for the |
       command string index, supporting simple  index  arithmetic |
       and  indices relative to the end of the list.  0 refers to |
       the first element of the list, and end refers to the  last |
       element  of  the  list.   If list is empty, then first and |
       last are ignored.

       If first is less than zero, it is considered to  refer  to
       before  the  first  element  of  the  list.  For non-empty
       lists, the element indicated by first must exist or  first
       must indicate before the start of the list.

       If  last  is  less than first, then any specified elements
       will be inserted into the list at the point  specified  by
       first with no elements being deleted.

       The  element  arguments specify zero or more new arguments
       to be added to the  list  in  place  of  those  that  were
       deleted.   Each  element  argument  will become a separate
       element of the list.  If no element arguments  are  speci-
       fied,  then the elements between first and last are simply
       deleted.  If list is  empty,  any  element  arguments  are
       added to the end of the list.

EXAMPLES
       Replacing an element of a list with another:
              % lreplace {a b c d e} 1 1 foo
              a foo c d e

       Replacing two elements of a list with three:
              % lreplace {a b c d e} 1 2 three more elements
              a three more elements d e

       Deleting the last element from a list in a variable:
              % set var {a b c d e}
              a b c d e
              % set var [lreplace $var end end]
              a b c d

       A procedure to delete a given element from a list:
              proc lremove {listVariable value} {
                  upvar 1 $listVariable var
                  set idx [lsearch -exact $var $value]
                  set var [lreplace $var $idx $idx]
              }

SEE ALSO
       list(n),  lappend(n),  lindex(n),  linsert(n), llength(n),
       lsearch(n), lset(n), lrange(n), lsort(n), string(n)        |

KEYWORDS
       element, list, replace



Tcl                            7.4                    lreplace(n)


@@@COMMAND: lreverse@@@
lreverse(n)           Tcl Built-In Commands           lreverse(n)



_________________________________________________________________

NAME
       lreverse - Reverse the order of a list

SYNOPSIS
       lreverse list
_________________________________________________________________

DESCRIPTION
       The lreverse command returns a list that has the same ele-
       ments as its input list, list, except with the elements in
       the reverse order.

EXAMPLES
              lreverse {a a b c}
                    -> c b a a
              lreverse {a b {c d} e f}
                    -> f e {c d} b a

SEE ALSO
       list(n), lsearch(n), lsort(n)


KEYWORDS
       element, list, reverse



Tcl                            8.5                    lreverse(n)


@@@COMMAND: lsearch@@@
lsearch(n)            Tcl Built-In Commands            lsearch(n)



_________________________________________________________________

NAME
       lsearch - See if a list contains a particular element

SYNOPSIS
       lsearch ?options? list pattern
_________________________________________________________________


DESCRIPTION
       This  command  searches the elements of list to see if one
       of them matches pattern.  If so, the command  returns  the
       index  of  the  first matching element (unless the options
       -all or -inline  are  specified.)   If  not,  the  command
       returns  -1.   The option arguments indicates how the ele-
       ments of the list are to be matched  against  pattern  and
       must have one of the values below:

   MATCHING STYLE OPTIONS
       If  all  matching  style  options are omitted, the default
       matching style is -glob.  If more than one matching  style
       is  specified,  the last matching style given takes prece-
       dence.

       -exact Pattern is a literal string that  is  compared  for
              exact equality against each list element.

       -glob  Pattern  is  a  glob-style pattern which is matched
              against each list element using the same  rules  as
              the string match command.

       -regexp
              Pattern  is  treated  as  a  regular expression and
              matched against each list element using  the  rules
              described in the re_syntax reference page.

       -sorted
              The  list  elements  are  in sorted order.  If this
              option is specified, lsearch will use a more  effi-
              cient  searching  algorithm  to search list.  If no
              other options are specified, list is assumed to  be
              sorted  in  increasing  order, and to contain ASCII
              strings.  This option is  mutually  exclusive  with
              -glob  and  -regexp,  and  is  treated exactly like
              -exact when either -all or -not are specified.

   GENERAL MODIFIER OPTIONS
       These options may be given with all matching styles.

       -all   Changes the result to be the list of  all  matching
              indices (or all matching values if -inline is spec-
              ified  as  well.)  If  indices  are  returned,  the
              indices  will  be  in  numeric order. If values are
              returned, the order of the values will be the order
              of those values within the input list.

       -inline
              The matching value is returned instead of its index
              (or an empty string if no value matches.)  If  -all
              is  also  specified, then the result of the command
              is the list of all values that matched.

       -not   This negates the sense of the match, returning  the
              index  of the first non-matching value in the list.

       -start index
              The list is searched starting  at  position  index. |
              The  interpretation  of the index value is the same |
              as for the command string index, supporting  simple |
              index arithmetic and indices relative to the end of |
              the list.

   CONTENTS DESCRIPTION OPTIONS
       These options describe how to interpret the items  in  the
       list  being  searched.  They are only meaningful when used
       with the -exact and -sorted options.  If more than one  is
       specified,  the last one takes precedence.  The default is
       -ascii.

       -ascii The list elements are to  be  examined  as  Unicode
              strings  (the  name  is  for backward-compatibility
              reasons.)

       -dictionary
              The list elements are to be compared using  dictio-
              nary-style  comparisons  (see  lsort  for  a fuller
              description). Note that this only makes a  meaning-
              ful  difference  from  the  -ascii  option when the
              -sorted option is given, because  values  are  only
              dictionary-equal when exactly equal.

       -integer
              The list elements are to be compared as integers.   |

       -nocase                                                    ||
              Causes comparisons to be handled in a case-insensi- |
              tive  manner.   Has  no effect if combined with the |
              -dictionary, -integer, or -real options.

       -real  The list elements are to be compared  as  floating-
              point values.

   SORTED LIST OPTIONS
       These  options  (only  meaningful with the -sorted option)
       specify how the list is  sorted.   If  more  than  one  is
       given,  the last one takes precedence.  The default option
       is -increasing.

       -decreasing
              The list elements are sorted in  decreasing  order.
              This  option  is  only  meaningful  when  used with
              -sorted.

       -increasing
              The list elements are sorted in  increasing  order.
              This  option  is  only  meaningful  when  used with
              -sorted.

   NESTED LIST OPTIONS
       These options are used to search lists of lists.  They may |
       be used with any other options.                            |

       -index indexList                                           ||
              This option is  designed  for  use  when  searching |
              within  nested lists.  The indexList argument gives |
              a path of indices (much as might be used  with  the |
              lindex  or  lset  commands)  within each element to |
              allow  the  location  of  the  term  being  matched |
              against.                                            |

       -subindices                                                ||
              If this option is given, the index result from this |
              command  (or  every  index result when -all is also |
              specified) will be a complete  path  (suitable  for |
              use with lindex or lset) within the overall list to |
              the term found.  This option has no  effect  unless |
              the  -index is also specified, and is just a conve- |
              nience short-cut.

EXAMPLES
       Basic searching:
              lsearch {a b c d e} c
                    -> 2
              lsearch -all {a b c a b c} c
                    -> 2 5

       Using lsearch to filter lists:
              lsearch -inline {a20 b35 c47} b*
                    -> b35
              lsearch -inline -not {a20 b35 c47} b*
                    -> a20
              lsearch -all -inline -not {a20 b35 c47} b*
                    -> a20 c47
              lsearch -all -not {a20 b35 c47} b*
                    -> 0 2

       This can even do a "set-like" removal operation:
              lsearch -all -inline -not -exact {a b c a d e a f g a} a
                    -> b c d e f g

       Searching may start part-way through the list:
              lsearch -start 3 {a b c a b c} c
                    -> 5

       It is also possible to search inside elements:
              lsearch -index 1 -all -inline {{a abc} {b bcd} {c cde}} *bc*
                    -> {a abc} {b bcd}

SEE ALSO
       foreach(n), list(n),  lappend(n),  lindex(n),  linsert(n),
       llength(n),  lset(n),  lsort(n),  lrange(n),  lreplace(n), |
       string(n)

KEYWORDS
       list, match, pattern, regular expression, search, string



Tcl                            8.5                     lsearch(n)


@@@COMMAND: lset@@@
lset(n)               Tcl Built-In Commands               lset(n)



_________________________________________________________________

NAME
       lset - Change an element in a list

SYNOPSIS
       lset varName ?index...? newValue
_________________________________________________________________

DESCRIPTION
       The  lset  command  accepts a parameter, varName, which it
       interprets as the name of  a  variable  containing  a  Tcl
       list.  It also accepts zero or more indices into the list.
       The indices may be presented either consecutively  on  the
       command  line, or grouped in a Tcl list and presented as a
       single argument.  Finally, it accepts a new value  for  an
       element of varName.

       If no indices are presented, the command takes the form:
              lset varName newValue
       or
              lset varName {} newValue
       In this case, newValue replaces the old value of the vari-
       able varName.

       When presented with  a  single  index,  the  lset  command
       treats  the content of the varName variable as a Tcl list.
       It addresses the index'th element in it (0 refers  to  the
       first  element  of the list).  When interpreting the list,
       lset observes the same rules concerning braces and  quotes
       and  backslashes  as the Tcl command interpreter; however,
       variable substitution  and  command  substitution  do  not
       occur.   The  command  constructs  a new list in which the
       designated element is replaced with  newValue.   This  new
       list  is  stored  in the variable varName, and is also the
       return value from the lset command.

       If index is negative or greater than or equal to the  num-
       ber of elements in $varName, then an error occurs.

       The  interpretation of each simple index value is the same |
       as for the command string index, supporting  simple  index |
       arithmetic and indices relative to the end of the list.

       If  additional  index  arguments  are  supplied, then each
       argument is used in turn to address an  element  within  a
       sublist  designated  by  the  previous indexing operation,
       allowing the script to alter elements  in  sublists.   The
       command,
              lset a 1 2 newValue
       or
              lset a {1 2} newValue
       replaces element 2 of sublist 1 with newValue.

       The  integer  appearing  in  each  index  argument must be
       greater than or equal to zero.  The integer  appearing  in
       each  index argument must be strictly less than the length
       of the corresponding list.  In other words, the lset  com-
       mand  cannot  change  the  size of a list.  If an index is
       outside the permitted range, an error is reported.

EXAMPLES
       In each of these examples, the initial value of x is:
              set x [list [list a b c] [list d e f] [list g h i]]
                    -> {a b c} {d e f} {g h i}
       The indicated return value also becomes the new value of x
       (except  in  the last case, which is an error which leaves
       the value of x unchanged.)
              lset x {j k l}
                    -> j k l
              lset x {} {j k l}
                    -> j k l
              lset x 0 j
                    -> j {d e f} {g h i}
              lset x 2 j
                    -> {a b c} {d e f} j
              lset x end j
                    -> {a b c} {d e f} j
              lset x end-1 j
                    -> {a b c} j {g h i}
              lset x 2 1 j
                    -> {a b c} {d e f} {g j i}
              lset x {2 1} j
                    -> {a b c} {d e f} {g j i}
              lset x {2 3} j
                    -> list index out of range
       In the following examples, the initial value of x is:
              set x [list [list [list a b] [list c d]] \
                          [list [list e f] [list g h]]]
                    -> {{a b} {c d}} {{e f} {g h}}
       The indicated return value also becomes the new  value  of
       x.
              lset x 1 1 0 j
                    -> {{a b} {c d}} {{e f} {j h}}
              lset x {1 1 0} j
                    -> {{a b} {c d}} {{e f} {j h}}

SEE ALSO
       list(n),  lappend(n),  lindex(n),  linsert(n), llength(n),
       lsearch(n), lsort(n), lrange(n), lreplace(n), string(n)    |



KEYWORDS
       element, index, list, replace, set



Tcl                            8.4                        lset(n)


@@@COMMAND: lsort@@@
lsort(n)              Tcl Built-In Commands              lsort(n)



_________________________________________________________________

NAME
       lsort - Sort the elements of a list

SYNOPSIS
       lsort ?options? list
_________________________________________________________________


DESCRIPTION
       This  command  sorts the elements of list, returning a new
       list in sorted order.  The  implementation  of  the  lsort
       command  uses  the  merge-sort algorithm which is a stable
       sort that has O(n log n) performance characteristics.

       By default ASCII sorting is used with the result  returned
       in  increasing  order.   However,  any  of  the  following
       options may be specified before list to control the  sort-
       ing process (unique abbreviations are accepted):

       -ascii              Use  string  comparison  with  Unicode
                           code-point collation order  (the  name
                           is   for  backward-compatibility  rea-
                           sons.)  This is the default.

       -dictionary         Use dictionary-style comparison.  This
                           is  the same as -ascii except (a) case
                           is ignored except as a tie-breaker and
                           (b)  if  two  strings contain embedded
                           numbers, the numbers compare as  inte-
                           gers, not characters.  For example, in
                           -dictionary mode, bigBoy sorts between
                           bigbang  and  bigboy,  and  x10y sorts
                           between x9y and x11y.

       -integer            Convert list elements to integers  and
                           use integer comparison.

       -real               Convert  list  elements  to  floating-
                           point values and use floating compari-
                           son.

       -command command    Use  command  as a comparison command.
                           To compare two  elements,  evaluate  a
                           Tcl  script consisting of command with
                           the two  elements  appended  as  addi-
                           tional  arguments.   The script should
                           return an integer less than, equal to,
                           or greater than zero if the first ele-
                           ment is to be  considered  less  than,
                           equal  to, or greater than the second,
                           respectively.

       -increasing         Sort  the  list  in  increasing  order
                           ("smallest"items  first).  This is the
                           default.

       -decreasing         Sort  the  list  in  decreasing  order
                           ("largest"items first).

       -indices            Return  a list of indices into list in |
                           sorted order  instead  of  the  values |
                           themselves.

       -index indexList    If  this  option is specified, each of
                           the elements of list must itself be  a
                           proper  Tcl sublist.  Instead of sort-
                           ing based  on  whole  sublists,  lsort
                           will  extract the indexList'th element
                           from each sublist (as if  the  overall |
                           element  and the indexList were passed |
                           to lindex) and sort based on the given |
                           element.  For example,
                                  lsort -integer -index 1 \
                                        {{First 24} {Second 18} {Third 30}}
                           returns  {Second 18} {First 24} {Third
                           30}, and
                                  lsort -index end-1 \
                                        {{a 1 e i} {b 2 3 f g} {c 4 5 6 d h}}
                           returns {c 4 5 6 d h} {a 1 e i} {b 2 3
                           f g}, and                              |
                                  lsort -index {0 1} {            |
                                     {{b i g} 12345}              |
                                     {{d e m o} 34512}            |
                                     {{c o d e} 54321}            |
                                  }                               |
                           returns  {{d  e  m  o} 34512} {{b i g} |
                           12345} {{c o d e}  54321}  (because  e |
                           sorts  before i which sorts before o.)
                           This option  is  much  more  efficient
                           than  using  -command  to  achieve the
                           same effect.

       -nocase                                                    ||
                           Causes  comparisons to be handled in a |
                           case-insensitive   manner.    Has   no |
                           effect  if  combined with the -dictio- |
                           nary, -integer, or -real options.

       -unique             If this option is specified, then only
                           the  last  set  of  duplicate elements
                           found in the list  will  be  retained.
                           Note  that  duplicates  are determined
                           relative to the comparison used in the
                           sort.  Thus if -index 0 is used, {1 a}
                           and {1 b} would be  considered  dupli-
                           cates  and only the second element, {1
                           b}, would be retained.

NOTES
       The options to lsort only control what sort of  comparison
       is  used, and do not necessarily constrain what the values
       themselves actually are.  This distinction is only notice-
       able  when  the  list to be sorted has fewer than two ele-
       ments.

       The lsort command is reentrant, meaning it is safe to  use
       as  part  of  the  implementation of a command used in the
       -command option.

EXAMPLES
       Sorting a list using ASCII sorting:
              % lsort {a10 B2 b1 a1 a2}
              B2 a1 a10 a2 b1

       Sorting a list using Dictionary sorting:
              % lsort -dictionary {a10 B2 b1 a1 a2}
              a1 a2 a10 b1 B2

       Sorting lists of integers:
              % lsort -integer {5 3 1 2 11 4}
              1 2 3 4 5 11
              % lsort -integer {1 2 0x5 7 0 4 -1}
              -1 0 1 2 4 0x5 7

       Sorting lists of floating-point numbers:
              % lsort -real {5 3 1 2 11 4}
              1 2 3 4 5 11
              % lsort -real {.5 0.07e1 0.4 6e-1}
              0.4 .5 6e-1 0.07e1

       Sorting using indices:
              % # Note the space character before the c
              % lsort {{a 5} { c 3} {b 4} {e 1} {d 2}}
              { c 3} {a 5} {b 4} {d 2} {e 1}
              % lsort -index 0 {{a 5} { c 3} {b 4} {e 1} {d 2}}
              {a 5} {b 4} { c 3} {d 2} {e 1}
              % lsort -index 1 {{a 5} { c 3} {b 4} {e 1} {d 2}}
              {e 1} {d 2} { c 3} {b 4} {a 5}

       Stripping duplicate values using sorting:
              % lsort -unique {a b c a b c a b c}
              a b c

       More complex sorting using a comparison function:
              % proc compare {a b} {
                  set a0 [lindex $a 0]
                  set b0 [lindex $b 0]
                  if {$a0 < $b0} {
                      return -1
                  } elseif {$a0 > $b0} {
                      return 1
                  }
                  return [string compare [lindex $a 1] [lindex $b 1]]
              }
              % lsort -command compare \
                      {{3 apple} {0x2 carrot} {1 dingo} {2 banana}}
              {1 dingo} {2 banana} {0x2 carrot} {3 apple}


SEE ALSO
       list(n), lappend(n),  lindex(n),  linsert(n),  llength(n),
       lsearch(n), lset(n), lrange(n), lreplace(n)


KEYWORDS
       element, list, order, sort



Tcl                            8.5                       lsort(n)


@@@COMMAND: make_diff_pair_ports@@@
make_diff_pair_ports

Description: 
Make differential pair for 2 ports

Syntax: 
make_diff_pair_ports  [-quiet] [-verbose] <ports>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <ports>     Ports to join

Categories: 
XDC, PinPlanning

Description:

  Joins two existing ports to create a differential pair. The port
  directions, interfaces, and other properties must match in order for the
  specified ports to be joined as a differential pair. Otherwise an error
  will be returned.

  Note: The two ports must first be created, either by using the create_port
  command or by reading in an XDC file, prior to making them into a
  differential pair.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ports> - (Required) Two port objects to join as a differential pair. The
  first port specified will be the positive side of the differential pair.

Examples:

  The following example joins the two specified ports to create a
  differential pair:

    make_diff_pair_ports port_Pos1 port_Neg1  
    

See Also:

   *  create_interface
   *  create_port
   *  split_diff_pair_ports


@@@COMMAND: make_wrapper@@@
make_wrapper

Description: 
Generate HDL wrapper for the specified source

Syntax: 
make_wrapper  [-top] [-testbench] [-inst_template] [-fileset <arg>] [-import]
              [-force] [-quiet] [-verbose] <files>

Usage: 
  Name              Description
  -----------------------------
  [-top]            Create a top-level wrapper for the specified source
  [-testbench]      Create a testbench for the specified source
  [-inst_template]  Create an instantiation template for the specified 
                    source. The template will not be added to the project and
                    will be generated for reference purposes only.
  [-fileset]        Fileset name
  [-import]         Import generated wrapper to the project
  [-force]          Overwrite existing source(s)
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <files>           Source file for which the wrapper needs to be generated

Categories: 
Project, SysGen

Description:

  Create a Verilog or VHDL wrapper for instantiating a sub-design into the
  project.

  The make_wrapper command will create a wrapper for Embedded Processor
  Designs from the IP integrator of the Vivado Design Suite, or any IP
  integrator block design, as well as DSP modules created in System Generator
  or MathWorks MatLab.

  You can generate a wrapper to make the sub-design the top-level of a
  stand-alone design, or for instantiating a sub-design into an existing
  design. You can also generate a wrapper for a simulation test bench of
  System Generator sub-designs.

  Note: The wrapper is generated in Verilog or VHDL according to the
  TARGET_LANGUAGE property on the project.

  The command returns information related to the creation of the wrappers, or
  returns an error if it fails.

Arguments:

  -top - (Optional) Create a top-level Verilog or VHDL wrapper for the
  specified source. The wrapper instantiates the sub-design as the top-level
  of the design hierarchy.

  -testbench - (Optional) Create a simulation test bench template for the
  specified sub-design. This includes the DUT module instantiation, but does
  not include the stimulus for simulation.

  Note: This option is only valid for SysGen composite files. All other
  sources will produce an error.

  -inst_template - (Optional) Create an instantiation template for the
  specified source. The template will not be added to the project and will be
  generated for reference purposes only. The instantiation template can be
  cut and paste into another RTL file to create an instance of the module in
  the hierarchy.

  -fileset - (Optional) Specify the destination fileset for importing the
  wrapper file into the project. By default, the wrapper will be imported
  into sources_1.

  -import - (Optional) Import the wrapper file into the project, adding it to
  the appropriate fileset.

  -force - (Optional) Overwrite an existing wrapper file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) Specify the source files to generate the wrapper from.
  The make_wrapper command only supports the .mdl file format from System
  Generator for DSP, the .slx format from MathWorks MATLAB, and the .bd file
  format from the IP integrator of the Vivado Design Suite.

Examples:

  The following example creates the instantiation template to integrate the
  specified IP integrator block design into the design hierarchy of the
  current project:

    make_wrapper -inst_template -fileset [get_filesets sources_1] \  
    -files [get_files C:/Data/design_1/design_1.bd] 
    

See Also:

   *  add_files
   *  create_bd_design
   *  generate_target
   *  get_filesets
   *  list_targets


@@@COMMAND: mark_objects@@@
mark_objects

Description: 
Mark objects in GUI

Syntax: 
mark_objects  [-color_index <arg>] [-rgb <args>] [-color <arg>] [-quiet]
              [-verbose] <objects>

Usage: 
  Name            Description
  ---------------------------
  [-color_index]  Color index
  [-rgb]          RGB color index list
  [-color]        Valid values are red green blue magenta yellow cyan and 
                  orange
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <objects>       Objects to mark

Categories: 
GUIControl

Description:

  Marks specified objects in GUI mode. This command places an iconic mark to
  aid in the location of the specified object or objects. The mark is
  displayed in a color as determined by one of the color options.

  Objects can be unmarked with the unmark_objects command.

  Note: Use only one color option. If both color options are specified, -rgb
  takes precedence over -color.

Arguments:

  -color_index <arg> - (Optional) Specifies the color index to use for
  highlighting the selected object or objects. Valid values are integers
  ranging from 1 to 20. The color indexes are displayed and can be configured
  from the Window > Tool Settings > Colors > Mark. Refer to the Vivado
  Design Suite User Guide: Using the IDE (UG893) for more information on
  setting colors.

  -rgb <args> - (Optional) The color to use in the form of an RGB code
  specified as {R G B}. For instance, {255 255 0} specifies the color yellow,
  while {0 255 0} specifies green.

  -color <arg> - (Optional) The color to use for marking the specified object
  or objects. Supported colors are: red, green, blue, magenta, yellow, cyan,
  and orange.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) One or more objects to be marked.

Examples:

  The following example adds a red icon to mark the currently selected objects:

    mark_objects -color red [get_selected_objects] 
    

See Also:

   *  get_highlighted_objects
   *  get_marked_objects
   *  get_selected_objects
   *  highlight_objects
   *  select_objects
   *  unmark_objects


@@@COMMAND: migrate_pblock@@@
migrate_pblock

Description: 
Migrate pblocks from sites to tiles

Syntax: 
migrate_pblock  [-name <arg>] [-names <args>] [-to_sites] [-to_tiles] [-quiet]
                [-verbose]

Returns: 
New area constraints

Usage: 
  Name         Description
  ------------------------
  [-name]      Name of the pblock to migrate
  [-names]     List of pblocks to migrate
  [-to_sites]  Migrate pblocks to sites.
  [-to_tiles]  Migrate pblocks to tiles.
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution

Categories: 
XDC, Floorplan


@@@COMMAND: modify_debug_ports@@@
modify_debug_ports

Description: 
Modify routed probe connections to debug cores.

Syntax: 
modify_debug_ports  [-probes <args>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-probes]   List of probes to be connected: debug core pin, channel index, 
              and logical net for each probe connection.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Debug

Description:

  Modifies a routed design to connect nets to specified ports of debug cores.
  This command takes a list of connections to be made to specified debug
  probes. Each connection is defined as a Tcl list, enclosed in braces {},
  specifying the following three elements separated by spaces:

   *  The logical pin of the debug core to be connected.

   *  The channel index of the specified probe.

   *  The logical net of the signal to be probed.

  Multiple probe connections are specified as a list of lists, with each
  connection itself being a Tcl list as shown in the example.

  The command performs all of the netlist modifications to disconnect
  existing net connections to the specified probe ports as needed, connecting
  each net to be probed to the specified probe port, and automatically
  routing the modified connections. Nets that become disconnected during the
  process are left unconnected.

Arguments:

  -probes <args> - (Required) Specifies a list of probe connections as a Tcl
  list of lists. Each probe connection is defined as a triplet of three
  elements in the following order separated by spaces: 1) the logical pin of
  the debug core to be connected, 2) the probe channel index, and 3) the
  logical net of the signal to be probed. Multiple probe connections are
  specified as a list of lists as follows:

    [list  \{probe1 channel1 net1}  \{probe2 channel1 net2} \{probe2 channel2  net3} ]  
     
    

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example modifies 3 probe connections:

    modify_debug_ports -probes [list {top/x_ila/probe0 0 top/inst_A/net_0} \  
      {top/x_ila/probe1 1 top/inst_A/net_a} {top/x_ila/probe1 2 top/inst_A/net_b}] 
    

  Note: The modify_debug_ports command moves a port probe from one signal to
  another.

See Also:

   *  connect_debug_port
   *  create_debug_core
   *  create_debug_port
   *  disconnect_debug_port
   *  set_property


@@@COMMAND: move_dashboard_gadget@@@
move_dashboard_gadget

Description: 
Reposition the Gadget for Project summary dashboard

Syntax: 
move_dashboard_gadget  -name <arg> -row <arg> -col <arg> [-dashboard <arg>]
                       [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  -name         Name of the gadget
  -row          Target row number to which the gadget has to be moved
  -col          Target column number to which the gadget has to be moved
  [-dashboard]  Name of the dashboard to which the gadget is associated
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
Project

Description:

  Specify the placement of a dashboard gadget into the dashboard.

  Note: Currently the Project Summary is the only dashboard, so the gadget is
  placed into that dashboard.

  The arrangement of gadgets in a dashboard is by row and column. The Project
  Summary dashboard has two columns, 0 and 1, and has as many rows as needed
  to display all the gadgets. If you specify a column other than 0 or 1, or
  specify a row in excess of the current defined rows + 1, an error will be
  returned.

Arguments:

  -name <arg> - (Required) Specify the name of the gadget to move.

  -row <arg> - (Required) Specify the row in the Project Summary dashboard
  for the gadget placement.

  -col <arg> - (Required) Specify the column in the Project Summary dashboard
  for the gadget placement.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example moves the specified gadget to column 0, row 3:

    move_dashboard_gadget -name utilization_1 -row 3 -col 0

See Also:

   *  create_dashboard_gadget
   *  delete_dashboard_gadgets
   *  get_dashboard_gadgets


@@@COMMAND: move_files@@@
move_files

Description: 
Moves the files from one fileset to another while maintaining all of their original properties.

Syntax: 
move_files  [-fileset <arg>] [-of_objects <args>] [-quiet] [-verbose]
            [<files>...]

Returns: 
list of files that were moved

Usage: 
  Name           Description
  --------------------------
  [-fileset]     Destination fileset name
  [-of_objects]  Reconfig Modules to move the files to
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<files>]      Name of the files to be moved

Categories: 
Project, Simulation

Description:

  Moves files returned by the get_files command from one fileset to another
  while maintaining the properties on the files.

  This command returns the list of files that were moved, or an error if the
  command fails.

Arguments:

  -fileset <arg> - (Optional) The destination fileset to which the specified
  source files should be moved. If no fileset is specified the files are
  moved to the sources_1 fileset by default. An error is returned if the
  specified fileset does not exist.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Optional) One or more file objects returned by the get_files
  command.

  Note: You must specify file objects returned by the get_files command, and
  not simply specify file names.

Examples:

  The following example moves the file, top_full.xdc, to the constrs_2 fileset.

    move_files -fileset constrs_2 [get_files top_full.xdc] 
    

See Also:

   *  get_files


@@@COMMAND: namespace@@@
namespace(n)          Tcl Built-In Commands          namespace(n)



_________________________________________________________________

NAME
       namespace  -  create  and manipulate contexts for commands
       and variables

SYNOPSIS
       namespace ?subcommand? ?arg ...?
_________________________________________________________________

DESCRIPTION
       The namespace command lets you create, access, and destroy
       separate  contexts  for  commands  and variables.  See the
       section WHAT IS A NAMESPACE? below for a brief overview of
       namespaces.   The  legal  values  of subcommand are listed
       below.  Note that you can abbreviate the subcommands.

       namespace children ?namespace? ?pattern?
              Returns a list of all child namespaces that  belong
              to  the  namespace  namespace.  If namespace is not
              specified, then the children are returned  for  the
              current  namespace.   This  command  returns fully-
              qualified names, which start with  a  double  colon
              (::).   If the optional pattern is given, then this
              command returns only the names that match the glob-
              style  pattern.   The actual pattern used is deter-
              mined as follows: a pattern that starts with double
              colon  (::)  is used directly, otherwise the names-
              pace namespace (or the fully-qualified name of  the
              current namespace) is prepended onto the pattern.

       namespace code script
              Captures  the  current  namespace context for later
              execution of the script script.  It returns  a  new
              script in which script has been wrapped in a names-
              pace inscope  command.   The  new  script  has  two
              important  properties.   First, it can be evaluated
              in any namespace and will cause script to be evalu-
              ated  in  the  current namespace (the one where the
              namespace code command was invoked).  Second, addi-
              tional  arguments  can be appended to the resulting
              script and they will be passed to script  as  addi-
              tional arguments.  For example, suppose the command
              set script [namespace code {foo bar}] is invoked in
              namespace ::a::b.  Then eval $script [list x y] can
              be executed in any namespace (assuming the value of
              script  has  been passed in properly) and will have
              the same effect as  the  command  ::namespace  eval
              ::a::b  {foo  bar  x  y}.   This  command is needed
              because extensions like Tk normally  execute  call-
              back  scripts  in  the  global namespace.  A scoped
              command captures a command together with its names-
              pace context in a way that allows it to be executed
              properly later.  See the section SCOPED SCRIPTS for
              some  examples  of how this is used to create call-
              back scripts.

       namespace current
              Returns the fully-qualified name  for  the  current
              namespace.  The actual name of the global namespace
              is "" (i.e., an empty  string),  but  this  command
              returns   ::   for   the   global  namespace  as  a
              convenience to programmers.

       namespace delete ?namespace namespace ...?
              Each namespace namespace is deleted and  all  vari-
              ables,  procedures,  and child namespaces contained
              in the namespace are deleted.  If  a  procedure  is
              currently   executing  inside  the  namespace,  the
              namespace will be kept alive  until  the  procedure
              returns;  however,  the namespace is marked to pre-
              vent other code from looking it up by name.   If  a
              namespace  does  not exist, this command returns an
              error.  If no namespace names are given, this  com-
              mand does nothing.

       namespace ensemble subcommand ?arg ...?
              Creates  and  manipulates  a command that is formed |
              out of an ensemble of subcommands.  See the section |
              ENSEMBLES below for further details.

       namespace eval namespace arg ?arg ...?
              Activates  a  namespace called namespace and evalu-
              ates some code in that context.  If  the  namespace
              does  not  already  exist,  it is created.  If more
              than one arg argument is specified,  the  arguments
              are concatenated together with a space between each
              one in the same fashion as the  eval  command,  and
              the result is evaluated.

              If  namespace  has leading namespace qualifiers and
              any leading namespaces do not exist, they are auto-
              matically created.

       namespace exists namespace
              Returns  1 if namespace is a valid namespace in the
              current context, returns 0 otherwise.

       namespace export ?-clear? ?pattern pattern ...?
              Specifies which commands are exported from a names-
              pace.   The exported commands are those that can be
              later  imported  into  another  namespace  using  a
              namespace import command.  Both commands defined in
              a namespace and commands the namespace  has  previ-
              ously imported can be exported by a namespace.  The
              commands do not have to be defined at the time  the
              namespace export command is executed.  Each pattern
              may contain glob-style special characters,  but  it
              may not include any namespace qualifiers.  That is,
              the pattern can only specify commands in  the  cur-
              rent   (exporting)   namespace.   Each  pattern  is
              appended onto the namespace's list of  export  pat-
              terns.   If  the  -clear  flag is given, the names-
              pace's export pattern list is reset to empty before
              any pattern arguments are appended.  If no patterns
              are given and the -clear flag is  not  given,  this
              command  returns  the  namespace's  current  export
              list.

       namespace forget ?pattern pattern ...?
              Removes previously imported commands from a  names-
              pace.   Each  pattern is a simple or qualified name
              such as x, foo::x  or  a::b::p*.   Qualified  names
              contain  double colons (::) and qualify a name with
              the name of one or more namespaces.   Each  "quali-
              fied  pattern"  is  qualified  with  the name of an
              exporting namespace and may have glob-style special
              characters  in  the  command name at the end of the
              qualified name.  Glob characters may not appear  in
              a  namespace  name.  For each "simple pattern" this
              command deletes the matching commands of  the  cur-
              rent  namespace that were imported from a different
              namespace.  For "qualified patterns", this  command
              first  finds  the  matching  exported commands.  It
              then checks whether any of those commands were pre-
              viously  imported by the current namespace.  If so,
              this command  deletes  the  corresponding  imported
              commands.   In effect, this un-does the action of a
              namespace import command.

       namespace import ?-force? ?pattern pattern ...?
              Imports commands into a namespace, or  queries  the |
              set  of  imported commands in a namespace.  When no |
              arguments are present, namespace import returns the |
              list of commands in the current namespace that have |
              been imported from other namespaces.  The  commands |
              in  the  returned  list are in the format of simple |
              names, with no namespace qualifiers at  all.   This |
              format  is  suitable for composition with namespace |
              forget (see EXAMPLES below).   When  pattern  argu-
              ments are present, each pattern is a qualified name
              like foo::x or a::p*.  That  is,  it  includes  the
              name  of  an exporting namespace and may have glob-
              style special characters in the command name at the
              end of the qualified name.  Glob characters may not
              appear in a namespace name.  All the commands  that
              match  a  pattern  string  and  which are currently
              exported from their namespace are added to the cur-
              rent  namespace.   This  is  done by creating a new
              command in the current namespace that points to the
              exported  command  in  its original namespace; when
              the new imported command is called, it invokes  the
              exported command.  This command normally returns an
              error if an  imported  command  conflicts  with  an
              existing command.  However, if the -force option is
              given,  imported  commands  will  silently  replace
              existing  commands.   The  namespace import command
              has snapshot semantics:  that  is,  only  requested
              commands  that are currently defined in the export-
              ing namespace are imported.  In  other  words,  you
              can  import  only the commands that are in a names-
              pace at the time when the namespace import  command
              is  executed.   If  another  command is defined and
              exported in this namespace later on, it will not be
              imported.

       namespace inscope namespace script ?arg ...?
              Executes  a  script in the context of the specified
              namespace.  This command is not expected to be used
              directly  by programmers; calls to it are generated
              implicitly when  applications  use  namespace  code
              commands to create callback scripts that the appli-
              cations then register with, e.g., Tk widgets.   The
              namespace  inscope  command is much like the names-
              pace eval command except that  the  namespace  must
              already  exist, and namespace inscope appends addi-
              tional args as proper list elements.

                     namespace inscope ::foo $script $x $y $z
              is equivalent to
                     namespace eval ::foo [concat $script [list $x $y $z]]
              thus additional arguments will not undergo a second
              round  of  substitution, as is the case with names-
              pace eval.

       namespace origin command
              Returns the fully-qualified name  of  the  original
              command  to  which  the  imported  command  command
              refers.  When a command is imported into  a  names-
              pace,  a  new  command is created in that namespace
              that points to the actual command in the  exporting
              namespace.    If  a  command  is  imported  into  a
              sequence of namespaces a, b,...,n where  each  suc-
              cessive namespace just imports the command from the
              previous namespace, this command returns the fully-
              qualified name of the original command in the first
              namespace, a.  If command  does  not  refer  to  an
              imported command, the command's own fully-qualified
              name is returned.

       namespace parent ?namespace?
              Returns the  fully-qualified  name  of  the  parent
              namespace for namespace namespace.  If namespace is
              not specified, the fully-qualified name of the cur-
              rent namespace's parent is returned.

       namespace path ?namespaceList?
              Returns  the command resolution path of the current |
              namespace. If namespaceList is specified as a  list |
              of  named  namespaces, the current namespace's com- |
              mand resolution path is set to those namespaces and |
              returns the empty list. The default command resolu- |
              tion path is always empty.  See  the  section  NAME |
              RESOLUTION  below  for  an explanation of the rules |
              regarding name resolution.

       namespace qualifiers string
              Returns  any  leading  namespace   qualifiers   for
              string.   Qualifiers  are namespace names separated
              by   double   colons   (::).    For   the    string
              ::foo::bar::x, this command returns ::foo::bar, and
              for :: it returns an empty string.  This command is
              the complement of the namespace tail command.  Note
              that it does not check whether the namespace  names
              are, in fact, the names of currently defined names-
              paces.

       namespace tail string
              Returns the simple name at the end of  a  qualified
              string.   Qualifiers  are namespace names separated
              by   double   colons   (::).    For   the    string
              ::foo::bar::x,  this  command returns x, and for ::
              it returns an empty string.  This  command  is  the
              complement of the namespace qualifiers command.  It
              does not check whether the namespace names are,  in
              fact, the names of currently defined namespaces.

       namespace  upvar  namespace otherVar myVar ?otherVar myVar
       ...
              This  command  arranges for one or more local vari-
              ables in the current procedure to  refer  to  vari-
              ables  in namespace. The namespace name is resolved
              as described in section NAME RESOLUTION.  The  com-
              mand namespace upvar $ns a b has the same behaviour
              as upvar 0 ${ns}::a b, with the sole  exception  of
              the  resolution  rules used for qualified namespace
              or variable  names.   namespace  upvar  returns  an
              empty string.

       namespace unknown ?script?
              Sets or returns the unknown command handler for the
              current namespace.  The handler is invoked  when  a
              command  called from within the namespace cannot be
              found (in  either  the  current  namespace  or  the
              global  namespace).  The script argument, if given,
              should be a well formed list representing a command
              name  and  optional  arguments. When the handler is
              invoked, the full invocation line will be  appended
              to  the script and the result evaluated in the con-
              text of the namespace. The default handler for  all
              namespaces  is  ::unknown. If no argument is given,
              it returns the handler for the current namespace.

       namespace which ?-command? ?-variable? name
              Looks up name as either a command or  variable  and
              returns  its fully-qualified name.  For example, if
              name does not exist in the  current  namespace  but
              does  exist  in  the global namespace, this command
              returns a fully-qualified name in the global names-
              pace.   If  the command or variable does not exist,
              this command returns an empty string.  If the vari-
              able has been created but not defined, such as with
              the variable command or  through  a  trace  on  the
              variable, this command will return the fully-quali-
              fied name of the variable.  If no  flag  is  given,
              name is treated as a command name.  See the section
              NAME RESOLUTION below for  an  explanation  of  the
              rules regarding name resolution.

WHAT IS A NAMESPACE?
       A namespace is a collection of commands and variables.  It
       encapsulates the commands and  variables  to  ensure  that
       they will not interfere with the commands and variables of
       other namespaces.  Tcl has always had one such collection,
       which  we  refer  to  as the global namespace.  The global
       namespace holds all global variables  and  commands.   The
       namespace  eval  command  lets  you create new namespaces.
       For example,
              namespace eval Counter {
                 namespace export bump
                 variable num 0

                 proc bump {} {
                    variable num
                    incr num
                 }
              }
       creates a new namespace containing the  variable  num  and
       the  procedure  bump.   The commands and variables in this
       namespace are separate from other commands  and  variables
       in  the same program.  If there is a command named bump in
       the global namespace, for example, it  will  be  different
       from the command bump in the Counter namespace.

       Namespace  variables  resemble  global  variables  in Tcl.
       They exist outside of the procedures in  a  namespace  but
       can  be  accessed in a procedure via the variable command,
       as shown in the example above.

       Namespaces are dynamic.  You can add and  delete  commands
       and  variables  at  any time, so you can build up the con-
       tents of a namespace over time using a series of namespace
       eval  commands.  For example, the following series of com-
       mands has the same  effect  as  the  namespace  definition
       shown above:
              namespace eval Counter {
                 variable num 0
                 proc bump {} {
                    variable num
                    return [incr num]
                 }
              }
              namespace eval Counter {
                 proc test {args} {
                    return $args
                 }
              }
              namespace eval Counter {
                  rename test ""
              }
       Note  that  the  test  procedure  is  added to the Counter
       namespace, and later removed via the rename command.

       Namespaces can have other namespaces within them, so  they
       nest  hierarchically.   A nested namespace is encapsulated
       inside its parent namespace and  can  not  interfere  with
       other namespaces.

QUALIFIED NAMES
       Each  namespace  has  a  textual  name  such as history or
       ::safe::interp.   Since  namespaces  may  nest,  qualified
       names  are used to refer to commands, variables, and child
       namespaces contained inside namespaces.   Qualified  names
       are  similar to the hierarchical path names for Unix files
       or Tk widgets, except that :: is  used  as  the  separator
       instead  of  /  or ..  The topmost or global namespace has
       the name "" (i.e., an empty string), although :: is a syn-
       onym.   As  an  example,  the  name ::safe::interp::create
       refers to the command create in the namespace interp  that
       is  a  child of namespace ::safe, which in turn is a child
       of the global namespace, ::.

       If you want to access commands and variables from  another
       namespace,  you must use some extra syntax.  Names must be
       qualified by the namespace that contains them.   From  the
       global  namespace,  we might access the Counter procedures
       like this:
              Counter::bump 5
              Counter::Reset
       We could access the current count like this:
              puts "count = $Counter::num"
       When one namespace contains another,  you  may  need  more
       than  one  qualifier  to  reach its elements.  If we had a
       namespace Foo that contained the  namespace  Counter,  you
       could  invoke its bump procedure from the global namespace
       like this:
              Foo::Counter::bump 3

       You can also use  qualified  names  when  you  create  and
       rename  commands.   For example, you could add a procedure
       to the Foo namespace like this:
              proc Foo::Test {args} {return $args}
       And you could move the same procedure to another namespace
       like this:
              rename Foo::Test Bar::Test

       There  are  a  few  remaining points about qualified names
       that we should  cover.   Namespaces  have  nonempty  names
       except for the global namespace.  :: is disallowed in sim-
       ple command, variable, and namespace  names  except  as  a
       namespace  separator.   Extra colons in any separator part
       of a qualified name are ignored; i.e. two or  more  colons
       are  treated as a namespace separator.  A trailing :: in a
       qualified variable or command name refers to the  variable
       or  command  named {}.  However, a trailing :: in a quali-
       fied namespace name is ignored.

NAME RESOLUTION
       In general, all Tcl commands that take variable  and  com-
       mand  names  support  qualified names.  This means you can
       give qualified  names  to  such  commands  as  set,  proc,
       rename,  and  interp alias.  If you provide a fully-quali-
       fied name that starts with a  ::,  there  is  no  question
       about what command, variable, or namespace you mean.  How-
       ever, if the name does not start with a :: (i.e., is rela-
       tive), Tcl follows basic rules for looking it up: Variable
       names are always resolved by looking first in the  current
       namespace,  and  then  in  the  global namespace.  Command |
       names are also always resolved by looking in  the  current |
       namespace first. If not found there, they are searched for |
       in every namespace on the current namespace's command path |
       (which  is  empty by default). If not found there, command |
       names are looked up in the global namespace  (or,  failing |
       that,  are  processed  by the unknown command.)  Namespace
       names, on the other hand, are always resolved  by  looking
       in only the current namespace.

       In the following example,
              set traceLevel 0
              namespace eval Debug {
                 printTrace $traceLevel
              }
       Tcl  looks  for traceLevel in the namespace Debug and then
       in the global namespace.  It looks up the  command  print-
       Trace  in  the same way.  If a variable or command name is
       not found in either context, the name  is  undefined.   To
       make  this  point absolutely clear, consider the following
       example:
              set traceLevel 0
              namespace eval Foo {
                 variable traceLevel 3

                 namespace eval Debug {
                    printTrace $traceLevel
                 }
              }
       Here Tcl looks  for  traceLevel  first  in  the  namespace
       Foo::Debug.   Since  it is not found there, Tcl then looks
       for  it   in   the   global   namespace.    The   variable
       Foo::traceLevel is completely ignored during the name res-
       olution process.

       You can use the namespace which command to  clear  up  any
       question about name resolution.  For example, the command:
              namespace eval Foo::Debug {namespace which -variable traceLevel}
       returns ::traceLevel.  On the other hand, the command,
              namespace eval Foo {namespace which -variable traceLevel}
       returns ::Foo::traceLevel.

       As mentioned above, namespace names are looked up  differ-
       ently than the names of variables and commands.  Namespace
       names are always resolved in the current namespace.   This
       means,  for  example,  that  a namespace eval command that
       creates a new namespace always creates a child of the cur-
       rent  namespace  unless the new namespace name begins with
       ::.

       Tcl has no access control to limit  what  variables,  com-
       mands,  or namespaces you can reference.  If you provide a
       qualified name that resolves to an  element  by  the  name
       resolution rule above, you can access the element.

       You  can  access  a namespace variable from a procedure in
       the same namespace by using the  variable  command.   Much
       like  the global command, this creates a local link to the
       namespace variable.  If necessary,  it  also  creates  the
       variable  in  the  current  namespace  and initializes it.
       Note that the global command only creates links  to  vari-
       ables in the global namespace.  It is not necessary to use
       a variable command if you always refer  to  the  namespace
       variable using an appropriate qualified name.

IMPORTING COMMANDS
       Namespaces  are  often  used to represent libraries.  Some
       library commands are used so frequently that it is a  nui-
       sance to type their qualified names.  For example, suppose
       that all of the commands in a package like  BLT  are  con-
       tained  in  a namespace called Blt.  Then you might access
       these commands like this:
              Blt::graph .g -background red
              Blt::table . .g 0,0
       If you use the graph and table  commands  frequently,  you
       may want to access them without the Blt:: prefix.  You can
       do this by importing the commands into the current  names-
       pace, like this:
              namespace import Blt::*
       This  adds  all  exported  commands from the Blt namespace
       into the current namespace context, so you can write  code
       like this:
              graph .g -background red
              table . .g 0,0
       The  namespace import command only imports commands from a
       namespace that that namespace exported  with  a  namespace
       export command.

       Importing  every  command  from a namespace is generally a
       bad idea since you do not know what you will get.   It  is
       better to import just the specific commands you need.  For
       example, the command
              namespace import Blt::graph Blt::table
       imports only the graph and table commands into the current
       context.

       If  you  try  to import a command that already exists, you
       will get an error.  This prevents you from  importing  the
       same  command  from two different packages.  But from time
       to time (perhaps when debugging),  you  may  want  to  get
       around  this  restriction.   You  may  want to reissue the
       namespace import command to pick up new commands that have
       appeared  in  a  namespace.  In that case, you can use the
       -force option, and  existing  commands  will  be  silently
       overwritten:
              namespace import -force Blt::graph Blt::table
       If  for  some  reason, you want to stop using the imported
       commands, you can remove them with a namespace forget com-
       mand, like this:
              namespace forget Blt::*
       This  searches  the  current  namespace  for  any commands
       imported from Blt.  If it  finds  any,  it  removes  them.
       Otherwise,  it does nothing.  After this, the Blt commands
       must be accessed with the Blt:: prefix.

       When you delete a command  from  the  exporting  namespace
       like this:
              rename Blt::graph ""
       the  command  is automatically removed from all namespaces
       that import it.

EXPORTING COMMANDS
       You can export commands from a namespace like this:
              namespace eval Counter {
                 namespace export bump reset
                 variable Num 0
                 variable Max 100

                 proc bump {{by 1}} {
                    variable Num
                    incr Num $by
                    Check
                    return $Num
                 }
                 proc reset {} {
                    variable Num
                    set Num 0
                 }
                 proc Check {} {
                    variable Num
                    variable Max
                    if {$Num > $Max} {
                       error "too high!"
                    }
                 }
              }
       The procedures bump and reset are exported,  so  they  are
       included  when you import from the Counter namespace, like
       this:
              namespace import Counter::*
       However, the Check procedure is not  exported,  so  it  is
       ignored by the import operation.

       The  namespace  import  command only imports commands that
       were declared as exported by their namespace.  The  names-
       pace   export  command  specifies  what  commands  may  be
       imported by other namespaces.  If a namespace import  com-
       mand specifies a command that is not exported, the command
       is not imported.

SCOPED SCRIPTS
       The namespace code command is the means by which a  script
       may  be  packaged for evaluation in a namespace other than
       the one in which it was created.  It is used most often to
       create event handlers, Tk bindings, and traces for evalua-
       tion in the global context.  For instance,  the  following
       code  indicates  how  to  direct a variable trace callback
       into the current namespace:
              namespace eval a {
                 variable b
                 proc theTraceCallback { n1 n2 op } {
                    upvar 1 $n1 var
                    puts "the value of $n1 has changed to $var"
                    return
                 }
                 trace variable b w [namespace code theTraceCallback]
              }
              set a::b c
       When executed, it prints the message:
              the value of a::b has changed to c

ENSEMBLES
       The namespace ensemble is used to  create  and  manipulate |
       ensemble  commands,  which are commands formed by grouping |
       subcommands together.  The commands  typically  come  from |
       the  current  namespace  when  the  ensemble  was created, |
       though this is configurable.  Note that there may  be  any |
       number of ensembles associated with any namespace (includ- |
       ing none, which is true of  all  namespaces  by  default), |
       though  all  the ensembles associated with a namespace are |
       deleted when that namespace is deleted.  The link  between |
       an  ensemble  command and its namespace is maintained how- |
       ever the ensemble is renamed.                              |

       Three subcommands of the namespace  ensemble  command  are |
       defined:                                                   |

       namespace ensemble create ?option value                    |
       ...?               |                                       |
              Creates a new ensemble command linked to  the  cur- |
              rent  namespace, returning the fully qualified name |
              of the command created.  The arguments to namespace |
              ensemble  create  allow  the  configuration  of the |
              command as if with the namespace ensemble configure |
              command.   If  not  overridden  with  the  -command |
              option,  this  command  creates  an  ensemble  with |
              exactly the same name as the linked namespace.  See |
              the section ENSEMBLE OPTIONS below for a full  list |
              of options supported and their effects.             |

       namespace  ensemble configure command ?option? ?value      |
       ...? |                                                     |
              Retrieves  the  value  of an option associated with |
              the ensemble command named command, or updates some |
              options associated with that ensemble command.  See |
              the section ENSEMBLE OPTIONS below for a full  list |
              of options supported and their effects.             |

       namespace ensemble exists com-                             |
       mand                          |                            |
              Returns a boolean value that describes whether  the |
              command  command exists and is an ensemble command. |
              This command only ever returns an error if the num- |
              ber of arguments to the command is wrong.           |

       When  called, an ensemble command takes its first argument |
       and looks it up (according to the rules  described  below) |
       to  discover  a list of words to replace the ensemble com- |
       mand and subcommand with.  The resulting list of words  is |
       then  evaluated (with no further substitutions) as if that |
       was what was typed originally (i.e. by passing the list of |
       words  through  Tcl_EvalObjv)  and returning the result of |
       the command.  Note that it is legal to make the target  of |
       an ensemble rewrite be another (or even the same) ensemble |
       command.  The ensemble command will not be visible through |
       the use of the uplevel or info level commands.             |

   ENSEMBLE OPTIONS                                               |
       The following options, supported by the namespace ensemble |
       create and namespace ensemble configure commands,  control |
       how an ensemble command behaves:                           |

       -map                                                       ||
              When non-empty, this option supplies  a  dictionary |
              that  provides a mapping from subcommand names to a |
              list of prefix words to substitute in place of  the |
              ensemble  command and subcommand words (in a manner |
              similar to an alias created with interp alias;  the |
              words  are  not reparsed after substitution).  When |
              this option is empty, the mapping will be from  the |
              local name of the subcommand to its fully-qualified |
              name.  Note that when this option is non-empty  and |
              the -subcommands option is empty, the ensemble sub- |
              command names will be exactly those words that have |
              mappings in the dictionary.                         |

       -pre-                                                      |
       fixes                                                  |   |
              This option (which is enabled by default)  controls |
              whether the ensemble command recognizes unambiguous |
              prefixes of its subcommands.  When turned off,  the |
              ensemble command requires exact matching of subcom- |
              mand names.                                         |

       -subcom-                                                   |
       mands                                               |      |
              When non-empty, this option lists exactly what sub- |
              commands are in the ensemble.  The mapping for each |
              of  those  commands  will  be  either  whatever  is |
              defined in the -map option, or to the command  with |
              the same name in the namespace linked to the ensem- |
              ble.  If this option is empty, the  subcommands  of |
              the  namespace  will  either  be  the  keys  of the |
              dictionary  listed  in  the  -map  option  or   the |
              exported  commands  of  the linked namespace at the |
              time of the invocation of the ensemble command.     |

       -unknown                                                   ||
              When non-empty, this option provides a partial com- |
              mand (to which all the words that are arguments  to |
              the ensemble command, including the fully-qualified |
              name of the ensemble, are appended) to  handle  the |
              case where an ensemble subcommand is not recognized |
              and would otherwise generate an error.  When  empty |
              (the   default)   an   error   (in   the  style  of |
              Tcl_GetIndexFromObj)  is  generated  whenever   the |
              ensemble  is unable to determine how to implement a |
              particular   subcommand.    See   UNKNOWN   HANDLER |
              BEHAVIOUR for more details.                         |

       The  following extra option is allowed by namespace ensem- |
       ble create:                                                |

       -com-                                                      |
       mand                                                   |   |
              This  write-only  option  allows  the  name  of the |
              ensemble created by namespace ensemble create to be |
              anything  in  any  existing namespace.  The default |
              value for this option is the  fully-qualified  name |
              of  the  namespace  in which the namespace ensemble |
              create command is invoked.                          |

       The following extra option is allowed by namespace  ensem- |
       ble configure:                                             |

       -names-                                                    |
       pace                                                 |     |
              This read-only option allows the retrieval  of  the |
              fully-qualified  name  of  the  namespace which the |
              ensemble was created within.                        |

   UNKNOWN HANDLER BEHAVIOUR                                      |
       If an unknown handler is specified for an  ensemble,  that |
       handler  is  called when the ensemble command would other- |
       wise return an error due to  it  being  unable  to  decide |
       which  subcommand  to  invoke.  The exact conditions under |
       which that occurs are controlled by the -subcommands, -map |
       and -prefixes options as described above.                  |

       To  execute  the  unknown  handler, the ensemble mechanism |
       takes the specified -unknown option and appends each argu- |
       ment of the attempted ensemble command invocation (includ- |
       ing the ensemble command  itself,  expressed  as  a  fully |
       qualified  name).  It invokes the resulting command in the |
       scope of the attempted  call.  If  the  execution  of  the |
       unknown  handler  terminates normally, the ensemble engine |
       reparses the subcommand (as described below) and tries  to |
       dispatch  it again, which is ideal for when the ensemble's |
       configuration has been updated by the  unknown  subcommand |
       handler. Any other kind of termination of the unknown han- |
       dler is treated as an error.                               |

       The result of the unknown handler is expected to be a list |
       (it  is  an  error  if it is not). If the list is an empty |
       list, the ensemble command attempts to look up the  origi- |
       nal subcommand again and, if it is not found this time, an |
       error will be generated just as if  the  -unknown  handler |
       was  not  there  (i.e. for any particular invocation of an |
       ensemble, its unknown  handler  will  be  called  at  most |
       once.)  This  makes  it  easy  for  the unknown handler to |
       update the ensemble or its backing namespace so as to pro- |
       vide  an  implementation  of  the  desired  subcommand and |
       reparse.                                                   |

       When the result is a non-empty list,  the  words  of  that |
       list  are used to replace the ensemble command and subcom- |
       mand, just as if they had been looked up in the  -map.  It |
       is up to the unknown handler to supply all namespace qual- |
       ifiers if the implementing subcommand is not in the names- |
       pace of the caller of the ensemble command. Also note that |
       when ensemble commands are chained (e.g. if you  make  one |
       of the commands that implement an ensemble subcommand into |
       an ensemble, in a manner similar to the text widget's  tag |
       and mark subcommands) then the rewrite happens in the con- |
       text of the caller of the outermost ensemble. That  is  to |
       say  that  ensembles do not in themselves place any names- |
       pace contexts on the Tcl call stack.                       |

       Where an empty -unknown handler is  given  (the  default), |
       the  ensemble command will generate an error message based |
       on the list of commands  that  the  ensemble  has  defined |
       (formatted   similarly   to   the   error   message   from |
       Tcl_GetIndexFromObj). This  is  the  error  that  will  be |
       thrown  when the subcommand is still not recognized during |
       reparsing. It is also an error for an -unknown handler  to |
       delete its namespace.

EXAMPLES
       Create  a  namespace containing a variable and an exported
       command:
              namespace eval foo {
                 variable bar 0
                 proc grill {} {
                    variable bar
                    puts "called [incr bar] times"
                 }
                 namespace export grill
              }

       Call the command defined in the previous example in  vari-
       ous ways.
              # Direct call
              ::foo::grill

              # Use the command resolution path to find the name
              namespace eval boo {
                 namespace path ::foo
                 grill
              }

              # Import into current namespace, then call local alias
              namespace import foo::grill
              grill

              # Create two ensembles, one with the default name and one with a
              # specified name.  Then call through the ensembles.
              namespace eval foo {
                 namespace ensemble create
                 namespace ensemble create -command ::foobar
              }
              foo grill
              foobar grill

       Look up where the command imported in the previous example
       came from:
              puts "grill came from [namespace origin grill]"

       Remove all imported commands from the current namespace:
              namespace forget {*}[namespace import]

SEE ALSO
       interp(n), upvar(n), variable(n)

KEYWORDS
       command, ensemble, exported, internal, variable



Tcl                            8.5                   namespace(n)


@@@COMMAND: nlopt_child_process@@@
nlopt_child_process

Description: 
Entry for nlopt child process control

Syntax: 
nlopt_child_process  -mainShmName <arg> -shmShift <arg> -workerId <arg>
                     -intFolderPath <arg> -eNumber <arg> [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  -mainShmName    Main shared memory name
  -shmShift       Shared memory address shift due to alignment and array 
                  overhead
  -workerId       Worker ID
  -intFolderPath  Relative folder path for intermediate files
  -eNumber        E number
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Tools


@@@COMMAND: open@@@
open(n)               Tcl Built-In Commands               open(n)



_________________________________________________________________

NAME
       open - Open a file-based or command pipeline channel

SYNOPSIS
       open fileName
       open fileName access
       open fileName access permissions
_________________________________________________________________

DESCRIPTION
       This  command  opens  a  file,  serial  port,  or  command
       pipeline and returns a channel identifier that may be used
       in  future  invocations  of  commands like read, puts, and
       close.  If the first character of fileName is not  |  then
       the  command  opens a file: fileName gives the name of the
       file to open, and  it  must  conform  to  the  conventions
       described in the filename manual entry.

       The  access  argument,  if  present,  indicates the way in
       which the file (or command pipeline) is  to  be  accessed.
       In  the  first  form  access may have any of the following
       values:

       r              Open the file for reading  only;  the  file
                      must  already  exist.  This  is the default
                      value if access is not specified.

       r+             Open the file for both reading and writing;
                      the file must already exist.

       w              Open  the  file for writing only.  Truncate
                      it if it exists.  If  it  does  not  exist,
                      create a new file.

       w+             Open  the  file  for  reading  and writing.
                      Truncate it if it exists.  If it  does  not
                      exist, create a new file.

       a              Open  the  file  for  writing only.  If the
                      file does not exist,  create  a  new  empty
                      file.   Set  the file pointer to the end of
                      the file prior to each write.

       a+             Open the file for reading and writing.   If
                      the file does not exist, create a new empty
                      file.  Set the initial access position   to
                      the end of the file.                        |

       All  of the legal access values above may have the charac- |
       ter b added as the second or third character in the  value |
       to  indicate  that the opened channel should be configured |
       with the -translation binary option,  making  the  channel |
       suitable for reading or writing of binary data.

       In  the  second  form, access consists of a list of any of
       the following flags, all of which have the standard  POSIX
       meanings.   One of the flags must be either RDONLY, WRONLY
       or RDWR.

       RDONLY         Open the file for reading only.

       WRONLY         Open the file for writing only.

       RDWR           Open the file for both reading and writing.

       APPEND         Set the file pointer to the end of the file
                      prior to each write.                        |

       BINARY                                                     ||
                      Configure   the  opened  channel  with  the |
                      -translation binary option.

       CREAT          Create the file  if  it  does  not  already
                      exist (without this flag it is an error for
                      the file not to exist).

       EXCL           If CREAT is also  specified,  an  error  is
                      returned if the file already exists.

       NOCTTY         If the file is a terminal device, this flag
                      prevents the file from  becoming  the  con-
                      trolling terminal of the process.

       NONBLOCK       Prevents  the  process  from blocking while
                      opening the file, and  possibly  in  subse-
                      quent  I/O  operations.  The exact behavior
                      of this flag is system-  and  device-depen-
                      dent;  its use is discouraged (it is better
                      to use the fconfigure command to put a file
                      in nonblocking mode).  For details refer to
                      your system documentation on the open  sys-
                      tem call's O_NONBLOCK flag.

       TRUNC          If  the file exists it is truncated to zero
                      length.

       If a new file is created as part of  opening  it,  permis-
       sions  (an integer) is used to set the permissions for the
       new file in conjunction with the process's file mode  cre-
       ation mask.  Permissions defaults to 0666.

COMMAND PIPELINES
       If the first character of fileName is "|" then the remain-
       ing characters of fileName are treated as a list of  argu-
       ments  that  describe a command pipeline to invoke, in the
       same style as the arguments for exec.  In this  case,  the
       channel  identifier  returned by open may be used to write
       to the command's input pipe or read from its output  pipe,
       depending on the value of access.  If write-only access is
       used (e.g. access is w),  then  standard  output  for  the
       pipeline is directed to the current standard output unless
       overridden by the command.  If read-only  access  is  used
       (e.g.  access  is  r),  standard input for the pipeline is
       taken from the current standard input unless overridden by
       the  command.  The id of the spawned process is accessible
       through the pid command, using the channel id returned  by
       open as argument.

       If  the  command  (or one of the commands) executed in the
       command pipeline returns an error (according to the  defi-
       nition  in  exec),  a Tcl error is generated when close is
       called on the channel unless the pipeline is in non-block-
       ing  mode  then no exit status is returned (a silent close
       with -blocking 0).

       It is often useful  to  use  the  fileevent  command  with
       pipelines  so other processing may happen at the same time
       as running the command in the background.

SERIAL COMMUNICATIONS
       If fileName refers to a serial port,  then  the  specified
       serial port is opened and initialized in a platform-depen-
       dent manner.  Acceptable values for the fileName to use to
       open a serial port are described in the PORTABILITY ISSUES
       section.

       The fconfigure command can be used to query and set  addi-
       tional  configuration  options  specific  to  serial ports
       (where supported):

       -mode baud,parity,data,stop
              This option is a set of 4  comma-separated  values:
              the  baud  rate,  parity,  number of data bits, and
              number of stop bits for this serial port.  The baud
              rate is a simple integer that specifies the connec-
              tion speed.  Parity is one of  the  following  let-
              ters:  n,  o,  e, m, s; respectively signifying the
              parity options of "none", "odd", "even", "mark", or
              "space".   Data  is  the  number  of  data bits and
              should be an integer from 5 to 8, while stop is the
              number  of stop bits and should be the integer 1 or
              2.

       -handshake type
              (Windows and Unix). This option is  used  to  setup
              automatic  handshake  control.  Note  that  not all
              handshake types maybe supported by  your  operating
              system. The type parameter is case-independent.

              If type is none then any handshake is switched off.
              rtscts activates hardware handshake. Hardware hand-
              shake  signals  are  described below.  For software
              handshake xonxoff the handshake characters  can  be
              redefined  with  -xchar.   An  additional  hardware
              handshake dtrdsr is available only  under  Windows.
              There  is  no  default handshake configuration, the
              initial value depends on your operating system set-
              tings.  The -handshake option cannot be queried.

       -queue (Windows  and  Unix). The -queue option can only be
              queried.  It returns a list of two integers  repre-
              senting  the  current  number of bytes in the input
              and output queue respectively.

       -timeout msec
              (Windows and Unix). This option is used to set  the
              timeout  for blocking read operations. It specifies
              the maximum interval between the reception  of  two
              bytes in milliseconds.  For Unix systems the granu-
              larity is 100 milliseconds.   The  -timeout  option
              does  not  affect  write  operations or nonblocking
              reads.  This option cannot be queried.

       -ttycontrol {signal boolean signal boolean ...}
              (Windows and Unix). This option is  used  to  setup
              the  handshake output lines (see below) permanently
              or to send a BREAK over the serial line.  The  sig-
              nal names are case-independent.  {RTS 1 DTR 0} sets
              the RTS output to high and the DTR output  to  low.
              The BREAK condition (see below) is enabled and dis-
              abled with {BREAK 1} and  {BREAK  0}  respectively.
              It  is  not  a good idea to change the RTS (or DTR)
              signal with active hardware  handshake  rtscts  (or
              dtrdsr).   The  result is unpredictable.  The -tty-
              control option cannot be queried.

       -ttystatus
              (Windows and Unix). The -ttystatus option can  only
              be  queried.   It  returns the current modem status
              and  handshake  input  signals  (see  below).   The
              result is a list of signal,value pairs with a fixed
              order, e.g. {CTS 1 DSR 0 RING 1 DCD 0}.  The signal
              names are returned upper case.

       -xchar {xonChar xoffChar}
              (Windows and Unix). This option is used to query or
              change the software handshake characters.  Normally
              the  operating  system default should be DC1 (0x11)
              and DC3 (0x13) representing the ASCII standard  XON
              and XOFF characters.

       -pollinterval msec
              (Windows only). This option is used to set the max-
              imum time between  polling  for  fileevents.   This
              affects  the  time  interval  between  checking for
              events throughout the Tcl interpreter (the smallest
              value  always  wins).   Use this option only if you
              want to poll the serial port  more  or  less  often
              than 10 msec (the default).

       -sysbuffer inSize

       -sysbuffer {inSize outSize}
              (Windows  only).  This option is used to change the
              size of Windows system buffers for a  serial  chan-
              nel.  Especially  at higher communication rates the
              default input buffer size of 4096 bytes can overrun
              for  latent  systems.  The first form specifies the
              input buffer size, in the second  form  both  input
              and output buffers are defined.

       -lasterror
              (Windows only). This option is query only.  In case
              of a  serial  communication  error,  read  or  puts
              returns  a  general Tcl file I/O error.  fconfigure
              -lasterror can be called to get  a  list  of  error
              details.  See below for an explanation of the vari-
              ous error codes.

SERIAL PORT SIGNALS
       RS-232 is  the  most  commonly  used  standard  electrical
       interface  for  serial  communications. A negative voltage
       (-3V..-12V) define a mark (on=1) bit and a positive  volt-
       age  (+3..+12V) define a space (off=0) bit (RS-232C).  The
       following signals are specified for incoming and  outgoing
       data,  status lines and handshaking. Here we are using the
       terms workstation for your  computer  and  modem  for  the
       external  device, because some signal names (DCD, RI) come
       from modems. Of course your external device may use  these
       signal lines for other purposes.

       TXD(output)
              Transmitted Data: Outgoing serial data.

       RXD(input)
              Received Data:Incoming serial data.

       RTS(output)
              Request  To  Send:  This  hardware  handshake  line
              informs the modem that your workstation is ready to
              receive  data.  Your  workstation may automatically
              reset this signal to indicate that the input buffer
              is full.

       CTS(input)
              Clear  To  Send:  The  complement to RTS. Indicates
              that the modem is ready to receive data.

       DTR(output)
              Data Terminal Ready: This signal  tells  the  modem
              that  the workstation is ready to establish a link.
              DTR  is  often  enabled  automatically  whenever  a
              serial port is opened.

       DSR(input)
              Data  Set  Ready:  The complement to DTR. Tells the
              workstation that the modem is ready to establish  a
              link.

       DCD(input)
              Data  Carrier Detect: This line becomes active when
              a modem detects a "Carrier" signal.

       RI(input)
              Ring Indicator: Goes active when the modem  detects
              an incoming call.

       BREAK  A  BREAK  condition  is not a hardware signal line,
              but a logical zero on the TXD or RXD  lines  for  a
              long  period  of time, usually 250 to 500 millisec-
              onds.  Normally a receive or transmit  data  signal
              stays  at  the  mark  (on=1) voltage until the next
              character is transferred. A BREAK is sometimes used
              to  reset  the  communications  line  or change the
              operating mode of communications hardware.

ERROR CODES (Windows only)
       A lot of different errors may  occur  during  serial  read
       operations  or  during  event  polling  in background. The
       external device may have been switched off, the data lines
       may be noisy, system buffers may overrun or your mode set-
       tings may be wrong.   That  is  why  a  reliable  software
       should  always  catch serial read operations.  In cases of
       an error Tcl returns a general file I/O error.  Then fcon-
       figure  -lasterror  may  help  to locate the problem.  The
       following error codes may be returned.

       RXOVER    Windows input buffer  overrun.  The  data  comes
                 faster than your scripts reads it or your system
                 is  overloaded.  Use  fconfigure  -sysbuffer  to
                 avoid  a  temporary  bottleneck and/or make your
                 script faster.

       TXFULL    Windows output  buffer  overrun.  Complement  to
                 RXOVER.  This  error should practically not hap-
                 pen, because Tcl cares about the  output  buffer
                 status.

       OVERRUN   UART  buffer  overrun (hardware) with data lost.
                 The data comes faster  than  the  system  driver
                 receives  it.   Check  your advanced serial port
                 settings  to  enable  the  FIFO  (16550)  buffer
                 and/or  setup  a  lower(1)  interrupt  threshold
                 value.

       RXPARITY  A parity error has been detected by  your  UART.
                 Wrong parity settings with fconfigure -mode or a
                 noisy data line (RXD) may cause this error.

       FRAME     A stop-bit error has been detected by your UART.
                 Wrong  mode  settings with fconfigure -mode or a
                 noisy data line (RXD) may cause this error.

       BREAK     A BREAK condition has been detected by your UART
                 (see above).

PORTABILITY ISSUES
       Windows (all versions)
              Valid values for fileName to open a serial port are
              of the form comX:, where X is a  number,  generally
              from  1  to 4.  This notation only works for serial
              ports from 1 to 9, if the system  happens  to  have
              more  than  four.  An attempt to open a serial port
              that does not exist or has a number greater than  9
              will  fail.   An  alternate  form of opening serial
              ports is to use the filename \\.\comX, where  X  is
              any  number  that  corresponds  to  a  serial port;
              please note that this method is considerably slower
              on Windows 95 and Windows 98.

       Windows NT
              When  running  Tcl interactively, there may be some
              strange interactions between the real  console,  if
              one  is  present,  and a command pipeline that uses
              standard input or output.  If a command pipeline is
              opened  for  reading,  some of the lines entered at
              the console will be sent to  the  command  pipeline
              and  some  will be sent to the Tcl evaluator.  If a
              command pipeline is opened for writing,  keystrokes
              entered  into the console are not visible until the
              pipe is closed.  This behavior occurs  whether  the
              command  pipeline  is  executing  16-bit  or 32-bit
              applications.  These problems  only  occur  because
              both  Tcl  and  the child application are competing
              for the console at the same time.  If  the  command
              pipeline  is  started from a script, so that Tcl is
              not  accessing  the  console,  or  if  the  command
              pipeline does not use standard input or output, but
              is redirected from or to a  file,  then  the  above
              problems do not occur.

       Windows 95
              A  command  pipeline  that  executes  a  16-bit DOS
              application cannot be opened for both  reading  and
              writing, since 16-bit DOS applications that receive
              standard input from a pipe and send standard output
              to  a  pipe  run  synchronously.  Command pipelines
              that do not execute  16-bit  DOS  applications  run
              asynchronously  and  can be opened for both reading
              and writing.

              When running Tcl interactively, there may  be  some
              strange  interactions  between the real console, if
              one is present, and a command  pipeline  that  uses
              standard input or output.  If a command pipeline is
              opened for reading from a 32-bit application,  some
              of  the  keystrokes  entered at the console will be
              sent to the command pipeline and some will be  sent
              to  the  Tcl  evaluator.   If a command pipeline is
              opened for writing to a 32-bit application, no out-
              put  is  visible  on  the console until the pipe is
              closed.  These problems only occur because both Tcl
              and  the  child  application  are competing for the
              console at the same time.  If the command  pipeline
              is  started  from  a  script,  so  that  Tcl is not
              accessing the console, or if the  command  pipeline
              does not use standard input or output, but is redi-
              rected from or to a file, then the  above  problems
              do not occur.

              Whether  or  not Tcl is running interactively, if a
              command pipeline  is  opened  for  reading  from  a
              16-bit  DOS  application, the call to open will not
              return until end-of-file has been received from the
              command  pipeline's  standard output.  If a command
              pipeline is opened for  writing  to  a  16-bit  DOS
              application,  no  data  will be sent to the command
              pipeline's standard output until the pipe is  actu-
              ally  closed.   This  problem occurs because 16-bit
              DOS  applications   are   run   synchronously,   as
              described above.

       Unix
              Valid values for fileName to open a serial port are
              generally of the form /dev/ttyX, where X is a or b,
              but  the  name  of  any  pseudo-file that maps to a
              serial port may be  used.   Advanced  configuration
              options  are  only  supported for serial ports when
              Tcl is built to use the POSIX serial interface.

              When running Tcl interactively, there may  be  some
              strange interactions between the console, if one is
              present, and a command pipeline that uses  standard
              input.   If  a command pipeline is opened for read-
              ing, some of the lines entered at the console  will
              be  sent  to  the command pipeline and some will be
              sent to  the  Tcl  evaluator.   This  problem  only
              occurs  because  both Tcl and the child application
              are competing for the console at the same time.  If
              the  command  pipeline is started from a script, so
              that Tcl is not accessing the console,  or  if  the
              command  pipeline  does not use standard input, but
              is redirected from a file, then the  above  problem
              does not occur.

       See the PORTABILITY ISSUES section of the exec command for
       additional information not specific to  command  pipelines
       about executing applications on the various platforms

EXAMPLE
       Open a command pipeline and catch any errors:
              set fl [open "| ls this_file_does_not_exist"]
              set data [read $fl]
              if {[catch {close $fl} err]} {
                  puts "ls command failed: $err"
              }

SEE ALSO
       file(n),  close(n),  filename(n),  fconfigure(n), gets(n),
       read(n), puts(n), exec(n), pid(n), fopen(3)

KEYWORDS
       access mode, append,  create,  file,  non-blocking,  open,
       permissions, pipeline, process, serial



Tcl                            8.3                        open(n)


@@@COMMAND: open_checkpoint@@@
open_checkpoint

Description: 
Open a design checkpoint in a new project

Syntax: 
open_checkpoint  [-part <arg>] [-ignore_timing] [-quiet] [-verbose] <file>

Usage: 
  Name              Description
  -----------------------------
  [-part]           Override the checkpoint part. Note that this may cause 
                    errors if the checkpoint contains xdef.
  [-ignore_timing]  reload a checkpoint without the timing constraints. Will 
                    not work if '-time' option given.
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <file>            Design checkpoint file

Categories: 
Project

Description:

  Open a design checkpoint file (DCP), create a new in-memory project and
  initialize a design immediately in the new project with the contents of the
  checkpoint. This command can be used to open a top-level design checkpoint,
  or the checkpoint created for an out-of-context module.

  When opening a checkpoint, there is no need to create a project first. The
  open_checkpoint command reads the design data into memory, opening the
  design in Non-Project Mode. Refer to the Vivado Design Suite User Guide:
  Design Flows Overview (UG892) for more information on Project Mode and
  Non-Project Mode.

  Note: When multiple design checkpoints are open in the AMD Vivado tool, you
  must use the current_project command to switch between the open designs.
  You can use current_design to check which checkpoint is the active design.

Arguments:

  -part <arg> - (Optional) Specify a target part for the imported checkpoint
  design. This option lets you change the speed grade of the part used by the
  design checkpoint file, or change early availability parts for production
  parts of the same device and package.

  Important: The use of -part is limited in terms of the range of parts that
  can be used, and can result in an error when opening the checkpoint if an
  incompatible part is specified.

  -ignore_timing - (Optional) Open the checkpoint without the timing
  constraints to make opening the checkpoint quicker.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The path and filename of the checkpoint file.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example opens the specified checkpoint file, and specifies
  the target part for the design:

    open_checkpoint C:/Data/state1/checkpoint.dcp -part xc7k325tffg900-2

  Note: If the specified part is not compatible with the device and package
  used by the specified checkpoint, the command will return an error.

See Also:

   *  current_design
   *  current_project
   *  read_checkpoint
   *  write_checkpoint


@@@COMMAND: open_example_project@@@
open_example_project

Description: 
Open the example project for the indicated IP

Syntax: 
open_example_project  [-dir <arg>] [-rename_bdcell <arg>] [-force]
                      [-in_process] [-quiet] [-verbose] <objects>...

Returns: 
The Project that was opened

Usage: 
  Name              Description
  -----------------------------
  [-dir]            Path to directory where example project will be created
  [-rename_bdcell]  Specify the IP instance name to use instead of the 
                    specified BD cell's IP name in the example design
  [-force]          Overwrite an example project if it exists
  [-in_process]     Open the example project in the same process
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <objects>         The objects whose example projects will be opened

Categories: 
Project, IPFlow

Description:

  Open an example project for the specified IP cores. The example project can
  be used to explore the features of the IP core in a stand-alone project,
  instead of integrated into the current project.

Arguments:

  -dir <arg> - (Optional) Specifies the path to the directory where the
  example project will be written.

  -force - (Optional) Force the opening of a new example project, overwriting
  an existing example project at the specified path.

  -in_process - (Optional) Open the example project in the same tool process
  as the current project. As a default, without this argument, a new process
  instance of the tool will be launched for the example project.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) The IP cores to open example projects for.

Examples:

  The following copies the IP customization and opens the example project for
  the specified IP core in a new location:

    open_example_project -dir C:/Data/examples -force [get_ips blk_mem*] 
    

See Also:

   *  create_ip
   *  generate_target
   *  get_ips
   *  import_ip


@@@COMMAND: open_hw@@@
The command 'open_hw' is auto loaded by Tcl. To explicitly load the command type 'load_features labtools'.

@@@COMMAND: open_hw_platform@@@
open_hw_platform

Description: 
Open the Xilinx Shell Archive

Syntax: 
open_hw_platform  [-no_auto_upgrade] [-quiet] [-verbose] [<file>]

Returns: 
The name of the shell file

Usage: 
  Name                Description
  -------------------------------
  [-no_auto_upgrade]  Disable BD auto upgrade
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution
  [<file>]            Xilinx Shell Archive file
                      Values: A filename with alphanumeric characters and 
                      .dsa/.xsa extension.

Categories: 
Vitis, Platform, FileIO

Description:

  Open a Xilinx support archive (XSA) file and extract the AMD Vivado
  project, block design, and IP from the archive. This will create a project
  directory and project file (.xpr) from the XSA.

  Note: The project will be created in the current working directory, or the
  directory from which the Vivado tool was launched.

  This command returns a transcript of its actions, or returns an error if it
  fails.

Arguments:

  -no_auto_upgrade - (Optional) Do not upgrade the IP used in the Block
  Design to the latest version. By default, the original IP from the XSA will
  be auto-upgraded if possible. Use the report_ip_status command to identify
  out-of-date IP.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Specify the path and file name of the XSA file.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example opens the specified XSA, automatically upgrading the
  IP as needed:

    open_hw_platform C:/Data/zc706.xsa

See Also:

   *  validate_hw_platform
   *  write_hw_platform


@@@COMMAND: open_impl_design@@@
open_impl_design

Description: 
Open an implementation design

Syntax: 
open_impl_design  [-quiet] [-verbose] [<run>]

Returns: 
design object

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<run>]     Run to open

Categories: 
Project


@@@COMMAND: open_io_design@@@
open_io_design

Description: 
Open an IO design

Syntax: 
open_io_design  [-name <arg>] [-part <arg>] [-constrset <arg>] [-quiet]
                [-verbose]

Returns: 
design object

Usage: 
  Name          Description
  -------------------------
  [-name]       Design name
  [-part]       Target part
  [-constrset]  Constraint fileset to use
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
Project

Description:

  Opens a new or existing I/O Pin Planning design.

  Note: The design_mode property for the current source fileset must be
  defined as PinPlanning in order to open an I/O design. If not, you will get
  the following error:

    ERROR: The design mode of `sources_1` must be PinPlanning 
    

Arguments:

  -name <arg> - (Optional) The name of a new or existing I/O Pin Planning
  design.

  -part <arg> - (Optional) The AMD device to use when creating a new
  design. If the part is not specified the default part will be used.

  -constrset <arg> - (Optional) The name of the constraint fileset to use
  when opening an I/O design.

  Note: The -constrset argument must refer to a constraint fileset that
  exists. It cannot be used to create a new fileset. Use create_fileset for
  that purpose.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following creates a new I/O design called myIO:

    open_io_design -name myIO  
    

  Note: The default source set, constraint set, and part will be used in this
  case.

  The following example opens an existing I/O design called myIO, and
  specifies the constraint set to be used:

    open_io_design -name myIO -constrset topCon  
    

See Also:

   *  create_project


@@@COMMAND: open_netlist_design@@@
open_netlist_design

Description: 
Open a synthesis or netlist design

Syntax: 
open_netlist_design  [-name <arg>] [-run <arg>] [-part <arg>]
                     [-constrset <arg>] [-top <arg>] [-mode <arg>] [-quiet]
                     [-verbose]

Returns: 
design object

Usage: 
  Name          Description
  -------------------------
  [-name]       Design name
  [-run]        Run to open into the netlist design
  [-part]       Target part
  [-constrset]  Constraint fileset to use
  [-top]        Specify the top module name when the structural netlist is 
                Verilog
  [-mode]       The design mode. Values: default, out_of_context
                Default: default
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
Project


@@@COMMAND: open_placer_checkpoint@@@
open_placer_checkpoint

Description: 
Open Placer Checkpoint

Syntax: 
open_placer_checkpoint  [-phase <arg>] [-continue] [-quiet] [-verbose]
                        <directory>

Usage: 
  Name         Description
  ------------------------
  [-phase]     Placer Checkpoint Name
  [-continue]  Continue placement from checkpoint opened in interactive mode
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <directory>  Design checkpoint directory
               Values: A directory name with alphanumeric characters

Categories: 



@@@COMMAND: open_project@@@
open_project

Description: 
Open a Vivado project file (.xpr)

Syntax: 
open_project  [-part <arg>] [-read_only] [-quiet] [-verbose] <file>

Returns: 
opened project object

Usage: 
  Name          Description
  -------------------------
  [-part]       Open the project using this part (overrides project's part)
  [-read_only]  Open the project in read-only mode
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <file>        Project file to be read

Categories: 
Project

Description:

  Opens the specified Vivado Design Suite project file (.xpr), or the project
  file for the Vivado Lab Edition (.lpr).

  Note: The open_project command has a different command syntax in the Vivado
  Lab Edition. The -part option is not supported because the Vivado Lab
  Edition project (.lpr) does not specify a target part. The
  current_hw_target and current_hw_device commands determine the target part.

  This command returns a transcript of its process and the name of the
  created project, or returns an error if it fails.

Arguments:

  -part <arg> - (Optional) Specify a target part to use when opening the
  project. This option lets you change the speed grade of the part used by a
  saved project, or change early availability parts for production parts of
  the same device and package. This option is not supported in Vivado Lab
  Edition.

  Note: The use of -part is limited in terms of the range of parts that can
  be used, and can result in an error when opening the project if an
  incompatible part is specified.

  -read_only - (Optional) Open the project in read only mode. You will not be
  able to save any modifications to the project unless you use the
  save_project_as command to save the project to a new editable project.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The project file to open. You must include both the
  path to the file and the .xpr file extension.

Examples:

  The following example opens the project named my_project1 located in the
  Designs directory.

    open_project C:/Designs/project1.xpr  
    

  Note: The project must be specified with the .xpr extension for the tool to
  recognize it as a project file. The path to the file must be specified
  along with the project file name or the tool will return an error that it
  cannot find the specified file.

See Also:

   *  close_project
   *  create_project
   *  current_hw_device
   *  current_hw_target
   *  current_project


@@@COMMAND: open_report@@@
open_report

Description: 
Open report from .rpx file

Syntax: 
open_report  [-file <arg>] [-append] [-console] [-name <arg>] [-return_string]
             [-quiet] [-verbose] <rpx>

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-console]        Send output to console
  [-name]           Output the results to GUI panel with this name
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <rpx>             Report data file to be read

Categories: 
Report

Description:

  Read an RPX (protobuf) file into memory to reload report results into the
  Vivado Design Suite. This command requires an open implemented or
  synthesized design.

  The RPX file is written by report commands such as report_timing_summary,
  and report_pulse_width, that support the -rpx option, and is an interactive
  report file that can be reloaded into memory. Reloading the report into
  memory, reconnects the objects in the report to design objects so that
  cross-selection between the report in the Vivado IDE and the design is
  enabled.

  This command returns the report results to the Tcl console by default, or
  when -console is specified, or opens a report window in the Vivado IDE when
  -name is specified. This command returns an error if it fails.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -console - (Optional) Output the report results to the Tcl console in the
  Vivado IDE or Tcl shell mode. This is the default behavior of the
  open_report command if no other options are specified.

  -name <arg> - (Optional) Specifies the name of the results set for the GUI.
  Timing summary reports in the GUI can be deleted by the
  delete_timing_results command.

  Note: Opening the RPX file in a named window in the VIvado IDE links
  objects between the report and the design for cross-selection.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <rpx> - Specify the name of the RPX file to load into memory.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the specified RPX file an opens a named report
  in the Vivado IDE:

    open_report -name RPX1 design1_summary.rpx 
    

See Also:

   *  check_timing
   *  report_bus_skew
   *  report_config_timing
   *  report_datasheet
   *  report_drc
   *  report_methodology
   *  report_power
   *  report_pulse_width
   *  report_timing
   *  report_timing_summary


@@@COMMAND: open_rtl_design@@@
open_rtl_design

Description: 
Open an rtl design

Syntax: 
open_rtl_design  [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>]
                 [-rtl_skip_mlo] [-rtl_skip_ip] [-rtl_skip_constraints]
                 [-quiet] [-verbose]

Returns: 
design object

Usage: 
  Name                     Description
  ------------------------------------
  [-name]                  Design name
  [-part]                  Target part
  [-constrset]             Constraint fileset to use
  [-top]                   Specify the top module name
  [-rtl_skip_mlo]          Skip mandatory logic optimization for RTL 
                           elaboration of the design.
  [-rtl_skip_ip]           Exclude subdesign checkpoints in the RTL 
                           elaboration of the design.
  [-rtl_skip_constraints]  Do not load and validate constraints against 
                           elaborated design.
  [-quiet]                 Ignore command errors
  [-verbose]               Suspend message limits during command execution

Categories: 
Project

Description:

  Opens a new or existing RTL source design.

  Note: Verilog or VHDL source files must be added to the source fileset, and
  a top module identified, before opening an RTL design.

Arguments:

  -name <arg> - The name of a new or existing RTL design.

  -part <arg> - The AMD device to use when creating a new design. If the
  part is not specified the default part will be used.

  -constrset <arg> - The name of the constraint fileset to use when opening
  the design.

  Note: The -constrset argument must refer to a constraint fileset that
  exists. It cannot be used to create a new fileset. Use create_fileset for
  that purpose.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following creates a new RTL design called RTL1:

    open_rtl_design -name RTL1  
    

  Note: The default source set, constraint set, and part will be used in this
  case.

  The following example opens an existing RTL design called RTL1, and
  specifies the constraint set to be used:

    
    open_rtl_design -name RTL1 -constrset top  
    

  Note: The default source set and part will be used in this case.

See Also:

   *  config_run
   *  launch_runs
   *  link_design
   *  open_impl_design
   *  open_run


@@@COMMAND: open_run@@@
open_run

Description: 
Open a run into a netlist or implementation design

Syntax: 
open_run  [-name <arg>] [-pr_config <arg>] [-quiet] [-verbose] <run>

Returns: 
design object

Usage: 
  Name          Description
  -------------------------
  [-name]       Design name
  [-pr_config]  PR Configuration to apply while opening the design (only 
                valid when opening a synthesis run)
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <run>         Run to open into the design

Categories: 
Project

Description:

  Opens the specified synthesis run into a Netlist Design or implementation
  run into an Implemented Design. The run properties defining the target part
  and constraint set are combined with the synthesis or implementation
  results to create the design view in the tool.

  This command is intended to open a synthesized or implemented design that
  was created from design runs in Project Mode in the Vivado Design Suite.

  Use the open_checkpoint command to open a Non-Project based checkpoint into
  memory, opening the design in Non-Project Mode. Refer to the Vivado Design
  Suite User Guide: Design Flows Overview (UG892) for more information on
  Project Mode and Non-Project Mode.

Arguments:

  -name - (Optional) This is the name assigned to the synthesized or
  implemented design when the run is opened by the Vivado tool. This name is
  for reference purposes, and has nothing to do with the top-level of the
  design or any logic contained within.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <run> - (Required) Specifies the run name of the synthesis or
  implementation run to open. The run must have completed synthesis or
  implementation before it can be opened as a design.

  Note: If you attempt to open a run that has not been launched the tool will
  return an error.

Examples:

  The following command opens the specified synthesis run into a Netlist
  Design named synthPass1:

    open_run -name synthPass1 synth_1 
    

  The following opens an Implemented Design for impl_1:

    open_run impl_1  
    

See Also:

   *  launch_runs
   *  link_design
   *  open_checkpoint
   *  read_checkpoint
   *  write_checkpoint


@@@COMMAND: opt_design@@@
opt_design

Description: 
Optimize the current netlist. This will perform the retarget, propconst, sweep and bram_power_opt optimizations by default.

Syntax: 
opt_design  [-retarget] [-propconst] [-sweep] [-bram_power_opt] [-remap]
            [-aggressive_remap] [-resynth_remap] [-resynth_area]
            [-resynth_seq_area] [-directive <arg>] [-muxf_remap]
            [-hier_fanout_limit <arg>] [-bufg_opt] [-mbufg_opt]
            [-shift_register_opt] [-dsp_register_opt] [-srl_remap_modes <arg>]
            [-control_set_merge] [-control_set_opt] [-merge_equivalent_drivers]
            [-carry_remap] [-debug_log] [-property_opt_only] [-quiet]
            [-verbose]

Usage: 
  Name                         Description
  ----------------------------------------
  [-retarget]                  Retarget
  [-propconst]                 Propagate constants across leaf-level 
                               instances
  [-sweep]                     Remove unconnected leaf-level instances
  [-bram_power_opt]            Perform Block RAM power optimizations
  [-remap]                     Remap logic optimally in LUTs
  [-aggressive_remap]          High effort remap optimization
  [-resynth_remap]             High effort re-synthesis to reduce the depth 
                               of logic in critical timing paths
  [-resynth_area]              Resynthesis
  [-resynth_seq_area]          Resynthesis (with Sequential optimizations)
  [-directive]                 Mode of behavior (directive) for this command.
                               Please refer to Arguments section of this help
                               for values for this option
                               Default: Default
  [-muxf_remap]                Optimize all MuxFx cells to LUT3
  [-hier_fanout_limit]         Replicate by module with threshold N
  [-bufg_opt]                  Insert, Merge and Split BUFGs
  [-mbufg_opt]                 Merge BUFGs to MBUFGs
  [-shift_register_opt]        Pull register stage from shift register
  [-dsp_register_opt]          Push/Pull Registers out of a DSP
  [-srl_remap_modes]           Remap shift registers to flops or flops to 
                               shift registers
  [-control_set_merge]         Merge all equivalent control set drivers to a 
                               single driver
  [-control_set_opt]           Optimize control set, Versal only
  [-merge_equivalent_drivers]  Merge all LUT,Flop equivalent driver 
                               replications
  [-carry_remap]               Remap carries into luts
  [-debug_log]                 Show debug message
  [-property_opt_only]         Do targeted optimizations on tagged cells
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution

Categories: 
Tools

Description:

  Optimizes a design netlist for the target part. Optimization provides
  improvements to synthesized netlists from third-party tools, or for
  netlists that are not optimized during synthesis.

  Run this command after synthesis but prior to implementation to optimize
  the design and simplify the netlist before placing and routing the design.
  Assign the DONT_TOUCH property to prevent the optimization of individual
  cells.

  Tip: To see what actions opt_design is taking in optimizing your design,
  you can use the -verbose option to get a more detailed transcript of the
  process. This can help you in understanding and debugging some of the
  changes made to your design.

  The opt_design command performs the following optimizations by default:

   *  Retarget

   *  Constant Propagation

   *  Sweep

   *  Global Buffer (BUFG) optimizations

   *  DSP Register optimizations

   *  Shift-Register Logic optimizations

   *  Block RAM Power optimizations

   *  Implement MIG cores

   *  Implement Debug cores

  Important: Using command-line options for specific optimizations results in
  opt_design performing only the specified optimizations and disabling all
  others, even the ones that are usually performed by default.

  To perform LUT Remapping, you must specify -remap.

  To perform area-based re-synthesis, you must specify -resynth_area, or
  -directive ExploreArea.

  To perform sequential area-based re-synthesis, you must specify
  -resynth_seq_area, or -directive ExploreSequentialArea.

Arguments:

  -retarget - (Optional) Retarget one type of block to another when
  retargetting the design from one device family to another. For example,
  retarget instantiated MUXCY or XORCY components into a CARRY4 block; or
  retarget DCM to MMCM. The retarget optimization also absorbs inverters into
  downstream logic where possible.

  Note: The -retarget argument is optional, as are the other optimizations.
  However this optimization is run by default unless explicitly overridden by
  another optimization.

  -propconst - (Optional) Propagate constant inputs through the circuit,
  resulting in a simplified netlist. Propagation of constants can eliminate
  redundant combinational logic from the netlist.

  -sweep - (Optional) Remove unnecessary logic, removing loadless cells and
  nets. Additional optimization can be performed such as tie-off, register
  replication driving multiple OBUF, IBUF/OBUF insertion, retargeting dual
  port RAM to single port RAM, and optimizing IDELAYCTRL by grouping IO.

  -bram_power_opt - (Optional) Enables power optimization on Block RAM cells.
  Changes the WRITE_MODE on unread ports of true dual-port RAMs to NO_CHANGE,
  and applies intelligent clock gating to Block RAM outputs.

  Note: Specific Block RAM cells can be excluded from this optimization using
  the set_power_opt command.

  -remap - (Optional) Remap the design to combine multiple LUTs into a single
  LUT to reduce the depth of the logic.

  -aggressive_remap - (Optional) Similar to the -remap option to reduce LUT
  logic depth but more exhaustive. This may reduce more LUT levels at the
  expense of longer optimization runtime.

  -resynth_area - (Optional) Perform re-synthesis in area mode to reduce the
  number of LUTs.

  -resynth_seq_area - (Optional) Perform re-synthesis to reduce both
  combinational and sequential logic. Performs a superset of the optimization
  provided by -resynth_area.

  -resynth_remap - (Optional) Remap the design to improve the critical paths
  in timing-driven mode by performing re-synthesis to reduce the depth of
  logic. This timing-based approach will replicate LUT's with fanout and
  collapse smaller LUT's into bigger functions at the expense of longer
  optimization runtime.

  -directive <arg> - (Optional) Direct the mode of optimization with specific
  design objectives. Only one directive can be specified for a single
  opt_design command, and values are case-sensitive. Supported values
  include:

   *  Explore - Run additional optimizations to improve results.

   *  ExploreArea - Run Explore with resynth_area, to reduce the number of
      LUTs.

   *  ExploreWithRemap - Run Explore with aggresive_remap optimization to
      compress logic levels.

   *  ExploreSequentialArea - Run Explore with resynth_seq_area optimization
      to reduce registers and related combinational logic.

   *  RuntimeOptimized - Runs Default without bram_power_opt. Run the fewest
      optimizations, trading optimization results for faster runtime.

   *  RQS - Instructs opt_design to select the opt_design directive specified
      by the report_qor_suggestion strategy suggestion. Requires an RQS file
      with a strategy suggestion to be read in prior to calling this
      directive. See report_qor_suggestions -help for more details.

   *  Default - Run the default optimization.

  Refer to the Vivado Design Suite User Guide: Implementation (UG904) for
  more information on the effects of each directive.

  Note: The -directive option controls the overall optimization strategy, and
  is not compatible with any specific optimization options. It can only be
  used with -debug_log, -quiet and -verbose.

  -muxf_remap - (Optional) Convert MUXFs to LUT3s opportunistically when it
  can potentially improve route-ability of the design without affecting
  timing.

  -hier_fanout_limit <arg> - (Optional) Net drivers with fanout greater than
  the specified limit (<arg>) will be replicated according to the logical
  hierarchy. For each hierarchical instance driven by the high-fanout net, if
  the fanout within the hierarchy is greater than the specified limit, then
  the net within the hierarchy is driven by a replica of the driver of the
  high-fanout net. The minimum value for hier_fanout_limit is 512.

  -bufg_opt - (Optional) Perform various optimizations related to global
  buffers (BUFG/BUFGCE): Insert a buffer on unbuffered clock nets (fanout >
  30). Insert BUFGs on high fanout nets where the control set pin count on
  the net exceeds the tool threshold. Perform load-splitting when a
  high-fanout net drives both combinational and sequential logic: the
  combinational portion bypasses the BUFG because the added delay is too
  large.

  Tip: The phys_opt_design command can be used to optimize the combinational
  portion, while the sequential portion can be driven by BUFG.

  -mbufg_opt - (Optional) MBUFG optimization transforms parallel clock
  buffers driven by a common driver, or clock modifying blocks (CMB) such as
  MMCM, DPLL, or XPLL, to MBUFG.

  -shift_register_opt - (Optional) For high-fanout nets originating from an
  SRL, add output register pipeline stages to improve timing prior to the
  high-fanout net replication. This optimization is performed as part of the
  default optimization.

  -dsp_register_opt - (Optional) Pull registers out of a DSP, or push
  registers into a DSP, to improve timing and resource utilization as needed.
  This optimization is performed as part of the default optimization.

  -srl_remap_modes <args> - (Optional) Many designs have timing closure
  issues related to deep SRLs, and long register chains. This option provides
  both an automatic rule to trigger remapping between FF chains and SRLs, and
  also a manual rule to specify when to convert a FF chain to an SRL, or an
  SRL to a FF chain. Automatic remapping starts with the longest FF chains
  and converts those to SRLs when needed to reduce FF utilization, and takes
  the shallowest SRLs and converts those to FF chains when needed to reduce
  LUT utilization. Manual remapping takes FF chains in excess of specified
  lengths and remaps them to SRLs, and takes SRLs with specified depths and
  remaps them to FF chains. The automatic and manual modes cannot both be
  used in the same opt_design command pass. The following shows the syntax
  for the automatic and manual rules:

   *  Automatic:

       -  -srl_remap_modes {{target_ff_util <util> target_lutram_util
          <util>}}: Where <util> is a number from 0 to 100 expressed as a
          percentage of utilization. When either FF or LUTs exceed the
          specified utilization, the tool remaps as needed. When both
          utilization rates are exceeded neither is remapped.

   *  Manual:

       -  -srl_remap_modes {{min_depth_ffs_to_srl <val>}{max_depth_srl_to_ffs
          <val>}}: Where <val> specifies the depth of an SRL or length of a
          FF chain. When a FF chain is greater than the specified min value,
          the chain is remapped to an SRL with the required depth. If an SRL
          has depth less than or equal to the specified max value, the SRL is
          remapped to a FF chain.

  -control_set_merge - (Optional) Reduce the drivers of logically-equivalent
  control signals to a single driver. This is like a reverse fanout
  replication, and results in nets that are better suited for module-based
  replication.

  -control_set_opt - (Optional) Reduce the control set structure complexity
  and provide more flexibility to placer by converting smaller control sets
  into bigger group. This switch introduce new LUT logic in front of flop D
  pins to preserve functionality. The optimization is enabled by default in
  all explore strategies.

    Explore/ExploreArea/ExploreSequentialArea/ExploreWithRemap

  -merge_equivalent_drivers - (Optional) This option merges equivalent
  drivers on both control signals and non-control signals, to reduce logic in
  the design.

  -carry_remap - (Optional) Remap carry signals into LUTs.

  -debug_log - (Optional) Generate log file for debugging purposes.

  -property_opt_only - (Optional) Indicates that the opt_design command
  should be driven only by properties on objects in the design, and not by
  the options defined as part of the command syntax. Refer to the Vivado
  Design Suite Properties Reference Guide (UG912) for more information on
  specific properties. The following properties trigger property-only
  optimizations: CARRY_REMAP, CONTROL_SET_REMAP, EQUIVALENT_DRIVER_OPT,
  LUT_REMAP, MUXF_REMAP, REG_TO_SRL, SRL_STAGES_TO_REG_INPUT,
  SRL_STAGES_TO_REG_OUTPUT, SRL_TO_REG.

  Tip: When -property_opt_only is specified, the tool will return an error if
  additional optimizations have been specified in the opt_design command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command. This option displays detailed information
  about the logic that is affected by each optimization.

Examples:

  The following example performs all four default optimizations: retarget,
  constant propagation, sweep, and Block RAM power optimization. The command
  returns detailed results with the -verbose switch:

    opt_design -verbose

  This example excludes specific Block RAM cells from power optimization
  using the set_power_opt command, and then runs opt_design with the four
  default optimizations:

    set_power_opt -exclude_cells [get_cells \
       -filter {PRIMITIVE_TYPE =~ BMEM.*.*} \
       -of_objects [get_pins -leaf -filter {DIRECTION == IN} \
       -of_objects [get_nets -of_objects [get_pins clock/bufgctrl_clk_mld/O]]]]
    opt_design

  The following example performs the sweep and retarget optimizations:

    opt_design -sweep -retarget

  Note: Because -sweep and -retarget are expressly enabled in the prior
  example, -propconst optimization and -bram_power_opt are implicitly
  disabled.

  The following example directs the opt_design command to use various
  algorithms to achieve potentially better results:

    opt_design -directive Explore

  The following example directs the opt_design command to use various
  algorithms to achieve potentially better results, while focusing on area
  reduction:

    opt_design -directive ExploreArea

  This example uses the -srl_remap_modes argument with the automatic option
  to convert FF chains into SRLs when FF utilization is greater than 20%, or
  SRLs into FF chains when SRL utilization is over 50%:

    -srl_remap_modes {{target_ff_util 20 target_lutram_util 50}}

  Tip: In this case, the srl_remap is only performed if either specified
  utilization rate is exceeded, but NOT if both are exceeded.

  The following example uses the -srl_remap_modes argument with the manual
  option to convert FF chains with length greater than 5 to SRLs, and SRLs
  with depth less than or equal to 8 to FF chains:

    -srl_remap_modes {{min_depth_ffs_to_srl 5}{max_depth_srl_to_ffs 8}}

See Also:

   *  phys_opt_design
   *  place_design
   *  power_opt_design
   *  route_design
   *  set_power_opt
   *  synth_design


@@@COMMAND: package@@@
package(n)            Tcl Built-In Commands            package(n)



_________________________________________________________________

NAME
       package  - Facilities for package loading and version con-
       trol

SYNOPSIS
       package forget ?package package ...?
       package ifneeded package version ?script?
       package names
       package present package ?requirement...?
       package present -exact package version
       package provide package ?version?
       package require package ?requirement...?
       package require -exact package version
       package unknown ?command?
       package vcompare version1 version2
       package versions package
       package vsatisfies version requirement...
       package prefer ?latest|stable?
_________________________________________________________________


DESCRIPTION
       This command keeps  a  simple  database  of  the  packages
       available  for  use  by the current interpreter and how to
       load them into the interpreter.  It supports multiple ver-
       sions of each package and arranges for the correct version
       of a package to be loaded based on what is needed  by  the
       application.   This  command also detects and reports ver-
       sion clashes.  Typically, only  the  package  require  and
       package   provide  commands  are  invoked  in  normal  Tcl
       scripts;  the other commands are used primarily by  system
       scripts that maintain the package database.

       The  behavior  of the package command is determined by its
       first argument.  The following forms are permitted:

       package forget ?package package ...?
              Removes all information about each specified  pack-
              age  from  this  interpreter, including information
              provided by both package ifneeded and package  pro-
              vide.

       package ifneeded package version ?script?
              This  command typically appears only in system con-
              figuration scripts to set up the package  database.
              It indicates that a particular version of a partic-
              ular package is available if needed, and  that  the
              package  can be added to the interpreter by execut-
              ing script.  The script is saved in a database  for
              use  by subsequent package require commands;  typi-
              cally, script sets up auto-loading for the commands
              in   the  package  (or  calls  load  and/or  source
              directly), then invokes package provide to indicate
              that the package is present.  There may be informa-
              tion in the database for several different versions
              of  a single package.  If the database already con-
              tains information for package and version, the  new
              script  replaces  the  existing one.  If the script
              argument is omitted, the current script for version
              version of package package is returned, or an empty
              string if no  package  ifneeded  command  has  been
              invoked for this package and version.

       package names
              Returns  a list of the names of all packages in the
              interpreter for which a version has  been  provided
              (via  package  provide)  or  for  which  a  package
              ifneeded script is available.  The  order  of  ele-
              ments in the list is arbitrary.

       package present
              This  command  is  equivalent  to  package  require
              except that it does not try and load the package if
              it is not already loaded.

       package provide package ?version?
              This  command  is  invoked to indicate that version
              version of package package is now  present  in  the
              interpreter.   It is typically invoked once as part
              of an ifneeded script, and  again  by  the  package
              itself  when it is finally loaded.  An error occurs
              if a different version of package has been provided
              by a previous package provide command.  If the ver-
              sion argument is omitted, then the command  returns
              the  version  number that is currently provided, or
              an empty string if no package provide  command  has
              been invoked for package in this interpreter.

       package require package ?requirement...?
              This  command is typically invoked by Tcl code that
              wishes to use a particular version of a  particular
              package.   The  arguments indicate which package is
              wanted, and the command  ensures  that  a  suitable
              version  of  the  package is loaded into the inter-
              preter.  If the command succeeds,  it  returns  the
              version number that is loaded;  otherwise it gener-
              ates an error.

              A suitable version of the package  is  any  version
              which  satisfies  at least one of the requirements,
              per the rules of package  vsatisfies.  If  multiple
              versions  are  suitable the implementation with the
              highest version is chosen. This last part is  addi-
              tionally  influenced by the selection mode set with
              package prefer.

              In the "stable" selection  mode  the  command  will
              select  the  highest  stable version satisfying the
              requirements, if any. If no stable  version  satis-
              fies the requirements, the highest unstable version
              satisfying the requirements will be  selected.   In
              the "latest" selection mode the command will accept
              the highest version  satisfying  all  the  require-
              ments, regardless of its stableness.

              If  a  version of package has already been provided
              (by invoking the package provide command), then its
              version  number  must  satisfy the requirements and
              the command returns  immediately.   Otherwise,  the
              command  searches  the database of information pro-
              vided by previous package ifneeded commands to  see
              if  an  acceptable version of the package is avail-
              able.  If so, the script for the highest acceptable
              version  number  is  evaluated in the global names-
              pace; it must do whatever is necessary to load  the
              package,  including calling package provide for the
              package.  If the package ifneeded database does not
              contain  an acceptable version of the package and a
              package unknown command has been specified for  the
              interpreter  then  that command is evaluated in the
              global namespace;  when it  completes,  Tcl  checks
              again  to  see if the package is now provided or if
              there is a package ifneeded script for it.  If  all
              of  these  steps fail to provide an acceptable ver-
              sion of the package, then the  command  returns  an
              error.

       package require -exact package version
              This  form  of  the  command  is used when only the
              given version  of  package  is  acceptable  to  the
              caller.   This  command  is  equivalent  to package
              require package version-version.

       package unknown ?command?
              This command supplies a "last  resort"  command  to
              invoke  during  package require if no suitable ver-
              sion of a package  can  be  found  in  the  package
              ifneeded database.  If the command argument is sup-
              plied, it contains the first  part  of  a  command;
              when  the  command  is  invoked  during  a  package
              require command, Tcl appends one or more additional
              arguments  giving  the  desired  package  name  and
              requirements.  For example, if command is  foo  bar
              and  later  the command package require test 2.4 is
              invoked, then Tcl will execute the command foo  bar
              test  2.4  to load the package.  If no requirements
              are supplied to the package require  command,  then
              only the name will be added to invoked command.  If
              the package unknown command is  invoked  without  a
              command  argument, then the current package unknown
              script is returned, or an empty string if there  is
              none.   If command is specified as an empty string,
              then the current package unknown script is removed,
              if there is one.

       package vcompare version1 version2
              Compares  the two version numbers given by version1
              and version2.  Returns -1 if version1 is an earlier
              version  than  version2, 0 if they are equal, and 1
              if version1 is later than version2.

       package versions package
              Returns a list of all the version numbers of  pack-
              age  for  which  information  has  been provided by
              package ifneeded commands.

       package vsatisfies version requirement...
              Returns 1 if the version satisfies at least one  of
              the  given  requirements,  and  0  otherwise.  Each
              requirement is allowed to have any of the forms:

              min    This form is called "min-bounded".

              min-   This form is called "min-unbound".

              min-max
                     This form is called "bounded".

              where "min" and "max" are  valid  version  numbers.
              The legacy syntax is a special case of the extended
              syntax, keeping backward  compatibility.  Regarding
              satisfaction the rules are:

              [1]    The  version has to pass at least one of the
                     listed requirements to be satisfactory.

              [2]    A version satisfies a "bounded"  requirement
                     when

                      [a]    For  min  equal  to  the max if, and
                             only if the version is equal to  the
                             min.

                      [b]    Otherwise  if,  and only if the ver-
                             sion is greater than or equal to the
                             min,  and  less  than the max, where
                             both min and max  have  been  padded
                             internally  with  "a0".   Note  that
                             while  the  comparison  to  min   is
                             inclusive,  the comparison to max is
                             exclusive.

              [3]    A "min-bounded" requirement is  a  "bounded"
                     requirement  in  disguise, with the max part
                     implicitly  specified  as  the  next  higher
                     major version number of the min part. A ver-
                     sion satisfies it per the rules above.

              [4]    A version satisfies a "min-unbound" require-
                     ment  if,  and only if it is greater than or
                     equal to the min, where  the  min  has  been
                     padded  internally  with  "a0".  There is no
                     constraint to a maximum.

       package prefer ?latest|stable?
              With no  arguments,  the  commands  returns  either
              "latest"  or "stable", whichever describes the cur-
              rent  mode  of  selection  logic  used  by  package
              require.

              When  passed  the  argument  "latest",  it sets the
              selection logic mode to "latest".

              When passed the argument "stable", if the  mode  is
              already  "stable", that value is kept.  If the mode
              is already "latest", then the  attempt  to  set  it
              back  to "stable" is ineffective and the mode value
              remains "latest".

              When passed any other value as an  argument,  raise
              an invalid argument error.

              When  an interpreter is created, its initial selec-
              tion mode value is set to "stable" unless the envi-
              ronment  variable TCL_PKG_PREFER_LATEST is set.  If
              that environment  variable  is  defined  (with  any
              value)  then  the initial (and permanent) selection
              mode value is set to "latest".

VERSION NUMBERS
       Version numbers consist of one  or  more  decimal  numbers
       separated  by  dots,  such as 2 or 1.162 or 3.1.13.1.  The
       first number is called the major version  number.   Larger
       numbers  correspond  to  later versions of a package, with
       leftmost numbers having greater significance.   For  exam-
       ple,  version  2.1  is later than 1.3 and version 3.4.6 is
       later  than  3.3.5.   Missing  fields  are  equivalent  to
       zeroes:   version  1.3  is  the  same as version 1.3.0 and
       1.3.0.0, so it is earlier than 1.3.1 or 1.3.0.2.  In addi-
       tion, the letters "a" (alpha) and/or "b" (beta) may appear
       exactly once to replace a dot for separation.  These  let-
       ters  semantically  add a negative specifier into the ver-
       sion, where "a" is -2, and "b" is -1. Each may  be  speci-
       fied only once, and "a" or "b" are mutually exclusive in a
       specifier. Thus  1.3a1  becomes  (semantically)  1.3.-2.1,
       1.3b1  is  1.3.-1.1.  Negative  numbers  are  not directly
       allowed in version specifiers.  A version number not  con-
       taining  the  letters  "a"  or  "b"  as specified above is
       called a stable version, whereas presence of  the  letters
       causes the version to be called is unstable.  A later ver-
       sion number is assumed to be upwards  compatible  with  an
       earlier  version  number as long as both versions have the
       same major version number.  For example, Tcl scripts writ-
       ten  for  version  2.3  of a package should work unchanged
       under versions 2.3.2, 2.4,  and  2.5.1.   Changes  in  the
       major version number signify incompatible changes: if code
       is written to use version 2.1 of  a  package,  it  is  not
       guaranteed to work unmodified with either version 1.7.3 or
       version 3.1.

PACKAGE INDICES
       The recommended way to use packages in Tcl  is  to  invoke
       package  require  and package provide commands in scripts,
       and use the procedure pkg_mkIndex to create package  index
       files.   Once  you have done this, packages will be loaded
       automatically in response  to  package  require  commands.
       See the documentation for pkg_mkIndex for details.

EXAMPLES
       To  state that a Tcl script requires the Tk and http pack-
       ages, put this at the top of the script:
              package require Tk
              package require http

       To test to see if the Snack package is available and  load
       if  it  is (often useful for optional enhancements to pro-
       grams where the loss of the functionality is not critical)
       do this:
              if {[catch {package require Snack}]} {
                 # Error thrown - package not found.
                 # Set up a dummy interface to work around the absence
              } else {
                 # We have the package, configure the app to use it
              }

SEE ALSO
       msgcat(n), packagens(n), pkgMkIndex(n)

KEYWORDS
       package, version



Tcl                            7.5                     package(n)


@@@COMMAND: package_xo@@@
package_xo

Description: 
Used to package a Xilinx Object (XO) container

Syntax: 
package_xo  [-kernel_name <arg>] [-force] [-kernel_xml <arg>]
            [-output_kernel_xml <arg>] [-design_xml <arg>]
            [-ip_directory <arg>] [-parent_ip_directory <arg>]
            [-kernel_files <args>] [-kernel_xml_args <args>]
            [-kernel_xml_pipes <args>] [-kernel_xml_connections <args>]
            [-ctrl_protocol <arg>] -xo_path <arg> [-quiet] [-verbose]

Returns: 
The path to the packaged XO container

Usage: 
  Name                       Description
  --------------------------------------
  [-kernel_name]             The name of the kernel
  [-force]                   Overwrite existing kernel in XO file
  [-kernel_xml]              The path to the existing kernel XML file
  [-output_kernel_xml]       The path of the generated output kernel XML file
  [-design_xml]              The path to the existing design XML file
  [-ip_directory]            The path to the kernel IP directory
  [-parent_ip_directory]     If the kernel IP directory specified contains 
                             multiple IPs, specify a directory path to the 
                             parent IP where its component.xml is located 
                             directly below.
  [-kernel_files]            Kernel file name(s)
  [-kernel_xml_args]         Generate kernel.xml with the arg(s). Each arg 
                             value should follow this format: 
                             {name:addressQualifier:id:port:size:offset:type:
                             memSize} where memSize is optional.
  [-kernel_xml_pipes]        Generate kernel.xml with the pipe(s). Each pipe 
                             value should follow this format: 
                             {name:width:depth}
  [-kernel_xml_connections]  Generate kernel.xml with the connection(s). Each
                             connection value should follow this format: 
                             {srcInst:srcPort:dstInst:dstPort}
  [-ctrl_protocol]           Kernel control protocol. Valid values: 
                             ap_ctrl_hs, ap_ctrl_chain, ap_ctrl_none, 
                             user_managed. Default: ap_ctrl_hs
                             Default: ap_ctrl_hs
  -xo_path                   The path of the output XO container file
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution

Categories: 
Vitis, Acceleration, FileIO

Description:

  Package a Xilinx IP, or Vivado IP Integrator Block Design, into a compiled
  object file (XO) for use in the Vitis core development kit as a pre-defined
  RTL Kernel.

  This command returns the path to the packaged XO container.

Arguments:

  -kernel_name <arg> - (Required) Specifies the name of the RTL kernel.

  -force - (Optional) Overwrite an existing XO file if one exists.

  -kernel_xml <arg> - (Optional) Specify the path to an existing kernel XML
  file.

  -design_xml <arg> - (Optional) Specify the path to an existing design XML
  file.

  -ip_directory <arg> - (Optional) Specify the path to the kernel IP directory.

  -parent_ip_directory - (Optional) If the kernel IP directory specified
  contains multiple IPs, specify a directory path to the parent IP where its
  component.xml is located directly below.

  -kernel_files - (Optional) Kernel file name(s).

  -kernel_xml_args <args> - (Optional) Generate the kernel.xml with the
  specified function arguments. Each argument value should use the following
  format:

    {name:addressQualifier:id:port:size:offset:type:memSize}

  Note: memSize is optional.

  -kernel_xml_pipes <args> - (Optional) Generate the kernel.xml with the
  specified pipe(s). Each pipe value use the following format:

    {name:width:depth}

  -kernel_xml_connections <args> - (Optional) Generate the kernel.xml file
  with the specified connections. Each connection value should use the
  following format:

    {srcInst:srcPort:dstInst:dstPort}

  -xo_path <arg> - (Required) Specifies the path and file name of the
  compiled object (XO) container file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example creates the specified XO file containing an RTL
  kernel of the specified name:

    package_xo -xo_path /temp/data/rtl_kernel/Vadd_A_B.xo -kernel_name Vadd_A_B 
    


@@@COMMAND: phys_opt_design@@@
phys_opt_design

Description: 
Optimize the current placed netlist.

Syntax: 
phys_opt_design  [-fanout_opt] [-placement_opt] [-routing_opt]
                 [-slr_crossing_opt] [-insert_negative_edge_ffs]
                 [-restruct_opt] [-interconnect_retime] [-lut_opt] [-casc_opt]
                 [-cell_group_opt] [-critical_cell_opt] [-dsp_register_opt]
                 [-bram_register_opt] [-uram_register_opt] [-bram_enable_opt]
                 [-shift_register_opt] [-hold_fix] [-aggressive_hold_fix]
                 [-retime] [-force_replication_on_nets <args>]
                 [-directive <arg>] [-critical_pin_opt] [-clock_opt]
                 [-path_groups <args>] [-tns_cleanup] [-sll_reg_hold_fix]
                 [-memory_rewire_opt] [-quiet] [-verbose]

Usage: 
  Name                          Description
  -----------------------------------------
  [-fanout_opt]                 Do cell-duplication based optimization on 
                                high-fanout timing critical nets
  [-placement_opt]              Do placement based optimization on timing 
                                critical nets
  [-routing_opt]                Do routing based optimization on timing 
                                critical nets
  [-slr_crossing_opt]           Do placement optimization of SLR-crossing 
                                timing critical nets
  [-insert_negative_edge_ffs]   Insert negative edge triggered FFs for hold 
                                optimization
  [-restruct_opt]               Do LUT restructuring optimization
  [-interconnect_retime]        Do interconnect retiming optimization
  [-lut_opt]                    Do single LUT replacement/replication 
                                optimization
  [-casc_opt]                   Do LUT cascade placement/replication 
                                optimization
  [-cell_group_opt]             Do critical cell group optimization
  [-critical_cell_opt]          Do cell-duplication based optimization on 
                                timing critical nets
  [-dsp_register_opt]           Do DSP register optimization
  [-bram_register_opt]          Do BRAM register optimization
  [-uram_register_opt]          Do UltraRAM register optimization
  [-bram_enable_opt]            Do BRAM enable optimization
  [-shift_register_opt]         Do Shift register optimization
  [-hold_fix]                   Attempt to improve slack of high hold 
                                violators
  [-aggressive_hold_fix]        Attempt to aggressively improve slack of high
                                hold violators
  [-retime]                     Do retiming optimization
  [-force_replication_on_nets]  Force replication optimization on nets
  [-directive]                  Mode of behavior (directive) for this 
                                command. Please refer to Arguments section of
                                this help for values for this option
                                Default: Default
  [-critical_pin_opt]           Do pin-swapping based optimization on timing 
                                critical nets
  [-clock_opt]                  Do clock skew optimization in post-route 
                                optimization
  [-path_groups]                Work only on specified path groups
  [-tns_cleanup]                Work on all nets in the design that meet 
                                criteria for the specified optimizations to 
                                improve design tns
  [-sll_reg_hold_fix]           Do hold fixing on SLL Tx-Rx paths
  [-memory_rewire_opt]          Do memory pin-swapping based optimization on 
                                timing critical nets
  [-quiet]                      Ignore command errors
  [-verbose]                    Suspend message limits during command 
                                execution

Categories: 
Tools

Description:

  Performs timing-driven optimization on the negative-slack paths of a
  design. A path should have negative slack near the worst negative slack
  (WNS) to be considered for optimization. Optimization will not be performed
  on designs without negative slack.

  This optional command can be run for post-place or post-route optimizations.

  Note: Because physical optimization requires timing data that is only
  available after placement, the command cannot be run prior to placement.
  However, the write_iphys_opt_tcl and read_iphys_opt_tcl commands let you
  write out the physical optimizations performed on the post-placed design,
  and then apply those optimizations to the design netlist prior to
  placement. Refer to the Vivado Design Suite User Guide: Implementation
  (UG904) for more information on interactive physical optimization.

  Post-place phys_opt_design performs the following optimizations by default:

   *  high-fanout optimization

   *  placement-based optimization of critical paths

   *  LUT restructure optimization

   *  critical-cell optimization

   *  DSP register optimization

   *  Block RAM register optimization

   *  URAM register optimization

   *  a final fanout optimization

  Tip: Using command-line options for specific optimizations results in
  phys_opt_design performing only the specified optimizations and disabling
  all others, even the ones that are usually performed by default.

  Post-route phys_opt_design performs the following optimizations by default:

   *  placement-based optimization of critical paths

   *  routing optimization

   *  LUT restructure optimization

   *  critical-cell optimization

  Physical optimizations involve replication, re-timing, hold fixing, and
  placement improvement. The phys_opt_design command automatically performs
  all necessary netlist and placement changes.

  To perform re-timing you must specify the -retime option, or the -directive
  AddRetime option.

  To perform hold fixing you must specify the -hold_fix option, or the
  -directive ExploreWithHoldFix option.

  If the phys_opt_design command is used iteratively, the subsequent run
  optimizes the results of the prior run.

  Tip: The phys_opt_design can be multi-threaded to speed the process. Refer
  to the set_param command for more information on setting the
  general.maxThreads parameter.

  The command reports each net processed, a summary of any optimizations
  performed, and the WNS before and after optimization. Replicated objects
  are named by appending _replica to the original object name, followed by
  the replicated object count.

Arguments:

  -fanout_opt - (Optional) Performs delay-driven optimization on high-fanout
  timing critical nets, by replicating drivers to reduce delay. This is not
  applicable for Versal adaptive SoC devices.

  Note: The -fanout_opt argument is optional, as are the other optimizations.
  However this optimization is run by default unless explicitly overridden by
  another optimization.

  -placement_opt - (Optional) Moves cells to reduce delay on timing-critical
  nets. This is not applicable for Versal adaptive SoC devices.

  -memory_rewire_opt - (Optional) Performs rewiring of critical signals to
  faster pins of BRAM/URAM. Not applicable for cascaded and ECC enabled
  memories. This is applicable to Versal adaptive SoC devices only.

  -routing_opt - (Optional) Performs routing optimization on timing-critical
  nets to reduce delay.

  -slr_crossing_opt - (Optional) Performs post-place or post-route
  optimizations to improve the path delay of inter-SLR connections. The
  optimization adjusts the locations of the driver, load, or both along the
  SLR crossing after potential replication. For use with UltraScale and
  UltraScale+ devices.

  -restruct_opt - (Optional) Advanced LUT restructure optimization to reduce
  logic levels and reduce delay on critical signals.

  -insert_negative_edge_ffs - (Optional) Inserts negative edge triggered FFs
  for hold optimization. This is not applicable for the Advanced Flow.

  -interconnect_retime - (Optional) Performs interconnect retiming to improve
  critical path timing by movement or replication of a FF or LUT-FF pair.
  This is applicable to Versal adaptive SoC devices only.

  -lut_opt - (Optional) Performs LUT movement/replication to improve critical
  path timing. This is applicable to Versal adaptive SoC devices only.

  -casc_opt- (Optional) Performs LUT cascade optimization for creating new
  LUT cascades or moving existing LUT cascades to improve critical path
  timing. This is applicable to Versal adaptive SoC devices only.

  -critical_cell_opt - (Optional) Replicates cells on timing critical nets to
  reduce delays. This is not applicable for Versal adaptive SoC devices.

  -dsp_register_opt - (Optional) Improves critical path delay by moving
  registers from slices to DSP blocks, or from DSP blocks to slices.

  -bram_register_opt - (Optional) Improves critical path delay by moving
  registers from slices to block RAMs, or from block RAMs to slices.

  -uram_register_opt - (Optional) Improves critical path delay by moving
  registers across the URAM cell boundary, from slices into URAMs, or from
  URAMs to slices.

  -bram_enable_opt - (Optional) The block RAM enable optimization improves
  timing on critical paths involving power-optimized block RAMs.
  Pre-placement block RAM power optimization restructures the logic driving
  block RAM read and write enable inputs to reduce dynamic power consumption.
  After placement the restructured logic may become timing-critical. The
  block RAM enable optimization reverses the enable-logic optimization to
  improve the slack on the critical enable-logic paths. This is not
  applicable for Advanced flow.

  -shift_register_opt - (Optional) Performs shift register optimization to
  improve timing on negative slack paths between shift register cells (SRLs)
  and other logic cells. If there are timing violations to or from shift
  register cells (SRL16E or SRLC32E), the optimization extracts a register
  from the beginning or end of the SRL register chain and places it into the
  logic fabric to improve timing. The optimization shortens the wire length
  of the original critical path. Refer to the Vivado Design Suite User Guide:
  Implementation (UG904) for more information.

  -hold_fix - (Optional) Performs optimizations to insert data path delay to
  fix hold time violations.

  -aggressive_hold_fix - (Optional) Performs optimizations to insert data
  path delay to fix hold time violations. Considers significantly more hold
  violations than the standard hold fix algorithm.

  -retime - (Optional) Re-time registers forward through combinational logic
  to balance path delays. This is a property-driven optimization.

  -force_replication_on_nets <args> - (Optional) Forces the drivers of the
  specified net objects to be replicated, regardless of timing slack. This
  option requires the use of the get_nets command to specify net objects.
  Replication is based on load placements and requires manual analysis to
  determine if replication is sufficient. If further replication is required,
  nets can be replicated repeatedly by successive commands. This is not
  applicable for Advanced Flow.

  -directive <arg> - (Optional) Directs the mode of physical optimization
  with specific design objectives. Only one directive can be specified for a
  single phys_opt_design command and the values are case-sensitive. Supported
  values include:

   *  Explore - Run different algorithms in multiple passes of optimization,
      including replication for very high fanout nets.

   *  ExploreWithHoldFix - Run different algorithms in multiple passes of
      optimization, including hold violation fixing and replication for very
      high fanout nets.

   *  ExploreWithAggressiveHoldFix - Run different algorithms in multiple
      passes of optimization, including aggressive hold violation fixing and
      replication for very high fanout nets.

   *  AggressiveExplore - Similar to Explore but with different optimization
      algorithms and more aggressive goals.

   *  AlternateReplication - Use different algorithms for performing critical
      cell replication. This is not applicable for Advanced Flow.

   *  AggressiveFanoutOpt - Uses different algorithms for fanout-related
      optimizations with more aggressive goals. This is not applicable for
      Advanced Flow.

   *  AlternateFlowWithRetiming - Perform more aggressive replication and DSP
      and Block RAM optimizations, and enable register re-timing. This is not
      applicable for Advanced Flow.

   *  AddRetime - Performs the default phys_opt_design flow and adds
      re-timing. This is not applicable for Advanced Flow.

   *  RuntimeOptimized - Provides a reduced set of physical optimizations
      with the shortest runtime. Use this directive when compile time
      reduction is more important than design performance. RuntimeOptimized
      includes fanout_opt, critical_cell_opt, placement_opt, and
      bram_enable_opt.

   *  RQS - Instructs phys_opt_design to select the phys_opt_design directive
      specified by the report_qor_suggestion strategy suggestion. Requires an
      RQS file with a strategy suggestion to be read in prior to calling this
      directive. This is not applicable for Advanced Flow. See
      report_qor_suggestions -help for more details.

   *  Default - Run phys_opt_design with default settings.

  Refer to the Vivado Design Suite User Guide: Implementation (UG904) for
  more information on the effects of each directive.

  Note: The -directive option controls the overall optimization strategy, and
  is not compatible with any specific optimization options. It can only be
  used with -quiet and -verbose.

  -critical_pin_opt - For LUT inputs, this optimization performs remapping of
  logical pins to physical pins, also known as pin-swapping, to improve
  critical path timing. A critical path traversing a logical pin that has
  been mapped to a slow physical pin, such as A1 or A2, is reassigned to a
  faster physical pin, such as A6 or A5 if it improves timing.

  Note: A cell with a LOCK_PINS property will be skipped and the cell will
  retain the pin mapping specified by LOCK_PINS. Logical-to-physical pin
  mapping can be obtained with get_site_pins for a selected logical pin
  object.

  -clock_opt - (Optional) Perform clock skew optimization during post-route
  optimization. Insert global clock buffers to delay destination clocks to
  improve setup on critical paths. Optimization will modify CLK_MOD delays
  for Versal devices.

  -path_groups <args> - (Optional) Perform optimizations on the specified
  path groups only.

  -tns_cleanup - (Optional) This option can be used with the
  -slr_crossing_opt option. This performs a Total Negative Slack (TNS)
  cleanup, which supports optimizing SLR crossing paths while allowing some
  slack degradation on other paths, as long as the overall WNS does not
  degrade. This is applicable to UltraScale and UltraScale+ devices.

  -sll_reg_hold_fix - (Optional) Performs SLL register hold fix optimization.
  You can use this option when the router is having trouble resolving hold
  violations on SLR crossing paths. This is not applicable for Versal
  adaptive SoC devices.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs a physical optimization of the current
  post-placement design, and then writes the iphys_opt Tcl script for use
  before placement:

    phys_opt_design
    write_iphys_opt_tcl C:/Data/my_iphys_opt.tcl

  This example sets the LOCK_PINS property on the specified cell, then
  performs physical optimizations including register re-timing, optimization
  of registers across DSP blocks and block RAMs, and pin swapping (excluding
  the locked pins) to improve timing:

    set_property LOCK_PINS {I3:A1 I2:A4} [get_cell cpuEngine/qmem_dack_reg_i_1]
    phys_opt_design -retime -dsp_register_opt -bram_register_opt \
       -critical_pin_opt

  This example directs phys_opt_design to run more iterations, with hold
  violation fixing, to achieve potentially better results:

    phys_opt_design -directive ExploreWithHoldFix

  This example directs phys_opt_design to consider more nets for replication:

    phys_opt_design -directive AggressiveFanoutOpt

See Also:

   *  get_pins
   *  get_site_pins
   *  opt_design
   *  place_design
   *  power_opt_design
   *  read_iphys_opt_tcl
   *  route_design
   *  write_iphys_opt_tcl


@@@COMMAND: pid@@@
pid(n)                Tcl Built-In Commands                pid(n)



_________________________________________________________________

NAME
       pid - Retrieve process identifiers

SYNOPSIS
       pid ?fileId?
_________________________________________________________________


DESCRIPTION
       If  the  fileId  argument is given then it should normally
       refer to a process pipeline created with the open command.
       In this case the pid command will return a list whose ele-
       ments are the process identifiers of all the processes  in
       the  pipeline, in order.  The list will be empty if fileId
       refers to an open file that is not a process pipeline.  If
       no  fileId  argument is given then pid returns the process
       identifier of the current process.   All  process  identi-
       fiers are returned as decimal strings.

EXAMPLE
       Print   process  information  about  the  processes  in  a
       pipeline using the SysV ps program before reading the out-
       put of that pipeline:

              set pipeline [open "| zcat somefile.gz | grep foobar | sort -u"]
              # Print process information
              exec ps -fp [pid $pipeline] >@stdout
              # Print a separator and then the output of the pipeline
              puts [string repeat - 70]
              puts [read $pipeline]
              close $pipeline


SEE ALSO
       exec(n), open(n)


KEYWORDS
       file, pipeline, process identifier



Tcl                            7.0                         pid(n)


@@@COMMAND: pkg_mkIndex@@@
pkg_mkIndex(n)        Tcl Built-In Commands        pkg_mkIndex(n)



_________________________________________________________________

NAME
       pkg_mkIndex  -  Build  an  index  for automatic loading of
       packages

SYNOPSIS
       pkg_mkIndex ?-direct?  ?-lazy?  ?-load pkgPat? ?-verbose? dir ?pattern pattern ...?
_________________________________________________________________

DESCRIPTION
       Pkg_mkIndex is a utility procedure that  is  part  of  the
       standard  Tcl  library.   It is used to create index files
       that allow packages to be loaded automatically when  pack-
       age  require  commands  are executed.  To use pkg_mkIndex,
       follow these steps:

       [1]    Create the package(s).  Each package may consist of
              one  or  more  Tcl  script  files  or binary files.
              Binary files must be suitable for loading with  the
              load  command with a single argument;  for example,
              if the file is test.so it must be possible to  load
              this  file  with  the  command  load test.so.  Each
              script file must contain a package provide  command
              to declare the package and version number, and each
              binary file must contain a call to  Tcl_PkgProvide.

       [2]    Create  the index by invoking pkg_mkIndex.  The dir
              argument gives the name of  a  directory  and  each
              pattern  argument  is  a  glob-style  pattern  that
              selects script or binary files in dir.  The default
              pattern is *.tcl and *.[info sharedlibextension].

              Pkg_mkIndex  will create a file pkgIndex.tcl in dir
              with package information about all the files  given
              by  the pattern arguments.  It does this by loading
              each file into a slave interpreter and seeing  what
              packages and new commands appear (this is why it is
              essential  to  have  package  provide  commands  or
              Tcl_PkgProvide  calls  in  the  files, as described
              above).  If you have a package split among  scripts
              and binary files, or if you have dependencies among
              files, you may have to  use  the  -load  option  or
              adjust the order in which pkg_mkIndex processes the
              files.  See COMPLEX CASES below.

       [3]    Install the package as a subdirectory of one of the
              directories  given by the tcl_pkgPath variable.  If
              $tcl_pkgPath  contains  more  than  one  directory,
              machine-dependent  packages  (e.g., those that con-
              tain binary shared libraries)  should  normally  be
              installed  under  the  first directory and machine-
              independent packages (e.g., those that contain only
              Tcl  scripts)  should be installed under the second
              directory.  The  subdirectory  should  include  the
              package's script and/or binary files as well as the
              pkgIndex.tcl file.   As  long  as  the  package  is
              installed  as  a  subdirectory  of  a  directory in
              $tcl_pkgPath it will automatically be found  during
              package require commands.

              If  you install the package anywhere else, then you
              must ensure that the directory containing the pack-
              age is in the auto_path global variable or an imme-
              diate subdirectory of one  of  the  directories  in
              auto_path.   Auto_path  contains a list of directo-
              ries that are searched by both the auto-loader  and
              the   package   loader;   by  default  it  includes
              $tcl_pkgPath.  The package loader also  checks  all
              of   the   subdirectories  of  the  directories  in
              auto_path.  You can add a  directory  to  auto_path
              explicitly  in your application, or you can add the
              directory to your TCLLIBPATH environment  variable:
              if  this  environment variable is present, Tcl ini-
              tializes  auto_path  from  it  during   application
              startup.

       [4]    Once  the above steps have been taken, all you need
              to do  to  use  a  package  is  to  invoke  package
              require.   For  example,  if versions 2.1, 2.3, and
              3.1  of  package  Test   have   been   indexed   by
              pkg_mkIndex,  the command package require Test will
              make version 3.1 available and the command  package
              require  -exact  Test  2.1  will  make  version 2.1
              available.  There may be many versions of a package
              in  the  various index files in auto_path, but only
              one will actually be loaded in a given interpreter,
              based  on  the first call to package require.  Dif-
              ferent versions of a package may be loaded in  dif-
              ferent interpreters.

OPTIONS
       The optional switches are:

       -direct        The  generated  index will implement direct
                      loading  of  the   package   upon   package
                      require.  This is the default.

       -lazy          The  generated  index  will manage to delay
                      loading the package until the use of one of
                      the   commands  provided  by  the  package,
                      instead  of  loading  it  immediately  upon
                      package  require.   This  is not compatible
                      with the use of auto_reset,  and  therefore
                      its use is discouraged.

       -load pkgPat   The  index  process will pre-load any pack-
                      ages that exist in the current  interpreter
                      and match pkgPat into the slave interpreter
                      used to generate the  index.   The  pattern
                      match  uses string match rules, but without
                      making  case  distinctions.   See   COMPLEX
                      CASES below.

       -verbose       Generate  output  during  the indexing pro-
                      cess.  Output is via the tclLog  procedure,
                      which by default prints to stderr.

       --             End of the flags, in case dir begins with a
                      dash.

PACKAGES AND THE AUTO-LOADER
       The package management facilities  overlap  somewhat  with
       the  auto-loader,  in  that  both  arrange for files to be
       loaded  on-demand.   However,  package  management  is   a
       higher-level  mechanism  that uses the auto-loader for the
       last step in the loading process.  It is generally  better
       to   index   a   package   with  pkg_mkIndex  rather  than
       auto_mkindex because the package mechanism  provides  ver-
       sion  control:   several versions of a package can be made
       available in the index files, with different  applications
       using  different  versions  based  on package require com-
       mands.  In contrast, auto_mkindex does not understand ver-
       sions so it can only handle a single version of each pack-
       age.  It is probably not a good  idea  to  index  a  given
       package  with  both  pkg_mkIndex and auto_mkindex.  If you
       use pkg_mkIndex to index a package, its commands cannot be
       invoked  until  package  require has been used to select a
       version;  in contrast, packages indexed with  auto_mkindex
       can be used immediately since there is no version control.

HOW IT WORKS
       Pkg_mkIndex depends on the package  unknown  command,  the
       package  ifneeded command, and the auto-loader.  The first
       time a package require command  is  invoked,  the  package
       unknown script is invoked.  This is set by Tcl initializa-
       tion to a script that evaluates all  of  the  pkgIndex.tcl
       files  in  the  auto_path.  The pkgIndex.tcl files contain
       package ifneeded commands for each version of each  avail-
       able  package;  these commands invoke package provide com-
       mands to announce the availability  of  the  package,  and
       they  setup  auto-loader  information to load the files of
       the package.  If the -lazy  flag  was  provided  when  the
       pkgIndex.tcl  was  generated, a given file of a given ver-
       sion of a given package is not actually loaded  until  the
       first  time  one  of its commands is invoked.  Thus, after
       invoking package require you may  not  see  the  package's
       commands  in  the  interpreter,  but  you  will be able to
       invoke the commands and they will be auto-loaded.

DIRECT LOADING
       Some packages, for instance packages which use  namespaces
       and  export  commands  or those which require special ini-
       tialization, might select  that  their  package  files  be
       loaded  immediately upon package require instead of delay-
       ing the actual loading to the first  use  of  one  of  the
       package's  command. This is the default mode when generat-
       ing the package index.  It can be overridden by specifying
       the -lazy argument.

COMPLEX CASES
       Most  complex  cases  of  dependencies  among  scripts and
       binary files, and packages being split among  scripts  and
       binary  files  are  handled  OK.  However, you may have to
       adjust  the  order  in  which  files  are   processed   by
       pkg_mkIndex.   These issues are described in detail below.

       If each script or file contains one package, and  packages
       are only contained in one file, then things are easy.  You
       simply specify all files to be indexed in any  order  with
       some glob patterns.

       In  general,  it is OK for scripts to have dependencies on
       other packages.  If scripts contain package  require  com-
       mands,  these  are  stubbed out in the interpreter used to
       process the scripts, so these do not cause  problems.   If
       scripts  call  into  other  packages in global code, these
       calls are handled by a stub unknown command.  However,  if
       scripts  make variable references to other package's vari-
       ables in global code, these will cause  errors.   That  is
       also bad coding style.

       If  binary  files  have  dependencies  on  other packages,
       things can become tricky because it  is  not  possible  to
       stub  out  C-level  APIs  such  as Tcl_PkgRequire API when
       loading a binary file.  For example, suppose the BLT pack-
       age  requires  Tk,  and  expresses  this  with  a  call to
       Tcl_PkgRequire in its Blt_Init routine.  To support  this,
       you  must  run  pkg_mkIndex  in an interpreter that has Tk
       loaded.  You  can  achieve  this  with  the  -load  pkgPat
       option.  If you specify this option, pkg_mkIndex will load
       any packages listed by info loaded and that  match  pkgPat
       into the interpreter used to process files.  In most cases
       this will satisfy the Tcl_PkgRequire calls made by  binary
       files.

       If  you  are  indexing two binary files and one depends on
       the other, you should specify the one that  has  dependen-
       cies last.  This way the one without dependencies will get
       loaded and indexed, and then the package it provides  will
       be  available  when the second file is processed.  You may
       also need to load the first  package  into  the  temporary
       interpreter  used  to  create the index by using the -load
       flag; it will not hurt to specify  package  patterns  that
       are not yet loaded.

       If  you  have a package that is split across scripts and a
       binary file, then you should avoid  the  -load  flag.  The
       problem is that if you load a package before computing the
       index it masks any other files that provide  part  of  the
       same  package.  If you must use -load, then you must spec-
       ify the scripts first; otherwise the package  loaded  from
       the  binary  file  may  mask  the  package  defined by the
       scripts.

SEE ALSO
       package(n)

KEYWORDS
       auto-load, index, package, version



Tcl                            8.3                 pkg_mkIndex(n)


@@@COMMAND: place_cell@@@
place_cell

Description: 
Move or place one or more instances to new locations. Sites and cells are required to be listed in the right order and there should be same number of sites as number of cells. 

Syntax: 
place_cell  [-quiet] [-verbose] <cell_site_list>...

Usage: 
  Name              Description
  -----------------------------
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <cell_site_list>  a list of cells and sites in the interleaved order 

Categories: 
Floorplan

Description:

  Places cells onto device resources of the target part. Cells can be placed
  onto specific BEL sites (e.g. SLICE_X49Y60/A6LUT), or into available SLICE
  resources (e.g. SLICE_X49Y60). If you specify the SLICE but not the BEL the
  tool will determine an appropriate BEL within the specified SLICE if one is
  available.

  When placing a cell onto a specified site, the site must not be currently
  occupied, or an error will be returned: Cannot set site and bel property of
  instances. Site SLICE_X49Y61 is already occupied.

  You can test if a site is occupied by querying the IS_OCCUPIED property of
  a BEL site:

    get_property IS_OCCUPIED [get_bels SLICE_X48Y60/D6LUT] 
    

  Note: The IS_OCCUPIED property of a SLICE only tells you if some of the
  BELs within the SLICE are occupied; not whether or not the SLICE is fully
  occupied.

  This command can be used to place cells, or to move placed cells from one
  site on the device to another site. The command syntax is the same for
  placing an unplaced cell, or moving a placed cell.

  When moving a placed cell, if you specify only the SLICE for the site, the
  tool will attempt to place the cell onto the same BEL site in the new SLICE
  as it currently is placed. For instance moving a cell from the B6LUT, by
  specifying a new SLICE, will cause the tool to attempt to place the cell
  onto the B6LUT in the new SLICE. If this BEL site is currently occupied, an
  error is returned.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cell_site_list> - (Required) Specifies a list of cells and sites as
  {<cell_name> <site> }. The cell name is listed first, followed the BEL site
  or SLICE to place the cell onto. If the site is specified as a SLICE, the
  tool will select an available BEL within the SLICE. Multiple cells can be
  placed onto multiple sites by repeating the cell/site pair multiple times
  as needed:

    {<cell_name1> <site1> <cell_name2> <site2> \  
    <cell_name3> <site3>... <cell_nameN> <siteN> } 
    

Examples:

  The following example places the specified cell onto the specified BEL site:

    place_cell div_cntr_reg_inferredi_4810_15889 SLICE_X49Y60/D6LUT 
    

  The following example places the specified cell into the specified SLICE:

    place_cell div_cntr_reg_inferredi_4810_15889 SLICE_X49Y61 
    

  Note: The tool will select an appropriate BEL site if one is available. If
  no BEL is available, and error will be returned.

  The following example places multiple cells onto multiple sites:

    place_cell  { \  
       cpuEngine/cpu_iwb_adr_o/buffer_fifo/i_4810_17734 SLICE_X49Y60/A6LUT \  
       cpuEngine/or1200_cpu/or1200_mult_mac/i_4775_15857 SLICE_X49Y60/B6LUT \  
       cpuEngine/cpu_iwb_adr_o/buffer_fifo/xlnx_opt_LUT_i_4810_18807_2 \  
       SLICE_X49Y60/C6LUT } 
    

See Also:

   *  create_cell
   *  remove_cell
   *  unplace_cell


@@@COMMAND: place_design@@@
place_design

Description: 
Automatically place ports and leaf-level instances

Syntax: 
place_design  [-directive <arg>] [-subdirective <args>] [-no_timing_driven]
              [-eco] [-timing_summary] [-unplace] [-post_place_opt] [-no_psip]
              [-sll_align_opt] [-clock_vtree_type <arg>] [-no_bufg_opt]
              [-ultrathreads] [-no_noc_opt] [-net_delay_weight <arg>] [-quiet]
              [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  [-directive]         Mode of behavior (directive) for this command. Please 
                       refer to Arguments section of this help for values for
                       this option.
                       Default: Default
  [-subdirective]      (Advanced Flow) Mode of behavior (subdirective) for 
                       this command. Please refer to Arguments section of 
                       this help for values for this option.
  [-no_timing_driven]  Do not run in timing driven mode
  [-eco]               (Advanced Flow) Run placer in ECO mode
  [-timing_summary]    Enable accurate post-placement timing summary.
  [-unplace]           Unplace all the instances which are not locked by 
                       Constraints.
  [-post_place_opt]    (Not applicable for Advanced Flow) Run only the post 
                       commit optimizer
  [-no_psip]           Disable PSIP (Physical Synthesis In Placer) 
                       optimization during placement.
  [-sll_align_opt]     (Not applicable for Advanced Flow) Run only the sll 
                       alignment optimizer in PCO
  [-clock_vtree_type]  Specify v-tree template to be used in place_design, 
                       valid values are balanced, intraSLR, interSLR. For the
                       Advanced Flow, the default is balanced; otherwise, 
                       default is interSLR.
  [-no_bufg_opt]       (Not applicable for Advanced Flow) Disable global 
                       buffer insertion during placement
  [-ultrathreads]      (Not applicable for Advanced Flow) Enable 
                       ultra-threads mode to speed up place_design
  [-no_noc_opt]        To result in better NoC QoS during place_design
  [-net_delay_weight]  Specify net delay weight to be used, valid options are
                       low, medium, high
                       Default: low
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Tools

Description:

  Place the specified ports and logic cells in the current design, or all
  ports and logic cells, onto device resources on the target part. The tool
  optimizes placement to minimize negative timing slack and reduce overall
  wire length, while also attempting to spread out placement to reduce
  routing congestion.

  Placement is one step of the complete design implementation process, which
  can be run automatically through the use of the launch_runs command when
  running the Vivado Advanced Flow tools in Project Mode.

  In Non-Project Mode, the implementation process must be run manually with
  the individual commands: opt_design, place_design, phys_opt_design and
  route_design. Refer to the Vivado Design Suite User Guide: Design Flows 
  Overview (UG892) for a complete description of Project Mode and Non-Project 
  Mode.
 
  Tip: The place_design can be multi-threaded to speed the process. Refer to
  the set_param command for more information on setting the
  general.maxThreads parameter.

  You can manually place some elements of the design using place_ports,
  or by setting LOC properties on the cell, and then automatically place the
  remainder of the design using place_design.

  This command requires an open synthesized design, and it is recommended
  that you run the opt_design command prior to running place_design to avoid
  placing a suboptimal netlist.

Arguments:

  -directive <arg> - (Optional) Direct placement to achieve specific design
  objectives. Only one directive can be specified for a single place_design
  command, and values are case-sensitive. Supported values include:

   *  Explore - Increased placer effort in detail placement and
      post-placement optimization.

   *  AggressiveExplore - Attempt to improve QoR at the expense of runtime.
      The placer runtime may be significantly higher compared to the Explore
      directive because the placer uses more aggressive optimization goals
      to attempt to meet timing requirements.

   *  RuntimeOptimized - Run fewest iterations, trade higher design
      performance for faster runtime.

   *  Quick - Absolute, fastest runtime, non-timing-driven, performs the
      minimum required placement for a legal design.
   
   *  Default - Run place_design with default settings.

  Important: The -directive option controls the overall placement strategy,
  and is not compatible with some place_design options. It can be used with
  -no_psip, -net_delay_weight, -quiet and -verbose. Refer to the Vivado Design Suite User 
  Guide: Implementation (UG904) for more information on placement strategies
  and the use of the -directive option.

  -subdirective <args> - (Optional) Affects specific placer phases. The following 
   placer phases can be controlled with subdirectives:

        floorplanning, global placer, detailed placer

   More than one subdirective may be used at a time. The subdirective option 
   is incompatible with other options with the exception of -directive, 
   -no_psip, -net_delay_weight, -clock_vtree_type, -quiet and -verbose.

   The subdirective option has the following format:

       * For available values of low, med and high:
             <phase>.<sub-directive>.<low|med|high>

       * For all others values, specifying the phase and sub-directive enables 
         the optimization:
             <phase>.<sub-directive>

   The supported phase names are Floorplan for the floorplanning phase, GPlace
   for the global placer phase, and DPlace for the detailed pacer phase. Multiple 
   sub-directives can be specified through a Tcl list.
   Supported subdirectives are:

   *  RuntimeOptimized
         Supported phases: Floorplan, Gplace, Dplace
         Values: Using option indicates optimization is enabled
         Improves runtime at the expense of design performance.

   *  ExtraTimingUpdate
         Supported phases: Floorplan, Gplace, Dplace
         Values: Using option indicates optimization is enabled
         Increases the number of timing updates to improve
         design performance.

   *  ExtraTimingOpt
         Supported phases: Floorplan, Gplace, Dplace
         Values: low (default), med, high
         Improves design performance at the expense
         of runtime.

   *  BalancedSLR
         Supported phases: Floorplan
         Values: low, med (default), high
         Partitions across SLRs to balance number of cells
         between SLRs.

   *  ForceSpreading
         Supported phases: Floorplan, Gplace
         Values: low (default), med, high
         Spreads the placement by lowering the target utilization
         for all block types

   * ReduceCongestion
         Supported phases: Gplace
         Values: low (default), med, high
         Reduces global and pin congestion at the expense of other
         metrics.

   * WLDrivenBlockPlacement
         Supported phases: Floorplan, Gplace
         Values: Using option indicates optimization is enabled
         Wirelength-driven placement of RAM and DSP blocks.
         Overrides timing-driven placement by directing the placer
         to minimize the distance of connections to and from blocks.
         This directive can improve timing to and from RAM and DSP blocks.

   * ReducePinDensity
         Supported phases: Dplace
         Values: low (default), med, high
         Detail placer tries to reduce pin congestion for CLBs to
         improve overall router convergence.

   * EarlyBlockPlacement
         Supported phases: GPlace
         Values: Using option indicates optimization is enabled
         The placement of the DSP and BRAM blocks will be fixed
         earlier in the placer flow.

  -no_timing_driven - (Optional) Disables the default timing driven placement
  algorithm. This results in a faster placement based on wire lengths, but
  ignores any timing constraints during the placement process.

  -timing_summary - (Optional) Report the post-placement worst negative slack
  (WNS) using results from static timing analysis. The WNS value is identical
  to that of report_timing_summary when run on the post-placement design. By
  default the placer reports an estimated WNS based on incremental placement
  updates during the design implementation. The -timing_summary option incurs
  additional runtime to run a full timing analysis.

  -unplace - (Optional) Unplace all the instances which are not locked by
  constraints. Cells with fixed placement (IS_LOC_FIXED set to TRUE), are not
  affected.

  Tip: Use the set_property to change IS_LOC_FIXED to FALSE prior to
  unplacing fixed cells.

  -no_psip - (Optional) Disable PSIP (Physical Synthesis In Placer)
  optimization during placement. By default, to improve delay the Vivado 
  Advanced Flow placer performs optimizations such as replicating drivers of 
  high-fanout nets and drivers of loads that are far-apart. This option 
  disables those optimizations.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example directs the Vivado Advanced Flow placer to try different 
  placement algorithms to achieve a better placement result:

    place_design -directive Explore

  The following example uses the Default directive but enables wirelength
  driven placement of RAM and DSP blocks during floorplanning.

    place_design -subdirective Floorplan.WLDrivenBlockPlacement

  The following example uses the Default directive but sets instructs the
  placer to use high effort for SLR balancing in floorplan, reducing congestion
  in global place and reducing pin density in detailed place.

    place_design -subdirective {Floorplan.BalancedSLR.high GPlace.ReduceCongestion.high DPlace.ReducePinDensity.high}

  This example unplaces the current design:

    place_design -unplace


@@@COMMAND: place_partpins@@@
place_partpins

Description: 
Automatically place a set of partition pins in ooc mode

Syntax: 
place_partpins  [-num_locs_per_tile <arg>] [-start_tile <arg>]
                [-end_tile <arg>] [-quiet] [-verbose] [<ports>...]

Usage: 
  Name                  Description
  ---------------------------------
  [-num_locs_per_tile]  Number of locs per tile
                        Default: 5
  [-start_tile]         Lower Left Int tile
  [-end_tile]           Upper Right Int tile
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution
  [<ports>]             Ports to place (if omitted, all ports will be placed)

Categories: 
PinPlanning

Description:

  Automatically place a set of partition pins (ports) onto the device in an
  out-of-context flow.

Arguments:

  -num_locs_per_tile <arg> - (Optional) Specify the number of locs to use per
  tile when placing the partition pins. The default value is 5.

  -start_tile <arg> - (Optional) Specify a range of tiles to place partition
  pins into, starting in the low-left corner.

  -end_tile <arg> - (Optional) Specify a range of tiles to place partition
  pins into, ending with the upper right corner.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ports> - Specify the ports to be placed. The default is to place all ports.

Examples:

  The following example places partition pins:

    place_partpins 
    


@@@COMMAND: place_pblocks@@@
place_pblocks

Description: 
Resize Pblocks according to SLICE demand and re-position them according to connectivity

Syntax: 
place_pblocks  [-effort <arg>] [-utilization <arg>] [-quiet] [-verbose]
               <pblocks>...

Usage: 
  Name            Description
  ---------------------------
  [-effort]       Placer effort level (per Pblock)
                  Values: LOW, MEDIUM, HIGH
                  Default: HIGH
  [-utilization]  Placer utilization (per Pblock)
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <pblocks>       List of Pblocks to place

Categories: 
Floorplan

Description:

  Places Pblocks onto the fabric of the FPGA. Pblocks must be created using
  the create_pblock command, and should be populated with assigned logic
  using the add_cells_to_pblock command.

  Note: An empty Pblock will be placed as directed, but results in a Pblock
  covering a single CLB tile (two SLICEs).

Arguments:

  -effort <arg> - (Optional) Effort level that the Pblock placer should use
  in placing each Pblock onto the fabric. Valid values are LOW, MEDIUM, HIGH,
  with the default being HIGH.

  -utilization <arg> - (Optional) The percentage of slice resources on the
  target device that should be consumed by the logic elements assigned to a
  Pblock. For instance, a utilization rate of 50% means that half of the
  slice resources within the Pblock area should be allocated for use by the
  Pblock, and half should be left for use by other logic in the design. A
  high utilization value makes the Pblock smaller and more dense, but can
  make the overall design more difficult to place.

  Note: Pblock utilization considers only slice-based device resources, and
  is estimated based on the post-synthesis logic assigned to a Pblock. Actual
  placement results may vary, and may require you to resize the Pblock using
  the resize_pblock command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pblocks> - (Required) One or more Pblocks to be placed onto the fabric of
  the FPGA.

Examples:

  The following example places the specified Pblocks with a utilization of 75%:

    place_pblocks -effort LOW -utilization 75 block1 block2 block3 block4 block5 
    

See Also:

   *  add_cells_to_pblock
   *  create_pblock
   *  resize_pblock


@@@COMMAND: place_ports@@@
place_ports

Description: 
Automatically place a set of ports

Syntax: 
place_ports  [-skip_unconnected_ports] [-check_only] [-iobank <args>] [-quiet]
             [-verbose] [<ports>...]

Usage: 
  Name                       Description
  --------------------------------------
  [-skip_unconnected_ports]  Do not place unconnected ports
  [-check_only]              Only check IO/Clock placement DRCs
  [-iobank]                  Limit placement to the following banks
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  [<ports>]                  Ports to place (if omitted, all ports will be 
                             placed).  If the arguments are interleaved 
                             objects of ports and package pins, then manual 
                             placement is performed

Categories: 
PinPlanning

Description:

  Assign ports to the pins of the AMD FPGA package, by automatically or
  manually placing ports.

   *  Automatically places ports on an available I/O or clocking site, or
      into the specified I/O banks.

   *  Manually assigns ports to the specified package_pin when both the port
      and pin are specified.

  The place_ports command will not replace ports that are currently placed by
  the user, or ports that are placed and fixed.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -skip_unconnected_ports - (Optional) Do not place unconnected ports.

  -check_only - (Optional) Run the clock placer DRCs, which are also
  available as PLCK checks in the report_drc command. This option does not
  result in ports being placed, only checked for valid placement.

  -iobank <args> - (Optional) Place the specified ports into the listed IO
  bank objects. IO bank objects are returned by the get_iobanks command.

  Note: Limiting port placement to specific IO banks will result in a
  placement error if there are insufficient placement sites for the number of
  ports being placed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ports> - (Optional) The names of the ports to be placed.

   *  If no <ports> are specified, all unplaced ports will be placed.

   *  Ports can be specified in <port_name> and <package_pin> pairs to
      manually assign ports to the specified package_pin. Multiple port_name
      package_pin pairs can be specified as follows:

        {<port_name1> <package_pin1> <port_name2> <package_pin2>   
        <port_name2> <package_pin2>...<port_nameN> <package_pinN> } 
        

  Note: If previously placed ports are specified, or included in the list of
  ports to place, the Vivado tool will not replace or move those ports.

Examples:

  The following example places the port objects returned by the get_ports
  command, onto I/O bank 13 of the device, as returned by get_iobanks:

    place_ports -iobank [get_iobanks 13] [get_ports DataOut_pad_1_o] 
    

  The follow example uses port_name package_pin pairs to manually place
  multiple ports:

    place_ports {LEDS_n[2] AA11 LEDS_n[3] AA10 LEDS_n[0] Y11 LEDS_n[1] Y10} 
    

  The following example places all input ports onto I/O banks 12, 13, 14 and
  15 of the device:

    place_ports -iobank [get_iobanks {12 13 14 15}] [all_inputs] 
    

See Also:

   *  create_port
   *  get_iobanks
   *  make_diff_pair_ports
   *  remove_port


@@@COMMAND: platform_verify@@@
platform_verify

Description: 
TCL task to verify platform by comparing files at the bit level

Syntax: 
platform_verify  -reference <arg> [-untrusted <arg>] [-in_memory] [-cell <arg>]
                 [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  -reference    full path to trusted reference DCP file
  [-untrusted]  full path to untrusted DCP file
  [-in_memory]  use in-memory design for comparison, when -untrusted option 
                is not specified
  [-cell]       Name of reconfigurable cell which will be verified
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 


Description:

  This command takes two design checkpoint files (DCP) and compares the
  binary content of the files, comparing them at the bit-level.

Arguments:

  -reference <arg> - (Required) Specifies the known good DCP as a reference
  to compare.

  -untrusted <arg> - (Optional) Specifies an unqualified DCP as the file to
  be verified.

  Note: -untrusted and -in_memory are both optional. However, at least one of
  these options must be specified to indicate the untrusted design source.

  -in_memory - (Optional) Use the current_design for comparison, when the
  -untrusted option is not specified.

  -cell <arg> - (Optional) Instructs the tool to compare the specified cell
  in the two DCP files.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following command compares the two design checkpoints:

    platform_verify -reference C:/Data/design1/routed.dcp -untrusted C:/Data/design2/routed.dcp  
     
    

  The following command compares the current design against the specified
  design checkpoint in memory:

    platform_verify -reference C:/Data/design1/routed.dcp -in_memory 
    

See Also:

   *  current_design
   *  read_checkpoint
   *  write_checkpoint


@@@COMMAND: power_opt_design@@@
power_opt_design

Description: 
Optimize dynamic power using intelligent clock gating

Syntax: 
power_opt_design  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Power

Description:

  Optimizes the dynamic power consumption of the design by changing clock
  gating to take advantage of clock enable on a flop. Clock gating
  optimizations are automatically performed on the entire design to improve
  power consumption while making no changes to the existing logic or the
  clocks that would alter the behavior of the design.

  You can configure the power optimization to include or exclude specific
  cells using the set_power_opt command.

  Note: Block RAM power optimizations are performed by default with the
  opt_design command. You can disable block RAM optimization by changing the
  defaults of opt_design, or by excluding specific cells from optimization
  using the set_power_opt command.

  You can also use the read_saif command prior to optimization, and
  power_opt_design will consider the activity data while optimizing the
  design.

  You can run power optimization after synthesis, or after placement. When
  run before placement, this command optimizes the design to save power. When
  run after placement, this command optimizes the design to save power while
  preserving timing. Running after placement limits the optimizations
  available to the power_opt_design command. To achieve the best results,
  do not run this command prior to placement.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs power optimization of the open design:

    power_opt_design

  This example optimizes the design, excluding the Block RAM power
  optimization by specifying the optimizations to run, and then runs power
  optimization on the design:

    opt_design -retarget -propconst -sweep
    power_opt_design

See Also:

   *  opt_design
   *  phys_opt_design
   *  read_saif
   *  report_power
   *  report_power_opt
   *  set_power_opt


@@@COMMAND: pr_recombine@@@
pr_recombine

Description: 
Re-establish a parent cell as a Reconfigurable Partition while removing a lower-level Reconfigurable Partition when using the Hierarchical Dynamic Function eXchange solution.

Syntax: 
pr_recombine  [-cell <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-cell]     (Required) Specify reconfigurable container module name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
FileIO


@@@COMMAND: pr_subdivide@@@
pr_subdivide

Description: 
Subdivide a Reconfigurable Partition into one or more lower-level Reconfigurable Partitions when using the Hierarchical Dynamic Function eXchange solution.

Syntax: 
pr_subdivide  [-cell <arg>] [-subcells <arg>] [-quiet] [-verbose] [<from_dcp>]

Usage: 
  Name          Description
  -------------------------
  [-cell]       (Required) Specify parent reconfigurable partition module name
  [-subcells]   (Required) Specify child reconfigurable partition module names
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<from_dcp>]  (Required) Specify OOC synthesized checkpoint path for the 
                reconfigurable module specified by option -cell

Categories: 
FileIO


@@@COMMAND: pr_verify@@@
pr_verify

Description: 
Verify whether the design check points are replaceable on board. This command supports these formats:

 (1) 'pr_verify DCP1 DCP2 -full_check';

 (2) 'pr_verify -initial DCP1 -additional {DCP2 DCP3 DCP4 ...}';

 (3) 'pr_verify -in_memory -additional {DCP2 DCP3 ...}';

 For format (3), it must have an in-memory design opened.

Syntax: 
pr_verify  [-full_check] [-file <arg>] [-initial <arg>] [-additional <arg>]
           [-in_memory] [-quiet] [-verbose] [<file1>] [<file2>]

Usage: 
  Name           Description
  --------------------------
  [-full_check]  Default behavior is to report the first difference only; if 
                 this option is set to true, pr_verify will report complete 
                 difference in placement or routing
  [-file]        Filename to output results to. Send output to console if 
                 -file is not used.
  [-initial]     Initial checkpoint (.dcp)
  [-additional]  Additional checkpoints (.dcp)
  [-in_memory]   use in-memory design for comparison, combined with 
                 -additional option
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<file1>]      Design checkpoint (.dcp) file one
  [<file2>]      Design checkpoint (.dcp) file two

Categories: 
FileIO

Description:

  This command is used to compare design checkpoint files for use in the
  Dynamic Function eXchange (DFX) flow.

  For DFX designs to work in hardware, the placement and routing of static
  logic must be consistent between all configurations. In addition, proxy
  logic must be placed in the same locations and clock spine routing must
  match. The pr_verify command compares routed design checkpoint files (DCP)
  created for a DFX design to verify that all imported resources match. For
  more information refer to the Vivado Design Suite User Guide: Dynamic
  Function eXchange (UG909).

  The two modes for pr_verify let you specify two DCP files to compare, or
  multiple DCP files to compare against the first DCP file. The syntax for
  the two modes is:

   *  pr_verify DCP1 DCP2

   *  pr_verify -initial DCP1 -additional {DCP2 DCP3 DCP4}

  The second mode is the same as repeating the pr_verify command to compare
  each additional DCP with the initial DCP, but keeps the initial DCP open to
  speed the additional comparisons:

    pr_verify DCP1 DCP2
    pr_verify DCP1 DCP3
    pr_verify DCP1 DCP4

  This command returns the results of the comparison, or returns an error if
  it fails.

Arguments:

  -full_check - (Optional) Run a complete check of the two design checkpoints
  to report all mismatched resources. By default the pr_verify command will
  stop after the first mismatch since the two design checkpoints are not
  valid for DFX.

  -file <arg> - (Optional) Write the comparison results into the specified
  file. The specified file will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -initial <arg> - (Optional) Specify the initial design checkpoint file to
  use for comparison.

  -additional <args> - (Optional) Specify one or more additional checkpoints
  to compare against the -initial checkpoint. Multiple checkpoints should be
  enclosed in quotes or braces.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file1> - The first design checkpoint file to compare.

  <file2> - The second design checkpoint file to compare.

Examples:

  The following example compares the two corner DCPs, specified with the
  -additional option, against the inital DCP, running a full check on the
  designs:

    pr_verify -full_check -initial FastConfig.dcp \
       -additional {corner1.dcp corner2.dcp}

See Also:

   *  read_checkpoint
   *  write_checkpoint


@@@COMMAND: precompile_kernel@@@
precompile_kernel

Description: 
Pre-synthesize a kernel IP

Syntax: 
precompile_kernel  [-synthesis_options <args>] [-kernel_name <arg>] [-force]
                   [-output_xo <arg>] [-hw_platform <arg>] [-platform <arg>]
                   [-user_ip_repo_paths <args>] -xo_path <arg> [-quiet]
                   [-verbose]

Returns: 
The path to the packaged XO container

Usage: 
  Name                   Description
  ----------------------------------
  [-synthesis_options]   Dictionary (Tcl dict) of synthesis run properties 
                         (e.g. {property1 value1 property2 value2 ...}) to be
                         applied for synthesis.
  [-kernel_name]         The name of the kernel
  [-force]               Overwrite existing XO file
  [-output_xo]           The name of the output XO
  [-hw_platform]         The XSA or hardware platform to target for 
                         precompilation
  [-platform]            The platform to target for precompilation
  [-user_ip_repo_paths]  Add existing directories to the list of IP 
                         repositories. Value is an absolute path or a partial
                         path relative the current working directory.
  -xo_path               The path of the XO container to precompile
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Vitis, Acceleration, FileIO


@@@COMMAND: proc@@@
proc(n)               Tcl Built-In Commands               proc(n)



_________________________________________________________________

NAME
       proc - Create a Tcl procedure

SYNOPSIS
       proc name args body
_________________________________________________________________


DESCRIPTION
       The  proc  command creates a new Tcl procedure named name,
       replacing any existing command or procedure there may have
       been  by  that name.  Whenever the new command is invoked,
       the contents of body will be executed by  the  Tcl  inter-
       preter.   Normally,  name is unqualified (does not include
       the names of any containing namespaces), and the new  pro-
       cedure  is  created  in  the  current  namespace.  If name
       includes any namespace qualifiers, the procedure  is  cre-
       ated  in the specified namespace.  Args specifies the for-
       mal arguments to the procedure.  It consists  of  a  list,
       possibly empty, each of whose elements specifies one argu-
       ment.  Each argument specifier is also a list with  either
       one or two fields.  If there is only a single field in the
       specifier then it is the name of the  argument;  if  there
       are  two  fields,  then the first is the argument name and
       the second is its default value.  Arguments  with  default
       values that are followed by non-defaulted arguments become
       required arguments.  In 8.6 this  will  be  considered  an
       error.

       When  name is invoked a local variable will be created for
       each of the formal arguments to the procedure;  its  value
       will  be the value of corresponding argument in the invok-
       ing command or the argument's default value.  Actual argu-
       ments  are assigned to formal arguments strictly in order.
       Arguments with default values need not be specified  in  a
       procedure  invocation.   However,  there  must  be  enough
       actual arguments for all the formal arguments that do  not
       have  defaults,  and  there  must  not be any extra actual
       arguments.  Arguments with default values  that  are  fol-
       lowed by non-defaulted arguments become required arguments
       (in 8.6 it will be considered an  error).   There  is  one
       special case to permit procedures with variable numbers of
       arguments.  If the last formal argument has the name args,
       then a call to the procedure may contain more actual argu-
       ments than the procedure has formals.  In this  case,  all
       of  the actual arguments starting at the one that would be
       assigned to args are combined into a list (as if the  list
       command had been used); this combined value is assigned to
       the local variable args.

       When body is being executed, variable names normally refer
       to  local  variables, which are created automatically when
       referenced and deleted when the  procedure  returns.   One
       local  variable  is  automatically created for each of the
       procedure's  arguments.   Other  variables  can  only   be
       accessed by invoking one of the global, variable, upvar or
       namespace upvar commands.

       The proc command returns an empty string.  When  a  proce-
       dure is invoked, the procedure's return value is the value
       specified in a return command.  If the procedure does  not
       execute  an  explicit return, then its return value is the
       value of the last  command  executed  in  the  procedure's
       body.   If  an  error occurs while executing the procedure
       body, then the procedure-as-a-whole will return that  same
       error.

EXAMPLES
       This  is  a  procedure that accepts arbitrarily many argu-
       ments and prints them out, one by one.
              proc printArguments args {
                 foreach arg $args {
                    puts $arg
                 }
              }

       This procedure is a bit like the incr command,  except  it
       multiplies  the  contents  of  the  named  variable by the
       value, which defaults to 2:
              proc mult {varName {multiplier 2}} {
                 upvar 1 $varName var
                 set var [expr {$var * $multiplier}]
              }


SEE ALSO
       info(n), unknown(n)


KEYWORDS
       argument, procedure



Tcl                                                       proc(n)


@@@COMMAND: proto_synth_design@@@
proto_synth_design

Description: 
Synthesize a design using Vivado Prototyping Synthesis and open that design

Syntax: 
proto_synth_design  [-name <arg>] [-part <arg>] [-constrset <arg>] [-top <arg>]
                    [-include_dirs <args>] [-generic <args>]
                    [-verilog_define <args>] [-flatten_hierarchy <arg>]
                    [-gated_clock_conversion <arg>] [-directive <arg>] [-rtl]
                    [-lint] [-file <arg>] [-dataflow] [-bufg <arg>] [-no_lc]
                    [-shreg_min_size <arg>] [-mode <arg>]
                    [-fsm_extraction <arg>] [-rtl_skip_mlo] [-rtl_skip_ip]
                    [-rtl_skip_constraints] [-srl_style <arg>]
                    [-keep_equivalent_registers] [-resource_sharing <arg>]
                    [-cascade_dsp <arg>] [-control_set_opt_threshold <arg>]
                    [-incremental_mode <arg>] [-max_bram <arg>]
                    [-max_uram <arg>] [-max_dsp <arg>]
                    [-max_bram_cascade_height <arg>]
                    [-max_uram_cascade_height <arg>] [-retiming] [-no_retiming]
                    [-no_srlextract] [-assert] [-no_timing_driven] [-sfcu]
                    [-debug_log] [-quiet] [-verbose]

Returns: 
design object

Usage: 
  Name                          Description
  -----------------------------------------
  [-name]                       Design name
  [-part]                       Target part
  [-constrset]                  Constraint fileset to use
  [-top]                        Specify the top module name
  [-include_dirs]               Specify verilog search directories
  [-generic]                    Specify generic parameters. Syntax: -generic 
                                <name>=<value> -generic <name>=<value> ...
  [-verilog_define]             Specify verilog defines. Syntax: 
                                -verilog_define <macro_name>[=<macro_text>] 
                                -verilog_define <macro_name>[=<macro_text>] 
                                ...
  [-flatten_hierarchy]          Flatten hierarchy during LUT mapping. Values:
                                full, none, rebuilt
                                Default: rebuilt
  [-gated_clock_conversion]     Convert clock gating logic to flop enable. 
                                Values: off, on, auto
                                Default: off
  [-directive]                  Synthesis directive. Values: default, 
                                RuntimeOptimized, AreaOptimized_high, 
                                AreaOptimized_medium, AlternateRoutability, 
                                AreaMapLargeShiftRegToBRAM, 
                                AreaMultThresholdDSP, FewerCarryChains, 
                                PerformanceOptimized, LogicCompaction, 
                                PowerOptimized_high, PowerOptimized_medium
                                Default: default
  [-rtl]                        Elaborate and open an rtl design
  [-lint]                       Run RTL Linter on source files. Recommended 
                                to run before RTL simulation and synthesis to
                                identify potential issues at early design 
                                cycle.
  [-file]                       Linter Filename to output results to. (send 
                                output to console if -file is not used)
  [-dataflow]                   Present the Dataflow view of the RTL design
  [-bufg]                       Max number of global clock buffers used by 
                                synthesis
                                Default: 12
  [-no_lc]                      Disable LUT combining. Do not allow combining
                                LUT pairs into single dual output LUTs.
  [-shreg_min_size]             Minimum length for chain of registers to be 
                                mapped onto SRL
                                Default: 3
  [-mode]                       The design mode. Values: default, 
                                out_of_context
                                Default: default
  [-fsm_extraction]             FSM Extraction Encoding. Values: off, 
                                one_hot, sequential, johnson, gray, 
                                user_encoding, auto
                                Default: auto
  [-rtl_skip_mlo]               Skip mandatory logic optimization for RTL 
                                elaboration of the design; requires -rtl 
                                option.
  [-rtl_skip_ip]                Exclude subdesign checkpoints in the RTL 
                                elaboration of the design; requires -rtl 
                                option.
  [-rtl_skip_constraints]       Do not load and validate constraints against 
                                elaborated design; requires -rtl option.
  [-srl_style]                  Static SRL Implementation Style. Values: 
                                register, srl, srl_reg, reg_srl, reg_srl_reg
  [-keep_equivalent_registers]  Prevents registers sourced by the same logic 
                                from being merged. (Note that the merging can
                                otherwise be prevented using the synthesis 
                                KEEP attribute)
  [-resource_sharing]           Sharing arithmetic operators. Value: auto, 
                                on, off
                                Default: auto
  [-cascade_dsp]                Controls how adders summing DSP block outputs
                                will be implemented. Value: auto, tree, force
                                Default: auto
  [-control_set_opt_threshold]  Threshold for synchronous control set 
                                optimization to lower number of control sets.
                                Valid values are 'auto' and non-negative 
                                integers. The higher the number, the more 
                                control set optimization will be performed 
                                and fewer control sets will result. To 
                                disable control set optimization completely, 
                                set to 0.
                                Default: auto
  [-incremental_mode]           Mode of incremental synthesis 
                                (aggressive/default/off/quick)
                                Default: default
  [-max_bram]                   Maximum number of block RAM allowed in 
                                design. (Note -1 means that the tool will 
                                choose the max number allowed for the part in
                                question)
                                Default: -1
  [-max_uram]                   Maximum number of Ultra RAM blocks allowed in
                                design. (Note -1 means that the tool will 
                                choose the max number allowed for the part in
                                question)
                                Default: -1
  [-max_dsp]                    Maximum number of block DSP allowed in 
                                design. (Note -1 means that the tool will 
                                choose the max number allowed for the part in
                                question)
                                Default: -1
  [-max_bram_cascade_height]    Controls the maximum number of BRAM that can 
                                be cascaded by the tool. (Note -1 means that 
                                the tool will choose the max number allowed 
                                for the part in question)
                                Default: -1
  [-max_uram_cascade_height]    Controls the maximum number of URAM that can 
                                be cascaded by the tool. (Note -1 means that 
                                the tool will choose the max number allowed 
                                for the part in question)
                                Default: -1
  [-retiming]                   For non-Versal devices where retiming is off 
                                by default. Seeks to improve circuit 
                                performance for intra-clock sequential paths 
                                by automatically moving registers (register 
                                balancing) across combinatorial gates or 
                                LUTs.  It maintains the original behavior and
                                latency of the circuit and does not require 
                                changes to the RTL sources.
  [-no_retiming]                Turn off retiming feature for Versal devices 
                                where retiming is on by default. If both 
                                -retiming and -no_retiming are set, retiming 
                                will not occur
  [-no_srlextract]              Prevents the extraction of shift registers so
                                that they get implemented as simple registers
  [-assert]                     Enable VHDL assert statements to be 
                                evaluated. A severity level of failure will 
                                stop the synthesis flow and produce an error.
  [-no_timing_driven]           Do not run in timing driven mode
  [-sfcu]                       Run in single-file compilation unit mode
  [-debug_log]                  Print detailed log files for debugging
  [-quiet]                      Ignore command errors
  [-verbose]                    Suspend message limits during command 
                                execution

Categories: 
Tools


@@@COMMAND: puts@@@
puts(n)               Tcl Built-In Commands               puts(n)



_________________________________________________________________

NAME
       puts - Write to a channel

SYNOPSIS
       puts ?-nonewline? ?channelId? string
_________________________________________________________________


DESCRIPTION
       Writes the characters given by string to the channel given
       by channelId.

       ChannelId must be an identifier for an open  channel  such
       as  a  Tcl standard channel (stdout or stderr), the return
       value from an invocation of open or socket, or the  result
       of a channel creation command provided by a Tcl extension.
       The channel must have been opened for output.

       If no channelId is specified then it defaults  to  stdout.
       Puts  normally  outputs  a newline character after string,
       but this feature  may  be  suppressed  by  specifying  the
       -nonewline switch.

       Newline characters in the output are translated by puts to
       platform-specific end-of-line sequences according  to  the
       current  value  of the -translation option for the channel
       (for example, on PCs newlines are normally  replaced  with
       carriage-return-linefeed  sequences.   See  the fconfigure
       manual entry for a discussion on ways in which  fconfigure
       will alter output.

       Tcl  buffers output internally, so characters written with
       puts may not appear immediately  on  the  output  file  or
       device;   Tcl  will normally delay output until the buffer
       is full or the channel is closed.  You can force output to
       appear immediately with the flush command.

       When  the  output  buffer  fills up, the puts command will
       normally block  until  all  the  buffered  data  has  been
       accepted for output by the operating system.  If channelId
       is in nonblocking mode then  the  puts  command  will  not
       block even if the operating system cannot accept the data.
       Instead, Tcl continues to buffer the data and writes it in
       the  background  as  fast as the underlying file or device
       can accept it.  The application must  use  the  Tcl  event
       loop  for nonblocking output to work;  otherwise Tcl never
       finds out that the file or device is ready for more output
       data.   It  is possible for an arbitrarily large amount of
       data to be buffered for a  channel  in  nonblocking  mode,
       which  could  consume  a large amount of memory.  To avoid
       wasting memory, nonblocking I/O should normally be used in
       an event-driven fashion with the fileevent command (do not
       invoke puts unless you have recently been notified  via  a
       file  event  that  the  channel  is  ready for more output
       data).

EXAMPLES
       Write a short message to the console (or  wherever  stdout
       is directed):
              puts "Hello, World!"

       Print a message in several parts:
              puts -nonewline "Hello, "
              puts "World!"

       Print a message to the standard error channel:
              puts stderr "Hello, World!"

       Append a log message to a file:
              set chan [open my.log a]
              set timestamp [clock format [clock seconds]]
              puts $chan "$timestamp - Hello, World!"
              close $chan


SEE ALSO
       file(n), fileevent(n), Tcl_StandardChannels(3)


KEYWORDS
       channel, newline, output, write



Tcl                            7.5                        puts(n)


@@@COMMAND: pwd@@@
pwd(n)                Tcl Built-In Commands                pwd(n)



_________________________________________________________________

NAME
       pwd  -  Return  the  absolute  path of the current working
       directory

SYNOPSIS
       pwd
_________________________________________________________________


DESCRIPTION
       Returns the absolute path  name  of  the  current  working
       directory.

EXAMPLE
       Sometimes it is useful to change to a known directory when
       running some external command using exec, but it is impor-
       tant to keep the application usually running in the direc-
       tory that it was started in  (unless  the  user  specifies
       otherwise) since that minimizes user confusion. The way to
       do this is to save the current directory while the  exter-
       nal command is being run:
              set tarFile [file normalize somefile.tar]
              set savedDir [pwd]
              cd /tmp
              exec tar -xf $tarFile
              cd $savedDir

SEE ALSO
       file(n), cd(n), glob(n), filename(n)


KEYWORDS
       working directory



Tcl                                                        pwd(n)


@@@COMMAND: read@@@
read(n)               Tcl Built-In Commands               read(n)



_________________________________________________________________

NAME
       read - Read from a channel

SYNOPSIS
       read ?-nonewline? channelId

       read channelId numChars
_________________________________________________________________


DESCRIPTION
       In  the first form, the read command reads all of the data
       from channelId up to the end of the file.  If the  -nonew-
       line  switch  is  specified then the last character of the
       file is discarded if it is a newline.  In the second form,
       the  extra argument specifies how many characters to read.
       Exactly that many characters will be  read  and  returned,
       unless  there are fewer than numChars left in the file; in
       this case all the remaining characters are  returned.   If
       the  channel  is  configured to use a multi-byte encoding,
       then the number of characters read may not be the same  as
       the number of bytes read.

       ChannelId  must  be an identifier for an open channel such
       as the Tcl standard  input  channel  (stdin),  the  return
       value  from an invocation of open or socket, or the result
       of a channel creation command provided by a Tcl extension.
       The channel must have been opened for input.

       If  channelId  is in nonblocking mode, the command may not
       read as many characters as requested: once  all  available
       input has been read, the command will return the data that
       is available rather than blocking for more input.  If  the
       channel  is  configured to use a multi-byte encoding, then
       there may actually be some bytes remaining in the internal
       buffers  that  do  not  form  a complete character.  These
       bytes will not be returned until a complete  character  is
       available  or  end-of-file  is  reached.   The  -nonewline
       switch is ignored if the command returns  before  reaching
       the end of the file.

       Read  translates  end-of-line  sequences in the input into
       newline characters according to  the  -translation  option
       for  the  channel.   See the fconfigure manual entry for a
       discussion on ways in which fconfigure will alter input.


USE WITH SERIAL PORTS
       For most applications a channel connected to a serial port
       should  be  configured to be nonblocking: fconfigure chan-
       nelId -blocking 0.  Then read behaves much like  described
       above.   Care  must  be  taken when using read on blocking
       serial ports:

       read channelId numChars
              In this form read blocks until numChars  have  been
              received from the serial port.

       read channelId
              In this form read blocks until the reception of the
              end-of-file character, see fconfigure -eofchar.  If
              there  no end-of-file character has been configured
              for the channel, then read will block forever.

EXAMPLE
       This example code reads a file all at once, and splits  it
       into  a  list, with each line in the file corresponding to
       an element in the list:
              set fl [open /proc/meminfo]
              set data [read $fl]
              close $fl
              set lines [split $data \n]


SEE ALSO
       file(n), eof(n), fblocked(n), fconfigure(n), Tcl_Standard-
       Channels(3)


KEYWORDS
       blocking,  channel, end of line, end of file, nonblocking,
       read, translation, encoding



Tcl                            8.1                        read(n)


@@@COMMAND: read_aie_intf_solution@@@
read_aie_intf_solution

Description: 
Reads aie interface solution file.

Syntax: 
read_aie_intf_solution  [-cell <arg>] [-quiet] [-verbose] [<file>]

Usage: 
  Name        Description
  -----------------------
  [-cell]     AIE IP Name for which aie interface solution file to be read.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<file>]    Input AIE Interface solution file.

Categories: 
AIE, FileIO


@@@COMMAND: read_bxn@@@
read_bxn

Description: 
Read a bxn file

Syntax: 
read_bxn  [-quiet] [-verbose] <file>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Bxn file

Categories: 
FileIO


@@@COMMAND: read_checkpoint@@@
read_checkpoint

Description: 
Read a design checkpoint

Syntax: 
read_checkpoint  [-cell <arg>] [-incremental] [-directive <arg>]
                 [-auto_incremental] [-fix_objects <args>]
                 [-dcp_cell_list <args>] [-force_incr] [-quiet] [-verbose]
                 [<file>]

Usage: 
  Name                 Description
  --------------------------------
  [-cell]              Replace this cell with the checkpoint. The cell must 
                       be a black box.
  [-incremental]       Input design checkpoint file to be used for re-using 
                       implementation.
  [-directive]         Mode of behavior (directive) for this command. Please 
                       refer to Arguments section of this help for values for
                       this option.
                       Default: RuntimeOptimized
  [-auto_incremental]  Enters automatic mode for incremental compile. This is
                       less aggressive than the standard incremental mode and
                       will readily switch from incremental algorithms to the
                       default algorithms if results might not be maintained.
                       Should not be used with -reuse_objects.
  [-fix_objects]       Fix only given list of cells, clock regions, SLRs or 
                       Design
  [-dcp_cell_list]     A list of cell/dcp pairs, e.g. {<cell1> <dcp1> <cell2>
                       <dcp2>}. The option value should be in curly braces.
  [-force_incr]        Force switch to forcefully run incremental flow 
                       irrespective of rule/ML based criteria
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  [<file>]             Design checkpoint file

Categories: 
FileIO

Description:

  Reads a design checkpoint file (DCP) that contains the netlist,
  constraints, and may optionally have the placement and routing information
  of an implemented design. You can save design checkpoints at any stage in
  the design using the write_checkpoint command.

  The read_checkpoint command simply reads the associated checkpoint file,
  without opening a design or project in-memory. To create a project from the
  imported checkpoint, use the open_checkpoint command instead of
  read_checkpoint, or use the link_design command after read_checkpoint to
  open the in-memory design from the checkpoint or checkpoint files currently
  read.

  Note: When multiple design checkpoints are open in the AMD Vivado Design
  Suite, you must use the current_project command to switch between the
  open designs. You can use current_design to check which checkpoint is the
  active design.

  Important: The -incremental switch is not intended to merge two DCP files
  into a single design. It applies the placement and routing of the
  incremental checkpoint to the netlist objects in the current design.

  After loading an incremental design checkpoint, you can use the
  report_incremental_reuse command to determine the percentage of physical
  data reused from the incremental checkpoint, in the current design. The
  place_design and route_design commands will run incremental place and
  route, preserving reused placement and routing information and
  incorporating it into the design solution.

  Reading a design checkpoint with -incremental, loads the physical data into
  the current in-memory design. To clear out the incremental design data, you
  must either reload the current design, using open_run to open the synthesis
  run for instance, or read a new incremental checkpoint to overwrite the one
  previously loaded.

Arguments:

  -cell <arg> - (Optional) Specifies a black box cell in the current design
  to populate with the netlist data from the checkpoint file being read. This
  option cannot be used with -incremental, or any of its related options.

  -auto_incremental - (Optional) Enables incremental algorithms only when the
  quality of the reference checkpoint is high. This allows a user to set this
  option and let the tool decide whether to run default or incremental
  algorithms.

  -incremental - (Optional) Load a checkpoint file into an already open
  design to enable the incremental implementation design flow, where <file>
  specifies the path and filename of the incremental design checkpoint (DCP)
  file. In the incremental implementation flow, the placement and routing
  from the incremental DCP is applied to matching netlist objects in the
  current design to reuse existing placement and routing. Refer to the Vivado
  Design Suite User Guide: Implementation (UG904) for more information on
  incremental implementation.

  -directive [ RuntimeOptimized | TimingClosure | Quick ] - (Optional)
  Specifies a directive, or mode of operation for the -incremental process.

   *  RuntimeOptimized: The target WNS is the referenced from the incremental
      DCP. By default, more reuse from the reference checkpoint is
      encouraged.

   *  TimingClosure: The target WNS is 0. This mode attempts to meet timing
      at the expense of runtime. Paths not meeting timing will be ripped up
      and the incremental algorithms will be applied to fix timing on the
      paths.

   *  Quick: Specifies a low effort, non-timing-driven incremental
      implementation mode with the fastest runtime.

  -fix_objects - (Optional) When -incremental is specified, mark the
  placement location of specifed cells as fixed (IS_LOC_FIXED) to prevent
  changes by the place_design command. This option will fix the placement of
  the specified list of cells, clock regions, SLRs or the current_design.

  -dcp_cell_list <arg> - (Optional) Lets you specify a list of cell/dcp
  pairs. This lets you read in multiple DCP files for specified cells in a
  single run of the read_checkpoint command. The format is specified as a
  list of cell/DCP pairs enclosed in curly braces: {<cell1> <dcp1> <cell2>
  <dcp2>}.

  -force_incr - (Optional) When -incremental is specified, forces the
  incremental flow irrespective of the incremental criteria checks. When
  -incremental is not specified the incremental flow may exit and continue in
  non-incremental flow.

  Note: force_incr is only used along with the -incremental switch.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The path and filename of the checkpoint file to read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example imports the specified checkpoint file into the tool,
  and then links the various design elements to create an in-memory design of
  the specified name:

    read_checkpoint C:/Data/checkpoint.dcp
    link_design -name Test1

  This example reads a design checkpoint on top of the current design for
  incremental place and route of the design:

    read_checkpoint -incremental C:/Data/routed.dcp

  This example reads a design checkpoint. Incremental algorithms will be used
  only if the timing is nearly met and if there is a high reuse:

    read_checkpoint -auto_incremental C:/Data/routed.dcp

Related Information:

   *  all_dsps
   *  config_implementation
   *  current_design
   *  current_project
   *  get_cells
   *  link_design
   *  open_checkpoint
   *  report_config_implementation
   *  write_checkpoint


@@@COMMAND: read_chipscope_cdc@@@
read_chipscope_cdc

Description: 
Import ChipScope Core Inserter CDC file

Syntax: 
read_chipscope_cdc  [-quiet] [-verbose] <file>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      ChipScope CDC file name

Categories: 
FileIO, ChipScope

Description:

  Reads a ChipScope Definition and Connection (CDC) file to associate with a
  Netlist Design in the current project. This file stores information about
  core parameters, and core settings for ChipScope ILA debug cores, and can
  also be used as input to the ChipScope Pro Analyzer to import signal names.

  The ChipScope CDC file can be written by the tool, or from an ISE project,
  through the write_chipscope_cdc command.

  If certain parameters of the CDC file are not acceptable to the current
  project then those parameters will not be imported. For instance, if
  signals specified for connection to ports do not exist in the current
  netlist, those signals will be ignored.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - The path and filename of the CDC file to read into. The CDC file
  defines the debug core to insert, the signals to probe, and the clock
  domains for those signals.

Examples:

  The following example reads the specified CDC file:

    read_chipscope_cdc C:/Data/FPGA_Design/bft.cdc 
    

See Also:

   *  create_debug_core
   *  get_debug_cores
   *  write_chipscope_cdc


@@@COMMAND: read_csv@@@
read_csv

Description: 
Import package pin and port placement information

Syntax: 
read_csv  [-quiet_diff_pairs] [-quiet] [-verbose] <file>

Usage: 
  Name                 Description
  --------------------------------
  [-quiet_diff_pairs]  Suppress warnings about differential pair inference 
                       when importing I/O ports
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <file>               Pin Planning CSV file

Categories: 
FileIO

Description:

  Imports port definition and package pin placement information from a comma
  separated value (CSV) file.

  The port definitions in a CSV file can be imported into an I/O Pin Planning
  project. In a Pin Planning project, importing a CSV file replaces the
  current port definitions. Any ports in the design that are not found in the
  imported CSV file will be removed.

  In all other projects the port definitions are defined in the source design
  data, however package pin assignments and port attributes can be read from
  the specified CSV file.

  The ports read from the CSV file can not have spaces in the name, or the
  tool will return an error. The specific format and requirements of the CSV
  file are described in the Vivado Design Suite User Guide: I/O and Clock
  Planning (UG899).

Arguments:

  -quiet_diff_pairs - (Optional) The tool transcripts messages related to
  pins that may be inferred as differential pairs when importing the CSV
  file. This option suppresses messages related to inferring differential
  pairs.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The file name of the CSV file to be imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example imports a CSV file into an open project:

    read_csv C/Data/pinList.csv 
    

  The following example sets up a new IO Pin Planning project, and then
  imports the specified CSV file into it, and infers any differential pairs
  in the CSV file:

    create_project myPinPlan C:/Data/myPinPlan -part xc7v285tffg1157-1  
    set_property design_mode PinPlanning [current_fileset]  
    open_io_design -name io_1  
    read_csv C:/Data/import.csv  
    infer_diff_pairs -filetype csv C:/Data/import.csv 
    

  Note: The design_mode property on the source fileset is what determines the
  nature of the project.

See Also:

   *  create_project
   *  infer_diff_pairs
   *  open_io_design
   *  set_property
   *  write_csv


@@@COMMAND: read_design_id@@@
read_design_id

Description: 
Retrieve design id.

Syntax: 
read_design_id  [-quiet] [-verbose]

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project


@@@COMMAND: read_edif@@@
read_edif

Description: 
Read one or more EDIF or NGC files

Syntax: 
read_edif  [-quiet] [-verbose] <files>

Returns: 
list of file objects that were added

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <files>     EDIF or NGC file name(s)

Categories: 
FileIO

Description:

  Imports an EDIF or NGC netlist file into the Design Source fileset of the
  current project.

  Important: NGC format files are not supported in the AMD Vivado Design
  Suite for AMD UltraScale devices. It is recommended that you regenerate the
  IP using the Vivado Design Suite IP customization tools with native output
  products. Alternatively, you can use the NGC2EDIF command to migrate the
  NGC file to EDIF format for importing. For more information refer to the
  ISE to Vivado Design Suite Migration Guide (UG911).

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) The name of the EDIF or NGC files to be imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example imports an EDIF file into the open project:

    read_edif C/Data/bft_top.edf

See Also:

   *  write_edif


@@@COMMAND: read_guide_info@@@
read_guide_info

Description: 
read_guide file

Syntax: 
read_guide_info  [-macros] [-clocks] [-advanced] [-slr_guidance] [-quiet]
                 [-verbose] <file>

Usage: 
  Name             Description
  ----------------------------
  [-macros]        Macro switch to reuse only macros
  [-clocks]        Clock switch to reuse only clocks
  [-advanced]      Advanced switch to reuse only nocs
  [-slr_guidance]  SLR guidance switch to restrict cells in SLR
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <file>           file name

Categories: 



@@@COMMAND: read_hw@@@
The command 'read_hw' is auto loaded by Tcl. To explicitly load the command type 'load_features labtools'.

@@@COMMAND: read_ip@@@
read_ip

Description: 
Read one or more IP files

Syntax: 
read_ip  [-quiet] [-verbose] <files>

Returns: 
list of IP file objects that were added

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <files>     IP file name(s)

Categories: 
FileIO, IPFlow

Description:

  Read the specified list of IP files (XCI) and add them to the design and
  the current fileset. Files are added by reference into the current project,
  just as in the add_files command.

  You can use this command to read the contents of source files into the
  in-memory design, when running the AMD Vivado tool in Non Project mode, in
  which there is no project file to maintain and manage the various project
  source files. Refer to the Vivado Design Suite User Guide: Design Flows
  Overview (UG892) for more information on Non Project mode.

  When using the read_ip command all output products associated with the IP
  core, including the design checkpoint file (DCP) will be read into the
  in-memory design.

  Tip: In the project-based design flow, the Vivado tool automatically
  generates the necessary output products associated with an IP core.
  However, in a non-project flow you must generate the necessary output
  products using the synth_ip or generate_target commands. For more
  information on working with IP refer to the Vivado Design Suite User Guide:
  Designing with IP (UG896).

  Use the import_ip command to add the IP cores and import the files into the
  local project directory.

  This command returns the list of files read.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) The list of IP files to read into the current project.
  Both XCI and XCO file formats are supported. An XCI file is an IP-XACT
  format file that contains information about the IP parameterization. An XCO
  file is a CORE Generator log file that records all the customization
  parameters used to create the IP core and the project options in effect
  when the core was generated.

Examples:

  The following example reads the specified IP files:

    read_ip C:/test_ip/char_fifo.xci

See Also:

   *  add_files
   *  import_ip


@@@COMMAND: read_iphys_opt_tcl@@@
read_iphys_opt_tcl

Description: 
load iPhysOpt script and run it.

Syntax: 
read_iphys_opt_tcl  [-fanout_opt] [-critical_cell_opt] [-replicate_cell]
                    [-reconnect] [-placement_opt] [-forward_retime]
                    [-backward_retime] [-dsp_register_opt] [-bram_register_opt]
                    [-uram_register_opt] [-shift_register_opt]
                    [-shift_register_to_pipeline] [-auto_pipeline]
                    [-pipeline_to_shift_register] [-control_set_opt]
                    [-critical_pin_opt] [-restruct_opt] [-equ_drivers_opt]
                    [-include_skipped_optimizations] [-create_bufg]
                    [-insert_negative_edge_ffs] [-hold_fix] [-slr_crossing_opt]
                    [-memory_rewire_opt] [-quiet] [-verbose] [<input>]

Usage: 
  Name                              Description
  ---------------------------------------------
  [-fanout_opt]                     Fanout optimization including very high 
                                    fanout optimizations
  [-critical_cell_opt]              Do cell-duplication based optimization on
                                    timing critical nets
  [-replicate_cell]                 Atomic cell replication operation for 
                                    interconnect retiming and LUT 
                                    optimization
  [-reconnect]                      Reconnect loads from equivalent drivers 
                                    for interconnect retiming and LUT 
                                    optimization
  [-placement_opt]                  Move cells to reduce delay on 
                                    timing-critical nets
  [-forward_retime]                 Forward retiming optimization
  [-backward_retime]                Backward retiming optimization
  [-dsp_register_opt]               DSP register optimization
  [-bram_register_opt]              BRAM register optimization
  [-uram_register_opt]              UltraRAM register optimization
  [-shift_register_opt]             Shift register optimization
  [-shift_register_to_pipeline]     Shift register to pipeline optimization
  [-auto_pipeline]                  Auto pipeline
  [-pipeline_to_shift_register]     pipeline to shift register optimization
  [-control_set_opt]                Control set optimization
  [-critical_pin_opt]               Pin Swap optimization
  [-restruct_opt]                   LUT restructuring optimization
  [-equ_drivers_opt]                Equivalent driver rewiring
  [-include_skipped_optimizations]  Apply undo changes
  [-create_bufg]                    Insert bufg to drive HFO nets
  [-insert_negative_edge_ffs]       Inserting negative edge triggered FFs for
                                    high hold mitigation
  [-hold_fix]                       Inserting buffers for hold fix 
                                    optimization
  [-slr_crossing_opt]               Optimize slr crossing nets
  [-memory_rewire_opt]              memory rewire optimization
  [-quiet]                          Ignore command errors
  [-verbose]                        Suspend message limits during command 
                                    execution
  [<input>]                         iPhysOpt.tcl file

Categories: 
Tools

Description:

  Interactive physical optimization can be used in two ways:

   *  Applying post-placement physical optimizations to the pre-placement
      netlist to improve the overall placement result and improve design
      performance.

   *  Saving the physical optimizations in a Tcl script to be repeated as
      needed.

  To apply post-placement optimizations to the pre-placement netlist, you can
  reset the implementation run and open the synthesized design, or open the
  opt_design checkpoint, and read the iphys_opt Tcl script to apply the
  physical optimizations.

  You can apply all optimizations from the iphys_opt Tcl script, or apply
  specific optimizations using the options of the read_iphys_opt_tcl command.
  You can also include any optimizations that were defined but skipped during
  physical optimization.

  If the iphys_opt Tcl script includes placement data, you can use that data
  to place the optimized cells in the design.

  After reading the iphys_opt Tcl script, and placing the optimized cells,
  you can rerun placement for the overall design. The design now incorporates
  the benefits of the phys_opt_design optimizations before placement, such as
  fewer high-fanout nets due to replication, and fewer long distance paths
  from block RAM outputs. The results should be a better placement, and
  improved design performance, due to the early application of netlist
  optimizations.

  This command returns a transcript of its processes, or returns an error if
  it fails.

Arguments:

  -fanout_opt - (Optional) Apply the fanout optimizations that are defined in
  the specified interactive physical optimization Tcl script.

  -critical_cell_opt - (Optional) Applies the cell replication optimizations
  that are defined in the specified Tcl script.

  -placement_opt - (Optional) Applies the cell placement optimizations that
  are defined in the specified Tcl script.

  -rewire - (Optional) Applies the logic cone refactoring that are defined in
  the specified Tcl script.

  -dsp_register_opt - (Optional) Applies the DSP optimizations that are
  defined in the specified interactive physical optimization Tcl script.

  -bram_register_opt - (Optional) Applies the BRAM optimizations that are
  defined in the specified Tcl script.

  -shift_register_opt - (Optional) Applies the shift register optimization
  that are defined in the specified Tcl script.

  -critical_pin_opt - Applies the pin-swapping that are defined in the
  specified Tcl script.

  -include_skipped_optimizations - (Optional) Apply the skipped optimizations
  that are defined in the input Tcl script, as well as the standard
  optimizations. These are optimizations identified by phys_opt_design that
  are skipped because suitable locations for optimized logic cannot be found.
  When this option is specified, the iphys_opt_design command will attempt to
  use the included skipped optimizations in the pre-placement netlist.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <input> - (Required) The name of the interactive physical optimization Tcl
  file to read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example applies the BRAM optimizations that are defined in
  the specified interactive physical optimization Tcl script, and applies any
  placement data for the optimized cells:

    open_checkpoint C:/Data/opt_design.dcp  
    read_iphys_opt_tcl -shift_register_opt -placement_opt C:/Data/my_iphys_opt.tcl 
    

See Also:

   *  iphys_opt_design
   *  phys_opt_design
   *  report_phys_opt
   *  write_iphys_opt_tcl


@@@COMMAND: read_mem@@@
read_mem

Description: 
Read one or more data files (.mem .mif .dat).

Syntax: 
read_mem  [-quiet] [-verbose] <files>...

Returns: 
list of file objects that were added

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <files>     Data (.mem .coe .dat) file name(s)

Categories: 
FileIO

Description:

  This command reads memory files of type MEM, DAT, or COE, and adds the
  files to the in-memory design, or the current project, to initialize block
  RAM memory for behavioral simulation, synthesis and post-synthesis
  simulation.

  If the memory is not initialized in the design, then it will be initialized
  to all 0s.

  This command returns the name of the files read, or returns an error if it
  fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) The name of the MEM, DAT, or COE file to read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example:

    read_mem  C:/Data/design1.mem

See Also:

   *  generate_mem_files
   *  write_bmm


@@@COMMAND: read_noc_solution@@@
read_noc_solution

Description: 
Read NOC solution from JSON file

Syntax: 
read_noc_solution  -file <arg> [-no_update <arg>] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  -file         Input NOC solution file In JSON format
  [-no_update]  Do not run NoC compiler after reading in NoC solution
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
NOC


@@@COMMAND: read_qor_suggestions@@@
read_qor_suggestions

Description: 
Read QoR Suggestions from the given file

Syntax: 
read_qor_suggestions  [-quiet] [-verbose] <file>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      QoR suggestions file
              Values: Path to the QoR suggestions file, typically ending with
              .rqs.

Categories: 
FileIO, Feasibility, Timing

Description:

  Read the specified file and extract the QoR suggestions from the file.

  This command returns the name of the QoR file read, or returns an error if
  it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Read the QoR suggestions from the specified file, which
  should have the .rqs suffix.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the QoR suggestions from the specified file,
  and then reports the QoR suggestions in the open design:

    read_qor_suggestions C:/Data/qor_results.rqs 
    report_qor_suggestions -of_objects [get_qor_suggestions]

See Also:

   *  get_qor_suggestions
   *  report_qor_suggestions
   *  write_qor_suggestions


@@@COMMAND: read_saif@@@
read_saif

Description: 
Import simulation data in saif format

Syntax: 
read_saif  [-strip_path <arg>] [-no_strip] [-out_file <arg>] [-quiet]
           [-verbose] <file>

Usage: 
  Name           Description
  --------------------------
  [-strip_path]  Specifies the name of the instance of the current design as 
                 it appears in the SAIF file
  [-no_strip]    Do not strip first two levels of hierarchy from SAIF file
  [-out_file]    Specifies the name of the output file that contains nets 
                 that could not be matched
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <file>         Specifies the name of the SAIF file to be read

Categories: 
FileIO, Power, Simulation

Description:

  Reads a Switching Activity Interchange Format (SAIF) file for use during
  power analysis by the report_power command, or power optimization by
  power_opt_design. The read_saif command will annotate the design nodes with
  activity from the SAIF file and estimate power appropriately.

  Running report_power or power_opt_design after reading the SAIF file will
  use the activity rates from the specified file during optimization and
  analysis.

Arguments:

  -strip_path <arg> - (Optional) Strip the specified instance path prefix
  from elements in the SAIF file to allow them to be mapped properly to
  instances in the current design.

  Note: The instance path specified should not begin with a '/'. The
  read_saif parser looks for design net names, which do not have a leading
  '/'.

  -no_strip - (Optional) Do not strip first two levels of hierarchy from the
  SAIF file.

  -out_file <arg> - (Optional) The name of an output file where unmatched
  nets and other messages are reported. This file is created during the
  import of the SAIF file. If the -out_file option is not specified, the
  information is not saved to a file.

  Note: If the path is not specified as part of the file name, the tool will
  write the specified file to the current working directory, or the directory
  from which the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the SAIF file to read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example:

    read_saif -strip_path design/top/F1 C:/Data/design1.saif 
    

See Also:

   *  power_opt_design
   *  report_power


@@@COMMAND: read_schematic@@@
read_schematic

Description: 
Import schematic 

Syntax: 
read_schematic  [-name <arg>] [-quiet] [-verbose] <file>

Returns: 
name of the file previously exported

Usage: 
  Name        Description
  -----------------------
  [-name]     Schematic window title
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Input file

Categories: 
FileIO

Description:

  Import a native schematic file that was previously exported from the Vivado
  Design Suite using the write_schematic command.

Arguments:

  -name <arg> - (Optional) The name of the Schematic window to open when
  reading the schematic file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) The name of the Schematic file to read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Example:

  The following example reads the specified schematic file and opens a
  Schematic window called "Sheet_1" in the Vivado IDE:

    read_schematic C:/Data/mySchematic.txt -name Sheet_1 
    

See Also:

   *  write_schematic


@@@COMMAND: read_twx@@@
read_twx

Description: 
Read timing results from Trace STA tool

Syntax: 
read_twx  [-cell <arg>] [-pblock <arg>] [-quiet] [-verbose] <name> <file>

Usage: 
  Name        Description
  -----------------------
  [-cell]     Interpret names in the report file as relative to the specified
              cell
  [-pblock]   Interpret names in the report file as relative to the specified
              pblock
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name for the set of results
  <file>      Name of the Trace import file

Categories: 
FileIO

Description:

  Imports timing results in the TWX format timing report files generated by
  the AMD Timing Reporter And Circuit Evaluator (TRACE) tool. The TWX file
  can be imported at the top-level, which is the default, or at a specific
  cell-level or relative to a specific Pblock.

  After the TWX files are imported, the timing results display in the Timing
  Results view in GUI mode.

Arguments:

  -cell <arg> - (Optional) Specify The name of a hierarchical cell in the
  current design to import the TWX file into. The timing paths will be
  applied to the specified cell.

  -pblock <arg> - (Optional) The name of a Pblock in the current design. The
  timing paths will be imported relative to the specified block.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the Timing Results view to create when
  importing the timing paths in the TWX file.

  Note: Both <name> and <file> are required positional arguments. The <name>
  argument must be provided first.

  <file> - (Required) The file name of the TWX file to be imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the specified TWX file into the top-level of
  the design:

    read_twx C:/Data/timing_files/bft.twx

See Also:

   *  report_timing


@@@COMMAND: read_ucf@@@
read_ucf

Description: 
Import physical constraints from a file.

Syntax: 
read_ucf  [-cells <args>] [-ref <arg>] [-quiet_diff_pairs] [-quiet] [-verbose]
          <file>

Returns: 
list of added files

Usage: 
  Name                 Description
  --------------------------------
  [-cells]             Import constraints for these cells
  [-ref]               Import constraints for this ref
  [-quiet_diff_pairs]  Suppress warnings about differential pair inference 
                       when importing I/O ports
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <file>               Input UCF file name

Categories: 
FileIO

Description:

  Imports physical constraints from a user constraint file (UCF). The UCF can
  be imported at the top-level, which is the default, or at a specific
  cell-level. When imported at the top-level, the specified UCF file is added
  to the active constraint fileset.

  Note: Constraints from the UCF file will overwrite any current constraints
  of the same name. Therefore, exercise some caution when reading a UCF file
  to be sure you will not overwrite important constraints.

  This command is similar to the add_files command in that the UCF file is
  added by reference rather than imported into the local project directory.

Arguments:

  -cells <args> - The name of hierarchical cells in the current design to
  import the UCF file into. The constraints will be applied to the specified
  block, and the imported UCF file will not be added to the active constraint
  fileset.

  Note: A design must be open when specifying the -cell option.

  -ref <arg> - Import constraints for this ref. The constraints will be
  applied to the specified block, and the imported UCF file will not be added
  to the active constraint fileset.

  -quiet_diff_pairs - (Optional) The tool transcripts messages related to
  pins that may be inferred as differential pairs when importing the UCF
  file. This option suppresses messages related to inferring differential
  pairs.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - The file name of the UCF file to be imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the specified UCF file into the top-level of
  the design:

    read_ucf C:/Data/FPGA_Design/top1.ucf 
    

See Also:

   *  add_files
   *  infer_diff_pairs
   *  save_design
   *  write_ucf


@@@COMMAND: read_vcd@@@
read_vcd

Description: 
Import simulation data in vcd format

Syntax: 
read_vcd  [-strip_path <arg>] [-no_strip] [-out_file <arg>] [-quiet] [-verbose]
          <file>

Usage: 
  Name           Description
  --------------------------
  [-strip_path]  Specifies the name of the instance of the current design as 
                 it appears in the VCD file
  [-no_strip]    Do not strip first two levels of hierarchy from VCD file
  [-out_file]    Specifies the name of the output file that contains nets 
                 that could not be matched
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <file>         Specifies the name of the VCD file to be read

Categories: 
FileIO, Power, Simulation


@@@COMMAND: read_verilog@@@
read_verilog

Description: 
Read one or more Verilog files

Syntax: 
read_verilog  [-library <arg>] [-sv] [-quiet] [-verbose] <files>...

Returns: 
list of file objects that were added

Usage: 
  Name        Description
  -----------------------
  [-library]  Library name (ignored by Vivado synthesis)
              Default: default lib
  [-sv]       Enable system verilog compilation
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <files>     Verilog file name(s)

Categories: 
FileIO

Description:

  Reads Verilog or SystemVerilog source files. This command is similar to the
  add_files command. The Verilog file is added to the source fileset as it is
  read. If the -library argument is specified, the file is added with the
  Library property defined appropriately.

  You can use this command to read the contents of source files into the
  in-memory design, when running the AMD Vivado Design Suite tool in the Non
  Project mode, in which there is no project file to maintain and manage the
  various project source files. Refer to the Vivado Design Suite User Guide:
  Design Flows Overview (UG892) for more information on Non Project mode.

  Because SystemVerilog is a superset of the Verilog language, the
  read_verilog command can read both file types. However, for SystemVerilog
  files, the -sv option needs to be specified for read_verilog to enable
  compilation in the SystemVerilog mode. In this mode, the tool recognizes
  and honors the SystemVerilog keywords and constructs.

  You can have a mixture of both Verilog files (.v files), and SystemVerilog
  files (.sv files), as well as VHDL (using read_vhdl). When the tool
  compiles these files for synthesis, it creates separate "compilation units"
  for each file type. All files of the same type are compiled together.

Arguments:

  -library <arg> - (Optional) The library the Verilog file should reference.

  -sv -(Optional) Read the files as a SystemVerilog compilation group.

  Note: Since Verilog is a subset of SystemVerilog, unless a Verilog source
  has user-defined names that collide with reserved SystemVerilog keywords,
  reading Verilog files with the -sv switch enables SystemVerilog compilation
  mode for those files. However, adding a SystemVerilog file in a Verilog
  compilation unit (without -sv) will not work.

  <files> - (Required) The name of one or more Verilog files to be read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reads the specified Verilog file and adds it to the
  source fileset:

    read_verilog C:/Data/FPGA_Design/new_module.v

  The following example creates two compilation units, one for SystemVerilog
  files and one for Verilog files:

    read_verilog -sv { file1.sv file2.sv file3.sv }
    read_verilog { file1.v file2.v file3.v}

See Also:

   *  add_files
   *  read_vhdl
   *  remove_files


@@@COMMAND: read_vhdl@@@
read_vhdl

Description: 
Read one or more VHDL files

Syntax: 
read_vhdl  -library <arg> [-vhdl2008] [-vhdl2019] [-quiet] [-verbose] <files>

Returns: 
list of file objects that were added

Usage: 
  Name         Description
  ------------------------
  -library     VHDL library
  [-vhdl2008]  VHDL file is version 2008.
  [-vhdl2019]  VHDL file is version 2019.
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <files>      VHDL file name(s)

Categories: 
FileIO

Description:

  Reads VHDL source files. This command is similar to the add_files command.
  The VHDL files are added to the source fileset as the file is read. If the
  -library argument is specified, the file is added with the Library property
  defined.

  You can use this command to read the contents of source files into the
  in-memory design, when running the AMD Vivado Design Suite tool in Non
  Project mode, in which there is no project file to maintain and manage the
  various project source files. Refer to the Vivado Design Suite User Guide:
  Design Flows Overview (UG892) for more information on Non Project mode.

Arguments:

  -library <arg> - (Optional) The library the VHDL file should reference. The
  default VHDL library is xil_defaultlib.

  -vhdl2008 - (Optional) Identifies the files to be read as VHDL file version
  2008.

  -vhdl2019 - (Optional) Identifies the files to be read as VHDL file version
  2019.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) Names of one or more VHDL files to be read.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the specified VHDL file and adds it to the
  source fileset:

    read_vhdl C:/Data/FPGA_Design/new_module.vhdl

  This example reads multiple specified VHDL 2008 files:

    read_vhdl -vhdl2008 {file1.vhd file2.vhd file3.vhd}

  This example reads multiple specified VHDL 2019 files:

    read_vhdl -vhdl2019 {file1.vhd file2.vhd file3.vhd}

See Also:

   *  add_files
   *  read_verilog
   *  remove_files


@@@COMMAND: read_waivers@@@
read_waivers

Description: 
Read one or more DRC/METHODOLOGY/CDC message waivers data sets from binary file(s)

Syntax: 
read_waivers  [-type <arg>] [-cleanup <arg>] [-file <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-type]     Type of waiver - ALL, DRC, METHODOLOGY, CDC
  [-cleanup]  Type of waivers to cleanup - ALL, DRC, METHODOLOGY, CDC
  [-file]     Name of file to read waivers (or as TYPE.<filename>, if more 
              than one Type was saved
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Waiver, Object


@@@COMMAND: read_xdc@@@
read_xdc

Description: 
read physical and timing constraints from one of more files.

Syntax: 
read_xdc  [-cells <args>] [-ref <arg>] [-quiet_diff_pairs] [-mode <arg>]
          [-unmanaged] [-no_add] [-quiet] [-verbose] <files>

Returns: 
list of files

Usage: 
  Name                 Description
  --------------------------------
  [-cells]             Import constraints for these cells
  [-ref]               Import constraints for this ref
  [-quiet_diff_pairs]  Suppress warnings about differential pair inference 
                       when importing I/O ports
  [-mode]              Import constraints as out_of_context. Values: default,
                       out_of_context
                       Default: default
  [-unmanaged]         treat this file as unmanaged constraints file
  [-no_add]            don't add this file to constraints fileset
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <files>              Input file(s) to read

Categories: 
FileIO

Description:

  Imports physical and timing constraints from a Xilinx Design Constraints
  file (XDC). The XDC is imported into the current_instance level of the
  design hierarchy, which defaults to the top-level of the design, or can be
  imported into specified cells. When imported at the top-level, the
  specified XDC file is added to the active constraint fileset.

  Important: Constraints from the XDC file will overwrite any current
  constraints of the same name. Therefore, exercise some caution when reading
  a XDC file to be sure you will not overwrite important constraints.

  This command is similar to the add_files command in that the XDC file is
  added by reference rather than imported into the local project directory.

  You can use this command to read the contents of source files into the
  in-memory design, when running the AMD Vivado Design Suite tool in Non
  Project mode, in which there is no project file to maintain and manage the
  various project source files. Refer to the Vivado Design Suite User Guide:
  Design Flows Overview (UG892) for more information on Non Project mode.

Arguments:

  -cells <args> - (Optional) Apply the constraints from the XDC file to the
  specified instance names. The constraints will be applied ONLY to the
  specified cell instances, and the XDC file will not be added to the active
  constraint fileset.

  Tip: A design must be open when specifying the -cells option.

  -ref <arg> - (Optional) Read the constraints from the XDC file and apply
  them to ALL instances of the referenced module, wherever they happen to be
  instantiated in the current design.

  -quiet_diff_pairs - (Optional) Suppress warnings about differential pair
  inference when importing I/O constraints.

  -mode [ default | out_of_context ] - (Optional) Import the specified
  constraint files as in-context with the top-level design, or as
  out_of_context constraints to be used when generating output products for
  hierarchical modules or IP cores. For more information on the
  out-of-context design flow, refer to the Vivado Design Suite User Guide:
  Design Flows Overview (UG892).

  Important: Out-of-context constraints should be added to specified cells or
  cell instances.

  -unmanaged - (Optional) Treat the added files as unmanaged Tcl constraint
  files. The Vivado tool will not save constraint changes back into these
  unmanaged Tcl files. For more information on unmanaged Tcl constraints,
  refer to the Vivado Design Suite User Guide: Using Constraints (UG903).

  -no_add - (Optional) Read the constraints from the file, and integrate them
  into the in-memory design, but do not add the XDC file to the list of files
  in the current constraint set.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) The filenames of the XDC files to be imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the XDC file and applies it to the current
  design:

    read_xdc file_1.xdc

  The following example reads the XDC file and applies it ALL instances of
  the referenced module found in the current design:

    read_xdc -ref hex2led file_2.xdc

  The following example reads the XDC file and applies it ONLY to the
  specified instance within the referenced module:

    read_xdc -ref sixty -cells lsbcount file_3.xdc

  The following example reads the XDC file and applies it to the specified
  instances in the current design, even though they are instances of
  different modules:

    read_xdc -cells {one_decode sixty/msbcount} file_4.xdc

  Note: Multiple cells must be enclosed in quotes, "", or braces, {}.

See Also:

   *  add_files
   *  current_instance
   *  infer_diff_pairs
   *  write_xdc


@@@COMMAND: read_xdef@@@
read_xdef

Description: 
Read Xilinx physical design exchange and restore the physical implementation data to working memory

Syntax: 
read_xdef  [-print_release_version] [-no_routing] [-no_clear] [-cell <arg>]
           [-strict] [-no_clear_prog_delay] [-quiet] [-verbose] <file>

Usage: 
  Name                      Description
  -------------------------------------
  [-print_release_version]  Print out the release version of the file
  [-no_routing]             Do not read and restore the routing data
  [-no_clear]               Do not clear the place and route databases before
                            attempting to read in the new xdef data
  [-cell]                   Read the given XDEF in as if it were instantiated
                            under the given cell.
  [-strict]                 Require exact matches between placement and 
                            routing information for the loaded design. Only 
                            valid with -cell.
  [-no_clear_prog_delay]    Don't clear the prog delays when reading in the 
                            xdef.
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution
  <file>                    XDEF file name

Categories: 
FileIO

Description:

  Reads a Xilinx Design Exchange File (XDEF). The XDEF file includes the
  netlist, the location, and optionally the routing information of an
  implemented design. You can import an XDEF file into an open design.

  Note: When reading an XDEF file into an open implemented design, the
  placement and routing of the current implementation will be overwritten by
  the imported data.

  When reading an XDEF file with routing information included, you can
  optionally ignore the routing information and simply use the LOC
  information to place the logic elements onto the device.

Arguments:

  -print_release_version - (Optional) Print the current software version from
  the XDEF file. This allows you to see which version of the software was
  used to write the XDEF file.

  -no_routing - (Optional) Do not import routing information from the XDEF
  file.

  -cell <arg> - (Optional) Import the XDEF file relative to the specified
  cell. The data is imported into the hierarchy of the specified cell.

  -strict - (Optional) Force a strict matching of placement and routing
  information with the block it is imported into. An error is returned if the
  XDEF data does not match the cell instances in the specified cell.

  Note: This argument is only valid for use with the -cell argument.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - The name of the XDEF file to be imported.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example reads the specified XDEF file from the current
  working directory, or the directory from which the tool was launched:

    read_xdef design.xdef 
    

  The following example imports the specified XDEF file into the hierarchy of
  the specified cell, using strict matching, and ignores the routing
  information:

    read_xdef C:/Data/cell.xdef -cell [get_cells cpuEngine] -strict -no_routing 
    

See Also:

   *  write_xdef


@@@COMMAND: redo@@@
redo

Description: 
Re-do previous command

Syntax: 
redo  [-list] [-quiet] [-verbose]

Returns: 
with -list, the list of redoable tasks

Usage: 
  Name        Description
  -----------------------
  [-list]     Show a list of redoable tasks
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
GUIControl

Description:

  Important: The UNDO and REDO commands are intended for use in the AMD
  Vivado Design Suite IDE, and are not recommended for use in Tcl scripts to
  restore designs to a former state. To restore a design to a specific
  condition, you must write a design checkpoint using the write_checkpoint
  command, to be restored using read_checkpoint.

  Redo a command that has been previously undone. This command can be used
  repeatedly to redo a series of commands.

  If a command group has been created using the startgroup and endgroup
  commands, the redo command will redo the group of commands as a sequence.

Arguments:

  -list - (Optional) Get the list of commands that can be redone. When you
  use the undo command, the tool will step backward through a list of
  commands. The redo command can then be used to redo those commands.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns a list of commands that can be redone:

    redo -list

See Also:

   *  undo
   *  startgroup
   *  endgroup


@@@COMMAND: refresh_design@@@
refresh_design

Description: 
Refresh the current design

Syntax: 
refresh_design  [-part <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-part]     Target part
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project

Description:

  Reloads the current design from the project data on the hard drive. This
  overwrites the in-memory view of the design to undo any recent design
  changes.

Arguments:

  -part <arg> - (Optional) The new target part for the design when it is
  reloaded. This overrides the constraint file part specified in the project
  data on the hard drive.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following command reloads the current design from the project data on
  hard disk. This will overwrite the unsaved changes of the design which are
  in memory.

    refresh_design 
    

  Note: You can use the command to undo a series of changes to the design and
  revert to the previously saved design.

  The following example refreshes the current design using the specified V6
  part as the target device. The second command is required to make the
  selected part the target device for the active implementation run.

    refresh_design -part xc6vcx75tff784-1   
    set_property part xc6vcx75tff784-1 [get_runs impl_6] 
    

  Note: The second command is not required if the target part is not changed.

See Also:

   *  set_property


@@@COMMAND: refresh_meminit@@@
refresh_meminit

Description: 
Update and initialize the BRAM initialization strings with contents of elf files.

Syntax: 
refresh_meminit  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
FileIO, Project, Memory Initialization


@@@COMMAND: regexp@@@
regexp(n)             Tcl Built-In Commands             regexp(n)



_________________________________________________________________

NAME
       regexp - Match a regular expression against a string


SYNOPSIS
       regexp  ?switches? exp string ?matchVar? ?subMatchVar sub-
       MatchVar ...?
_________________________________________________________________


DESCRIPTION
       Determines whether the regular expression exp matches part
       or  all  of  string and returns 1 if it does, 0 if it does
       not, unless -inline is specified  (see  below).   (Regular
       expression  matching  is described in the re_syntax refer-
       ence page.)

       If additional arguments are specified  after  string  then
       they  are  treated  as  the names of variables in which to
       return information about which part(s) of  string  matched
       exp.   MatchVar  will  be  set to the range of string that
       matched all of exp.  The first  subMatchVar  will  contain
       the  characters in string that matched the leftmost paren-
       thesized subexpression within exp,  the  next  subMatchVar
       will  contain  the characters that matched the next paren-
       thesized subexpression to the right in exp, and so on.

       If the initial arguments to regexp start with - then  they
       are  treated as switches.  The following switches are cur-
       rently supported:

       -about         Instead of attempting to match the  regular
                      expression,   returns   a  list  containing
                      information about the  regular  expression.
                      The  first  element of the list is a subex-
                      pression count.  The second  element  is  a
                      list  of property names that describe vari-
                      ous attributes of the  regular  expression.
                      This   switch  is  primarily  intended  for
                      debugging purposes.

       -expanded      Enables use of the expanded regular expres-
                      sion  syntax  where whitespace and comments
                      are ignored.  This is the same as  specify-
                      ing  the  (?x)  embedded  option  (see  the
                      re_syntax manual page).

       -indices       Changes what is stored in the subMatchVars.
                      Instead  of storing the matching characters
                      from string, each variable will  contain  a
                      list  of  two  decimal  strings  giving the
                      indices in string of  the  first  and  last
                      characters in the matching range of charac-
                      ters.

       -line          Enables  newline-sensitive  matching.    By
                      default,  newline  is a completely ordinary
                      character with no  special  meaning.   With
                      this flag, "[^" bracket expressions and "."
                      never match newline, "^" matches  an  empty
                      string after any newline in addition to its
                      normal function, and "$" matches  an  empty
                      string  before  any  newline in addition to
                      its normal function.  This flag is  equiva-
                      lent to specifying both -linestop and -lin-
                      eanchor, or the (?n) embedded  option  (see
                      the re_syntax manual page).

       -linestop      Changes   the   behavior  of  "[^"  bracket
                      expressions and "."  so that they  stop  at
                      newlines.   This  is the same as specifying
                      the (?p) embedded option (see the re_syntax
                      manual page).

       -lineanchor    Changes  the  behavior  of "^" and "$" (the
                      "anchors") so they match the beginning  and
                      end  of  a  line respectively.  This is the
                      same as specifying the (?w) embedded option
                      (see the re_syntax manual page).

       -nocase        Causes  upper-case  characters in string to
                      be treated as lower case during the  match-
                      ing process.

       -all           Causes the regular expression to be matched
                      as many times as possible  in  the  string,
                      returning   the  total  number  of  matches
                      found.  If this  is  specified  with  match
                      variables,  they  will  contain information
                      for the last match only.

       -inline        Causes the command to return,  as  a  list,
                      the  data that would otherwise be placed in
                      match variables.  When using -inline, match
                      variables  may  not  be specified.  If used
                      with -all, the list will be concatenated at
                      each  iteration,  such  that a flat list is
                      always returned.  For each match iteration,
                      the  command  will append the overall match
                      data, plus one element for each  subexpres-
                      sion  in  the regular expression.  Examples
                      are:
                      regexp -inline -- {\w(\w)} " inlined "
                            -> in n
                      regexp -all -inline -- {\w(\w)} " inlined "
                            -> in n li i ne e

       -start index   Specifies a character index offset into the
                      string   to   start  matching  the  regular
                      expression at.  The index value  is  inter- |
                      preted  in  the  same  manner  as the index |
                      argument to string index.  When using  this
                      switch, "^" will not match the beginning of
                      the line, and \A will still match the start
                      of  the  string  at  index.  If -indices is
                      specified,  the  indices  will  be  indexed
                      starting from the absolute beginning of the
                      input string.  index will be constrained to
                      the bounds of the input string.

       --             Marks  the  end  of switches.  The argument
                      following this one will be treated  as  exp
                      even if it starts with a -.

       If  there  are more subMatchVars than parenthesized subex-
       pressions within exp, or if a particular subexpression  in
       exp  does  not  match the string (e.g. because it was in a
       portion of the expression that was not matched), then  the
       corresponding  subMatchVar  will  be  set  to  "-1  -1" if
       -indices has been specified or to an empty  string  other-
       wise.

EXAMPLES
       Find the first occurrence of a word starting with foo in a
       string that is not actually an instance of foobar, and get
       the  letters following it up to the end of the word into a
       variable:
              regexp {\mfoo(?!bar\M)(\w*)} $string -> restOfWord
       Note that the whole matched substring has been  placed  in
       the  variable  "->",  which  is a name chosen to look nice
       given that we are not actually interested in its contents.

       Find  the  index of the word badger (in any case) within a
       string and store that in the variable location:
              regexp -indices {(?i)\mbadger\M} $string location
       This could also be written as a basic  regular  expression
       (as  opposed to using the default syntax of advanced regu-
       lar expressions) match by prefixing the expression with  a
       suitable flag:
              regexp -indices {(?ib)\<badger\>} $string location

       This counts the number of octal digits in a string:
              regexp -all {[0-7]} $string

       This  lists all words (consisting of all sequences of non-
       whitespace characters) in a string, and  is  useful  as  a
       more powerful version of the split command:
              regexp -all -inline {\S+} $string

SEE ALSO
       re_syntax(n), regsub(n), string(n)                         |

KEYWORDS
       match,  parsing,  pattern,  regular expression, splitting,
       string



Tcl                            8.3                      regexp(n)


@@@COMMAND: register_proc@@@
register_proc

Description: 
Register a Tcl proc with Vivado.

Syntax: 
register_proc  [-quiet] [-verbose] <proc> [<tasknm>]

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <proc>      Name of proc to register. Proc must be known to Tcl
  [<tasknm>]  Name of Tcl task that wraps the proc.
              Default: Register the proc using the root name proc (no 
              namespaces).

Categories: 
Tools

Description:

  Register a Tcl procedure (proc) with the AMD Vivado Tcl command interpretor
  to register the command with the Vivado Design Suite help system.

  The following is an example Tcl proc defined for use with the Vivado Design
  Suite:

    proc findCommand {option} {
      # Summary:
      # Searches through all Vivado Tcl commands for commands implementing
      #   the specified argument.
      # Argument Usage:
      # option: Specifies the argument to search for.
      # Return Value:
      # Returns a list of Tcl commands that implement the option.
      # Categories: personal
      foreach cmd [lsort [info commands *]]
      {
           catch {
              if {[regexp "$option" [help -syntax $cmd]]}
      {
                 puts $cmd
              }
           }
       }
      } ;
      # End

  The commented lines beginning with `#` are used to define the help text for
  the registered command in the Vivado Design Suite help system.

   *  # Summary: provides a brief description of the command.

   *  # Argument Usage: provides a list and description of the various
      arguments for the proc.

   *  # Return Value: provides a description of what is returned by the proc.

   *  # Categories: provides an ability to define categories for registered
      procedures.

  After registering the procedure as a Tcl command, the Vivado help system
  will return this text when queried with:

    tasknm -help
    -or-
    help tasknm

  This command returns the name of the registered proc.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <proc> - (Required) The name of the Tcl procedure loaded into the current
  Vivado Design Suite session. The Tcl proc must be defined and loaded into
  the Vivado Design Suite prior to registration.

  <tasknm> - (Optional) Specify the Tcl command name that wraps the proc, for
  use in the Vivado Design Suite. Default: Register the proc using the root
  name proc.

Example:

  The following example registers a Tcl proc called findCommand as a Tcl
  command named findCmd:

    register_proc findCommand findCmd

See Also:

   *  unregister_proc


@@@COMMAND: register_simulator@@@
register_simulator

Description: 
Register specified simulator with Vivado application

Syntax: 
register_simulator  -description <arg> [-bootstrap <arg>] [-quiet] [-verbose]
                    <name>

Usage: 
  Name          Description
  -------------------------
  -description  Specify a short description of the simulator
  [-bootstrap]  Specify the command to 'load' a Tcl app or source a Tcl 
                script
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <name>        Specify the name of the simulator to register

Categories: 
ToolLaunch, Simulation


@@@COMMAND: regsub@@@
regsub(n)             Tcl Built-In Commands             regsub(n)



_________________________________________________________________

NAME
       regsub - Perform substitutions based on regular expression
       pattern matching

SYNOPSIS
       regsub ?switches? exp string subSpec ?varName?
_________________________________________________________________

DESCRIPTION
       This command matches the regular  expression  exp  against
       string,  and  either  copies  string to the variable whose
       name is given by varName or returns string if  varName  is
       not present.  (Regular expression matching is described in
       the re_syntax reference page.)  If there is a match,  then
       while  copying string to varName (or to the result of this
       command if varName is not present) the portion  of  string
       that  matched  exp  is  replaced with subSpec.  If subSpec
       contains a "&" or "\0", then it is replaced in the substi-
       tution  with  the  portion of string that matched exp.  If
       subSpec contains a "\n", where n is a digit between 1  and
       9,  then  it is replaced in the substitution with the por-
       tion of string that matched the n'th parenthesized  subex-
       pression  of  exp.   Additional backslashes may be used in
       subSpec to prevent special interpretation  of  "&",  "\0",
       "\n"  and  backslashes.  The use of backslashes in subSpec
       tends to interact badly with the Tcl parser's use of back-
       slashes,  so  it is generally safest to enclose subSpec in
       braces if it includes backslashes.

       If the initial arguments to regsub start with - then  they
       are  treated as switches.  The following switches are cur-
       rently supported:

       -all      All ranges in string that match  exp  are  found
                 and  substitution is performed for each of these
                 ranges.  Without  this  switch  only  the  first
                 matching  range  is  found  and substituted.  If
                 -all is specified, then "&" and  "\n"  sequences
                 are  handled  for  each  substitution  using the
                 information from the corresponding match.

       -expanded      Enables use of the expanded regular expres-
                      sion  syntax  where whitespace and comments
                      are ignored.  This is the same as  specify-
                      ing  the  (?x)  embedded  option  (see  the
                      re_syntax manual page).

       -line          Enables  newline-sensitive  matching.    By
                      default,  newline  is a completely ordinary
                      character with no  special  meaning.   With
                      this flag, "[^" bracket expressions and "."
                      never match newline, "^" matches  an  empty
                      string after any newline in addition to its
                      normal function, and "$" matches  an  empty
                      string  before  any  newline in addition to
                      its normal function.  This flag is  equiva-
                      lent to specifying both -linestop and -lin-
                      eanchor, or the (?n) embedded  option  (see
                      the re_syntax manual page).

       -linestop      Changes   the   behavior  of  "[^"  bracket
                      expressions and "."  so that they  stop  at
                      newlines.   This  is the same as specifying
                      the (?p) embedded option (see the re_syntax
                      manual page).

       -lineanchor    Changes  the  behavior  of "^" and "$" (the
                      "anchors") so they match the beginning  and
                      end  of  a  line respectively.  This is the
                      same as specifying the (?w) embedded option
                      (see the re_syntax manual page).

       -nocase   Upper-case  characters  in  string  will be con-
                 verted to  lower-case  before  matching  against
                 exp;   however,  substitutions specified by sub-
                 Spec  use  the  original  unconverted  form   of
                 string.

       -start index
                 Specifies  a  character  index  offset  into the
                 string to start matching the regular  expression
                 at.   The index value is interpreted in the same |
                 manner as the index argument  to  string  index.
                 When  using  this switch, "^" will not match the
                 beginning of the line, and \A will  still  match
                 the start of the string at index.  index will be
                 constrained to the bounds of the input string.

       --        Marks the end of switches.  The argument follow-
                 ing  this  one will be treated as exp even if it
                 starts with a -.

       If varName is supplied, the command returns a count of the
       number  of  matching  ranges that were found and replaced,
       otherwise the string after replacement is  returned.   See
       the manual entry for regexp for details on the interpreta-
       tion of regular expressions.

EXAMPLES
       Replace (in the string in variable string) every  instance
       of foo which is a word by itself with bar:
              regsub -all {\mfoo\M} $string bar string
       or (using the "basic regular expression" syntax):
              regsub -all {(?b)\<foo\>} $string bar string

       Insert double-quotes around the first instance of the word
       interesting, however it is capitalized.
              regsub -nocase {\yinteresting\y} $string {"&"} string

       Convert all non-ASCII and Tcl-significant characters  into
       \u  escape sequences by using regsub and subst in combina-
       tion:
              # This RE is just a character class for everything "bad"
              set RE {[][{};#\\\$\s\u0080-\uffff]}

              # We will substitute with a fragment of Tcl script in brackets
              set substitution {[format \\\\u%04x [scan "\\&" %c]]}

              # Now we apply the substitution to get a subst-string that
              # will perform the computational parts of the conversion.
              set quoted [subst [regsub -all $RE $string $substitution]]

SEE ALSO
       regexp(n), re_syntax(n), subst(n), string(n)               |

KEYWORDS
       match, pattern, quoting, regular expression, substitute



Tcl                            8.3                      regsub(n)


@@@COMMAND: reimport_files@@@
reimport_files

Description: 
Reimport files when they are found out-of-date

Syntax: 
reimport_files  [-force] [-quiet] [-verbose] [<files>...]

Returns: 
list of file objects that were imported

Usage: 
  Name        Description
  -----------------------
  [-force]    Force a reimport to happen even when the local files may be 
              newer
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<files>]   List of files to reimport. If no files are specified, all files
              in the project that are out-of-date, will be reimported

Categories: 
Project

Description:

  Reimports project files. This updates the local project files from the
  original referenced source files.

Arguments:

  -force - (Optional) Reimport files even when the local project files may be
  newer than their referenced source files.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Optional) List of files to reimport. If no files are specified,
  all files in the project that are out-of-date, will be reimported. If you
  use -force and specify no files, all files in the project will be
  reimported.

Examples:

  The following example reimports all project files regardless of whether
  they are out of date, or the local files are newer than the referenced
  source file:

    reimport_files -force 
    

  Note: No warnings will be issued for newer local files that will be
  overwritten.

  The following example reimports the specified files to the project, but
  only if the original source file is newer than the local project file:

    reimport_files C:/Data/FPGA_Design/source1.v \  
       C:/Data/FPGA_Design/source2.vhdl 
    

See Also:

   *  add_files
   *  import_files


@@@COMMAND: remove_annotated_delay@@@
remove_annotated_delay

Description: 
remove annotated delay

Syntax: 
remove_annotated_delay  [-from <args>] [-to <args>] [-all] [-of_objects <args>]
                        [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-from]        From pins or top level ports
  [-to]          To pins or top level ports
  [-all]         Specifies that all annotated delays are removed
  [-of_objects]  List of timing arcs
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Timing


@@@COMMAND: remove_cell@@@
remove_cell

Description: 
Remove cells from the current design

Syntax: 
remove_cell  [-quiet] [-verbose] <cells>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <cells>     List of cells to remove

Categories: 
Netlist

Description:

  Remove cells from the current netlist in either an open Synthesized or
  Implemented design.

  Note: You cannot remove cells from library macros, also called
  macro-primitives.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cells> - (Required) List of cells to remove. The instance name can be
  specified as a hierarchical name, from the top-level of the design. In this
  case, you must use the hierarchy separator character in the hierarchical
  instance name. You can determine the current hierarchy separator with the
  get_hierarchy_separator command.

Examples:

  The following example removes the fftEngine from the in-memory netlist of
  the current design:

    remove_cell fftEngine  
    remove_cell usbEngine0/usb_out 
    

See Also:

   *  create_cell
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: remove_cells_from_pblock@@@
remove_cells_from_pblock

Description: 
Remove cells from a Pblock

Syntax: 
remove_cells_from_pblock  [-quiet] [-verbose] <pblock> <cells>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <pblock>    Pblock to remove cells from
  <cells>     Cells to remove

Categories: 
Floorplan, XDC

Description:

  Removes the specified logic instances from a Pblock. Cells are added to a
  Pblock with the add_cells_to_pblock command.

  Note: Cells that have been placed will not be unplaced as they are removed
  from a Pblock. Any current LOC assignments are left intact.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pblock> - (Required) The name of the Pblock from which to remove the
  specified instances.

  <cells> - (Required) One or more cell objects to remove from the specified
  Pblock.

Examples:

  The following example removes the specified cells from the pb_cpuEngine
  Pblock:

    remove_cells_from_pblock pb_cpuEngine [get_cells cpuEngine/cpu_dwb_dat_o/*] 
    

See Also:

   *  add_cells_to_pblock


@@@COMMAND: remove_cluster_configurations@@@
remove_cluster_configurations

Description: 
Removes list of cluster configurations

Syntax: 
remove_cluster_configurations  [-quiet] [-verbose] <cluster_configurations>

Usage: 
  Name                      Description
  -------------------------------------
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution
  <cluster_configurations>  List of cluster configurations

Categories: 
cluster_configuration


@@@COMMAND: remove_custom_timing_model@@@
remove_custom_timing_model

Description: 
removing Custom timing model

Syntax: 
remove_custom_timing_model  [-all] [-quiet] [-verbose] [<cells>]

Usage: 
  Name        Description
  -----------------------
  [-all]      remove all CTM cells
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<cells>]   cells to be deleted

Categories: 
Timing


@@@COMMAND: remove_drc_checks@@@
remove_drc_checks

Description: 
Remove DRC rule check objects from a user rule deck

Syntax: 
remove_drc_checks  [-of_objects <args>] [-regexp] [-nocase] [-filter <arg>]
                   -ruledeck <arg> [-quiet] [-verbose] [<patterns>]

Returns: 
drc_check

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  Get 'rule_check' objects of these types: 'drc_ruledeck'.
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  -ruledeck      DRC rule deck to modify
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match the 'rule_check' objects against patterns.
                 Default: *

Categories: 
DRC, Object

Description:

  Remove the specified design rule checks from a drc_ruledeck object.

  A rule deck is a collection of design rule checks grouped for convenience,
  to be run with the report_drc command at different stages of the FPGA
  design flow, such as during I/O planning or placement. The tool comes with
  a set of factory defined rule decks, but you can also create new
  user-defined rule decks with the create_drc_ruledeck command.

  Checks are added to a rule deck using the add_drc_checks command.

  The DRC rule check object features the IS_ENABLED property that can be set
  to true or false using the set_property command. When a new rule check is
  created, the IS_ENABLED property is set to true as a default. Set the
  IS_ENABLED property to false to disable the rule check from being used by
  report_drc without having to remove the rule from the rule deck.

  Note: Use the reset_drc_check command to restore the DRC rule, and its
  properties, to the default settings.

  This command returns the list of design rule checks that were removed from
  the specified rule deck.

Arguments:

  -of_objects <arg> - (Optional) Remove the rule checks of the specified
  drc_ruledeck object from the specified rule deck. This has the effect of
  removing all the rules in one rule deck from the target rule deck.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression. The -filter argument filters the list of objects returned by
  the search pattern, based on specified property values. You can find the
  properties on an object with the report_property or list_property commands.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).
  The following gets input pins that do NOT contain the "RESET" substring
  within their name:

    get_pins * -filter {DIRECTION == IN && NAME !~ "*RESET*"} 
    

  Boolean (bool) type properties can be directly evaluated in filter
  expressions as true or not true:

    -filter {IS_PRIMITIVE && !IS_LOC_FIXED} 
    

  -ruledeck <arg> - (Required) The name of the rule deck to remove the
  specified design rule checks from.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <patterns> - (Optional) Remove the design rule checks that match the
  specified patterns from the rule deck. The default pattern is the wildcard
  `*` which removes all rule checks from the specified rule deck. More than
  one pattern can be specified to remove multiple rule checks based on
  different search criteria.

  Note: You must enclose multiple search patterns in braces, {}, or quotes,
  "", to present the list as a single element.

Examples:

  The following example removes the rule checks matching the specified filter
  pattern from the my_rules rule deck:

    remove_drc_checks -filter {GROUP == AVAL} -ruledeck my_rules 
    

  The following example disables the specified DRC check without removing it
  from the rule deck:

    set_property IS_ENABLED FALSE [get_drc_checks RAMW-1] 
    

  The following example removes all rule checks from the specified rule deck:

    remove_drc_checks -ruledeck my_rules 
    

See Also:

   *  add_drc_checks
   *  create_drc_check
   *  create_drc_ruledeck
   *  get_drc_checks
   *  get_drc_ruledecks
   *  list_property
   *  report_drc
   *  report_property
   *  reset_drc_check


@@@COMMAND: remove_files@@@
remove_files

Description: 
Remove files or directories from a fileset

Syntax: 
remove_files  [-fileset <arg>] [-quiet] [-verbose] <files>...

Returns: 
list of files that were removed

Usage: 
  Name        Description
  -----------------------
  [-fileset]  Fileset name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <files>     Name of the file(s) to be removed

Categories: 
Project, Simulation

Description:

  Removes the specified file objects from the current or specified fileset.
  The file is removed from the current project, but is not removed from the
  disk.

  Files can be specified as file name strings, or as file objects returned by
  the get_files command. When specified as strings, the file is looked for in
  the current or specified fileset. When the file object is specified by
  get_files, the fileset is defined by the object, and -fileset is ignored.

  When successful, this command returns nothing. If the specified file is not
  found, an error is returned.

Arguments:

  -fileset <arg> - (Optional) The name of the fileset to locate the specified
  files. As a default, the files will be removed from the current fileset as
  defined by the current_fileset command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) The name of the files to remove from the project.

  Note: If no files are specified, no files are removed.

Examples:

  The following example removes the file named C:/Design/top.xdc from the
  constraint set constrs_1:

    remove_files -fileset constrs_1 C:/Design/top.xdc  
    

  Multiple files can be specified as follows:

    remove_files -fileset sim_1 top_tb1.vhdl top_tb2.vhdl  
    

  The following example gets all the file objects in the current project, and
  removes them:

    remove_files [get_files] 
    

  Note: This will remove ALL files from your design.

See Also:

   *  add_files
   *  current_fileset
   *  get_files


@@@COMMAND: remove_from_power_rail@@@
remove_from_power_rail

Description: 
Remove power sources from Power Rail

Syntax: 
remove_from_power_rail  [-power_sources <args>] [-quiet] [-verbose]
                        <power_rail>

Usage: 
  Name              Description
  -----------------------------
  [-power_sources]  List of power sources to remove. Can be power rails 
                    and/or power supplies
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <power_rail>      Power rail to remove power sources from

Categories: 
XDC, Floorplan


@@@COMMAND: remove_gui_custom_command_args@@@
remove_gui_custom_command_args

Description: 
Remove one or more custom command arguments

Syntax: 
remove_gui_custom_command_args  -command_name <arg> [-quiet] [-verbose]
                                <names>...

Usage: 
  Name           Description
  --------------------------
  -command_name  name of custom command whose arguments are being removed.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <names>        name of one or more custom command arguments to remove.

Categories: 
GUIControl

Description:

  Remove one or more GUI custom command arguments of a particular GUI custom
  command.

  You can use the get_gui_custom_commands to determine the list of defined
  custom commands. You can use the get_gui_custom_command_args to determine
  the list of defined GUI custom command arguments for a particular GUI
  custom command.

Arguments:

  -command_name - (REquired) SPecifies the name of GUI custom command whose
  arguments are being removed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <names> - (Required) One or more argument names to remove.

Examples:

  Remove GUI custom command arguments with name 'arg1' and 'arg2' of a GUI
  custom command with name 'cmd_1' :

    remove_gui_custom_command_args -command_name cmd_1 {arg1 arg2}

See Also:

   *  create_gui_custom_command
   *  create_gui_custom_command_arg
   *  get_gui_custom_command_args
   *  get_gui_custom_commands
   *  remove_gui_custom_command


@@@COMMAND: remove_gui_custom_commands@@@
remove_gui_custom_commands

Description: 
Remove one or more custom commands

Syntax: 
remove_gui_custom_commands  [-quiet] [-verbose] <names>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <names>     name of one or more custom commands to remove

Categories: 
GUIControl

Description:

  Remove one or more GUI custom commands.

  You can use the get_gui_custom_commands to determine the list of defined
  custom commands.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <names> - (Required) One or more command names to remove.

Examples:

  The following example removes the GUI custom commands with names 'abc' and
  'xyz':

    remove_gui_custom_commands {abc xyz}

See Also:

   *  create_gui_custom_command
   *  create_gui_custom_command_arg
   *  get_gui_custom_command_args
   *  get_gui_custom_commands
   *  remove_gui_custom_command_arg
   *  remove_gui_custom_command


@@@COMMAND: remove_net@@@
remove_net

Description: 
Remove nets from the current design

Syntax: 
remove_net  [-prune] [-quiet] [-verbose] <nets>...

Usage: 
  Name        Description
  -----------------------
  [-prune]    When performing net removal, remove pins and ports which are 
              left unconnected as a result of the remove_net operation.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <nets>      List of nets to remove

Categories: 
Netlist

Description:

  Remove the specified net from the netlist of an open Synthesized or
  Implemented Design.

  Note: You cannot remove nets from library macros, also called
  macro-primitives.

  To remove a bus, you must specify the primary bus name, and not specify a
  bus index. This ensures that the entire bus is removed, and not just a
  portion of the bits associated with the bus. You can resize a bus,
  eliminating bits of the bus, using the resize_net_bus command.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -prune - (Optional) Prune, or remove, any unconnected hierarchical pins,
  ports, or nets, as a result of removing the specified net.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <nets> - (Required) The list of nets to remove from the netlist of the
  current design.

Example:

  Using the following connection network:

    leaf_cell1/pin1 > net1 > block1/pin1 > 
       topnet  
    < block2/pin1 < net2 < leaf_cell2/pin1 
    

  This example will remove block1/pin1, block2/pin1, net1, and net2, but will
  not prune the pins on the leaf cells:

    remove_net topnet -prune  
    

  The following example illustrates the warning returned when trying to
  remove one bit of a bus net, and then removes the entire bus by specifying
  the root name:

    remove_net DataIn_pad_1_i[0]  
    WARNING: [Coretcl-82] No nets matched `DataIn_pad_1_i[0]`.  
    remove_net DataIn_pad_1_i 
    

See Also:

   *  create_net
   *  disconnect_net
   *  resize_net_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: remove_pin@@@
remove_pin

Description: 
Remove pins from the current design

Syntax: 
remove_pin  [-quiet] [-verbose] <pins>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <pins>      List of pins to remove

Categories: 
Netlist

Description:

  Remove pins from the current netlist in either an open Synthesized or
  Implemented design.

  Note: You cannot remove pins from library macros, or macro-primitives.

  To remove a bus pin, you must specify the primary pin name, and not specify
  a bus index. This ensures that the entire bus pin is removed, and not just
  a portion of the bits associated with the bus. You can resize a bus pin,
  eliminating bits, using the resize_pin_bus command.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pins> - (Required) List of pins to remove from the netlist. The pins must
  be specified hierarchically by the cell instance the pin is found on.

Examples:

  The following example removes the specified pin from the cpuEngine in the
  in-memory netlist of the current design:

    remove_pin cpuEngine/inPin

See Also:

   *  create_pin


@@@COMMAND: remove_port@@@
remove_port

Description: 
Remove the given list of top ports from the netlist.

Syntax: 
remove_port  [-quiet] [-verbose] <ports>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <ports>     Ports and/or bus ports to remove

Categories: 
PinPlanning

Description:

  Removes the specified ports or buses.

  To remove a bus port, you must specify the primary port name, and not
  specify a bus index. This ensures that the entire bus port is removed, and
  not just a portion of the bits associated with the bus. You can resize a
  bus port, eliminating bits, using the resize_port_bus command.

  The remove_port command will remove ports that have been added with the
  create_port command, but cannot delete ports that are defined in the RTL or
  netlist design.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ports> - One or more names of ports to remove.

Examples:

  The following example deletes the specified port:

    remove_port PORT0 
    

  The following example deletes the two specified ports of a bus:

    remove_port BUS[1] BUS[2] 
    

  The following example deletes both the N and P sides of a differential pair
  port:

    remove_port D_BUS_P[0] 
    

  Note: Deleting either the N or the P side of a differential pair will also
  delete the other side of the pair.

See Also:

   *  create_cell
   *  create_net
   *  create_pin
   *  create_port
   *  create_interface
   *  place_ports
   *  resize_port_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: rename@@@
rename(n)             Tcl Built-In Commands             rename(n)



_________________________________________________________________

NAME
       rename - Rename or delete a command

SYNOPSIS
       rename oldName newName
_________________________________________________________________


DESCRIPTION
       Rename  the command that used to be called oldName so that
       it is now called newName.  If newName is an  empty  string
       then  oldName is deleted.  oldName and newName may include
       namespace qualifiers (names of containing namespaces).  If
       a  command  is  renamed into a different namespace, future
       invocations of it will execute in the new namespace.   The
       rename command returns an empty string as result.

EXAMPLE
       The  rename  command  can be used to wrap the standard Tcl
       commands with your own monitoring machinery.  For example,
       you  might  wish  to count how often the source command is
       called:
              rename ::source ::theRealSource
              set sourceCount 0
              proc ::source args {
                  global sourceCount
                  puts "called source for the [incr sourceCount]'th time"
                  uplevel 1 ::theRealSource $args
              }


SEE ALSO
       namespace(n), proc(n)


KEYWORDS
       command, delete, namespace, rename



Tcl                                                     rename(n)


@@@COMMAND: rename_cell@@@
rename_cell

Description: 
rename a cell

Syntax: 
rename_cell  -to <arg> [-quiet] [-verbose] <cell>...

Usage: 
  Name        Description
  -----------------------
  -to         New name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <cell>      Cell to rename

Categories: 
Netlist

Description:

  Rename a single hierarchical or leaf-level cell in the current synthesized
  or implemented design.

  Note: You cannot rename cells with DONT_TOUCH property set to TRUE.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  Changes to the names of cells, nets, pins, and ports, will also affect the
  design constraints defined in the in-memory design. Constraints are
  automatically modified to target the new object name, however these are not
  written back to the source XDC file. Saving the modified in-memory design
  using write_checkpoint will save both the renamed objects and modified
  constraints.

  This command returns nothing if successful, or an error if it fails.

Arguments:

  -to <arg> - (Required) Specify the new name to assign to the specified
  cell. Specified names can not contain Tcl special characters: `"\{};$#

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cell> - (Required) Instance name of the cell to rename.

Examples:

  The following example changes the name of the hierarchical or1200_cpu cell
  as specified:

    rename_cell -to or1200_gpu or1200_cpu 
    

See Also:

   *  connect_net
   *  create_cell
   *  create_net
   *  remove_cell
   *  set_hierarchy_separator
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: rename_net@@@
rename_net

Description: 
rename a net

Syntax: 
rename_net  -to <arg> [-quiet] [-verbose] <net>...

Usage: 
  Name        Description
  -----------------------
  -to         New name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <net>       Net to rename

Categories: 
Netlist

Description:

  Rename a net in the current synthesized or implemented design.

  The following are limitations with regard to renaming nets:

   *  You cannot rename nets that have DONT_TOUCH or MARK_DEBUG properties
      set to TRUE.

   *  You cannot rename individual bits of a bus net, but you can
      collectively rename the whole bus.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  Changes to the names of cells, nets, pins, and ports, will also affect the
  design constraints defined in the in-memory design. Constraints are
  automatically modified to target the new object name, however these are not
  written back to the source XDC file. Saving the modified in-memory design
  using write_checkpoint will save both the renamed objects and modified
  constraints.

  This command returns nothing if successful, or an error if it fails.

Arguments:

  -to <arg> - (Required) Specify the new name to assign to the specified net.
  Specified names can not contain Tcl special characters: `"\{};$#

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <net> - (Required) Name of a net to rename.

Examples:

  The following example renames the specified bus signal:

    rename_net -to dataOut dout 
    

See Also:

   *  connect_net
   *  create_cell
   *  create_net
   *  create_pin
   *  create_port
   *  remove_cell
   *  set_hierarchy_separator
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: rename_pin@@@
rename_pin

Description: 
rename a pin

Syntax: 
rename_pin  -to <arg> [-quiet] [-verbose] <pin>...

Usage: 
  Name        Description
  -----------------------
  -to         New name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <pin>       Pin to rename

Categories: 
Netlist

Description:

  Rename the specified pin on a hierarchical cell in the current synthesized
  or implemented design.

  The following are limitations with regard to renaming pins:

   *  Pins on primitive cells cannot be renamed.

   *  A pin on a hierarchical cell that has the DONT_TOUCH property can be
      renamed, but a pin on an hierarchical cell inside a DON'T_TOUCH cell
      cannot be renamed.

   *  You cannot rename individual bits of a bus pin, but you can
      collectively rename the whole bus.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  Changes to the names of cells, nets, pins, and ports, will also affect the
  design constraints defined in the in-memory design. Constraints are
  automatically modified to target the new object name, however these are not
  written back to the source XDC file. Saving the modified in-memory design
  using write_checkpoint will save both the renamed objects and modified
  constraints.

  This command returns nothing if successful, or an error if it fails.

Arguments:

  -to <arg> - (Required) The new name to assign to the specified pin. The new
  name only needs to specify the pin name, rather than the whole hierarchical
  name of the pin. Specified names can not contain Tcl special characters:
  `"\{};$#

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pin> - (Required) The hierarchical name of a pin, starting with the
  instance name of the cell it is found on.

Examples:

  The following example renames the specified pin:

    rename_pin -to in1 egressLoop[0].egressFifo/I1 
    

  The following example shows the error that is returned when you try to
  rename a single bit of a bus, and then renames the whole bus pin:

    rename_pin -to din[0] egressLoop[0].egressFifo/buffer_fifo/dataInput[0]  
    WARNING: [Coretcl 2-1480] rename_pin can not rename bits of a bus, \  
    use resize_pin_bus instead.  
    rename_pin -to dataInput egressLoop[0].egressFifo/buffer_fifo/din 
    

See Also:

   *  connect_net
   *  create_cell
   *  create_net
   *  create_pin
   *  create_port
   *  remove_pin
   *  set_hierarchy_separator
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: rename_port@@@
rename_port

Description: 
rename a port

Syntax: 
rename_port  -to <arg> [-quiet] [-verbose] <port>...

Usage: 
  Name        Description
  -----------------------
  -to         New name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <port>      Port to rename

Categories: 
Netlist

Description:

  Rename a single port in the current synthesized or implemented design.

  Note: You cannot rename individual bits of a bus port, but you can
  collectively rename the whole bus.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  Changes to the names of cells, nets, pins, and ports, will also affect the
  design constraints defined in the in-memory design. Constraints are
  automatically modified to target the new object name, however these are not
  written back to the source XDC file. Saving the modified in-memory design
  using write_checkpoint will save both the renamed objects and modified
  constraints.

  This command returns nothing if successful, or an error if it fails.

Arguments:

  -to <arg> - (Required) Specify the new name to assign to the specified
  port. Specified names can not contain Tcl special characters: `"\{};$#

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <port> - (Required) Name of the port to rename.

Examples:

  The following example renames the specified bus port:

    rename_port -to wbInputData wbInDat 
    

See Also:

   *  connect_net
   *  create_net
   *  create_port
   *  remove_port
   *  set_hierarchy_separator
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: rename_ref@@@
rename_ref

Description: 
rename a cell ref

Syntax: 
rename_ref  [-ref <arg>] [-to <arg>] [-prefix_all <arg>] [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-ref]         Cell ref to rename
  [-to]          New name
  [-prefix_all]  Rename all eligible hierarchical cell refs in the current 
                 design.  Construct the new name using the given prefix plus 
                 the original name
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Netlist

Description:

  Rename the reference name of a single non-primitive cell, or apply a
  reference prefix to all non-primitive cells in the current synthesized or
  implemented design.

  This command provides a mechanism to change the non-primitive reference
  names in the current design so that they do not collide with the reference
  names in another design. This lets two modules or designs be synthesized or
  simulated together, while avoiding any name collisions between the two
  designs.

  This command returns nothing when renaming the reference a single cell, and
  returns the number of cells renamed when used with -prefix_all. If the
  command fails, an error is returned.

Arguments:

  -ref <arg> - (Optional) Specify the current reference name of a
  non-primitive cell.

  -to <arg> - (Optional) Change the reference name to the specified value.

  -prefix_all <arg> - (Optional) Apply the specified prefix to the reference
  names of all non-primitive cells in the current design, except the top
  module.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example changes the specified reference name to the value
  indicated:

    rename_ref -ref usbf_top -to MOD1_usbf_top 
    

  The following example applies the specified reference name prefix to all
  non-primitive cells in the current design:

    rename_ref -prefix_all MOD1_ 
    

See Also:

   *  launch_xsim
   *  synth_design
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: reorder_files@@@
reorder_files

Description: 
Change the order of source files in the active fileset

Syntax: 
reorder_files  [-fileset <arg>] [-before <arg>] [-after <arg>] [-front] [-back]
               [-auto] [-disable_unused] [-quiet] [-verbose] <files>...

Usage: 
  Name               Description
  ------------------------------
  [-fileset]         Fileset to reorder
  [-before]          Move the listed files before this file
  [-after]           Move the listed files after this file
  [-front]           Move the listed files to the front (default)
  [-back]            Move the listed files to the back
  [-auto]            Automatically re-orders the given fileset
  [-disable_unused]  Disables all files not associated with the TOP design 
                     unit
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <files>            Files to move

Categories: 
Project

Description:

  Reorders source files in the specified fileset. Takes the files indicated
  and places them at the front of, the back of, or before or after other
  files within the fileset. This command also has an auto reorder feature
  that reorders the files based on the requirements of the current top module
  in the design.

Arguments:

  -fileset <arg> - (Optional) The fileset in which to reorder files. The
  default is the sources_1 source fileset.

  -before <arg> - (Optional) Place the specified files before this file in
  the fileset. The file must be specified with the full path name in the
  fileset.

  -after <arg> - (Optional) Place the specified files after this file in the
  fileset. The file must be specified with the full path name in the fileset.

  -front - (Optional) Place the specified files at the front of the list of
  files in the fileset.

  -back - (Optional) Place the specified files at the back of the list of
  files in the fileset.

  -auto - (Optional) Enable automatic reordering based on the hierarchy
  requirements of the current top-module in the project. Often used after
  changing the top module with the "set_property top" command.

  -disable_unused - (Optional) Disable any files not currently used by the
  hierarchy based on the top-module. Often used after changing the top module
  with the "set_property top" command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <files> - (Required) One or more files to relocate in the fileset. Files
  must be specified by their full path name in the fileset, and are reordered
  in the order they are specified.

Examples:

  The following example takes the specified files and moves them to the front
  of the source fileset:

    reorder_files -front {C:/Data/FPGA/file1.vhdl C:/Data/FPGA/file2.vhdl} 
    

  Note: The default source fileset is used in the preceding example since the
  -fileset argument is not specified.

  The following example sets a new top_module in the design, and then
  automatically reorders and disables unused files based on the hierarchy of
  the new top-module:

    set_property top block1 [current_fileset]  
    reorder_files -auto -disable_unused 
    

See Also:

   *  add_files
   *  create_fileset
   *  current_fileset
   *  remove_files


@@@COMMAND: report_accelerator_utilization@@@
report_accelerator_utilization

Description: 
Compute Accelerator utilization of device and display report

Syntax: 
report_accelerator_utilization  [-file <arg>] [-name <arg>] [-json]
                                [-kernels <args>] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name        Description
  -----------------------
  [-file]     Filename to output results to. (send output to console if -file
              is not used)
  [-name]     Output the results to GUI panel with this name
  [-json]     Generate a JSON view of the data in addition to the report
  [-kernels]  Report utilization of given list of kernels
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Report

Description:

  Reports resource utilization used by an accelerator card. Logic is
  categorized into platform, user accelerator logic, and available resources
  to the user. In order to report the correct platform utilization, all user
  accelerators must be specified.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -name <arg> - (Optional) Specifies the name of the results to output to the
  Vitis tool.

  -kernels <arg> - (Required) Takes a TCL list where each element of the list
  represents one kernel. Each list element is made up of 3 entries:
  <category>:<hierarchy>:<identifier>. Category and identifier are for
  reporting purposes only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following reports the utilization for the platform and the specified
  kernels:

    report_accelerator_utilization -kernels {module:HierA/HierB:kernelB module:HierA/HierC:kernelC}

See Also:

   *  report_utilization


@@@COMMAND: report_bus_skew@@@
report_bus_skew

Description: 
Report timing paths

Syntax: 
report_bus_skew  [-delay_type <arg>] [-setup] [-hold] [-no_detailed_paths]
                 [-max_paths <arg>] [-nworst <arg>] [-unique_pins]
                 [-path_type <arg>] [-sort_by_slack] [-input_pins] [-no_header]
                 [-significant_digits <arg>] [-file <arg>] [-append]
                 [-return_string] [-warn_on_violation] [-rpx <arg>]
                 [-cells <args>] [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-delay_type]          Type of path delay: Values: max, min, min_max
                         Default: min_max
  [-setup]               Report max delay endpoint timing paths (equivalent 
                         to -delay_type max)
  [-hold]                Report min delay endpoint timing paths (equivalent 
                         to -delay_type min)
  [-no_detailed_paths]   Only report top level summary table
  [-max_paths]           Maximum number of paths to output per bus skew 
                         constraint: Value >=1
                         Default: 1
  [-nworst]              List up to N worst paths per endpoint per 
                         constraint: Value >=1
                         Default: 1
  [-unique_pins]         For each unique set of pins, show at most 1 path per
                         bus skew constraint
  [-path_type]           Format for path report: Values: short, full, 
                         full_clock, full_clock_expanded
                         Default: full_clock_expanded
  [-sort_by_slack]       Sort summary and per-constraint sections by slack
  [-input_pins]          Show input pins in path
  [-no_header]           Do not generate a report header
  [-significant_digits]  Number of digits to display: Range: 0 to 3
                         Default: 3
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append the results to file, don't overwrite the 
                         results file
  [-return_string]       Return report as string
  [-warn_on_violation]   Issue a critical warning when the report contains a 
                         timing violation
  [-rpx]                 Filename to output interactive results to.
  [-cells]               Run report_bus_skew on the specified hierarchical 
                         cell(s)
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Report the calculated bus skew among the signals constrained by set_bus_skew.

  The bus skew requirement applies to both the slow and fast corners. The AMD
  Vivado tool determines the earliest and the latest arrival among all the
  signals of the bus and calculates the bus skew for both the Slow and Fast
  process corner, and reports the worst case skew. Each signal of the bus is
  reported relative to a reference signal from the same bus. Note that the
  reference signal can be different for each signal of the bus, which ever
  results in the worst bus skew for that signal.

  The bus skew report can be written to the Tcl console or command shell,
  assigned to a return string, or saved to a file.

  This command returns the bus skew report as specified, or returns an error
  if it fails.

Arguments:

  -delay_type <arg> - (Optional) Specifies the type of delay to analyze when
  running the bus skew report. The valid values are min, max, min_max,
  max_rise, max_fall, min_rise, min_fall. The default setting for -delay_type
  is max.

  -setup - (Optional) Check for setup violations. This is the same as
  specifying -delay_type max.

  -hold - (Optional) Check for hold violations. This is the same as
  specifying -delay_type min.

  Tip: -setup and -hold can be specified together, which is the same as
  specifying -delay_type min_max.

  -no_detailed_paths - (Optional) By default the bus skew report includes
  detailed path analysis for the signals reported. This option disables the
  detailed path in the bus skew report.

  -max_paths <arg> - (Optional) The maximum number of paths to report per
  constraint. This is specified as a value greater than or equal to 1. By
  default the report_bus_skew command will report the single worst timing
  path per bus skew constraint.

  -nworst <arg> - (Optional) The number of timing paths per endpoint to
  output in the bus skew report. The report will return the <N> worst paths
  based on the specified value, greater than or equal to 1. The default
  setting is 1.

  -unique_pins - (Optional) Show only one timing path for each unique set of
  pins.

  -path_type <arg> - (Optional) Specify the path data to output in the bus
  skew report. The default format is full_clock_expanded. The valid path
  types are:

   *  short - Displays the startpoints and endpoints with calculated timing
      values.

   *  full - Displays the full timing path, including startpoints, through
      points, and endpoints.

   *  full_clock - Displays full clock paths in addition to the full timing
      path.

   *  full_clock_expanded - Displays full clock paths between a master clock
      and generated clocks in addition to the full_clock timing path. This is
      the default setting.

  -sort_by_slack - (Optional) Sort the Summary and Per Constraint sections of
  the report by the slack value.

  -input_pins - (Optional) Show input pins in the timing path report. For use
  with -path_type full, full_clock, and full_clock_expanded.

  -no_header - (Optional) Do not write a header to the report.

  -significant_digits <arg> - (Optional) The number of significant digits in
  the output results. The valid range is 0 to 3. The default setting is 3
  significant digits.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -warn_on_violation - (Optional) Specify that a Critical Warning will be
  generated by the AMD Vivado Design Suite when the report contains a
  violation.

  -rpx <arg> - (Optional) Specify the file name and path of the report file
  (RPX) to write. This is different from writing the report results to a file
  using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a .rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -cells <arg> - (Option) Generate the report for the specified hierarchical
  cells. The details of the report will be based on the specified cells
  rather than the whole design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the bus skew for the 32 worst signals of each
  bus skew constraints in the design, reporting 1 path per bit of the bus
  with the full timing path, including input pins, with timing values:

    report_bus_skew -max 32 -nworst 1 -path_type full -input_pins

See Also:

   *  open_report
   *  set_bus_skew


@@@COMMAND: report_carry_chains@@@
report_carry_chains

Description: 
Report carry chains

Syntax: 
report_carry_chains  [-file <arg>] [-append] [-return_string] [-cell <args>]
                     [-max_chains <arg>] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append to existing file
  [-return_string]  Return report as string
  [-cell]           Report Carry Chains only for given cell
  [-max_chains]     Number of chains for which report is to be generated
                    Default: 1
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Report the details of the carry chains used by the current open design. The
  report includes the average depth of all carry chains, as well as the
  specific depth of each carry chain reported.

  By default, the longest carry chain is reported, but the number of chains
  reported can be specified.

  The command returns the carry chain report.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the report to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -cell <arg> - (Optional) Specify a cell to use when analyzing carry chains.
  When specified, analysis is limited to only the hierarchical cell specified
  and to any sub-modules of that cell.

  -max_chains <arg> - (Optional) Number of chains to report. By default the
  longest carry chain is reported.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the 10 longest carry chains in the design:

    report_carry_chains -max_chains 10 
    


@@@COMMAND: report_cdc@@@
report_cdc

Description: 
Report the clock domain crossing (CDC) paths in the current design.

Syntax: 
report_cdc  [-from <args>] [-to <args>] [-cells <args>] [-details] [-summary]
            [-all_checks_per_endpoint] [-severity <arg>] [-no_header]
            [-show_waiver] [-no_waiver] [-waived] [-file <arg>] [-append]
            [-return_string] [-name <arg>] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-from]                     From clocks
  [-to]                       To clocks
  [-cells]                    Run report_cdc on the cells
  [-details]                  Report the detail of the CDC timing paths not 
                              safely timed
  [-summary]                  Report a summary by clocks of the CDC
  [-all_checks_per_endpoint]  Report all checks per endpoint
  [-severity]                 Report only the severity specified (Info, 
                              Warning or Critical)
  [-no_header]                Do not generate a report header
  [-show_waiver]              Show the waived paths
  [-no_waiver]                Ignore the waiver
  [-waived]                   Show only the waived paths
  [-file]                     Filename to output results to. (send output to 
                              console if -file is not used)
  [-append]                   Append the results to file, don't overwrite the
                              results file
  [-return_string]            Return report as string
  [-name]                     Output the results to GUI panel with this name
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  This report shows in detail the clock domain crossing (CDC) paths in the
  current synthesized or implemented design. The command analyzes paths
  between asynchronous clocks, or clocks with no common period, as well as
  synchronous paths ignored by the user due to false path or max delay
  datapath_only exceptions.

  By default the report_cdc command reports domain crossing between all
  clocks in the design. However, you can limit the clocks of interest using
  the -from and -to options to specify the clock domains of interest.

  The report_cdc command only reports on paths where both source and
  destination clocks are defined. You should run the check_timing command
  prior to report_cdc to ensure that there are no unconstrained clocks in the
  design. I/O paths are only covered by report_cdc when input or output delay
  constraints have been specified on the I/O ports.

  The severity of the path report could be Critical, Warning or Info
  depending on the CDC topology identified. An unknown synchronization
  topology is Critical and needs to be reviewed. A double register
  synchronizer with missing ASYNC_REG property is a Warning. Clock Enable,
  MUX, and MUX Hold CDC structures are categorized as Warnings because you
  should check to ensure that the structure is safe. Other CDC paths are of
  severity Info.

  The report_cdc command returns the following information:

   *  Severity

   *  Source Clock

   *  Destination Clock

   *  CDC Type

   *  Exceptions

   *  Endpoints

   *  Safe

   *  Unknown

   *  No ASYNC_REG property

  Important: You cannot use the set_msg_config command to configure the
  severity of messages returned by the report_cdc command. This command does
  not generate messages through the message manager.

Arguments:

  -from <args> - (Optional) Report clock domain crossing from the specified
  clock domain. Clocks can be specified by name or as returned by the
  get_clocks command.

  -to <args> - (Optional) Report clock domain crossing into the specified
  clock domain. Clocks can be specified by name or as returned by the
  get_clocks command.

  -cells <arg> - (Option) Generate the report on the specified hierarchical
  cells. The details of the report will be based on the specified cells
  rather than the whole design.

  -details - (Optional) Provide a detailed report on the timing paths. The
  detailed report lists a summary table of the CDC paths, and then lists
  details of the source/destination clock, and the CDC paths for each clock
  pair.

  -summary - (Optional) This is the default report returned for the design.
  The summary report generates a table with a message severity, the
  source/destination clock pair, safe CDC, and unknown or unrecognized CDC,
  and the number of path endpoints.

  -all_checks_per_endpoint - (Optional) Report all violations for each
  endpoint of a CDC path, instead of only reporting the most critical
  violation per endpoint. This option works with the -severity option to
  report all violations per endpoint, of the specified severity.

  -severity [ Critical | Warning | Info ] - (Optional) Report only the CDC
  paths with the specified severity level.

  -no_header - (Optional) Eliminate the report header from the results. This
  can be especially useful when returning the results as a string with
  -return_string.

  -show_waiver - (Optional) Used with the -details argument, this option adds
  the waived CDC paths to the report, and adds a "Waived" column to the
  report to indicate which paths have been waived and which have not.

  -no_waiver - (Optional) Ignore the waivers defined by the create_waivers
  command and report all CDC paths.

  -waived - (Optional) Causes only the CDC paths waived by the create_waiver
  command to be reported. This returns the actual violation rather than the
  definition of the waiver, which can be reported by the report_waivers
  command.

  -file <arg> - (Optional) Write the report into the specified file.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -name <arg> - (Optional) The name of the Clock Domain Crossing report view
  to display in the AMD Vivado IDE when run in GUI mode. If the name has
  already been used in an open report view, that view will be closed and a
  new report opened.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the clock domain crossings in the current
  design, including any waived paths, using a verbose report form, and saving
  the results to a file:

    report_cdc -details -show_waiver -file C:/Data/cdc_report.txt

  The following example reports the clock domain crossings from a clock
  specified by name, to another specified as a clock object:

    report_cdc -from clk_pin_p -to [get_clocks clk_rx_clk_core]

See Also:

   *  all_clocks
   *  create_clock
   *  create_generated_clock
   *  get_clocks
   *  report_clock_interaction
   *  report_clock_networks
   *  report_clocks
   *  report_timing
   *  report_timing_summary
   *  set_clock_groups
   *  set_false_path


@@@COMMAND: report_clock@@@

Topic                     Description
report_clock_interaction  Report on clock timing paths and unclocked registers
report_clock_networks     Report clock networks
report_clock_utilization  Report information about clock nets in design
report_clocks             Report clocks

For help on an individual topic, type 'help <topic>'. For example:
% help create_project


@@@COMMAND: report_clock_interaction@@@
report_clock_interaction

Description: 
Report on clock timing paths and unclocked registers

Syntax: 
report_clock_interaction  [-from <args>] [-to <args>] [-delay_type <arg>]
                          [-setup] [-hold] [-significant_digits <arg>]
                          [-no_header] [-file <arg>] [-append] [-name <arg>]
                          [-return_string] [-cells <args>] [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-from]                From clocks
  [-to]                  To clocks
  [-delay_type]          Type of path delay: Values: max, min, min_max
                         Default: max
  [-setup]               Consider max delay timing paths (equivalent to 
                         -delay_type max)
  [-hold]                Consider min delay timing paths (equivalent to 
                         -delay_type min)
  [-significant_digits]  Number of digits to display: Range: 0 to 3
                         Default: 2
  [-no_header]           Do not generate a report header
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append the results to file, don't overwrite the 
                         results file
  [-name]                Output the results to GUI panel with this name
  [-return_string]       Return report as string
  [-cells]               Run report_clock_interaction on the specified 
                         cell(s)
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Reports clock interactions and signals that cross clock domains to identify
  potential problems such a metastability, or data loss, or incoherency,
  where some visibility into the paths that cross clock domains is
  beneficial. This command requires an open synthesized or implemented
  design.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -from <args> - (Optional) The source clocks of the clock pairs relationship
  between which the clock interactions should be analyzed. You can specify
  clock names or clock objects.

  -to <args> - (Optional) The destination clocks of the clock pairs
  relationship between which the clock interactions should be analyzed. You
  can specify clock names or clock objects.

  -delay_type <arg> - (Optional) Specifies the type of delay to analyze when
  running the clock interaction report. The valid values are min, max, and
  min_max. The default setting for -delay_type is max.

  -setup - (Optional) Check for setup violations. This is the same as
  specifying -delay_type max.

  -hold - (Optional) Check for hold violations. This is the same as
  specifying -delay_type min.

  Note: -setup and -hold can be specified together, which is the same as
  specifying -delay_type min_max.

  -significant_digits <arg> - (Optional) The number of significant digits in
  the output results. The valid range is 0 to 3. The default setting is 2
  significant digits.

  -no_header - (Optional) Do not write a header to the report.

  -file <arg> - (Optional) Write the report into the specified file. Unless
  you also specify -append, the specified file will be overwritten if it
  already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) The name of the Clock Interaction Report view to
  display in the tool GUI mode. If the name has already been used in an open
  Report view, that view will be closed and a new report opened.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -cells <arg> - (Option) Generate the report for the specified hierarchical
  cells. The details of the report will be based on the specified cells
  rather than the whole design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example sets the model for interconnect delay, selects a
  device speed grade, and then runs report_clock_interaction:

    set_delay_model -interconnect none  
    set_speed_grade -3  
    report_clock_interaction -delay_type min_max \  
       -significant_digits 3 -name "results_1" 

  The following example returns the clock interactions, writing the report to
  the GUI, to the specified file, and returns a string which is assigned to
  the specified variable:

    set clk_int [report_clock_interaction -file clk_int.txt -name clk_int1 \  
    -return_string] 

See Also:

   *  create_clock
   *  create_generated_clock
   *  report_clocks
   *  set_delay_model
   *  set_speed_grade


@@@COMMAND: report_clock_networks@@@
report_clock_networks

Description: 
Report clock networks

Syntax: 
report_clock_networks  [-file <arg>] [-append] [-name <arg>] [-return_string]
                       [-endpoints_only] [-levels <arg>] [-expand_buckets]
                       [-suppress_endpoints <arg>] [-clocks <args>]
                       [-unconstrained_roots <args>] [-quiet] [-verbose]

Usage: 
  Name                    Description
  -----------------------------------
  [-file]                 Filename to output results to. (send output to 
                          console if -file is not used)
  [-append]               Append the results to file, don't overwrite the 
                          results file
  [-name]                 Output the results to GUI panel with this name
  [-return_string]        Return report as string
  [-endpoints_only]       Dump clock network endpoints only; Not to be used 
                          in conjunction with -levels option
  [-levels]               Expands clock network upto n levels of instances, 
                          Value: n > 0; Not to be used in conjunction with 
                          -endpoints_only option
                          Default: 0
  [-expand_buckets]       Expands bucketed endpoints and displays pins; By 
                          default, endpoint pins are bucketed by celltype; 
                          This option only works in conjunction with -levels 
                          option or -endpoints_only option
  [-suppress_endpoints]   Suppress paths to clock or nonclock endpoint pins; 
                          Values: clock, nonclock
  [-clocks]               List of clocks for clock network dump; if not 
                          specified, all clock networks are dumped
  [-unconstrained_roots]  List of unconstrained root pins/ports for clock 
                          network dump; if not specified, all unconstrained 
                          clock roots are dumped
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Reports the network fanout of each clock net in the open synthesized or
  implemented design. The graphical form of the report, returned when the
  -name argument is specified, provides a hierarchical tree view of the clock
  network.

  The default report simply specifies the clock net names and the instance
  pins that are the startpoint of the clock.

  The report is returned to the standard output unless the -file,
  -return_string, or -name arguments are specified.

Arguments:

  -file <arg> - (Optional) Write the clock network report into the specified
  file. The specified file will be overwritten if one already exists, unless
  -append is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results to output to the
  GUI.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  Note: This argument cannot be used with the -file option.

  -endpoints_only - (Optional) Report the clock network endpoints; bucketed
  by cell type, and sorted by clock pins and non-clock pins. This option
  cannot be specified with the -levels option.

  -levels <arg> - (Optional) Expands the clock network through the specified
  levels of instances. The default value is 0. The specified value can be
  greater than 0. This reports the clock path to the path endpoints if enough
  levels are specified. Path endpoints are bucketed by cell type, and sorted
  by clock pins and non-clock pins. This option cannot be used with the
  -endpoints_only option.

  -expand_buckets - (Optional) Expand the clock network report to expand all
  of the endpoints buckets returned by the -endpoints_only or -levels
  options, to report all of the clock endpoints.

  -suppress_endpoints [ clock | nonclock ] - (Optional) Suppress reported
  paths from clock root to clock pins or non-clock endpoint pins. This option
  eliminates either clock or non-clock pins from the clock network report.

  -clocks <args> - (Optional) Specify the clock objects to include in the
  clock network report. When not specified, the report includes all clocks.

  -unconstrained_roots <args> - (Optional) For UltraScale devices, and device
  architectures with clock roots, specify the list of unconstrained clock
  root pins or ports to include in the clock network report. If this option
  is not specified, all unconstrained clock roots are reported.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the clock network names and startpoints to
  the specified file:

    report_clock_networks -file C:/Data/ClkNets.txt 
    

  The following example reports the endpoints of the specified clock:

    report_clock_networks -endpoints_only -clocks wbClk 
    

See Also:

   *  create_clock
   *  delete_clock_network_results
   *  get_clocks


@@@COMMAND: report_clock_utilization@@@
report_clock_utilization

Description: 
Report information about clock nets in design

Syntax: 
report_clock_utilization  [-file <arg>] [-append] [-write_xdc <arg>]
                          [-cells <args>] [-clock_roots_only] [-return_string]
                          [-name <arg>] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name                 Description
  --------------------------------
  [-file]              Filename to output results to. (send output to console
                       if -file is not used)
  [-append]            Append to existing file
  [-write_xdc]         File to output clock constraint. File name must be 
                       given.
  [-cells]             Cells/bel_instances for which to report clock 
                       utilization
  [-clock_roots_only]  Report only the Clock Root Assignments
  [-return_string]     Return report as string
  [-name]              Output the results to GUI panel with this name
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Returns information related to clock nets in the design and clock resource
  usage on the target device.

  The generated clock utilization report can generate placement constraints
  for the currently placed clock resources. You can use these constraints to
  preserve the placement of clock resources for future iterations of the
  design, by using the -write_xdc option.

  Important: For AMD Ultrascale devices, if the intent is to recreate the
  current clock placement then use the BUFGCE LOC properties from the written
  XDC file. However, if the intent is to use the constraints as a starting
  point for the clocking architecture, while allowing the AMD Vivado Design
  Suite some flexibility in placing clock resources, use the equivalent
  CLOCK_REGION properties instead of the BUFGCE LOC properties.

  By default the report is written to the Tcl console or STD output. However,
  the results can also be written to a file or returned as a string if
  desired.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -write_xdc <filename> - (Optional) Output XDC location constraints for the
  various clock resources to the specified filename. If the path is not
  specified as part of the file name the file will be created in the current
  working directory, or the directory from which the tool was launched.

  -cells <arg> - (Option) The details of the report will be based on the
  specified cells rather than the whole design.

  -clock_roots_only - (Optional) For UltraScale, and device architectures
  with clock roots, limit the report output to cover just the clock root
  assignments for each clock net.

  Note: This option is not supported for 7 series devices.

  -return_string - (Optional) Direct the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  -name <arg> - (Optional) The name of the Clock Utilization report view to
  display in the AMD Vivado IDE when run in GUI mode. If the name has already
  been used in an open Report view, that view will be closed and a new report
  opened.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns information about the clock nets in the
  design and the clock resources utilized on the target device, and writes it
  to the specified file:

    report_clock_utilization -file C:/Data/FPGA_Design/clock_util.txt

  The following example reports the clock nets and clock resource utilization
  to the standard output, but writes the XDC location constraints to the
  specified file:

    report_clock_utilization -write_xdc clock_util_xdc.txt

  Note: Because the path is not specified as part of the XDC file name, the
  file will be created in the current working directory, or the directory
  from which the tool was launched.

See Also:

   *  create_clock
   *  create_generated_clock


@@@COMMAND: report_clocks@@@
report_clocks

Description: 
Report clocks

Syntax: 
report_clocks  [-file <arg>] [-append] [-return_string] [-quiet] [-verbose]
               [<clocks>]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  [<clocks>]        List of clocks
                    Default: *

Categories: 
Report, Timing

Description:

  Returns a table showing all the clocks in a design, including propagated
  clocks, generated and auto-generated clocks, virtual clocks, and inverted
  clocks in the current synthesized or implemented design. More detailed
  information about each clock net can be obtained with the
  report_clock_utilization command.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <clocks> - (Optional) The clocks to match against the specified patterns.
  The default pattern is the wildcard `*` which returns all clocks in the
  design. More than one pattern can be specified to find multiple clocks
  based on different search criteria.

Examples:

  The following example returns the name, period, waveform, and sources of
  the clocks in the current design:

    report_clocks -file C:/Data/FPGA_Design/clock_out.txt  
    

  The following example reports the clocks in the design with "Clock" in the
  name:

    report_clocks *Clock* 
    

See Also:

   *  create_clock
   *  create_generated_clock
   *  report_clock_utilization


@@@COMMAND: report_compile_order@@@
report_compile_order

Description: 
Report the compile order by analyzing files and constructing a hierarchy.

Syntax: 
report_compile_order  [-fileset <arg>] [-missing_instances] [-constraints]
                      [-sources] [-used_in <arg>] [-file <arg>] [-append]
                      [-of_objects <args>] [-quiet] [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-fileset]            FileSet to parse to determine compile order
  [-missing_instances]  Report missing instances in the design hierarchy
  [-constraints]        Report the constraint compile order
  [-sources]            Report the source compile order
  [-used_in]            Specify the used in filter.
  [-file]               Filename to output results to.
  [-append]             Append output to existing file
  [-of_objects]         Get 'file' objects of these types: 'file fileset ip 
                        reconfig_module'.
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Project

Description:

  Report the compilation order of files in the various active filesets:
  constraints, design sources, and simulation sources.

  This command returns the order of file processing for synthesis,
  implementation, and simulation. The report can be limited by specifying the
  fileset of interest with -fileset, or using the -constraints option or
  -sources option.

  The -used_in option lets you report the processing order of files used in
  Synthesis, Simulation, or one of the implementation steps, according to the
  value of the USED_IN property.

  By default the report is returned to the Tcl console, or standard output,
  but it can also be written to a file.

Arguments:

  -of_objects <args> - (Optional) Report the files that are associated with
  the specified filesets, sub-designs, or reconfiguration modules. The
  default is to search all filesets. When -compile_order and -used_in are
  specified, the -of_objects switch will only accept a single fileset, or a
  single sub-design such as an IP core, Block Design, or DSP design. A
  sub-design is also known as a composite file.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -fileset <arg> - (Optional) Limit the report to the specified fileset.

  -missing_instances - (Optional) Return the list of cells that are missing
  source files in the current or specified fileset.

  -constraints - (Optional) Report the compilation order of the constraint
  files in the current design, including constraints for any IP in the
  design.

  -sources - (Optional) Report the compilation order of files found in the
  sources_1 fileset of design sources.

  -used_in <arg> - (Optional) Accepts one of the enumerated values of the
  USED_IN property for files, and returns files matching the specified value.
  Valid values for this option include the following: synthesis, simulation,
  or implementation. Refer to the Vivado Design Suite Properties Reference
  Guide (UG912) for information on the USED_IN property and its supported
  values.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the compilation order of the active filesets
  in the current design:

    report_compile_order 
    

  The following returns a list of cells with missing source files in the
  current design, and appends the report to the specified file:

    report_compile_order -missing_instances -file C:/Data/report1.txt -append 
    

  The following command lists the compile order of the files in the active
  constraint set:

    report_compile_order -constraints 
    

See Also:

   *  current_fileset
   *  get_files
   *  update_compile_order


@@@COMMAND: report_config_implementation@@@
report_config_implementation

Description: 
Report Implementation flow Config param

Syntax: 
report_config_implementation  [-file <arg>] [-force] [-append] [-return_string]
                              [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. Send output to console if 
                    -file is not used.
  [-force]          Overwrite existing file
  [-append]         Append to existing file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Report the user-definable implementation flow configuration parameters for
  the implementation processes. These are parameters that can be modified
  using the config_implementation command.

  This command returns the selected report or the name of the output file, or
  returns an error if it fails.

Arguments:

  -file <arg> - (Optional) Write the configuration parameters report to the
  specified file. The specified file will not be overwritten if one already
  exists, unless -force is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -force - (Optional) Overwrite the specified file if it already exists.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  This example reports the user-configurable implementation parameters to the
  Tcl console:

    report_config_implementation

See Also:

   *  config_implementation


@@@COMMAND: report_config_inter_slr_muxing@@@
report_config_inter_slr_muxing

Description: 
Get information about all parameters

Syntax: 
report_config_inter_slr_muxing  [-file <arg>] [-append] [-force]
                                [-return_string] [-quiet] [-verbose]

Returns: 
param report

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append to existing file
  [-force]          Overwrite existing file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Tools, Place

Description:

  Report the user-definable inter-SLR muxing flow configuration parameters
  for the implementation processes. These are parameters that can be modified
  using the config_inter_slr_muxing command. This command returns the
  selected report or the name of the output file, or returns an error if it
  fails.

Arguments:

  -file <arg> - (Optional) Use this option to write the configuration
  parameters report to the specified file. The -file argument does not
  overwrite the existing file, unless -force is specified.

  Note: If the path is not specified as part of the file name, the file is
  saved into the current working directory, or the directory from which the
  tool was launched.

  -force - (Optional) Overwrite the specified file if it already exists.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string is captured by a variable definition
  and parsed or otherwise processed.

  Note: This argument does not function with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  This example reports the user-configurable inter-SLR muxing flow parameters
  to the Tcl console:

    report_inter_slr_muxing -file config.rpt

See Also:

   *  config_inter_slr_muxing


@@@COMMAND: report_config_timing@@@
report_config_timing

Description: 
Report settings affecting timing analysis

Syntax: 
report_config_timing  [-file <arg>] [-append] [-name <arg>] [-return_string]
                      [-all] [-no_header] [-rpx <arg>] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Output the results to file
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-name]           Output the results to GUI panel with this name
  [-return_string]  Return report as string
  [-all]            Report all configuration settings (by default, only the 
                    typically important settings are reported
  [-no_header]      Do not generate a report header
  [-rpx]            Filename to output interactive results to.
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Report the configuration of timing constraints of the current design.

  By default the report is abbreviated, containing only a few key timing
  constraints. Use the -all argument to return all timing related
  configuration.

Arguments:

  -file <arg> - (Optional) Write the timing constraints configuration report
  into the specified file. The specified file will be overwritten if one
  already exists, unless -append is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) The name of the results to output to the GUI.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -all - (Optional) Reports the state of all timing related attributes and
  constraints in the design. By default, only a limited set of important
  timing attributes is reported.

  -no_header - (Optional) Disables the report header. By default the report
  includes a header that lists:

   *  Report Type - timer_configuration.

   *  Design - The top module of the design.

   *  Part - The device, package, and speed grade of the target part.

   *  Version - The version of software used to create the report

   *  Date - The date of the report.

   *  Command - The command options used to create the report.

  -rpx <arg> - (Optional) Specify the file name and path of the report file
  (RPX) to write. This is different from writing the report results to a file
  using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  AMD Vivado Design Suite using the open_report command. You should add a
  .rpx file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the current timing configuration, returns the
  information as a string, and sets that string into the specified Tcl
  variable:

    set timeConfig [report_config_timing -all -no_header -return_string]
    puts $timeConfig

See Also:

   *  delete_timing_results


@@@COMMAND: report_constant_paths@@@
report_constant_paths

Description: 
Report constant paths

Syntax: 
report_constant_paths  [-max_paths_per_endpoint <arg>] [-column_style <arg>]
                       [-file <arg>] [-append] [-no_header]
                       [-of_objects <args>] [-return_string] [-quiet]
                       [-verbose] [<objects>]

Usage: 
  Name                       Description
  --------------------------------------
  [-max_paths_per_endpoint]  Number of branches per endpoint to report traces
                             for
                             Default: 1
  [-column_style]            Style for path report columns: Values: 
                             variable_width, anchor_left, fixed_width
                             Default: variable_width
  [-file]                    Filename to output results to. (send output to 
                             console if -file is not used)
  [-append]                  Append the results to file, don't overwrite the 
                             results file
  [-no_header]               Do not generate a report header
  [-of_objects]              Report constant paths for these constant paths
  [-return_string]           Return report as string
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  [<objects>]                Endpoint pins or instances

Categories: 
Report, Timing

Description:

  Reports constant path objects that meet the specified criteria.

Arguments:

  -max_paths_per_endpoint - Specify maximum number of paths to report per
  constant endpoint object.

  Note: By default, 1 path per endpoint has been reported.

  -column_style [ variable_width | anchor_left | fixed_width ] - (Optional)
  Specify the format of the timing path portion of the timing report output.

  Note: The default format is anchor_left.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  -no_header - (Optional) Will not print header which contains information
  about tool, system, device, and design on top of the report.

  -of_objects - (Optional) Report constant paths for specified paths. For
  object retrieving get_constant_paths command can be used.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  <objects> - (Required) Design cell(s) or pin(s) object list to report.

Examples:

  Report constant paths of the specified pin.

    report_constant_paths [get_pins cpuEngine/or1200_cpu/or1200_sprs/esr/D]

  Output a report into the specified file with fixed column style and in
  append mode.

    report_constant_paths [get_pins cpuEngine/or1200_cpu/or1200_sprs/esr/D] -file filename.txt -append -column_style fixed

  Report constant paths of the specified cell.

    report_constant_paths [get_cells cpuEngine/or1200_cpu/or1200_sprs/esr]

See Also:

   *  get_constant_paths


@@@COMMAND: report_control_sets@@@
report_control_sets

Description: 
Report the unique control sets in design

Syntax: 
report_control_sets  [-file <arg>] [-append] [-hierarchical]
                     [-hierarchical_depth <arg>] [-sort_by <args>]
                     [-cells <args>] [-return_string] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name                   Description
  ----------------------------------
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append to existing file
  [-hierarchical]        Generates text-based hierarchical report.
  [-hierarchical_depth]  Specifies the depth level for textual hierarchical 
                         report
                         Default: 0
  [-sort_by]             Sort criterion: can be used only when -verbose is 
                         used. Options are clk, clkEn, set. Ex: 
                         report_control_sets -verbose -sort_by {clk clkEn}
  [-cells]               Cells/bel_instances for which to report control sets
  [-return_string]       Return report as string
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report

Description:

  Report the control sets of the current design.

  Control sets are the list of control signals (Clock, CE, SR) for SLICE
  registers and LUTs. Registers must belong to the same control set in order
  to be packed into the same device resource. Registers without a control
  signal cannot be packed into devices with registers having control signals.
  A high number of control sets can cause difficulty fitting the device and
  can cause routing congestion and timing issues.

  By default the report_control_sets command returns an abbreviated report
  indicating only the number of unique control sets. However, the -verbose
  arguments returns a detailed report of all control sets, for either the
  whole design or for the specified cells.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -hierarchical - (Optional) Generate a hierarchical report of control sets
  in the design.

  -hierarchical_depth <args> - (Optional) Specifies the depth of the
  hierarchy to report when the -hierarchical argument is enabled. The default
  value is 0, which reports the full design hierarchy.

  -sort_by <args> - (Optional) Sort the detailed report generated by the
  -verbose argument according to the specified criteria. Valid sort criteria
  are: clk, clkEn, and set.

  Note: The -sort_by argument is used with -verbose.

  -cells <args> - (Optional) Report control sets for the specified cell
  objects.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the control sets of the current design,
  sorted by the clk and clkEn signals:

    report_control_sets -verbose -sort_by {clk clkEn} 
    

  The following example reports the control sets of the specified cells,
  sorted by clk and set:

    report_control_sets -verbose -sort_by {clk set} -cells [get_cells usb*] 
    


@@@COMMAND: report_datasheet@@@
report_datasheet

Description: 
Report data sheet

Syntax: 
report_datasheet  [-significant_digits <arg>] [-file <arg>] [-append]
                  [-return_string] [-sort_by <arg>] [-name <arg>]
                  [-show_all_corners] [-show_oe_timing] [-group <args>]
                  [-rpx <arg>] [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-significant_digits]  Number of digits to display: Range: 0 to 3
                         Default: 3
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append the results to file, don't overwrite the 
                         results file
  [-return_string]       Return report as string
  [-sort_by]             Sorting order: Values: clock, port
                         Default: clock
  [-name]                Output the results to GUI panel with this name
  [-show_all_corners]    Provide all corners
  [-show_oe_timing]      Show output enable (tristate) timing
  [-group]               List of output ports for skew calculation
  [-rpx]                 Filename to output interactive results to.
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Create a "datasheet" report for the current design. Reports setup and hold
  times of input I/Os in relation to clocks, max/min delays from clocks to
  output pads, skews of input/ output buses.

  The datasheet report has the timing characteristics of a design at the
  package balls/pads, including the package trace flight times. To disable
  flight times use the following command:

    config_timing_analysis -disable_flight_delays true

  The source synchronous output skew can be automatically calculated by the
  AMD Vivado Design Suite by using the -group switch for report_datasheet and
  grouping together all the ports of the data bus including the sourced clock
  output port. The sourced clock output port must be first in the group list.
  For example:

    report_datasheet -file output_filename -group [get_ports \
       {clock_port data_bit[0] data_bit[1] data_bit[2]}]

Arguments:

  -significant_digits <arg> - (Optional) Number of digits to display from 0
  to 3. The default is 3.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -sort_by [ port | clock ] - (Optional) Sorting order. Valid values are
  clock or port. The default is to sort the report by clocks.

  -name <arg> - (Optional) The name of the Datasheet report view to display
  in the Vivado IDE when run in GUI mode. If the name has already been used
  in an open Report view, that view will be closed and a new report opened.

  -show_all_corners - (Optional) Report all process corners.

  -show_oe_timing - (Optional) Report max and min values for paths using
  output enable, showing both ON and OFF states.

  -group [get_ports {xxx1 xxx2 ... xxxN}] - (Optional) Allows you to define
  your own custom group of ports for analysis. This option requires a list of
  port objects as returned by the get_ports command. The first port in the
  list will be used as the reference for skew calculation. In most cases,
  this will be a clock port of a source synchronous output interface.
  Multiple groups can be specified, each with its own reference clock port.
  When -group is not specified the timer automatically finds the group of
  output ports based on the launching clock, and reports skew based on that
  clock.

  -rpx <arg> - (Optional) Specify the file name and path of the report file
  (RPX) to write. This is different from writing the report results to a file
  using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a . rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the datasheet sorted by ports, for all
  process corners:

    report_datasheet -sort_by port -show_all_corners

  The following example reports the datasheet with the skew calculation for
  two groups of ports, with the first port of each group providing the
  reference for the skew calculation for that group. In this example, CLK0OUT
  is the forwarded clock for DATA0-4 and CLK1OUT is the forwarded clock for
  DATA4-7:

    report_datasheet -file ds.txt -group [get_ports \
       {CLK0OUT DATA0 DATA1 DATA2 DATA3}] \
       -group [get_ports {CLK1OUT DATA4 DATA5 DATA6 DATA7}]

See Also:

   *  get_ports


@@@COMMAND: report_debug_core@@@
report_debug_core

Description: 
Report details on debug cores

Syntax: 
report_debug_core  [-file <arg>] [-append] [-return_string] [-full_path]
                   [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-return_string]  Return report as a string
  [-full_path]      Display full hierarchical net path in report
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report, Debug

Description:

  Writes a report of the various AMD Vivado device tool debug cores in the
  current project, and the parameters of those cores. Debug cores can be
  added to a project using the create_debug_core command.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Return report as a string. This argument can
  not be used with the -file argument.

  -full_path - (Optional) Display the net names using the full hierarchical
  path of the net.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example writes the debug core report to the specified file
  name at the specified location:

    report_debug_core -file C:/Data/FPGA_Design/project_1_cores.txt

See Also:

   *  create_debug_core


@@@COMMAND: report_delay_model@@@
report_delay_model

Description: 
Report settings affecting timing analysis

Syntax: 
report_delay_model  [-file <arg>] [-append] [-return_string] [-all] [-quiet]
                    [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Output the results to file
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-return_string]  return report as string
  [-all]            report all configuration settings (by default, only the 
                    typically important settings are reported
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  This command reports the configuration setting that affect delay
  calculation for the current design. The command requires an open
  synthesized or implemented design. Delay configuration settings include
  delay models used for interconnect delays and cell delays.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -all - (Optional) Report all configuration settings affecting the delay
  calculation for the design. By default, only typically important settings
  are reported.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example shows all of the delay model configuration settings
  for the current design:

    report_delay_model -all 
    

See Also:

   *  report_timing
   *  report_timing_summary


@@@COMMAND: report_design_analysis@@@
report_design_analysis

Description: 
Report Design Analysis

Syntax: 
report_design_analysis  [-file <arg>] [-csv <arg>] [-append] [-return_string]
                        [-complexity] [-cells <args>] [-bounding_boxes <args>]
                        [-hierarchical_depth <arg>] [-rent_greater_than <arg>]
                        [-instances_greater_than <arg>]
                        [-instances_lesser_than <arg>]
                        [-av_fanout_greater_than <arg>] [-congestion]
                        [-min_congestion_level <arg>] [-timing] [-setup]
                        [-hold] [-show_all] [-full_logical_pin]
                        [-routed_vs_estimated] [-logic_level_distribution]
                        [-logic_level_dist_paths <arg>] [-min_level <arg>]
                        [-max_level <arg>] [-return_timing_paths]
                        [-of_timing_paths <args>] [-max_paths <arg>] [-extend]
                        [-routes] [-end_point_clocks <args>]
                        [-logic_levels <arg>] [-qor_summary] [-json <arg>]
                        [-name <arg>] [-no_pr_attribute] [-quiet] [-verbose]

Usage: 
  Name                         Description
  ----------------------------------------
  [-file]                      Filename to output results to. (send output to
                               console if -file is not used)
  [-csv]                       Write detailed tables to the CSV filename 
                               specified
  [-append]                    Append the results to file, don't overwrite 
                               the results file
  [-return_string]             Return report as string
  [-complexity]                Finds the interconnection complexity (Rent) of
                               the design
  [-cells]                     Report analysis information for given list of 
                               cells
  [-bounding_boxes]            Report interconnection complexity (Rent) for 
                               given list of bounding boxes
                               Default: empty
  [-hierarchical_depth]        Hierarchical depth option for -complexity
                               Default: 1
  [-rent_greater_than]         Threshold for Rent for a module to report 
                               complexity
                               Default: 0.6
  [-instances_greater_than]    Threshold for minimum number of instances for 
                               a module to report complexity
                               Default: 15000
  [-instances_lesser_than]     Threshold for maximum number of instances for 
                               a module to report complexity
                               Default: 1000000
  [-av_fanout_greater_than]    Threshold for minimum average fanout for a 
                               module to report complexity
                               Default: 3.0
  [-congestion]                Reports congestion of the design
  [-min_congestion_level]      Minimum congestion level for reporting router 
                               congestion, integer value between 3 and 8
                               Default: 5
  [-timing]                    Reports characteristics of critical path
  [-setup]                     Reports characteristics of critical SETUP path
  [-hold]                      Reports characteristics of critical HOLD path
  [-show_all]                  Adds more characteristics to the timing 
                               characteristics report
  [-full_logical_pin]          Display hierarchical pin names in the report
  [-routed_vs_estimated]       Reports relevant characteristics of critical 
                               path in estimated mode
  [-logic_level_distribution]  Reports logic level distribution
  [-logic_level_dist_paths]    Number of critical paths for analyzing logic 
                               level distribution used along with 
                               -logic_level_distribution
                               Default: 1000
  [-min_level]                 Group all paths with logic levels 
                               <min_level-1> and below into a single bin, 
                               value passed must be at least 1
                               Default: Not Used
  [-max_level]                 Group all paths with logic levels 
                               <max_level+1> and above into a single bin, 
                               where <max_level> must be the greater of zero 
                               or <min_level + 1> if -min_level is used
                               Default: Not Used
  [-return_timing_paths]       Returns timing path objects
  [-of_timing_paths]           Reports characteristics for these paths
  [-max_paths]                 Number of paths to consider for -timing option
                               Default: 1
  [-extend]                    Reports characteristics of worst path before 
                               the start point of critical path and worst 
                               path after the end of the critical path
  [-routes]                    Reports distribution with respect to Routes 
                               instead of logic levels
  [-end_point_clocks]          Returns timing path objects filtered by 
                               endpoint clock names as passed to this option
  [-logic_levels]              Returns timing path objects bucketed under the
                               bin name as passed to this option
  [-qor_summary]               Design Flow summary
  [-json]                      Write the report in JSON format to the 
                               filename specified
  [-name]                      Output the results to GUI panel with this name
  [-no_pr_attribute]           Report without PR attributes
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution

Categories: 
Report, Timing

Description:

  Provides timing data on critical path characteristics and complexity of the
  design to help identify and analyze problem areas that are subject to
  timing closure issues and routing congestion. For more information on this
  command refer to the Vivado Design Suite User Guide: Design Analysis and
  Closure Techniques (UG906).

  The report_design_analysis command currently has three modes of operation:

   *  Timing: reports timing and physical characteristics of timing paths.

   *  Complexity: analyzes the design for routing complexity and LUT
      distribution.

   *  Congestion: analyzes the design for routing congestion.

  In timing mode, the command calls the static timing engine to analyze
  critical path data and report the characteristics of each path. The path
  characteristics include important elements such as clock skew, placement
  obstacles such as crossing clock regions, and physical constraints such as
  Pblocks and LOCs. The list of paths can be extended to include a number of
  top critical paths or specific paths can be analyzed by providing timing
  path objects to the command. The reports can also be extended to show the
  paths preceding and following the critical path.

  The following are definitions of the characteristics of the paths reported
  in timing mode:

   *  PATH_TYPE: either SETUP or HOLD.

   *  REQUIREMENT: delay requirement from static timing analysis.

   *  PATH DELAY: data path delay from static timing analysis.

   *  LOGIC DELAY: the portion of the PATH DELAY attributed to logic on the
      path.

   *  NET DELAY: the portion of the PATH DELAY attributed to wires on the
      path. Note that the net delay is based on the estimated or actual
      routing delay as specified by the set_delay_model command.

   *  CLOCK SKEW: difference in delay between the source and destination
      clocks.

   *  SLACK: path timing slack from static timing analysis.

   *  CLOCK RELATIONSHIP: SAME_CLOCK or RELATED_CLOCK. Helps identify
      potentially missed inter-clock constraints.

   *  TIMING EXCEPTION: the timing exceptions, like set_false_path or
      set_multicycle_path, that are assigned to the path.

   *  LOGIC LEVELS: number of logic levels between the source and
      destination, reported when the -logic_level_distribution is specified.

   *  LOGICAL PATH: shorthand notation showing the ordered list of cells in
      the path including the start point and end point.

      Note: For Partial Reconfiguration (PR) designs, the logical path is
      appended to identify the cell as belonging to a reconfigurable
      partition (:RP#), or to the static region of the design (:S). A
      translation table at the bottom of the report maps :RP# to a specific
      reconfigurable partition.

   *  START POINT CLOCK: the clock domain of the start point of the path.

   *  END POINT CLOCK: the clock domain of the end point of the path.

   *  START POINT PIN PRIMITIVE: the library cell and pin of the start point
      of the path.

   *  END POINT PIN PRIMITIVE: the library cell and pin of the end point of
      the path.

   *  START POINT PIN: the instance and pin name of the start point.

   *  END POINT PIN: the instance and pin name of the end point.

   *  COMB DSP: number of combinational DSP blocks in the path.

   *  DOA REG: the number of DOA registers on the path.

   *  DOB REG: the number of DOB registers on the path.

   *  MREG: the number of MREG registers on the path.

   *  PREG: the number of PREG registers on the path.

   *  Block RAM CROSSINGS: number of block RAM columns traversed by the path.

   *  DSP CROSSINGS: number of DSP block columns traversed by the path.

   *  IO CROSSINGS: number of IO columns traversed by the path.

   *  CONFIG CROSSINGS: the number of CONFIG tile traversed by the path.

   *  SLR CROSSINGS: number of SLRs traversed by the path.

   *  BOUNDING BOX SIZE: the rectangular area covered by the critical path,
      measured in RPM GRID units which are based on the device RPM_X
      (horizontal) and RPM_Y (vertical) site coordinates. Because different
      sites (slices, DSP, block RAM, etc.) have different sizes, each site
      has unique RPM_X and RPM_Y properties to pinpoint its location within
      the device.

   *  CLOCK REGION DISTANCE: An ordered pair showing the number of clock
      regions traversed in the horizontal and vertical directions from path
      startpoint to endpoint. Minimizing clock region crossings can improve
      critical path delay and clock skew.

       -  Example 1: A critical path begins in clock region X1Y1 and ends in
          clock region X3Y3, resulting in a CLOCK_REGION_DISTANCE of (2, 2).

       -  Example 2: a critical path begins in clock region X2Y1 and ends in
          X0Y0, resulting in a CLOCK_REGION_DISTANCE of (-2, -1).

   *  PBLOCKS: number of Pblocks traversed by the path.

   *  HIGH FANOUT: the greatest fanout of a net in the path.

   *  CUMULATIVE FANOUT: the total fanout on the path.

   *  DONT TOUCH: number of cells in the path with DONT_TOUCH value of TRUE.
      A value of TRUE for DONT_TOUCH on a cell prevents it from being
      optimized, disabling potentially beneficial optimizations such as
      phys_opt_design replication.

   *  MARK DEBUG: number of cells in the path with a MARK_DEBUG value of
      TRUE. By default a net with MARK_DEBUG has DONT_TOUCH set to TRUE which
      disables optimization on that net. The DONT_TOUCH can be set to FALSE
      to enable optimization and potentially improve timing.

   *  FIXED LOC: number of placed cells in the path with an IS_LOC_FIXED
      value of TRUE. FIXED cells cannot be moved by either place_design or
      phys_opt_design.

   *  FIXED ROUTE: number of routed nets in the path with IS_ROUTE_FIXED
      value of TRUE. FIXED routes cannot be ripped up and rerouted by
      route_design.

   *  HOLD FIX DETOUR: the amount of routing detour provided to fix hold
      timing to post-route critical paths.

   *  COMBINED LUT PAIRS: number of LUT cells in the path that have been
      combined with other LUT cells into the same LUT BEL to use both the O6
      and O5 outputs. LUT cells that have been combined with LUTNM, HLUTNM,
      or SOFT_HLUTNM can be uncombined and re-placed by setting their HLUTNM
      properties to an empty string. This allows exploring LUT combining and
      un-combining effects on timing and congestion reduction.

   *  The following fields are reported for Partial Reconfiguration (PR)
      designs. Refer to the Vivado Design Suite User Guide: Dynamic Function
      eXchange (UG909) for more information.

       -  PR PATH TYPE: Specifies the path as being completely in the static
          region, completely in a reconfigurable partition (RP), or as
          crossing the boundary between regions. The delay elements for the
          timing path are also broken down between the regions .

       -  STATIC CROSSINGS: Reports the number of times a reconfigurable
          partition (RP) path crosses into the static region.

       -  RP CROSSINGS: Reports the number of times a static region path
          crosses into a reconfigurable partition (RP) region.

       -  BOUNDARY FANOUT: Reports the fanout of a boundary path at the PPLOC
          to its downstream loads .

  In complexity mode, the command performs complexity analysis of the current
  design and reports the Rent Exponent which is a measure of complexity, the
  Average Fanout, and a Primitive Histogram. The analysis can be performed on
  the top-level design or recursively on hierarchical levels of the design,
  with the ability to control the level of recursion.

  The following are definitions of the characteristics reported in complexity
  mode:

   *  Rent: The Rent exponent, as defined by Rent's rule, is a measure of
      interconnect complexity in a netlist. Higher Rent indicates higher
      complexity and greater difficulty to avoid routing congestion. Most
      designs have a Rent in the 0.5 to 0.6 range. A Rent value of 0.65 is
      considered high and 0.85 is considered very high.

   *  Average Fanout: This is the average fanout of a logic cell in the
      design, excluding global buffers. Higher average fanout may result in
      more difficulty for placement and routing. While absolute values may
      not predict difficultly, relative values between designs or between
      hierarchical levels may be more indicative.

   *  Primitive Histogram: This displays the totals of certain primitive
      types used in the design. A high Rent may be caused by a predominance
      of LUT6 cells. If there are many more LUT6 than other size LUTs, the
      Rent may be reduced by adopting a more area-focused synthesis strategy.

  Tip: The complexity characteristics may not always predict routing
  congestion but can be used to pinpoint problem areas when congestion issues
  occur.

  In congestion mode the command analyzes the design and provides metrics to
  help you alleviate routing congestion. Using the results from the
  report_design_analysis command, you can change placement to avoid specific
  routing hot spots.

  The command returns the file created, or returns the analysis results to
  the Tcl console, or returns an error if it fails.

Arguments:

  -file <arg> - (Optional) Write the analysis results into the specified
  file. The specified file will be overwritten if one already exists unless
  -append is also specified.

  -csv <arg> - (Optional) Write a CSV file that shows the timing paths and
  analysis features. The specified file will be overwritten if one already
  exists.

  Note: If the path is not specified as part of the file name for either
  -file or -csv, the file will be written into the current working directory
  that can be identified using the [pwd] Tcl command.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -complexity - (Optional) Perform complexity analysis of the design and
  report the Rent Exponent, Average Fanout, and Primitive Histogram.

  Tip: The -complexity option can result in a high compile time for large
  designs. Use with -cells, -hierarchical_depth, -instances_greater_than,
  -instances_lesser_than, and -av_fanout_greater_than to lower compile time.

  -cells <arg> - (Optional) Specify the cells to use when reporting design
  analysis. Cells should be hierarchical modules of the design. Use this
  option to specify a cell other than the top cell for analysis. Cells can be
  specified by name, or as objects returned by the get_cells command. Cannot
  be used with -hierarchical_depth.

  -bounding_boxes <args> - (Optional) Specify regions of the device to
  analyze for complexity. This limits the area and reduces the time required
  for analysis. The argument is specified as a pair of device tiles
  representing the "lower-left:upper-right" corners of the bounding box.
  Multiple windows can be specified as follows:

    -bounding_boxes { "CLE_M_X21Y239:CLEL_R_X28Y254" \
       "CLEL_R_X18Y171:CLE_M_X26Y186" }

  Important: A space is required between the `{` and the start of the
  bounding box as shown above.

  -hierarchical_depth <arg> - (Optional) Specify that the complexity analysis
  should be performed on the hierarchy of the design, rather than just the
  top-level of the design, or the specified cell. In this case, the hierarchy
  of the design or cell will be examined to the specified depth. The default
  setting is 1. Requires the -complexity option.

  -rent_greater_than <arg> - (Optional) Specify the minimum value of Rent to
  be reported. Only valid when used with -complexity. Default value is 0.6.

  -instances_greater_than <arg> - (Optional) Specify the minimum threshold
  for the number of instances in a hierarchy in order to perform a Rent
  calculation. Small modules are typically good to ignore as they do rarely
  translate to congestion. Higher values lower compile time. Only valid when
  used with -complexity. Default value is 15000.

  -instances_lesser_than <arg> - (Optional) Specify the maximum threshold for
  the number of instances in a hierarchy in order to perform a Rent
  calculation. Use with -instances_greater_than to create a range of values.
  Lower values lower compile time. Only valid when used with -complexity.
  Default value is 100000.

  -av_fanout_greater_than <arg> - (Optional) Specify the minimum threshold of
  average fanout within a hierarchical module in order to perform a Rent
  calculation. Higher values lower compile time. Only valid when used with
  -complexity. Default is 3.0.

  -congestion - (Optional) Reports the vertical and horizontal routing
  congestion of the placed design on a per tile basis. This option can only
  be run after implementation, or after place_design. Congestion analysis is
  performed on the whole design, even if -cells is specified for complexity
  analysis.

  -min_congestion_level <arg> - (Optional) Specifies the minimum congestion
  level to show congestion in the design. The minimum supported value is 3 as
  the report does not have any information on congestion windows under level
  3. The default value is 5 if the option is not specified.

  -timing - (Optional) Runs design analysis in timing mode, to report setup
  and hold characteristics of critical paths. This is the default analysis
  run by the report_design_analysis command when no other options are
  specified.

  Tip: The -timing option can be specified with -setup, -hold,
  -of_timing_paths, -max_paths, and -extend, but can not be used with -cells
  or -hierarchical_depth.

  -setup - (Optional) Limit the reporting scope to only setup path
  characteristics. Requires the -timing option.

  -hold - (Optional) Limit the reporting scope to only hold path
  characteristics. Requires the -timing option.

  Important: When -hold is used with the -extend option this generates two
  side-by-side reports: the setup report showing the worst setup paths on the
  left, and the corresponding hold report for those paths on the right. This
  shows hold characteristics side-by-side with the setup characteristics of
  the same start and endpoints to make it easier to see if hold and setup
  fixing are affecting one another.

  -show_all - (Optional) Adds more characteristics to the timing
  characteristics report.

  -full_logical_pin - (Optional) Output the full hierarchical pin name in the
  design analysis report.

  -routed_vs_estimated - (Optional) Reports the estimated vs. actual routed
  delays side-by-side for the same path.

  Important: This requires the set_delay_model -interconnect to be set to
  "actual" to provide both the estimated and actual delays.

  -logic_level_distribution - (Optional) Reports logic-level distribution of
  the -timing report to help identify the longer paths in the design. The
  logic levels distribution can be very runtime intensive so it is not
  reported by default.

  Tip: Remember that -logic_level_distribution is performed on critical
  timing paths identified by the -timing option. If the purpose of analysis
  is to identify all of the paths with the greatest number of logic levels in
  the design, you can use -of_timing_paths with the get_timing_paths command
  to define the timing paths of interest. In addition, you can use the
  LOGIC_LEVELS property on timing paths to obtain this information.

  -logic_level_dist_paths <arg> - (Optional) This option can be specified
  with -logic_level_distribution to specify the number of critical paths for
  analyzing logic level distribution. Specified as a value greater than or
  equal to 1. The default is 1000 paths.

  -min_level <arg> - (Optional) Group all timing paths with logic levels, or
  routes, less than the value specified into a single bin. When specified,
  the <arg> value passed must be at least 1.

  -max_level <arg> - (Optional) Group all timing paths with logic levels, or
  routes, greater than the value specified into a single bin. When specified,
  the <arg> value must be greater than the value of -min_level, or can be
  zero.

  -return_timing_paths - (Optional) This must be used with the
  -end_point_clock and -logic_levels options. Directs the
  report_design_analysis command to return timing_path objects as well as the
  analysis report. The timing_path objects can be passed to other analysis
  commands that take timing paths such as report_timing, or even passed to
  the -of_timing_paths option of a second report_design_analysis command.

  Tip: If -return_timing_paths is specified, -timing will be disabled so that
  no timing results are returned. If no timing paths match the specified
  options, the command will return the message "No timing paths returned."

  -of_timing_paths <args> - (Optional) Specify a list of timing path objects
  for analysis. Requires the -timing option. The command will report
  characteristics of the specified paths instead of the most critical paths.
  You can use the get_timing_paths command to provide the timing path objects
  for -of_timing_paths.

  -max_paths <arg> - Specify the number of paths to report for critical path
  analysis. The default number of critical paths analyzed is 1. Note, the
  number of paths returned is affected by other options such as
  -end_point_clock, which can reduce the number of paths returned due to the
  specified clock.

  -extend - (Optional) Perform an extended setup analysis of the critical
  paths. The hold analysis is not performed. Requires the -timing option.
  Three paths are reported for an extended analysis:

   *  The path ending at critical path start point.

   *  The critical path.

   *  The path starting at critical path endpoint.

  -routes - (Optional) Reports the path distribution with respect to the
  number of routes per end point clock instead of logic levels. When it is
  used with the -of_timing_objects option, the get_timing_paths command must
  be run with the -routable_nets option.

  -end_point_clocks <arg> - (Optional) Takes a list of clocks that can be
  specified by name or by using get_clocks. Limits the timing paths under
  consideration to only the ones in the specified clock group.

  -logic_levels <arg> - (Optional) Filters timing paths by the specified
  number of logic levels. You can specify one logic level and it can be used
  with -end_point_clocks to further limit timing paths based on the clock
  domain.

  -qor_summary - (Optional) Include a summary of the QoR for the design.

  -json <arg> - (Optional) Writes the QoR summary in JSON format where <arg>
  is the name of the JSON file. The generated JSON file overwrites an
  existing JSON files with the same name.

  Note: The -json option can only be used with the -qor_summary, -complexity,
  and -logic_level_distribution switches. In addition, switches that shape
  the data for each report section are also valid.

  -name <arg> - (Optional) The name of the Design Analysis Report view to
  display in the tool GUI mode. If the name has already been used in an open
  Report view, that view will be closed and a new report opened.

  -no_pr_attribute - (Optional) Report the design analysis without partial
  reconfiguration (PR) attributes. For Partial Reconfiguration (PR) designs,
  the logical path is defined as belonging to a reconfigurable partition
  (:RP#), or to the static region of the design (:S), as well as whether the
  path is completely in the PR region or S region or crosses between the
  regions.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Perform a complexity analysis of the two specified cells.

    report_design_analysis -complexity -cells {cpuEngine fftEngine}

  Perform complexity analysis of the specified bounding boxes.

    report_design_analysis -complexity \
    -bounding_boxes { "CLE_M_X21Y239:CLEL_R_X28Y254" "CLEL_R_X18Y171:CLE_M_X26Y186" }

  Get an extended analysis of the worst critical path from the Block RAMs in
  the design.

    report_design_analysis -timing -of_timing_paths \
    [get_timing_paths -from [all_rams]]

  Perform complexity analysis for the specified cell, to a depth of two
  hierarchical levels, and performs timing and congestion analysis on the
  design.

    report_design_analysis -complexity -hierarchical_depth 2 -timing -setup \
    -hold -max_paths 10 -logic_level_distribution -logic_level_dist_paths 20 -congestion

  Use the report_design_analysis command to return the timing paths with the
  specified end point clock and logic levels, and pass those paths to the
  report_timing command for analysis.

    report_timing -of_objects [report_design_analysis -end_point_clock cpuClk \
    -logic_levels 10 -timing -return_timing_paths]

  The following example generates a logic level report with levels 0-1
  grouped in a bin, 10 and greater grouped in another bin, and a bin for each
  individual number in between.

    report_design_analysis -logic_level_distribution -min_level 2 -max_level 9

  The following example generates a QoR summary report in both JSON format.

    report_design_analysis -qor_summary -json rda_qor.json

  The following example generates a logic level distribution report in JSON
  format. It is limited to the 1000 worst timing paths.

    report_design_analysis -logic_level_distribution -json rda_qor.json \
     -logic_level_distribution_paths 1000

  The following example generates a complexity report that is limited to
  hierarchies containing instances greater than 20000 and less than 50000
  with an average fanout of 3.5.

    report_design_analysis -complexity -instances_greater_than 20000 \
    -instaces_lesser_than 50000 -av_fanout_greater_than 3.5

See Also:

   *  config_design_analysis
   *  get_cells
   *  get_timing_paths
   *  place_design
   *  report_timing
   *  report_timing_summary
   *  set_delay_model
   *  set_false_path
   *  set_multicycle_path


@@@COMMAND: report_dfx_summary@@@
report_dfx_summary

Description: 
Report DFX Summary

Syntax: 
report_dfx_summary  [-file <arg>] [-return_string] [-append] [-force] [-quiet]
                    [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           report file
                    Values: A filename with alphanumeric characters.
  [-return_string]  Return report as string
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-force]          Overwrite existing file
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
XDC, Methodology

Description:

  Report information for DFX design includes details on Reconfigurable
  Pblocks, static, RP utilization, PPLOCs, Clock utilization, and a detailed
  RP table. The detailed RP table also includes Prohibit site count, shared
  tiles count, and overlap tiles count.

  You can use this command at any stage of the implementation flow for both
  standard DFX and abstract shell designs. Each RP is assigned a unique
  Partition ID which is used consistent across all report tables. For more
  information on this command, refer to the Vivado Design Suite User Guide:
  Dynamic Function eXchange (UG909).

  By default, the report is generated in the Tcl console or in the STD
  output. However, you can generate the results to a file or returned as a
  string if desired.

  Note: The command is supported for Versal adaptive SoC devices only.

Arguments:

  -file <arg> - (Optional) Writes the report into the specified file instead
  of writing in the Tcl console.

  Note: If the path is not specified as part of the file name, the file is
  generated into the current working directory, or the directory from which
  the tool was launched.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string is captured by a variable definition
  and parsed or otherwise processed.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  -force - (Optional) Overwrite the specified file if it already exists.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. Xilinx regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

Examples:

  The following example reports the DFX related information of the current
  design and write the results to the specified file.

    report_dfx_summary -file dfx_summary.txt

See Also:

   *  get_dfx_footprint


@@@COMMAND: report_disable_timing@@@
report_disable_timing

Description: 
Report disabled timing arcs

Syntax: 
report_disable_timing  [-user_disabled] [-column_style <arg>] [-file <arg>]
                       [-append] [-cells <args>] [-return_string] [-quiet]
                       [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-user_disabled]  Report only user disabled arcs
  [-column_style]   Style for path report columns: Values: variable_width, 
                    anchor_left
                    Default: variable_width
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-cells]          Run report_disable_timing on the specified cell(s)
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Displays a report of timing paths that will be excluded from timing
  analysis in the current synthesized or implemented design.

  The format of the report is organized into columns for "Cell or Port" to
  define the object associated with the timing path, "From" and "To" to
  define the timing path, the condition, and the reason for excluding the
  path from timing. The various reasons for exclusion are as follows:

   *  constraint - set_disable_timing constraint is specified

   *  constant - Logic constant

   *  loop - Breaks a logic loop

   *  bidirect instance path - Feedback path through bidirectional instances

   *  bidirect net path - Feedback path on nets with bidirectional pins

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -user_disabled - (Optional) Report only the timing arcs that have been
  disabled by the user with the set_disable_timing command.

  -column_style [ variable_width | anchor_left ] - (Optional) Specifies the
  alignment of the columns in the report. The default is variable_width when
  the option is not specified.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -cells <arg> - (Option) The details of the report will be based on the
  specified cells rather than the whole design.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports all timing paths that will not be included in
  timing analysis:

    report_disable_timing  
    

  The following example outputs the disable timing report as a string, stores
  it in a variable, and then puts it to the display:

    set bad_time [report_disable_timing -return_string]  
    puts $bad_time 
    

See Also:

   *  report_timing
   *  set_disable_timing


@@@COMMAND: report_drc@@@
report_drc

Description: 
Run DRC

Syntax: 
report_drc  [-name <arg>] [-upgrade_cw] [-checks <args>] [-ruledecks <args>]
            [-file <arg>] [-rpx <arg>] [-append] [-waived] [-no_waivers]
            [-return_string] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-name]           Output the results to GUI panel with this name
  [-upgrade_cw]     Specifies if report_drc should upgrade all 
                    CRITICAL_WARNING violations to ERROR.
  [-checks]         DRC checks (see get_drc_checks for available checks)
  [-ruledecks]      Containers of DRC rule checks
                    Default: default
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-rpx]            Report filename for persisted results.
  [-append]         Append the results to file, do not overwrite the results 
                    file
  [-waived]         Output result is Waived checks
  [-no_waivers]     Disable waivers for checks
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
DRC, Report, Timing

Description:

  Check the current design against a specified set of design rule checks, or
  rule decks, and report any errors or violations that are found.

  The report_drc command requires an open design to check the design rules
  against. The command returns a report with the results of violations found
  by the design rule checks. Violations are returned as AMD Vivado objects
  that can be listed with the get_drc_violations command, and are associated
  with cells, pins, ports, nets, and sites in the current design. You can get
  the cells, nets, and other design objects that are associated with DRC
  violation objects, using the -of_objects option of the get_cells command
  for instance.

  Tip: The report_drc can be multi-threaded to speed the process. Refer to
  the set_param command for more information on setting the
  general.maxThreads parameter.

  The Vivado tools include a large number of predefined design rule checks to
  be used by the report_drc command. Use the get_drc_checks command to list
  the currently defined design rule checks. You can also create new custom
  design rule checks using the create_drc_check command.

  A rule deck is a collection of design rule checks grouped for convenience,
  to be run at different stages of the FPGA design flow, such as during I/O
  planning or placement. The tool comes with a set of factory defined rule
  decks, but you can also create new user-defined rule decks with the
  create_drc_ruledeck command. Use the get_drc_ruledecks command to return a
  list of the currently defined rule decks available for use in the
  report_drc command.

  The report_drc command runs a default rule deck when the -checks or
  -ruledeck options are not specified. Creating a user-defined DRC
  automatically adds the new design rule check to the default rule deck.

  DRC rules can be enabled or disabled using the IS_ENABLED property on the
  rule check object. If a rule IS_ENABLED false, the rule will not be run by
  the report_drc command, whether it is specified directly using -checks, or
  indirectly with -ruledeck.

  Tip: You can reset the properties of a DRC rule to the factory default
  settings using the reset_drc_check command.

  You can reset the current results of the report_drc command, clearing any
  found violations, using the reset_drc command.

Arguments:

  -name <arg> - (Optional) The name to assign to the results when run in GUI
  mode.

  -upgrade_cw <arg> - (Optional) Report all found Critical Warnings as Errors
  for this report.

  -checks <args> - (Optional) A list of rule checks to run the DRC report
  against. All specified rules will be checked against the current design.
  Rules are listed by their group name or full key. Using the -checks option
  creates a temporary user-defined rule deck, with the specified design rule
  checks, and uses the temporary rule deck for the run.

  Note: -ruledeck and -checks cannot be used together.

  -ruledecks <arg> - (Optional) The name of one or more DRC rule decks. A
  rule deck is a list of DRC rule check names. You can provide the name of a
  factory DRC rule deck or a user-defined rule deck. The report_drc command
  checks the design against the rules that are added to the given rule deck.
  Custom rule decks can be defined using the create_drc_ruledeck command. Use
  the get_drc_ruledecks command to list the currently defined rule decks.

  -file <arg> - (Optional) Write the DRC report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -rpx <arg> - (Optional) Specify the file name and path of the report file
  (RPX) to write. This is different from writing the report results to a file
  using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  AMD Vivado Design Suite using the open_report command. You should add a
  .rpx file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -waived - (Optional) Causes only the DRC checks waived by the create_waiver
  command to be run and reported. This returns the actual violation rather
  than the definition of the waiver, which can be reported by the
  report_waivers command.

  -no_waivers - (Optional) Ignore the waivers defined by the create_waivers
  command and report all DRC violations.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example lists the available rule decks. The results include
  all factory rule decks and all user-defined rule decks.

    get_drc_ruledecks

  The following example returns the list of DRC rules defined in the
  specified rule deck:

    get_drc_checks -of_objects [get_drc_ruledecks placer_checks]

  The following examples run the specified DRC rule deck and rules against
  the current design, and writes the results to the specified file:

    report_drc -ruledecks placer_checks -file C:/Data/DRC_Rpt1.txt
    report_drc -checks {IOCNT-1 IOPCPR-1 IOPCMGT-1 IOCTMGT-1 IODIR-1}  \
       -file C:/Data/DRC_Rpt1.txt -append

  Note: The -append option adds the result of the second report_drc command
  to the specified file.

See Also:

   *  create_drc_check
   *  create_drc_ruledeck
   *  create_drc_violation
   *  create_waiver
   *  get_cells
   *  get_drc_checks
   *  get_drc_ruledecks
   *  get_drc_violations
   *  get_nets
   *  get_pins
   *  get_ports
   *  get_sites
   *  open_report
   *  reset_drc
   *  reset_drc_check
   *  set_param


@@@COMMAND: report_environment@@@
report_environment

Description: 
Report system information.

Syntax: 
report_environment  [-file <arg>] [-format <arg>] [-append] [-return_string]
                    [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Write system information to specified file.
  [-format]         Specifies how to format the report. Default is 'text', 
                    another option is 'xml'. Only applies if -file is used. 
                    If xml output is used, -append is not allowed.
                    Default: text
  [-append]         Append report to existing file
  [-return_string]  Return report content as a string value
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Report the details of the system environment that the tool is running
  under. The details of the environment report include: operating system
  version, CPU, memory, available disk space, and specific settings of
  various environment variables.

  The default is to write the report to the standard output. However, the
  report can be written to a file instead.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -format [ text | xml ] - (Optional) The default format of the output report
  is text. You can also output an XML report. XML output is only valid when
  -file is specified, and cannot be used with -append.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the current environment to the specified file:

    report_environment -file C:/Data/toolEnv.txt 
    


@@@COMMAND: report_exceptions@@@
report_exceptions

Description: 
Report timing exceptions

Syntax: 
report_exceptions  [-from <args>] [-rise_from <args>] [-fall_from <args>]
                   [-to <args>] [-rise_to <args>] [-fall_to <args>]
                   [-through <args>] [-rise_through <args>]
                   [-fall_through <args>] [-ignored] [-scope_override]
                   [-summary] [-coverage] [-ignored_objects] [-count_objects]
                   [-write_merged_exceptions] [-write_valid_exceptions]
                   [-no_header] [-file <arg>] [-append] [-return_string]
                   [-name <arg>] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-from]                     From pins, ports, cells or clocks
  [-rise_from]                Rising from pins, ports, cells or clocks
  [-fall_from]                Falling from pins, ports, cells  or clocks
  [-to]                       To pins, ports, cells or clocks
  [-rise_to]                  Rising to pins, ports, cells or clocks
  [-fall_to]                  Falling to pins, ports, cells or clocks
  [-through]                  Through pins, ports, cells or nets
  [-rise_through]             Rising through pins, ports, cells or nets
  [-fall_through]             Falling through pins, ports, cells or nets
  [-ignored]                  Only report exceptions which are fully ignored
  [-scope_override]           Only report scoped exceptions which are fully 
                              or partially overriden
  [-summary]                  Report a summary of all exceptions
  [-coverage]                 Report the coverage of all timing exceptions
  [-ignored_objects]          Report the list of ignored startpoints and 
                              endpoints
  [-count_objects]            Report the number of objects in the timing 
                              exceptions
  [-write_merged_exceptions]  Write merged timing exceptions
  [-write_valid_exceptions]   Write timing exceptions with the valid objects 
                              only
  [-no_header]                Do not generate a report header
  [-file]                     Filename to output results to. (send output to 
                              console if -file is not used)
  [-append]                   Append the results to file, don't overwrite the
                              results file
  [-return_string]            Return report as string
  [-name]                     Output the results to GUI panel with this name
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Report all timing exceptions applied to setup and hold checks defined by
  timing constraints in the current design, or report the exceptions on the
  specified timing paths.

  Timing exceptions can be defined by timing constraints such as
  set_false_path or set_multicycle_path that change the default assumptions
  for timing paths in the design.

  The exceptions are reported to the standard output by default, but can be
  redirected to a file or to a Tcl string variable.

Arguments:

  -from <args> - (Optional) A list of start points on the timing path to
  report exceptions on.

  -rise_from <args> - (Optional) A list of the start points on the timing
  path to report exceptions on the rising-edge of the path.

  -fall_from <args> - (Optional) A list of the start points on the timing
  path to report exceptions on the falling-edge of the path.

  Important: Using the report_exceptions command with -from/-through/-to
  options only matches timing exceptions that have been defined with the same
  -from/-through/-to command line options. The specified patterns can be
  different but the cell, pin, and port objects must also be the same to be
  reported as an exception.

  -to <args> - (Optional) A list of the end points for the timing path to
  report exceptions on.

  -rise_to <args> - (Optional) A list of the end points on the timing path to
  report exceptions on the rising-edge of the path.

  -fall_to <args> - (Optional) A list of the end points on the timing path to
  report exceptions on the falling-edge of the path.

  -through <args> - (Optional) A list of pins, cell, or nets through which
  the timing path passes.

  -rise_through <args> - (Optional) A list of pins, cell, or nets through
  which the rising-edge timing path passes.

  -fall_through <args> - (Optional) Specifies the list of pins, cell, or nets
  through which the falling-edge timing path passes.

  -ignored - (Optional) Report timing path exceptions in the current design
  that are fully ignored by the AMD Vivado timing engine. Ignored constraints
  could be the result of an incorrectly defined constraint, or of missing
  design objects, or of non-existent path. Timing exceptions that are
  partially overridden are not reported with this option.

  -scope_override - (Optional) Report scoped timing path exceptions in the
  current design that are fully or partially overridden by top-level
  constraints. This option does not report when the scoped constraints are
  overridden by other scoped constraints whether from the same scope or from
  a different scope.

  -summary - (Optional) Report a summary of all timing exceptions.

  -coverage - (Optional) Report the coverage of all timing exceptions.
  Coverage is expressed as a percentage showing the number of pins reached by
  the timing exception compared to the number of pins specified by the
  -from/-through/-to options.

  -ignored_objects - (Optional) Report the start points and endpoint objects
  that are part of timing path exceptions, and ignored by the timing engine.

  -count_objects - (Optional) Returns the number of objects in the exceptions
  report.

  -write_valid_exceptions - (Optional) Write only the valid timing exceptions
  to the report. Valid exceptions have valid start points and endpoints.

  -write_merged_exceptions - (Optional) Write the merged timing exceptions.
  Merged timing exceptions include both the valid and invalid timing
  exceptions.

  -no_header - (Optional) Do not write a header to the report.

  -file <arg> - (Optional) Write the report into the specified file. By
  default the timing exceptions are reported to the standard output, or the
  Tcl console. The specified file will be overwritten if one already exists,
  unless -append is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -name <arg> - (Optional) The name of the report view to display in the AMD
  Vivado IDE when run in GUI mode. If the name has already been used in an
  open report view, that view will be closed and a new report opened.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Report all timing exceptions in the current design.

    report_exceptions

  Report all timing exceptions ignored or overridden in the current design.

    report_exceptions -ignored

See Also:

   *  create_clock
   *  create_generated_clock
   *  report_timing
   *  report_timing_summary
   *  set_false_path
   *  set_input_delay
   *  set_max_delay
   *  set_min_delay
   *  set_multicycle_path
   *  set_output_delay


@@@COMMAND: report_fit@@@
report_fit

Description: 
Run FIT estimation and display report

Syntax: 
report_fit  [-alt <arg>] [-long <arg>] [-lat <arg>] [-devices <arg>]
            [-time <arg>] [-temp <arg>] [-revised_packaging_model]
            [-file <arg>] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-alt]                      The altitude/elevation where the circuit will 
                              be deployed.  Default units are in meters.  Use
                              set_units to change.
                              Default: 0.0
  [-long]                     The longitude where the circuit will be 
                              deployed:  Range 0 to 360
                              Default: 285
  [-lat]                      The latitude where the circuit will be 
                              deployed:  Range -90 to 90
                              Default: 40
  [-devices]                  The number of devices that will be deployed in 
                              the application.
                              Default: 1
  [-time]                     The time window in which the application will 
                              be running (in months).
                              Default: 12
  [-temp]                     The junction temperature in which the device(s)
                              will be running (in degrees C):  25, 85, 100, 
                              or 125
                              Default: 25
  [-revised_packaging_model]  Use revised packaging model for FIT estimation
  [-file]                     Filename to output results to. (send output to 
                              console if -file is not used)
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Report


@@@COMMAND: report_guide_info@@@
report_guide_info

Description: 
Reports reuse metric for read_guide_info

Syntax: 
report_guide_info  [-quiet] [-verbose] [<file>]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<file>]    Filename to output results to. (send output to console if -file
              is not used)

Categories: 



@@@COMMAND: report_high_fanout_nets@@@
report_high_fanout_nets

Description: 
Report high fanout nets

Syntax: 
report_high_fanout_nets  [-file <arg>] [-format <arg>] [-append] [-ascending]
                         [-timing] [-histogram] [-load_types] [-clock_regions]
                         [-slr] [-max_nets <arg>] [-fanout_greater_than <arg>]
                         [-fanout_lesser_than <arg>] [-name <arg>]
                         [-cells <args>] [-clocks <args>] [-return_string]
                         [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name                    Description
  -----------------------------------
  [-file]                 Filename to output results to. (send output to 
                          console if -file is not used)
  [-format]               Specifies how to format the report: text, xml. 
                          Default is 'text'. Only applies if -file is used. 
                          If xml output is used, -append is not allowed.
                          Default: text
  [-append]               Append to existing file
  [-ascending]            Report nets in ascending order
  [-timing]               Report worst slack and worst delay values on nets
  [-histogram]            Report histogram for high fanout nets
  [-load_types]           Report load  details
  [-clock_regions]        Report clock region wise load distribution
  [-slr]                  Report SLR wise load distribution
  [-max_nets]             Number of nets for which report is to be generated
                          Default: 10
  [-fanout_greater_than]  Report nets that have fanout greater than the 
                          specified integer, default 0
                          Default: 0
  [-fanout_lesser_than]   Report nets that have fanout less than the 
                          specified integer, default INT_MAX
                          Default: INT_MAX
  [-name]                 Output the results to GUI panel with this name
  [-cells]                Report the nets of the specified cells
  [-clocks]               Report the nets of the specified clocks
  [-return_string]        Return report as string
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Report the fanout of nets in the design, starting with the highest fanout
  nets, and working down. Options allow you to control various aspects of the
  report.

  This command can be run on an implemented design, or on the synthesized
  netlist. However, the results will be more complete on the implemented
  design.

  The command returns the fanout report of nets in the design, or returns an
  error if it fails.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -format [ text | xml ] - (Optional) The default format of the output report
  is text. You can also output an XML report. XML output is only valid when
  -file is specified, and cannot be used with -append.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -ascending - (Optional) Report nets in ascending order.

  -timing - (Optional) Add timing data to the report to display the worst
  slack (WNS) and worst delay on high fanout nets.

  Note: The -timing option will slow the run time of report_high_fanout_nets,
  and is not supported for use with -histogram.

  -histogram - (Optional) Format the report as a histogram showing the number
  of fanouts, and the number and percentage of nets with that many fanouts in
  the design.

  Note: This option cannot be used with the following options: -ascending,
  -timing, -load_types, -clock_regions, -slr, -max_nets,
  -fanout_greater_than, and -fanout_lesser_than.

  -load_types - (Optional) Reports the various load types on the net sorted
  in two different ways: by load types (data/clock/set/reset...) and by
  device resource at which loads are placed (Slices/IO...). When
  report_high_fanout_nets is run on the unplaced synthesized design only the
  load type is reported.

  -clock_regions - (Optional) Report the load distribution across clock
  regions. This option can only be used after placement, and reports the
  clock regions the various loads on the net are located in.

  -slr - (Optional) Report the load distribution across SLRs. This option can
  only be used after placement, and reports the SLRs that various loads on
  the net are located in, after placement.

  Note: The -load_types, -slr, and -clock_regions options cannot be used
  together.

  -max_nets <arg> - (Optional) Number of nets to report. Default: 10

  -fanout_greater_than <arg> - (Optional) Report only nets that have fanout
  greater than the specified limit. The value can be specified as an integer,
  with a default value of 0.

  -fanout_lesser_than <arg> - (Optional) Report only nets that have fanout
  less than the specified limit. The value can be specified as an integer,
  with a default value of INT_MAX.

  -name <arg> - (Optional) The name of the High Fanout Nets Report view to
  display in the Vivado IDE when run in GUI mode. If the name has already
  been used in an open Report view, that view will be closed and a new report
  opened.

  -cells <args> - (Optional) Report the nets attached to the specified cell
  instances in the design. Cells can be passed by name, or as cell objects
  returned by the get_cells command.

  -clocks <args> - (Optional) Report the nets of the specified clocks. The
  clocks can be passed by name, or as clock objects returned by the
  get_clocks command.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the fanout of nets for the specified clocks:

    report_high_fanout_nets -clocks [get_clocks gt*] 
    

  The following example reports the nets with fanouts less than 10 loads, and
  returns the results to a string stored as a Tcl variable:

    set myRep [report_high_fanout_nets -fanout_lesser_than 10 -return_string] 
    

See Also:

   *  get_cells


@@@COMMAND: report_incremental_reuse@@@
report_incremental_reuse

Description: 
Compute achievable incremental reuse for the given design-checkpoint and report

Syntax: 
report_incremental_reuse  [-file <arg>] [-append] [-cells <args>]
                          [-hierarchical] [-hierarchical_depth <arg>]
                          [-return_string] [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append to existing file
  [-cells]               Report incremental reuse of given list of cells
  [-hierarchical]        Generates text-based hierarchical incremental reuse 
                         report.
  [-hierarchical_depth]  Specifies the depth level for textual hierachical 
                         incremental reuse report
                         Default: 0
  [-return_string]       Return report as string
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report

Description:

  For use with the incremental implementation flow, this command reports on
  the amount of design overlap between the current design and an incremental
  checkpoint loaded using the read_checkpoint -incremental command.

  This report analyzes the loaded incremental checkpoint against the current
  design to see if the two are sufficiently correlated to drive incremental
  placement and routing. A low correlation between the current design and the
  checkpoint should discourage using the checkpoint as a basis for
  incremental place and route. Refer to the Vivado Design Suite User Guide:
  Implementation (UG904) for more information on incremental place and route.

  If there is a low correlation of reuse between the current design and the
  loaded incremental checkpoint, you will need to restore the original design
  using open_run or read_checkpoint. Alternatively, you can overload the
  incremental checkpoint in the current design by issuing the read_checkpoint
  -incremental command again to specify a new incremental checkpoint.

  For Dynamic Function eXchange (DFX) designs, the % of cells matching in
  Reconfigurable Modules (RM) are reported, the % of cells reused in RMs, and
  the % of cells fixed in RMs are also reported. There is also a
  Reconfigurable Modules Summary table added to the report.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified. By default, the report will be written to the Tcl console.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -cells <args> - (Optional) Specifies the cells to use from the DCP file.

  -hierarchical - (Optional) Generate a text-based hierarchical incremental
  reuse report.

  -hierarchical_depth <arg> - (Optional) Specifies the depth level for the
  text-based hierarchical incremental reuse report. The default is 0.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example loads an incremental checkpoint into the current
  design, and then reports the correlation of the loaded incremental
  checkpoint to the current design:

    read_checkpoint -incremental C:/Data/reuse_checkpoint1.dcp
    report_incremental_reuse

See Also:

   *  open_run
   *  place_design
   *  read_checkpoint
   *  route_design


@@@COMMAND: report_io@@@
report_io

Description: 
Display information about all the IO sites on the device

Syntax: 
report_io  [-file <arg>] [-name <arg>] [-append] [-format <arg>]
           [-return_string] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. Send output to console if 
                    -file is not used.
  [-name]           Output the results to GUI panel with this name
  [-append]         Append to existing file
  [-format]         Specifies how to format the report: text, xml. Default is
                    'text'. Only applies if -file is used. If xml output is 
                    used, -append is not allowed.
                    Default: text
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Report details of the IO banks of the current design. Details include
  device specific information such as target part, package, and speed grade,
  and also provides information related to each pin on the device.

  This command returns the requested report, or returns an error if it fails.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -name <arg> - (Optional) The name to assign to the reported results when
  run in GUI mode.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option. It cannot
  be specified with -format xml.

  -format [ xml | text ] - (Optional) Specifies the format of the output as
  either XML, or an ASCII text file. The default output is text.

  Note: The format applies when -file is specified, but is otherwise ignored.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the IO blocks of the current design:

    report_io 
    

See Also:

   *  report_route_status


@@@COMMAND: report_ip_status@@@
report_ip_status

Description: 
Report on the status of the IP instances in the project.

Syntax: 
report_ip_status  [-name <arg>] [-file <arg>] [-append] [-return_string]
                  [-license_status] [-resource_data] [-quiet] [-verbose]

Returns: 
True for success

Usage: 
  Name               Description
  ------------------------------
  [-name]            Output the results to GUI panel with this name
                     Values: The name of the GUI dialog
  [-file]            Filename to output results to (send output to console if
                     -file is not used)
                     Values: The report filename
  [-append]          Append to existing file
  [-return_string]   Return report as string
  [-license_status]  Report the license status of the generated outputs for 
                     each IP
  [-resource_data]   Report the resource data usage for each IP instance
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution

Categories: 
IPFlow

Description:

  This command examines the IP cores in the current project, and reports the
  state of the IP with regard to the latest IP catalog. The following
  information is included in the IP Status report:

   *  Instance Name - The name of the IP core in the current project.

   *  IP Status - A description of the state of the IP in the current project.

   *  Recommendation - A recommended action based on the status.

   *  Lock Status - An explanation of the lock status of the IP in the
      current project.

   *  Change Log - A reference to the change log for the IP update in the
      catalog. This will provide a description of the changes in the latest
      IP.

   *  IP Name - The name of the IP core in the catalog.

   *  IP Version - The version of the IP in use in the current project.

   *  New Version - The latest version of the IP in the catalog.

   *  New license - The license status for the new IP version.

   *  Original Part - The original part associated with the IP in the catalog.

  IP cores that are out of date, or locked, may need to be upgraded and the
  output products regenerated. Refer to the Vivado Design Suite User Guide:
  Designing with IP (UG896) for more information.

  The report_ip_status command checks the available licenses on the local
  machine, or on the license server, for all IP cores in the current project.
  If a license can be found, the license information is printed. If the
  license cannot be found, this information is also printed.

  This command returns the IP status report, or returns an error if it fails.

  This command can also be used to report the resource data usage for each IP
  instance. This data is obtained from the synthesis results.

   *  To see the resource data usage in the Tcl console window, type
      "report_ip_status -resource_data".

   *  To send the report to the return string, type "report_ip_status
      -resource data -return_string".

   *  To send the report to a file, type "report_ip_data -resource data -file
      <filename>".

Arguments:

  -name <arg> - (Optional) The name to assign to the results when run in GUI
  mode.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -license_status - (Optional) Limits the report to display only the various
  requirements and state of the licenses for IP used in the design.

  -resource_data - (Optional) Reports the resource data usage for each IP
  instance in the design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the IP status to the specified file,
  appending the results if the file already exists:

    report_ip_status -file C:/Data/reports/ip_status.txt -append

See Also:

   *  get_ips
   *  import_ip
   *  read_ip
   *  upgrade_ip


@@@COMMAND: report_methodology@@@
report_methodology

Description: 
Methodology Checks

Syntax: 
report_methodology  [-name <arg>] [-cells <args>] [-checks <args>]
                    [-file <arg>] [-rpx <arg>] [-append] [-waived]
                    [-no_waivers] [-slack_lesser_than <arg>] [-return_string]
                    [-merge_exceptions <arg>] [-quiet] [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-name]               Output the results to GUI panel with this name
  [-cells]              Run report_methodology on the specified cell(s).
  [-checks]             Report Methodology checks (see get_methodology_checks
                        for available checks)
  [-file]               Filename to output results to. (send output to 
                        console if -file is not used)
  [-rpx]                Report filename for persisted results.
  [-append]             Append the results to file, do not overwrite the 
                        results file
  [-waived]             Output result is Waived checks
  [-no_waivers]         Disable waivers for checks
  [-slack_lesser_than]  Set SYNTH rules Slack Threshold value in 'ns' (float)
                        Default: 2.0
  [-return_string]      Return report as string
  [-merge_exceptions]   Allow/Prevent the timing engine from merging timing 
                        exceptions. Valid values are auto/true/false
                        Default: auto
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Methodology, Report, Timing

Description:

  Check the current design against a specified set of methodology checks and
  report any errors or violations that are found.

  Methodology checks are a special class of design rule checks (DRC) that are
  accessible through this separate Tcl command. The methodology checks are a
  necessary part of the design flow, and should be considered mandatory after
  implementation and prior to generating the bitstream.

  Tip: Other than their availability through the separate report_methodology
  command, the checks are standard design rule checks in every other way.

  The report_methodology command requires an open design to check the design
  rules against. The command returns a report with the results of violations
  found by the design rule checks. Violations are returned as Vivado objects
  that can be listed with the get_methodology_violations command, and are
  associated with cells, pins, ports, nets, and sites in the current design.
  You can get the cells, nets, and other design objects that are associated
  with methodology violation objects, using the -of_objects option of the
  get_cells command for instance.

  The report_methodology command runs the methodology rule deck, or you can
  use the -checks option to specify the set of checks to run. Methodology
  checks can also be enabled or disabled in the default rule decks using the
  IS_ENABLED property on the rule check object:

    set_property IS_ENABLED FALSE [get_methodology_checks PDRC-190]

  If a rule IS_ENABLED false, the rule will not be run by the
  report_methodology command.

  Tip: You can reset the properties of a methodology rule to the factory
  default settings using the reset_methodology_check command.

  You can reset the current results of the report_methodology command,
  clearing any found violations, using the reset_methodology command.

Arguments:

  -name <arg> - (Optional) The name to assign to the results when run in GUI
  mode.

  -cells <arg> - (Optional) Specify the cells to use when running
  report_methodology. Cells should be hierarchical modules of the design. Use
  this option to specify a cell other than the top cell for analysis. Cells
  can be specified by name, or as objects returned by the get_cells command.

  -checks <args> - (Optional) A list of rule checks to run the methodology
  report against. All specified rules will be checked against the current
  design. Rules are listed by their group name or full key. Using the -checks
  option creates a temporary user-defined rule deck, with the specified
  design rule checks, and uses the temporary rule deck for the run.

  -file <arg> - (Optional) Write the methodology report into the specified
  file. The specified file will be overwritten if one already exists, unless
  -append is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -rpx <arg> - (Optional) Specify the file name and path of an Xilinx report
  file (RPX) to write. This is different from writing the report results to a
  file using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a .rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -waived - (Optional) Causes only the methodology checks waived by the
  create_waiver command to be run and reported. This returns the actual
  violation rather than the definition of the waiver, which can be reported
  by the report_waivers command.

  -no_waivers - (Optional) Ignore the waivers defined by the create_waivers
  command and report all methodology violations.

  -slack_lesser_than <arg> - (Optional) Only report SYNTH methodology
  violations when the calculated slack value on a path is less than the
  specified value.

  -merge_exceptions [ auto | true | false ] - (Optional) Allow or prevent the
  timing engine from merging the timing exceptions. Some methodology
  violations include the constraint position number inside the message. This
  information can only be reported when the exceptions are not merged, but at
  the expense of runtime and memory. In auto mode, when the tool estimates
  that the complexity of the timing constraints could result in a significant
  higher runtime, the exceptions are not merged. The user can override the
  default behavior by forcing the exceptions to be always merged (true) or
  never merged (false).

  Note: The valid values are true, false or auto with a default setting of
  auto.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Run the default methodology checks against the current design and write the
  results to the specified file.

    report_methodology -file C:/Data/methodology_Rpt1.txt -append

  Note: The -append option adds the result to the specified file.

See Also:

   *  get_methodology_checks
   *  get_methodology_violations
   *  open_report
   *  report_drc
   *  reset_methodology


@@@COMMAND: report_noc_addresses@@@
report_noc_addresses

Description: 
Get report contents with addressing data in columns: NoC cell name, base address, site name

Syntax: 
report_noc_addresses  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                      [-all] [-quiet] [-verbose] [<patterns>]

Returns: 
Report

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the Report of these Cell, Site, or Tile.
  [-all]         Report information about all the NoC Elements used and 
                 unused.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match Report against patterns
                 Default: *

Categories: 
Report, NOC

Description:

  Displays a report for NoC elements.

  The format of the report is organized into columns for NoC cell name,
  site name, base address, PMC alias offset, absolute address, SLR.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -all - (Optional) Report information about all the NoC elements used and unused. 
  
  -of_objects <arg> - (Optional) Get the NoC component information for 
  the specified element of the cell, site, or tile.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells, get_sites or get_tiles, rather than 
  specifying objects by name. 
  In addition, -of_objects cannot be used with a search <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -<pattern> - (Optional) Match parameters against the specified pattern. The
  default pattern is the wildcard `*` which gets all user-definable
  parameters.

Examples:

  The following example reports info about all the active/used NoC elements:
  report_noc_addresses  

  The following example outputs info about the unused and used NoC elements:
  report_noc_addresses  -all

  The following example reports objects of the site:
  report_noc_addresses -of_objects [get_sites SITENAME]

  The same for the tile and cell.
  report_noc_addresses -of_objects [get_tiles TILENAME]
  report_noc_addresses -of_objects [get_cells CELLNAME]


@@@COMMAND: report_npi_addresses@@@
report_npi_addresses

Description: 
Get report contents with addressing data in columns: NPI cell name, base address, site name

Syntax: 
report_npi_addresses  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                      [-all] [-quiet] [-verbose] [<patterns>]

Returns: 
Report

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the Report of these Cell, Site, or Tile.
  [-all]         Report information about all the NPI Elements used and 
                 unused.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match Report against patterns
                 Default: *

Categories: 
Report, NPI

Description:

  Displays a report for NPI elements.

  The format of the report is organized into columns for NPI cell name,
  site name, base address, PMC alias offset, absolute address, SLR.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -all - (Optional) Report information about all the NPI elements used and unused. 
  
  -of_objects <arg> - (Optional) Get the NPI component information for 
  the specified element of the cell, site, or tile.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells, get_sites or get_tiles, rather than 
  specifying objects by name. 
  In addition, -of_objects cannot be used with a search <pattern>.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. Both search <patterns> and -filter expressions must be
  written as regular expressions when this argument is used. AMD regular
  expression Tcl commands are always anchored to the start of the search
  string. You can add ".*" to the beginning or end of a search string to
  widen the search to include a substring. See
  http://perldoc.perl.org/perlre.html for help with regular expression
  syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -nocase - (Optional) Perform case-insensitive matching when a pattern has
  been specified. This argument applies to the use of -regexp only.

  -filter <args> - (Optional) Filter the results list with the specified
  expression.

  The filter search pattern should be quoted to avoid having to escape
  special characters that may be found in net, pin, or cell names, or other
  properties. String matching is case-sensitive and is always anchored to the
  start and to the end of the search string. The wildcard "*" character can
  be used at the beginning or at the end of a search string to widen the
  search to include a substring of the property value.

  Note: The filter returns an object if a specified property exists on the
  object, and the specified pattern matches the property value on the object.
  In the case of the "*" wildcard character, this will match a property with
  a defined value of "".

  For string comparison, the specific operators that can be used in filter
  expressions are "equal" (==), "not-equal" (!=), "match" (=~), and
  "not-match" (!~). Numeric comparison operators <, >, <=, and >= can also be
  used. Multiple filter expressions can be joined by AND and OR (&& and ||).

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -<pattern> - (Optional) Match parameters against the specified pattern. The
  default pattern is the wildcard `*` which gets all user-definable
  parameters.

Examples:

  The following example reports info about all the active/used NPI elements:
  report_npi_addresses  

  The following example outputs info about the unused and used NPI elements:
  report_npi_addresses  -all

  The following example reports objects of the site:
  report_npi_addresses -of_objects [get_sites SITENAME]

  The same for the tile and cell.
  report_npi_addresses -of_objects [get_tiles TILENAME]
  report_npi_addresses -of_objects [get_cells CELLNAME]


@@@COMMAND: report_operating_conditions@@@
report_operating_conditions

Description: 
Get operating conditions values for power estimation

Syntax: 
report_operating_conditions  [-voltage <args>] [-voltage_range <args>] [-grade]
                             [-process] [-junction_temp] [-ambient_temp]
                             [-thetaja] [-thetasa] [-airflow] [-heatsink]
                             [-thetajb] [-board] [-board_temp] [-board_layers]
                             [-design_power_budget] [-all] [-file <arg>]
                             [-return_string] [-append]
                             [-supply_current_budget <args>] [-quiet]
                             [-verbose]

Usage: 
  Name                      Description
  -------------------------------------
  [-voltage]                Gets voltage value.  Supported voltage supplies 
                            vary by family.
  [-voltage_range]          Gets voltage range.  Supported voltage supplies 
                            vary by family.
  [-grade]                  Temperature grade.  Supported values vary by 
                            family.
  [-process]                Gets process
  [-junction_temp]          Junction Temperature (C): auto|degC
  [-ambient_temp]           Ambient Temperature (C): default|degC
  [-thetaja]                ThetaJA (C/W): auto|degC/W
  [-thetasa]                Gets ThetaSA
  [-airflow]                Airflow (LFM): 0 to 750
  [-heatsink]               Gets dimensions of heatsink
  [-thetajb]                Gets ThetaJB
  [-board]                  Board type: jedec, small, medium, large, custom
  [-board_temp]             Board Temperature degC
  [-board_layers]           Board layers: 4to7, 8to11, 12to15, 16+
  [-design_power_budget]    Design Power Budget (W)
  [-all]                    Gets all operating conditions listed in this help
                            message
  [-file]                   Filename to output results to. (send output to 
                            console if -file is not used)
  [-return_string]          Return operating conditions as string
  [-append]                 Append operating conditions to end of file
  [-supply_current_budget]  Reports a list of supply current budget 'name 
                            value' pairs.  Supported voltage supplies vary by
                            family.
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution

Categories: 
Report

Description:

  Displays the real-world operating conditions that are used when performing
  analysis of the design. The reported values of operating conditions can be
  defined by the set_operating_conditions command.

  The environmental operating conditions of the device are used for power
  analysis when running the report_power command, but are not used during
  timing analysis.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -voltage - (Optional) Report the list of voltage pairs. Supported voltage
  supplies vary by family.

  -voltage_range - (Optional) Report the list of voltage ranges. Supported
  voltage supplies vary by family.

  -grade - (Optional) Report the temperature grade of the target device

  -process - (Optional) Report the manufacturing process characteristics to
  be assumed.

  -junction_temp - (Optional) Report the device junction temperature used for
  modeling

  -ambient_temp - (Optional) Reports the environment ambient temperature

  -thetaja - (Optional) Report the Theta-JA thermal resistance used for
  modeling

  -thetasa - (Optional) Report the Theta-SA thermal resistance used for
  modeling

  -airflow - (Optional) Report the Linear Feet Per Minute (LFM) airflow to be
  used for modeling.

  -heatsink - (Optional) Report the heatsink type to be used for modeling.

  -thetajb - (Optional) Report the Theta-JB thermal resistance used for
  modeling

  -board - (Optional) Report the board size to be used for modeling.

  -board_temp - (Optional) Report the board temperature in degrees Centigrade
  to be used for modeling.

  -board_layers - (Optional) Report the number of board layers to be used for
  modeling

  -design_power_budget - (Optional) Report the design power budget in Watts.
  This value is used by the report_power command to report the difference
  between the calculated on-chip power and the design power budget.

  -all - (Optional) Report the current values of all operating conditions.
  Use this to avoid having to report each condition separately.

  -file <arg> - (Optional) Write the report into the specified file. This
  will overwrite an existing file of the same name, unless the -append option
  is also used.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -supply_current_budget - (Optional) Report the list of supply name and
  current budget pairs. Supported voltage supplies vary by family.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Specify an industrial temperature grade device with an ambient temperature
  of 75 degrees C and then write those settings to a file on disk.

    set_operating_conditions -grade industrial -junction_temp 75  
    report_operating_conditions -grade -junction_temp -return_string -file \  
    ~/conditions.txt 
    

  Get voltage ranges of VCCINT and VCCAUX for the target device.

    report_operating_conditions -voltage_range {VCCINT VCCAUX}

See Also:

   *  set_operating_conditions


@@@COMMAND: report_param@@@
report_param

Description: 
Get information about all parameters

Syntax: 
report_param  [-file <arg>] [-append] [-non_default] [-return_string] [-quiet]
              [-verbose] [<pattern>]

Returns: 
param report

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-non_default]    Report only params that are set to a non default value
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  [<pattern>]       Display params matching pattern
                    Default: *

Categories: 
PropertyAndParameter, Report

Description:

  Gets a list of all user-definable parameters, the current value, and a
  description of what the parameter configures or controls.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -non_default - (Optional) Report only the parameters that have been changed
  from their default values.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pattern> - (Optional) Match parameters against the specified pattern. The
  default pattern is the wildcard `*` which gets all user-definable
  parameters.

Examples:

  The following example returns the name, value, and description of all
  user-definable parameters:

    report_param 
    

  The following example returns the name, value, and description of
  user-definable parameters that match the specified search pattern:

    report_param *coll* 
    

See Also:

   *  get_param
   *  list_param
   *  reset_param
   *  set_param


@@@COMMAND: report_phys_opt@@@
report_phys_opt

Description: 
Report details of Physical Synthesis transformations.

Syntax: 
report_phys_opt  [-file <arg>] [-append] [-return_string] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Output file
  [-append]         Append the results to file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Reports the results of the fanout driver replication and load
  redistribution optimizations performed by the phys_opt_design command.

Arguments:

  -file <arg> - (Optional) Write the physical optimization report into the
  specified file. The specified file will be overwritten if one already
  exists, unless -append is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output of the report to a Tcl
  string. The Tcl string can be captured by a variable definition and parsed
  or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the physical optimizations performed in the
  current design by the phys_opt_design command:

    report_phys_opt -file C:/Data/physOpt_Report.txt 
    

See Also:

   *  phys_opt_design


@@@COMMAND: report_pipeline_analysis@@@
report_pipeline_analysis

Description: 
Perform pipeline register insertion analysis and display report.

Syntax: 
report_pipeline_analysis  [-cells <args>] [-verbose] [-clocks <args>]
                          [-file <arg>] [-include_paths_to_pipeline] [-append]
                          [-max_added_latency <arg>] [-report_loops]
                          [-return_string] [-quiet]

Usage: 
  Name                          Description
  -----------------------------------------
  [-cells]                      Analyze each of the specified hierarchical 
                                cells separately and ignore feedback loops 
                                external to the cells.
  [-verbose]                    Suspend message limits during command 
                                execution
  [-clocks]                     Filter report output to show only the 
                                specified clocks
  [-file]                       Filename to output results to. (send output 
                                to console if -file is not used)
  [-include_paths_to_pipeline]  Report paths to cut. (only available if -file
                                is used)
  [-append]                     Append to existing file
  [-max_added_latency]          Maximum extra latency that can be inserted 
                                into the system (0 = unlimited).
                                Default: 100
  [-report_loops]               Report loop information as well
  [-return_string]              Return report as string
  [-quiet]                      Ignore command errors

Categories: 
Tools, Tcl

Description:

  This command performs an analysis of a synthesized design, hypothetically
  inserting pipeline stages in the design and reports the potential frequency
  (Fmax) increase of each clock domain. The analysis includes a search for
  loops in the design, which may not be improved by pipelining, and
  determines if such loops are critical paths in the design.

  Returns a table showing the pipeline stages and the Fmax improvement. The
  report begins with the original design and adds stages of latency (1, 2,
  ... ) until there is no further improvement in Fmax. This reports a
  theoretical upper limit to the frequency performance of the design.

  The analysis is typically run on the un-placed synthesized netlist where
  the logical netlist structure determines the performance. The report can be
  run on the top-level design, or on out-of-context (OOC) sub-modules. This
  report confirms whether the design frequency can be increased, as well as
  how many pipeline registers must be added to the design to achieve the Fmax
  improvement.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file.

Arguments:

  -cells <args> - (Optional) Perform pipeline analysis for the specified
  hierarchical cells. Specifying multiple cells causes the pipeline analysis
  report to be generated for each cell. The cells of interest can be
  specified by name, or returned as an object using the get_cells command.

  -verbose <arg> - (Optional) Specify the level of detail in the returned
  report. The argument can be specified with an integer value greater than 0.

  -clocks <args> - (Optional) Specifies the clock domains to analyze when
  generating the report. If not specified, the timing paths for all clocks
  are analyzed. This limits results to paths groups involving the specified
  clock domains.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -include_paths_to_pipeline - (Optional) Report recommendations for paths to
  pipeline in the current design.

  Note: The -file option must also be specified when this option is used.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -max_added_latency <arg> - (Optional) Specify the additional levels of
  delay to add through pipeline insertion. The latency is specified as an
  integer from 1 to 100, representing the maximum number of pipeline stages
  to consider during the pipeline analysis. The default setting is 0, which
  directs the tool to insert pipeline delays until there is no further
  improvement in design performance. The tool analyzes the number of stages
  up to the specified limit, or until there is not further gain in Fmax.

  -report_loops - (Optional) Report the slowest path within a sequential
  feedback loop. These are paths starting from and ending at the same
  sequential cell, and may have zero, one, or more sequential cells in the
  feedback path. Sequential loops cannot be pipelined.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

Examples:

  The following example returns the name, period, waveform, and sources of
  the clocks in the current design:

    report_pipeline_analysis -file C:/Data/FPGA_Design/pipeline_report.txt  
    

See Also:

   *  get_cells
   *  get_clocks
   *  report_cdc
   *  report_design_analysis


@@@COMMAND: report_place_status@@@
report_place_status

Description: 
Report on status of the placement.

Syntax: 
report_place_status  [-return_sites] [-return_string] [-file <arg>] [-append]
                     [-of_objects <args>] [-site_type <arg>] [-list_all_sites]
                     [-dump_placement] [-placement_type <arg>] [-quiet]
                     [-verbose]

Usage: 
  Name               Description
  ------------------------------
  [-return_sites]    Return a list of sites that match the given -site_type 
                     type
  [-return_string]   Set the result of running the report in the Tcl 
                     interpreter's result variable
  [-file]            Filename to output results to. (send output to console 
                     if -file is not used)
  [-append]          Append the results to file, don't overwrite the results 
                     file
  [-of_objects]      Report detailed placement status for these sites
  [-site_type]       Only show sites with the given status: 
                     ROUTE_THRU_SITE|INVALID_RS|TIE_OFF_SITE|ILLEGAL_PL|PLACE
                     D|HAS_ROUTE_THRUS|HAS_TIE_OFFS|HAS_INVERTED_IN|FIXED_CEL
                     LS (ignored if -of_objects is used)
  [-list_all_sites]  List full placement information for every site in the 
                     design (ignored if -of_objects is used)
  [-dump_placement]  Show the full placement information for every used site 
                     in the design.  This is VERY VERBOSE.
  [-placement_type]  Routed site type : PLACEDB|PREROUTE|WITH_ROUTING
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution

Categories: 
Report

Description:

  Reports the state of placement in the current design.

Arguments:

  -return_sites - (Optional) Return a list of sites that match the given
  -site_type type. When the -return_sites argument is used, it is required to
  also use the -site_type argument.

  Note: This argument cannot be used with -return_string, -of_objects, or
  -dump_placement arguments. This argument does not generate the
  report_place_status output.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -return_sites option.

  -file <arg> - (Optional) Write the report into the specified file. Specify
  the -append option to avoid overwriting the file. If the path is not
  specified as part of the file name, the file is written into the current
  working directory, or the directory from which the Vivado is launched.

  -of_objects <args> - (Optional) Report detailed placement status for these
  sites.

  Note: This argument option requires objects to be specified using the
  get_sites command. In addition, this option cannot be used with the
  -return_sites option.

  -site_type <arg> - (Optional) Only show sites with the specified placement
  status. Valid place states are:

   *  FIXED_CELLS - Sites with a fixed-cell(s)

   *  HAS_INVERTED_IN - Sites with Inverted Inputs

   *  HAS_ROUTE_THRUS - Sites has route thrus

   *  HAS_TIE_OFFS - Site ties some pins off

   *  ILLEGAL_PL - Illegal Placement Sites

   *  INVALID_RS - Invalid Routed Sites

   *  PLACED - Sites has no errors

   *  ROUTE_THRU_SITE - Sites with route thrus

   *  TIE_OFF_SITE - Sites with tie-off

  Note: The -site_type option is ignored if -of_objects is also specified.

  -dump_placement - (Optional) Report the full placement information for
  every used site in the design.

  Note: This a very long report and takes time to generate. Do not use this
  option with the -return_sites option.

  -placement_type - (Optional) Design attributes to check include: PLACEDB,
  PREROUTE, WITH_ROUTING.

  -list_all_sites - (Optional) Report summary placement status for every site
  in the design.

  Note: This option is ignored if -of_objects is also specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the place status for the specified sites:

    report_place_status -of_objects [ get_sites AIE* ]

See Also
   *  place_design


@@@COMMAND: report_power@@@
report_power

Description: 
Run power estimation and display report

Syntax: 
report_power  [-no_propagation] [-hier <arg>] [-hierarchical_depth <arg>]
              [-vid] [-advisory] [-file <arg>] [-name <arg>] [-format <arg>]
              [-xpe <arg>] [-l <arg>] [-return_string] [-append] [-rpx <arg>]
              [-quiet] [-verbose]

Usage: 
  Name                   Description
  ----------------------------------
  [-no_propagation]      Disables the propagation engine to estimate the 
                         switching activity of nets.
  [-hier]                Hierarchy report style (logic, power, or all)
                         Default: power
  [-hierarchical_depth]  Specifies the depth level for textual hierarchical 
                         report
                         Default: 4
  [-vid]                 Voltage ID (VID) of device is used
  [-advisory]            Dump power advisory text report
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-name]                Output the results to GUI panel with this name
  [-format]              Format for the power estimation report: text, xml
                         Default: text
  [-xpe]                 Output the results to XML file for importing into 
                         XPE
  [-l]                   Maximum number of lines to report in detailed 
                         reports (l >= 0)
                         Default: 10
  [-return_string]       Return report as string
  [-append]              Append power report to end of file
  [-rpx]                 Filename to output interactive results to.
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution

Categories: 
Report, Power

Description:

  Run power analysis on the current design, and report details of power
  consumption based on the current operating conditions of the device, and
  the switching rates of the design. The operating conditions can be set
  using the set_operating_conditions command. The switching activity can be
  defined using the set_switching_activity command.

  Switching activity can also be read in from an SAIF file with the read_saif
  command. The Vivado tool will annotate the design nodes with activity from
  the SAIF file and estimate power appropriately.

  Power analysis requires an open synthesized design, or implemented design.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -no_propagation - (Optional) For all undefined nodes power analysis uses a
  vector-less propagation engine to estimate activity. This argument disables
  the propagation engine for a faster analysis of the design.

  -hier [ power | logic | all ] - (Optional) Displays the summary power
  consumption for each level of design hierarchy (power), or the power
  broken-down for different logic elements of the hierarchy (logic), or both
  the power summary and the different logic elements of the design hierarchy
  (all). The default is power.

  -hierarchical_depth <arg> - (Optional) Specifies the depth of the hierarchy
  to report in the "By hierarchy" section of the power report. The default
  depth is 4, which means that it will report the top-level and three
  hierarchical levels of child instances by default. A depth of 0 will report
  all levels of hierarchy. This option is only for textual power report and
  does not impact GUI or rpx reports.

  -vid - (Optional) Use the Voltage ID bit of the target device. Voltage
  identification is a form of adaptive voltage scaling (AVS) that enables
  certain devices in the Virtex-7 family to be operated at a reduced voltage
  of 0.9V while delivering the same specified performance of a device
  operating at the nominal supply voltage of 1.0V. Voltage identification
  capable devices consume approximately 30% lower worst case (maximum) static
  power and correspondingly dissipate less heat.

  -advisory - (Optional) Adds the Advisory table to the Power Report checking
  the design for abnormal switching activity on control signals. This is the
  same table produced by the Power Constraints Advisor feature in the Vivado
  IDE.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results set to report
  the results to.

  -format [ text | xml ] - (Optional) The default format of the output report
  is text. You can also output an XML report. XML output is only valid when
  -file is specified, and cannot be used with -append.

  -xpe <arg> - (Optional) Output the results to an XML file for importing
  into the Xilinx Power Estimator spreadsheet tool. Refer to Xilinx Power
  Estimator User Guide (UG440) for more information.

  -l <arg> - (Optional) Maximum number of lines to report in the Detailed
  Reports section. Valid values are greater than or equal to 0.

  Note: This options also triggers additional levels of detail in the
  Detailed Report section that are not reported when -l is not specified.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -rpx <arg> - (Optional) Specify the file name and path of an Xilinx report
  file (RPX) to write. This is different from writing the report results to a
  file using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a .rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs power analysis, without net propagation, and
  writes the results to an XML file for use in XPE:

    report_power -no_propagation -xpe C:/Data/design1.xpe

See Also:

   *  read_saif
   *  set_switching_activity
   *  set_operating_conditions


@@@COMMAND: report_power_opt@@@
report_power_opt

Description: 
Report power optimizations

Syntax: 
report_power_opt  [-cell <args>] [-file <arg>] [-format <arg>] [-name <arg>]
                  [-append] [-return_string] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-cell]           List of instance names
                    Default: empty
  [-file]           Output file
  [-format]         Specifies how to format the report. Default is 'text', 
                    another option is 'xml'. Only applies if -file is used. 
                    If xml output is used, -append is not allowed.
                    Default: text
  [-name]           Output the results to GUI panel with this name
  [-append]         Append if  existing file. Otherwise overwrite existing 
                    file.
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Power

Description:

  Report power optimizations that have been performed on the design with the
  power_opt_design command.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -cell <args> - (Optional) Report power optimization for the specified cell
  or cell instances. By default, the power optimizations performed on the
  whole design are reported.

  -file <arg> - (Optional) Write the report into a file. The specified file
  will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -format [ text | xml ] - (Optional) Specify the file format of the Power
  Optimization report when used with -file. The default file output is a text
  format file. The Vivado tool can also write an XML format file to allow for
  use by third party applications.

  Note: When -format xml is specified, the -append option is not supported.

  -name <arg> - (Optional) The name to assign to the Power Optimization
  report when the command is run in GUI mode.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option, and is not
  compatible with the XML format.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the power optimizations performed on the
  current design, writing them to the specified file in an XML format:

    report_power_opt -format xml -file C:/Data/power_opt.xml 
    

See Also:

   *  power_opt_design
   *  report_power


@@@COMMAND: report_pr_configuration_analysis@@@
report_pr_configuration_analysis

Description: 
Report reconfigurable partition analysis across multiple configurations

Syntax: 
report_pr_configuration_analysis  [-complexity] [-clocking] [-timing]
                                  [-cells <args>] [-dcps <args>] [-rent]
                                  [-nworst <arg>] [-file <arg>] [-quiet]
                                  [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-complexity]  Run complexity analysis
  [-clocking]    Run clocking analysis
  [-timing]      Run boundary net timing analysis
  [-cells]       List of reconfigurable cell names
  [-dcps]        List of design checkpoints for each reconfigurable cell. The
                 order of dcps must match that of the -cells option.
  [-rent]        Compute Rents component as part of complexity analysis.  
                 Runtime intensive for large designs.
  [-nworst]      Specifies the N worst boundary paths.
                 Default: 10
  [-file]        Filename to output results to. (send output to console if 
                 -file is not used)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Report

Description:

  Important: You must first define the project as a Dynamic Function eXchange
  (DFX) project by setting the PR_FLOW property on the project to TRUE, or by
  using the Tools > Enable Dynamic Function eXchange command.

  Report reconfigurable partition analysis across multiple configurations as
  defined by create_pr_configuration. This report compares each
  Reconfigurable Module that you select to give you input on your DFX design.
  It examines resource usage, floorplanning, clocking, and timing metrics to
  help you manage the overall DFX design. For more information on this
  command refer to the Vivado Design Suite User Guide: Dynamic Function
  eXchange (UG909).

  When this analysis is done, each RM is examined based on information in the
  checkpoints provided. While post-synthesis checkpoints can be supplied, the
  most complete information is not available until after opt_design when all
  the linking and expansion has been done.

Arguments:

  -complexity - (Optional) Perform complexity analysis of the design and
  report the Rent Exponent, Average Fanout, and Primitive Histogram.

  Tip: The -complexity option can be specified with -cells to control the
  analysis of the design or cells.

  -clocking - (Optional) This option focuses the report on clock usage and
  loads for each RM, helping you plan the overall clocking distribution of
  the design.

  -timing - (Optional) This option focuses the report on boundary interface
  timing details, allowing you analyze bottlenecks in and out of RMs.

  -cells <args> - (Option) Generate the report on the specified list of
  reconfigurable cells. The details of the report will be based on the
  specified cells rather than the whole design, or current_instance.

  -dcps <args> - (Optional) List of design checkpoints (DCP) for each
  reconfigurable cell.

  Important: The order of DCP files specified must match the order of the
  -cells option.

  -rent - (Optional) Adds Rent metrics to the complexity analysis. This is
  runtime intensive for large designs, which is why it is not included in
  complexity analysis by default.

  -nworst <arg> - (Optional) Reports the N worst boundary paths. The default
  is 10.

  -file <arg> - (Optional) Write the analysis results into the specified file
  instead of to the Tcl console. The specified file will be overwritten if
  one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs complexity analysis of the design:

    report_pr_configuration_analysis -complexity

See Also:

   *  create_partition_def
   *  create_pr_configuration
   *  delete_reconfig_modules
   *  get_partition_defs
   *  get_reconfig_modules
   *  set_property


@@@COMMAND: report_property@@@
report_property

Description: 
Report properties of object

Syntax: 
report_property  [-all] [-class <arg>] [-return_string] [-file <arg>] [-append]
                 [-regexp] [-quiet] [-verbose] [<object>] [<pattern>]

Returns: 
property report

Usage: 
  Name              Description
  -----------------------------
  [-all]            Report all properties of object even if not set
  [-class]          Object type to query for properties. Not valid with 
                    <object>
  [-return_string]  Set the result of running report_property in the Tcl 
                    interpreter's result variable
  [-file]           Filename to output result to.  Send output to console if 
                    -file is not used
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-regexp]         Pattern is treated as a regular expression
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  [<object>]        Object to query for properties
  [<pattern>]       Pattern to match properties against
                    Default: *

Categories: 
Object, PropertyAndParameter, Report

Description:

  Gets the property name, property type, and property value for all of the
  properties on a specified object, or class of objects.

  Note: list_property also returns a list of all properties on an object, but
  does not include the property type or value.

  You can specify objects for report_property using the get_* series of
  commands to get a specific object. You can use the lindex command to return
  a specific object from a list of objects:

    report_property [lindex [get_cells] 0] 
    

  However, if you are looking for the properties on a class of objects, you
  should use the -classoption instead of an actual object.

  This command returns a report of properties on the object, or returns an
  error if it fails.

Arguments:

  -all - (Optional) Return all of the properties for an object, even if the
  property value is not currently defined.

  -class <arg> - (Optional) Return the properties of the specified class
  instead of a specific object. The class argument is case sensitive, and
  most class names are lower case.

  Note: -class cannot be used together with an <object>.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -regexp - (Optional) Specifies that the search <patterns> are written as
  regular expressions. AMD regular expression Tcl commands are always
  anchored to the start of the search string. You can add ".*" to the
  beginning or end of a search string to widen the search to include a
  substring. See http://perldoc.perl.org/perlre.html for help with regular
  expression syntax.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <object> - (Optional) A single object on which to report properties.

  Note: If you specify multiple objects you will get an error.

  <pattern> - (Optional) Match the available properties on the <object> or
  -class against the specified search pattern. The <pattern> applies to the
  property name, and only properties matching the specified pattern will be
  reported. The default pattern is the wildcard `*` which returns a list of
  all properties on the specified object.

  Note: The search pattern is case sensitive, and most properties are UPPER
  case.

Examples:

  The following example returns all properties of the specified object:

    report_property -all [get_cells cpuEngine] 
    

  The following example returns the properties of the specified class of
  objects, rather than an actual object:

    report_property -class bel 
    

  The following example returns properties on the current hw_device that
  match the specified pattern, specified as a regular expression:

    report_property [current_hw_device] -regexp .*PROG.* 
    

  To determine which properties are available for the different design
  objects supported by the tool, you can use multiple report_property
  commands in sequence. The following example returns all properties of the
  specified current objects:

    report_property -all [current_project]  
    report_property -all [current_fileset]   
    report_property -all [current_design]  
    report_property -all [current_run] 
    

See Also:

   *  create_property
   *  current_design
   *  current_fileset
   *  current_hw_device
   *  current_project
   *  current_run
   *  get_cells
   *  get_property
   *  list_property
   *  list_property_value
   *  reset_property
   *  set_property


@@@COMMAND: report_pulse_width@@@
report_pulse_width

Description: 
Report pulse width check

Syntax: 
report_pulse_width  [-file <arg>] [-append] [-name <arg>] [-return_string]
                    [-warn_on_violation] [-all_violators]
                    [-significant_digits <arg>] [-limit <arg>] [-min_period]
                    [-max_period] [-low_pulse] [-high_pulse] [-max_skew]
                    [-min_skew] [-clocks <args>] [-no_header] [-cells <args>]
                    [-rpx <arg>] [-quiet] [-verbose] [<objects>]

Usage: 
  Name                   Description
  ----------------------------------
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append the results to file, don't overwrite the 
                         results file
  [-name]                Results name in which to store output
  [-return_string]       Return report as string
  [-warn_on_violation]   Issue a critical warning when the report contains a 
                         timing violation
  [-all_violators]       Only report pins/ports where check violations occur
  [-significant_digits]  Number of digits to display: Range: 0 to 3
                         Default: 3
  [-limit]               Number of checks of a particular type to report per 
                         clock: Default is 1
                         Default: 1
  [-min_period]          Only report min period checks
  [-max_period]          Only report max period checks
  [-low_pulse]           Only report min low pulse width checks
  [-high_pulse]          Only report min high pulse width checks
  [-max_skew]            Only report max skew checks
  [-min_skew]            Only report min skew checks
  [-clocks]              List of clocks for which to report min pulse 
                         width/min period checks
  [-no_header]           Do not generate a report header
  [-cells]               Run report_pulse_width on the specified cell(s)
  [-rpx]                 Filename to output interactive results to.
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution
  [<objects>]            List of objects to check min pulse width with

Categories: 
Report, Timing

Description:

  Reports the pulse width of the specified clock signals in the clock network
  and upon reaching the flip-flop. This command also performs high pulse
  width checking, using maximum delay for the rising edge and minimum delay
  for the falling edge of the clock. Performs low pulse width checking using
  minimum delay for the rising edge, and maximum delay for the falling edge.
  This results in a worst case analysis for the current Synthesis or
  Implemented Design because it assumes worst-case delays for both rising and
  falling edges. This command also reports the maximum skew, or maximum
  timing separation allowed between clock signals and minimum skew, or minimum 
  separation allowed between data signals. Please note that min skew is only
  reported if violations are found on a post-route design.

  The report includes minimum pulse width, maximum pulse width, low pulse
  width, high pulse width, max skew and min skew checks by default. However, selecting
  a specific check will disable the other checks unless they are also
  specified.

  The default report is returned to the standard output, but can be
  redirected to a file, or to a Tcl string variable for further processing.
  The report is returned to the standard output by default, unless the -file,
  -return_string, or -name arguments are specified.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. If the
  specified file already exists, it will be overwritten by the new report,
  unless the -append option is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results set for the GUI.
  Pulse Width reports in the GUI can be deleted by the delete_timing_results
  command.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -warn_on_violation - (Optional) Specify that a Critical Warning will be
  generated by the Vivado Design Suite when the report contains a violation.

  -all_violators - (Optional) Report only the <objects> where violations are
  found.

  -significant_digits <arg> - (Optional) The number of significant digits in
  the output results. The valid range is 0 to 3. The default setting is 2
  significant digits.

  -limit <arg> - (Optional) The number of checks of a particular type to
  report per clock. This is a value >= 1, and the default is 1.

  -min_period - (Optional) Report minimum period checks.

  -max_period - (Optional) Report maximum period checks.

  -low_pulse - (Optional) Report minimum low pulse width checks.

  -high_pulse - (Optional) Report minimum high pulse width checks.

  -max_skew - (Optional) Check the skew constraints between two clock pins.

  -min_skew - (Optional) Check the min skew constraints between two data pins.

  Note: The default of the report_pulse_width command is to report
  min_period, max_period, low_pulse,high_pulse, max_skew, and min_skew. Specifying one
  or more of these options configures the command to only report the
  specified checks.

  -clocks <arg> - (Optional) Clocks to report pulse width and period checks.
  All clocks are checked if the -clocks option is not specified.

  -no_header - (Optional) Eliminate the report header from the results. This
  can be especially useful when returning the results as a string with
  -return_string.

  -cells <arg> - (Option) Generate the report for the specified hierarchical
  cells. The details of the report will be based on the specified cells
  rather than the whole design.

  -rpx <arg> - (Optional) Specify the file name and path of an Xilinx report
  file (RPX) to write. This is different from writing the report results to a
  file using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a .rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) The pin objects to report the pulse width from. All
  pins are checked if no <objects> are specified.

Examples:

  The following example performs the minimum period and low pulse width
  check, returning the results to a named results set in the GUI:

    report_pulse_width -min_period -low_pulse -name timing_1 
    

See Also:

   *  delete_timing_results


@@@COMMAND: report_qor_assessment@@@
report_qor_assessment

Description: 
Feasibility Checks

Syntax: 
report_qor_assessment  [-file <arg>] [-csv_output_dir <arg>] [-name <arg>]
                       [-append] [-exclude_methodology_checks]
                       [-max_paths <arg>] [-return_string]
                       [-full_assessment_details] [-quiet] [-verbose]

Usage: 
  Name                           Description
  ------------------------------------------
  [-file]                        Filename to output results to. (send output 
                                 to console if -file is not used)
  [-csv_output_dir]              Reports directory consisting of RQA timing 
                                 paths.csv and dont touch.csv 
  [-name]                        Output the results to GUI panel with this 
                                 name
  [-append]                      Append the results to file, do not overwrite
                                 the results file
  [-exclude_methodology_checks]  Methodology checks are skipped
  [-max_paths]                   Number of paths to consider for suggestion 
                                 analysis
                                 Default: 100
  [-return_string]               Return report as string
  [-full_assessment_details]     Show detailed table
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution

Categories: 
Feasibility, Report, Timing

Description:

  This command look for trouble spots in the design and assesses the
  likelihood of a design meeting design goals. This command requires an open
  elaborated, synthesized or implemented design for analysis.

  The Report QoR Assessment covers multiple categories:

   *  Design Methodology

   *  Synthesis

   *  Implementation

   *  Design Hierarchy

   *  Partial Reconfiguration

   *  Floorplanning

  The report_qor_assessment command includes a subset of report_methodology
  checks identifying bad practices that can lead to an expected problem. Yet,
  report_qor_assessment is also more comprehensive than report_methodology,
  because it includes other checks that are not necessarily bad practices but
  may have low success due to the structure, style, size, or complexity of
  the current design.

  A key feature of Report QOR Assessment is the ability to predict certain
  conditions that lead to congestion and performance degradation. This
  command can be run at any stage of the implementation flow after synthesis.
  The report_qor_assessment command will return a score from 1 - 5, where 1
  is a failing grade, and 5 means the design will likely pass implementation
  and meet timing.

  For violations found by Report QOR Assessment, the Report QOR Suggestions
  command will make recommendations on how to avoid issues, or modify the
  design to improve results.

Arguments:

  -file <arg> - (Optional) Write the QOR Assessment report into the specified
  file. The specified file will be overwritten if one already exists, unless
  -append is also specified.

  Note: If the path is not specified as part of the file name for either
  -file or -csv, the file will be written into the current working directory
  that can be identified using the [pwd] Tcl command.

  -csv_output_dir - Directory to write supporting CSV files. CSV files contain:

   *  Timing path details and show suggestions that are applicable to the
      timing path.

   *  Cells and nets with DONT_TOUCH properties

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -exclude_methodology_checks - (Optional) By default, methodology checks are
  included in the report. This switch prevents methodology checks being
  reported and reduces the time taken to execute the command.

  -report_all_suggestions - (Optional) When running report_qor_assessment
  followed by report_qor_suggestions, this option should match in both
  commands to reduce the compile time.

  -max_paths <arg> - (Optional) Specify the number of critical paths to
  analyze. The default is the 100 worst timing paths.

  -full_assessment_details - (Optional) In the Details table, report items
  that have passed the checks performed.

  -return_string - (Optional) Direct the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  -name - (Optional) Specifies the name of the results set for the GUI.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Report suggestions after analyzing the worst 10 paths.

    report_qor_assessment -max_paths 10

See Also:

   *  report_design_analysis
   *  report_qor_suggestions


@@@COMMAND: report_qor_suggestions@@@
report_qor_suggestions

Description: 
Recommend QoR Suggestions

Syntax: 
report_qor_suggestions  [-file <arg>] [-csv_output_dir <arg>] [-name <arg>]
                        [-append] [-return_string] [-max_strategies <arg>]
                        [-max_paths <arg>] [-no_split]
                        [-report_all_suggestions] [-cells <args>]
                        [-of_objects <args>] [-quiet] [-verbose]

Usage: 
  Name                       Description
  --------------------------------------
  [-file]                    Filename to output results to. (send output to 
                             console if -file is not used)
  [-csv_output_dir]          Output Dir
  [-name]                    Output the results to GUI panel with this name
  [-append]                  Append the results to file, don't overwrite the 
                             results file
  [-return_string]           Return report as string
  [-max_strategies]          Number of strategies to suggest
                             Default: 3
  [-max_paths]               Number of paths to consider for suggestion 
                             analysis
                             Default: 100
  [-no_split]                Report without spliting the lines in tables
  [-report_all_suggestions]  Report all suggestions
  [-cells]                   Report QOR suggestions for a given cell
  [-of_objects]              List of QoR suggestion objects
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution

Categories: 
Feasibility, Report, Timing, Object

Description:

  Report design and tool option recommendations related to improving the
  quality of results (QoR). The report looks at timing constraints, netlist
  characteristics, failing timing paths, and congestion information to
  determine suggestions that can enhance the QoR. The report can be generated
  after synthesis, or after any implementation step, but requires a design to
  be open.

  The report_qor_suggestions command creates QoR suggestion objects related
  to the suggestions identified. These suggestion objects can be enabled for
  use by the Vivado tools to improve the quality of synthesis and
  implementation results. Some of these suggestions can be automatically
  applied, and some may require more manual intervention to implement design
  changes, or write Tcl design constraints.

  Suggestion objects can be obtained using the get_qor_suggestions command.
  The QoR objects have properties that define what step they are
  APPLICABLE_FOR, if they are ENABLED to be used, if they can be
  automatically applied (AUTO), or what step the suggestions was
  GENERATED_AT. A suggestion must be ENABLED and the APPLICABLE_FOR synthesis
  or implementation step run in order for a suggestion to be applied to the
  design.

  You can write the suggestions from the design into an RQS file using the
  write_qor_suggestions command. After resetting the design flow to the
  appropriate step, you can read suggestions back into the design using the
  read_qor_suggestions command, and then run the synthesis or implementation
  step to apply the enabled suggestions.

  The recommended method for working with QoR suggestions is:

   *  Run the report to create recommendations (report_qor_suggestions)

   *  Write the suggestions to an RQS file on disk (write_qor_suggestions).

   *  Reset the design to the appropriate step.

   *  Read the RQS file into the design to restore the suggestions
      (read_qor_suggestions).

   *  Run the synthesis or implementation step to apply the suggestion
      (synth_design, opt_design...).

  For strategy suggestions, a machine learning based analysis is conducted
  and the best 3 strategies are reported. This analysis is only conducted on
  a routed design that has been implemented with

   *  the Default or Explore directive for opt_design and

   *  place_design, phys_opt_design, and route_design must have the directive
      set to Default or Explore. Mix and match of directives is not allowed
      within these commands.

  Strategy suggestions do not apply to synthesis. Unlike the non-strategy
  suggestions, only one strategy suggestion can be applied to each run.

  The recommended method for working with QoR strategy suggestions is:

   *  Run the report to create strategies and other
      recommendations(report_qor_suggestions).

   *  Write the suggestions to a directory disk. There is one RQS file per
      strategy (write_qor_suggestions -strategy_dir).

   *  Update all the directive settings to -directive RQS for opt_design,
      place_design, phys_opt_design, and route_design commands.

   *  For each run, read one RQS file into the design. This will contain the
      strategy suggestion and all exported non-strategy
      suggestions(read_qor_suggestions).

   *  Run the implementation step from the opt_design command to apply the
      strategy and all the design suggestions.

Arguments:

  -file <arg> - (Optional) Write the QoR report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name for either
  -file or -csv, the file will be written into the current working directory
  that can be identified using the [pwd] Tcl command.

  -csv_output_dir - Directory to write supporting CSV files. CSV files contain:

   *  Timing path details and show suggestions that are applicable to the
      timing path.

   *  Cells and nets with DONT_TOUCH properties

  -name <arg> - (Optional) The name of the view to display in the Vivado IDE
  when run in GUI mode. Only one QoR suggestion report can be opened in the
  Vivado tool at one time. This makes it different from most other available
  reports. If there is already an open report in the Report view, that report
  will be closed and a new report is opened.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Direct the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -max_strategies <args> - (Optional) Specify the maximum number of ML
  strategies returned. The algorithm may generate less than the maximum
  specified number if not enough suitable strategies are identified. Default
  is 3.

  -max_paths <arg> - (Optional) Specify the number of critical paths to
  analyze. The default is the 100 worst timing paths per timing group. Timing
  paths that have a WNS > 0.000 are ignored unless -report_all_suggestions is
  set.

  -no_split - (Optional) Do not split the lines in the table when generating
  the report.

  -report_all_suggestions - (Optional) Relaxes the criteria that suppresses
  suggestions.

   *  Utilization suggestions do not need to save a critical resource

   *  Congestion suggestions are offered on designs when timing is closed

   *  Timing suggestions on paths that have a WNS < +0.500

  -cells <arg> - (Optional) Report QoR suggestions for the specified
  hierarchical cells and all data paths passing through them.

  -of_objects <args> - (Optional) Report existing suggestions defined by the
  specified list of QoR objects as returned by the get_qor_suggestions
  command. When -of_objects is specified, the report does not analyze the
  design to identify new suggestions, it merely reports the specified
  existing suggestion objects.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Report suggestions after analyzing the worst 10 paths.

    report_qor_suggestions -max_paths 10

  Report existing suggestions in the design from a prior run of
  report_qor_suggestions.

    report_qor_suggestions -of_objects [get_qor_suggestions]

See Also:

   *  get_qor_suggestions
   *  read_qor_suggestions
   *  report_qor_assessment
   *  write_qor_suggestions


@@@COMMAND: report_ram_utilization@@@
report_ram_utilization

Description: 
Report configuration about RAMs in design

Syntax: 
report_ram_utilization  [-append] [-file <arg>] [-csv <arg>] [-return_string]
                        [-cells <args>] [-include_path_info] [-include_lutram]
                        [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name                  Description
  ---------------------------------
  [-append]             Append to existing file
  [-file]               Filename to output results to.
  [-csv]                Write detailed tables to the CSV filename specified
  [-return_string]      Return report as string
  [-cells]              Limits the reporting to only those memory arrays that
                        are contained within the specified cells.
  [-include_path_info]  Adds path info to the RAM inputs/outputs
  [-include_lutram]     Adds LUTRAMs to the report
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Report

Description:

  Reports RAM usage in the current design at any stage after synthesis. It is
  recommended to run this report after optimizations in opt_design have been
  run. The report is returned to the standard output, unless the -file, -csv,
  or -return_string arguments are used.

  The report details the following tables:

   *  Summary: The Summary table shows the utilization by RAM type, broken
      down into URAM, Block RAM and LUTRAM. For each RAM type, it is broken
      down into the individual primitives. Also detailed is the inferred
      primitive %. If using a synthesis tool other than Vivado Synthesis or
      instantiation of primitives, then rams will be reported under
      instantiated primitives.

      The information in the summary can be used to determine if there are
      imbalances in the utilization of different types of RAMs. Based on the
      summary, a design might benefit from retargeting heavily used
      primitives to lesser used ones at the cost of being less efficient.

      Additionally LUTRAM implementation can be evaluated. LUTRAM primitives
      vary in their efficiency of Bits/LUT. For example, a RAM32M16 uses 8
      LUTs and can have up to 14 data bits. Using RAM32X1D primitives, 8 LUTs
      yields a maximum of 8 bits when LUT combined.

   *  Memory Description: The Memory Description table gives an RTL look at
      the inferred memories. It refers to memories that are inferred directly
      or indirectly using XPMs. The table is ordered by the total number of
      bits in the memory array. Items reported are memory type and mapping.

      The mapping format is <report>:<physical>:<depth>x<width>

  The following tables are repeated for inferred and instantiated primitives. 
  Collectively they are referred to as the detailed tables.

   *  Memory Utilization: The Memory Utilization table details how each
      memory array is mapped to primitives. Also provided is information on
      how efficient the mapping is and whether the mapping is limited by
      depth or width.

   *  Memory Performance: The Memory Performance table details performance
      aspects of the RAM. It includes information whether the output register
      is used, cascading has been used. If the -include_path_info switch is
      specified there is extra information on the worst path from each pin
      listed.

   *  Memory Power: The Memory Power table details what power aspects of the
      RAM have been used. It includes information on cascading and whether
      the enable pin is tied to POWER or a signal.

  This command returns the requested report to the Tcl console, to a file, or
  as a string; or returns an error if it fails.

Arguments:

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option is only valid for the text report specified using
  the -file option and not the CSV file.

  -file <arg> - (Optional) Writes the report into the specified file. This
  command overwrites any files of the same name without warning.

  -csv <arg> - (Optional) Writes the report into the specified CSV file. This
  command overwrites any files of the same name without warning.

  Note: -file and -csv work in similar fashion. If the path is not specified 
  as part of the file name, the file will be written into the current working
  directory, or the directory from which the tool was launched. If neither
  -csv or -file are specified, the text version of the report is returned in 
  the log file.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -cells <arg> - (Optional) Report the RAM resources utilized by one or more
  hierarchical cells in the current design. The cells must be specified as
  objects, using get_cells, rather than by name.

  -include_path_info - (Optional) Include a shorthand representation of the
  worst case timing path from the given pins under the Memory Performance
  table of the report.

  Note: This option can add significant runtime to the report.

  -include_lutram - (Optional) Include LUTRAMs in the detailed tables. By
  default, only block RAMs and ultra RAMs are reported.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will 
  be trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example provides a full report of the inferred and
  non-inferred BlockRAM and UltraRAM resources and writes the results to both
  the specified text and CSV files:

    report_ram_utilization -csv ./ram_util.csv -file ./ram_util.txt

  The following example provides a full report of the inferred and
  non-inferred BlockRAM, UltraRAM and LUTRAM resources and writes the results
  to the specified CSV file:

    report_ram_utilization -csv ./ram_util.csv -include_lutram

See Also:

   *  get_cells
   *  report_utilization




@@@COMMAND: report_route_status@@@
report_route_status

Description: 
Report on status of the routing.

Syntax: 
report_route_status  [-return_nets] [-return_string] [-file <arg>] [-append]
                     [-of_objects <args>] [-route_type <arg>] [-list_all_nets]
                     [-show_all] [-dump_routes] [-has_routing]
                     [-boolean_check <arg>] [-ignore_cache] [-to_load <args>]
                     [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-return_nets]    Return a list of nets that match the given -route_type 
                    type
  [-return_string]  Set the result of running the report in the Tcl 
                    interpreter's result variable
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append the results to file, don't overwrite the results 
                    file
  [-of_objects]     Report detailed routing for these routes
  [-route_type]     Only show routes with the given status: 
                    UNPLACED|UNPLACED_ALL|UNROUTED|PARTIAL|GAPS|CONFLICTS|ANT
                    ENNAS|NODRIVER|MULTI_DRIVER|LOCKED_NODES|HAS_ROUTING|INTR
                    ASITE|NOLOADS|HIERPORT|ROUTED (ignored if -of_objects is 
                    used)
  [-list_all_nets]  List full route information for every net in the design 
                    (ignored if -of_objects is used)
  [-show_all]       List all relevant pins for routes marked as UNPLACED or 
                    PARTIAL routes and list all relevant nodes for routes 
                    marked as ANTENNAS or CONFLICTS routes (by default only 
                    the first 15 pins or nodes are listed for a route)
  [-dump_routes]    Show the full routing tree for every routed net in the 
                    design.  This is VERY VERBOSE.
  [-has_routing]    Returns 0 if there is no routing currently stored for 
                    this design and 1 if there is. All other options are 
                    ignored.
  [-boolean_check]  Returns 1 if the given flag is true and 0 if it is not.  
                    Value flags that can be checked are: 
                    PLACED_FULLY|PARTIALLY_ROUTED|ROUTED_FULLY|ERRORS_IN_ROUT
                    ES. All other options are ignored (cannot be used with 
                    -has_routing).
  [-ignore_cache]   Throw away all cached information and recalculate the 
                    route status for the entire design (slow)
  [-to_load]        Show just one branch of the given route from the driver 
                    to the given load
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Reports the state of routing in the current design.

  The route status report can include a wide range of information, from a
  simple 1 if the design has routing, to a complete route tree for each net
  in the design.

Arguments:

  -return_nets - (Optional) Returns a list of nets that can be processed by
  other Tcl commands. When the -return_nets argument is used, it is required
  to also use the -route_type argument with a valid route state.

  Note: This argument cannot be used with -return_string, -of_objects,
  -list_all_nets, -dump_routes, -has_routing, -boolean_check or
  -file arguments.
  This argument will not generate the report_route_status output.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -of_objects <args> - (Optional) Report the full routing tree for the
  specified route, net, or xdef_net objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -route_type <arg> - (Optional) Only show routes with the specified route
  status. Valid route states are:

   *  ANTENNAS - the net has antennas or islands. Antennas are connected
      routing that don't go to a valid load, islands are pieces of
      disconnected routing in the route tree.

   *  CONFLICTS - the net has conflicts (either multiple routes share the
      same node, or a site internally has a logical net driving a site pin
      and that site pin has routing to it from a different logical net, or a
      routed site reported that it was invalid).

   *  HIERPORT - the net has either no loads or no drivers and is also
      connected to a top level terminal port.

   *  INTRASITE - is fully routed inside a site. No routing required.

   *  GAPS - the net has known gaps in the route tree.

   *  HAS_ROUTING - the net has a route tree associated with it.

   *  LOCKED_NODES - the net has locked routing nodes in it.

   *  NODRIVER - the net has no drivers.

   *  MULTI_DRIVER - the net has multiple drivers.  

   *  NOLOADS - the net has no loads and so needs no routing.

   *  PARTIAL - the net has routing but is not fully routed.

   *  ROUTED - the net is fully routed with no errors.

   *  UNPLACED - the net has any unplaced pins.

   *  UNPLACED_ALL - none of the pins for the net are placed.

   *  UNROUTED - the net needs to be routed but has no route data.

  Note: The -route_type option is ignored if -of_objects is also specified.

  -list_all_nets - (Optional) Report summary route status for every net in
  the design, or those selected by -route_type if it is given.

  Note: This option is ignored if -of_objects is specified.

  -show_all - (Optional) Report all relevant pins for routes marked as
  UNPLACED or PARTIAL routes and list all relevant nodes for routes marked as
  ANTENNAS or CONFLICTS routes. As a default only the first 15 pins or nodes
  are listed for a given route.

  -dump_routes - (Optional) Report the full routing tree for every routed net
  in the design.

  Note: This is a very long report, and can take some time to generate.

  -has_routing - (Optional) Returns false (0) if the design is unrouted, and
  returns true (1) if the design has routing. All other options are ignored
  when -has_routing is specified.

  Note: Has routing does not mean fully routed.

  -boolean_check <arg> - (Optional) Returns 1 if the specified design
  attribute is true, and returns 0 if it is not true. Design attributes that
  can be checked include: PLACED_FULLY, PARTIALLY_ROUTED, ROUTED_FULLY,
  ERRORS_IN_ROUTES.

  Note: This option cannot be used with -has_routing or -return_nets.

  -ignore_cache - (Optional) By default the report_route_status command is
  iterative, and only updates the route information for new nets and routes
  as the design is implemented. This argument will cause the command to
  ignore the cached information and regenerate the report for the entire
  design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  -to_load - (Optional) Show just one branch of the given route from the driver to the given load.

  Note: This option cannot be used without -of_objects option.
  Both options must take one argument only.

Examples:

  The following example reports the route status for the specified nets:

    report_route_status -of_objects [get_nets u4*]  
    

  The following example returns a list of nets that have routing but are not
  fully routed to the Find Results window in the Vivado IDE.

    show_objects [report_route_status -return_nets -route_type PARTIAL]

See Also:

   *  route_design


@@@COMMAND: report_run_status@@@
report_run_status

Description: 
Report reason for staleness of run.

Syntax: 
report_run_status  [-quiet] [-verbose] <runs>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <runs>      Run whose status needs to report

Categories: 



@@@COMMAND: report_sdx_utilization@@@
report_sdx_utilization

Description: 
Compute Sdx utilization of device and display report

Syntax: 
report_sdx_utilization  [-file <arg>] [-name <arg>] [-kernels <args>] [-quiet]
                        [-verbose]

Returns: 
Report

Usage: 
  Name        Description
  -----------------------
  [-file]     Filename to output results to. (send output to console if -file
              is not used)
  [-name]     Output the results to GUI panel with this name
  [-kernels]  Report utilization of given list of kernels
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Report


@@@COMMAND: report_seu@@@
report_seu

Description: 
Display all the SEEP changes on the device

Syntax: 
report_seu  [-file <arg>] [-append] [-return_string] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name              Description
  -----------------------------
  [-file]           Filename to output results to. Send output to console if 
                    -file is not used.
  [-append]         Append to existing file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Many devices, especially those that operate in space or in high altitudes,
  must be able to handle single-event upsets (SEUs), caused when charged
  particles collide with electronic circuitry.

  Xilinx IP cores, like the Soft Error Mitigation (SEM) core, and design
  techniques such as triple module redundancy (TMR), let you design layers of
  SEU protection into your products. If one circuit fails, redundant circuits
  perform a voting function to identify and correct the circuit that has
  failed. See https://www.xilinx.com/products/quality/single-event-upsets.htm
  for more information.

  This command reports the device resources used for mitigation of
  single-event upsets (SEU) and other single-event effects (SEEs) in the
  design.

  This command returns the SEU report, or returns an error if it fails.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. This
  command will overwrite any files of the same name without warning.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example writes the SEU report to the specified file:

    report_seu -file C:/Data/seu_mitigation.txt 
    

See Also:

   *  synth_design


@@@COMMAND: report_sim_device@@@
report_sim_device

Description: 
Report the list of correct SIM_DEVICE attribute values for cell types in the target part

Syntax: 
report_sim_device  [-part <arg>] [-file <arg>] [-append] [-return_string]
                   [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name              Description
  -----------------------------
  [-part]           Part
  [-file]           Output file
  [-append]         Append the results to file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Cells with the SIM_DEVICE attribute may have slightly different behavior
  when applied in different families of devices. The value of SIM_DEVICE
  directs the simulator to match the behavior of the cell to the target
  device. Use report_sim_device to report the correct SIM_DEVICE attribute
  value to use for cell types in the target part.

  Important: Unless -part is specified, the currently loaded part is used
  as the target part for this command.

Arguments:

  -part <arg> - (Optional) Target part

  -file <arg> - (Optional) Write the SIM_DEVICE report into the specified
  file. The specified file will be overwritten if one already exists, unless
  -append is also specified.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example generates the report of SIM_DEVICE attributes and
  correct values to use for the xcvu065-ffvc1517-1-i part.

    report_sim_device -part xcvu065-ffvc1517-1-i

See also:

   *  report_sim_version
   *  get_primitives
   *  get_parts


@@@COMMAND: report_sim_version@@@
report_sim_version

Description: 
Report the list of correct SIM_VERSION attribute values for cell types in the target part

Syntax: 
report_sim_version  [-part <arg>] [-file <arg>] [-append] [-return_string]
                    [-unisim <arg>] [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name              Description
  -----------------------------
  [-part]           Part
  [-file]           Output file
  [-append]         Append the results to file
  [-return_string]  Return report as string
  [-unisim]         Return the SIM_VERSION for the unisim if present
  [-quiet]          Quiet option
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Cells with the SIM_VERSION attribute may have slightly different behavior
  when applied in different devices. The value of SIM_VERSION directs the
  simulator to match the behavior of the cell to the target device. Use 
  report_sim_version to report the correct SIM_VERSION attribute value to 
  use for cell types in the target part.

  Important: Unless -part is specified, the currently loaded part is used 
  as the target part for this command.

Arguments:

  -part <arg> - (Optional) Target part

  -file <arg> - (Optional) Write the SIM_VERSION report into the specified
  file. The specified file will be overwritten if one already exists, unless
  -append is also specified.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  Note: This argument cannot be used with the -file option.

  -unisim <arg> - (Optional) Report the SIM_VERSION attribute value to use 
  only for the named unisim, if SIM_VERSION is an attribute of the unisim.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example generates the report of SIM_VERSION attributes and
  correct values to use for the xcvu065-ffvc1517-1-i part.

    report_sim_version -part xcvp1202-vsva2785-2LP-e-S

See also:

   *  report_sim_device
   *  get_primitives
   *  get_parts


@@@COMMAND: report_simlib_info@@@
report_simlib_info

Description: 
Report info of simulation libraries

Syntax: 
report_simlib_info  [-file <arg>] [-append] [-quiet] [-verbose] <path>

Usage: 
  Name        Description
  -----------------------
  [-file]     Output file
              Default: report_simlib_info.log
  [-append]   Append mode
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <path>      Specify the path for pre-compiled libraries

Categories: 
Simulation

Description:

  Report information on libraries compiled by the compile_simlib command.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <path> - (Required) The path to the compiled simulation library.

Examples:

  The following example reports information related to the compiled
  simulation library at the specified path:

    report_simlib_info C:/Data/compiled_simlib 
    

See Also:

   *  compile_simlib


@@@COMMAND: report_ssn@@@
report_ssn

Description: 
Run SSN analysis on the current package and pinout

Syntax: 
report_ssn  [-name <arg>] [-return_string] [-format <arg>] [-file <arg>]
            [-append] [-phase] [-quiet] [-verbose]

Returns: 
ssn report

Usage: 
  Name              Description
  -----------------------------
  [-name]           Output the results to GUI panel with this name
  [-return_string]  Return report as string
  [-format]         Report format.  Valid arguments are CSV, HTML, TXT
                    Default: csv
  [-file]           Filename to output results to. (send output to console if
                    -file is not used)
  [-append]         Append the report to the specified file
  [-phase]          Account for multi-clock phase in the analysis
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Perform a simultaneous switching noise (SSN) analysis of the current
  design. The SSN analysis is an accurate method for predicting how output
  switching affects interface noise margins. The calculation and estimates
  are based on a range of variables intended to identify potential
  noise-related issues in your design and should not be used as final design
  "sign off" criteria.

  SSN analysis provides estimates of the disruption that simultaneously
  switching outputs can cause on other output ports in the I/O bank. The SSN
  predictor incorporates I/O bank-specific electrical characteristics into
  the prediction to better model package effects on SSN.

  The report_ssn command can be affected by the temperature grade of the
  selected device as defined by the -grade option of the
  set_operating_condition command. Setting the temperature grade prior to
  running noise analysis lets you see how noisy signals can be on Commercial,
  Extended, Industrial, Q-Grade, or Military grade devices.

  By default, report_ssn assumes that every port toggles asynchronously. This
  results in a worst-case noise analysis, which may be overly pessimistic.
  The -phase option lets you consider clocking information available in the
  design to more accurately report SSN noise. Clocks must be defined using
  the create_clock and create_generated_clock commands. The period, phase
  shift and duty cycle of the generated clocks have significant impact on SSN
  analysis.

  The report_ssn command provides a detailed SSN analysis for AMD UltraScale
  architecture devices, AMD Virtex 7, AMD Kintex 7, and AMD Artix 7 devices.
  The report is returned to the standard output, unless the -file,
  -return_string, or -name arguments are specified.

  Tip: Not all parts support the report_ssn command. The AMD Vivado Design
  Suite returns an error if you run report_ssn on a target part that does not
  support SSN analysis. You can query the SSN_REPORT property of a part to
  see if it supports the command. Refer to the Examples for more information.

Arguments:

  -name <arg> - (Optional) Specifies the name of the results to output to the
  GUI.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  Note: This argument cannot be used with the -file option.

  -format [ CSV | HTML | TXT ] - (Optional) Specifies the format of the
  output as either comma-separated values (CSV), HTML, or an ASCII (TXT)
  file. The default output is CSV.

  Note: The format applies when -file is specified, but is otherwise ignored.

  -file <arg> - (Optional) Write the SSN report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - Append the output of the command to the specified file rather
  than overwriting it.

  Note: The -append option can only be used with the -file option.

  -phase - (Optional) Consider clock switching cycles in SSN analysis to
  provide a more accurate result.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs an SSN analysis on the current design,
  formats the output as HTML, and writes the output to the specified file:

    report_ssn -format html -file C:/Data/devSSN.html

  The following example performs an SSN analysis, with phase analysis, and
  returns the output to a string which is stored in the specified variable:

    set devSSN [report_ssn -phase -format html -return_string]

  Note: The -format argument in the preceding example is ignored in the
  absence of -file.

  The following example queries the part in the current project to see if it
  supports the report_ssn command, and then gets a list of parts from the
  same part family that support the command:

    get_property SSN_REPORT [get_property PART [current_project]]
    get_parts -filter "FAMILY == [get_property FAMILY [get_property PART \
    [current_project]]] && SSN_REPORT"

See Also:

   *  create_clock
   *  create_generated_clock
   *  get_parts
   *  get_property
   *  reset_ssn
   *  report_property
   *  set_operating_conditions


@@@COMMAND: report_switching_activity@@@
report_switching_activity

Description: 
Get switching activity on specified objects

Syntax: 
report_switching_activity  [-static_probability] [-signal_rate] [-toggle_rate]
                           [-default_static_probability] [-default_toggle_rate]
                           [-average] [-file <arg>] [-return_string] [-append]
                           [-hier] [-all] [-type <args>] [-quiet] [-verbose]
                           [<objects>...]

Usage: 
  Name                           Description
  ------------------------------------------
  [-static_probability]          Report static probability
  [-signal_rate]                 Report signal rate
  [-toggle_rate]                 Report toggle rate
  [-default_static_probability]  Report default static probability
  [-default_toggle_rate]         Report default toggle rate
  [-average]                     Report the average switching activity for 
                                 the specified objects.
  [-file]                        Filename to output results to. (send output 
                                 to console if -file is not used)
  [-return_string]               Return switching activity as string
  [-append]                      Append switching activity to end of file
  [-hier]                        Hierarchically reports the switching 
                                 activity on nets within a hierarchical 
                                 instance provided via <objects> option.
  [-all]                         Report switching activities for all nets for
                                 the design.
  [-type]                        Specify nodes in a specific category.  List 
                                 of valid type values: io_output, 
                                 io_bidir_enable, register, lut_ram, lut, 
                                 dsp, bram_enable, bram_wr_enable, gt_txdata,
                                 gt_rxdata.
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution
  [<objects>]                    objects

Categories: 
Report

Description:

  This command is used to report different kinds of switching activity on
  design nets, ports, pins, and cells in the current synthesized or
  implemented design. These include simple signal rate and simple static
  probability on nets, ports, and pins; and state dependent static
  probabilities on cells.

  The reported values are defined using the set_switching_activity command.

  Note: This command returns the switching activity for the specified
  objects, or the current design.

  By default the report is written to the Tcl console or STD output. However,
  the results can also be written to a file or returned as a string if
  desired.

Arguments:

  -static_probability - (Optional) Specifies that the command returns static
  probability as part of the report.

  -signal_rate - (Optional) Specifies that the command returns the signal
  rate as part of the report.

  -toggle_rate - (Optional) Reports the toggle rate (%) as the switching rate
  of the output of synchronous logic elements compared to a given clock
  input.

  -average - (Optional) Reports the average switching activity for the
  specified objects.

  -default_static_probability - (Optional) Reports the default static
  probability to be used in power analysis on the current design. The default
  static probability is set using the set_switching_activity command.

  Note: This option does not require objects to be specified since the
  default applies to the current design.

  -default_toggle_rate - (Optional) Reports the default toggle rate to be
  used in power analysis on the primary inputs of the current design. You can
  define the default toggle rate using the set_switching_activity command.

  Note: This option does not require objects to be specified since the
  default applies to the current design.

  -file <filename> - (Optional) Writes the report to the specified path and
  file.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Appends the output of the command to the specified
  file rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Returns the data as a text string for
  assignment to a Tcl variable.

  -hier - (Optional) Reports the switching activity hierarchically for
  signals in the specified hierarchical <objects>. Without -hier, the
  switching activity is applied to the specified <objects> at the current
  level of the hierarchy.

  -all - (Optional) Must be used with -type, report the switching activity on
  nets within all instances specified by -type.

  -type <arg> - (Optional) Reports the switching activity for the specified
  type of logic entity. By default, the command is applied to the top-level
  of the current design, or to the specified <objects>. The -type option
  applies the command settings to the specified type of logic objects in the
  top-level of the current design. The -all option or -hier option can be
  used to modify the scope of objects the command applies to. Valid logic
  types include:

   *  io_output - Primary outputs.

   *  io_bidir_enable - Enable pin of Bidir ports.

   *  register - All register outputs in the design/hierarchy specified.

   *  lut - All LUT outputs in the design/hierarchy specified.

   *  lut_ram - All distributed ram outputs in the design/hierarchy specified.

   *  dsp - All DSP outputs in the design/hierarchy specified.

   *  bram_enable - Enable pins (ENARDEN/ENBWREN) of BRAMs.

   *  bram_wr_enable - Write enables of BRAMs (WEA/WEBWE).

   *  gt_txdata - Output TX data pins of all GTs.

   *  gt_rxdata - Output RX data pins of all GTs.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) A list of port, pin, and net objects to report the
  switching activity of; or a list of cells when specified with -type to
  define logic objects.

Examples:

  The following example reports the signal_rate and static probability value
  on all output ports:

    report_switching_activity -signal_rate -static_probability [all_outputs]

  The following example reports the signal_rate and static probability value
  on all LUT objects in the design:

    report_switching_activity -signal_rate -static_probability -type lut -all

  The following example reports the average toggle rate on all output ports:

    report_switching_activity -toggle_rate -average [all_outputs]

See Also:

   *  power_opt_design
   *  report_power
   *  reset_switching_activity
   *  set_switching_activity


@@@COMMAND: report_synchronizer_mtbf@@@
report_synchronizer_mtbf

Description: 
Compute mean time between failures and display report

Syntax: 
report_synchronizer_mtbf  [-file <arg>] [-append] [-return_string]
                          [-warn_if_mtbf_below <arg>] [-quiet] [-no_header]
                          [-report_endpoints] [-verbose]

Returns: 
Report

Usage: 
  Name                   Description
  ----------------------------------
  [-file]                Filename to output results to. (send output to 
                         console if -file is not used)
  [-append]              Append the results to file, don't overwrite the 
                         results file
  [-return_string]       Return the report output as a string
  [-warn_if_mtbf_below]  
                         Default: 1e+12
  [-quiet]               Ignore command errors
  [-no_header]           Report without the header
  [-report_endpoints]    Report cdc path end points
  [-verbose]             Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Note: This command is supported for AMD UltraScale devices only, and does
  not support AMD 7 series devices.

  The report_synchronizer_mtbf command reports mean time between failures
  (MTBF) of each clock domain crossing (CDC) synchronizer chain in a design,
  and provides an overall MTBF covering all synchronizers. Synchronizer
  registers must have ASYNC_REG properties with value TRUE to be properly
  identified as synchronizers for reporting.

  Asynchronous clock domain crossings (CDCs) can fail due to metastability as
  data is captured asynchronously and may settle to different values on
  different loads in the circuit. Synchronizer registers are used to improve
  overall circuit reliability for designs which contain multiple clock
  domains, in which asynchronous data transfers occur, or in which external
  asynchronous signals are captured with an internal clock. A synchronizer
  chain consists of two or more registers connected sequentially with the
  first stage capturing the data signal from the asynchronous clock domain.
  The successive register stages provide additional settling time for
  metastable events and increase MTBF. The synchronizer registers must have
  ASYNC_REG properties with values of TRUE. Besides reporting MTBF, the
  ASYNC_REG properties instruct synthesis, simulation and implementation
  tools to optimize for increased MTBF and improve overall behavior of the
  synchronizer circuit.

  Tip: Avoid using different set/reset or clock enable control signals on
  registers within a synchronizer chain.

  This command returns the MTBF report, or returns an error if it fails. The
  command issues a warning message when the MTBF cannot be calculated
  correctly, for example when a CDC is improperly constrained. The following
  conditions result in an UNDEFINED synchronizer MTBF value:

   *  One or both clocks of the CDC are unconstrained.

   *  There is a timing violation involving registers in the synchronizer
      chain.

   *  There is a zero toggle rate detected for the CDC data.

  In the case of a zero toggle rate, it may be necessary to use the
  set_switching_activity command to manually override the toggle rate on the
  CDC net with a realistic value. This involves assigning the Toggle Rate and
  the Static Probability:

   *  Toggle Rate: The number of CDC data signal transitions measured in
      Million Transitions per Second.

   *  Static Probability: The percentage of time during which the CDC data
      signal is driven at a high logic level.

  Example: to assign a toggle rate of 12.5% with 0.5 static probability on a
  CDC net named resync[0]:

    set_switching_activity -toggle_rate 12.5 -static_probability 0.5 \
    [get_nets resync[0]]

  The report contents include the following data for each synchronizer chain
  in the design:

   *  MTBF: The Mean Time Between Failures for the CDC synchronizer reported
      in dynamic time units, from seconds to years. An invalid MTBF value is
      reported as UNDEFINED.

   *  Data Toggle Rate: The rate at which the CDC data switches, based on the
      default switching activity for the design as reported by
      report_switching_activity. Measured in (Mts) Millions of Transitions
      per Second. The rate can be overridden using the set_switching_activity
      command targeting the CDC net object.

   *  Data Sample Rate: The rate at which the CDC data is sampled, equivalent
      to the synchronizer chain frequency, measured in MHz.

   *  Settling Time: The total amount of positive slack in nanoseconds on the
      timing paths from synchronizer register outputs. Higher Settling Time
      increases MTBF.

   *  Sending Domain: The clock domain of the source of the CDC data. A value
      of UNCONSTRAINED is reported if the source clock is not defined.

   *  Receiving Domain: The clock domain of the destination of the CDC data.
      A value of UNCONSTRAINED is reported if the destination clock is not
      defined.

   *  Number of Stages: This is the length of the synchronizer chain, which
      equals the number of registers with ASYNC_REG value of TRUE. The MTBF
      calculation will determine the likelihood that the output register or
      registers (should the fanout be greater than 1) will experience a
      metastable event. For example in a typical synchronizer containing 2
      registers with the ASYNC_REG property set, the MTBF calculation
      indicates the probability that the output register(s) following the
      last ASYNC_REG register will capture an incorrect value resulting from
      the metastable event. When a synchronizer is connected to more than 1
      output register, the minimum slack from all the paths will be used in
      the MTBF calculation to ensure that all registers capture the same
      logic level.

   *  CDC Net Name: This is the logical net name of the CDC data, the data
      that is captured asynchronously.

  This command returns the MTBF report, or returns an error if it fails.

  The report also includes an overall MTBF calculated using the MTBF of all
  synchronizers in the design, calculated as the inverse of the sum of the
  reciprocals of the individual synchronizer MTBF values: (1 / (1/MTBF_1 +
  1/MTBF_2 + ? + 1/MTBF_N) ) for N synchronizers.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. This
  command will overwrite any files of the same name without warning.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -warn_if_mtbf_below <arg> - (Optional) Specify a value as a floating point
  number, below which the Vivado Design Suite will issue a warning in
  addition to the report. The default value is 1e+12.

  -no_header - (Optional) Write the report without the addition of the
  standard header.

  -report_endpoints - (Optional) Report the total number of CDC path
  endpoints. This is the sum of Safe, Unsafe, and Unknown endpoints.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example writes the MTBF report to the specified file:

    report_synchronizer_mtbf -file C:/Data/mtbf_report.txt

See Also:

   *  get_nets
   *  report_cdc
   *  report_clock_interaction
   *  report_clock_networks
   *  report_switching_activity
   *  set_switching_activity


@@@COMMAND: report_timing@@@
report_timing

Description: 
Report timing paths

Syntax: 
report_timing  [-from <args>] [-rise_from <args>] [-fall_from <args>]
               [-to <args>] [-rise_to <args>] [-fall_to <args>]
               [-through <args>] [-rise_through <args>] [-fall_through <args>]
               [-delay_type <arg>] [-setup] [-hold] [-max_paths <arg>]
               [-nworst <arg>] [-unique_pins] [-path_type <arg>] [-input_pins]
               [-no_header] [-no_reused_label] [-slack_lesser_than <arg>]
               [-slack_greater_than <arg>] [-group <args>] [-sort_by <arg>]
               [-no_report_unconstrained] [-user_ignored] [-of_objects <args>]
               [-significant_digits <arg>] [-column_style <arg>] [-file <arg>]
               [-append] [-name <arg>] [-no_pr_attribute] [-no_pblock]
               [-routable_nets] [-return_string] [-warn_on_violation]
               [-cells <args>] [-rpx <arg>] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-from]                     From pins, ports, cells or clocks
  [-rise_from]                Rising from pins, ports, cells or clocks
  [-fall_from]                Falling from pins, ports, cells  or clocks
  [-to]                       To pins, ports, cells or clocks
  [-rise_to]                  Rising to pins, ports, cells or clocks
  [-fall_to]                  Falling to pins, ports, cells or clocks
  [-through]                  Through pins, ports, cells or nets
  [-rise_through]             Rising through pins, ports, cells or nets
  [-fall_through]             Falling through pins, ports, cells or nets
  [-delay_type]               Type of path delay: Values: max, min, min_max, 
                              max_rise, max_fall, min_rise, min_fall
                              Default: max
  [-setup]                    Report max delay timing paths (equivalent to 
                              -delay_type max)
  [-hold]                     Report min delay timing paths (equivalent to 
                              -delay_type min)
  [-max_paths]                Maximum number of paths to output when sorted 
                              by slack, or per path group when sorted by 
                              group: Value >=1
                              Default: 1
  [-nworst]                   List up to N worst paths to endpoint: Value >=1
                              Default: 1
  [-unique_pins]              For each unique set of pins, show at most 1 
                              path per path group
  [-path_type]                Format for path report: Values: end, summary, 
                              short, full, full_clock, full_clock_expanded
                              Default: full_clock_expanded
  [-input_pins]               Show input pins in path
  [-no_header]                Do not generate a report header
  [-no_reused_label]          Do not label reuse status on pins in the report
  [-slack_lesser_than]        Display paths with slack less than this
                              Default: 1e+30
  [-slack_greater_than]       Display paths with slack greater than this
                              Default: -1e+30
  [-group]                    Limit report to paths in this group(s)
  [-sort_by]                  Sorting order of paths: Values: group, slack
                              Default: slack
  [-no_report_unconstrained]  Do not report infinite slack paths
  [-user_ignored]             Only report paths which have infinite slack 
                              because of set_false_path or set_clock_groups 
                              timing constraints
  [-of_objects]               Report timing for these paths
  [-significant_digits]       Number of digits to display: Range: 0 to 3
                              Default: 3
  [-column_style]             Style for path report columns: Values: 
                              variable_width, anchor_left, fixed_width
                              Default: anchor_left
  [-file]                     Filename to output results to. (send output to 
                              console if -file is not used)
  [-append]                   Append the results to file, don't overwrite the
                              results file
  [-name]                     Output the results to GUI panel with this name
  [-no_pr_attribute]          For Dynamic Function eXchange designs, do not 
                              report whether netlist resources are in the 
                              static or reconfigurable regions
  [-no_pblock]                Report timing without pblock column
  [-routable_nets]            Store the number of routable nets traversed as 
                              a property on timing paths.
  [-return_string]            Return report as string
  [-warn_on_violation]        Issue a critical warning when the report 
                              contains a timing violation
  [-cells]                    Run report_timing on the specified cell(s)
  [-rpx]                      Filename to output interactive results to.
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Important: If the design has no timing constraints, report_timing reports
  on unconstrained paths in the design. However, if even one path has timing
  constraints then report_timing only reports on the constrained paths in the
  design, unless unconstrained timing paths are specified by the -from/-to
  options.

  This command performs timing analysis on the specified timing paths of the
  current Synthesized or Implemented Design. By default the tool reports the
  timing path with the worst calculated slack within each path group.
  However, you can optionally increase the number of paths and delays
  reported with the use of the -nworst or -max_paths arguments.

  Tip: The report_timing can be multi-threaded to speed the process. Refer to
  the set_param command for more information on setting the
  general.maxThreads parameter.

  The timing engine runs in "quad" timing mode, analyzing min and max delays
  for both slow and fast corners. You can configure the type of analysis
  performed by the config_timing_corners command. However, it is not
  recommended to change the default because this reduces the timing analysis
  coverage.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to the GUI, to a file, or returned
  as a string if desired.

Arguments:

  -from <args> - (Optional) The starting points of the timing paths to be
  analyzed. Ports, pins, or cells can be specified as timing path
  startpoints. You can also specify a clock object, and all startpoints
  clocked by the named clock will be analyzed.

  -rise_from <args> - (Optional) Similar to the -from option, but only the
  rising edge of signals coming from the startpoints are considered for
  timing analysis. If a clock object is specified, only the paths launched by
  the rising edge of the clock are considered as startpoints.

  -fall_from <args> - (Optional) Similar to the -from option, but only the
  falling edge of signals coming from the startpoints are considered for
  timing analysis. If a clock object is specified, only the paths launched by
  the falling edge of the clock are considered as startpoints.

  -to <args> - (Optional) The endpoints, or destination objects of timing
  paths to be analyzed. Ports, pins, and cell objects can be specified as
  endpoints. A clock object can also be specified, in which case endpoints
  clocked by the named clock are analyzed.

  -rise_to <args> - (Optional) Similar to the -to option, but only the rising
  edge of signals going to the endpoints is considered for timing analysis.
  If a clock object is specified, only the paths captured by the rising edge
  of the named clock are considered as endpoints.

  -fall_to <args> - (Optional) Similar to the -to option, but only the
  falling edge of signals going to the endpoints is considered for timing
  analysis. If a clock object is specified, only the paths captured by the
  falling edge of the named clock are considered as endpoints.

  -through <args> - (Optional) Consider only paths through the specified
  pins, cell instance, or nets during timing analysis. You can specify
  individual -through (or -rise_through and -fall_through) points in sequence
  to define a specific path through the design for analysis. The order of the
  specified through points is important to define a specific path. You can
  also specify through points with multiple objects, in which case the timing
  path can pass through any of the specified through objects.

  -rise_through <args> - (Optional) Similar to the -through option, but
  timing analysis is only performed on paths with a rising transition at the
  specified objects.

  -fall_through <args> - (Optional) Similar to the -through option, but
  timing analysis is only performed on paths with a falling transition at the
  specified objects.

  -delay_type <arg> - (Optional) Specifies the type of delay to analyze when
  running the timing report. The valid values are min, max, min_max,
  max_rise, max_fall, min_rise, min_fall. The default setting for -delay_type
  is max.

  -setup - (Optional) Check for setup violations. This is the same as
  specifying -delay_type max.

  -hold - (Optional) Check for hold violations. This is the same as
  specifying -delay_type min.

  Tip: -setup and -hold can be specified together, which is the same as
  specifying -delay_type min_max.

  -max_paths <arg> - (Optional) The maximum number of paths to output when
  sorted by slack; or maximum number of paths per path group when sorted by
  group, as specified by -sort_by. This is specified as a value greater than
  or equal to 1. By default the report_timing command will report the single
  worst timing path, or the worst path per path group.

  -nworst <arg> - (Optional) The number of timing paths per endpoint to
  output in the timing report. The timing report will return the <N> worst
  paths based on the specified value, greater than or equal to 1. The default
  setting is 1.

  -unique_pins - (Optional) Show only one timing path for each unique set of
  pins.

  -path_type <arg> - (Optional) Specify the path data to output in the timing
  report. The default format is full_clock_expanded. The valid path types
  are:

   *  end - Shows the endpoint of the path only, with calculated timing values.

   *  summary - Displays the startpoints and endpoints with slack calculation.

   *  short - Displays the startpoints and endpoints with calculated timing
      values.

   *  full - Displays the full timing path, including startpoints, through
      points, and endpoints.

   *  full_clock - Displays full clock paths in addition to the full timing
      path.

   *  full_clock_expanded - Displays full clock paths between a master clock
      and generated clocks in addition to the full_clock timing path. This is
      the default setting.

  -input_pins - (Optional) Show input pins in the timing path report. For use
  with -path_type full, full_clock, and full_clock_expanded.

  -no_header - (Optional) Do not write a header to the report.

  -no_reused_label - (Optional) Disable the reporting of reuse information in
  designs that use incremental place and route based on an existing design
  checkpoint (DCP) file. Both placement and routing can be completed
  incrementally, based on prior results stored in a Design Checkpoint file
  (DCP), using the incremental implementation flow. Refer to the
  read_checkpoint command, or to Vivado Design Suite User Guide:
  Implementation (UG904) for more information on incremental place and route.
  By default, designs using incremental place and route have pins labeled
  with information related to the physical data reused from the specified
  incremental checkpoint. This option removes the reuse labels including the
  following:

   *  Routing: Placement and routing to this pin are reused.

   *  Placement: Cell placement is reused but routing to this pin is not
      reused.

   *  Moved: Neither cell placement nor routing to this pin is reused.

   *  New: The cell, net, or pin is new. It does not exist in the incremental
      checkpoint.

  -slack_lesser_than <arg> - (Optional) Report timing on paths with a
  calculated slack value less than the specified value. Used with
  -slack_greater_than to provide a range of slack values of specific
  interest.

  -slack_greater_than <arg> - (Optional) Report timing on paths with a
  calculated slack value greater than the specified value. Used with
  -slack_lesser_than to provide a range of slack values of specific interest.

  -group <args> - (Optional) Report timing for paths in the specified path
  groups. Currently defined path groups can be determined with the
  get_path_groups command.

  Tip: Each clock creates a path group. Path groups can also be defined with
  the group_path command. The -group option cannot be specified with
  -of_objects, which also specifies timing path objects.

  -sort_by [ slack | group ] - (Optional) Sort timing paths in the report by
  slack values, or by path group. Valid values are slack or group. By
  default, the report_timing command reports the worst, or -nworst, timing
  paths in the design. However, with -sort_by group, the report_timing
  command returns the worst, or -nworst, paths of each path group.

  -no_report_unconstrained - (Optional) Do not report timing on unconstrained
  paths. Without this option specified, the report_timing command will
  include unconstrained paths which will have infinite slack.

  -user_ignored - (Optional) Report only the paths that are usually ignored
  by timing due to presence of set_false_path or set_clock_groups
  constraints.

  Note: The -user_ignored and -no_report_unconstrained options are mutually
  exclusive and cannot be specified together. The -user_ignored option is
  also mutually exclusive with the -slack_lesser_than and -slack_greater_than
  options.

  -of_objects <args> - (Optional) Report timing on the specified timing path
  objects. Used with the get_timing_paths command.

  Tip: The -of_objects option cannot be used with the various forms of -from,
  -to, or -through options which are also used to identify timing paths to
  report. The -of_objects option, which defines a timing path object
  containing a DELAY_TYPE property, cannot be used with -setup, -hold or
  -delay_type, which all also define a delay type. The -of_objects option
  also cannot be specified with -group, which defines groups of timing path
  objects.

  -significant_digits <arg> - (Optional) The number of significant digits in
  the output results. The valid range is 0 to 3. The default setting is 3
  significant digits.

  -column_style [ variable_width | anchor_left | fixed_width ] - (Optional)
  Specify the format of the timing path portion of the timing report output.
  The default format is anchor_left.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results set for the GUI.

  -no_pr_attribute <arg> - (Optional) This option disables the standard
  reporting of the Partial Reconfiguration (PR) attribute data. For PR
  designs, the logical path is appended to identify cells as belonging to a
  reconfigurable partition (:RP#), or to the static region of the design
  (:S).

  -no_pblock - (Optional) Do not report the Pblock information when there are
  some Pblocks on the path.

  -routable_nets - (Optional) Report the number of routable nets traversed as
  a property of the timing paths returned.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -warn_on_violation - (Optional) Specify that a Critical Warning will be
  generated by the Vivado Design Suite when the timing report contains a
  timing violation.

  -cells <arg> - (Option) Generate the timing report on the specified
  hierarchical cells. The details of the report will be based on the
  specified cells rather than the whole design.

  -rpx <arg> - (Optional) Specify the file name and path of an Xilinx report
  file (RPX) to write. This is different from writing the report results to a
  file using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a .rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the timing for the 5 worst paths in the
  design, reporting the full timing path, including input pins, with timing
  values:

    report_timing -nworst 5 -path_type full -input_pins

  The following example shows the use of the multiple through points to
  define both a specific path (through state_reg1) and alternate paths
  (through count_3 or count_4), and writes the timing results to the
  specified file:

    report_timing -from go -through {state_reg1} \
       -through { count_3  count_4 } \
       -to done -path_type summary -file C:/Data/timing1.txt

See Also:

   *  get_path_groups
   *  get_timing_paths
   *  group_path
   *  place_design
   *  report_timing_summary
   *  route_design
   *  set_clock_groups
   *  set_false_path
   *  get_msg_config
   *  set_msg_config


@@@COMMAND: report_timing_summary@@@
report_timing_summary

Description: 
Report timing summary

Syntax: 
report_timing_summary  [-check_timing_verbose] [-delay_type <arg>]
                       [-no_detailed_paths] [-setup] [-hold] [-max_paths <arg>]
                       [-nworst <arg>] [-unique_pins] [-path_type <arg>]
                       [-no_reused_label] [-input_pins] [-no_pr_attribute]
                       [-no_pblock] [-routable_nets] [-slack_lesser_than <arg>]
                       [-report_unconstrained] [-significant_digits <arg>]
                       [-no_header] [-file <arg>] [-append] [-name <arg>]
                       [-return_string] [-warn_on_violation] [-datasheet]
                       [-cells <args>] [-rpx <arg>] [-quiet] [-verbose]

Usage: 
  Name                     Description
  ------------------------------------
  [-check_timing_verbose]  Produce a verbose report when checking the design 
                           for potential timing problems
  [-delay_type]            Type of path delay: Values: max, min, min_max
                           Default: min_max
  [-no_detailed_paths]     Do not report timing paths for each clock and path
                           group analyzed
  [-setup]                 Report max delay timing paths (equivalent to 
                           -delay_type max)
  [-hold]                  Report min delay timing paths (equivalent to 
                           -delay_type min)
  [-max_paths]             Maximum number of paths to report per clock or 
                           path group: Value >=1
                           Default: 1
  [-nworst]                List up to N worst paths to endpoint: Value >=1
                           Default: 1
  [-unique_pins]           For each unique set of pins, show at most 1 path 
                           per path group
  [-path_type]             Format for path report: Values: end summary short 
                           full full_clock full_clock_expanded
                           Default: full_clock_expanded
  [-no_reused_label]       Do not label reuse status on pins in the report
  [-input_pins]            Show input pins in path
  [-no_pr_attribute]       For Dynamic Function eXchange designs, do not 
                           report whether netlist resources are in the static
                           or reconfigurable regions
  [-no_pblock]             Report timing summary without pblock column
  [-routable_nets]         Store the number of routable nets traversed as a 
                           property on timing paths.
  [-slack_lesser_than]     Display paths with slack less than this
                           Default: 1e+30
  [-report_unconstrained]  Report unconstrained and user ignored paths
  [-significant_digits]    Number of digits to display: Range: 0 to 3
                           Default: 3
  [-no_header]             Do not generate a report header
  [-file]                  Filename to output results to. (send output to 
                           console if -file is not used)
  [-append]                Append the results to file, don't overwrite the 
                           results file
  [-name]                  Output the results to GUI panel with this name
  [-return_string]         Return report as string
  [-warn_on_violation]     Issue a critical warning when the report contains 
                           a timing violation
  [-datasheet]             Include data sheet report
  [-cells]                 Run report_timing_summary on the specified cell(s)
  [-rpx]                   Filename to output interactive results to.
  [-quiet]                 Ignore command errors
  [-verbose]               Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Tip: The report_timing_summary can be multi-threaded to speed the process.
  Refer to the set_param command for more information on setting the
  general.maxThreads parameter.

  Generate a timing summary to help understand if the design has met timing
  requirements. The timing summary can be run on an open Synthesized or
  Implemented Design.

  The timing summary report includes the following information:

   *  Timer Settings - Details the timing engine settings used to generate
      the timing information in the report.

   *  Check Timing - Contains the same information that is produced by the
      check_timing command, which summarizes potential timing issues.

   *  Design Timing Summary - Provides a summary of the timing of the design,
      including values for worst and total negative slack (WNS/TNS), worst
      and total hold slack (WHS/THS), and component switching limits (CSL).

   *  Clock Definitions - Contains the same information that is produced by
      the report_clocks command, showing all the clocks that were created for
      the design, either by create_clock, create_generated_clock, or
      automatically by the tool.

   *  Intra-Clock Table - Summarizes timing paths with the same source and
      destination clocks.

   *  Inter-Clock Table - Summarizes timing paths with different source and
      destination clocks.

   *  Path Group Table - Shows default path groups and user-defined path
      groups created by the group_path command.

   *  Timing Details - Contains detailed timing paths, both max delay and min
      delay, as well as component switching limits for each clock defined,
      similar to the report_timing command.

   *  Data sheet - Contains the same information that is produced by the
      report_datasheet command. It contains the timing characteristics of a
      design at the I/O ports. The data sheet information is added to the
      summary report only when the -datasheet option is specified.

  This command is automatically run during implementation as part of the
  launch_runs command.

  Note: By default the report is written to the Tcl console or STD output.
  However, the results can also be written to a file or returned as a string
  if desired.

Arguments:

  -check_timing_verbose - (Optional) Output a verbose timing summary report.

  -delay_type <arg> - (Optional) Specifies the type of delay to analyze when
  running the timing report. The valid values are min, max, min_max. The
  default setting for -delay_type is min_max.

  -no_detailed_paths - (Optional) Do not report the full timing path for each
  clock or path group analyzed.

  -setup - (Optional) Check for setup violations. This is the same as
  specifying -delay_type max.

  -hold - (Optional) Check for hold violations. This is the same as
  specifying -delay_type min.

  Note: -setup and -hold can be specified together, which is the same as
  specifying -delay_type min_max.

  -max_paths <arg> - (Optional) The maximum number of paths to report per
  clock or per path group. This is specified as a value greater than or equal
  to 1. By default the report_timing_summary command will report the single
  worst timing path, or the worst path per path group.

  -nworst <arg> - (Optional) The number of timing paths to output in the
  timing report. The timing report will return the <N> worst paths to
  endpoints based on the specified value, greater than or equal to 1. The
  default setting is 1.

  -unique_pins - (Optional) Only report timing paths through each unique set
  of pins, reporting one path per path group.

  -path_type <arg> - (Optional) Specify the path data to output in the timing
  summary report. The default format is full_clock_expanded. The valid path
  types are:

   *  end - Shows the endpoint of the path only, with calculated timing values.

   *  summary - Displays the startpoints and endpoints with slack calculation.

   *  short - Displays the startpoints and endpoints with calculated timing
      values.

   *  full - Displays the full timing path, including startpoints, through
      points, and endpoints.

   *  full_clock - Displays full clock paths in addition to the full timing
      path.

   *  full_clock_expanded - Displays full clock paths between a master clock
      and generated clocks in addition to the full_clock timing path. This is
      the default setting.

  -no_reused_label - (Optional) Disable the reporting of reuse information in
  designs that use incremental place and route based on an existing design
  checkpoint (DCP) file. Both placement and routing can be completed
  incrementally, based on prior results stored in a Design Checkpoint file
  (DCP), using the incremental implementation flow. Refer to the
  read_checkpoint command, or to Vivado Design Suite User Guide:
  Implementation (UG904) for more information on incremental place and route.
  By default, designs using incremental place and route have pins labeled
  with information related to the physical data reused from the specified
  incremental checkpoint. This option removes the reuse labels including the
  following:

   *  Routing: Placement and routing to this pin are reused.

   *  Placement: Cell placement is reused but routing to this pin is not
      reused.

   *  Moved: Neither cell placement nor routing to this pin is reused.

   *  New: The cell, net, or pin is new. It does not exist in the incremental
      checkpoint.

  -input_pins - (Optional) Show input pins in the timing path report. For use
  with -path_type full, full_clock, and full_clock_expanded.

  -no_pr_attribute <arg> - (Optional) For Partial Reconfiguration (PR)
  designs, this option disables the standard reporting of data that indicates
  whether netlist resources are in the static or reconfigurable regions.

  -no_pblock - (Optional) Do not report the Pblock information when there are
  some Pblocks on the path.

  -routable_nets - (Optional) Report the number of routable nets traversed as
  a property of the timing paths returned.

  -slack_lesser_than <arg> - (Optional) Report timing on paths with a
  calculated slack value less than the specified value.

  -report_unconstrained - (Optional) Report timing on unconstrained paths in
  the current design. As a default, the report_timing_summary command will
  not include unconstrained timing paths.

  Tip: In the Vivado IDE, this option must be enabled to report the User
  Ignored Paths in the Timing report.

  -significant_digits <arg> - (Optional) The number of significant digits in
  the output results. The valid range is 0 to 3. The default setting is 3
  significant digits.

  -no_header - (Optional) Do not add header information to the report. This
  can be useful when returning the timing summary report to a string for
  further processing.

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results set for the GUI.
  Timing summary reports in the GUI can be deleted by the
  delete_timing_results command.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -warn_on_violation - (Optional) Specify that a Critical Warning will be
  generated by the Vivado Design Suite when the timing report contains a
  timing violation.

  -datasheet - (Optional) Generate data sheet information to add to the
  summary report.

  -cells <arg> - (Option) Generate the timing summary report on the specified
  hierarchical cells. The details of the report will be based on the
  specified cells rather than the whole design.

  -rpx <arg> - (Optional) Specify the file name and path of an Xilinx report
  file (RPX) to write. This is different from writing the report results to a
  file using the -file argument. The RPX file is an interactive report that
  contains all the report information and can be reloaded into memory in the
  Vivado Design Suite using the open_report command. You should add a .rpx
  file extension to the specified file name, as the Vivado tool will not
  automatically assign a file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the timing summary of the current design:

    report_timing_summary

  The following example reports the hold timing summary of the current
  design, including unconstrained paths, with the specified options:

    report_timing_summary -delay_type min -path_type full_clock_expanded \
       -report_unconstrained -max_paths 2 -nworst 1 -significant_digits 2 \
       -input_pins -name {timing_6}

See Also:

   *  check_timing
   *  create_clock
   *  create_generated_clock
   *  delete_timing_results
   *  get_path_groups
   *  get_timing_paths
   *  group_path
   *  open_report
   *  report_clocks
   *  report_timing
   *  set_msg_config
   *  report_datasheet


@@@COMMAND: report_transformed_primitives@@@
report_transformed_primitives

Description: 
Report details of Unisim primitive transformations.

Syntax: 
report_transformed_primitives  [-file <arg>] [-append] [-return_string]
                               [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-file]           Output file
  [-append]         Append the results to file
  [-return_string]  Return report as string
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Report

Description:

  Report the transformed primitives in the current design.

  As part of the process of opening the Synthesized design, and loading it
  into memory, the tool will transform legacy netlist primitives to the
  supported subset of Unisim primitives.

  As a default this report will be written to the standard output. However,
  the report can also be written to a file or returned to a Tcl string
  variable for further processing.

Arguments:

  -file <arg> - (Optional) Write the transformed primitives report into the
  specified file. The specified file will be overwritten if one already
  exists, unless -append is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  Note: This argument cannot be used with the -file option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the transformed primitives in the current
  design, and returns the result to the specified Tcl variable:

    set transPrim [ report_transformed_primitives -return_string ] 
    


@@@COMMAND: report_ucf_timing@@@
report_ucf_timing

Description: 
Report timing paths

Syntax: 
report_ucf_timing  [-file <arg>] [-append] [-name <arg>] [-return_string]
                   [-speed <arg>] [-from <args>] [-to <args>] [-thru <args>]
                   [-min_max <arg>] [-transition <arg>] [-sort_by <arg>]
                   [-interconnect_type <arg>] [-maxpaths <arg>] [-nworst <arg>]
                   [-required_times] [-quiet] [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-file]               Filename to output results to. (send output to 
                        console if -file is not used)
  [-append]             Append the results to file, don't overwrite the 
                        results file
  [-name]               Output the results to GUI panel with this name
                        Default: results_1
  [-return_string]      return report as string
  [-speed]              Speed grade name
  [-from]               Filter by starting pin or instance name
  [-to]                 Filter by ending pin or instance name
  [-thru]               Filter by intermediate pin or instance names
  [-min_max]            Run max (setup) or min (hold) timing analysis
  [-transition]         Report rise or fall transitions
  [-sort_by]            Sort criterion
  [-interconnect_type]  Interconnect delay type
  [-maxpaths]           Limit the report to this many paths
                        Default: 1
  [-nworst]             Limit the report to this many paths per endpoint
                        Default: 1
  [-required_times]     Calculate all required times
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Report

Description:

  Report timing for designs with UCF constraints.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file will be overwritten if one already exists, unless -append is
  also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -name <arg> - (Optional) Specifies the name of the results set for the GUI.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -speed [ -1 | -2 | -3 ] - (Optional) Specify the speed grade for the device
  to report. When not specified, the default is -2.

  -from <args> - (Optional) The starting points of the timing paths to be
  analyzed. Ports, pins, or cells can be specified as timing path
  startpoints. You can also specify a clock object, and all startpoints
  clocked by the named clock will be analyzed.

  -to <args> - (Optional) The endpoints, or destination objects of timing
  paths to be analyzed. Ports, pins, and cell objects can be specified as
  endpoints. A clock object can also be specified, in which case endpoints
  clocked by the named clock are analyzed.

  -thru <args> - (Optional) Consider only paths through the specified pins,
  cell instance, or nets during timing analysis. You can specify individual
  -through points in sequence to define a specific path through the design
  for analysis. The order of the specified through points is important to
  define a specific path. You can also specify through points with multiple
  objects, in which case the timing path can pass through any of the
  specified through objects.

  -min_max [ min | max ] - (Optional) Run max (setup) or min (hold) timing
  analysis.

  -transition [ rise | fall ] - (Optional) Report rising or falling edge
  transitions.

  -sort_by [ slack | group ] - (Optional) Sort timing paths in the report by
  slack values, or by path group. Valid values are slack or group. By
  default, the report_timing command reports the worst, or -nworst, timing
  paths in the design. However, with -sort_by group, the report_timingcommand
  returns the worst, or -nworst, paths of each path group.

  Note: Each clock creates a path group. Path groups can also be defined with
  the group_path command.

  -interconnect_type <arg> - (Optional) Interconnect delay type

  -max_paths <arg> - (Optional) The maximum number of paths to output when
  sorted by slack; or the maximum number of paths per path group when sorted
  by group, as specified by -sort_by. This is specified as a value greater
  than or equal to 1. By default the report_timing command will report the
  single worst timing path, or the worst path per path group.

  -nworst <arg> - (Optional) The number of timing paths to output in the
  timing report. The timing report will return the <N> worst paths based on
  the specified value, greater than or equal to 1. The default setting is 1.

  -required_times - (Optional) Calculate all required times.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns the timing:

    report_ucf_timing 
    

See Also:

   *  report_timing


@@@COMMAND: report_utilization@@@
report_utilization

Description: 
Compute utilization of device and display report

Syntax: 
report_utilization  [-file <arg>] [-append] [-pblocks <args>]
                    [-evaluate_pblock] [-exclude_child_pblocks]
                    [-exclude_non_assigned] [-cells <args>] [-return_string]
                    [-slr] [-packthru] [-name <arg>] [-no_primitives]
                    [-omit_locs] [-hierarchical] [-spreadsheet_file <arg>]
                    [-spreadsheet_table <arg>] [-spreadsheet_depth <arg>]
                    [-hierarchical_depth <arg>] [-hierarchical_percentages]
                    [-quiet] [-verbose]

Returns: 
Report

Usage: 
  Name                         Description
  ----------------------------------------
  [-file]                      Filename to output results to. (send output to
                               console if -file is not used)
  [-append]                    Append the results to file, don't overwrite 
                               the results file
  [-pblocks]                   Report utilization of given pblock
  [-evaluate_pblock]           Report utilization with demand as specified 
                               cells and supply as specified pblock area
  [-exclude_child_pblocks]     Report utilization with out child pblocks
  [-exclude_non_assigned]      Pblock utilization with out Non-assigned Cells
  [-cells]                     Report utilization of given list of cells
  [-return_string]             Return report as string
  [-slr]                       SLR wise utilization of resources
  [-packthru]                  Reports LUTs used exclusively as pack-thru
  [-name]                      Output the results to GUI panel with this name
  [-no_primitives]             Removes "Primitives Section" from 
                               report_utilization o/p.
  [-omit_locs]                 Removes "Loced" column from report_utilization
                               o/p.
  [-hierarchical]              Generates text-based hierarchical report.
  [-spreadsheet_file]          Specify file for exporting utilization tables 
                               as spreadsheets. This feature is available 
                               only in GUI mode.
  [-spreadsheet_table]         Choose a particular utilization table to 
                               export as spreadsheet file. Default value : 
                               Hierarchy
  [-spreadsheet_depth]         Specifies the depth level for spreadsheet. 
                               Default value : 8
                               Default: 8
  [-hierarchical_depth]        Specifies the depth level for textual 
                               hierarchical report
                               Default: 0
  [-hierarchical_percentages]  Report percentages in textual hierarchical 
                               report
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution

Categories: 
Report

Description:

  Report resource usage on the target part by the current synthesized or
  implemented design. The report is returned to the standard output, unless
  the -file, -return_string, or -name arguments are specified.

  Tip: Though resource usage can be reported early in the design process, the
  report is more accurate as the design progresses from synthesis through
  implementation.

  This command returns the requested information, or returns an error if it
  fails.

Arguments:

  -file <arg> - (Optional) Write the report into the specified file. The
  specified file is overwritten if one already exists, unless -append is also
  specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -pblocks <arg> - (Optional) Report the resources utilized by a Pblock.

  Note: -pblocks can not be used with the -name option.

  -evaluate_pblock <arg> - (Optional) Performs a what-if analysis on the
  specified -pblocks and the specified -cells. This option reports the
  utilization of the Pblocks as if they were populated by the specified
  cells. Percentages of utilization represent the ratio of the assigned cells
  to the available resources. This option requires both -pblocks and -cells
  to be specified.

  -exclude_child_pblocks - (Optional) Report utilization of the specified
  -pblocks excluding any nested Pblocks. This has the effect of reducing the
  utilization of the region as it does not account for cells that are
  assigned to a Pblock through a nested Pblock.

  -exclude_non_assigned - (Optional) Exclude non-assigned cells from the
  Utilization report when the -pblocks option is specified. This has the
  effect of decreasing the utilization of the Pblock region as it does not
  account for cells that are utilized, but are not assigned to the specified
  Pblocks.

  -cells <arg> - (Optional) Report the resources utilized by one or more
  hierarchical cells in the current design.

  -return_string - (Optional) Directs the output to a Tcl string rather than
  to the standard output. The Tcl string can be captured by a variable
  definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -slr - (Optional) Reports the utilization for each separate SLR in devices
  having SLRs.

  -packthru - (Optional) Reports LUTs used for route through purposes. This
  appears in the utilization report as "LUTs used exclusively as
  route-thrus".

  -name <arg> - (Optional) Specifies the name of the results to output to the
  GUI.

  -no_primitives - (Optional) Remove the Primitives section from the report.
  The Primitives section reports the number and type of logic primitives used
  on the device.

  -omit_locs - (Optional) Omit the Fixed column from the report. The Fixed
  column reports the quantity of logic elements that the user has fixed, or
  manually placed onto the device.

  -hierarchical - (Optional) Reports the utilization of the device broken
  down according to the hierarchy of the design.

  -hierarchical_depth <arg> - (Optional) Specifies the depth of the hierarchy
  to report when reporting utilization according to the hierarchy. The
  default depth is 0, which means that -hierarchical reports full design
  hierarchy.

  -hierarchical_percentages - (Optional) Specifies that utilization data in
  the hierarchical report be reported as percentages.

  -spreadsheet_file <arg> - (Optional) Export utilization tables to the
  specified XLSX format spreadsheet. The ability to export a spreadsheet file
  is only available when the -name option is also specified and the report is
  generated in the GUI.

  Tip: Ensure to specify the .xlsx suffix for the specified file, as it is
  not automatically assigned. If the path is not specified as part of the
  file name, the file is written into the current working directory, which
  may be the directory from which the Vivado tool was launched.

  -spreadsheet_table <arg> - (Optional) Specify a utilization table to export
  to the spreadsheet file. The default is to export the Hierarchy table for
  the whole design. This option requires the use of -spreadsheet_file.

  Other tables and specific resources can also be exported. This process
  requires a user to build the argument -spreadsheet_file switch. This is
  achieved by first specifying the table name and then a hyphen followed the
  resource.

   *  Table Name - Resource Name: Multiple resources can be added in this way.

   *  Table Name - Resource Name - Resource Name: The names of the tables
      and the resources can be identified from the report.

      Warning: Ensure that the text matches precisely and is case sensitive.

      Note: Table names are different for different devices and different
      stages of the design. So the same command might not work earlier in the
      design flow or when porting projects to new families.

  Some example table names are:

   *  Hierarchy

   *  Slice Logic Distribution

   *  Slice Logic Distribution - LUT as Memory

   *  Netlist Logic

   *  Netlist Logic - Registers

  -spreadsheet_depth <arg> - (Optional) Specifies the hierarchical depth,
  starting from the top-level of the design, to export to the spreadsheet
  file. The default value is 8. This options requires the use of
  -spreadsheet_file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example reports the resources used by a Pblock and write the
  results to the specified file:

    report_utilization -pblocks [get_pblocks <pblockName>] -file \
    ./pblocks_util.txt

  This example reports the utilization for the whole design to the named
  report in the GUI, but exports the "Clocking - BUFGCTRL" table to the
  specified spreadsheet file:

    report_utilization -name utilization_1 -spreadsheet_file util_table.xlsx \
    -spreadsheet_table "Clocking - BUFGCTRL"

  The following example reports the resources utilized by each Pblock in the
  design, appending the report for each Pblock to a single specified file:

    foreach x [get_pblocks] {
      puts "Reporting Pblock: $x ----------------------------------"
      report_utilization -append -file C:/Data/pblocks_util.txt -pblocks $x
    }

See Also:

   *  delete_utilization_results


@@@COMMAND: report_waivers@@@
report_waivers

Description: 
Report status of DRC/METHODOLOGY/CDC/LINT message waivers

Syntax: 
report_waivers  [-file <arg>] [-type <arg>] [-write_valid_waivers]
                [-write_ignored_waivers] [-append] [-return_string]
                [-show_msgs_with_no_waivers] [-quiet] [-verbose]

Usage: 
  Name                          Description
  -----------------------------------------
  [-file]                       Name of file to report waivers
  [-type]                       Type of waiver - ALL, DRC, METHODOLOGY, CDC, 
                                LINT
  [-write_valid_waivers]        (special) Specifies writing out the specific 
                                waivers which were used in the last 
                                report_drc/methodology/cdc/lint run(s)
  [-write_ignored_waivers]      (special) Specifies writing out the specific 
                                waivers which were NOT used in the last 
                                report_drc/methodology/cdc/lint run(s)
  [-append]                     Append the current report results to the file
                                specified with -file
  [-return_string]              Return report results as a string object
  [-show_msgs_with_no_waivers]  Also list report_drc/methodology/cdc/lint 
                                messages which have no defined waivers
  [-quiet]                      Ignore command errors
  [-verbose]                    Suspend message limits during command 
                                execution

Categories: 
Waiver, Report, Object

Description:

  Reports DRC, METHODOLOGY, and CDC violation messages and displays what
  waivers are in place in the current design.

  In addition, the report_drc, report_methodology, and report_cdc commands
  have options to run the reports on waived violations or checks.

Arguments:

  -file <arg> - (Optional) Write the waivers report into the specified file.
  The specified file will be overwritten if one already exists.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -type <arg> - (Optional) Specifies the type of waiver to report. Currently
  supports DRC, METHODOLOGY, and CDC. If the -type is not specified, all
  waivers will be reported.

  -write_valid_waivers <arg> - (Optional) This option requires the use of the
  -file option, and writes the valid waivers that were used during the last
  run of the DRC, methodology, or CDC reports.

  -write_ignored_waivers <arg> - (Optional) This option requires the use of
  the -file option, and writes the waivers that were NOT used during the last
  run of the DRC, methodology, or CDC reports.

  -append - (Optional) Append the output of the report to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -return_string - (Optional) Directs the report output to a Tcl string
  rather than to the standard output. The Tcl string can be captured by a
  variable definition and parsed or otherwise processed.

  Note: This argument cannot be used with the -file option.

  -show_msgs_with_no_waivers - (Optional) By default the report_waivers
  command will hide data for all DRC, METHODOLOGY, and CDC violations, which
  do not have waivers defined. This options restores the reporting of
  violation messages which have no defined waivers.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  This example reports all waivers in the current design:

    report_waivers 
    

See Also:

   *  create_waiver
   *  delete_waivers
   *  get_waivers
   *  report_cdc
   *  report_drc
   *  report_methodology
   *  write_waivers


@@@COMMAND: reset_drc@@@
reset_drc

Description: 
Remove DRC report

Syntax: 
reset_drc  [-name <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-name]     DRC result name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
DRC, Report

Description:

  Clear the DRC results from the specified named result set.

  This command operates silently, returning nothing if successful, or
  returning an error if it fails.

Arguments:

  -name <arg> - (Optional) Specifies the name of the DRC results to be
  cleared. The name is established by the -name argument in the report_drc
  command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example clears the specified results set from memory and the
  GUI:

    reset_drc -name DRC1 
    

See Also:

   *  report_drc


@@@COMMAND: reset_drc_check@@@
reset_drc_check

Description: 
Reset one or more DRC checks to factory defaults.

Syntax: 
reset_drc_check  [-quiet] [-verbose] [<checks>...]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<checks>]  The list of checks to reset.

Categories: 
DRC, Object

Description:

  Reset the specified DRC checks to the defaults provided by the AMD Vivado
  Design Suite. This will restore the DRC check to its default configuration,
  including any changes to the IS_ENABLED or SEVERITY properties.

  The IS_ENABLED property can be modified on a specific DRC check to disable
  the rule from being checked, even when it is specified either directly in
  the report_drc command, or as part of a ruledeck.

  The SEVERITY property is a string property that can be modified to change
  the severity associated with a specific DRC rule when a violation is found
  during the report_drc command. The supported values are: FATAL, ERROR,
  "CRITICAL WARNING", WARNING, ADVISORY

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <checks> - (Required) The list of one or more DRC rule checks to reset to
  the tool defaults.

Examples:

  The following example modifies the IS_ENABLED property for the ROAS-1 rule,
  modifies the SEVERITY property for the RFFC-1 rule, and then restores the
  default settings for all checks:

    set_property IS_ENABLED false [get_drc_checks ROAS-1]
    set_property SEVERITY "Critical Warning" [get_drc_checks RFFC-1]
    reset_drc_check [get_drc_checks]

See Also:

   *  add_drc_checks
   *  get_drc_checks
   *  report_drc
   *  set_property


@@@COMMAND: reset_methodology@@@
reset_methodology

Description: 
Remove Methodology report

Syntax: 
reset_methodology  [-name <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-name]     Methodology result name
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Methodology, Report

Description:

  Clear the methodology results from the specified named result set.

  This command operates silently, returning nothing if successful, or
  returning an error if it fails.

Arguments:

  -name <arg> - (Optional) Specifies the name of the methodology results to
  be cleared. The name is established by the -name argument in the
  report_methodology command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example clears the specified results set from memory and the
  GUI:

    reset_methodology -name ultrafast_methodology_3 
    

See Also:

   *  get_methodology_violations
   *  report_methodology
   *  reset_methodology_check


@@@COMMAND: reset_methodology_check@@@
reset_methodology_check

Description: 
Reset one or more Methodology checks to factory defaults.

Syntax: 
reset_methodology_check  [-quiet] [-verbose] [<checks>...]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<checks>]  The list of checks to reset.

Categories: 
Methodology, Object

Description:

  Reset the specified methodology checks to the defaults provided by the
  Vivado Design Suite. This will restore the check to its default
  configuration, including any changes to the IS_ENABLED or SEVERITY
  properties.

  The IS_ENABLED property can be modified on a specific methodology check to
  disable the rule from being checked, even when it is specified directly in
  the report_methodology command.

  The SEVERITY property is an enumerated property that can be modified to
  change the severity associated with a specific methodology check when a
  violation is found during the report_methodology command. The supported
  values are: FATAL, ERROR, "CRITICAL WARNING", WARNING, ADVISORY

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <checks> - (Required) The list of one or more DRC rule checks to reset to
  the tool defaults.

Examples:

  The following example modifies the IS_ENABLED and SEVERITY properties for
  the CHECK-4 methodology check, reports the properties of the check to see
  the changes, and then resets the methodology check to its default setting:

    set_property IS_ENABLED false [get_methodology_checks CHECK-4]  
    set_property SEVERITY Warning [get_methodology_checks CHECK-4]  
    report_property [get_methodology_checks CHECK-4]  
    reset_methodology_check [get_methodology_checks CHECK-4]  
    report_property [get_methodology_checks CHECK-4] 
    

See Also:

   *  get_methodology_checks
   *  report_methodology
   *  reset_methodology


@@@COMMAND: reset_msg_config@@@
reset_msg_config

Description: 
Resets or removes a message control rule previously defined by the set_msg_config command.

Syntax: 
reset_msg_config  [-string <args>] [-id <arg>] [-severity <arg>] [-limit]
                  [-suppress] [-count] [-default_severity] [-regexp] [-quiet]
                  [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  [-string]            A qualifier, only a rule created with a matching 
                       string qualifier will be reset/removed
                       Default: empty
  [-id]                A qualifier, only a rule created with a matching id 
                       qualifier will be reset/removed
  [-severity]          A qualifier, only a rule created with a matching 
                       severity qualifier will be reset/removed
  [-limit]             reset the limit values for message controls that match
                       the given qualifiers for the current project
  [-suppress]          stop suppressing messages that match the given 
                       qualifiers for the current project
  [-count]             reset the count of messages for all message controls 
                       that match the given qualifiers for the current 
                       project. This will prevent messages from being 
                       suppressed by a -limit control until the message count
                       once again exceeds the specified limit.
  [-default_severity]  reset the message severity of all messages controls 
                       for the current project that match the given 
                       qualifiers to their default value
  [-regexp]            The values used for -string are full regular 
                       expressions
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Report

Description:

  This command restores the default settings of the message limits or
  severity for messages returned by the Vivado tool, or can unsuppress
  previously suppressed messages, as configured by the set_msg_config
  command.

  You can only perform one reset action for each reset_msg_config command. An
  error is returned if more than one action is attempted in a single
  reset_msg_config command.

  Message qualifiers of string, ID, and severity are used to determine which
  messages are reset by the reset_msg_config command. Multiple qualifiers
  have an AND relationship; only the messages matching the qualifiers will be
  reset.

  Note: You must supply at least one message qualifier to identify a message
  or group of messages to apply the command to, or an error is returned.

  To report the current rule configurations for messages, use the
  get_msg_config command.

Arguments:

  -string <args> - (Optional) Apply the selected operation only to messages
  that contain the given list of strings. Strings must be enclosed in braces,
  and multiple strings can be specified separated by spaces:

    {{Vivado} {Synthesis}}

  Note: Strings are case sensitive.

  -id <arg> - (Optional) Reset messages matching the specified message ID.
  The message ID is included in all returned messages. For example, "Common
  17-54" and "Netlist 29-28".

  Note: A wildcard * indicates all message IDs should be reset.

  -severity <arg> - Reset messages with the specified message severity. There
  are five message severities:

   *  ERROR - An ERROR condition implies an issue has been encountered which
      will render design results unusable and cannot be resolved without user
      intervention.

   *  {CRITICAL WARNING} - A CRITICAL WARNING message indicates that certain
      input/constraints will either not be applied or are outside the best
      practices for a FPGA family. User action is strongly recommended.

      Note: Since this is a two word value, it must be enclosed in {}.

   *  WARNING - A WARNING message indicates that design results may be
      sub-optimal because constraints or specifications may not be applied as
      intended. User action may be taken or may be reserved.

   *  INFO - An INFO message is the same as a STATUS message, but includes a
      severity and message ID tag. An INFO message includes a message ID to
      allow further investigation through answer records if needed.

   *  STATUS - A STATUS message communicates general status of the process
      and feedback to the user regarding design processing. A STATUS message
      does not include a message ID.

  -limit - (Optional) Reset the message limit for messages matching the
  string, ID, or severity qualifiers.

  -suppress - (Optional) Reset, or unsuppress messages matching the string,
  ID, or severity qualifiers.

  -count - (Optional) Reset the message count for messages matching the
  string, ID, or severity qualifiers.

  -default_severity - (Optional) Restore the default message severity for
  messages matching the string, ID, or severity qualifiers.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example changes the severity of the specified message ID to a
  Critical Warning, and then resets the message to its default severity:

    set_msg_config -id "Common 17-81" -new_severity "CRITICAL WARNING"  
    reset_msg_config -id "Common 17-81" -default_severity 
    

  This example changes the severity of messages with the specified message
  ID, gets the current message configuration rules, and then shows two
  different command forms to reset the specific rule and restore the message:

    set_msg_config -id "Common 17-361" -severity INFO -new_severity WARNING  
    get_msg_config -rules  
    ---------------------  
    Message control rules currently in effect are:  
    Rule Name  Rule                                                  Current Message Count    
    1  set_msg_config -ruleid {1} -id {Common 17-361} -severity {INFO} -new_severity {WARNING} 0  
    ---------------------  
    reset_msg_config -id "Common 17-361" -default_severity    
    reset_msg_config -ruleid {1}

  Note: In the preceding example, only one of the reset_msg_config commands
  is needed to reset the message.

See Also:

   *  get_msg_config
   *  set_msg_config


@@@COMMAND: reset_msg_count@@@
reset_msg_count

Description: 
Reset message count

Syntax: 
reset_msg_count  [-quiet] [-verbose] <id>

Returns: 
new message count

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <id>        Unique message Id to be reset, e.g. "Common 17-99".
              "reset_msg_count -id *" reset all counters

Categories: 
Report


Description:

  Reset the message count for the specified message ID to 0. This restarts
  the message counter toward the specified message limit. This can be used to
  reset the count of specific messages that may be reaching the limit, or
  reset the count of all messages returned by the tool.

  Every message delivered by the tool has a unique global message ID that
  consists of an application sub-system code and a message identifier. This
  results in a message ID that looks like the following:

    "Common 17-54"
    "Netlist 29-28"
    "Synth 8-3295"

  You can get the current message count for a specific message ID using the
  get_msg_count command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <id> - (Required) Specifies the message ID to reset the count to 0. Specify
  * to reset the count of all messages to 0.

Examples:

  The following example resets the message count for all messages:

    reset_msg_count *

See Also:

   *  set_msg_config


@@@COMMAND: reset_operating_conditions@@@
reset_operating_conditions

Description: 
Reset operating conditions to tool default for power estimation

Syntax: 
reset_operating_conditions  [-voltage <args>] [-grade] [-process]
                            [-junction_temp] [-ambient_temp] [-thetaja]
                            [-thetasa] [-airflow] [-heatsink] [-thetajb]
                            [-board] [-board_temp] [-board_layers]
                            [-design_power_budget]
                            [-supply_current_budget <args>] [-quiet] [-verbose]

Usage: 
  Name                      Description
  -------------------------------------
  [-voltage]                Resets voltage value. Supported voltage supplies 
                            vary by family.
  [-grade]                  Resets temperature grade
  [-process]                Resets process
  [-junction_temp]          Resets Junction Temperature
  [-ambient_temp]           Resets Ambient Temperature
  [-thetaja]                Resets ThetaJA
  [-thetasa]                Resets ThetaSA
  [-airflow]                Resets Airflow
  [-heatsink]               Resets dimensions of heatsink
  [-thetajb]                Resets ThetaJB
  [-board]                  Resets Board type
  [-board_temp]             Resets Board Temperature
  [-board_layers]           Resets Board layers
  [-design_power_budget]    Design Power Budget (W)
  [-supply_current_budget]  Resets list of supply current budget 'name value'
                            pairs. Supported voltage supplies vary by family.
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution

Categories: 
Power, XDC

Description:

  Resets the specified operating conditions to their default values. If no
  operating conditions are specified, all operating conditions are reset to
  their default values.

  Operating conditions can be set using the set_operating_conditions command.
  The current values can be determined using the report_operating_conditions
  command. The environmental operating conditions of the device are used for
  power analysis when running the report_power command, but are not used
  during timing analysis.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -voltage <args> - (Optional) Reset the voltage supply to the default value.
  The voltage supply and its default depend on the device family.

  -grade - (Optional) Reset the temperature grade of the selected device. The
  default value is "commercial".

  -process - (Optional) Reset the manufacturing process for the target
  device. The default process is "typical".

  -junction_temp - (Optional) Reset the junction temperature for the target
  device. The default value is "auto".

  -ambient_temp - (Optional) Reset the ambient temperature of the design. The
  default setting is "default".

  -thetaja - (Optional) Reset the Theta-JA thermal resistance. The default
  setting is "auto".

  -thetasa - (Optional) Reset the Theta-SA thermal resistance. The default
  setting is "auto".

  -airflow - (Optional) Reset the Linear Feet Per Minute (LFM) airflow. The
  default setting varies by device family.

  -heatsink - (Optional) Reset the heatsink profile. The default setting is
  "medium".

  -thetajb - (Optional) Reset the Theta-JB thermal resistance. The default
  setting is "auto".

  -board - (Optional) Reset the board size to be used for modeling. The
  default value is "medium".

  -board_temp - (Optional) Reset the board temperature to the default setting.

  -board_layers - (Optional) Reset the number of board layers to be used for
  modeling to the default setting of "12to15".

  -design_power_budget - (Optional) Reset the design power budget to
  "unspecified".

  -supply_current_budget <args> - (Optional) Reset the supply current budgets
  to the default value. The voltage supply names depend on the device family.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example resets all the operating conditions for the design to
  their default setting:

    reset_operating_conditions 
    

  The following example resets the junction, ambient, and board temperature
  for the design to their default settings:

    reset_operating_conditions -junction_temp -ambient_temp -board_temp 
    

  The following example resets the voltage supply Vccint to its default value:

    reset_operating_conditions -voltage Vccint 
    

See Also:

   *  report_operating_conditions
   *  report_power
   *  set_operating_conditions


@@@COMMAND: reset_param@@@
reset_param

Description: 
Reset a parameter

Syntax: 
reset_param  [-quiet] [-verbose] <name>

Returns: 
original value

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Parameter name

Categories: 
PropertyAndParameter

Description:

  Restores a user-definable configuration parameter that has been changed
  with the set_param command to its default value.

  You can use the report_param command to see which parameters are currently
  defined.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of a parameter to reset. You can only reset
  one parameter at a time.

Examples:

  The following example restores the tcl.statsThreshold parameter to its
  default value:

    reset_param tcl.statsThreshold 
    

See Also:

   *  get_param
   *  list_param
   *  report_param
   *  set_param


@@@COMMAND: reset_project@@@
reset_project

Description: 
Reset current project

Syntax: 
reset_project  [-exclude_runs] [-exclude_ips] [-exclude_sim_runs] [-quiet]
               [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  [-exclude_runs]      Do not reset runs
  [-exclude_ips]       Do not reset ips
  [-exclude_sim_runs]  Do not reset simulation runs
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Project

Description:

  Reset the current project to its starting condition, with source and
  constraint files, by cleaning out the various output files created during
  synthesis, simulation, implementation, and write_bitstream. Also resets the
  state of the project to the start of the design flow.

  Note: Any user-defined Tcl variables that are in the global namespace (i.e.
  not in a project-specific namespace) are not reset or cleared by this
  command. Global variables are persistent with the invocation of Vivado and
  are only cleared when the Vivado Design Suite is closed. You can also use
  the unset command to expressly clear a specific Tcl variable.

Arguments:

  -exclude_runs - (Optional) Exclude the <project>.runs folder from the reset
  process. In this case, the runs folder will be preserved, while the rest of
  the project data will be removed.

  -exclude_ips - (Optional) Exclude the <project>.srcs/sources_1/ip folder
  from the reset process. In this case, the IP folder, containing the IP
  cores and generated targets, will be preserved, while the rest of the
  project data will be removed.

  -exclude_sim_runs - (Optional) Exclude the <project>.sim folder from the
  reset process. In this case, the simulation folder will be preserved, while
  the rest of the project data will be removed.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example resets the current project, while preserving the
  simulation run data, and returning all messages regardless of message
  limits:

    reset_project -exclude_sim_runs -verbose 
    

See Also:

   *  create_project
   *  current_project


@@@COMMAND: reset_property@@@
reset_property

Description: 
Reset property on object(s)

Syntax: 
reset_property  [-quiet] [-verbose] <property_name> <objects>...

Returns: 
The value that was set if success, "" if failure

Usage: 
  Name             Description
  ----------------------------
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <property_name>  Name of property to reset
  <objects>        Objects to set properties

Categories: 
Object, PropertyAndParameter

Description:

  Restores the specified property to its default value on the specified
  object or objects. If no default is defined for the property, the property
  is unassigned on the specified object.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <property_name> - (Required) The name of the property to be reset.

  <objects> - (Required) One or more objects on which the property will be
  restored to its default value.

Examples:

  The following example sets the DOB_REG property on the specified Block RAM,
  and then resets the property:

    set_property DOB_REG 1 [get_cells usbEngine1/usbEngineSRAM/snoopyRam_reg_19]  
    reset_property DOB_REG [get_cells usbEngine1/usbEngineSRAM/snoopyRam_reg_19] 
    

See Also:

   *  create_property
   *  get_cells
   *  get_property
   *  list_property
   *  list_property_value
   *  report_property
   *  set_property


@@@COMMAND: reset_runs@@@
reset_runs

Description: 
Reset existing run(s).

Syntax: 
reset_runs  [-prev_step] [-from_step <arg>] [-quiet] [-verbose] <runs>...

Usage: 
  Name          Description
  -------------------------
  [-prev_step]  Reset last run step
  [-from_step]  First Step to reset
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <runs>        Runs to modify

Categories: 
Project

Description:

  Resets the specified run(s) to an unimplemented or unsynthesized state. Use
  this command to reset the run(s) to prepare it to be run again.

Arguments:

  -prev_step - (Optional) Reset an implementation run from the last step
  completed. This can be used to reset an implementation run that is only
  partially completed because it was launched with the launch_runs -to_step
  command.

  -from_step <arg> - (Optional) Reset an implementation run from a specified
  step. This lets you restart a run from the specified step using the
  launch_runs -next_step command. Valid step values include:

   *  opt_design - Optionally optimize the logical design to more efficiently
      use the target device resources.

   *  power_opt_design - Optionally optimize elements of the logic design to
      reduce power demands of the implemented FPGA.

   *  place_design - Place logic cells onto the target device. This is a
      required step.

   *  power_opt_design (Post-Place) - Optionally optimize power demands of
      the placed logic elements.

   *  phys_opt_design - Optionally optimize design timing by replicating
      drives of high-fanout nets to better distribute the loads.

   *  route_design - Route the connections of the design onto the target
      FPGA. This is a required step.

   *  write_bitstream - Generate a bitstream file for AMD device
      configuration. This is a required step.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <runs> - (Required) The name of the run(s) to reset.

Examples:

  The following example resets the implementation run:

    reset_runs impl_1
    

  Note: The run directory and its contents will be removed from the hard disk
  since -noclean_dir is not specified.

  The following example resets the synthesis run, but disables the cleanup of
  the run directory:

    reset_runs -noclean_dir synth_1
    

  In this example, because -noclean_dir is specified, the synth_1 run
  directory is not removed and a new run directory called synth_1_2 will be
  created when the run is launched.

See Also:

   *  create_run
   *  launch_runs
   *  opt_design
   *  place_design
   *  route_design


@@@COMMAND: reset_simulation@@@
reset_simulation

Description: 
Reset an existing simulation run

Syntax: 
reset_simulation  [-mode <arg>] [-type <arg>] [-quiet] [-verbose] [<simset>]

Usage: 
  Name        Description
  -----------------------
  [-mode]     Remove generated data for the specified mode. Values: 
              behavioral, post-synthesis, post-implementation
              Default: behavioral
  [-type]     Remove generated data for the specified type. Applicable mode 
              is post-synthesis or post-implementation. Values: functional, 
              timing
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<simset>]  Name of the simulation fileset to reset

Categories: 
Simulation

Description:

  Reset the current simulation to its starting condition, by cleaning out the
  various output files created during compilation and simulation for the
  specified simulation fileset.

  Note: Local files will be removed from the project simulation folders
  without warning.

  The command returns nothing if successful, or an error if it fails.

Arguments:

  -mode [ behavioral | post-synthesis | post-implementation ] - (Optional)
  Specify the simulation mode to reset. Valid values include behavioral
  simulation, post-synthesis, or post implementation simulation. The default
  mode is behavioral.

  -type [ functional | timing ] - (Optional) Cannot be used with -mode
  behavioral. Specifies functional simulation of just the netlist, or timing
  simulation of the netlist and SDF file. Post-synthesis timing simulation
  uses SDF component delays from the synth_design command.
  Post-implementation timing simulation uses SDF delays from the place_design
  and route_design commands.

  Note: Do not use -type with -mode behavioral, or the tool will return an
  error.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <simset> - (Optional) Specify a simulation fileset to remove. The default
  simset is sim_1.

Examples:

  The following example resets the post-synthesis timing simulation by
  removing files for the sim_2 simset:

    reset_simulation -mode post-synthesis -type timing sim_2 
    

See Also:

   *  launch_xsim


@@@COMMAND: reset_ssn@@@
reset_ssn

Description: 
Clear a SSN results set from memory

Syntax: 
reset_ssn  [-quiet] [-verbose] <name>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of the set of results

Categories: 
Report

Description:

  Clear the SSN results from the specified named result set.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specifies the name of the results to be cleared.

Examples:

  The following example clears the specified results set from memory:

    reset_ssn SSN1 
    

See Also:

   *  report_ssn


@@@COMMAND: reset_switching_activity@@@
reset_switching_activity

Description: 
Reset switching activity on specified objects

Syntax: 
reset_switching_activity  [-default] [-type <args>] [-hier] [-all]
                          [-no_deassert_resets] [-quiet] [-verbose]
                          [<objects>...]

Usage: 
  Name                   Description
  ----------------------------------
  [-default]             Reset default static probability and default toggle 
                         rate
  [-type]                Specify nodes in a specific category.  List of valid
                         type values: io_output, io_bidir_enable, register, 
                         lut_ram, lut, dsp, bram_enable, bram_wr_enable, 
                         gt_txdata, gt_rxdata.
  [-hier]                Hierarchically resets the switching activity on a 
                         hierarchical cells provided as <objects>.
  [-all]                 Reset switching activity on all nets
  [-no_deassert_resets]  A switch to undo the deassertion of resets via 
                         command set_switching_activity -deassert_resets
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution
  [<objects>]            Objects to reset switching activity on

Categories: 
Power, XDC

Description:

  Resets the attributes of the switching activity on specified nets, ports,
  pins, and cells in the design.

  The switching activity is defined using the set_switching_activity command.
  The current switching activity defined for a specific port, pin, net, or
  cell can be found by using the report_switching_activity command.

  Note: The reset_switching_activity is used to reset switching activity for
  specified objects. Use set_switching_activity -default_toggle_rate or
  -default_static_probability to change or reset the default values for the
  current design.

  This command operates silently and does not return direct feedback of its
  operation.

Arguments:

  -default - (Optional) Reset the static probability and signal rate of the
  specified object.

  -type <arg> - (Optional) Reset the switching activity for the specified
  type of logic entity. By default, the command is applied to the top-level
  of the current design, or to the specified <objects>. The -type option
  applies the command to the specified type of logic objects in the top-level
  of the current design. The -all option, or -hier option, can be used to
  modify the scope of objects the command applies to. Valid logic types
  include:

   *  io_output - Primary outputs.

   *  io_bidir_enable - Enable pin of Bidir ports.

   *  register - All register outputs in the design/hierarchy specified.

   *  lut - All LUT outputs in the design/hierarchy specified.

   *  lut_ram - All distributed ram outputs in the design/hierarchy specified.

   *  dsp - All DSP outputs in the design/hierarchy specified.

   *  bram_enable - Enable pins (ENARDEN/ENBWREN) of BRAMs.

   *  bram_wr_enable - Write enables of BRAMs (WEA/WEBWE).

   *  gt_txdata - Output TX data pins of all GTs.

   *  gt_rxdata - Output RX data pins of all GTs.

  -hier - (Optional) Reset the switching activity across all levels of the
  specified hierarchical object. Without -hier, the switching activity is
  applied to the specified <objects> at the current level of the hierarchy.

  -all - (Optional) Must be used with -type, reset the switching activity on
  nets within all instances of the specified -type of logic object.

  -no_deassert_resets - (Optional) Disables the -deassert_resets option if it
  was previously enabled using set_switching_activity.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) The list of objects for which to reset the switching
  activity. If not specified, the command resets the switching activity on
  all objects.

Examples:

  The following example resets the signal_rate and static probability value
  on all output ports:

    reset_switching_activity -default [all_outputs] 
    

See Also:

   *  power_opt_design
   *  report_power
   *  report_switching_activity
   *  set_switching_activity


@@@COMMAND: reset_target@@@
reset_target

Description: 
Reset target data for the specified source

Syntax: 
reset_target  [-quiet] [-verbose] <name> <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      List of targets to be reset, or 'all' to reset all generated 
              targets
  <objects>   The objects for which data needs to be reset

Categories: 
Project, IPFlow

Description:

  Remove the current target data for the specified IP core. This deletes any
  files that were delivered during generation of the specified targets. This
  does not remove the core from the current project, but does remove the
  associated target data from its referenced location.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specifies the name of the type of target to reset.
  Valid values are:

   *  all - Reset all targets for the specified core.

   *  synthesis - Reset the synthesis netlist for the specified core. This
      will remove the netlist files for the specified core.

   *  simulation - Reset the simulation netlist for the specified core.

   *  instantiation_template - Reset the instantiation template for the
      specified core.

  <objects> - (Required) The IP core objects to remove the target data from.

Examples:

  The following example resets the instantiation template for the specified
  IP core:

    reset_target instantiation_template [get_ips blk_mem*] 
    

See Also:

   *  generate_target


@@@COMMAND: reset_timing@@@
reset_timing

Description: 
Resets the timing information on the current design

Syntax: 
reset_timing  [-invalid] [-clock_reservation] [-quiet] [-verbose]

Usage: 
  Name                  Description
  ---------------------------------
  [-invalid]            Resets invalid timing constraints in addition to 
                        valid timing constraints.
  [-clock_reservation]  Resets clock name reservations for auto-derived 
                        clocks in addition to valid timing constraints.
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
Report, Timing

Description:

  Reset the timing data and constraints for the current design. Use this
  command to clear the current in-memory timing data and constraints, and
  force the timing engine to reevaluate the design comprehensively rather
  than iteratively.

  After clearing the constraints from the in-memory design, you must reload
  any needed constraints using the read_xdc command. The Vivado tool will not
  automatically reload the constraints.

  Note: This command deletes the in-memory timing view, not the timing
  report. Use the delete_timing_results command to delete the reported timing
  information.

Arguments:

  -invalid - (Optional) Remove the invalid timing constraints as well as the
  valid timing constraints when resetting the design. Invalid constraints
  contain an error or are assigned to missing design objects, and are ignored
  by the Vivado timing engine at the time the XDC file is read, and so do not
  affect timing results. Resetting invalid constraints removes them from the
  in-memory design, so they will be lost if not previously saved to a
  constraints file.

  -clock_reservation - (Optional) Resets auto-generated clock names as well
  as valid timing constraints. This allows the Vivado timing engine to
  regenerate the names of auto-generated clocks without regard to prior
  reserved names.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example clears the current timing data from memory, including
  any invalid timing constraints:

    reset_timing -invalid 
    

See Also:

   *  delete_timing_results
   *  report_timing
   *  report_timing_summary


@@@COMMAND: reset_ucf@@@
reset_ucf

Description: 
Clear floorplan constraints read in from a file

Syntax: 
reset_ucf  [-quiet] [-verbose] <file>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      UCF file to be reset

Categories: 
Floorplan


@@@COMMAND: resize_net_bus@@@
resize_net_bus

Description: 
Resize net bus in the current design

Syntax: 
resize_net_bus  [-from <arg>] [-to <arg>] [-quiet] [-verbose] <net_bus_name>...

Usage: 
  Name            Description
  ---------------------------
  [-from]         New starting bus index
  [-to]           New ending bus index
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <net_bus_name>  Name of the net bus to resize

Categories: 
Netlist

Description:

  Resize an existing bus net, to grow the bus, shrink the bus, or renumber
  the current range of indexes. You can only do a single grow, shrink, or
  renumber operation with each command.

   *  You can grow the bus by indicating a new range of indexes outside the
      current range of indexes. Growing the bus leaves existing bits
      connected as they currently are.

   *  You can shrink the bus by indicating a new range of indexes inside the
      current range of indexes. Shrinking the bus, eliminates connections to
      removed bits, but leaves the remaining bits connected as they currently
      are.

   *  You can renumber the current bus indexes by providing a new range of
      indexes with the same width as the current range. Renumbering bits
      changes bus bit numeric identifiers, but doesn`t otherwise change
      connections.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  This command returns nothing if successful, and returns an error if it fails.

Arguments:

  -from <arg> - (Optional) The new starting index of the specified bus net.

  -to <arg> - (Optional) The new ending index of the specified bus.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <net_bus_name> - (Required) The names of an existing bus net.

Example:

  The following example creates a new 24-bit bus, then renumbers the bus
  indexes to include negative indexes, and then resizes the bus to shrink it
  to an 8-bit bus:

    create_net tempBus -from 23 -to 0  
    resize_net_bus tempBus -from -12 -to 11  
    resize_net_bus tempBus -from 0 -to 7 
    

See Also:

   *  connect_net
   *  create_net
   *  create_pin
   *  create_port
   *  disconnect_net
   *  get_nets
   *  remove_net
   *  resize_pin_bus
   *  resize_port_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: resize_pblock@@@
resize_pblock

Description: 
Move, resize, add and remove Pblock site-range constraints

Syntax: 
resize_pblock  [-add <args>] [-remove <args>] [-from <args>] [-to <args>]
               [-replace] [-locs <arg>] [-quiet] [-verbose] <pblock>

Usage: 
  Name        Description
  -----------------------
  [-add]      Add site/tile ranges(s)
  [-remove]   Remove site/tile ranges(s)
  [-from]     Site range(s) to move
  [-to]       Site range destination(s)
  [-replace]  Remove all existing ranges
  [-locs]     LOC treatment
              Default: keep_all
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <pblock>    Pblock to resize

Categories: 
Floorplan, XDC

Description:

  Place, resize, move, or remove the specified Pblock. The Pblock must have
  been created using the create_pblock command.

  A Pblock consists of a group of cells that can be assigned to one or more
  independent or overlapping rectangles. Using the various options defined
  below, you can add sites to a rectangle, or remove sites from a rectangle,
  or define a new rectangle to be associated with an existing Pblock.

Arguments:

  -add <args> - (Optional) Add the specified range of sites to the Pblock.
  The range is specified as a rectangle from one corner to the diagonally
  opposite corner. The specific objects that can be used to define a Pblock
  range include the following: SLICE, DSP48, RAMB18, RAMB36, CLOCKREGION. For
  example SLICE_X0Y0:SLICE_X20Y12.

  Note: Multiple site types are added as separate rectangles.

  -remove <args> - (Optional) Remove the specified range of sites from the
  Pblock. Removing sites from a Pblock may result in the Pblock being broken
  into multiple smaller rectangles to enforce the requirement that Pblocks
  are defined as one or more rectangles.

  -from <args> - (Optional) The -from and -to options must be used as a pair,
  and specify a site or range of sites to relocate from one location to
  another.

  -to <args> - (Optional) The -from and -to options must be used as a pair,
  and specify a site or range of sites to relocate from one location to
  another.

  -locs <args> - (Optional) Specifies how the placed logic in the Pblock will
  be handled as the Pblock is moved or resized. Valid values are:

   *  keep_all - leave all locs placed as they are currently. This is the
      default setting when -locs is not specified. Logic that is placed
      outside of the Pblock will no longer be assigned to the Pblock.

   *  keep_only_fixed - Specifies that only user-placed logic (fixed) will be
      preserved. Unfixed placed logic will be unplaced.

   *  keep_none - Unplace all logic.

   *  move - Specifies that all locs should be moved relative to the
      coordinates of the Pblock.

   *  move_unfixed - Specifies that only the unfixed placed elements should
      be moved. Logic placed by the user (fixed) will not be moved.

   *  trim - Specifies that logic that falls outside of the new Pblock
      boundaries will be unplaced. Any placed logic that still falls inside
      of the Pblock boundary will be left placed as it is.

   *  trim_unfixed - Trim only the unfixed placed logic.

  -replace - (Optional) Remove all rectangles associated with the Pblock.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pblock> - (Required) Specify the Pblock to be resized, moved, or removed.

Examples:

  The following example resizes the Pblock by adding a range of SLICEs, and
  removing other SLICEs, but keeps all instances placed at their current
  location:

    resize_pblock block3 -add SLICE_X6Y67:SLICE_X11Y71 \
       -remove SLICE_X6Y71:SLICE_X7Y71 -locs keep_all

  This example create a Pblock region, and defines the Pblock area by adding
  a range of CLOCKREGIONs:

    create_pblock pblock_1
    resize_pblock pblock_1 -add {CLOCKREGION_X0Y10:CLOCKREGION_X1Y11}

  The following example moves the specified Pblock by adding a range of
  SLICEs, removing the existing range of SLICEs, and trims any placed logic
  that falls outside the new Pblock. Then it adds a new range of SLICEs and
  block ram to the specified Pblock in a second separate rectangle:

    resize_pblock block3 -add SLICE_X3Y8:SLICE_X10Y3 \
       -remove SLICE_X6Y67:SLICE_X11Y71 -locs trim
    resize_pblock block3 -add {SLICE_X6Y67:SLICE_X11Y71 \
       RAMB18_X0Y2:RAMB18_X1Y4}

  The following example creates a Pblock and defines a Pblock area by
  specifying a complete SLR:

    create_pblock pblock_slr0
    resize_pblock pblock_slr0 -add SLR0

See Also:

   *  get_pblocks
   *  create_pblock
   *  add_cells_to_pblock


@@@COMMAND: resize_pin_bus@@@
resize_pin_bus

Description: 
Resize pin bus in the current design

Syntax: 
resize_pin_bus  [-from <arg>] [-to <arg>] [-quiet] [-verbose] <pin_bus_name>...

Usage: 
  Name            Description
  ---------------------------
  [-from]         New starting bus index
  [-to]           New ending bus index
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <pin_bus_name>  Name of the pin bus to resize

Categories: 
Netlist

Description:

  Resize an existing bus pin, to grow the bus, shrink the bus, or renumber
  the current range of pin indexes. You can only do a single grow, shrink, or
  renumber operation with each command.

   *  You can grow the bus by indicating a new range of pin indexes outside
      the current range of indexes. Growing the bus leaves existing pins
      connected as they currently are.

   *  You can shrink the bus by indicating a new range of pin indexes inside
      the current range of indexes. Shrinking the bus, eliminates connections
      to removed bus pins, but leaves the remaining pins connected as they
      currently are.

   *  You can renumber the current bus indexes by providing a new range of
      pin indexes with the same width as the current range. Renumbering pins
      changes the pin index, but does not otherwise change connections.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  This command returns nothing if successful, and returns an error if it fails.

Arguments:

  -from <arg> - (Optional) The new starting index of the specified bus pin.

  -to <arg> - (Optional) The new ending index of the specified bus pin.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <bus_pin_name> - (Required) The name of the bus pin to modify. You must
  specify the pin names hierarchically from the cell instance the pin is
  assigned to. Pins created at the top-level of the design are ports, and
  should be resized with the resize_port_bus command.

Examples:

  The following example creates a blackbox cell, then creates a 24-bit
  bidirectional bus for the specified hierarchical cell, then resizes the bus
  pin to expand the width to 32-bits, then renumbers the index to include
  negative bus indexes:

    create_cell -reference dmaBlock -black_box usbEngine0/myDMA  
    create_pin -direction INOUT -from 0 -to 23 usbEngine0/myDMA/dataBus  
    resize_pin_bus -from 0 -to 31 usbEngine0/myDMA/dataBus  
    resize_pin_bus -from -16 -to 15 usbEngine0/myDMA/dataBus 
    

See Also:

   *  create_net
   *  create_pin
   *  create_port
   *  get_pins
   *  remove_pin
   *  resize_net_bus
   *  resize_port_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: resize_port_bus@@@
resize_port_bus

Description: 
Resize port bus in the current design

Syntax: 
resize_port_bus  [-from <arg>] [-to <arg>] [-quiet] [-verbose]
                 <port_bus_name>...

Usage: 
  Name             Description
  ----------------------------
  [-from]          New starting bus index
  [-to]            New ending bus index
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <port_bus_name>  Name of the port bus to resize

Categories: 
PinPlanning

Description:

  Resize an existing bus port, to grow the bus, shrink the bus, or renumber
  the current range of port indexes. You can only do a single grow, shrink,
  or renumber operation with each command.

   *  You can grow the bus by indicating a new range of port indexes outside
      the current range of indexes. Growing the bus leaves existing port
      indexes connected as they currently are.

   *  You can shrink the bus by indicating a new range of port indexes inside
      the current range of indexes. Shrinking the bus, eliminates connections
      to removed bus ports, but leaves the remaining ports connected as they
      currently are.

   *  You can renumber the current bus indexes by providing a new range of
      port indexes with the same width as the current range. Renumbering
      ports changes the port index, but does not otherwise change
      connections.

  Netlist editing changes the in-memory view of the netlist in the current
  design. It does not change the files in the source fileset, or change the
  persistent design on the disk. Changes made to the netlist may be saved to
  a design checkpoint using the write_checkpoint command, or may be exported
  to a netlist file such as Verilog, VHDL, or EDIF, using the appropriate
  write_* command.

  Note: Netlist editing is not allowed on the elaborated RTL design.

  This command returns nothing if successful, and returns an error if it fails.

Arguments:

  -from <arg> - (Optional) The new starting index of the specified bus port.

  -to <arg> - (Optional) The new ending index of the specified bus port.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <bus_port_name> - (Required) The name of the bus port to modify.

Examples:

  The following example creates a 32-bit output bus port, then renumbers the
  ports to include negative bus indexes, then shrinks the bus width from
  32-bits to 16-bits:

    create_port -direction out -from 0 -to 31 outPorts  
    resize_port_bus -from -16 -to 15 outPorts  
    resize_port_bus -from -8 -to 7 outPorts 
    

See Also:

   *  create_net
   *  create_pin
   *  create_port
   *  get_ports
   *  remove_port
   *  resize_net_bus
   *  resize_pin_bus
   *  write_checkpoint
   *  write_edif
   *  write_verilog
   *  write_vhdl


@@@COMMAND: resynth_module@@@
resynth_module

Description: 
Run synthesis to optimize a supplied verilog module

Syntax: 
resynth_module  [-input <arg>] [-output <arg>] [-quiet] [-verbose]

Returns: 
opt_design

Usage: 
  Name        Description
  -----------------------
  [-input]    Input file name - Verilog file containing module to optimize
  [-output]   Output file name - Verilog file created containing optimized 
              module
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Tools


@@@COMMAND: return@@@
return(n)             Tcl Built-In Commands             return(n)



_________________________________________________________________

NAME
       return  - Return from a procedure, or set return code of a
       script

SYNOPSIS
       return ?result?

       return ?-code code? ?result?

       return ?option value ...? ?result?
_________________________________________________________________

DESCRIPTION
       In its simplest usage, the return command is used  without
       options  in  the body of a procedure to immediately return
       control to the caller of the procedure.  If a result argu-
       ment is provided, its value becomes the result of the pro-
       cedure passed back to the caller.  If result is not speci-
       fied  then  an empty string will be returned to the caller
       as the result of the procedure.

       The return command serves a similar function within script
       files  that  are  evaluated  by  the source command.  When
       source evaluates the contents of a file as  a  script,  an
       invocation of the return command will cause script evalua-
       tion to immediately cease, and the  value  result  (or  an
       empty string) will be returned as the result of the source
       command.

EXCEPTIONAL RETURN CODES
       In addition to the result of a procedure, the return  code
       of  a  procedure  may also be set by return through use of
       the -code option.  In  the  usual  case  where  the  -code
       option  is  not  specified  the procedure will return nor-
       mally.  However, the -code option may be used to  generate
       an  exceptional  return from the procedure.  Code may have
       any of the following values:

       ok (or 0)    Normal return:  same  as  if  the  option  is
                    omitted.  The return code of the procedure is
                    0 (TCL_OK).

       error (1)    Error return: the return code of  the  proce-
                    dure is 1 (TCL_ERROR).  The procedure command
                    behaves in its calling context as if it  were
                    the  command  error  result.   See  below for
                    additional options.

       return (2)   The  return  code  of  the  procedure  is   2
                    (TCL_RETURN).   The procedure command behaves
                    in its calling context as if it were the com-
                    mand return (with no arguments).

       break (3)    The   return  code  of  the  procedure  is  3
                    (TCL_BREAK).  The procedure  command  behaves
                    in its calling context as if it were the com-
                    mand break.

       continue (4) The  return  code  of  the  procedure  is   4
                    (TCL_CONTINUE).     The   procedure   command
                    behaves in its calling context as if it  were
                    the command continue.

       value        Value   must  be  an  integer;   it  will  be
                    returned as the return code for  the  current
                    procedure.

       When  a  procedure  wants  to  signal that it has received
       invalid arguments from its caller, it may use return -code
       error with result set to a suitable error message.  Other-
       wise usage of the return -code option is mostly limited to
       procedures that implement a new control structure.

       The  return  -code  command  acts  similarly within script
       files that are evaluated by the  source  command.   During
       the  evaluation  of  the contents of a file as a script by
       source, an invocation of the  return  -code  code  command
       will cause the return code of source to be code.

RETURN OPTIONS
       In addition to a result and a return code, evaluation of a |
       command in  Tcl  also  produces  a  dictionary  of  return |
       options.   In  general usage, all option value pairs given |
       as arguments  to  return  become  entries  in  the  return |
       options  dictionary,  and any values at all are acceptable |
       except as noted below.  The catch command may be  used  to |
       capture  all  of  this  information -- the return code, the |
       result, and the return options  dictionary  --  that  arise |
       from evaluation of a script.

       As documented above, the -code entry in the return options
       dictionary receives special treatment by Tcl.   There  are
       other return options also recognized and treated specially
       by Tcl.  They are:

       -errorcode list
              The -errorcode option  receives  special  treatment
              only   when  the  value  of  the  -code  option  is
              TCL_ERROR.  Then the list  value  is  meant  to  be
              additional  information  about the error, presented
              as a Tcl list for further processing  by  programs.
              If  no -errorcode option is provided to return when
              the -code error option is provided,  Tcl  will  set
              the  value  of  the  -errorcode entry in the return
              options dictionary to the default  value  of  NONE.
              The -errorcode return option will also be stored in
              the global variable errorCode.

       -errorinfo info
              The -errorinfo option  receives  special  treatment
              only   when  the  value  of  the  -code  option  is
              TCL_ERROR.  Then info is the initial  stack  trace,
              meant  to  provide  to  a  human  reader additional
              information about the context in  which  the  error
              occurred.   The  stack trace will also be stored in
              the global variable errorInfo.   If  no  -errorinfo
              option  is  provided to return when the -code error
              option is provided, Tcl will provide its  own  ini-
              tial stack trace value in the entry for -errorinfo.
              Tcl's initial stack trace  will  include  only  the
              call  to  the  procedure,  and stack unwinding will
              append information about higher stack  levels,  but
              there  will  be no information about the context of
              the error within the procedure.  Typically the info
              value is supplied from the value of -errorinfo in a
              return options dictionary  captured  by  the  catch
              command  (or  from  the  copy  of  that information
              stored in the global variable errorInfo).

       -level level
              The -level and -code options work together  to  set |
              the  return  code to be returned by one of the com- |
              mands currently being evaluated.  The  level  value |
              must  be a non-negative integer representing a num- |
              ber of levels on the call stack.   It  defines  the |
              number  of  levels up the stack at which the return |
              code of a command currently being evaluated  should |
              be  code.   If  no  -level  option is provided, the |
              default value of level is 1, so  that  return  sets |
              the  return code that the current procedure returns |
              to its caller, 1 level  up  the  call  stack.   The |
              mechanism  by which these options work is described |
              in more detail below.

       -options options
              The value options must be a valid dictionary.   The |
              entries  of  that  dictionary  are treated as addi- |
              tional option value pairs for the return command.

RETURN CODE HANDLING MECHANISMS
       Return codes are used in Tcl to control program  flow.   A
       Tcl script is a sequence of Tcl commands.  So long as each
       command evaluation returns a return code of TCL_OK, evalu-
       ation  will  continue  to  the next command in the script.
       Any exceptional return code  (non-TCL_OK)  returned  by  a
       command  evaluation causes the flow on to the next command
       to be interrupted.   Script  evaluation  ceases,  and  the
       exceptional  return  code  from  the  command  becomes the
       return code of the full script evaluation.   This  is  the
       mechanism  by  which errors during script evaluation cause
       an interruption and unwinding of the call  stack.   It  is
       also the mechanism by which commands like break, continue,
       and return cause script evaluation  to  terminate  without
       evaluating all commands in sequence.

       Some  of  Tcl's built-in commands evaluate scripts as part
       of their functioning.  These  commands  can  make  use  of
       exceptional  return codes to enable special features.  For
       example, the built-in Tcl commands that  provide  loops  --
       such  as  while, for, and foreach -- evaluate a script that
       is the body of the loop.  If evaluation of the  loop  body
       returns  the return code of TCL_BREAK or TCL_CONTINUE, the
       loop command can react in such a way as to give the  break
       and  continue  commands their documented interpretation in
       loops.

       Procedure invocation also involves evaluation of a script, |
       the  body of the procedure.  Procedure invocation provides |
       special treatment when evaluation of  the  procedure  body |
       returns the return code TCL_RETURN.  In that circumstance, |
       the -level entry  in  the  return  options  dictionary  is |
       decremented.   If  after  decrementing,  the  value of the |
       -level entry is 0, then  the  value  of  the  -code  entry |
       becomes the return code of the procedure.  If after decre- |
       menting, the value of the -level  entry  is  greater  than |
       zero, then the return code of the procedure is TCL_RETURN. |
       If the procedure invocation occurred during the evaluation |
       of  the body of another procedure, the process will repeat |
       itself up the call stack, decrementing the  value  of  the |
       -level  entry  at each level, so that the code will be the |
       return code of the current command  level  levels  up  the |
       call stack.  The source command performs the same handling |
       of the TCL_RETURN return code, which explains the similar- |
       ity of return invocation during a source to return invoca- |
       tion within a procedure.                                   |

       The return code of the return command itself triggers this |
       special  handling  by  procedure invocation.  If return is |
       provided the option -level 0, then the return code of  the |
       return  command itself will be the value code of the -code |
       option (or TCL_OK by default).  Any other  value  for  the |
       -level  option  (including  the  default  value of 1) will |
       cause the return code of the return command itself  to  be |
       TCL_RETURN,  triggering a return from the enclosing proce- |
       dure.

EXAMPLES
       First, a simple example of using return to return  from  a
       procedure, interrupting the procedure body.
              proc printOneLine {} {
                 puts "line 1"    ;# This line will be printed.
                 return
                 puts "line 2"    ;# This line will not be printed.
              }

       Next, an example of using return to set the value returned
       by the procedure.
              proc returnX {} {return X}
              puts [returnX]    ;# prints "X"

       Next, a more complete example, using return -code error to
       report invalid arguments.
              proc factorial {n} {
                 if {![string is integer $n] || ($n < 0)} {
                    return -code error \
                          "expected non-negative integer,\
                           but got \"$n\""
                 }
                 if {$n < 2} {
                    return 1
                 }
                 set m [expr {$n - 1}]
                 set code [catch {factorial $m} factor]
                 if {$code != 0} {
                    return -code $code $factor
                 }
                 set product [expr {$n * $factor}]
                 if {$product < 0} {
                    return -code error \
                          "overflow computing factorial of $n"
                 }
                 return $product
              }

       Next, a procedure replacement for break.
              proc myBreak {} {
                 return -code break
              }

       With  the  -level  0  option, return itself can serve as a |
       replacement for break.                                     |
              interp alias {} Break {} return -level 0 -code break|

       An example of using catch and return -options to  re-raise |
       a caught error:                                            |
              proc doSomething {} {                               |
                 set resource [allocate]                          |
                 catch {                                          |
                    # Long script of operations                   |
                    # that might raise an error                   |
                 } result options                                 |
                 deallocate $resource                             |
                 return -options $options $result                 |
              }                                                   |

       Finally  an  example of advanced use of the return options |
       to create a procedure replacement for return itself:       |
              proc myReturn {args} {                              |
                 set result ""                                    |
                 if {[llength $args] % 2} {                       |
                    set result [lindex $args end]                 |
                    set args [lrange $args 0 end-1]               |
                 }                                                |
                 set options [dict merge {-level 1} $args]        |
                 dict incr options -level                         |
                 return -options $options $result                 |
              }                                                   |

SEE ALSO
       break(n),  catch(n),   continue(n),   dict(n),   error(n),
       proc(n), source(n), tclvars(n)

KEYWORDS
       break, catch, continue, error, procedure, return



Tcl                            8.5                      return(n)


@@@COMMAND: route_design@@@
route_design

Description: 
Route the current design

Syntax: 
route_design  [-unroute] [-release_memory] [-nets <args>] [-physical_nets]
              [-pins <arg>] [-directive <arg>] [-tns_cleanup]
              [-no_timing_driven] [-preserve] [-delay] [-auto_delay]
              -max_delay <arg> -min_delay <arg> [-timing_summary] [-finalize]
              [-ultrathreads] [-eco] [-no_psir] [-quiet] [-verbose]

Usage: 
  Name                 Description
  --------------------------------
  [-unroute]           Unroute whole design or the given nets/pins if used 
                       with -nets or -pins.
  [-release_memory]    Release Router memory. Not compatible with any other 
                       options.
  [-nets]              Operate on the given nets.
  [-physical_nets]     Operate on all physical nets.
  [-pins]              Operate on the given pins.
  [-directive]         Mode of behavior (directive) for this command. Please 
                       refer to Arguments section of this help for values for
                       this option.
                       Default: Default
  [-tns_cleanup]       Do optional TNS clean up.
  [-no_timing_driven]  Do not run in timing driven mode.
  [-preserve]          Preserve existing routing.
  [-delay]             Use with -nets or -pins option to route in delay 
                       driven mode.
  [-auto_delay]        Use with -nets or -pins option to route in constraint 
                       driven mode.
  -max_delay           Use with -pins option to specify the max_delay 
                       constraint on the pins.When specified -delay is 
                       implicit.
  -min_delay           Use with -pins option to specify the max_delay 
                       constraint on the pins.When specified -delay is 
                       implicit.
  [-timing_summary]    Enable post-router signoff timing summary.
  [-finalize]          finalize route_design in interactive mode.
  [-ultrathreads]      Enable Turbo mode routing.
  [-eco]               runs incremental router if there was eco modification 
                       on routed netlist.
  [-no_psir]           skips Physical Synthesis in Router phase.
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution

Categories: 
Tools

Description:

  Route the nets in the current design to complete logic connections on the
  target part.

  Predefined routing strategies can be quickly selected using the
  route_design -directive command, or specific route options can be
  configured to define your own routing strategy.

  Routing can be completed automatically with route_design, or can be
  completed iteratively using the various options of the route_design command
  to achieve route completion and timing closure. Iterative routing provides
  you some control over the routing process to route critical nets first and
  then route less critical nets, and to control the level of effort and the
  timing algorithms for these various route passes.

  Routing is one step of the complete design implementation process, which
  can be run automatically through the use of the launch_runs command when
  running the Vivado tools in Project Mode.

  In Non-Project Mode, the implementation process must be run manually with
  the individual commands: opt_design, place_design, phys_opt_design,
  power_opt_design, and route_design. Refer to the Vivado Design Suite User
  Guide: Design Flows Overview (UG892) for a complete description of Project
  Mode and Non-Project Mode.

  Tip: The route_design can be multi-threaded to speed the process. Refer to
  the set_param command for more information on setting the
  general.maxThreads parameter.

  Both placement and routing can be completed incrementally, based on prior
  results stored in a Design Checkpoint file (DCP), using the incremental
  implementation flow. Refer to the read_checkpoint command, or to Vivado
  Design Suite User Guide: Implementation (UG904) for more information on
  incremental place and route.

  This command requires a placed design, and it is recommended that you have
  optimized the design with opt_design prior to placement.

Arguments:

  -unroute <arg> - (Optional) Unroute nets in the design. If no arguments are
  specified, all nets in the design are unrouted. The route_design command
  will not route any nets when the -unroute option is specified.

   *  Combine with the -nets option to limit unrouting to a list of nets.

   *  Combine with the -pins option to unroute from a specified pin to the
      nearest branch of the net.

   *  Combine with the -physical_nets option to unroute all logic 1 and logic
      0 nets.

  -release_memory - (Optional) Free router memory resources for subsequent
  route passes. This option does not run route passes, but only releases
  memory held by the router to reduce router initialization. The router will
  need to reload design data for subsequent route passes.

  -nets <args> - (Optional) Route or unroute only the specified net objects.
  Net objects must be specified using the get_nets command.

  Tip: The router uses a quick route approach to find a routing solution for
  the specified nets, ignoring timing delays, when routing with -nets,
  -physical_nets, or -pins specified. Use -delay to find a route with the
  shortest delay.

  -physical_nets - (Optional) Route or unroute only logic zero and logic one
  nets.

  -pins <args> - (Optional) Route or unroute to the specified pins, which
  must be input pins. If a specified pin is driven by a multiple fanout net,
  only the route segment between the net and pin is affected.

  -directive <arg> - (Optional) Direct routing to achieve specific design
  objectives. Only one directive can be specified for a single route_design
  command, and values are case-sensitive. Supported values are:

   *  Explore - Causes the Vivado router to explore different critical path
      routes based on timing, after an initial route.

   *  AggressiveExplore - Directs the router to further expand its
      exploration of critical path routes while maintaining original timing
      budgets. The router runtime might be significantly higher compared to
      the Explore directive as the router uses more aggressive optimization
      thresholds to attempt to meet timing constraints.

   *  NoTimingRelaxation - Prevents the router from relaxing timing to
      complete routing. If the router has difficulty meeting timing, it will
      run longer to try to meet the original timing constraints.

   *  MoreGlobalIterations - Uses detailed timing analysis throughout all
      stages instead of just the final stages, and will run more global
      iterations even when timing improves only slightly.

   *  HigherDelayCost - Adjusts the router`s internal cost functions to
      emphasize delay over iterations, allowing a trade-off of runtime for
      better performance.

   *  AdvancedSkewModeling - Uses more accurate skew modeling throughout all
      routing stages which may improve design performance on higher-skew
      clock networks.

   *  AlternateCLBRouting - (UltraScale only) Chooses alternate routing
      algorithms that require extra runtime but may help resolve routing
      congestion.

   *  RuntimeOptimized - Run fewest iterations, trade higher design
      performance for faster runtime.

   *  Quick - Absolute fastest runtime, non-timing-driven, performs the
      minimum required routing for a legal design.

   *  Default - Run route_design with default settings.

  Important: The -directive option controls the overall routing strategy, and
  is not compatible with any specific route_design options, except -preserve
  and -tns_cleanup. It can also be used with -quiet and -verbose. Only the
  Explore, Quick, and Default directives are compatible with high reuse
  designs and the incremental implementation flow as defined by
  read_checkpoint -incremental. Refer to the Vivado Design Suite User Guide:
  Implementation (UG904) for more information on the use of the -directive
  option.

  -tns_cleanup - (Optional) By default, to reduce runtime, the router focuses
  on optimizing the Worst Negative Slack (WNS) path as opposed to Total
  Negative Slack (TNS) paths. This option invokes an optional phase at the
  end of routing where the router attempts to fix the TNS paths, those
  failing paths other than the WNS path. This option may reduce TNS at the
  cost of added runtime, but will not affect WNS. The -tns_cleanup option is
  recommended when using post-route phys_opt_design to ensure that
  optimization focuses on the WNS path and does not waste effort on TNS paths
  that can be fixed by the router. This option can be used in combination
  with -directive.

  -no_timing_driven - (Optional) Disables the default timing driven routing
  algorithm. This results in faster routing results, but ignores any timing
  constraints during the routing process.

  -preserve - (Optional) Existing completed routes will be preserved and not
  subject to the rip-up and reroute phase. This does not apply to routing
  that is fixed using the IS_ROUTE_FIXED or FIXED_ROUTE properties, which is
  not subject to being rerouted. Routing is preserved only for the current
  route_design command.

  Tip: Partially routed nets are subject to rerouting to complete the
  connection. If you want to preserve the routing of a partially routed net,
  you should apply the FIXED_ROUTE property to the portion of the route you
  want to preserve.

  -delay - (Optional) Can only be used in combination with the -nets or -pins
  options. By default nets are routed to achieve the fastest routing runtime,
  ignoring timing constraints, when using -nets and -pins options. The -delay
  option directs the router to try to achieve the shortest routed
  interconnect delay, but still ignores timing constraints.

  Important: You can specify multiple nets to route at the same time using
  the -delay option, but this can result in conflicts for routing resources.
  The Vivado router may create node overlap errors if the nets are in close
  proximity to each other because the -delay option will reuse routing
  resources to achieve the shortest routes for all specified nets. Therefore
  it is recommended to route nets and pins individually using the -delay
  option, beginning with the most critical.

  -auto_delay - (Optional) Can only be used in combination with the -nets or
  -pins options. It is recommended to use the -auto_delay option on a placed
  design, and limit the specified number of nets or pins to less than 100.
  The -auto_delay option directs the router to prioritize setup and hold
  critical paths using the defined timing constraints.

  -max_delay <arg> - (Optional) Can only be used with -pins. Directs the
  router to try to achieve an interconnect delay less than or equal to the
  specified delay given in picoseconds. When this options is specified, the
  -delay option is implied.

  Note: The -max_delay and -min_delay options specify the delay limits for
  the interconnect only, not the logic or intra-site delay. The router
  attempts to satisfy the delay restrictions on the interconnect.

  -min_delay <arg> - (Optional) Can only be used with -pins. Directs the
  router to try to achieve an interconnect delay greater than or equal to the
  specified delay given in picoseconds. When this option is specified, the
  -delay option is implied.

  -timing_summary - (Optional) By default, the router outputs a final timing
  summary to the log, based on Vivado router internal estimated timing which
  might differ slightly from the actual routed timing due to pessimism in the
  delay estimates. The -timing_summary option forces the router to launch the
  Vivado static timing analyzer to report the timing summary based on actual
  routed delays, but incurs additional run time for the static timing
  analysis. The timing summary consists of the Worst Negative Slack (WNS),
  Total Negative Slack (TNS), Worst Hold Slack (WHS), and Total Hold Slack
  (THS). The values are identical to that of report_timing_summary when run
  on the post-route design.

  Tip: The Vivado static timing analyzer is also launched by the -directive
  Explore option.

  -finalize - (Optional) When routing interactively you can specify
  route_design -finalize to complete any partially routed connections.

  -ultrathreads - (Optional) Reduces router runtime at the expense of
  repeatability. This option enables the router to run faster, but there will
  be some variation in routing results between otherwise identical runs.

  -eco - (Optional) Run router in incremental mode when there is an eco
  modification. When in incremental mode, as well as routing new nets, the
  router can modify existing nets to improve routability and the ability to
  meet timing. This option can be called by itself, or it can be used with
  the -no_timing_driven switch or the Quick directive. These options run the
  router with timing off for a faster result.

  -no_psir - (Optional) Disables Physical Synthesis In Router (PSIR)
  optimization during route. By default, Vivado router performs interconnect
  retiming and clock, critical pin, LUT restructure, placement, and routing
  optimizations to improve delay.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Route the entire design, and direct the router to try multiple algorithms
  for improving critical path delay:

    route_design -directive Explore

  The following example routes the set of timing critical nets,
  $criticalNets, to the shortest interconnect delay, marks the nets as fixed
  using the IS_ROUTE_FIXED property, and then routes the rest of the design
  using a low effort directive for fast results:

    route_design -delay -nets $criticalNets
    set_property IS_ROUTE_FIXED 1 $criticalNets
    route_design -directive RuntimeOptimized

  Route the specified nets using the fastest runtime:

    route_design -nets [get_nets ctrl0/ctr*]

  Route the specified nets to get the shortest interconnect delays:

    route_design -nets [get_nets ctrl0/ctr*] -delay

  Route to the specified pins:

    route_design -pins [get_pins ctrl0/reset_reg/D ctrl0/ram0/ADDRARDADDR]

  Route to a particular pin, try to achieve less than 500 ps delay:

    route_design -pins [get_pins ctrl0/reset_reg/D] -max_delay 500

  Route to a particular pin, try to achieve more than 200 ps delay:

    route_design -pins [get_pins ctrl0/ram0/ADDRARDADDR] -min_delay 200

See Also:

   *  get_nets
   *  get_pins
   *  launch_runs
   *  opt_design
   *  phys_opt_design
   *  place_design
   *  power_opt_design
   *  read_checkpoint
   *  set_property
   *  write_checkpoint


@@@COMMAND: run_noc_compiler@@@
run_noc_compiler

Description: 
Execute the NOC compiler.

Syntax: 
run_noc_compiler  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
NOC


@@@COMMAND: save_constraints@@@
save_constraints

Description: 
Save the current design's constraints

Syntax: 
save_constraints  [-force] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-force]    Force constraints save, overwriting the target and source XDC 
              if necessary
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project

Description:

  Saves any changes to the constraints files of the active constraints set.
  This command writes any changes to the constraints files to the project
  data on the hard drive; saving any work in progress and committing any
  changes.

Arguments:

  -force - (Optional) Save the active constraints files regardless of whether
  any changes have been made, overwriting the current target constraints
  file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example saves the constraints files for the active
  constraints set regardless of any changes to the files:

    save_constraints -force 
    

See Also:

   *  save_constraints_as


@@@COMMAND: save_constraints_as@@@
save_constraints_as

Description: 
Save current design's constraints as a new set of constraints files

Syntax: 
save_constraints_as  [-dir <arg>] [-target_constrs_file <arg>] [-quiet]
                     [-verbose] <name>

Usage: 
  Name                    Description
  -----------------------------------
  [-dir]                  Directory to save constraints to
  [-target_constrs_file]  Target constraints file for the new fileset
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <name>                  Name of the new constraints fileset

Categories: 
Project

Description:

  Copies the active constraints set to create a new constraints set, with
  local copies of any constraints files that are part of the constraints set.
  You can also specify a new constraints file to use as the target for the
  copied constraints set.

  Use this command to save changes to the constraints in a design without
  affecting the current constraints files. This allows you to do some
  "what-if" type development of design constraints.

  Note: The new constraint set created by the save_constraints_as command
  will not be active in the design, although it will be referenced by the
  design. To make the constraints set active you must set the constrset
  property to point to the new constraints set for specific runs. See the
  example below.

Arguments:

  -dir <arg> - (Optional) The directory into which constraints files are
  saved. If the directory is not specified, the new constraints set is
  located in the project sources directory. The constraints files from the
  active constraints set are copied into the specified directory.

  -target_constrs_file <arg> - (Optional) Specifies a new target constraints
  file for the new constraints fileset. If a path is not specified as part of
  the file name, the file will be created in the fileset directory.

  Note: You must specify the .xdc file extension, or the command will report
  a warning that the filetype is invalid, and cannot be set to the target
  constraint set. In this case, the existing target constraints file will be
  used as the target.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the constraints set to write.

Examples:

  The following example saves the active constraints set into a new
  constraints set called constrs_2, and copies any constraints files into the
  specified directory, as well as creating a new target constraints file for
  the constraints set:

    save_constraints_as -dir C:/Data/con1 \  
       -target_constrs_file rev1.xdc constrs_2 
    

  The following example saves the active constraints set as a new constraints
  set called newCon2, and copies any constraint files into the newCon2
  constraint directory under project sources. The constrset property for the
  specified synthesis and implementation runs are then set to point to the
  new constraints set:

    save_constraints_as newCon2  
    set_property CONSTRSET newCon2 [get_runs synth_1]  
    set_property CONSTRSET newCon2 [get_runs impl_1] 
    

  Note: The constraints set is not active in the design until it has been set
  to active for the current runs.

See Also:

   *  save_constraints


@@@COMMAND: save_project_as@@@
save_project_as

Description: 
Save the current project under a new name

Syntax: 
save_project_as  [-scan_for_includes] [-exclude_run_results]
                 [-include_local_ip_cache] [-force] [-quiet] [-verbose] <name>
                 [<dir>]

Returns: 
saved project object

Usage: 
  Name                       Description
  --------------------------------------
  [-scan_for_includes]       Scan for include files and add them to the new 
                             project
  [-exclude_run_results]     Exclude run results in the new project
  [-include_local_ip_cache]  Include IP cache results in the new project
  [-force]                   Overwrite existing project directory
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution
  <name>                     New name for the project to save
  [<dir>]                    Directory where the project file is saved
                             Default: .

Categories: 
Project

Description:

  Saves a currently open project file under a new name in the specified
  directory, or in the current working directory if no other directory is
  specified.

  This command save a Vivado Design Suite project file (.xpr), or a project
  file for the Vivado Lab Edition (.lpr), in the specified directory.

  The command returns the name of the saved project, or returns an error if
  it fails.

Arguments:

  -scan_for_includes - (Optional) Scans all source files and adds any
  referenced Verilog 'include files into the project structure.

  -exclude_run_results - (Optional) Exclude run results in the new project.
  This strips the project of its current run results to make a copy of the
  project sources without the additional data.

  -include_local_ip_cache - (Optional) Include IP cache results in the new
  project. This allows you to retain the out-of-context synthesis cache with
  the new project.

  -force - (Optional) Overwrite the existing project. If the project name is
  already define in the specified directory then you must also specify the
  -force option for the tool to overwrite the existing project.

  Note: If the existing project is currently open, the new project will
  overwrite the existing project on the disk, but both projects will be
  opened in the tool. In this case you should probably run the close_project
  command prior to running create_project.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) The name of the new project. This argument must appear
  before the specified directory. Since these commands do not have
  parameters, the tool interprets the first argument as <name> and uses the
  second argument as <dir>. The project file is saved as <name>.xpr in the
  Vivado Design Suite, or <name>.lpr in the Vivado Lab Edition, and is
  written into the specified directory <dir>.

  <dir> - (Optional) The directory name in which to write the new project
  file. If the specified directory does not exist a new directory will be
  created. If the directory is specified with the complete path, the tool
  uses the specified path name. However, if <dir> is specified without a
  path, the tool looks for or creates the directory in the current working
  directory, or the directory from which the tool was launched.

  Note: When creating a project in GUI-mode, the tool appends the filename
  <name> to the directory name <dir> and creates a project directory with the
  name <dir> /<name> and places the new project file and project data folder
  into that project directory.

Examples:

  The following example saves the active project as a new project called
  myProject in a directory called myProjectDir:

    save_project_as myProject myProjectDir 
    

  Note: Because <dir> is specified as the folder name only, the tool will
  create the project in the current working directory, or the directory from
  which the tool was launched.

  The following example saves the current project to a new project called
  myProject in a directory called C:/Designs/myProjectDir. If you use the
  -force argument, the tool will overwrite an existing project if one is
  found in the specified location.

    save_project_as myProject C:/Designs/myProjectDir -force  
    

See Also:

   *  create_project
   *  current_project
   *  open_project


@@@COMMAND: save_waivers@@@
save_waivers

Description: 
Save one or more DRC/METHODOLOGY/CDC message waivers data sets to binary file(s)

Syntax: 
save_waivers  [-type <arg>] [-file <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-type]     Type of waiver - ALL, DRC, METHODOLOGY, CDC
  [-file]     Name of file to save waivers (or as TYPE.<filename>, if more 
              than one Type being saved)
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Waiver, Object


@@@COMMAND: scan@@@
scan(n)               Tcl Built-In Commands               scan(n)



_________________________________________________________________

NAME
       scan  -  Parse  string  using conversion specifiers in the
       style of sscanf

SYNOPSIS
       scan string format ?varName varName ...?
_________________________________________________________________

INTRODUCTION
       This command parses substrings from an input string  in  a
       fashion similar to the ANSI C sscanf procedure and returns
       a count of the number of conversions performed, or  -1  if
       the  end of the input string is reached before any conver-
       sions have been performed.  String gives the input  to  be
       parsed  and format indicates how to parse it, using % con-
       version specifiers as in sscanf.  Each varName  gives  the
       name  of  a  variable;  when  a  substring is scanned from
       string that matches a conversion specifier, the  substring
       is  assigned to the corresponding variable.  If no varName
       variables are specified, then scan works in an inline man-
       ner,  returning the data that would otherwise be stored in
       the variables as a list.  In the  inline  case,  an  empty
       string  is  returned  when  the end of the input string is
       reached before any conversions have been performed.

DETAILS ON SCANNING
       Scan operates by scanning string and format together.   If
       the  next  character  in  format is a blank or tab then it
       matches any number of white  space  characters  in  string
       (including  zero).   Otherwise, if it is not a % character
       then it must match the next character of string.  When a %
       is encountered in format, it indicates the start of a con-
       version specifier.  A conversion specifier contains up  to
       four fields after the %: a XPG3 position specifier (or a *
       to indicate the converted value is to be discarded instead
       of  assigned to any variable); a number indicating a maxi-
       mum substring width; a size  modifier;  and  a  conversion
       character.   All  of  these fields are optional except for
       the conversion character.  The  fields  that  are  present
       must appear in the order given above.

       When scan finds a conversion specifier in format, it first
       skips any white-space characters  in  string  (unless  the
       conversion  character  is  [  or c).  Then it converts the
       next input characters according to the  conversion  speci-
       fier  and  stores  the result in the variable given by the
       next argument to scan.

       If the % is followed by a decimal number and a  $,  as  in
       "%2$d",  then  the  variable  to use is not taken from the
       next sequential argument.  Instead, it is taken  from  the
       argument  indicated  by the number, where 1 corresponds to
       the first varName.  If there are any positional specifiers
       in  format  then all of the specifiers must be positional.
       Every varName on the  argument  list  must  correspond  to
       exactly one conversion specifier or an error is generated,
       or in the inline case, any position can  be  specified  at
       most  once  and the empty positions will be filled in with
       empty strings.

       The size modifier field is used only when scanning a  sub- |
       string  into  one of Tcl's integer values.  The size modi- |
       fier field dictates the integer  range  acceptable  to  be |
       stored  in a variable, or, for the inline case, in a posi- |
       tion in the result list.  The syntactically  valid  values |
       for  the  size  modifier  are h, L, l, and ll.  The h size |
       modifier value is equivalent to the absence of a size mod- |
       ifier  in  the the conversion specifier.  Either one indi- |
       cates the integer range to be stored  is  limited  to  the |
       same range produced by the int() function of the expr com- |
       mand.  The L size modifier is equivalent  to  the  l  size |
       modifier.  Either  one  indicates  the integer range to be |
       stored is limited to the same range produced by the wide() |
       function  of the expr command.  The ll size modifier indi- |
       cates that the integer range to be stored is unlimited.

       The following conversion characters are supported:

       d         The input substring must be a  decimal  integer.
                 It is read in and the integer value is stored in
                 the variable, truncated as required by the  size
                 modifier value.

       o         The input substring must be an octal integer. It
                 is read in and the integer value  is  stored  in
                 the  variable, truncated as required by the size
                 modifier value.

       x         The input substring must be a hexadecimal  inte-
                 ger.   It  is  read  in and the integer value is
                 stored in the variable, truncated as required by
                 the size modifier value.

       u         The  input  substring must be a decimal integer.
                 The integer value is truncated  as  required  by
                 the  size  modifier value, and the corresponding
                 unsigned value for that truncated range is  com-
                 puted  and  stored  in the variable as a decimal
                 string.  The conversion makes no  sense  without
                 reference  to  a  truncation  range, so the size
                 modifier ll is not permitted in combination with
                 conversion character u.

       i         The  input  substring  must  be an integer.  The
                 base (i.e. decimal, binary, octal, or  hexadeci-
                 mal)  is  determined  in  the  same  fashion  as
                 described in expr.  The integer value is  stored
                 in  the  variable,  truncated as required by the
                 size modifier value.

       c         A single character is read in  and  its  Unicode
                 value  is  stored  in the variable as an integer
                 value.  Initial white space is  not  skipped  in
                 this  case,  so  the  input  substring  may be a
                 white-space character.

       s         The input substring consists of all the  charac-
                 ters  up  to the next white-space character; the
                 characters are copied to the variable.

       e or f or g
                 The input substring  must  be  a  floating-point
                 number  consisting of an optional sign, a string
                 of decimal digits possibly containing a  decimal
                 point, and an optional exponent consisting of an
                 e or E followed by an optional sign and a string
                 of  decimal digits.  It is read in and stored in
                 the variable as a floating-point value.

       [chars]   The input substring  consists  of  one  or  more
                 characters  in  chars.   The  matching string is
                 stored in the variable.  If the first  character
                 between  the  brackets is a ] then it is treated
                 as part of chars rather than the closing bracket
                 for  the  set.   If chars contains a sequence of
                 the form a-b then any character between a and  b
                 (inclusive)  will  match.   If the first or last
                 character between the brackets is a -,  then  it
                 is treated as part of chars rather than indicat-
                 ing a range.

       [^chars]  The input substring  consists  of  one  or  more
                 characters not in chars.  The matching string is
                 stored in the variable.  If the character  imme-
                 diately  following  the  ^  is  a  ]  then it is
                 treated as part of the set rather than the clos-
                 ing  bracket  for  the set.  If chars contains a
                 sequence of the  form  a-b  then  any  character
                 between  a  and  b  (inclusive) will be excluded
                 from the set.  If the first  or  last  character
                 between  the brackets is a -, then it is treated
                 as part of chars rather than indicating a  range
                 value.

       n         No  input  is  consumed  from  the input string.
                 Instead, the total number of characters  scanned
                 from  the  input  string so far is stored in the
                 variable.

       The number of characters read from the input for a conver-
       sion  is the largest number that makes sense for that par-
       ticular conversion (e.g.  as many decimal digits as possi-
       ble  for  %d, as many octal digits as possible for %o, and
       so on).  The input substring for a given conversion termi-
       nates  either  when a white-space character is encountered
       or when the maximum  substring  width  has  been  reached,
       whichever  comes  first.  If a * is present in the conver-
       sion specifier then no variable is assigned and  the  next
       scan argument is not consumed.

DIFFERENCES FROM ANSI SSCANF
       The behavior of the scan command is the same as the behav-
       ior of the ANSI C sscanf procedure except for the  follow-
       ing differences:

       [1]    %p conversion specifier is not supported.

       [2]    For %c conversions a single character value is con-
              verted to a decimal string, which is then  assigned
              to  the  corresponding  varName; no substring width
              may be specified for this conversion.

       [3]    The h modifier is always ignored and the  l  and  L
              modifiers  are  ignored when converting real values
              (i.e. type double is used for the  internal  repre-
              sentation).  The ll modifier has no sscanf counter-
              part.

       [4]    If the end of the input string  is  reached  before
              any  conversions  have  been performed and no vari-
              ables are given, an empty string is returned.

EXAMPLES
       Convert a UNICODE character to its numeric value:
              set char "x"
              set value [scan $char %c]

       Parse a simple color specification  of  the  form  #RRGGBB
       using hexadecimal conversions with substring sizes:
              set string "#08D03F"
              scan $string "#%2x%2x%2x" r g b

       Parse  a  HH:MM time string, noting that this avoids prob-
       lems with octal numbers by forcing interpretation as deci-
       mals  (if  we did not care, we would use the %i conversion
       instead):
              set string "08:08"   ;# *Not* octal!
              if {[scan $string "%d:%d" hours minutes] != 2} {
                 error "not a valid time string"
              }
              # We have to understand numeric ranges ourselves...
              if {$minutes < 0 || $minutes > 59} {
                 error "invalid number of minutes"
              }

       Break a string up into sequences of non-whitespace charac-
       ters  (note  the  use  of the %n conversion so that we get
       skipping over leading whitespace correct):
              set string " a string {with braced words} + leading space "
              set words {}
              while {[scan $string %s%n word length] == 2} {
                 lappend words $word
                 set string [string range $string $length end]
              }

       Parse a simple coordinate string, checking that it is com-
       plete by looking for the terminating character explicitly:
              set string "(5.2,-4e-2)"
              # Note that the spaces before the literal parts of
              # the scan pattern are significant, and that ")" is
              # the Unicode character \u0029
              if {
                 [scan $string " (%f ,%f %c" x y last] != 3
                 || $last != 0x0029
              } then {
                 error "invalid coordinate string"
              }
              puts "X=$x, Y=$y"

       An interactive session  demonstrating  the  truncation  of |
       integer values determined by size modifiers:               |
              % set tcl_platform(wordSize)                        |
              4                                                   |
              % scan 20000000000000000000 %d                      |
              2147483647                                          |
              % scan 20000000000000000000 %ld                     |
              9223372036854775807                                 |
              % scan 20000000000000000000 %lld                    |
              20000000000000000000                                |

SEE ALSO
       format(n), sscanf(3)

KEYWORDS
       conversion specifier, parse, scan



Tcl                            8.4                        scan(n)


@@@COMMAND: seek@@@
seek(n)               Tcl Built-In Commands               seek(n)



_________________________________________________________________

NAME
       seek - Change the access position for an open channel

SYNOPSIS
       seek channelId offset ?origin?
_________________________________________________________________


DESCRIPTION
       Changes the current access position for channelId.

       ChannelId  must  be an identifier for an open channel such
       as a Tcl standard channel (stdin, stdout, or stderr),  the
       return  value from an invocation of open or socket, or the
       result of a channel creation command  provided  by  a  Tcl
       extension.

       The  offset  and  origin arguments specify the position at
       which the next read or write  will  occur  for  channelId.
       Offset must be an integer (which may be negative) and ori-
       gin must be one of the following:

       start     The new access position  will  be  offset  bytes
                 from the start of the underlying file or device.

       current   The new access position  will  be  offset  bytes
                 from  the  current  access  position; a negative
                 offset moves the access  position  backwards  in
                 the underlying file or device.

       end       The  new  access  position  will be offset bytes
                 from the end of the file or device.  A  negative
                 offset places the access position before the end
                 of file, and a positive offset places the access
                 position after the end of file.

       The origin argument defaults to start.

       The  command  flushes  all buffered output for the channel
       before the command returns, even if the channel is in non-
       blocking  mode.   It also discards any buffered and unread
       input.  This command returns an empty  string.   An  error
       occurs if this command is applied to channels whose under-
       lying file or device does not support seeking.

       Note that offset values are byte  offsets,  not  character
       offsets.   Both  seek  and tell operate in terms of bytes,
       not characters, unlike read.

EXAMPLES
       Read a file twice:
              set f [open file.txt]
              set data1 [read $f]
              seek $f 0
              set data2 [read $f]
              close $f
              # $data1 == $data2 if the file wasn't updated

       Read the last 10 bytes from a file:
              set f [open file.data]
              # This is guaranteed to work with binary data but
              # may fail with other encodings...
              fconfigure $f -translation binary
              seek $f -10 end
              set data [read $f 10]
              close $f


SEE ALSO
       file(n), open(n), close(n),  gets(n),  tell(n),  Tcl_Stan-
       dardChannels(3)


KEYWORDS
       access position, file, seek



Tcl                            8.1                        seek(n)


@@@COMMAND: select_objects@@@
select_objects

Description: 
Select objects in GUI

Syntax: 
select_objects  [-add] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-add]      Add to existing selection list
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   Objects to select

Categories: 
GUIControl

Description:

  Selects the specified object in the appropriate open views in the GUI mode.
  This command is for display purposes only. You must use the
  get_selected_objects command to return the selected objects for use in
  other commands.

  The select_objects command may select secondary objects in addition to the
  primary object specified. The selection of secondary objects is controlled
  through the use of Selection Rules defined in the Tools > Settings command.
  Refer to the Vivado Design Suite User Guide: Using the IDE (UG893) for more
  information on Setting Selection Rules.

  Selected objects can be unselected with the unselect_objects command.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) Specifies one or more objects to be selected.

Examples:

  The following example selects the specified site on the device:

    select_objects [get_sites SLICE_X56Y214] 
    

See Also:

   *  get_selected_objects
   *  highlight_objects
   *  mark_objects
   *  unselect_objects


@@@COMMAND: send_gid_msg@@@
send_gid_msg

Description: 
Send a fully formatted message with unique GID. Id, ssname, severity and msg options are mandatory.
To register a new value for ssname, please send an email to msgmgr@xilinx.com with the following information:
1. Requested ssname. Should be <= 12 characters in length, and contain only lower/upper case letters, digits,
the underscore, and (if desired) end with the :: sequence. If :: is used, everything after the first :: sequence
in the value of ssname used with this command will be treated as a wildcard.
So for example, if you have registered 'board::' with msgmgr, and then use 'board::utils' as the ssname with this command,
it will be accepted as valid.
But if you register 'board', the same value of ssname is invalid.
2. The name of the engineering owner for this new ssname.
3. The name of the manager of the engineering owner.
4. A one-line description of the tcl files that will use this ssname.
Note that the engineering owner and their manager are responsible for making sure the value of -id used with each instance of
this command is unique for the ssname that they have registered.

Syntax: 
send_gid_msg  [-continue] -id <arg> -ssname <arg> -severity <arg>
              [-description <arg>] [-resolution <arg>] [-quiet] [-verbose]
              <msg>

Usage: 
  Name            Description
  ---------------------------
  [-continue]     Continue the execution of the current tcl script (if any) 
                  in cases where severity is ERROR. Default behavior is to 
                  terminate the currently executing script on ERROR.
  -id             An integer identifier >= 1, caller must insure that it is 
                  unique for the given value of ssname. Required.
  -ssname         A string identifier indicating the general source of the 
                  message. For example, 'board_infra'. Any identifier used 
                  must be pre-approved by msgmgr@xilinx.com. Messages using 
                  unapproved identifiers will not be output. Required.
  -severity       Message severity to send, e.g. "INFO","WARNING", "ERROR" or
                  "CRITICAL WARNING"
  [-description]  Optional message description. It is recommended that the 
                  description start with source file:line number where the 
                  message originated. Example:
                  'apply_board_connection.tcl:123 This message indicates that
                  given interface is not correctly defined.'
                   For information on how to retrieve the tcl source file 
                  line number see:
                  https://stackoverflow.com/questions/27834094/getting-the-li
                  ne-number-of-executing-code-in-tcl
  [-resolution]   Optional message resolution. Should describe to the 
                  customer possible steps for resolving the problem.
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <msg>           Complete formated message text. Required.

Categories: 
Report


@@@COMMAND: send_msg_id@@@
send_msg_id

Description: 
Send message by id

Syntax: 
send_msg_id  [-continue] [-quiet] [-verbose] [<id>] <severity> <msg>

Usage: 
  Name         Description
  ------------------------
  [-continue]  Continue the execution of the current tcl script (if any) in 
               cases where severity is ERROR. Default behavior is to 
               terminate the currently executing script on ERROR.
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<id>]       Unique message prefix and id to be sent e.g. 'Common 17-1'.
  <severity>   Message severity to send, e.g. "ALL", "ERROR" or "CRITICAL 
               WARNING"
  <msg>        Complete formated message text in double quotes

Categories: 
Report


Description:

  Send a message to the Tcl Console and the application log file.

  Use this command to send a specific message from a Tcl script for instance,
  under certain conditions.

  The command returns the specified message.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <id> - (Optional) Defines the message ID, consisting of a prefix name, and
  a numeric identifier of the form XX-YYY, where XX is a number assigned to
  the subsystem, and YYY is a unique identifier. The ID requires a dash
  between the two values, but cannot contain any other non-alphanumeric
  characters. Messages are then formatted for display as: [PREFIX XX-YYY]

  <severity> - (Optional) Specifies the severity of the message to send.
  There are five message severities:

   *  ERROR - An ERROR condition implies an issue has been encountered which
      will render design results unusable and cannot be resolved without user
      intervention.

   *  {CRITICAL WARNING} - A CRITICAL WARNING message indicates that certain
      input/constraints will either not be applied or are outside the best
      practices for a FPGA family. User action is strongly recommended.

      Note: Since this is a two word value, it must be enclosed in "" or {}.

   *  WARNING - A WARNING message indicates that design results may be
      sub-optimal because constraints or specifications may not be applied as
      intended. User action may be taken or may be reserved.

   *  INFO - An INFO message is the same as a STATUS message, but includes a
      severity and message ID tag. An INFO message includes a message ID to
      allow further investigation through answer records if needed.

   *  STATUS - A STATUS message communicates general status of the process
      and feedback to the user regarding design processing. A STATUS message
      does not include a message ID.

  <msg> - Defines the text of the message to send. The message must be
  enclosed in quotes ("") or braces ({}).

Examples:

  The following are some examples messages:

    send_msg_id {USER 23-100} "INFO" "This is a test message."   
    send_msg_id {USER 22-22} WARNING "This is it!"   
    send_msg_id "MyApp 10-101" {CRITICAL WARNING} {Too much information.}


@@@COMMAND: set@@@
set(n)                Tcl Built-In Commands                set(n)



_________________________________________________________________

NAME
       set - Read and write variables

SYNOPSIS
       set varName ?value?
_________________________________________________________________

DESCRIPTION
       Returns the value of variable varName.  If value is speci-
       fied, then set the value of varName to value,  creating  a
       new variable if one does not already exist, and return its
       value.  If varName contains an open parenthesis  and  ends
       with  a close parenthesis, then it refers to an array ele-
       ment:  the characters before the  first  open  parenthesis
       are  the name of the array, and the characters between the
       parentheses are the index  within  the  array.   Otherwise
       varName refers to a scalar variable.

       If  varName  includes  namespace  qualifiers (in the array
       name if it refers to an array element), or if  varName  is
       unqualified  (does not include the names of any containing
       namespaces) but no procedure is active, varName refers  to
       a  namespace  variable  resolved  according  to  the rules
       described under NAME RESOLUTION in  the  namespace  manual
       page.

       If  a procedure is active and varName is unqualified, then
       varName refers to a parameter or  local  variable  of  the
       procedure,  unless varName was declared to resolve differ-
       ently through one of the global, variable  or  upvar  com-
       mands.

EXAMPLES
       Store a random number in the variable r:
              set r [expr {rand()}]

       Store a short message in an array element:
              set anAry(msg) "Hello, World!"

       Store  a  short message in an array element specified by a
       variable:
              set elemName "msg"
              set anAry($elemName) "Hello, World!"

       Copy a value into the variable out from a  variable  whose
       name is stored in the vbl (note that it is often easier to
       use arrays in practice instead of doing double-dereferenc-
       ing):
              set in0 "small random"
              set in1 "large random"
              set vbl in[expr {rand() >= 0.5}]
              set out [set $vbl]

SEE ALSO
       expr(n),   global(n),   namespace(n),  proc(n),  trace(n),
       unset(n), upvar(n), variable(n)

KEYWORDS
       read, write, variable



Tcl                                                        set(n)


@@@COMMAND: set_annotated_delay@@@
set_annotated_delay

Description: 
set annotated delay

Syntax: 
set_annotated_delay  [-from <args>] [-to <args>] [-cell] [-net] [-min] [-max]
                     [-of_objects <args>] [-quiet] [-verbose] <delay>

Usage: 
  Name           Description
  --------------------------
  [-from]        From pins or top level ports
  [-to]          To pins or top level ports
  [-cell]        Specifies that the annotated delay is for a cell
  [-net]         Specifies that the annotated delay is for a net
  [-min]         Specifies that the annotated delay is the minimum delay
  [-max]         Specifies that the annotated delay is the maximum delay
  [-of_objects]  List of timing arcs
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <delay>        Annotated delay value

Categories: 
Timing


@@@COMMAND: set_bus_skew@@@
set_bus_skew

Description: 
Define bus skew

Syntax: 
set_bus_skew  [-from <args>] [-rise_from <args>] [-fall_from <args>]
              [-to <args>] [-rise_to <args>] [-fall_to <args>]
              [-through <args>] [-rise_through <args>] [-fall_through <args>]
              [-quiet] [-verbose] <value>

Usage: 
  Name             Description
  ----------------------------
  [-from]          List of path startpoints
  [-rise_from]     Apply to paths rising from the list of startpoints
  [-fall_from]     Apply to paths falling from the list of startpoints
  [-to]            List of path endpoints
  [-rise_to]       Apply to paths with rise transition at the list of 
                   endpoints
  [-fall_to]       Apply to paths with fall transition at the list of 
                   endpoints
  [-through]       List of through pins, cells or nets
  [-rise_through]  Apply to paths rising through pins, cells or nets
  [-fall_through]  Apply to paths falling through pins, cells or nets
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <value>          Constraint value

Categories: 
XDC

Description:

  Set the bus skew requirement on bus signals that cross clock domains. The
  bus skew constraint defines the maximum skew spread between the fastest and
  slowest signals of the bus, and does not consider the overall datapath
  delay. The Vivado router will try to satisfy the set_bus_skew constraints.
  Example uses of the bus skew constraint include clock domain crossing for
  gray-coded pointers, MUX-controlled and MUX-data holding CDC buses.

  Note: Bus skew constraints are not overridden by clock groups, max delay,
  or false path, because set_bus_skew is a constraint between the signals of
  a bus, rather than on a particular path.

  The set_bus_skew constraint can be combined with the set_max_delay
  constraint for good results. The set_bus_skew constraint does not care
  about the absolute datapath delay, but only about the relative arrival
  times of data at the destination, taking into account source and
  destination clock skew. You can help set_bus_skew by also using
  set_max_delay -datapath_only <SRC_CLK>. This constraint helps the Vivado
  placer to ensure that the source and destination registers are not placed
  too far apart, so that the router can more easily satisfy the set_bus_skew
  constraint. Refer to the Vivado Design Suite User Guide: Using Constraints
  (UG903) for more information.

  In order to not over constrain the skew requirement, the bus skew value
  should be approximately the smallest period of the two clock domains. This
  will prevent multiple data captures by the destination clock domain.

  The set_bus_skew command requires a timing path defined by both -from and
  -to, or some form such as -fall_from or -rise_to. You can optionally
  specify -through values to further refine the path. You should specify
  explicit signal paths with -from/-to instead of specifying entire clock
  domains:

   *  set_bus_skew -from [get_pins <hierarchy/C>] -to [get_pins
      <hierarchy/D>] <value>

  Note: Do not set bus skew constraints between timed synchronous paths.

  You can use the report_bus_skew command to report the calculated skew on
  paths in the current design.

  The set_bus_skew command returns nothing if successful, or an error if it
  fails.

Arguments:

  -from <args> - (Optional) The starting points of the timing paths to set
  bus skew on. Pins or cells can be specified as timing path startpoints.

  Note: Although the various -from, -to, and -through arguments are listed as
  optional, a path must be defined using a form of the -from and -to
  arguments.

  -rise_from <args> - (Optional) Set bus skew on the timing paths with rising
  edge transitions at the specified startpoints.

  -fall_from <args> - (Optional) Set bus skew on the timing paths with
  falling edge transitions at the specified startpoints.

  -to <args> - (Optional) The endpoints, or destination objects of timing
  paths to define the bus skew on. Pins or cells can be specified as
  endpoints.

  -rise_to <args> - (Optional) Set bus skew on the timing paths with rising
  edge transitions at the specified endpoints.

  -fall_to <args> - (Optional) Set bus skew on the timing paths with falling
  edge transitions at the specified endpoints.

  -through <args> - (Optional) Set bus skew only on paths through the
  specified pins, cell instance, or nets. You can specify individual -through
  (or -rise_through and -fall_through) points in sequence to define a
  specific path through the design. The order of the through points is
  important to define a path. You can also specify through points with
  multiple objects, in which case the timing path can pass through any of the
  specified through objects.

  -rise_through <args> - (Optional) Set bus skew on the timing paths with
  rising edge transitions at the specified through points.

  -fall_through <args> - (Optional) Set bus skew on the timing paths with
  falling edge transitions at the specified through points.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <value> - Specifies the value of the acceptable bus skew in nanoseconds.

Examples:

  The following example defines the bus skew between the gray-coded Read and
  Write pointers:

    set_bus_skew -from [get_pins gray_coded_read_ptr[*]/C] \  
       -to [get_pins gray_coded_write_ptr[*]/D] 2.5  
    

See Also:

   *  report_bus_skew
   *  report_cdc
   *  report_datasheet
   *  set_data_check
   *  set_max_delay


@@@COMMAND: set_case_analysis@@@
set_case_analysis

Description: 
Specify that an input is 1, 0, rising or falling

Syntax: 
set_case_analysis  [-quiet] [-verbose] <value> <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <value>     Logic value on the pin: Values: 0, 1, rising, falling, zero, 
              one, rise, fall
  <objects>   List of ports or pins

Categories: 
SDC, XDC

Description:

  Specifies that a pin or port is in a steady state of 1, 0, rising or falling.

  This command is usually used to force values onto the ports to help reduce
  the analysis space, runtime and memory consumption. It is important to let
  the Vivado timing engine know about signals that have a constant value.
  This is also critical to ensure that non-functional and irrelevant paths
  are not reported.

  Setting a case value on a pin results in disabling timing analysis through
  that pin. This means that timing paths through that pin are not reported.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <value> - (Required) The value to use on the port or pin for timing
  analysis. The valid values are 0 or zero, 1 or one, rise or rising, fall or
  falling. When the values ris(e)(ing) or fall(ing) are specified, the given
  pins or ports are only considered for timing analysis with the specified
  transition. The other transition is disabled. The default setting is 1.

  <objects> - (Required) One or more ports or pins on which to apply the
  <value>.

Examples:

  In the example below, two clocks are created on the input pins of the
  BUFGMUX, clock_sel, but only clk_B is propagated through the output pin
  after setting the constant value 1 on the selection pin S:

    create_clock -name clk_A -period 10.0 [get_pins clock_sel/I0]  
    create_clock -name clk_B -period 15.0 [get_pins clock_sel/I1]  
    set_case_analysis 1 [get_pins clock_sel/S] 
    

See Also:

   *  create_clock
   *  report_timing


@@@COMMAND: set_clock_groups@@@
set_clock_groups

Description: 
Set exclusive or asynchronous clock groups

Syntax: 
set_clock_groups  [-name <arg>] [-logically_exclusive] [-physically_exclusive]
                  [-asynchronous] [-group <args>] [-quiet] [-verbose]

Usage: 
  Name                     Description
  ------------------------------------
  [-name]                  Name for clock grouping
  [-logically_exclusive]   Specify logically exclusive clock groups
  [-physically_exclusive]  Specify physically exclusive clock groups
  [-asynchronous]          Specify asynchronous clock groups
  [-group]                 Clocks List
  [-quiet]                 Ignore command errors
  [-verbose]               Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Note: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the Vivado IDE offer timing diagrams and additional
  details around defining specific timing constraints. You can refer to these
  sources for additional information.

  Define clocks, or groups of clocks, that are exclusive with or asynchronous
  to other clocks in the design. Exclusive clocks are not active at the same
  time, and paths between them can be ignored during timing analysis.
  Asynchronous clocks are clocks with no known phase relationship, which
  typically happens when they do not share the same primary clock or do not
  have a common period.

  Using this command is similar to defining false path constraints for data
  paths moving between exclusive or asynchronous clock domains. See the
  Vivado Design Suite User Guide: Using Constraints (UG903) for more
  information.

  If only one group is specified, the clocks in that group are asynchronous
  or exclusive to all other clocks in the design, but not to each other. If a
  new clock is created after the set_clock_groups command, it is asynchronous
  to that group as well.

  This command can also be used for multiple clocks that are derived from a
  single BUFGMUX as both of the clocks will not be active at the same time.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -name <group_name> - (Optional) Name of the clock group to be created. A
  name will be automatically assigned if one is not specified.

  -logically_exclusive - (Optional) The specified clocks are logically
  exclusive.

  Note: -logically_exclusive, -physically_exclusive and -asynchronous are
  mutually exclusive arguments.

  -physically_exclusive - (Optional) The specified clocks are physically
  exclusive, and cannot exist in the design at the same time.

  -asynchronous - (Optional) The specified clocks are asynchronous to one
  another.

  -group <args> - (Optional) The list of clocks to be included in the clock
  group. Each group of clocks is exclusive with or asynchronous with the
  clocks specified in all other groups.

  Note: If only one group of clocks is specified, that group is exclusive
  with or asynchronous to all other clocks in the design. Clocks can be
  specified by name, or as clock objects returned by the get_clocks command.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Group all the elements driven by src_clk and sync_clk into separate clock
  groups. The clock groups are asynchronous to each other:

    set_clock_groups -group src_clk -group sync_clk -asynchronous 
    

  The following example includes the generated clocks of the specified
  clocks, and adds those to the clock group:

    set_clock_groups -group [get_clocks -include_generated_clocks src_clk] \  
    -group [get_clocks -include_generated_clocks sync_clk]  -asynchronous 
    

  Note: In the preceding example, src_clk and sync_clk, and all their
  generated clocks, are asynchronous. Otherwise the generated clocks would be
  timed against each other and the other master clock.

  In this example, the specified clocks are grouped together, and are
  asynchronous to all other clocks in the design:

    set_clock_groups -async -group [get_clocks {J_CLK U_CLK}] 
    

See Also:

   *  get_clocks
   *  set_false_path


@@@COMMAND: set_clock_latency@@@
set_clock_latency

Description: 
Capture actual or predicted clock latency

Syntax: 
set_clock_latency  [-clock <args>] [-rise] [-fall] [-min] [-max] [-source]
                   [-late] [-early] [-quiet] [-verbose] <latency> <objects>

Usage: 
  Name        Description
  -----------------------
  [-clock]    List of relative clocks
  [-rise]     Specify clock rise latency
  [-fall]     Specify clock fall latency
  [-min]      Specify clock rise and fall min condition latency
  [-max]      Specify clock rise and fall max condition latency
  [-source]   Specify clock rise and fall source latency
  [-late]     Specify clock rise and fall late source latency
  [-early]    Specify clock rise and fall early source latency
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <latency>   Latency value
  <objects>   List of clocks, ports or pins

Categories: 
SDC, XDC

Description:

  This command defines a clock`s source or network latency for specified
  clocks, ports, or pins.

  Note: This command operates silently and does not return direct feedback of
  its operation.

  Source latency is the time in nanoseconds that a clock signal takes to
  propagate from its waveform origin to the clock definition point in the
  design. For example, this would be the time delay for the clock to
  propagate from its source (oscillator) on the system board to the FPGA
  input port.

  Network latency is the time a clock signal takes to propagate from its
  definition point in the design to a register clock pin on the timing path.
  The total clock latency at a register clock pin is the sum of a clock`s
  source latency and network latency.

Arguments:

  -clock <args> - (Optional) Specifies a list of clocks associated with the
  <latency> assigned to the specified <objects>. If the -clock argument is
  not used, the clock <latency> will be applied to all clocks passing through
  the specified pins and ports.

  -rise - (Optional) Defines the latency for the rising clock edge.

  -fall - (Optional) Defines the latency for the falling clock edge.

  -min - (Optional) Defines the minimum latency for the specified clocks for
  multi-corner analysis.

  -max - (Optional) Defines the maximum latency for the specified clocks for
  multi-corner analysis.

  Note: The -min and -max options are mutually exclusive.

  -source - (Optional) Defines the specified <latency> as a source latency.
  Clock source latencies can only be specified for clock objects and clock
  source pins.

  Note: Without the -source argument the <latency> is considered as network
  latency.

  -late - (Optional) The time delay specified by <latency> is how late the
  clock edge arrives.

  -early - (Optional) The time delay specified by <latency> is how early the
  clock edge arrives.

  Note: The -early and -late options are mutually exclusive, and can only be
  specified when -source is also specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <latency> - (Required) The amount of clock latency, specified as
  nanoseconds, to apply.

  <objects> - (Required) The clock, port, or pin objects on which to apply
  the latency. Specifying pin or port objects assigns the latency to all
  register clock pins in the transitive fanout of the pins or ports. If
  -clock is used, the latency is applied to all register clock pins of the
  specified clocks.

  Note: If <objects> specifies a clock, the -clock argument is unnecessary,
  and is ignored.

Examples:

  This example will set an early latency on the rising edge of CLK_A.

    set_clock_latency -source -rise -early 0.4 [get_ports CLK_A]

See Also:

   *  report_timing


@@@COMMAND: set_clock_sense@@@
set_clock_sense

Description: 
Set clock sense on ports or pins

Syntax: 
set_clock_sense  [-positive] [-negative] [-stop_propagation] [-clocks <args>]
                 [-quiet] [-verbose] <pins>

Usage: 
  Name                 Description
  --------------------------------
  [-positive]          Specify positive unate (non_inverting) clock sense
  [-negative]          Specify negative unate (inverting) clock sense
  [-stop_propagation]  Stop clock propagation from specified pins
  [-clocks]            List of clocks
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <pins>               List of port and/or pins

Categories: 
SDC, XDC

Description:

  Sets clock sense at specified ports or pins. This is used to define the
  positive or negative unateness at the pin relative to a clock object.
  However, the specified unateness only applies at a non-unate point in the
  clock network, at a point where the clock signal cannot be determined.
  Since the clock signal is not determined, the defined clock sense
  propagates forward from the given pins.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -positive - (Optional) The unate clock sense is positive (non_inverting).

  -negative - (Optional) The unate clock sense is negative (inverting).

  -stop_propagation - (Optional) Stop the propagation of clocks in the
  -clocks argument from the specified pins or ports. Propagation of the clock
  as clock and data is stopped.

  Note: -positive, -negative, and -stop_propagation are mutually exclusive.

  -clocks <args> - (Optional) A list of clocks on which to apply the clock
  sense for the specified pins and ports. If the -clocks argument is not
  used, the clock sense will be applied to all clocks passing through the
  specified pins and ports.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <pins> - (Required) List of ports and pins to propagate the clock sense to.

Examples:

  The following example specifies that only the positive unate paths will
  propagate through the output pin of the XOR gate as compared with the
  original clock.

    set_clock_sense -positive [get_pins xor_a.z] 
    

See Also:

   *  create_clock
   *  get_pins


@@@COMMAND: set_clock_uncertainty@@@
set_clock_uncertainty

Description: 
set clock uncertainty

Syntax: 
set_clock_uncertainty  [-setup] [-hold] [-from <args>] [-rise_from <args>]
                       [-fall_from <args>] [-to <args>] [-rise_to <args>]
                       [-fall_to <args>] [-quiet] [-verbose] <uncertainty>
                       [<objects>]

Usage: 
  Name           Description
  --------------------------
  [-setup]       Specify clock uncertainty for setup checks
  [-hold]        Specify clock uncertainty for hold checks
  [-from]        Specify inter-clock uncertainty source clock
  [-rise_from]   Specify inter-clock uncertainty source clock with rising edge
  [-fall_from]   Specify inter-clock uncertainty source clock with falling 
                 edge
  [-to]          Specify inter-clock uncertainty destination clock
  [-rise_to]     Specify inter-clock uncertainty destination clock with rising
                 edge
  [-fall_to]     Specify inter-clock uncertainty destination clock with 
                 falling edge
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <uncertainty>  Uncertainty of clock network
  [<objects>]    List of clocks, ports or pins

Categories: 
SDC, XDC

Description:

  This command is used to add to the uncertainty of a clock in the design,
  and does not override the default jitter calculation. This is referred to
  as the user clock uncertainty. The set_clock_uncertainty command provides a
  convenient means to over-constrain some clocks in the design without
  changing the clock definitions and relationships. It can constrain setup
  and hold paths separately using the -setup and -hold options.

  Clock uncertainty is the maximum variation, specified in nanoseconds (ns),
  between two clock edges at registers within a single clock domain, or
  crossing between clock domains.

  The clock uncertainty is used during setup and hold analysis, where
  uncertainty is calculated for each timing path based on the clock edges
  used by the analysis and the clock tree topology. For example, for a path
  where the startpoint and endpoint are connected to the same clock net, the
  clock uncertainty is null because the same clock edge is used for both
  source and destination, unless the set_clock_uncertainty command is used to
  add uncertainty for the min delay analysis. The Vivado timing engine uses
  clock uncertainty in the slack calculation as determined by the following
  equation:

   *  Setup Slack = Setup Path Requirement - Data Delay - Clock Uncertainty +
      Clock Skew

  Clock Uncertainty is a function of different elements of jitter, as
  determined by the following equation which is returned by the
  report_timing_summary or report_timing commands:

   *  Clock Uncertainty = (sqrt(Tsj^2 + Dj^2))/2 + PE + UU

  Where:

   *  Tsj = Total System Jitter as calculated using the system jitter. See
      set_system_jitter.

   *  Dj = Discrete jitter is the amount of jitter introduced by hardware
      primitives such as MMCM or PLL. Discrete jitter is a feature of clocks
      generated by the MMCM, which includes the input jitter defined on the
      primary clock. See set_input_jitter.

   *  PE = Phase Error, which comes from the MMCM/PLL device model.

   *  UU = User Uncertainty, which defines the user clock uncertainty
      specified by this set_clock_uncertainty command.

  Note: SYSTEM_JITTER is reported as a property of clocks, although it
  applies to all clocks in the design. INPUT_JITTER is also a property of
  primary clocks. These properties can be returned by the get_property or
  report_property commands. Jitter and clock uncertainty are reported by the
  report_timing_summary and report_timing commands.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -setup - (Optional) The specified clock uncertainty is applied during setup
  checks.

  -hold - (Optional) The specified clock uncertainty is applied during hold
  checks.

  -from <source_clock_name> - (Optional) Specify inter-clock uncertainty
  source clock.

  -rise_from <source_clock_name> - (Optional) Specify inter-clock uncertainty
  source clock with rising edge.

  -fall_from <source_clock_name> - (Optional) Specify inter-clock uncertainty
  source clock with falling edge.

  -to <destination_clock_name> - (Optional) Specify inter-clock uncertainty
  destination clock.

  -rise_to <destination_clock_name> - (Optional) Specify inter-clock
  uncertainty destination clock with rising edge.

  -fall_to <destination_clock_name> - (Optional) Specify inter-clock
  uncertainty destination clock with falling edge.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <uncertainty> - (Required) Uncertainty of the clock network, specified in
  nanoseconds.

  <objects> - (Optional) List of clocks to define uncertainty for.

Examples:

  The following example defines the uncertainty between all clock domains:

    set_clock_uncertainty 0.225 -from [get_clocks] -to [get_clocks] 
    

  The following command defines setup and hold uncertainty within the wbClk
  clock domain:

    set_clock_uncertainty -setup 0.213 [get_clocks wbClk]  
    set_clock_uncertainty -hold 0.167 [get_clocks wbClk] 
    

See Also:

   *  create_clock
   *  create_generated_clock
   *  get_clocks
   *  set_input_jitter
   *  set_system_jitter


@@@COMMAND: set_data_check@@@
set_data_check

Description: 
Create data to data checks

Syntax: 
set_data_check  [-from <args>] [-to <args>] [-rise_from <args>]
                [-fall_from <args>] [-rise_to <args>] [-fall_to <args>]
                [-setup] [-hold] [-clock <args>] [-quiet] [-verbose] <value>

Usage: 
  Name          Description
  -------------------------
  [-from]       From pin/port of data to data check
  [-to]         To pin/port of the data to data check
  [-rise_from]  Rise from pin/port of data to data check
  [-fall_from]  Fall from pin/port of data to data check
  [-rise_to]    Rise to pin/port of data to data check
  [-fall_to]    Fall to pin/port of data to data check
  [-setup]      Specify data check setup time
  [-hold]       Specify data check hold time
  [-clock]      Specify the clock domain at related pin/port of the checks
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  <value>       Setup or hold time of the defined checks

Categories: 
SDC, XDC

Description:

  Performs a setup and hold check for a data pin with respect to another data
  pin. This is different from a conventional setup and hold check that is
  done with respect to a clock pin.

  This command defines min and max requirements between two endpoints,
  similar to setup (max) and hold (min) timing checks. Setup and hold checks
  are referenced from the related pin, specified by -from, to the constrained
  pin, specified by -to. The related pin is similar to the clock pin in a
  conventional setup and hold check. The timing analysis compares arrival
  times between the two specified endpoints. The difference must be less than
  the set_data_check <value> requirement in order to meet timing.

  Limitations of the set_data_check command include:

   *  Variations in the destination clock delay are ignored.

   *  This command is used for timing purposes only, and is not considered by
      the Vivado placer or router.

  Note: This command returns nothing if successful, or returns an error if it
  fails.

Arguments:

  -from <value> - (Optional) Data-to-data check for the specified pin or
  port. The -from argument specifies the related pin.

  -to <value> - (Optional) Data-to-data check for the specified pin or port.
  The -to argument specifies the constrained pin

  -rise_from <value> - (Optional) Data-to-data check from the rising edge of
  the specified data pin or port. The -rise_from argument specifies the
  related pin.

  -fall_from <value> - (Optional) Data-to-data check from the falling edge of
  the specified data pin or port. The -fall_from argument specifies the
  related pin.

  -rise_to <value> - (Optional) Data-to-data check to the rising edge of the
  specified data pin or port. The -rise_to argument specifies the constrained
  pin.

  -fall_to <value> - (Optional) Data-to-data check to the falling edge of the
  specified data pin or port. The -fall_to argument specifies the constrained
  pin.

  -setup <value> - (Optional) Perform only the setup data check. The default
  is to perform both setup and hold checks.

  -hold <value> - (Optional) Perform the hold data check. The default is to
  perform both setup and hold checks.

  -clock <value> - (Optional) Specify the clock domain at the related pin or
  port of the checks.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <value> - (Required) The setup or hold time specified in nanoseconds (ns)
  for the defined data checks.

Examples:

  The following example defines a data check for a setup violation from pin
  A_IN to pin C_IN:

    set_data_check -from A_IN -to C_IN -setup 2.0

In the above example, A_IN is the related pin and C_IN is the constrained pin. The above constraint would do a setup check of C_IN with respect to A_IN. The data at C_IN should arrive 2.0 ns prior to the edge of A_IN.

See Also:

   *  report_timing
   *  set_min_delay
   *  set_max_delay


@@@COMMAND: set_delay_model@@@
set_delay_model

Description: 
Sets the interconnect delay model for timing analysis.

Syntax: 
set_delay_model  [-interconnect <arg>] [-quiet] [-verbose]

Usage: 
  Name             Description
  ----------------------------
  [-interconnect]  Interconnect delay model used for timing analysis: Values:
                   estimated, actual(default), none
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution

Categories: 
Timing

Description:

  Sets the interconnect delay model for timing analysis. There are three
  settings for the interconnect delay model: "actual", "estimated", or
  "none".

   *  If "actual" is selected, the actual delay from the routed interconnect
      will be used in timing analysis. If the design is only partially
      routed, then the actual delay from the routed portion will be used,
      along with estimated delay for the unrouted portion. The timing report
      will provide details regarding the source of the calculated delay.

   *  If "estimated" delays are selected, the timing analysis will include an
      estimate of the interconnect delays based on the placement and
      connectivity of the design onto the device prior to implementation.
      Estimated delay can be specified even if the design is fully routed.

   *  If "none" is selected, then no interconnect delay is included in the
      timing analysis, and only the logic delay is applied.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -interconnect [ actual | estimated | none ] - (Optional) Delay model to be
  used. The default setting is actual.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following command will use a timing delay model which is an estimated
  value.

    set_delay_model -interconnect estimated 
    

See Also:

   *  report_timing


@@@COMMAND: set_dfx_footprint@@@
set_dfx_footprint

Description: 
set footprint tiles for different DFX flows.

Syntax: 
set_dfx_footprint  [-regexp] [-nocase] [-filter <arg>] [-of_objects <args>]
                   [-quiet] [-verbose] [<patterns>]

Returns: 
tiles

Usage: 
  Name           Description
  --------------------------
  [-regexp]      Patterns are full regular expressions
  [-nocase]      Perform case-insensitive matching. (valid only when -regexp 
                 specified)
  [-filter]      Filter list with expression
  [-of_objects]  Get the tiles of these sites, clock_regions.
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<patterns>]   Match tiles against patterns
                 Default: *

Categories: 
DFX, Debug


@@@COMMAND: set_disable_timing@@@
set_disable_timing

Description: 
Disable timing arcs

Syntax: 
set_disable_timing  [-from <arg>] [-to <arg>] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-from]     From pin on cell
  [-to]       To pin on cell
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   List of cells or pins, ports, lib-cells, lib-pins, libcell/cell
              timing-arcs

Categories: 
SDC, XDC, Timing

Description:

  Disables timing arcs within a specified cell or cells that lead to the
  output pins of the cell. Only the I/O paths between the clock port and the
  outputs of the cell are disabled.

  The purpose of disabling a timing arc is to prevent timing analysis through
  the arc.

  If a <cell> is specified, then all timing arcs in that cell are disabled.
  If the optional -from and -to arguments are specified, then the timing arcs
  are defined by the from/to pins. If only -from is speified then all timing
  arcs from that pin are disabled. If only -to is specified then all timing
  paths to that pin are disabled.

  If a <port> is specified, then all timing paths from a specified input port
  are disabled, or timing paths to a specified output port are disabled.

  Note: This command operates silently and does not return direct feedback of
  its operation

Arguments:

  -from <pin_name> - (Optional) Specifies the source pin of an object cell.
  The pin_name is specified by name only, without the need for the
  hierarchical cell name, which is defined by the <object>.

  -to <pin_name> - (Optional) Specifies the destination pin of an object
  cell. The pin_name is specified by name only, without the need for the
  hierarchical cell name, which is defined by the <object>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) A list of one or more objects on which to disable
  the timing arcs. Must be specified as Vivado objects returned by get_cells
  or other appropriate Tcl commands. Can be any of the following types of
  objects: cells, ports, pins, lib-cells, lib-pins, lib-cell/cell timing
  arcs.

Examples:

  The following example disable the timing arc between the pins I0 and O of
  the LUT div_dec_ff_i/U0/count_i_1 to break a combinational loop:

    set_disable_timing -from I0 -to O [get_cells div_dec_ff_i/U0/count_i_1] 
    

  The following example disables the timing arcs between the specified input
  pin to the specified output pin of a BRAM cell:

    
    set_disable_timing -from WEBWE[3] -to CLKMEM [get_cells \  
       ldpc_dout360_channel/U_AP_FIFO_ldpc_dout360_channel_ram/mem_reg_0] 
    

  The following example disables all timing arcs of the specified cell:

    set arcs [get_timing_arcs -of_objects [get_cells \  
       ldpc_dout360_channel/U_AP_FIFO_ldpc_dout360_channel_ram/mem_reg_0]]  
    set_disable_timing $arcs 
    

See Also:

   *  get_cells
   *  get_timing_arcs
   *  report_timing


@@@COMMAND: set_external_delay@@@
set_external_delay

Description: 
Set external delay

Syntax: 
set_external_delay  -from <args> -to <args> [-min] [-max] [-add] [-quiet]
                    [-verbose] <delay_value>

Usage: 
  Name           Description
  --------------------------
  -from          Output port
  -to            Input port
  [-min]         Specifies minimum delay
  [-max]         Specifies maximum delay
  [-add]         Add to existing external delay
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <delay_value>  External (feedback) delay value

Categories: 
XDC, Timing

Description:

  Note: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the Vivado IDE offer timing diagrams and additional
  details around defining specific timing constraints. You can refer to these
  sources for additional information.

  Sets the external (feedback) delay in nanoseconds (ns) between an output
  and input port. The external delay is used in the calculation of the
  PLL/MMCM compensation delay for PLLs/MMCMs with external feedback.

  A min or max value can be specified. By default the value specified applies
  to both min (hold) and max (setup) compensation delays.

  The command returns the defined delay.

Arguments:

  -from <arg> - (Required) The output port name.

  -to <arg> - (Required) The input port name.

  -min - (Optional) Specifies the delay_value is a minimum delay value for
  hold time analysis.

  -max - (Optional) Specifies the delay_value is a maximum delay value for
  setup analysis.

  -add - (Optional) Add the specified delay to the existing external delay
  value.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <delay_value> - (Required) The external delay value specified as
  nanoseconds (ns). The default value is 0.

Examples:

  The following example sets the external feedback delay to 1.0 ns between
  the port ClkOut and ClkFb:

    set_external_delay -from [get_ports ClkOut] -to [get_ports ClkFb] 1.0 
    

See Also:

   *  report_timing
   *  set_input_delay
   *  set_output_delay


@@@COMMAND: set_false_path@@@
set_false_path

Description: 
Define false path

Syntax: 
set_false_path  [-setup] [-hold] [-rise] [-fall] [-reset_path] [-from <args>]
                [-rise_from <args>] [-fall_from <args>] [-to <args>]
                [-rise_to <args>] [-fall_to <args>] [-through <args>]
                [-rise_through <args>] [-fall_through <args>] [-quiet]
                [-verbose]

Usage: 
  Name             Description
  ----------------------------
  [-setup]         Eliminate setup timing analysis for paths
  [-hold]          Eliminate hold timing analysis for paths
  [-rise]          Eliminate only rising delays for the defined paths
  [-fall]          Eliminate only falling delays for the defined paths
  [-reset_path]    Reset this path before setting false path
  [-from]          List of path startpoints or clocks
  [-rise_from]     Apply to paths rising from the list of startpoints or 
                   clocks
  [-fall_from]     Apply to paths falling from the list of startpoints or 
                   clocks
  [-to]            List of path endpoints or clocks
  [-rise_to]       Apply to paths with rise transition at the list of 
                   endpoints or clocks
  [-fall_to]       Apply to paths with fall transition at the list of 
                   endpoints or clocks
  [-through]       List of through pins, cells or nets
  [-rise_through]  Apply to paths rising through pins, cells or nets
  [-fall_through]  Apply to paths falling through pins, cells or nets
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  Note: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the Vivado IDE offer timing diagrams and additional
  details around defining specific timing constraints. You can refer to these
  sources for additional information.

  Sets false timing paths in the design that are ignored during timing
  analysis.

  Note: This command operates silently and does not return direct feedback of
  its operation

Arguments:

  -setup - (Optional) Eliminate setup timing analysis for specified timing
  paths.

  -hold - (Optional) Eliminate hold timing analysis for specified timing paths.

  -rise - (Optional) Eliminate rising delays for the specified timing paths.

  -fall - (Optional) Eliminate falling delays for the specified timing paths.

  -reset_path - (Optional) Reset the timing path before setting false path.
  This clears all exception-based timing constraints from the defined timing
  path.

  -from <element_name> - (Optional) List of path origins or clocks. A valid
  startpoint is a clock object, the clock pin of sequential logic, or an
  input or bidirectional port.

  -rise_from <element_name> - (Optional) Apply to paths rising from the list
  of origins or clocks

  -fall_from <element_name> - (Optional) Apply to paths falling from the list
  of origins or clocks

  -to <element_name> - (Optional) List of path endpoints or clocks

  -rise_to <element_name> - (Optional) Apply to paths with rise transition at
  the list of endpoints or clocks

  -fall_to <element_name> - (Optional) Apply to paths with fall transition at
  the list of endpoints or clocks

  -through <element_name> - (Optional) List of through pins, cells or nets

  -rise_through <element_name> - (Optional) Apply to paths rising through
  pins, cells or nets

  -fall_through <element_name> - (Optional) Apply to paths falling through
  pins, cells or nets

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example eliminates the setup timing for paths from the bftClk:

    set_false_path -setup -from bftClk 
    

  The following example excludes paths between the two clocks from timing
  analysis:

    set_false_path -from [get_clocks GT0_RXUSRCLK2_OUT] \  
       -to [get_clocks DRPCLK_OUT] 
    

See Also:

   *  get_clocks
   *  get_pins
   *  get_ports
   *  report_timing


@@@COMMAND: set_hierarchy_separator@@@
set_hierarchy_separator

Description: 
Set hierarchical separator character

Syntax: 
set_hierarchy_separator  [-quiet] [-verbose] [<separator>]

Usage: 
  Name           Description
  --------------------------
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  [<separator>]  Hierarchy separator character
                 Default: /

Categories: 
SDC, XDC

Description:

  Sets the character that will be used for separating levels of hierarchy in
  the design.

  Note: This command operates silently and does not return direct feedback of
  its operation

Arguments:

  <separator> - (Optional) The new character to use as a hierarchy separator.
  Valid characters to use as the hierarchy separator are: `/`, `@`, `^`, `#`,
  `.`, and `|`. The default character is `/`, and is used when no <separator>
  is specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  This example changes the hierarchy separator to the `|` character:

    set_hierarchy_separator | 
    

  The following example restores the default hierarchy separator, `/`:

    set_hierarchy_separator 
    

See Also:

   *  get_hierarchy_separator


@@@COMMAND: set_input_delay@@@
set_input_delay

Description: 
Set input delay on ports

Syntax: 
set_input_delay  [-clock <args>] [-reference_pin <args>] [-clock_fall] [-rise]
                 [-fall] [-max] [-min] [-add_delay] [-network_latency_included]
                 [-source_latency_included] [-quiet] [-verbose] <delay>
                 <objects>

Usage: 
  Name                         Description
  ----------------------------------------
  [-clock]                     Relative clock
  [-reference_pin]             Relative pin or port
  [-clock_fall]                Delay is relative to falling edge of clock
  [-rise]                      Specifies rising delay
  [-fall]                      Specifies falling delay
  [-max]                       Specifies maximum delay
  [-min]                       Specifies minimum delay
  [-add_delay]                 Don't remove existing input delay
  [-network_latency_included]  Specifies network latency of clock already 
                               included
  [-source_latency_included]   Specifies source latency of clock already 
                               included
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution
  <delay>                      Delay value
  <objects>                    List of ports

Categories: 
SDC, XDC

Description:

  Tip: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the AMD Vivado IDE offer timing diagrams and
  additional details around defining specific timing constraints. You can
  refer to these sources for additional information.

  Specifies the external system-level path delay on a primary input port
  relative to a clock edge at the interface of the design. The input delay
  value is specified in nanoseconds (ns), and can be positive or negative,
  depending on the clock and data relative phase at the interface of the
  device.

  To accurately model the system-level timing of your AMD FPGA design, you
  must assign timing delays for objects external to the FPGA onto the primary
  input or output ports in your design. These delays are defined by the
  set_input_delay and set_output_delay commands.

  Important: If the input port also has a set_max_delay constraint assigned,
  the specified input delay value is considered part of the max_delay
  computation. That is, the input delay consumes a portion of the max delay
  on the timing path that includes the input port.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -clock <arg> - (Optional) Indicates that the input delay is relative to the
  specified clock. By default the rising edge is used. However the
  -clock_fall argument can be used to indicate that the falling edge should
  be used instead.

  -reference_pin <arg> - (Optional) Specifies that the delay is relative to
  the active edge of a clock appearing on the specified pin or port rather
  than a clock.

  -clock_fall - (Optional) Specifies that the delay is relative to a falling
  edge of the clock rather than rising edge.

  -rise - (Optional) Specifies the input delay applies to rising transitions
  on the specified ports. The default is to apply the delay for both rising
  and falling transitions.

  -fall - (Optional) Specifies the input delay applied to falling transitions
  on the specified ports. The default is to apply the delay for both rising
  and falling transitions.

  -max - (Optional) Indicates the input delay specified is only used when
  calculating the maximum (longest) path delays.

  -min - (Optional) Indicates the input delay specified is only used when
  calculating the minimum (shortest) path delays.

  -add_delay - (Optional) Add the specified delay constraint to the port, to
  coexist with any other set_input_delay constraints already defined on the
  port. The default behavior is to replace the existing delays.

  -network_latency_included - (Optional) Indicates that the clock network
  latency of the reference clock is included in the delay value. The Vivado
  timing engine considers the clock edge reaching the capture flop after the
  clock latencies unless the specified input or output delay value includes
  the source latency or network latency.

  -source_latency_included - (Optional) Indicates that the source latency of
  the relative clock is included in the specified delay value.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <delay> - (Required) The input delay specified as nanoseconds (ns) to apply
  to the specified ports. Valid values are floating point numbers, with a
  default value of 0.

  <objects> - (Required) The list of ports to which the delay value will be
  assigned.

Examples:

  The following example specifies the input delay on port DIN. The input
  delay is 3 and is relative to the rising edge of clock clk1:

    set_input_delay -clock clk1 3 DIN

  The following example specifies the input delay on port DIN. The input
  delay is 2 and is relative to the falling edge of the clock clk1:

    set_input_delay -clock_fall -clock clk1 2 DIN

  The following example specifies the input delay on port reset. The input
  delay is 2 and is relative to the rising edge of the clock that appears on
  the pin wbClk_IBUF_BUFG_inst/O, originating from the clock wbClk:

    set_input_delay -clock wbClk 2 -reference_pin \
       [get_pin wbClk_IBUF_BUFG_inst/O] reset

  This example creates a clock named clk_ddr, and defines input delay
  constraints from data launched by both rising and falling edges of the
  clock outside the device to the data input of the internal flip-flop that
  is sensitive to both rising and falling clock edges:

    create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]
    set_input_delay -clock clk_ddr -max 2.1 [get_ports DDR_IN]
    set_input_delay -clock clk_ddr -max 1.9 [get_ports DDR_IN] -clock_fall -add_delay
    set_input_delay -clock clk_ddr -min 0.9 [get_ports DDR_IN]
    set_input_delay -clock clk_ddr -min 1.1 [get_ports DDR_IN] -clock_fall -add_delay

  Note: The use of the -add_delay option allows the new min and max delay
  constraints to exist alongside the first delays on the same port.

  The following example specifies the input delay on all non clock input
  ports of the design. Although all_inputs returns all ports of the design,
  including clock ports, set_input_delay will skip setting input delays on
  the clock ports. The input delay is 1 relative to the rising edge of the
  clock wbClk:

    set_input_delay -clock wbClk 1 [all_inputs]

  The following example sets an input delay of 4 relative to the rising edge
  of the clock wbClk on the ports reset and wbDataForInput:

    set_input_delay -clock wbClk 4 [list reset wbDataForInput]

See Also:

   *  all_clocks
   *  all_inputs
   *  check_timing
   *  create_clock
   *  get_ports
   *  report_timing
   *  set_max_delay
   *  set_output_delay


@@@COMMAND: set_input_jitter@@@
set_input_jitter

Description: 
Set input jitter for a clock object

Syntax: 
set_input_jitter  [-quiet] [-verbose] <clock> <input_jitter>

Returns: 
clock

Usage: 
  Name            Description
  ---------------------------
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <clock>         Clock
  <input_jitter>  Input jitter: Value >= 0

Categories: 
XDC

Description:

  Use the set_input_jitter command to specify additional jitter for a
  specific primary clock.

  Input jitter is the difference between successive clock edges due to
  variation from the ideal arrival times. This command sets the input jitter
  in nanoseconds (ns) for a specified primary clock, defined with the
  create_clock command. Because the command accepts a single clock, the
  jitter for each primary clock must be set individually.

  You can only use the set_input_jitter command to specify input jitter on
  primary clocks. You cannot use the command to set input jitter on generated
  or auto derived clocks. Input jitter is propagated to generated clocks from
  the master clock, except for MMCM and PLL.

  The input jitter is used in the calculation of discrete jitter, which is
  the amount of jitter introduced by hardware primitives such as MMCM or PLL.
  Discrete jitter is a feature of clocks generated by the MMCM. See
  set_clock_uncertainty.

  The set_input_jitter command is ignored during synthesis.

  Note: INPUT_JITTER is a property of primary clocks that can be returned by
  the get_property or report_property commands.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <clock> - (Required) The clock name of a primary clock, defined with the
  create_clock command.

  <input_jitter> - (Required) The input jitter for the specified clock object
  (value >= 0). The value is specified as nanoseconds (ns).

Examples:

  The following example sets an input jitter value of 0.3 ns on two clocks,
  sysClk and procClk. Although the jitter values are the same, you must use
  two set_input_jitter commands since the command only takes one clock as an
  argument:

    set_input_jitter sysClk 0.3  
    set_input_jitter procClk 0.3 
    

  The following example defines a primary clock, sysClk, and a generated
  clock, sysClkDiv2, that is a divide by two version of the primary clock. An
  input jitter of 0.15 ns is specified on the primary clock. The input jitter
  is automatically propagated to the generated clock:

    create_clock -period 10 -name sysClk [get_ports sysClk]  
    create_generated_clock  -name sysClkDiv2 -source [get_ports sysClk] \  
       -divide_by 2 [get_pins clkgen/sysClkDiv/Q]  
    set_input_jitter sysClk 0.15 
    

  Note: In this example sysClkDiv2 is generated by a divider implemented with
  flip-flops, so the input jitter is propagated from the primary clock.

See Also:

   *  all_clocks
   *  check_timing
   *  create_clock
   *  create_generated_clock
   *  report_clocks
   *  report_timing
   *  set_clock_uncertainty
   *  set_clock_latency
   *  set_system_jitter


@@@COMMAND: set_ip_msg_config@@@
set_ip_msg_config

Description: 
Configure filtering of messages issued when processing a specified IP.

Syntax: 
set_ip_msg_config  [-synth_msg] [-idlist <args>] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  [-synth_msg]  Filter synthesis message(s) with the given message ids. 
                Specified separately because these messages may be issued 
                before a design has been created.
  [-idlist]     Filter messages that match the given message ids. Example: 
                '-idlist {17-35 17-33}'.
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
SDC, XDC


@@@COMMAND: set_load@@@
set_load

Description: 
Set capacitance on output ports and output pins

Syntax: 
set_load  [-rise] [-fall] [-max] [-min] [-quiet] [-verbose] <capacitance>
          <objects>

Usage: 
  Name           Description
  --------------------------
  [-rise]        Specify the rise capacitance value (for ports only)
  [-fall]        Specify the fall capacitance value (for ports only)
  [-max]         Specify the maximum capacitance value
  [-min]         Specify the minimum capacitance value
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <capacitance>  Capacitance value
  <objects>      List of output ports and output pins

Categories: 
SDC, XDC

Description:

  Sets the load capacitance on output ports to the specified value. The load
  capacitance is used during power analysis when running the report_power
  command, but is not used during timing analysis.

  Note: The default unit of capacitance is picofarads (pF), but can be
  changed using the set_units command.

  This command operates silently and does not return direct feedback of its
  operation.

Arguments:

  -max - (Optional) Provided for SDC compatibility. Ignored by the Vivado
  tools.

  -min - (Optional) Provided for SDC compatibility. Ignored by the Vivado
  tools.

  -rise - (Optional) Provided for SDC compatibility. Ignored by the Vivado
  tools.

  -fall - (Optional) Provided for SDC compatibility. Ignored by the Vivado
  tools.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <capacitance> - (Required) The value of the load capacitance. The value is
  specified as a floating point value >= 0. The default is 0.

  <objects> - (Required) A list of output port objects to assign the
  capacitance load to. All outputs in the design may be obtained using the
  all_outputs command.

Examples:

  The following example sets the specified load capacitance value for all
  ports:

    set_load 5.5 [all_outputs] 
    

  The following example sets the rising and falling edge load capacitance for
  the specified output ports:

    set_load -rise -fall 8 [get_ports wbOutput*] 
    

See Also:

   *  all_outputs
   *  get_ports
   *  report_power


@@@COMMAND: set_logic_dc@@@
set_logic_dc

Description: 
Sets logic dc for input ports and input pins

Syntax: 
set_logic_dc  [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   List of input ports and input pins

Categories: 
SDC, XDC

Description:

  Sets the specified input ports or input pins to a logic value of `X`, as
  unknown or don`t care. This command is NOT supported in Synthesis.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) A list of the input ports and pins to be affected.

Examples:

  The following example sets the specified port to `X`:

    set_logic_dc [get_ports reset] 
    

See Also:

   *  all_inputs
   *  get_pins
   *  get_ports
   *  set_logic_one
   *  set_logic_unconnected
   *  set_logic_zero


@@@COMMAND: set_logic_one@@@
set_logic_one

Description: 
Sets logic one for input ports and input pins

Syntax: 
set_logic_one  [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   List of input ports and input pins

Categories: 
SDC, XDC

Description:

  Sets the specified input ports or input pins to a logic one. This command
  is NOT supported in Synthesis.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) A list of the input ports and pins to be affected.

Examples:

  The following example sets the specified input port to a logic one:

    set_logic_one [get_ports reset] 
    

  The following example sets the input ports reset and wbDataForInput to a
  logic one:

    set_logic_one [list [get_ports reset] [get_ports wbDataForInput]] 
    

  The following example sets the input pin I on instance reset_IBUF to a
  logic one:

    set_logic_one [get_pins reset_IBUF_inst/I] 
    

See Also:

   *  all_inputs
   *  get_pins
   *  get_ports
   *  set_logic_dc
   *  set_logic_unconnected
   *  set_logic_zero


@@@COMMAND: set_logic_unconnected@@@
set_logic_unconnected

Description: 
Sets logic unconnected for output ports and output pins

Syntax: 
set_logic_unconnected  [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   List of output ports and output pins

Categories: 
XDC

Description:

  Defines the specified output ports or pins as unconnected.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) A list of the output ports and pins to be affected.

Examples:

  The following example sets the specified port to unconnected:

    set_logic_unconnected [get_ports OUT1] 
    

See Also:

   *  set_logic_dc
   *  set_logic_one
   *  set_logic_zero


@@@COMMAND: set_logic_zero@@@
set_logic_zero

Description: 
Sets logic zero for input ports and input pins

Syntax: 
set_logic_zero  [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   List of input ports and input pins

Categories: 
SDC, XDC

Description:

  Sets the specified input ports and input pins to a logic zero. This command
  is NOT supported in Synthesis.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) A list of the input ports and pins to be affected.

Examples:

  The following example sets the specified port to logic state 0:

    set_logic_zero [get_ports reset] 
    

See Also:

   *  all_inputs
   *  get_pins
   *  get_ports
   *  set_logic_one
   *  set_logic_unconnected


@@@COMMAND: set_max_delay@@@
set_max_delay

Description: 
Specify maximum delay for timing paths

Syntax: 
set_max_delay  [-rise] [-fall] [-reset_path] [-from <args>] [-rise_from <args>]
               [-fall_from <args>] [-to <args>] [-rise_to <args>]
               [-fall_to <args>] [-through <args>] [-rise_through <args>]
               [-fall_through <args>] [-datapath_only] [-quiet] [-verbose]
               <delay>

Usage: 
  Name              Description
  -----------------------------
  [-rise]           Delay value applies to rising path delays
  [-fall]           Delay value applies to falling path delays
  [-reset_path]     Reset this path before setting max delay
  [-from]           List of path startpoints or clocks
  [-rise_from]      Apply to paths rising from the list of startpoints or 
                    clocks
  [-fall_from]      Apply to paths falling from the list of startpoints or 
                    clocks
  [-to]             List of path endpoints or clocks
  [-rise_to]        Apply to paths with rise transition at the list of 
                    endpoints or clocks
  [-fall_to]        Apply to paths with fall transition at the list of 
                    endpoints or clocks
  [-through]        List of through pins, cells or nets
  [-rise_through]   Apply to paths rising through pins, cells or nets
  [-fall_through]   Apply to paths falling through pins, cells or nets
  [-datapath_only]  Remove clock skew and jitter from calculation
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <delay>           Delay value

Categories: 
SDC, XDC

Description:

  Note: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the Vivado IDE offer timing diagrams and additional
  details around defining specific timing constraints. You can refer to these
  sources for additional information.

  Sets the maximum delay allowed on a timing path, specified in nanoseconds
  (ns). The specified delay value is assigned to both the rising and falling
  edges of the defined timing paths unless the -rise or -fall arguments are
  specified.

  The maximum rising and falling delay cannot be less than the minimum rising
  and falling delay on the same path, as defined by the set_min_delay
  command. If this happens, the first assigned constraint is removed from the
  timing path as a conflict, and the delay value specified by the removed
  constraint is set to 0.

  The delay value must be assigned to a timing path as defined by at least
  one -from, -through, or -to argument. A general path delay such as -to
  endpoint will be over written by a more specific path definition such as
  -from/-to, or -from/-through/-to path definition.

  Note: When assigned to a primary input or output port, any system-level
  delay consumes a portion of the max delay on the timing path that includes
  the input or output port. That is, the delay specified by set_input_delay
  or set_output_delay is considered part of the maximum delay.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -rise - (Optional) Apply the delay value to the rising edge of the timing
  path.

  -fall - (Optional) Apply the delay value to the falling edge of the timing
  path.

  Note: If neither -rise nor -fall is specified, the delay is applied as both
  rising and falling edge path delay.

  -reset_path - (Optional) Indicates that existing rising or falling edge false path
  or max delays should be cleared before applying the new specified path delay. If
  only -to is specified all paths leading to the specified endpoints are
  cleared. If only -from is specified, all paths leading from the specified
  start points are cleared. When -from/-to or -from/-through/-to are
  specified, the defined paths are reset.

  -from <value> - (Optional) A list of path start points or clocks. A valid
  startpoint is a primary input or inout port, or the clock pin of a
  sequential element. If a clock is specified then all the primary input and
  inout ports related to that clock as well as all the clock pin of the
  registers connected to that clock are used as startpoints.

  -rise_from <element_name> - (Optional) The max delay applied to paths
  rising from the list of origins or clocks.

  -fall_from <element_name> - (Optional) The max delay applied to paths
  falling from the list of origins or clocks.

  -to <element_name> - (Optional) A list of path endpoints or clocks. A valid
  endpoint is a primary output or inout port, or the data pin of a sequential
  element. If a clock is specified then all the primary output and inout
  ports related to that clock as well as all the data pins of the registers
  connected to that clock are used as endpoints.

  -rise_to <element_name> - (Optional) The max delay applied to paths with
  rise transition at the list of endpoints or clocks.

  -fall_to <element_name> - (Optional) The max delay applied to paths with
  fall transition at the list of endpoints or clocks.

  -through <element_name> - (Optional) A list of through pins, cells, or nets.

  -rise_through <element_name> - (Optional) The max delay applied to paths
  rising through pins, cells or nets.

  -fall_through <element_name> - (Optional) The max delay applied to paths
  falling through pins, cells or nets.

  -datapath_only - (Optional) Exclude clock skew and jitter from the delay
  calculation for the specified path. This option is used to constrain the
  delay between sequential elements that have different clocks, where you do
  not want to consider clock skew and jitter in the delay calculation. Only
  the Clock-to-Q delay of the first flop, the wire delay between the flops,
  and the setup time of the second flop should be considered.

  Note: The specification of the data path for -datapath_only must use the
  -from option to define the startpoint for the path. The hold check for the
  specified path is automatically defined as a false path when using the
  -datapath_only option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <delay> - (Required) Specifies the maximum delay value specified in
  nanoseconds. The <delay> is specified in nanoseconds (ns) as a positive or
  negative floating point number, with a default value of 0.

Examples:

  The following example defines a maximum delay of 60 ns between all the
  input and output ports (feedthrough paths):

    set_max_delay 60 -from [all_inputs] -to [all_outputs] 
    

  The following example clears the existing max delay and specifies a new >
  maximum delay for paths to endpoints clocked by the specified clock:

    set_max_delay -reset_path 50 -to [get_clocks spi_clk] 
    

  The set_max_delay command is often used with -datapath_only to constrain
  asynchronous clock domains crossing when a simple synchronizer is used on
  the destination clock domain. In the following example, two flops (FF1 and
  FF2) are clocked by different clocks, and FF1/Q connects directly to FF2/D
  through net1. To limit the delay on this connection to 4.0 ns use the
  following constraints:

    set_max_delay -from FF1/C -to FF2/D -datapath_only 4.0 
    

See Also:

   *  get_clocks
   *  get_nets
   *  get_ports
   *  report_timing
   *  set_input_delay
   *  set_min_delay
   *  set_output_delay
   *  set_units


@@@COMMAND: set_max_time_borrow@@@
set_max_time_borrow

Description: 
Limit time borrowing for latches

Syntax: 
set_max_time_borrow  [-quiet] [-verbose] <delay> <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <delay>     Delay value: Value >= 0
  <objects>   List of clocks, cells, data pins or clock pins

Categories: 
SDC, XDC

Description:

  Sets the maximum amount of time in nanoseconds that can be borrowed between
  nets when analyzing the timing on latches.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <delay> - (Required) The delay that should be applied to the specified
  objects. The <delay> is specified in nanoseconds (ns) as a floating point
  number >= 0, with a default value of 0.

  <objects> - (Required) A list of clocks, cells, data pins, or clock pins to
  which the limit should be applied.

Examples:

  The following example specifies that the latches attached to "all clocks"
  will be allowed 0 time units of borrowing. Effectively, this disables time
  borrowing throughout the entire design.

    set_max_time_borrow 0.0 [all_clocks] 
    

  The following example specifies that nets in the top level of hierarchy are
  allowed 20 time units of time borrowing:

    set_max_time_borrow 20 {top/*} 
    

See Also:

   *  all_clocks
   *  get_clocks
   *  get_nets


@@@COMMAND: set_min_delay@@@
set_min_delay

Description: 
Specify minimum delay for timing paths

Syntax: 
set_min_delay  [-rise] [-fall] [-reset_path] [-from <args>] [-rise_from <args>]
               [-fall_from <args>] [-to <args>] [-rise_to <args>]
               [-fall_to <args>] [-through <args>] [-rise_through <args>]
               [-fall_through <args>] [-quiet] [-verbose] <delay>

Usage: 
  Name             Description
  ----------------------------
  [-rise]          Delay value applies to rising path delays
  [-fall]          Delay value applies to falling path delays
  [-reset_path]    Reset this path before setting min delay
  [-from]          List of path startpoints or clocks
  [-rise_from]     Apply to paths rising from the list of startpoints or 
                   clocks
  [-fall_from]     Apply to paths falling from the list of startpoints or 
                   clocks
  [-to]            List of path endpoints or clocks
  [-rise_to]       Apply to paths with rise transition at the list of 
                   endpoints or clocks
  [-fall_to]       Apply to paths with fall transition at the list of 
                   endpoints or clocks
  [-through]       List of through pins, cells or nets
  [-rise_through]  Apply to paths rising through pins, cells or nets
  [-fall_through]  Apply to paths falling through pins, cells or nets
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <delay>          Delay value

Categories: 
SDC, XDC

Description:

  Sets the minimum delay allowed on a timing path, specified in nanoseconds
  (ns). The specified delay value is assigned to both the rising and falling
  edges of the defined timing paths unless the -rise or -fall arguments are
  specified.

  Note: The minimum rising and falling delay cannot be greater than the
  maximum rising and falling delay on the same path. If this happens, the
  first assigned delay value is removed from the timing path and reset to 0.

  The delay value must be assigned to a timing path as defined by at least
  one -from, -through, or -to argument. A general path delay such as -to
  endpoint will be over written by a more specific path definition such as
  -from/-to, or -from/-through/-to path definition.

  This command operates silently and does not return direct feedback of its
  operation.

Arguments:

  -rise - (Optional) Apply the delay value to the rising edge of the timing
  path.

  -fall - (Optional) Apply the delay value to the falling edge of the timing
  path.

  -reset_path - (Optional) Clear existing rising or falling edge min delays
  before applying the new specified path delay. If only -to is specified all
  paths leading to the specified endpoints are cleared. If only -from is
  specified, all paths leading from the specified starting points are
  cleared. When -from/-to or -from/-through/-to are specified, the defined
  paths are reset.

  -from <objects> - (Optional) The starting points of the timing paths that
  will be assigned the specified delay. A valid startpoint is a primary input
  or inout port, or the clock pin of a sequential element. If a clock is
  specified then all the primary input and inout ports related to that clock,
  as well as all the clock pins of the registers connected to that clock are
  used as startpoints.

  -rise_from <objects> - (Optional) The starting points of the timing path
  that will have the specified delay assigned to its rising edge.

  -fall_from <objects> - (Optional) The starting points of the timing path
  that will have the specified delay assigned to its falling edge.

  -to <objects> - (Optional) The destination objects for the path that will
  be affected by the minimum delay. A valid endpoint is a primary output or
  inout port, or the data pin of a sequential element. If a clock is
  specified then all the primary output and inout ports related to that
  clock, as well as all the data pins of the registers connected to that
  clock are used as endpoints.

  -rise_to <objects> - (Optional) The destination objects for the rising-edge
  path that will be affected by the minimum delay.

  -fall_to <objects> - (Optional) The destination objects for the
  falling-edge path that will be affected by the minimum delay.

  -through <objects> - (Optional) A list of pins, cell, or nets through which
  the path affected by the minimum delay travels.

  -rise_through <objects> - (Optional) A list of pins, cell, or nets through
  which the rising-edge path affected by the minimum delay travels.

  -fall_through <objects> - (Optional) A list of pins, cell, or nets though
  which the falling-edge path affected by the minimum delay travels.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <delay> - (Required) Specifies the minimum delay value in nanoseconds. The
  <delay> is specified in nanoseconds (ns) as a positive or negative floating
  point number, with a default value of 0.

Examples:

  The following example specifies a minimum delay of 20ns between the primary
  input and output ports (combinational/feedthrough paths):

    set_min_delay 20 -from [all_inputs] -to [all_outputs] 
    

  The following example defines a minimum delay of 20ns for timing paths with
  endpoints at all primary output ports:

    set_min_delay 20 -to [get_ports -filter {DIRECTION == out}] 
    

See Also:

   *  get_clocks
   *  get_nets
   *  get_ports
   *  report_timing
   *  set_max_delay


@@@COMMAND: set_msg_config@@@
set_msg_config

Description: 
Configure how the Vivado tool will display and manage specific messages, based on message ID, string, or severity.

Syntax: 
set_msg_config  [-id <arg>] [-string <args>] [-severity <arg>] [-limit <arg>]
                [-new_severity <arg>] [-suppress] [-regexp] [-quiet] [-verbose]

Usage: 
  Name             Description
  ----------------------------
  [-id]            A qualifier, apply the selected operation only to messages
                   that match given message id. Example: '-id {Common 
                   17-35}'.
                   Default: match any id
  [-string]        A qualifier, apply the selected operation only to messages
                   that contain the given list of strings.
                   Default: none
  [-severity]      A qualifier, apply the selected operation only to messages
                   at the given severity level. Example: '-severity INFO'
                   Default: match any severity
  [-limit]         for the messages that match the qualifiers, limit the 
                   number of messages displayed to the given integer value. 
                   Can only be used in conjunction with one of -id or 
                   -severity.
  [-new_severity]  for the messages that match the qualifiers, change the 
                   severity to the given value for the current project
  [-suppress]      for the messages that match the qualifiers, suppress (do 
                   not display) any messages for the current project
  [-regexp]        The values used for -string are full regular expressions
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution

Categories: 
Report

Description:

  This command lets you configure the messages returned by the Vivado tool in
  the current project. Use this command to change the severity of messages,
  to limit the number of times a message is reported, or to suppress the
  message altogether. However, you can only perform one of these actions at
  one time with set_msg_config:

   *  Customize the severity of messages returned by the tool to specific
      levels appropriate to your usage. For instance, set the severity of a
      specified message ID from one type, such as WARNING, to another type,
      such as ERROR.

      Note: You cannot downgrade a Vivado Design System ERROR message to make
      it less than an error.

   *  Define the number of messages that will be returned by the tool during
      a design session, or single invocation. You can specify the limit of a
      specific message ID, or the limit for a specific severity of messages.

      Note: The default message limit for all message IDs is set to 100, and
      is defined by the parameter messaging.defaultLimit. This is the limit
      applied to each separate message returned by the tool. You can report
      the current value of this parameter with the get_param command, and
      change it as needed using the set_param command.

   *  Suppress a specific message ID from being reported by the tool at all.
      You can enable messages that were previously suppressed using the
      reset_msg_config command.

   *  An error is returned if more than one action is attempted in a single
      set_msg_config command.

  Message qualifiers of string, ID, and severity are used to determine which
  messages are configured by the set_msg_config command. You must supply at
  least one message qualifier to identify a message or group of messages to
  apply the command to. Multiple qualifiers have an AND relationship; the
  configuration rule will be applied only to messages matching all
  qualifiers.

  Note: set_msg_config does not support the use of wildcards in message
  qualifiers.

  Message configuration rules are project specific, and are persistent with
  the project when the project is closed and reopened.

  Note: Message configuration rules apply to the current project and are
  passed automatically to subordinate processes, such as synthesis and
  implementation runs. Do not use set_msg_config in pre and post Tcl scripts.

  Use the get_msg_config command to report the current configuration of a
  specific message, or the configuration rules defined in the current
  project. Restore messages to their default configurations using the
  reset_msg_config command.

  The set_msg_config command is not supported by report_cdc as that command
  does not generate messages through the message manager.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -id <arg> - (Optional) Specify a message ID pattern to find message IDs
  that match the specified argument. The specified <arg> is used as a search
  pattern. All message IDs that match the specified pattern will be affected
  by the set_msg_config command. Every message delivered by the tool has a
  unique global message ID that consists of an application sub-system code
  and a message identifier. This results in a message ID that looks like the
  following:

    [Common 17-54]  
    [Netlist 29-28]  
    [Synth 8-32]  
    [Synth 8-3295] 
    

  Note: To match a specific message ID, make the search pattern specific to
  the ID. For instance, in the following commands, the first applies to both
  "Synth 8-32" and "Synth 8-3295", while the second command applies only to
  "Synth 8-32":

    set_msg_config -id "Synth 8-32" -new_severity "CRITICAL WARNING"  
    set_msg_config -id {[Synth 8-32]} -new_severity "CRITICAL WARNING"  
    

  -string <args> - (Optional) Apply the selected operation only to messages
  that contain the given list of strings. Strings must be enclosed in braces,
  and multiple strings can be specified separated by spaces:

    {{Vivado} {Synthesis}}

  Note: Strings are case sensitive.

  -severity - (Optional) The severity of the message. There are five message
  severities:

   *  ERROR - An ERROR condition implies an issue has been encountered which
      will render design results unusable and cannot be resolved without user
      intervention.

   *  {CRITICAL WARNING} - A CRITICAL WARNING message indicates that certain
      input/constraints will either not be applied or are outside the best
      practices for a FPGA family. User action is strongly recommended.

      Note: Since this is a two word value, it must be enclosed in "" or {}.

   *  WARNING - A WARNING message indicates that design results may be
      sub-optimal because constraints or specifications may not be applied as
      intended. User action may be taken or may be reserved.

   *  INFO - An INFO message is the same as a STATUS message, but includes a
      severity and message ID tag. An INFO message includes a message ID to
      allow further investigation through answer records if needed.

   *  STATUS - A STATUS message communicates general status of the process
      and feedback to the user regarding design processing. A STATUS message
      does not include a message ID.

      Note: Because STATUS messages do not have message IDs, you cannot
      change the severity level of a STATUS message.

  -limit <arg> - (Optional) Limit the display of the selected messages by the
  limit value specified as an integer >= 1. You can restore the message limit
  to the messaging.defaultLimit by specifying a count of -1.

  -new_severity <arg> - (Optional) For the messages that match the qualifier,
  specify a new message severity. Valid values are defined above under the
  -severity option.

  Note: Using -new_severity with -id or -string may appear to let you
  downgrade an ERROR message when the command is run. However, the ERROR
  message is not downgraded. This will be correctly reported by the Vivado
  tool the next time the error is encountered. See the Examples section below
  for more information.

  -suppress - (Optional) Suppress the specified messages from further
  reporting.

  Note: Suppressing all messages of a specified severity, such as WARNING,
  can suppress implementation, DRC, and clock domain crossing (CDC) messages
  related to potential problems in your design.

  -regexp - (Optional) Can be used with -string to specify the string values
  as regular expressions. Regular expressions search strings are anchored to
  the start of the search string. You can add ".*" to the beginning and end
  of a string to widen the search to include a sub-string. See
  http://perldoc.perl.org/perlre.html for more information on regular
  expression syntax.

  Note: The Tcl built-in command regexp is not anchored, and works as a
  standard Tcl command. For more information refer to
  http://www.tcl.tk/man/tcl8.5/TclCmd/regexp.htm.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example elevates a common INFO message to a Critical Warning:

    set_msg_config -id {[Common 17-81]} -new_severity "CRITICAL WARNING" 
    

  Note: In the following example the "Common 17-69" message is an ERROR
  message, and cannot be downgraded from an ERROR. The command in this
  example appears to work when run from the Tcl console, however it will not
  result in any change.

    
    set_msg_config -id {[Common 17-69]} -new_severity WARNING 
    

  When the "Common 17-69" message is next thrown by the Vivado tool, a
  warning message is returned stating that an error cannot be downgraded, and
  the message is thrown as an ERROR:

    WARNING: [Common 17-239] ERROR Messages are prohibited to be downgraded.  
       Message `Common 17-69` is not downgraded.  
    ERROR: [Common 17-69] Command failed: report_design_analysis   
       -critical_paths can be run only after synthesis has successfully completed. 
    

  The following example results in warning messages with message ID "17-35",
  and containing "clk" in the message, being redefined as Error messages:

    set_msg_config -severity warning -string "clk" -id "17-35" \  
       -new_severity error  
    

  This example changes the severity of messages with the specified message
  ID, gets the current message configuration rules, and then shows two
  different command forms to reset the specific rule and restore the message:

    set_msg_config -id "Common 17-361" -severity INFO -new_severity WARNING  
    get_msg_config -rules  
    ---------------------  
    Message control rules currently in effect are:  
    Rule Name  Rule                                                  Current Message Count    
    1  set_msg_config -ruleid {1} -id {Common 17-361} -severity {INFO} -new_severity {WARNING} 0  
    ---------------------  
    reset_msg_config -id "Common 17-361" -default_severity    
    reset_msg_config -ruleid {1}                      
     
    

  Note: In the preceding example, only one of the reset_msg_config commands
  is needed to reset the message.

  This example shows the use of a parameter to change the default message
  limit, and then defines a new limit for the specified message id:

    get_param messaging.defaultLimit  
       100  
    set_param messaging.defaultLimit 1000  
    set_msg_config -id {[Common 17-81]} -limit 1500 
    

See Also:

   *  get_msg_config
   *  get_param
   *  reset_msg_config
   *  set_param


@@@COMMAND: set_multicycle_path@@@
set_multicycle_path

Description: 
Define multicycle path

Syntax: 
set_multicycle_path  [-setup] [-hold] [-rise] [-fall] [-start] [-end]
                     [-reset_path] [-from <args>] [-rise_from <args>]
                     [-fall_from <args>] [-to <args>] [-rise_to <args>]
                     [-fall_to <args>] [-through <args>] [-rise_through <args>]
                     [-fall_through <args>] [-quiet] [-verbose]
                     <path_multiplier>

Usage: 
  Name               Description
  ------------------------------
  [-setup]           Only setup multiplier is set
  [-hold]            Only hold multiplier is set
  [-rise]            Multiplier valid for rising delays on path endpoint
  [-fall]            Multiplier valid for falling delays on path endpoint
  [-start]           Multiplier measured against path startpoint
  [-end]             Multiplier measured against path endpoint
  [-reset_path]      Reset this path before setting multicycle
  [-from]            List of path startpoints or clocks
  [-rise_from]       Apply to paths rising from the list of startpoints or 
                     clocks
  [-fall_from]       Apply to paths falling from the list of startpoints or 
                     clocks
  [-to]              List of path endpoints or clocks
  [-rise_to]         Apply to paths with rise transition at the list of 
                     endpoints or clocks
  [-fall_to]         Apply to paths with fall transition at the list of 
                     endpoints or clocks
  [-through]         List of through pins, cells or nets
  [-rise_through]    Apply to paths rising through pins, cells or nets
  [-fall_through]    Apply to paths falling through pins, cells or nets
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <path_multiplier>  Number of cycles

Categories: 
SDC, XDC

Description:

  By default, the Vivado timing engine performs a single-cycle analysis, in
  which the setup check is performed at the destination on the capture edge,
  one clock cycle after the edge of the source clock. However, this may not
  be appropriate for certain timing paths. The most common example is a logic
  path that requires more than one clock cycle for the data to stabilize at
  the endpoint.

  The set_multicycle_path command lets you choose a path multiplier, N, to
  establish a timing path that takes N clock cycles from the start clock edge
  to the capture clock edge. The path multiplier defines the total number of
  clock cycles required for propagation of a signal from its origin to
  destination when that propagation is longer than a single clock cycle. For
  more information on the use of this command, refer to the Vivado Design
  Suite User Guide: Using Constraints (UG903).

  The set_multicycle_path command is used to specify path multipliers for
  setup and hold analysis, for rising and/or falling edges, with respect to
  the source clock or the destination clock. This command includes three
  elements:

   *  The specification of the setup and hold analysis affected by the
      multicycle path.

   *  The definition of the timing paths to which the multicycle path applies.

   *  The path multiplier defining the number of clock cycles to apply to the
      timing analysis.

  By default the path multiplier applies to both the setup and hold analysis.
  The hold analysis is derived from the setup analysis, so it is moved along
  with the setup analysis. If the path multiplier moves the setup check N
  clock cycles, it moves the hold check N-1 clock cycles. However, this often
  results in hold timing failures.

  You can use a second set_multicycle_path command with the -hold option to
  restore the hold analysis to its original location. When the -hold option
  is specified the <path_multiplier> acts on the hold relationship to restore
  the hold check to its original position. For instance, the following
  command sequence extends the setup check for 3 clock cycles, and
  consequently extends the hold check by two clock cycles (N-1). The second
  command restores the hold check to its original position:

    set_multicycle_path 3 -from {usbEngine1/u4/csr_reg[26]/C} \  
    -to {usbEngine1/u1/u2/sizd_c_reg[12]/D}  
    set_multicycle_path 2 -from {usbEngine1/u4/csr_reg[26]/C} \  
    -to {usbEngine1/u1/u2/sizd_c_reg[12]/D} -hold 
    

  By default, the setup path multiplier is applied with respect to the
  destination clock, and the hold path multiplier is applied with respect to
  the source clock. Use the -start or -end options to change the default
  setup or hold analysis with respect to the source or destination clocks.

  This command operates silently when successful, or returns an error if the
  command fails.

Arguments:

  -setup - (Optional) Apply the path multiplier to the setup check, which
  also affects the hold check. This is also the default behavior of the
  set_multicycle_path command when neither -setup nor -hold are specified.

  -hold - (Optional) Apply the path multiplier only to the hold check, to
  change the hold relationship by the specified number of clock cycles.

  Note: When neither -setup nor -hold is used, or when only -setup is
  specified, the <path_multiplier> applies to both setup and hold checks.

  -rise - (Optional) Apply the multiplier specifically to rising edge delays
  on the path endpoint.

  -fall - (Optional) Apply the multiplier specifically to falling edge delays
  on the path endpoint.

  Note: If neither -rise or -fall is specified, the multiplier is applied to
  both the rising and falling edge delays.

  -start - (Optional) By default, the setup path multiplier is defined with
  respect to the destination clock (-end). To modify the setup requirement
  with respect to the source clock, the -start option must be used.

  -end - (Optional) By default, the hold path multiplier is defined with
  respect to the source clock. To modify the hold requirement with respect to
  the destination clock, the -end option must be used.

  Note: The -start/-end options have no effect when applying a multicycle
  path constraint on paths clocked by the same clock, or clocked by two
  clocks having the same waveform, or with no phase shift.

  -reset_path - (Optional) Reset the specified path before applying the
  multicycle path multiplier.

  -from <args> - (Optional) A list of start points on the path that will be
  affected by the path multiplier.

  -rise_from <args> - (Optional) A list of the start points on the
  rising-edge path that will be affected by the multicycle path multiplier.

  -fall_from <args> - (Optional) A list of the start points on the
  falling-edge path that will be affected by the multicycle path multiplier.

  -to <args> - (Optional) A list of the end points on the path that will be
  affected by the multicycle path multiplier.

  -rise_to <args> - (Optional) A list of the end points on the rising-edge
  path that will be affected by the multicycle path multiplier.

  -fall_to <args> - (Optional) A list of the end points on the falling-edge
  path that will be affected by the multicycle path multiplier.

  -through <args> - (Optional) A list of pins, cell, or nets through which
  the path affected by the multicycle path multiplier travels.

  -rise_through <args> - (Optional) A list of pins, cell, or nets through
  which the rising-edge path affected by the multicycle path multiplier
  travels.

  -fall_through <args> - (Optional) Specifies the list of pins, cell, or nets
  through which the falling-edge path affected by the multicycle path
  multiplier travels.

  Note: Although -to, -through, and -from (in their various forms) are all
  optional arguments, at least one -from, -to, or -through argument must be
  specified to define a timing path for the set_multicycle_path constraint,
  or an error will be returned.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <path_multiplier> - (Required) The number of clock cycles to move the setup
  and hold analysis analysis.

  Note: When -hold is specified, the <path_multiplier> acts on the hold
  relationship to restore the hold check to its original position.

Examples:

  The following example establishes a path multiplier of 3 clock cycles for
  the setup check of the timing path defined by the -from/-to options. A path
  multiplier of N-1, or 2 in this example, is used to decrement the hold
  check on the same timing path:

    
    set_multicycle_path 3 -setup -from [get_pins data0_reg/C] \  
       -to [get_pins data1_reg/D]  
    set_multicycle_path 2 -hold -from [get_pins data0_reg/C] \  
       -to [get_pins data1_reg/D] 
    

  Note: For more information on the relationship between the setup and hold
  analysis refer to the Vivado Design Suite User Guide: Using Constraints
  (UG903).

See Also:

   *  report_timing
   *  report_timing_summary
   *  set_input_delay
   *  set_output_delay


@@@COMMAND: set_noc_frequency@@@
set_noc_frequency

Description: 
Set NOC clock frequency for the currently loaded part

Syntax: 
set_noc_frequency  [-quiet] [-verbose] <freq>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <freq>      NOC clock frequency

Categories: 
NOC


@@@COMMAND: set_noc_phase@@@
set_noc_phase

Description: 
Add/modify a phase to all traffic paths within the provided phase group.

Syntax: 
set_noc_phase  [-phase_group <arg>] [-phase <arg>] [-master_instance <arg>]
               [-slave_instance <arg>] [-read_bandwidth <arg>]
               [-write_bandwidth <arg>] [-mode <arg>] [-port <arg>] [-quiet]
               [-verbose]

Usage: 
  Name                Description
  -------------------------------
  [-phase_group]      Name of the phase group which will include or already 
                      contain the provided phase
                      Default: Group_Default
  [-phase]            Name of the phase to add or modify
                      Default: Phase_Default
  [-master_instance]  The master instance of the traffic path to add or 
                      modify the provided phase
  [-slave_instance]   The slave instance of the traffic path to add or modify
                      the provided phase
  [-read_bandwidth]   The read bandwidth of the phase to add or modify
                      Default: 0
  [-write_bandwidth]  The write bandwidth of the phase to add or modify
                      Default: 0
  [-mode]             Determines whether this is a read(READ)/write(WRITE) 
                      phase or both(ALL).
                      Default: ALL
  [-port]             Specifies the port of a slave instance the traffic path
                      connects to.
                      Default: PORT0
  [-quiet]            Ignore command errors
  [-verbose]          Suspend message limits during command execution

Categories: 
NOC


@@@COMMAND: set_operating_conditions@@@
set_operating_conditions

Description: 
Set operating conditions for power estimation

Syntax: 
set_operating_conditions  [-voltage <args>] [-grade <arg>] [-process <arg>]
                          [-junction_temp <arg>] [-ambient_temp <arg>]
                          [-thetaja <arg>] [-thetasa <arg>] [-airflow <arg>]
                          [-heatsink <arg>] [-thetajb <arg>] [-board <arg>]
                          [-board_temp <arg>] [-board_layers <arg>]
                          [-design_power_budget <arg>]
                          [-supply_current_budget <args>] [-quiet] [-verbose]

Usage: 
  Name                      Description
  -------------------------------------
  [-voltage]                List of voltage pairs, e.g., {name value}.  
                            Supported voltage supplies vary by family.
  [-grade]                  Temperature grade.  Supported values vary by 
                            family.
                            Default: commercial
  [-process]                Process data: typical or maximum
                            Default: typical
  [-junction_temp]          Junction Temperature (C): auto|degC
                            Default: auto
  [-ambient_temp]           Ambient Temperature (C): default|degC
                            Default: default
  [-thetaja]                ThetaJA (C/W): auto|degC/W
                            Default: auto
  [-thetasa]                ThetaSA (C/W): auto|degC/W
                            Default: auto
  [-airflow]                Airflow (LFM): 0 to 750
                            Default: varies by family
  [-heatsink]               Dimensions of heatsink: none, low, medium, high, 
                            custom
                            Default: medium
  [-thetajb]                ThetaJB (C/W): auto|degC/W
                            Default: auto
  [-board]                  Board type: jedec, small, medium, large, custom
                            Default: medium
  [-board_temp]             Board Temperature degC
  [-board_layers]           Board layers: 4to7, 8to11, 12to15, 16+
                            Default: 8to11
  [-design_power_budget]    Design Power Budget (W)
                            Default: Unspecified
  [-supply_current_budget]  Sets list of supply current budget 'name value' 
                            pairs.  Supported voltage supplies vary by 
                            family.
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution

Categories: 
SDC, XDC, Power

Description:

  Sets the real-world operating conditions that are used when performing
  analysis of the design. The environmental operating conditions of the
  device are used for power analysis when running the report_power command.

  Note: This command operates silently and does not return direct feedback of
  its operation.

  Operating conditions can be restored to their default values with the use
  of the reset_operating_conditions command.

  Current operating conditions can be reported with the
  report_operating_conditions command.

Arguments:

  -voltage <arg> - (Optional) List of voltage supply names and their values
  specified in pairs. Supported voltage supply names and their values vary by
  family. For example if a family supports a voltage supply named Vccint, you
  can set the supply voltage to 0.8 with the following argument and value:
  -voltage {Vccint 0.8}

  Note: If you specify a voltage that is outside the valid operating range
  for the target device, the set_operating_conditions command can change the
  device speedgrade to match the specified voltage. This can have an affect
  on timing analysis. For UltraScale devices, when changing the Vccint
  voltage, the Vivado tool will automatically change the device to or from a
  low-voltage device as indicated by the voltage level specified.

  -grade <arg> - (Optional) The temperature grade of the target device.
  Supported values vary by family. The default value is "commercial".

  -process <arg> - (Optional) The manufacturing process characteristics to
  assume. Valid values are "typical" or "maximum". The default value is
  "typical".

  -junction_temp <arg> - (Optional) The device junction temperature used for
  modeling. Valid values are "auto" or an actual temperature specified in
  degrees C. The default value is "auto".

  -ambient_temp <arg> - (Optional) The environment ambient temperature in
  degrees C. The default setting is "default".

  -thetaja <arg> - (Optional) The Theta-JA thermal resistance used for
  modeling in degrees C/W. The default setting is "auto".

  -thetasa <arg> - (Optional) The Theta-SA thermal resistance used during
  modeling in degrees C/W. The default setting is "auto".

  -airflow <[0:750]> - (Optional) Linear Feet Per Minute (LFM) airflow to be
  used for modeling. The default setting varies by device family.

  -heatsink <arg> - (Optional) The heatsink profile to be used during
  modeling. Valid values are: none, low, medium, high, custom. The default
  setting is "medium".

  -thetajb <arg> - (Optional) The Theta-JB thermal resistance used for
  modeling in degrees C/W. The default setting is "auto".

  -board <arg> - (Optional) The board size to be used for modeling. The valid
  values are: jedec, small, medium, large, custom. The default value is
  "medium".

  -board_temp <arg> - (Optional) The board temperature in degrees Centigrade
  to be used for modeling.

  -board_layers <arg> - (Optional) The number of board layers to be used for
  modeling. Valid values are: "4to7" for boards with 4 to 7 layers, "8to11"
  for boards with 8 to 11 layers, "12to15" for boards with 12 to 15 layers,
  and "16+" for boards with 16 or more layers. The default setting is
  "12to15".

  -design_power_budget <arg> - (Optional) The design power budget in Watts.
  This value is used by the report_power command to report the difference
  between the calculated on-chip power and the design power budget. When
  unspecified, the difference is not reported. The default is "unspecified".

  -supply_current_budget <arg> - (Optional) List of voltage supply names and
  their current budget values specified in pairs. Supported voltage supply
  names vary by family. For example if a family supports a voltage supply
  named Vccint, you can set the supply current budget to 10 A with the
  following argument and value: -supply_current_budget {Vccint 10}

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example specifies an industrial grade device with an ambient
  operating temperature of 75 degrees C:

    set_operating_conditions -grade industrial -ambient_temp 75 
    

  The following example sets the supply voltage Vccaux to a value of 1.9:

    set_operating_conditions  -voltage {Vccaux 1.89} 
    

  The following example sets the manufacturing process corner to maximum:

    set_operating_conditions -process maximum 
    

  The following example sets the manufacturing process corner to maximum and
  the voltage supply Vccint to 0.875:

    set_operating_conditions -process maximum -voltage {Vccint 0.875} 
    

See Also:

   *  report_operating_conditions
   *  report_power
   *  reset_operating_conditions


@@@COMMAND: set_output_delay@@@
set_output_delay

Description: 
Set output delay on ports

Syntax: 
set_output_delay  [-clock <args>] [-reference_pin <args>] [-clock_fall] [-rise]
                  [-fall] [-max] [-min] [-add_delay]
                  [-network_latency_included] [-source_latency_included]
                  [-quiet] [-verbose] <delay> <objects>

Usage: 
  Name                         Description
  ----------------------------------------
  [-clock]                     Relative clock
  [-reference_pin]             Relative pin or port
  [-clock_fall]                Delay is relative to falling edge of clock
  [-rise]                      Specifies rising delay
  [-fall]                      Specifies falling delay
  [-max]                       Specifies maximum delay
  [-min]                       Specifies minimum delay
  [-add_delay]                 Don't remove existing input delay
  [-network_latency_included]  Specifies network latency of clock already 
                               included
  [-source_latency_included]   Specifies source latency of clock already 
                               included
  [-quiet]                     Ignore command errors
  [-verbose]                   Suspend message limits during command 
                               execution
  <delay>                      Delay value
  <objects>                    List of ports

Categories: 
SDC, XDC

Description:

  Note: The XDC > Timing Constraints language templates and the Timing
  Constraints Wizard in the Vivado IDE offer timing diagrams and additional
  details around defining specific timing constraints. You can refer to these
  sources for additional information.

  Specifies the external system-level path delay on a primary output port
  relative to a clock edge at the interface of the design. The output delay
  value is specified in nanoseconds (ns), and can be positive or negative,
  depending on the clock and data relative phase outside the FPGA device.

  To accurately model the system-level timing of your AMD FPGA design, you
  must assign timing delays for objects external to the FPGA onto the primary
  input or output ports in your design. These delays are defined by the
  set_input_delay and set_output_delay commands.

  Note: If the output port also has a set_max_delay constraint assigned, the
  specified output delay value is considered part of the max_delay
  computation. That is, the output delay consumes a portion of the max delay
  on the timing path that includes the output port.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -clock <arg> - (Optional) Indicates that the delay is relative to the
  rising edge of the specified clock.

  -reference_pin <arg> - (Optional) Specifies that the delay is relative to
  the specified pin rather than a clock.

  -clock_fall - (Optional) Specifies that the delay is relative to a falling
  edge of the clock rather than rising edge.

  -rise - (Optional) Specifies that the delay is for a rising edge.

  -fall - (Optional) Specifies that the delay is for a falling edge

  -max - (Optional) Specifies that the delay specified should be treated as a
  maximum threshold.

  -min - (Optional) Specifies that the delay specified should be treated as a
  minimum threshold.

  -add_delay - (Optional) Add the specified delay constraint to the port, to
  coexist with any other set_output_delay constraints already defined on the
  port. The default behavior is to replace the existing delays.

  -network_latency_included - (Optional) Indicates that the clock network
  latency of the reference clock is included in the delay value. The Vivado
  timing engine considers the clock edge reaching the capture flop after the
  clock latencies unless the specified input or output delay value includes
  the source latency or network latency.

  -source_latency_included - (Optional) Specifies that the source latency of
  the reference clock is included in the specified delay value.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <delay> - (Optional) The delay specified in nanoseconds (ns) to apply to
  the listed ports. Valid values are floating point numbers, with a default
  value of 0.

  <objects> - (Required) A list of ports to which the delay applies.

Examples:

  The following example sets an output delay on ports relative to the
  specified clock:

    set_output_delay 5.0 -clock [get_clocks cpuClk] [get_ports]  
    

  The next example is the same as the prior example except that network
  latency is now included:

    set_output_delay 5.0 -clock [get_clocks cpuClk] \  
       -network_latency_included [get_ports]  
    

  This example creates a clock named clk_ddr, and defines output delay
  constraints from data launched by both rising and falling edges of the
  clock outside the device to the data output of the internal flip-flop that
  is sensitive to both rising and falling clock edges:

    create_clock -name clk_ddr -period 6 [get_ports DDR_CLK_IN]  
    set_output_delay -clock clk_ddr -max 2.1 [get_ports DDR_OUT]  
    set_output_delay -clock clk_ddr -max 1.9 [get_ports DDR_OUT] -clock_fall -add_delay  
    set_output_delay -clock clk_ddr -min 0.9 [get_ports DDR_OUT]  
    set_output_delay -clock clk_ddr -min 1.1 [get_ports DDR_OUT] -clock_fall -add_delay 
    

  Note: The use of the -add_delay option allows the new min and max delay
  constraints to exist alongside the first delays on the same port.

See Also:

   *  all_clocks
   *  create_clock
   *  get_ports
   *  set_max_delay
   *  set_input_delay


@@@COMMAND: set_package_pin_val@@@
set_package_pin_val

Description: 
Set user columns on one or more package pins

Syntax: 
set_package_pin_val  [-quiet] [-verbose] <column> <value> <package_pins>...

Usage: 
  Name            Description
  ---------------------------
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <column>        User column name
  <value>         Value to set
  <package_pins>  Package pin names

Categories: 
XDC, PinPlanning

Description:

  Create user-defined package pin attributes and assign values to specific
  pins on the package.

  User-defined pin attributes can be defined in a CSV file and imported into
  an I/O Pin Planning project using read_csv, or can be edited in the project
  using this command.

  Note: Use the set_property command to set tool-defined properties of a
  package pin.

Arguments:

  <column> - (Required) Specify the user-defined column name. The column name
  is case-sensitive. If the column does not already exist, a new attribute is
  created for package pins. If the user-defined column name already exists,
  the specified value is assigned to the specified pins.

  Note: Column refers to the display of the attribute in the Package Pins
  view in the tool GUI. The result of the command is an attribute on the
  specified package pins that can be exported with write_csv for instance.

  <value> - (Required) Specify the value to assign to the specified column.
  You can repeat the set_package_pin_val command to assign different values
  to different pins in the same column.

  <package_pins> - (Required) Specify the package pins to assign the value
  to. You can use the get_package_pins command to specify the package pins to
  set.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example creates a new user-defined column in the Package Pins
  view, and assigns the value true to the specified pin:

    
    set_package_pin_val -column track1 -value true -package_pins AK27 
    

  The following example creates a user-defined column called Test, then
  assigns the value RED to all "AK" package pins, then changes the value to
  GREEN for the three specified pins:

    set_package_pin_val -column Test -value RED \  
       -package_pins [get_package_pins AK*]  
    set_package_pin_val -column Test -value GREEN \  
       -package_pins {AK1 AK2 AK3} 
    

See Also:

   *  get_package_pins
   *  set_property
   *  write_csv


@@@COMMAND: set_param@@@
set_param

Description: 
Set a parameter value

Syntax: 
set_param  [-quiet] [-verbose] <name> <value>

Returns: 
newly set parameter value

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Parameter name
  <value>     Parameter value

Categories: 
PropertyAndParameter

Description:

  Sets the value of a user-definable configuration parameter. These
  parameters configure and control various behaviors of the tool. Refer to
  report_param for a description of currently defined parameters.

  As an example, a specific param that can be defined is the
  general.maxThreads parameter for the Vivado Design Suite. On multiprocessor
  systems, the Vivado Design Suite use multi-threading to speed up certain
  processes, including DRC reporting, static timing analysis, placement, and
  routing. A default limit applies to all tasks and is based on the operating
  system. For Windows systems, the default is 2; for Linux systems the
  default is 8. The limit can be changed as follows:

    set_param general.maxThreads <value>  
    

  Where <value> is an integer from 1 to 8, inclusive.

  The maximum number of simultaneous threads that can be used also varies by
  the task being run. You can change the maxThreads parameter prior to
  running these processes. The maximum number of threads for specific Tcl
  commands are:

   *  phys_opt_design: 8

   *  place_design: 8

   *  report_drc: 8

   *  report_timing and report_timing_summary: 8

   *  route_design: 8

   *  synth_design: 4

  You can use the reset_param command to restore any parameter that has been
  modified back to its default setting.

  Note: Setting a specified parameter value to -1 will disable the feature.

Arguments:

  <name> - (Required) The name of the parameter to set the value of. You can
  only set the value of one parameter at a time.

  <value> - (Required) The value to set the specified parameter to.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example sets the parameter defining how many threads to run
  for multi-threaded processes, including Placement, Routing, and Timing
  Analysis:

    set_param general.maxThreads 4 
    

  Note: The Vivado tool supports between 1 to 8 threads. Use get_param to
  determine the current setting.

  The following example sets a new default value for message limit:

    set_param messaging.defaultLimit 1000 
    

See Also:

   *  get_param
   *  list_param
   *  report_param
   *  reset_param


@@@COMMAND: set_part@@@
set_part

Description: 
Sets the part on the current project. If no project is open, then a diskless project is created.

Syntax: 
set_part  [-quiet] [-verbose] <part>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <part>      Set current project's part to this part.

Categories: 
Project, PropertyAndParameter

Description:

  Change the part used by the current project for subsequent elaboration,
  synthesis, implementation, and analysis.

  Note: The part is changed for the current project only, and not for the
  in-memory design. You can change the speed grade of the device in the
  in-memory design for timing analysis using the set_speed_grade command. You
  can change the part used when opening an existing design checkpoint using
  the -part option of the open_checkpoint or read_checkpoint commands.

  This command is provided to let you change the part for the in-memory
  project of non-project based designs, and does not support project-based
  designs. For a project-based design set the PART property on the project as
  follows:

    set_property PART xc7vx485tffg1158-2 [current_project] 
    

  Use the get_parts command to get a list of the available parts.

  The set_part command creates an in-memory project for a non-project based
  design, or assigns the part to the existing in-memory project.

  Note: For a discussion of Project Mode and Non-Project Mode refer to the
  Vivado Design Suite User Guide: Design Flows Overview (UG892).

  This command returns the part that the in-memory project is set to use, or
  returns an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <part> - (Required) Specifies the part to change to, or use in the current
  project or in-memory design.

Example:

  The following example changes the part of the current in-memory project:

    set_part xc7vx485tffg1158-2 
    

See Also:

   *  create_project
   *  get_parts
   *  open_checkpoint
   *  read_checkpoint
   *  set_property
   *  set_speed_grade


@@@COMMAND: set_power_opt@@@
set_power_opt

Description: 
Set constraints for power optimization

Syntax: 
set_power_opt  [-include_cells <args>] [-exclude_cells <args>] [-clocks <args>]
               [-cell_types <args>] [-quiet] [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-include_cells]  Include only these instances for clock gating.
                    Default: all
  [-exclude_cells]  Exclude these instances from clock gating.
                    Default: none
  [-clocks]         Clock gate instances clocked by these clocks only.
                    Default: all clocks
  [-cell_types]     Clock gate these cell types only. Specify either 
                    [all|none], or one or more of [bram|reg|srl].
                    Default: all
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
Power, XDC

Description:

  Specify cell instances to include or exclude in power optimization. The
  specified cells are optimized using the power_opt_design command.

  Tip: Block RAM optimizations are performed by default with the opt_design
  command. Some or all block RAM cells can be excluded from the opt_design
  optimization using the set_power_opt command as well.

  The effect of multiple set_power_opt commands is cumulative, so that you
  can specify a broad class of cell types to optimize, include specific
  hierarchical cells, and then exclude cells within the included hierarchy to
  refine the power optimization.

  The power optimizations that have been performed can be reported using the
  report_power_opt command.

Arguments:

  -include_cells <args> - (Optional) Include only these instances for clock
  gating. Use this option to list specific cells or blocks to be optimized
  using power_opt_design. The default is to include all cells in power
  optimization.

  -exclude_cells <args> - (Optional) Exclude these instances from clock
  gating. The default is to not exclude cells from power optimization. The
  -exclude_cells option excludes from the currently included cells. By
  default all cells are included, however, if -include_cells has been
  specified, then -exclude_cells applies only to the currently included
  cells.

  -clocks <args> - (Optional) Perform power optimizations on instances
  clocked by the specified clocks only. The default is to include all clocks
  in the design.

  Note: It is possible to use both -clocks and -include_cells to produce a
  list of cells that are not clocked by the specified clocks, resulting in no
  power optimization.

  -cell_types [ all | bram | reg | srl | none ] - (Optional) Perform power
  optimization on the specified cell types only. The default is to perform
  power optimization on all types of cells. You can use all or none to reset,
  or clear, any prior set_power_opt commands. You can also specify one or
  more of bram, srl, or reg type cells.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example sets power optimization for block RAM cells only, and
  then runs power optimization:

    set_power_opt -cell_types bram
    power_opt_design

  The following example sets power optimization for block RAM and REG type
  cells, then adds SRLs, and runs power optimization. Then all cells are
  cleared, and only SRLs are included, and power optimization is run again:

    set_power_opt -cell_types { bram reg}
    set_power_opt -cell_types { srl}
    power_opt_design
    set_power_opt -cell_types { none}
    set_power_opt -cell_types { srl}
    power_opt_design

  The following example sets power optimization for block RAM cells only,
  excludes the cpuEngine block from optimization, but then includes the
  cpuEngine/cpu_dbg_dat_i block, then performs power optimization:

    set_power_opt -cell_types bram
    set_power_opt -exclude_cells cpuEngine
    set_power_opt -include_cells cpuEngine/cpu_dbg_dat_i
    power_opt_design

See Also:

   *  opt_design
   *  power_opt_design
   *  report_power_opt


@@@COMMAND: set_propagated_clock@@@
set_propagated_clock

Description: 
Specify propagated clock latency

Syntax: 
set_propagated_clock  [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   List of clocks, ports, or pins

Categories: 
SDC, XDC

Description:

  Propagates clock latency throughout a clock network, resulting in more
  accurate skew and timing results throughout the clock network.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) A list of the clock objects to force propagation on.

Examples:

  This example specifies that the primary system clock from the top-level
  should be propagated:

    set_propagated_clock [get_clocks top/clk] 
    

  This example specifies that all clocks from "sublevel1" should be propagated:

    set_propagated_clock [get_clocks sublevel1/*] 
    

See Also:

   *  get_clocks
   *  create_clock


@@@COMMAND: set_property@@@
set_property

Description: 
Set property on object(s)

Syntax: 
set_property  [-dict <args>] [-quiet] [-verbose] <name> <value> <objects>...

Usage: 
  Name        Description
  -----------------------
  [-dict]     list of name/value pairs of properties to set
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <name>      Name of property to set. Not valid with -dict option
  <value>     Value of property to set. Not valid with -dict option
  <objects>   Objects to set properties on

Categories: 
Object, PropertyAndParameter, XDC

Description:

  Assigns the defined property <name> and <value> to the specified <objects>.

  This command can be used to define any property on an object in the design.
  Each object has a set of predefined properties that have expected values,
  or a range of values. The set_property command can be used to define the
  values for these properties. To determine the defined set of properties on
  an object, use report_property, list_property, or list_property_values.

  You can also define custom properties for an object, by specifying a unique
  <name> and <value> pair for the object. If an object has custom properties,
  these will also be reported by the report_property and list_property
  commands.

  This command returns nothing if successful, and an error if it fails.

  Tip: You can use the get_property command to validate any properties that
  have been set on an object.

Arguments:

  -dict - (Optional) Use this option to specify a dictionary of multiple
  properties (<name> <value> pairs) on an object with a single set_property
  command. Multiple <name> <value> pairs must be enclosed in quotes, "", or
  braces, {}.

    -dict "name1 value1 name2 value2 ... nameN valueN"

  Important: When writing the constraints for a design using either
  save_constraints, save_constraints_as, or write_xdc, the properties
  specified using the -dict option will be written as separate set_property
  commands for each name/value pair. If you don`t want the XDC constraints to
  be expanded in this manner, you can either use the Tcl script driven
  approach in a non-project design, or use a Tcl script as a design source in
  your constraint set. Refer to Vivado Design Suite User Guide: Design Flows
  Overview (UG892) for more information on non-project based design, or refer
  to Vivado Design Suite User Guide: Using Constraints (UG903) for more
  information on using Tcl scripts in constraint sets.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <name> - (Required) Specifies the name of the property to be assigned to
  the object or objects. The <name> argument is case sensitive and should be
  specified appropriately.

  <value> - (Required) Specifies the value to assign to the <name> on the
  specified object or objects. The value is checked against the property type
  to ensure that the value is valid. If the value is not appropriate for the
  property an error will be returned.

  Important: In some cases, the value of a property includes special
  characters, such as the dash character (`-`), which can cause the tool to
  interpret the value as a new argument to the command. In this case, you
  must use the explicit arguments (-name, -value, -objects) instead of the
  implied positional arguments (name, value, objects) as described here. This
  is shown in the Examples section below.

  <objects> - (Required) One or more objects to assign the property to.

Examples:

  Create a user-defined boolean property, TRUTH, for cell objects, and set
  the property on a cell:

    create_property -type bool truth cell
    set_property truth false [lindex [get_cells] 1]

  Use the -dict option to specify multiple properties at one time on the
  current design:

    set_property -dict "POST_CRC enable POST_CRC_ACTION correct_and_continue" \
    [current_design]

  The following example sets the TOP property of the current fileset to
  define the top module of the project:

    set_property top fftTop [current_fileset]
    set_property top_file {C:/Data/sources/fftTop.v} [current_fileset]

  Note: Defining the top module requires the TOP property to be set to the
  desired hierarchical block in the source fileset of the current project. In
  the preceding example TOP is the property name, fftTop is the value, and
  current_fileset is the object. In addition, the TOP_FILE property should be
  defined to point to the data source for the top module.

  This example shows how to set a property value that includes the dash
  character, `-`. The dash can cause the tool to interpret the value as a new
  command argument, rather than part of the value being specified, and will
  cause an error as shown. In this case, you must use the explicit form of
  the positional arguments in the set_property command:

    set_property {XELAB.MORE_OPTIONS} {-pulse_e_style ondetect} \
       [get_filesets sim_1]
    ERROR: [Common 17-170] Unknown option `-pulse_e_style ondetect`,
     please type `set_property -help` for usage info.
    set_property -name {XELAB.MORE_OPTIONS} -value {-pulse_e_style ondetect}\
       -objects [get_filesets sim_1]

  The following example sets the internal VREF property value for the
  specified IO Bank:

    set_property internal_vref {0.75} [get_iobanks 0]

  The following example defines a DCI Cascade by setting the DCI_CASCADE
  property for the specified IO Bank:

    set_property DCI_CASCADE {14} [get_iobanks 0 ]

  The following example configures the synth_1 run, setting options for AMD
  Vivado Synthesis 2013, and then launches the synthesis run:

    set_property flow {Vivado Synthesis 2016} \
       [get_runs synth_1]
    set_property STEPS.SYNTH_DESIGN.ARGS.GATED_CLOCK_CONVERSION on \
       [get_runs synth_1]
    set_property STEPS.SYNTH_DESIGN.ARGS.FSM_EXTRACTION one_hot \
       [get_runs synth_1]
    launch_runs synth_1

  This example is the same as the prior example, except that it uses the
  -dict option to set all the properties on the synthesis run in a single
  set_property command:

    set_property -dict [ list flow {Vivado Synthesis 2016} \
       STEPS.SYNTH_DESIGN.ARGS.GATED_CLOCK_CONVERSION on \
       STEPS.SYNTH_DESIGN.ARGS.FSM_EXTRACTION \
       one_hot ] [get_runs synth_1]
    launch_runs synth_1

See Also:

   *  current_fileset
   *  create_property
   *  create_run
   *  get_cells
   *  get_property
   *  get_runs
   *  launch_runs
   *  list_property
   *  list_property_value
   *  report_property
   *  reset_property


@@@COMMAND: set_speed_grade@@@
set_speed_grade

Description: 
Set Timing Speed Grade and Temperature Grade

Syntax: 
set_speed_grade  [-temperature <arg>] [-quiet] [-verbose] [<value>]

Returns: 
string result

Usage: 
  Name            Description
  ---------------------------
  [-temperature]  Temperature grade used for timing analysis (Not available 
                  for 7 Series and earlier)
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<value>]       Speed grade used for timing analysis

Categories: 
Project

Description:

  Note: After set_speed_grade has been used on a design, it can be used for
  timing analysis, but it will no longer go through implementation. If you
  want to run implementation on the design, you should save the design
  checkpoint and use read_checkpoint -part to implement the design with the
  new speed grade.

  Sets the speed grade used for timing analysis for the target device in the
  current design.

  This command is used to change the speed grade of the target device for
  timing analysis only, and does not affect other aspects of the design. It
  must be run on an opened synthesized or implemented design.

  Use the set_speed_grade command prior to the report_timing_summary or
  report_timing command or other timing commands to change the speed grade
  for analysis. If the timing is valid, then you can use the set_property or
  set_part command to change the target part for the project to re-synthesize
  and implement the design.

  Note: For UltraScale devices, you can specify either the temperature or the
  value to define the speed grade for the part. For 7 series devices, you can
  only specify the value.

  This command returns a transcript of its process, and the speed grade set,
  or returns an error if it fails.

Arguments:

  -temperature - (Optional) Specify the temperature grade for UltraScale
  devices, used for timing analysis.

  Note: This option is not available for 7 series devices, or earlier.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <value> - (Optional) The speed grade for the target device. Typical values
  are -1, -1L, -2, or -3. Specifying an incorrect value (e.g. -999) will
  cause the command to return an error message with a list of valid values
  for the current part.

Examples:

  The following example sets the speed grade for the device in the current
  design to -1:

    
    set_speed_grade -1 
    

See Also:

   *  report_drc
   *  report_timing
   *  report_timing_summary
   *  set_part
   *  set_property


@@@COMMAND: set_switching_activity@@@
set_switching_activity

Description: 
Set switching activity on specified objects or default types

Syntax: 
set_switching_activity  [-toggle_rate <arg>] [-default_toggle_rate <arg>]
                        [-type <args>] [-all] [-static_probability <arg>]
                        [-default_static_probability <arg>]
                        [-signal_rate <arg>] [-hier] [-deassert_resets]
                        [-quiet] [-verbose] [<objects>...]

Usage: 
  Name                           Description
  ------------------------------------------
  [-toggle_rate]                 Toggle rate (%) is the rate at which the 
                                 output of synchronous logic element switches
                                 compared to a given clock input.  It is 
                                 modeled as a percentage between 0 - 200%.  A
                                 toggle rate of 100% means that on average 
                                 the output toggles once during every clock 
                                 cycle, changing on either the rising or 
                                 falling clock edges, and making the 
                                 effective output signal frequency half of 
                                 the clock frequency.
                                 Default: 0.0
  [-default_toggle_rate]         The default toggle rate to be used in power 
                                 analysis on the primary inputs of the 
                                 design.  The default toggle rate is set on 
                                 those primary input nets whose switching 
                                 activity is not specified by the user, 
                                 simulation data or constraints of the 
                                 design.  Valid values are:  0 <= value < 
                                 200.  The default value is 12.5.
                                 Default: 12.5
  [-type]                        Specify nodes in a specific category.  List 
                                 of valid type values: io_output, 
                                 io_bidir_enable, register, lut_ram, lut, 
                                 dsp, bram_enable, bram_wr_enable, gt_txdata,
                                 gt_rxdata.
  [-all]                         Used together with -type, set switching 
                                 activity on -type nets within an instance
  [-static_probability]          Static probability value: 0 <= Value <= 1
                                 Default: 0.5
  [-default_static_probability]  The default static probability to be used in
                                 power analysis on the design.  The default 
                                 static probability is set on those primary 
                                 inputs whose switching activity is not 
                                 specified by the user, simulation data or 
                                 constraints of the design.  Valid values 
                                 are:  0 <= Value <= 1.  The default value is
                                 0.5.
                                 Default: 0.5
  [-signal_rate]                 The number of times an element changed state
                                 (high-to-low and low-to-high) per second.  
                                 Xilinx tools express this as millions of 
                                 transitions per second (Mtr/s).
                                 Default: 0.0
  [-hier]                        Hierarchically sets the switching activity 
                                 on a hierarchical instance provided via 
                                 <objects> option.  This option should be 
                                 used only with <objects> option
  [-deassert_resets]             A switch to elegantly auto deassert all 
                                 set,reset,preset and clear signals that do 
                                 not have conflicted polarities
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution
  [<objects>]                    Objects to set switching activity on

Categories: 
XDC, Power

Description:

  Sets the signal rate and the switching probability to be used when
  performing power estimation on the current synthesized or implemented
  design. These include simple signal rate and simple static probability on
  nets, ports, and pins; and state dependent static probabilities on cells.

  Note: This command operates silently and does not return direct feedback of
  its operation.

  The switching activity of a design affects both the static and dynamic
  power consumption. The static power is often dependent on logic state
  transitions, and the dynamic power is directly proportional to the toggle
  rate.

  The set_switching_activity command can be used to specify default activity
  rates for the whole design, or to define the activity of one or more
  signals in the design or on a specified module.

  The current switching activity attributes can be found by using the
  report_switching_activity command. The values can be set to their default
  values by using the reset_switching_activity command.

  Note: The reset_switching_activity is used to reset switching activity for
  specified objects. Use the set_switching_activity -default_toggle_rate or
  -default_static_probability to change or reset these values.

Arguments:

  -toggle_rate <value> - (Optional) Specify the toggle rate (%) as the
  switching rate of the output of synchronous logic elements compared to a
  given clock input. The toggle rate is specified as a percentage between 0 -
  100%. For clock and DDR signals only, the toggle rate can be specified up
  to 200%. A toggle rate of 100% means that on average the output toggles
  once during every clock cycle, changing on either the rising or falling
  clock edges, and making the effective output signal frequency half of the
  clock frequency. The default <value> is 12.5% of the clock frequency, as
  defined by the -default_toggle_rate option.

  Note: This option must be specified with -static_probability.

  -default_toggle_rate <rate> - (Optional) The default toggle rate to be used
  in power analysis on the primary inputs of the current design. The default
  toggle rate is set on the primary input nets whose switching activity is
  not specified by the user, simulation data, or constraints of the design.
  On asynchronous inputs the toggle rate is set with respect to the highest
  clock in the design. Valid values are: 0 <= value < 200. The default value
  is 12.5.

  Note: This option cannot be specified with <objects> as it specifies the
  default toggle rate for the entire design.

  -type <arg> - (Optional) The type of logic entity that the specified
  set_switching_activity command can be applied to. By default, the command
  is applied to the top-level of the current design, or to the specified
  <objects>. The -type option applies the command settings to the specified
  type of logic objects in the top-level of the current design. The -all
  option or -hier option can be used to modify the scope of objects the
  command applies to. Valid logic types include:

   *  io_output - Primary outputs.

   *  io_bidir_enable - Enable pin of Bidir ports.

   *  register - All register outputs in the design/hierarchy specified.

   *  lut - All LUT outputs in the design/hierarchy specified.

   *  lut_ram - All distributed ram outputs in the design/hierarchy specified.

   *  dsp - All DSP outputs in the design/hierarchy specified.

   *  bram_enable - Enable pins (ENARDEN/ENBWREN) of BRAMs.

   *  bram_wr_enable - Write enables of BRAMs (WEA/WEBWE).

   *  gt_txdata - Output TX data pins of all GTs.

   *  gt_rxdata - Output RX data pins of all GTs.

  Note: The -type option is only valid for use when setting the -toggle_rate
  or the -signal_rate, and other settings are not supported.

  -all - (Optional) Must be used with -type to set the switching activity on
  all instances in the design of the specified type of logic objects. As a
  default the set_switching_activity command applies to the top-level of the
  design or current_instance, or to the specified type of objects in that
  level.

  -static_probability <value> - (Optional) The static switching probability
  for the specified <objects> to be used in power analysis. Valid values are
  0 <= <value> <= 1. The default value is 0.5.

  -default_static_probability <value> - (Optional) The default static
  probability to be used in power analysis on the current design. The default
  static probability is set on primary inputs whose switching activity is not
  specified by the user, simulation data, or constraints of the design. Valid
  values are 0 <= value <= 1. The default value is 0.5.

  Note: This option cannot be specified with <objects> as it defines the
  default for the entire design. Use -static_probability to define the
  <value> for specific objects.

  -signal_rate <value> - (Optional) The signal frequency to be used for
  analysis, expressed as millions of transitions per second (Mtr/s).
  Specifies the number of times an element changes state per second,
  including transitions from low-to-high and from high-to-low. The default
  value is 0.

  Note: Must be specified with -static_probability.

  -hier - (Optional) Apply the switching activity hierarchically to signals
  in the specified hierarchical <objects>. Without -hier, the switching
  activity is applied to the specified <objects>, or -type of objects at the
  current level of the hierarchy.

  -deassert_resets - (Optional) Directs the Vivado tool to automatically
  de-assert all reset-type control signals (Set, Preset, Reset, Clear), by
  setting the signal static probability to 0. The tool will only de-assert
  control signals with non-conflicting polarities. However, if a net is
  connected to an active-Low and an active-High Reset pin for instance, then
  it will not de-assert this signal; or if a net is connected to an
  active-High Reset, and an active-High Set, or Enable pin, then it will not
  de-assert this signal.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) A list of port, pin, and net objects to which the
  switching activity constraint should be applied; or a list of cells when
  specified with -type to define logic objects.

Examples:

  The following example specifies a signal rate and switching probability for
  all ports, then reports the switching attributes for those ports:

    set_switching_activity -signal_rate 55 -static_probability .33 [get_ports]  
    report_switching_activity [get_ports] 
    

  The following example specifies the default switching probability for the
  current design:

    set_switching_activity -default_static_probability .75 
    

  This example sets the specified toggle rate and static probability on all
  registers in the hierarchy of "CPU/MEM":

    
    set_switching_activity -type register -toggle_rate 0.4 \  
       -static_probability 0.5 [get_cells CPU/MEM] 
    

  This example sets the specified toggle rate and static probability on all
  registers in the hierarchy of "CPU/" and underneath hierarchy:

    
    set_switching_activity -type register -toggle_rate 0.4   
       -static_probability 0.5 -hier [get_cells CPU] 
    

See Also:

   *  get_clocks
   *  get_nets
   *  get_ports
   *  power_opt_design
   *  report_power
   *  report_switching_activity
   *  reset_switching_activity


@@@COMMAND: set_system_jitter@@@
set_system_jitter

Description: 
Set system jitter

Syntax: 
set_system_jitter  [-quiet] [-verbose] <system_jitter>

Returns: 
system_jitter

Usage: 
  Name             Description
  ----------------------------
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <system_jitter>  System jitter: Value >= 0

Categories: 
XDC

Description:

  Sets the system jitter specified in nanoseconds (ns) for all clocks in the
  design, including primary and generated clocks. System jitter is used to
  account for excessive noise that affects all the clocks within the FPGA,
  like power supply noise and board noise. The default system jitter is
  technology-dependent and is predefined for each AMD FPGA family based on
  device characterization with several power supplies under all supported
  operating conditions.

  System Jitter is a component of the Total System Jitter (Tsj) used in the
  calculation of clock uncertainty for a path. It is due to the maximum noise
  (in time) that can be seen on the Vccint rail due to simultaneous switching
  of internal nodes, cross talk and other phenomenon that can impact timing
  on any path in the design.

  Important: The jitter calculated by AMD takes into consideration the
  uncertainty introduced by the clocking resources, the input jitter and the
  system jitter. Using the set_system_jitter command overrides the default
  system jitter value calculated by AMD, and is not recommended.

  The System Jitter and the Input Jitter are random jitters which typically
  follow a Gaussian distribution and are added in a quadratic manner to
  represent the worst case combination. When the Input Jitter is null, the
  Total System Jitter (Tsj) for an internal register-to-register path has the
  following equation:

   *  Tsj = sqrt(SourceClockSystemJitter^2 + DestinationClockSystemJitter^2)

  For example, when using the default value for system jitter of 50ps:

   *  Tsj = sqrt(0.050^2 + 0.050^2) = 0.071ns = 71ps

  The set_system_jitter command applies to all the clocks in the design. Use
  the set_input_jitter command to specify additional jitter for a specific
  primary clock.

  Tip: SYSTEM_JITTER is reported as a property of clocks, although it applies
  to all clocks in the design. INPUT_JITTER is also a property of primary
  clocks. These properties can be returned by the get_property or
  report_property commands.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <system_jitter> - (Required) Specifies the system jitter specified in
  nanoseconds (ns) to be applied system-wide. The jitter specified by the
  set_system_jitter command overwrites the default value.

Examples:

  This example defines the primary clock, sysClk, and specifies a system wide
  jitter of 0.1 ns:

    create_clock -period 10 -name sysClk [get_ports sysClk]
    set_system_jitter 0.1

  The following example defines a primary clock, sysClk, and a generated
  clock, sysClkDiv2, that is a divide by two version of the primary clock. A
  system jitter of 0.2 ns is specified that applies to all the clocks in the
  design. An additional input jitter of 0.09 ns is specified on only the
  primary clock:

    create_clock -period 10 -name sysClk [get_ports sysClk]
    create_generated_clock  -name sysClkDiv2 -source [get_ports sysClk] \
       -divide_by 2 [get_pins clkgen/sysClkDiv/Q]
    set_system_jitter 0.2
    set_input_jitter sysClk 0.09

  The follow example defines two primary clocks, sysClk and procClk. A system
  jitter of 0.2 ns is defined for all the clocks in the system. An additional
  input jitter of 0.05 ns is specified for the clock procClk:

    create_clock -period 10 -name sysClk [get_ports sysClk]
    create_clock -period 25 -name procClk [get_ports procClk]
    set_system_jitter 0.2
    set_input_jitter procClk 0.05

See Also:

   *  report_timing
   *  set_clock_uncertainty
   *  set_input_delay
   *  set_input_jitter


@@@COMMAND: set_units@@@
set_units

Description: 
Set units for checking

Syntax: 
set_units  [-capacitance <arg>] [-current <arg>] [-voltage <arg>]
           [-power <arg>] [-resistance <arg>] [-altitude <arg>] [-quiet]
           [-verbose]

Usage: 
  Name            Description
  ---------------------------
  [-capacitance]  Capacitance unit in farad. Valid values are from kF-fF.
                  Default: pF
  [-current]      Current unit in ampere. Valid values are from kA-fA.
                  Default: mA
  [-voltage]      Voltage unit in volt. Valid values are from kV-fV.
                  Default: V
  [-power]        Wattage unit in watts. Valid values are from kW-fW.
                  Default: mW
  [-resistance]   Resistance unit in ohm. Valid values are from kOhm-fOhm.
                  Default: ohm
  [-altitude]     Altitude in metric or standard units.  Valid values are 
                  meters and feet.
                  Default: meters
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
SDC, XDC

Description:

  This command specifies the default units to be assumed when the design is
  analyzed. Specifically, the -current, -voltage, -power, and -resistance
  options impact the values returned by the report_power command.

  The set_units command can be used multiple times to define and redefine
  units. If set_units includes a previously set unit value, the unit is
  redefined.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -capacitance <arg> - (Optional) Specify the unit of capacitance in Farads.
  Valid values range from kilofarads (kF) to femtofarads (fF). The default
  unit of capacitance is picofarads (pF).

  -current <arg> - (Optional) Specify the unit of current in amperes. Valid
  values range from kiloAmps (kA) to femtoAmps (fA). The default unit of
  amperes is milliAmps (mA).

  -voltage <arg> - (Optional) Specify the unit of voltage in Volts. Valid
  values range from kilovolts (kV) to femotovolts (fV). The default unit of
  voltage is Volts (V).

  -power <arg> - (Optional) Specify the unit of power in watts. Valid values
  range from kilowatts (kW) to femtowatts (fW). The default unit of power is
  milliwatts (mW).

  -resistance <arg> - (Optional) Specify the unit of resistance in ohms.
  Valid values range from kilo-ohm (kOhm) to femto-ohm (fOhm). The default
  unit of resistance is ohms (Ohm).

  -altitude [ meters | feet ] - (Optional) Specify the unit of altitude as
  meters or feet. The default unit is meters.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  Specify that voltage should be in millivolts and all values should use
  three digits

    set_units -voltage mV 
    

  The following example changes the default unit for current to Amperes:

    set_units -voltage kV -current A 
    

  Note: The second example of set_units redefines the Voltage units defined
  in the first example, as well as defining the units for current.

See Also:

   *  report_power
   *  set_operating_conditions


@@@COMMAND: setup_pr_configurations@@@
setup_pr_configurations

Description: 
Creates minimum PR Configurations and Child Impl runs automatically based on the combination of Partition Instances and RMs

Syntax: 
setup_pr_configurations  [-partitions <args>] [-use_netlist] [-force]
                         [-run <arg>] [-dfx_mode <arg>] [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  [-partitions]   List of partition instances and reconfig modules pairs
  [-use_netlist]  Use netlist for getting instances of partition_defs to 
                  creating PR Configurations
  [-force]        Using force deletes active parent impl run's PR 
                  Configuration and it's child runs and PR Configurations, 
                  and then creates new PR Configurations and runs
  [-run]          Parent impl run to which child impl runs and PR 
                  Configurations need to be created
  [-dfx_mode]     dynamic function exchange mode
                  Default: STANDARD
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Partition

Description:

  Automatically creates the minimum PR configurations and child
  implementation runs based on the combination of Partition Instances and
  Reconfigurable Modules.

  In the Dynamic Function eXchange (DFX)design flow, the PR configuration
  lets you specify a reconfigurable module (RM) to assign to a specific
  instance of a Partition Definition (partitionDef). This flow lets you
  create unique configurations of the design based on the combination of the
  core design and one or more RMs. The PR design flow requires the
  implementation of each PR configuration, resulting in partial bitstreams
  for the RMs, but complete bitstreams for each integrated configuration.
  Refer to the Vivado Design Suite User Guide: Dynamic Function eXchange
  (UG909) for more information.

  This command is designed to work automatically to create the needed PR
  configurations and implementation runs for those configurations.

  This command returns nothing if successful, or returns an error if the
  command fails.

Arguments:

  -partitions <arg> - (Optional) Specify a list of partition instances and
  reconfigurable module pairs to assign to the PR configuration. The argument
  must be specified as <partitionInstance>:<RM> pairs. This format lets you
  assign different RMs to multiple instances of a single partitionDef in the
  design.

  -force - (Optional) Delete current PR configurations and configuration
  runs, and create new PR configurations and runs.

  -run <arg> - (Optional) Specify the parent run to use for the
  implementation run of a PR configuration.

  -dfx_mode <arg> - (Optional) Specifies the Dynamic Function eXchange mode.
  It can either be STANDARD or ABSTRACT SHELL. STANDARD mode takes full
  design into consideration while implementing the reconfigurable modules but
  ABSTRACT SHELL mode uses the shell for a single reconfigurable partition to
  implement a single reconfigurable module. ABSTRACT SHELL mode saves
  implementation time compared to STANDARD mode. STANDARD mode is the
  default.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example automatically creates the necessary PR
  configurations, and PR config implementation runs, to support the
  partitionDefs and RMs in the project:

    setup_pr_configurations

See Also:

   *  create_partition_def
   *  create_pr_configuration
   *  create_reconfig_module
   *  current_pr_configuration
   *  delete_pr_configurations
   *  get_pr_configurations


@@@COMMAND: show_objects@@@
show_objects

Description: 
Show objects in Find Results view

Syntax: 
show_objects  [-name <arg>] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-name]     Tab title
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   Objects to show Find Results view

Categories: 
GUIControl

Description:

  Populates the specified objects into the Find Results window in the Vivado
  IDE.

  Note: This command is only useful when run in the Vivado IDE. When run in
  Tcl or Batch mode the command simply returns without error or comment.

Arguments:

  -name <arg> - The name of the report tab to open in the Find Results
  window. If no name is specified, the default name of find_1 is provided.

  Note: If the command is run multiple times, without the -name option, each
  occurrence of show_objects will overwrite the prior results.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - The design objects to show in the Find Results window. The
  objects must be specified as design objects, and not just specified by
  name. Objects can be returned by commands like get_cells, get_pins,
  get_nets, or by all_inputs, and all_rams.

Examples:

  The following example shows all DSP objects in the current design in the
  Find Results window.

    show_objects -name All_DSPs [all_dsps] 
    

  The following example shows all of the cells in the design hierarchy that
  are Clock or DSP PRIMITIVE_TYPEs:

    show_objects -name find_1 [get_cells -hierarchical \  
    -filter { PRIMITIVE_TYPE =~ CLK.*.* || PRIMITIVE_TYPE =~ MULT.dsp.* } ] 
    

See Also:

   *  all_inputs
   *  all_rams
   *  get_cells
   *  get_nets
   *  get_pins
   *  get_ports


@@@COMMAND: show_schematic@@@
show_schematic

Description: 
Show netlist items in schematic view

Syntax: 
show_schematic  [-add] [-remove] [-regenerate] [-pin_pairs] [-name <arg>]
                [-quiet] [-verbose] <objects>

Usage: 
  Name           Description
  --------------------------
  [-add]         Add to existing schematic view
  [-remove]      Remove from existing schematic view
  [-regenerate]  Regenerate layout of schematic view
  [-pin_pairs]   objects are treated as pair of connected pins. This can be 
                 useful to display paths
  [-name]        Schematic window title
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution
  <objects>      Netlist items to  show in schematic view

Categories: 
GUIControl

Description:

  Create a schematic view containing the specified design objects when the
  tool is invoked in GUI mode.

  The scope of the schematic that is displayed depends on the objects
  specified. A schematic created with cells, shows the specified cells and
  any connections between the cells. A schematic created with pins, shows the
  pin objects, or shows them connected as appropriate if -pin_pairs is
  specified. A schematic created with nets shows the nets, as well as the
  cells and ports connected to the nets.

  To display a schematic with multiple levels of hierarchy, use the
  current_instance command to set the top-level of the hierarchy, or the
  level of interest, and use the -hierarchical option when specifying design
  objects with a get_* command.

  Note: This command is only useful when run in the Vivado IDE. When run in
  Tcl or Batch mode the command simply returns without error or comment.

Arguments:

  -add - (Optional) Add the specified objects to the schematic window.

  -remove - (Optional) Remove the specified objects from the schematic window.

  -regenerate - (Optional) Regenerate the schematic window.

  -pin_pairs - (Optional) When specified with a pair of connected pin
  objects, the schematic shows the pins and the wire between the pins. When
  the -pin_pairs option is not specified, or is specified with disconnected
  pins, the wire is not shown.

  -name <arg> - (Optional) Defines a name for the schematic window opened in
  the GUI. Use this name to add to, remove from, or regenerate the schematic.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) The netlist objects to display in the schematic
  window.

Examples:

  The following example creates a schematic for the top-level of the design,
  displaying the nets as well as the ports and cells they connect to:

    show_schematic [get_nets] 
    

  The following example sets the level of hierarchy of interest, and creates
  a hierarchical schematic from the current level down:

    current_instance A  
    show_schematic [get_nets -hier] 
    

  The following example creates a schematic window showing the specified
  pins, and the wire connection between them:

    show_schematic -pin_pairs [get_pins {data0_i/O data_reg/D}] 
    

See Also:

   *  current_instance
   *  get_cells
   *  get_nets
   *  get_pins
   *  get_ports


@@@COMMAND: socket@@@
socket(n)             Tcl Built-In Commands             socket(n)



_________________________________________________________________

NAME
       socket - Open a TCP network connection

SYNOPSIS
       socket ?options? host port

       socket -server command ?options? port
_________________________________________________________________


DESCRIPTION
       This  command opens a network socket and returns a channel
       identifier that may be used in future invocations of  com-
       mands  like read, puts and flush.  At present only the TCP
       network  protocol  is  supported;   future  releases   may
       include support for additional protocols.  The socket com-
       mand may be used to open either the client or server  side
       of  a  connection, depending on whether the -server switch
       is specified.

       Note that the default encoding for all sockets is the sys-
       tem encoding, as returned by encoding system.  Most of the
       time, you will need to use fconfigure  to  alter  this  to
       something  else,  such  as  utf-8 (ideal for communicating
       with other Tcl processes) or iso8859-1  (useful  for  many
       network protocols, especially the older ones).

CLIENT SOCKETS
       If  the  -server  option is not specified, then the client
       side of a connection is opened and the command  returns  a
       channel  identifier  that can be used for both reading and
       writing.  Port and host specify  a  port  to  connect  to;
       there must be a server accepting connections on this port.
       Port is an integer port number  (or  service  name,  where
       supported and understood by the host operating system) and
       host is either a domain-style name such as www.tcl.tk or a
       numerical  IP address such as 127.0.0.1.  Use localhost to
       refer to the host on which the command is invoked.

       The following options may also be present before  host  to
       specify additional information about the connection:

       -myaddr addr
              Addr  gives  the  domain-style name or numerical IP
              address of the client-side network interface to use
              for  the  connection.  This option may be useful if
              the client machine has multiple network interfaces.
              If  the  option  is  omitted  then  the client-side
              interface will be chosen by the system software.

       -myport port
              Port specifies an integer port number  (or  service
              name,  where  supported  and understood by the host
              operating system) to use for the client's  side  of
              the  connection.   If  this  option is omitted, the
              client's port number will be chosen  at  random  by
              the system software.

       -async The  -async  option will cause the client socket to
              be connected asynchronously. This  means  that  the
              socket  will be created immediately but may not yet
              be connected to the server, when the call to socket
              returns. When a gets or flush is done on the socket
              before the connection attempt succeeds or fails, if
              the  socket is in blocking mode, the operation will
              wait until the connection is completed or fails. If
              the  socket  is  in  nonblocking mode and a gets or
              flush is done on the socket before  the  connection
              attempt  succeeds  or  fails, the operation returns
              immediately and fblocked on the socket  returns  1.
              Synchronous  client  sockets may be switched (after
              they have connected) to operating  in  asynchronous
              mode using:
                     fconfigure chan -blocking 0

              See the fconfigure command for more details.

SERVER SOCKETS
       If  the  -server  option  is specified then the new socket
       will be a server for the port given  by  port  (either  an
       integer  or a service name, where supported and understood
       by the host operating system; if port is zero, the operat-
       ing  system will allocate a free port to the server socket
       which may be discovered by using fconfigure  to  read  the
       -sockname  option).  Tcl will automatically accept connec-
       tions to the given port.  For  each  connection  Tcl  will
       create  a new channel that may be used to communicate with
       the client.  Tcl then invokes  command  with  three  addi-
       tional  arguments:  the  name  of  the  new  channel,  the
       address, in network  address  notation,  of  the  client's
       host, and the client's port number.

       The  following  additional  option  may  also be specified
       before host:

       -myaddr addr
              Addr gives the domain-style name  or  numerical  IP
              address of the server-side network interface to use
              for the connection.  This option may be  useful  if
              the server machine has multiple network interfaces.
              If the option is omitted then the server socket  is
              bound  to the special address INADDR_ANY so that it
              can accept connections from any interface.

       Server channels cannot be used for input or output;  their
       sole use is to accept new client connections. The channels
       created for each incoming client connection are opened for
       input  and  output.  Closing the server channel shuts down
       the server so that no new connections  will  be  accepted;
       however, existing connections will be unaffected.

       Server  sockets  depend on the Tcl event mechanism to find
       out when new connections are opened.  If  the  application
       does not enter the event loop, for example by invoking the
       vwait command or calling the C  procedure  Tcl_DoOneEvent,
       then no connections will be accepted.

       If  port  is  specified as zero, the operating system will
       allocate an unused port for use as a server  socket.   The
       port  number  actually allocated may be retrieved from the
       created server socket  using  the  fconfigure  command  to
       retrieve the -sockname option as described below.

CONFIGURATION OPTIONS
       The  fconfigure command can be used to query several read-
       only configuration options for socket channels:

       -error This option gets the current error  status  of  the
              given  socket.   This  is  useful  when you need to
              determine if an asynchronous connect operation suc-
              ceeded.   If  there was an error, the error message
              is returned.  If  there  was  no  error,  an  empty
              string is returned.

       -sockname
              This  option  returns a list of three elements, the
              address, the host name and the port number for  the
              socket.  If  the  host name cannot be computed, the
              second element is identical  to  the  address,  the
              first element of the list.

       -peername
              This option is not supported by server sockets. For
              client and accepted sockets, this option returns  a
              list  of three elements; these are the address, the
              host name and the port to which the peer socket  is
              connected or bound. If the host name cannot be com-
              puted, the second element of the list is  identical
              to the address, its first element.


EXAMPLES
       Here is a very simple time server:
              proc Server {channel clientaddr clientport} {
                 puts "Connection from $clientaddr registered"
                 puts $channel [clock format [clock seconds]]
                 close $channel
              }

              socket -server Server 9900
              vwait forever

       And  here  is  the  corresponding  client  to  talk to the
       server:
              set server localhost
              set sockChan [socket $server 9900]
              gets $sockChan line
              close $sockChan
              puts "The time on $server is $line"


SEE ALSO
       fconfigure(n), flush(n), open(n), read(n)


KEYWORDS
       bind, channel,  connection,  domain  name,  host,  network
       address, socket, tcp



Tcl                            8.0                      socket(n)


@@@COMMAND: source@@@
source

Description: 
Add tracing of commands

Syntax: 
source  [-encoding <arg>] [-notrace] [-quiet] [-verbose] <file>

Usage: 
  Name         Description
  ------------------------
  [-encoding]  specify the encoding of the data stored in filename
  [-notrace]   disable tracing of sourced commands
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <file>       script to source

Categories: 



@@@COMMAND: split@@@
split(n)              Tcl Built-In Commands              split(n)



_________________________________________________________________

NAME
       split - Split a string into a proper Tcl list

SYNOPSIS
       split string ?splitChars?
_________________________________________________________________


DESCRIPTION
       Returns a list created by splitting string at each charac-
       ter that is in the splitChars argument.  Each  element  of
       the result list will consist of the characters from string
       that  lie  between  instances   of   the   characters   in
       splitChars.   Empty  list  elements  will  be generated if
       string contains adjacent characters in splitChars,  or  if
       the  first  or  last character of string is in splitChars.
       If splitChars is an empty string then  each  character  of
       string  becomes  a  separate  element  of the result list.
       SplitChars defaults to the  standard  white-space  charac-
       ters.

EXAMPLES
       Divide up a USENET group name into its hierarchical compo-
       nents:
              split "comp.lang.tcl.announce" .
                    -> comp lang tcl announce

       See how the split command splits  on  every  character  in
       splitChars,  which  can  result in information loss if you
       are not careful:
              split "alpha beta gamma" "temp"
                    -> al {ha b} {} {a ga} {} a

       Extract the list words from a string that is not  a  well-
       formed list:
              split "Example with {unbalanced brace character"
                    -> Example with \{unbalanced brace character

       Split a string into its constituent characters
              split "Hello world" {}
                    -> H e l l o { } w o r l d

   PARSING RECORD-ORIENTED FILES
       Parse a Unix /etc/passwd file, which consists of one entry
       per line, with each line consisting of  a  colon-separated
       list of fields:
              ## Read the file
              set fid [open /etc/passwd]
              set content [read $fid]
              close $fid

              ## Split into records on newlines
              set records [split $content "\n"]

              ## Iterate over the records
              foreach rec $records {

                 ## Split into fields on colons
                 set fields [split $rec ":"]

                 ## Assign fields to variables and print some out...
                 lassign $fields \
                       userName password uid grp longName homeDir shell
                 puts "$longName uses [file tail $shell] for a login shell"
              }


SEE ALSO
       join(n), list(n), string(n)


KEYWORDS
       list, split, string



Tcl                                                      split(n)


@@@COMMAND: split_diff_pair_ports@@@
split_diff_pair_ports

Description: 
Remove differential pair relationship between 2 ports

Syntax: 
split_diff_pair_ports  [-quiet] [-verbose] <ports>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <ports>     Ports to split

Categories: 
PinPlanning

Description:

  Splits an existing differential pair of ports into two single-ended ports.

  Note: This command operates silently and does not return direct feedback of
  its operation.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ports> - (Required) The names of two ports of a differential pair to split
  into single-ended ports.

Examples:

  The following example splits the specified diff pair ports to form two
  single ended ports:

    split_diff_pair_ports PORT_N PORT_P 
    

See Also:

   *  make_diff_pair_ports
   *  create_port
   *  create_interface


@@@COMMAND: start_gui@@@
start_gui

Description: 
Start GUI

Syntax: 
start_gui  [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-verbose]  Suspend message limits during command execution

Categories: 
GUIControl

Description:

  Launches the GUI when the tool is running in the Vivado Design Suite Tcl
  shell. The GUI is invoked with the current project, design, and run
  information.

Arguments:

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example is executed from the command prompt when the tool is
  running in Tcl mode:

    Vivado% start_gui 
    

See Also:

   *  stop_gui


@@@COMMAND: start_ip_gui@@@
start_ip_gui

Description: 
Customize an instance of a configurable IP GUI

Syntax: 
start_ip_gui  [-vlnv <arg>] [-ip <args>] [-module_name <arg>] [-ipdef <args>]
              [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  [-vlnv]         VLNV string for the Catalog IP from which the new IP will 
                  be created (colon delimited Vendor, Library, Name, Version)
  [-ip]           IP Instance object
  [-module_name]  Predefined name for the component
  [-ipdef]        IP Catalog object
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
IPFlow


@@@COMMAND: startgroup@@@
startgroup

Description: 
Start a set of commands that can be undone/redone as a group

Syntax: 
startgroup  [-try] [-quiet] [-verbose]

Returns: 
int

Usage: 
  Name        Description
  -----------------------
  [-try]      Don't start a group if one has already been started
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
GUIControl

Description:

  Starts a sequence of commands that can be undone or redone as a series. Use
  endgroup to end the sequence of commands.

  You can have multiple command groups to undo or redo, but you cannot nest
  command groups. You must use endgroup to end a command sequence before
  using startgroup to create a new command sequence.

  Note: The startgroup/endgroup commands are provided to support sequences of
  related commands that can be undone via the undo command, or redone if
  needed using the redo command. However, some commands can trigger an
  endgroup unexpectedly, and certain commands do not support either undo or
  redo. The limitations are not fully defined.

  The startgroup command returns an integer value of 0 if a group is already
  started, and returns an integer value of 1 if the startgroup command has
  started a new group.

Arguments:

  -try - (Optional) Returns 1 if a new group is started. Returns 0 if a group
  has already been started, and therefore a new group cannot be started.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example defines a startgroup, executes a sequence of related
  commands, and then executes the endgroup. This sequence of commands can be
  undone or redone as a group:

    startgroup  
    create_pblock pblock_wbArbEngine  
    create_pblock pblock_usbEngnSRM  
    add_cells_to_pblock pblock_wbArbEngine \  
       [get_cells [list wbArbEngine]] -clear_locs  
    add_cells_to_pblock pblock_usbEngnSRM \  
       [get_cells [list usbEngine1/usbEngineSRAM]] -clear_locs  
    endgroup 
    

See Also:

   *  endgroup
   *  redo
   *  undo


@@@COMMAND: stop_gui@@@
stop_gui

Description: 
Close GUI

Syntax: 
stop_gui  [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-verbose]  Suspend message limits during command execution

Categories: 
GUIControl

Description:

  Stops GUI mode and places the tool into Tcl mode, running in the Vivado
  Design Suite Tcl shell. In Tcl mode, all commands must be entered as Tcl
  commands or through Tcl scripts.

Arguments:

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example stops and closes the GUI and places the tool into Tcl
  mode:

    stop_gui 
    

See Also:

   *  start_gui


@@@COMMAND: string@@@
string(n)             Tcl Built-In Commands             string(n)



_________________________________________________________________

NAME
       string - Manipulate strings

SYNOPSIS
       string option arg ?arg ...?
_________________________________________________________________


DESCRIPTION
       Performs  one  of  several string operations, depending on
       option.  The legal options (which may be abbreviated) are:

       string bytelength string
              Returns a decimal string giving the number of bytes
              used to represent string in memory.  Because  UTF-8
              uses  one to three bytes to represent Unicode char-
              acters, the byte length will not be the same as the
              character  length  in  general.   The cases where a
              script cares about the byte length  are  rare.   In
              almost  all cases, you should use the string length
              operation (including determining the  length  of  a
              Tcl  ByteArray  object).   Refer  to the Tcl_NumUt-
              fChars manual entry for more details on  the  UTF-8
              representation.

       string compare ?-nocase? ?-length int? string1 string2
              Perform   a  character-by-character  comparison  of
              strings string1 and string2.  Returns -1, 0, or  1,
              depending  on  whether string1 is lexicographically
              less than, equal to, or greater than  string2.   If
              -length  is  specified,  then only the first length
              characters are used in the comparison.  If  -length
              is  negative,  it is ignored.  If -nocase is speci-
              fied, then the strings  are  compared  in  a  case-
              insensitive manner.

       string equal ?-nocase? ?-length int? string1 string2
              Perform   a  character-by-character  comparison  of
              strings string1 and string2.  Returns 1 if  string1
              and  string2  are  identical,  or  0  when not.  If
              -length is specified, then only  the  first  length
              characters  are used in the comparison.  If -length
              is negative, it is ignored.  If -nocase  is  speci-
              fied,  then  the  strings  are  compared in a case-
              insensitive manner.

       string first needleString haystackString ?startIndex?
              Search haystackString for a sequence of  characters
              that  exactly match the characters in needleString.
              If found, return the index of the  first  character
              in  the first such match within haystackString.  If
              not found, return -1.  If startIndex  is  specified
              (in any of the forms accepted by the index method),
              then the search is constrained to  start  with  the
              character in haystackString specified by the index.
              For example,
                     string first a 0a23456789abcdef 5
              will return 10, but
                     string first a 0123456789abcdef 11
              will return -1.

       string index string charIndex
              Returns the charIndex'th character  of  the  string
              argument.   A  charIndex  of  0  corresponds to the
              first character of the string.   charIndex  may  be
              specified as follows:                               |

              inte-                                               |
              ger                                             |   |
                        For any index value that passes string is |
                        integer  -strict,  the  char specified at |
                        this integral index (e.g. 2  would  refer |
                        to the "c" in "abcd").                    |

              end                                                 ||
                        The last char of  the  string  (e.g.  end |
                        would refer to the "d" in "abcd").        |

              end-N                                               ||
                        The last char of  the  string  minus  the |
                        specified  integer  offset  N (e.g. end-1 |
                        would refer to the "c" in "abcd").        |

              end+N                                               ||
                        The  last  char  of  the  string plus the |
                        specified integer offset N  (e.g.  end+-1 |
                        would refer to the "c" in "abcd").        |

              M+N                                                 ||
                        The char specified at the integral  index |
                        that is the sum of integer values M and N |
                        (e.g. 1+1  would  refer  to  the  "c"  in |
                        "abcd").                                  |

              M-N                                                 ||
                        The char specified at the integral  index |
                        that  is the difference of integer values |
                        M and N (e.g. 2-1 would refer to the  "b" |
                        in "abcd").                               |

              In  the  specifications  above, the integer value M |
              contains no trailing  whitespace  and  the  integer |
              value N contains no leading whitespace.             |

              If  charIndex  is  less  than  0 or greater than or |
              equal to the length of the string then this command |
              returns an empty string.                            |

       string is class ?-strict? ?-failindex varname? string
              Returns 1 if string is a valid member of the speci-
              fied character  class,  otherwise  returns  0.   If
              -strict  is specified, then an empty string returns
              0, otherwise an empty string will return 1  on  any
              class.   If  -failindex  is  specified, then if the
              function returns 0, the index in the  string  where
              the class was no longer valid will be stored in the
              variable named varname.  The varname  will  not  be
              set if the function returns 1.  The following char-
              acter classes are recognized (the class name can be
              abbreviated):

              alnum       Any  Unicode  alphabet or digit charac-
                          ter.

              alpha       Any Unicode alphabet character.

              ascii       Any character with a  value  less  than
                          \u0080  (those  that  are  in the 7-bit
                          ascii range).

              boolean     Any of the forms  allowed  to  Tcl_Get-
                          Boolean.

              control     Any Unicode control character.

              digit       Any Unicode digit character.  Note that
                          this includes characters outside of the
                          [0-9] range.

              double      Any  of the valid forms for a double in
                          Tcl, with optional surrounding  whites-
                          pace.  In case of under/overflow in the
                          value, 0 is returned  and  the  varname
                          will contain -1.

              false       Any  of  the  forms allowed to Tcl_Get-
                          Boolean where the value is false.

              graph       Any Unicode printing character,  except
                          space.

              integer     Any  of  the valid string formats for a
                          32-bit  integer  value  in  Tcl,   with
                          optional  surrounding  whitespace.   In
                          case of under/overflow in the value,  0
                          is  returned  and the varname will con-
                          tain -1.

              list        Any   proper   list   structure,   with
                          optional   surrounding  whitespace.  In
                          case of improper list structure,  0  is
                          returned  and  the varname will contain
                          the index of the  "element"  where  the
                          list  parsing fails, or -1 if this can-
                          not be determined.

              lower       Any Unicode lower case alphabet charac-
                          ter.

              print       Any Unicode printing character, includ-
                          ing space.

              punct       Any Unicode punctuation character.

              space       Any Unicode space character.

              true        Any of the forms  allowed  to  Tcl_Get-
                          Boolean where the value is true.

              upper       Any  upper  case  alphabet character in
                          the Unicode character set.              |

              wideinte-                                           |
              ger                                         |       |
                          Any of the valid forms for a wide inte- |
                          ger in Tcl, with  optional  surrounding |
                          whitespace.   In case of under/overflow |
                          in the value, 0  is  returned  and  the |
                          varname will contain -1.

              wordchar    Any  Unicode  word  character.  That is
                          any  alphanumeric  character,  and  any
                          Unicode  connector  punctuation charac-
                          ters (e.g. underscore).

              xdigit      Any   hexadecimal    digit    character
                          ([0-9A-Fa-f]).

              In  the  case  of  boolean,  true and false, if the
              function will  return  0,  then  the  varname  will
              always  be  set to 0, due to the varied nature of a
              valid boolean value.

       string last needleString haystackString ?lastIndex?
              Search haystackString for a sequence of  characters
              that  exactly match the characters in needleString.
              If found, return the index of the  first  character
              in  the  last such match within haystackString.  If
              there is no match, then return -1.  If lastIndex is
              specified  (in  any  of  the  forms accepted by the
              index  method),  then  only   the   characters   in
              haystackString at or before the specified lastIndex
              will be considered by the search.  For example,
                     string last a 0a23456789abcdef 15
              will return 10, but
                     string last a 0a23456789abcdef 9
              will return 1.

       string length string
              Returns a decimal string giving the number of char-
              acters  in string.  Note that this is not necessar-
              ily the same as the number of bytes used  to  store
              the  string.   If  the object is a ByteArray object
              (such as  those  returned  from  reading  a  binary
              encoded  channel), then this will return the actual
              byte length of the object.

       string map ?-nocase? mapping string
              Replaces substrings in string  based  on  the  key-
              value  pairs  in mapping.  mapping is a list of key
              value key value ...  as in  the  form  returned  by
              array  get.   Each  instance of a key in the string
              will be replaced with its corresponding value.   If
              -nocase is specified, then matching is done without
              regard to case differences. Both key and value  may
              be  multiple characters.  Replacement is done in an
              ordered manner, so the key appearing first  in  the
              list  will  be checked first, and so on.  string is
              only iterated over once, so  earlier  key  replace-
              ments  will  have  no affect for later key matches.
              For example,
                     string map {abc 1 ab 2 a 3 1 0} 1abcaababcabababc
              will return the string 01321221.

              Note that if an earlier key is a prefix of a  later
              one,  it will completely mask the later one.  So if
              the previous example is reordered like this,
                     string map {1 0 ab 2 a 3 abc 1} 1abcaababcabababc
              it will return the string 02c322c222c.

       string match ?-nocase? pattern string
              See if pattern matches string; return 1 if it does,
              0  if  it  does not.  If -nocase is specified, then
              the pattern attempts to match against the string in
              a  case insensitive manner.  For the two strings to
              match, their contents must be identical except that
              the  following special sequences may appear in pat-
              tern:

              *         Matches any  sequence  of  characters  in
                        string, including a null string.

              ?         Matches any single character in string.

              [chars]   Matches any character in the set given by
                        chars.  If a sequence  of  the  form  x-y
                        appears  in  chars,  then  any  character
                        between x and y, inclusive,  will  match.
                        When used with -nocase, the end points of
                        the range are  converted  to  lower  case
                        first.   Whereas {[A-z]} matches "_" when
                        matching  case-sensitively   (since   "_"
                        falls  between  the  "Z"  and  "a"), with
                        -nocase   this   is    considered    like
                        {[A-Za-z]}  (and  probably what was meant
                        in the first place).

              \x        Matches the  single  character  x.   This
                        provides  a  way  of avoiding the special
                        interpretation of the characters *?[]\ in
                        pattern.

       string range string first last
              Returns  a  range  of  consecutive  characters from
              string, starting with the character whose index  is
              first  and ending with the character whose index is
              last. An index of 0 refers to the  first  character
              of  the string.  first and last may be specified as
              for the index method.  If first is less  than  zero
              then  it is treated as if it were zero, and if last
              is greater than or  equal  to  the  length  of  the
              string  then  it  is treated as if it were end.  If
              first is greater than last then an empty string  is
              returned.

       string repeat string count
              Returns string repeated count number of times.

       string replace string first last ?newstring?
              Removes  a  range  of  consecutive  characters from
              string, starting with the character whose index  is
              first  and ending with the character whose index is
              last.  An index of 0 refers to the first  character
              of  the string.  First and last may be specified as
              for the index method.  If newstring  is  specified,
              then  it  is placed in the removed character range.
              If first is less than zero then it is treated as if
              it  were zero, and if last is greater than or equal
              to the length of the string then it is  treated  as
              if  it  were end.  If first is greater than last or
              the length of the initial string, or last  is  less
              than   0,  then  the  initial  string  is  returned
              untouched.                                          |

       string reverse                                             |
       string                                      |              |
              Returns  a string that is the same length as string |
              but with its characters in the reverse order.

       string tolower string ?first? ?last?
              Returns a value equal to  string  except  that  all
              upper  (or  title) case letters have been converted
              to lower case.  If first is specified, it refers to
              the  first  char  index  in  the  string  to  start
              modifying.  If last is specified, it refers to  the
              char  index  in  the string to stop at (inclusive).
              first and last may be specified as  for  the  index
              method.

       string totitle string ?first? ?last?
              Returns  a  value  equal  to string except that the
              first character in string is converted to its  Uni-
              code  title case variant (or upper case if there is
              no title case variant) and the rest of  the  string
              is converted to lower case.  If first is specified,
              it refers to the first char index in the string  to
              start  modifying.   If last is specified, it refers
              to the char index in the string to stop at  (inclu-
              sive).   first and last may be specified as for the
              index method.

       string toupper string ?first? ?last?
              Returns a value equal to  string  except  that  all
              lower  (or  title) case letters have been converted
              to upper case.  If first is specified, it refers to
              the first char index in the string to start modify-
              ing.  If last is specified, it refers to  the  char
              index  in the string to stop at (inclusive).  first
              and last may be specified as for the index  method.

       string trim string ?chars?
              Returns  a  value  equal  to string except that any
              leading  or  trailing  characters  present  in  the
              string given by chars are removed.  If chars is not
              specified then  white  space  is  removed  (spaces,
              tabs, newlines, and carriage returns).

       string trimleft string ?chars?
              Returns  a  value  equal  to string except that any
              leading characters present in the string  given  by
              chars  are removed.  If chars is not specified then
              white space is removed (spaces, tabs, newlines, and
              carriage returns).

       string trimright string ?chars?
              Returns  a  value  equal  to string except that any
              trailing characters present in the string given  by
              chars  are removed.  If chars is not specified then
              white space is removed (spaces, tabs, newlines, and
              carriage returns).

       string wordend string charIndex
              Returns  the  index of the character just after the
              last one in the word containing character charIndex
              of  string.   charIndex may be specified as for the
              index method.  A word is considered to be any  con-
              tiguous  range  of alphanumeric (Unicode letters or
              decimal digits) or  underscore  (Unicode  connector
              punctuation)  characters,  or  any single character
              other than these.

       string wordstart string charIndex
              Returns the index of the  first  character  in  the
              word  containing  character  charIndex  of  string.
              charIndex may be specified as for the index method.
              A  word is considered to be any contiguous range of
              alphanumeric (Unicode letters or decimal digits) or
              underscore  (Unicode connector punctuation) charac-
              ters, or any single character other than these.

EXAMPLE
       Test if the string in the variable string is a proper non-
       empty prefix of the string foobar.
              set length [string length $string]
              if {$length == 0} {
                 set isPrefix 0
              } else {
                 set isPrefix [string equal -length $length $string "foobar"]
              }


SEE ALSO
       expr(n), list(n)


KEYWORDS
       case  conversion,  compare, index, match, pattern, string,
       word, equal, ctype, character, reverse




Tcl                            8.1                      string(n)


@@@COMMAND: strip_logic_functions@@@
strip_logic_functions

Description: 
Strip the logic functions from LUTs, RAMBs, etc.

Syntax: 
strip_logic_functions  [-cells <args>] [-exclude_cells <args>] [-quiet]
                       [-verbose]

Usage: 
  Name              Description
  -----------------------------
  [-cells]          Strip logic functions only for the given list of cells 
                    (not valid with -exclude_cells)
  [-exclude_cells]  Strip logic functions from the entire design with the 
                    exception of the given list of cells (not valid with 
                    -cells)
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution

Categories: 
FileIO


@@@COMMAND: structured_placement@@@
structured_placement

Description: 
Write pblock constraints for structured placement

Syntax: 
structured_placement  [-file <arg>] [-force] [-apply]
                      [-pblock_height_limit <arg>] [-pblock_size_limit <arg>]
                      [-quiet] [-verbose]

Usage: 
  Name                    Description
  -----------------------------------
  [-file]                 Pblock constraints file
                          Values: A filename with alphanumeric characters.
  [-force]                Overwrite existing file
  [-apply]                Apply the pblock constraints
  [-pblock_height_limit]  Maximum number of sites in a column
                          Default: 32
  [-pblock_size_limit]    Maximum number of sites in a PBlobk
                          Default: 80
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution

Categories: 
XDC, Methodology


@@@COMMAND: subst@@@
subst(n)              Tcl Built-In Commands              subst(n)



_________________________________________________________________

NAME
       subst - Perform backslash, command, and variable substitu-
       tions

SYNOPSIS
       subst ?-nobackslashes? ?-nocommands? ?-novariables? string
_________________________________________________________________

DESCRIPTION
       This command performs variable substitutions, command sub-
       stitutions, and  backslash  substitutions  on  its  string
       argument  and  returns  the fully-substituted result.  The
       substitutions are performed in exactly the same way as for
       Tcl  commands.   As a result, the string argument is actu-
       ally substituted twice, once by  the  Tcl  parser  in  the
       usual  fashion  for  Tcl  commands, and again by the subst
       command.

       If any of the -nobackslashes, -nocommands, or -novariables
       are  specified,  then  the corresponding substitutions are
       not performed.  For example, if -nocommands is  specified,
       command  substitution  is  not  performed:  open and close
       brackets are treated as ordinary characters with  no  spe-
       cial interpretation.

       Note that the substitution of one kind can include substi-
       tution  of  other  kinds.   For  example,  even  when  the
       -novariables  option is specified, command substitution is
       performed without restriction.  This means that any  vari-
       able  substitution  necessary to complete the command sub-
       stitution will still take place.   Likewise,  any  command
       substitution necessary to complete a variable substitution
       will take place, even when -nocommands is specified.   See
       the EXAMPLES below.

       If  an  error  occurs during substitution, then subst will
       return that error.  If a  break  exception  occurs  during
       command  or variable substitution, the result of the whole
       substitution will be the string (as substituted) up to the
       start of the substitution that raised the exception.  If a
       continue exception occurs during the evaluation of a  com-
       mand  or  variable  substitution,  an empty string will be
       substituted for that entire command or variable  substitu-
       tion  (as  long  as  it  is well-formed Tcl.)  If a return
       exception occurs, or any other  return  code  is  returned
       during command or variable substitution, then the returned
       value is substituted for that substitution.  See the EXAM-
       PLES below.  In this way, all exceptional return codes are
       "caught" by subst.  The subst command itself  will  either
       return an error, or will complete successfully.

EXAMPLES
       When  it  performs  its substitutions, subst does not give
       any special treatment to double  quotes  or  curly  braces
       (except within command substitutions) so the script
              set a 44
              subst {xyz {$a}}
       returns "xyz {44}", not "xyz {$a}" and the script
              set a "p\} q \{r"
              subst {xyz {$a}}
       returns "xyz {p} q {r}", not "xyz {p\} q \{r}".

       When  command  substitution  is performed, it includes any
       variable substitution necessary to evaluate the script.
              set a 44
              subst -novariables {$a [format $a]}
       returns "$a 44", not "$a $a".   Similarly,  when  variable
       substitution is performed, it includes any command substi-
       tution necessary to retrieve the value of the variable.
              proc b {} {return c}
              array set a {c c [b] tricky}
              subst -nocommands {[b] $a([b])}
       returns "[b] c", not "[b] tricky".

       The continue and break exceptions allow command  substitu-
       tions  to  prevent substitution of the rest of the command
       substitution and the rest of string  respectively,  giving
       script  authors  more  options  when processing text using
       subst.  For example, the script
              subst {abc,[break],def}
       returns "abc,", not "abc,,def" and the script
              subst {abc,[continue;expr {1+2}],def}
       returns "abc,,def", not "abc,3,def".

       Other exceptional return  codes  substitute  the  returned
       value
              subst {abc,[return foo;expr {1+2}],def}
       returns "abc,foo,def", not "abc,3,def" and
              subst {abc,[return -code 10 foo;expr {1+2}],def}
       also returns "abc,foo,def", not "abc,3,def".

SEE ALSO
       Tcl(n), eval(n), break(n), continue(n)

KEYWORDS
       backslash  substitution,  command  substitution,  variable
       substitution



Tcl                            7.4                       subst(n)


@@@COMMAND: swap_locs@@@
swap_locs

Description: 
Swap two locations

Syntax: 
swap_locs  [-quiet] [-verbose] <aloc> <bloc>

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <aloc>      First location (port/cell/site - should be of same type as 
              'bloc')
  <bloc>      Second location (port/cell/site - should be of same type as 
              'aloc')

Categories: 
Floorplan

Description:

  Swaps the LOC constraints assigned to two similar logic elements. A logic
  element is an element that can be placed onto a device resource on the
  FPGA.

  Some DRC checking is performed when the swap_locs command is executed to
  ensure that the two selected elements can in fact be assigned to their new
  locations. If the location of either element is invalid for any reason, the
  swap_locs command will fail and an error will be returned.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <aloc> - (Required) The location of the first logic element to swap. This
  can be specified as a port, a cell, or a device site.

  <bloc> - (Required) The location of the second logic element to swap. This
  can be specified as a port, a cell, or a device site. This must match the
  type specified by the <aloc> variable.

Examples:

  The following example swaps the instances assigned to the two specified
  device sites:

    swap_locs [get_sites {OLOGIC_X2Y1}] [get_sites {OLOGIC_X2Y0}] 
    

See Also:

   *  get_cells
   *  get_ports
   *  get_sites


@@@COMMAND: switch@@@
switch(n)             Tcl Built-In Commands             switch(n)



_________________________________________________________________

NAME
       switch  -  Evaluate one of several scripts, depending on a
       given value

SYNOPSIS
       switch ?options? string pattern body ?pattern body ...?

       switch ?options? string {pattern body ?pattern body ...?}
_________________________________________________________________

DESCRIPTION
       The switch command matches  its  string  argument  against
       each  of  the  pattern  arguments in order.  As soon as it
       finds a pattern that matches string it evaluates the  fol-
       lowing  body argument by passing it recursively to the Tcl
       interpreter and returns the result of that evaluation.  If
       the  last pattern argument is default then it matches any-
       thing.  If no  pattern  argument  matches  string  and  no
       default is given, then the switch command returns an empty
       string.

       If the initial arguments to switch start with - then  they
       are  treated as options unless there are exactly two argu- |
       ments to switch (in which case the first must  the  string |
       and  the  second must be the pattern/body list).  The fol-
       lowing options are currently supported:

       -exact    Use exact matching when comparing  string  to  a
                 pattern.  This is the default.

       -glob     When  matching string to the patterns, use glob-
                 style matching (i.e. the same as implemented  by
                 the string match command).

       -regexp   When  matching string to the patterns, use regu-
                 lar expression matching  (as  described  in  the
                 re_syntax reference page).                       |

       -nocase                                                    ||
                 Causes comparisons to  be  handled  in  a  case- |
                 insensitive manner.                              |

       -matchvar var-                                             |
       Name                                          |            |
                 This option (only legal  when  -regexp  is  also |
                 specified) specifies the name of a variable into |
                 which the list of matches found by  the  regular |
                 expression  engine  will  be written.  The first |
                 element of the list written will be the  overall |
                 substring  of  the input string (i.e. the string |
                 argument to switch) matched, the second  element |
                 of the list will be the substring matched by the |
                 first  capturing  parenthesis  in  the   regular |
                 expression  that  matched,  and  so  on.  When a |
                 default branch is taken, the variable will  have |
                 the  empty  list written to it.  This option may |
                 be specified at the same time as  the  -indexvar |
                 option.                                          |

       -indexvar var-                                             |
       Name                                          |            |
                 This option (only legal  when  -regexp  is  also |
                 specified) specifies the name of a variable into |
                 which the list of indices referring to  matching |
                 substrings   found  by  the  regular  expression |
                 engine will be written.  The  first  element  of |
                 the  list  written  will  be  a two-element list |
                 specifying the index of the start and  index  of |
                 the first character after the end of the overall |
                 substring of the input string (i.e.  the  string |
                 argument to switch) matched, in a similar way to |
                 the -indices option to the  regexp  can  obtain. |
                 Similarly, the second element of the list refers |
                 to the first capturing parenthesis in the  regu- |
                 lar  expression that matched, and so on.  When a |
                 default branch is taken, the variable will  have |
                 the  empty  list written to it.  This option may |
                 be specified at the same time as  the  -matchvar |
                 option.

       --        Marks  the end of options.  The argument follow-
                 ing this one will be treated as string  even  if
                 it  starts  with a -.  This is not required when |
                 the matching patterns  and  bodies  are  grouped |
                 together in a single argument.

       Two  syntaxes  are provided for the pattern and body argu-
       ments.  The first uses a separate argument for each of the
       patterns  and commands; this form is convenient if substi-
       tutions are desired on some of the patterns  or  commands.
       The  second  form  places all of the patterns and commands
       together into a single argument; the  argument  must  have
       proper list structure, with the elements of the list being
       the patterns and commands.  The second form makes it  easy
       to  construct multi-line switch commands, since the braces
       around the whole list make it  unnecessary  to  include  a
       backslash  at  the  end  of  each line.  Since the pattern
       arguments are in braces in the second form, no command  or
       variable  substitutions are performed on them;  this makes
       the behavior of the second form different than  the  first
       form in some cases.

       If  a  body is specified as "-" it means that the body for
       the next pattern should also be used as the body for  this
       pattern  (if  the next pattern also has a body of "-" then
       the body after that is used, and  so  on).   This  feature
       makes  it  possible  to  share a single body among several
       patterns.

       Beware of how you place comments in switch commands.  Com-
       ments  should  only be placed inside the execution body of
       one of the patterns, and not intermingled  with  the  pat-
       terns.

EXAMPLES
       The  switch  command  can  match against variables and not
       just literals, as shown here (the result is 2):
              set foo "abc"
              switch abc a - b {expr {1}} $foo {expr {2}} default {expr {3}}

       Using glob matching and the fall-through body is an alter-
       native  to  writing regular expressions with alternations,
       as can be seen here (this returns 1):
              switch -glob aaab {
                 a*b     -
                 b       {expr {1}}
                 a*      {expr {2}}
                 default {expr {3}}
              }

       Whenever nothing matches, the default clause  (which  must
       be last) is taken.  This example has a result of 3:
              switch xyz {
                 a -
                 b {
                    # Correct Comment Placement
                    expr {1}
                 }
                 c {
                    expr {2}
                 }
                 default {
                    expr {3}
                 }
              }

       When  matching  against  regular  expressions, information |
       about what exactly matched is easily  obtained  using  the |
       -matchvar option:                                          |
              switch -regexp -matchvar foo -- $bar {              |
                 a(b*)c {                                         |
                    puts "Found [string length [lindex $foo 1]] 'b's"|
                 }                                                |
                 d(e*)f(g*)h {                                    |
                    puts "Found [string length [lindex $foo 1]] 'e's and\|
                          [string length [lindex $foo 2]] 'g's"   |
                 }                                                |
              }                                                   |

SEE ALSO
       for(n), if(n), regexp(n)

KEYWORDS
       switch, match, regular expression



Tcl                            8.5                      switch(n)


@@@COMMAND: synth_ip@@@
synth_ip

Description: 
Generate a synthesis netlist for an IP

Syntax: 
synth_ip  [-force] [-quiet] [-verbose] <objects>

Usage: 
  Name        Description
  -----------------------
  [-force]    Force regeneration of the netlist.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   All the objects for which a netlist needs to be generated for.

Categories: 
Project, IPFlow

Description:

  This command is used in the non-project flow to create a synthesized design
  checkpoint file (DCP) to support the out-of-context (OOC) IP flow, or to
  synthesize and implement an IP module in the OOC hierarchical design flow.
  IP objects are specified by the get_ips command, or for the specified IP
  core file (XCI) as specified by the get_files command.

  Important: To enable this functionality, the IP core must be marked for OOC
  generation by setting the GENERATE_SYNTH_CHECKPOINT property to true (or 1)
  using the set_property command on the XCI file.

  For project-based designs you would use the create_ip_run and launch_runs
  commands. Refer to the Vivado Design Suite User Guide: Design Flows
  Overview (UG892) for more information on Project and Non-Project Modes in
  AMD Vivado Design Suite.

  The synth_ip command will automatically generate any required target files
  prior to synthesizing the IP core. The source files required to synthesize
  the IP are copied into the IP run directory. Upon completion, any newly
  generated OOC target files (dcp, stub files, funcsim netlists...) are
  registered with the associated IP core.

Arguments:

  -force - (Optional) Force re-synthesis of the specified IP objects, even if
  the generated output products for the specified IP are all current.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) One or more IP objects to synthesize. The objects
  can be specified as IP cores by the get_ips command, or as XCI files using
  the get_files command.

Examples:

  The following example synthesizes the specified IP object, regenerating the
  netlist if the synthesized core is up-to-date:

    synth_ip [get_ips char_fifo] -force

See Also:

   *  create_ip_run
   *  generate_target
   *  get_files
   *  get_ips
   *  launch_runs
   *  synth_design
   *  read_checkpoint


@@@COMMAND: tandem_verify@@@
tandem_verify

Description: 
TCL task to verify Tandem Stage-1 PDIs

Syntax: 
tandem_verify  -reference_dcp <arg> -untrusted_dcp <arg> [-full_check <arg>]
               [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  -reference_dcp  Path to trusted reference DCP file
  -untrusted_dcp  Path to untrusted DCP file
  [-full_check]   Default behavior is to report the first difference only; if
                  this option is set to true, tandem_verify will report 
                  complete differences
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 



@@@COMMAND: tell@@@
tell(n)               Tcl Built-In Commands               tell(n)



_________________________________________________________________

NAME
       tell - Return current access position for an open channel

SYNOPSIS
       tell channelId
_________________________________________________________________


DESCRIPTION
       Returns  an integer string giving the current access posi-
       tion in channelId.  This value returned is a  byte  offset
       that  can be passed to seek in order to set the channel to
       a particular position.  Note that this value is  in  terms
       of bytes, not characters like read.  The value returned is
       -1 for channels that do not support seeking.

       ChannelId must be an identifier for an open  channel  such
       as  a Tcl standard channel (stdin, stdout, or stderr), the
       return value from an invocation of open or socket, or  the
       result  of  a  channel  creation command provided by a Tcl
       extension.

EXAMPLE
       Read a line from a file channel only  if  it  starts  with
       foobar:
              # Save the offset in case we need to undo the read...
              set offset [tell $chan]
              if {[read $chan 6] eq "foobar"} {
                  gets $chan line
              } else {
                  set line {}
                  # Undo the read...
                  seek $chan $offset
              }


SEE ALSO
       file(n),  open(n),  close(n),  gets(n), seek(n), Tcl_Stan-
       dardChannels(3)


KEYWORDS
       access position, channel, seeking



Tcl                            8.1                        tell(n)


@@@COMMAND: terminate_runs@@@
terminate_runs

Description: 
Terminate the runs

Syntax: 
terminate_runs  [-quiet] [-verbose] <runs>...

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <runs>      Runs to terminate

Categories: 
Project

Description:

   *  Terminates specified run(s).

   *  It does not delete any files/directories under the Run directory.

   *  The run's state changes to error (user canceled).

Arguments:

  <runs> - (Required) The name of the run(s) to be terminated.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example terminates the implementation run impl_1.

    terminate_runs impl_1

  Note: The Run directory and its contents will not be removed from the file
  system. Run state will change to error state.

  The following example terminates the implementation runs impl_1 and impl_2.

    terminate_runs impl_1 impl_2

  Note: Once a run is terminated, it has to be reset first before it can be
  re-launched. To relaunch a terminated run impl_1.

  The following example terminates the impl_1 run, then resets and launches
  the run.

    terminate_runs impl_1
    reset_runs impl_1
    launch_runs impl_1

See Also:

   *  reset_runs

   *  create_run

   *  launch_runs

   *  opt_design

   *  place_design

   *  route_design


@@@COMMAND: tie_unused_pins@@@
tie_unused_pins

Description: 
Tie off unused cell pins

Syntax: 
tie_unused_pins  [-of_objects <args>] [-quiet] [-verbose]

Usage: 
  Name           Description
  --------------------------
  [-of_objects]  tie unused pins of specified cell(s)
  [-quiet]       Ignore command errors
  [-verbose]     Suspend message limits during command execution

Categories: 
Netlist

Description:

  Tie up or down the unconnected pins of cells in the open synthesized or
  implemented design. The command uses an internal process to identify
  whether a pin should be tied up or down.

  This command is intended to tie up or down the unconnected pins of cells
  added to the netlist with the create_cell command.

Arguments:

  -of_objects <args> - (Optional) Tie up or down the unused pins of the
  specified cell objects.

  Note: The -of_objects option requires objects to be specified using the
  get_* commands, such as get_cells or get_pins, rather than specifying
  objects by name. In addition, -of_objects cannot be used with a search
  <pattern>.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Example:

  The following example ties the unused pins of cells up or down, depending
  on their usage:

    tie_unused_pins -of_objects [get_cells cpuEngine] 
    

See Also:

   *  create_cell
   *  create_pin
   *  get_cells
   *  get_pins


@@@COMMAND: time@@@
time(n)               Tcl Built-In Commands               time(n)



_________________________________________________________________

NAME
       time - Time the execution of a script

SYNOPSIS
       time script ?count?
_________________________________________________________________


DESCRIPTION
       This  command will call the Tcl interpreter count times to
       evaluate script (or once if count is not  specified).   It
       will then return a string of the form
              503 microseconds per iteration
       which  indicates  the  average amount of time required per
       iteration, in microseconds.  Time is measured  in  elapsed
       time, not CPU time.

EXAMPLE
       Estimate  how  long  it takes for a simple Tcl for loop to
       count to a thousand:
              time {
                  for {set i 0} {$i<1000} {incr i} {
                      # empty body
                  }
              }


SEE ALSO
       clock(n)


KEYWORDS
       script, time



Tcl                                                       time(n)


@@@COMMAND: trace@@@
trace(n)              Tcl Built-In Commands              trace(n)



_________________________________________________________________

NAME
       trace - Monitor variable accesses, command usages and com-
       mand executions

SYNOPSIS
       trace option ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       This command causes Tcl commands to be  executed  whenever
       certain  operations are invoked.  The legal options (which
       may be abbreviated) are:

       trace add type name ops ?args?
              Where type is command, execution, or variable.

              trace add command name ops commandPrefix
                     Arrange for  commandPrefix  to  be  executed
                     (with additional arguments) whenever command
                     name is modified in one of the ways given by
                     the  list  ops.  Name will be resolved using
                     the usual namespace resolution rules used by
                     commands.  If the command does not exist, an
                     error will be thrown.

                     Ops indicates which operations are of inter-
                     est,  and  is  a  list of one or more of the
                     following items:

                      rename Invoke  commandPrefix  whenever  the
                             traced  command  is  renamed.   Note
                             that renaming to the empty string is
                             considered deletion, and will not be
                             traced with "rename".

                      delete Invoke commandPrefix when the traced
                             command  is deleted. Commands can be
                             deleted  explicitly  by  using   the
                             rename command to rename the command
                             to an  empty  string.  Commands  are
                             also deleted when the interpreter is
                             deleted,  but  traces  will  not  be
                             invoked  because  there is no inter-
                             preter in which to execute them.

                     When the trace triggers,  depending  on  the
                     operations  being  traced, a number of argu-
                     ments are appended to commandPrefix so  that
                     the actual command is as follows:
                             commandPrefix oldName newName op
                     OldName  and  newName  give  the traced com-
                     mand's current (old) name, and the  name  to
                     which  it is being renamed (the empty string
                     if this is a "delete" operation).  Op  indi-
                     cates  what  operation is being performed on
                     the command, and is one of rename or  delete
                     as  defined above.  The trace operation can-
                     not be used to stop  a  command  from  being
                     deleted.  Tcl will always remove the command
                     once  the  trace  is  complete.    Recursive
                     renaming  or deleting will not cause further
                     traces of the same type to be evaluated,  so
                     a delete trace which itself deletes the com-
                     mand, or a rename trace which itself renames
                     the  command  will  not  cause further trace
                     evaluations to occur.  Both oldName and new-
                     Name  are  fully  qualified  with any names-
                     pace(s) in which they appear.

              trace add execution name ops commandPrefix
                     Arrange for  commandPrefix  to  be  executed
                     (with additional arguments) whenever command
                     name is executed, with traces  occurring  at
                     the  points indicated by the list ops.  Name
                     will be resolved using the  usual  namespace
                     resolution  rules  used by commands.  If the
                     command does not exist,  an  error  will  be
                     thrown.

                     Ops indicates which operations are of inter-
                     est, and is a list of one  or  more  of  the
                     following items:

                      enter  Invoke  commandPrefix  whenever  the
                             command  name  is   executed,   just
                             before  the  actual  execution takes
                             place.

                      leave  Invoke  commandPrefix  whenever  the
                             command name is executed, just after
                             the actual execution takes place.

                     enterstep
                             Invoke commandPrefix for  every  Tcl
                             command  which  is executed from the
                             start of the execution of the proce-
                             dure  name until that procedure fin-
                             ishes. CommandPrefix is invoked just
                             before  the  actual execution of the
                             Tcl  command  being  reported  takes
                             place.  For example if we have "proc
                             foo {} { puts "hello"  }",  then  an
                             enterstep  trace  would  be  invoked
                             just before "puts "hello""  is  exe-
                             cuted.   Setting  an enterstep trace
                             on a  command  name  that  does  not
                             refer to a procedure will not result
                             in an error and is simply ignored.

                     leavestep
                             Invoke commandPrefix for  every  Tcl
                             command  which  is executed from the
                             start of the execution of the proce-
                             dure  name until that procedure fin-
                             ishes. CommandPrefix is invoked just
                             after  the  actual  execution of the
                             Tcl  command  being  reported  takes
                             place.  Setting a leavestep trace on
                             a command name that does  not  refer
                             to a procedure will not result in an
                             error and is simply ignored.

                     When the trace triggers,  depending  on  the
                     operations  being  traced, a number of argu-
                     ments are appended to commandPrefix so  that
                     the actual command is as follows:

                     For enter and enterstep operations:
                             commandPrefix command-string op
                     Command-string  gives  the  complete current
                     command being executed (the  traced  command
                     for  a enter operation, an arbitrary command
                     for a enterstep  operation),  including  all
                     arguments  in their fully expanded form.  Op
                     indicates what operation is being  performed
                     on  the  command  execution,  and  is one of
                     enter or enterstep as  defined  above.   The
                     trace operation can be used to stop the com-
                     mand from executing, by deleting the command
                     in  question.  Of course when the command is
                     subsequently executed, an "invalid  command"
                     error will occur.

                     For leave and leavestep operations:
                             command command-string code result op
                     Command-string  gives  the  complete current
                     command being executed (the  traced  command
                     for  a enter operation, an arbitrary command
                     for a enterstep  operation),  including  all
                     arguments  in  their  fully  expanded  form.
                     Code gives the result code  of  that  execu-
                     tion,  and  result  the  result  string.  Op
                     indicates what operation is being  performed
                     on  the  command  execution,  and  is one of
                     leave or leavestep as defined  above.   Note
                     that  the  creation  of  many  enterstep  or
                     leavestep traces  can  lead  to  unintuitive
                     results, since the invoked commands from one
                     trace can themselves lead to further command
                     invocations for other traces.

                     CommandPrefix  executes  in the same context
                     as the code that invoked the  traced  opera-
                     tion:  thus  the  commandPrefix,  if invoked
                     from a procedure, will have  access  to  the
                     same  local  variables as code in the proce-
                     dure. This context may be different than the
                     context  in  which the trace was created. If
                     commandPrefix invokes a procedure (which  it
                     normally  does) then the procedure will have
                     to use  upvar  or  uplevel  commands  if  it
                     wishes  to access the local variables of the
                     code which invoked the trace operation.

                     While commandPrefix is executing  during  an
                     execution  trace,  traces  on  name are tem-
                     porarily disabled. This allows the  command-
                     Prefix  to  execute name in its body without
                     invoking any  other  traces  again.   If  an
                     error occurs while executing the commandPre-
                     fix, then the command name as a  whole  will
                     return that same error.

                     When  multiple  traces are set on name, then
                     for  enter  and  enterstep  operations,  the
                     traced  commands  are invoked in the reverse
                     order of how the traces were originally cre-
                     ated;  and  for  leave  and leavestep opera-
                     tions, the traced commands  are  invoked  in
                     the original order of creation.

                     The   behavior   of   execution   traces  is
                     currently  undefined  for  a  command   name
                     imported into another namespace.

              trace add variable name ops commandPrefix
                     Arrange  for  commandPrefix  to  be executed
                     whenever variable name is accessed in one of
                     the  ways  given  by the list ops.  Name may
                     refer to a normal variable, an element of an
                     array,  or to an array as a whole (i.e. name
                     may be just the name of an  array,  with  no
                     parenthesized  index).   If name refers to a
                     whole array, then commandPrefix  is  invoked
                     whenever any element of the array is manipu-
                     lated.  If the variable does not  exist,  it
                     will  be  created  but  will  not be given a
                     value, so it will be  visible  to  namespace
                     which   queries,  but  not  to  info  exists
                     queries.

                     Ops indicates which operations are of inter-
                     est,  and  is  a  list of one or more of the
                     following items:

                      array  Invoke  commandPrefix  whenever  the
                             variable is accessed or modified via
                             the  array  command,  provided  that
                             name is not a scalar variable at the
                             time  that  the  array  command   is
                             invoked.   If name is a scalar vari-
                             able, the access via the array  com-
                             mand will not trigger the trace.

                      read   Invoke  commandPrefix  whenever  the
                             variable is read.

                      write  Invoke  commandPrefix  whenever  the
                             variable is written.

                      unset  Invoke  commandPrefix  whenever  the
                             variable is unset.  Variables can be
                             unset explicitly with the unset com-
                             mand, or implicitly when  procedures
                             return (all of their local variables
                             are  unset).   Variables  are   also
                             unset when interpreters are deleted,
                             but  traces  will  not  be   invoked
                             because  there  is no interpreter in
                             which to execute them.

                     When the trace triggers, three arguments are
                     appended to commandPrefix so that the actual
                     command is as follows:
                             commandPrefix name1 name2 op
                     Name1 and name2 give  the  name(s)  for  the
                     variable being accessed:  if the variable is
                     a scalar then  name1  gives  the  variable's
                     name  and  name2  is an empty string; if the
                     variable is  an  array  element  then  name1
                     gives  the name of the array and name2 gives
                     the index into the array; if an entire array
                     is  being  deleted  and the trace was regis-
                     tered on the overall array,  rather  than  a
                     single  element,  then name1 gives the array
                     name and name2 is an  empty  string.   Name1
                     and  name2  are  not necessarily the same as
                     the name used in the trace variable command:
                     the upvar command allows a procedure to ref-
                     erence a variable under  a  different  name.
                     Op  indicates  what  operation is being per-
                     formed on the variable, and is one of  read,
                     write, or unset as defined above.

                     CommandPrefix  executes  in the same context
                     as the code that invoked the  traced  opera-
                     tion:   if the variable was accessed as part
                     of a Tcl procedure, then commandPrefix  will
                     have  access  to the same local variables as
                     code in the procedure.  This context may  be
                     different  than  the  context  in  which the
                     trace was created. If commandPrefix  invokes
                     a  procedure  (which  it normally does) then
                     the procedure will  have  to  use  upvar  or
                     uplevel  if  it  wishes to access the traced
                     variable.  Note also that name1 may not nec-
                     essarily be the same as the name used to set
                     the trace on the variable;  differences  can
                     occur  if the access is made through a vari-
                     able defined with the upvar command.

                     For read and write traces, commandPrefix can
                     modify  the variable to affect the result of
                     the traced operation.  If commandPrefix mod-
                     ifies  the value of a variable during a read
                     or write trace, then the new value  will  be
                     returned  as the result of the traced opera-
                     tion.  The return value from   commandPrefix
                     is  ignored  except  that  if  it returns an
                     error of any sort then the traced  operation
                     also  returns  an  error with the same error
                     message returned by the trace command  (this
                     mechanism can be used to implement read-only
                     variables, for example).  For write  traces,
                     commandPrefix  is  invoked  after  the vari-
                     able's value has been changed; it can  write
                     a  new  value  into the variable to override
                     the original value specified  in  the  write
                     operation.   To  implement  read-only  vari-
                     ables, commandPrefix will  have  to  restore
                     the old value of the variable.

                     While  commandPrefix  is  executing during a
                     read or write trace, traces on the  variable
                     are  temporarily  disabled.  This means that
                     reads and writes  invoked  by  commandPrefix
                     will  occur  directly, without invoking com-
                     mandPrefix  (or  any  other  traces)  again.
                     However,  if  commandPrefix unsets the vari-
                     able then unset traces will be invoked.

                     When an unset trace is invoked, the variable
                     has  already been deleted: it will appear to
                     be undefined with no traces.   If  an  unset
                     occurs  because  of a procedure return, then
                     the trace will be invoked  in  the  variable
                     context  of the procedure being returned to:
                     the stack frame of the  returning  procedure
                     will  no  longer exist.  Traces are not dis-
                     abled during unset traces, so  if  an  unset
                     trace   command  creates  a  new  trace  and
                     accesses the variable,  the  trace  will  be
                     invoked.   Any  errors  in  unset traces are
                     ignored.

                     If there are multiple traces on  a  variable
                     they are invoked in order of creation, most-
                     recent  first.   If  one  trace  returns  an
                     error,  then  no  further traces are invoked
                     for the variable.  If an array element has a
                     trace  set, and there is also a trace set on
                     the array as a whole, the trace on the over-
                     all  array  is invoked before the one on the
                     element.

                     Once created, the trace  remains  in  effect
                     either  until  the trace is removed with the
                     trace  remove  variable  command   described
                     below, until the variable is unset, or until
                     the interpreter is  deleted.   Unsetting  an
                     element  of  array will remove any traces on
                     that element, but will not remove traces  on
                     the overall array.

                     This command returns an empty string.

       trace remove type name opList commandPrefix
              Where  type  is  either command, execution or vari-
              able.

              trace remove command name opList commandPrefix
                     If there is a trace set on command name with
                     the  operations  and command given by opList
                     and  commandPrefix,  then   the   trace   is
                     removed,  so  that  commandPrefix will never
                     again be invoked.  Returns an empty  string.
                     If  name  does  not  exist, the command will
                     throw an error.

              trace remove execution name opList commandPrefix
                     If there is a trace set on command name with
                     the  operations  and command given by opList
                     and  commandPrefix,  then   the   trace   is
                     removed,  so  that  commandPrefix will never
                     again be invoked.  Returns an empty  string.
                     If  name  does  not  exist, the command will
                     throw an error.

              trace remove variable name opList commandPrefix
                     If there is a trace  set  on  variable  name
                     with  the  operations  and  command given by
                     opList and commandPrefix, then the trace  is
                     removed,  so  that  commandPrefix will never
                     again be invoked.  Returns an empty  string.

       trace info type name
              Where  type  is  either command, execution or vari-
              able.

              trace info command name
                     Returns a list containing  one  element  for
                     each  trace  currently  set on command name.
                     Each element of the list is  itself  a  list
                     containing   two  elements,  which  are  the
                     opList and commandPrefix associated with the
                     trace.   If  name  does  not have any traces
                     set, then the result of the command will  be
                     an  empty  string.   If name does not exist,
                     the command will throw an error.

              trace info execution name
                     Returns a list containing  one  element  for
                     each  trace  currently  set on command name.
                     Each element of the list is  itself  a  list
                     containing   two  elements,  which  are  the
                     opList and commandPrefix associated with the
                     trace.   If  name  does  not have any traces
                     set, then the result of the command will  be
                     an  empty  string.   If name does not exist,
                     the command will throw an error.

              trace info variable name
                     Returns a list containing  one  element  for
                     each  trace  currently set on variable name.
                     Each element of the list is  itself  a  list
                     containing   two  elements,  which  are  the
                     opList and commandPrefix associated with the
                     trace.   If  name does not exist or does not
                     have any traces set, then the result of  the
                     command will be an empty string.

       For  backwards  compatibility, three other subcommands are
       available:

              trace variable name ops command
                     This is equivalent  to  trace  add  variable
                     name ops command.

              trace vdelete name ops command
                     This  is equivalent to trace remove variable
                     name ops command

              trace vinfo name
                     This is equivalent to  trace  info  variable
                     name

       These  subcommands  are  deprecated  and  will  likely  be
       removed in a future version of Tcl.   They  use  an  older
       syntax  in which array, read, write, unset are replaced by
       a, r, w and u respectively, and the ops argument is not  a
       list, but simply a string concatenation of the operations,
       such as rwua.

EXAMPLES
       Print a message whenever either of  the  global  variables
       foo  and  bar  are  updated, even if they have a different
       local name at the time (which can be done with  the  upvar
       command):
              proc tracer {varname args} {
                  upvar #0 $varname var
                  puts "$varname was updated to be \"$var\""
              }
              trace add variable foo write "tracer foo"
              trace add variable bar write "tracer bar"

       Ensure that the global variable foobar always contains the
       product of the global variables foo and bar:
              proc doMult args {
                  global foo bar foobar
                  set foobar [expr {$foo * $bar}]
              }
              trace add variable foo write doMult
              trace add variable bar write doMult

       Print a trace of what commands  are  executed  during  the
       processing of a Tcl procedure:
              proc x {} { y }
              proc y {} { z }
              proc z {} { puts hello }
              proc report args {puts [info level 0]}
              trace add execution x enterstep report
              x
                -> report y enterstep
                  report z enterstep
                  report {puts hello} enterstep
                  hello

SEE ALSO
       set(n), unset(n)

KEYWORDS
       read, command, rename, variable, write, trace, unset



Tcl                            8.4                       trace(n)


@@@COMMAND: undo@@@
undo

Description: 
Un-do previous command

Syntax: 
undo  [-list] [-quiet] [-verbose]

Returns: 
with -list, the list of undoable tasks

Usage: 
  Name        Description
  -----------------------
  [-list]     Show a list of undoable tasks
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
GUIControl

Description:

  Note: The undo and redo commands are intended for use in the Vivado IDE,
  and are not recommended for use in Tcl scripts to restore designs to a
  former state. To restore a design to a specific condition, you must write a
  design checkpoint using the write_checkpoint command, to be restored using
  read_checkpoint.

  Undo a prior command. This command can be used repeatedly to undo a series
  of commands.

  If a group of commands has been created using the startgroup and endgroup
  commands, this command will undo that group as a sequence. The undo command
  will start at the endgroup command and continue to undo until it hits the
  startgroup command.

  If you undo a command, and then change your mind, you can redo the command.

Arguments:

  -list - (Optional) Reports the list of commands that can be undone. As you
  execute the undo command, the tool will step backward through this list of
  commands.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns a list of commands that you can undo:

    undo -list 
    

See Also:

   *  redo
   *  startgroup
   *  endgroup


@@@COMMAND: unhighlight_objects@@@
unhighlight_objects

Description: 
Unhighlight objects that are currently highlighted

Syntax: 
unhighlight_objects  [-color_index <arg>] [-rgb <args>] [-color <arg>]
                     [-leaf_cells] [-quiet] [-verbose] [<objects>]

Usage: 
  Name            Description
  ---------------------------
  [-color_index]  Color index
  [-rgb]          RGB color index list
  [-color]        Valid values are red green blue magenta yellow cyan and 
                  orange
  [-leaf_cells]   Leaf cells
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<objects>]     Objects to unhighlight

Categories: 
GUIControl

Description:

  This command is for use in GUI mode. This command unhighlights the
  specified object or objects that were previously highlighted by the
  highlight_objects command.

  This command supports the color options as specified below. These options
  can be used to unhighlight all objects currently highlighted in the
  specified color. See the example below.

Arguments:

  -color_index <arg> - (Optional) Valid value is an integer from 1 to 20.
  Specify the color index to unhighlight. The color index is defined by the
  Colors > Highlight category of the Tools > Settings dialog box. Refer to
  the Vivado Design Suite User Guide: Using the IDE (UG893) for more
  information on setting themes.

  -rgb <args> - (Optional) Specify the color to unhighlight in the form of an
  RGB code specified as {R G B}. For instance, {255 255 0} specifies the
  color yellow.

  -color <arg> - (Optional) Specify the color to unhighlight. Supported
  highlight colors are red, green, blue, magenta, yellow, cyan, and orange.

  -leaf_cells <arg> - (Optional) Specifies one or more cell names or objects
  to highlight with the specified color.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) Specifies one or more objects to be unhighlighted.
  If no objects are specified, all highlighted objects of the specified color
  will be unhighlighted. If no color is specified, all highlighted objects
  will be unhighlighted.

Examples:

  The following example unhighlights the specified cell objects:

    unhighlight_objects -leaf_cells [get_cells cpuEngine/*]

  The following example unhighlights all objects currently highlighted in the
  color yellow:

    unhighlight_objects -color yellow 
    

See Also:

   *  get_selected_objects
   *  highlight_objects


@@@COMMAND: uninstall@@@
uninstall

Description: 
Install board

Syntax: 
uninstall  [-quiet] [-verbose] <board>

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <board>     Name of board to uninstall

Categories: 
Tools


@@@COMMAND: unknown@@@
unknown(n)            Tcl Built-In Commands            unknown(n)



_________________________________________________________________

NAME
       unknown - Handle attempts to use non-existent commands

SYNOPSIS
       unknown cmdName ?arg arg ...?
_________________________________________________________________

DESCRIPTION
       This  command is invoked by the Tcl interpreter whenever a
       script tries to invoke a command that does not exist.  The
       default  implementation  of unknown is a library procedure
       defined when Tcl  initializes  an  interpreter.   You  can
       override  the default unknown to change its functionality,
       or you can register a new handler  for  individual  names-
       paces  using  the  namespace  unknown  command.  Note that
       there is no default implementation of unknown  in  a  safe
       interpreter.

       If the Tcl interpreter encounters a command name for which
       there is not a defined  command  (in  either  the  current
       namespace,  or  the global namespace), then Tcl checks for
       the existence of an unknown handler for the current names-
       pace.   By  default,  this  handler  is  a  command  named
       ::unknown.  If there is no such command, then  the  inter-
       preter  returns  an  error.  If the unknown command exists
       (or a new handler has  been  registered  for  the  current
       namespace),  then  it is invoked with arguments consisting
       of the fully-substituted name and arguments for the origi-
       nal  non-existent  command.  The unknown command typically
       does things like searching through library directories for
       a  command  procedure  with the name cmdName, or expanding
       abbreviated command names to full-length, or automatically
       executing  unknown  commands  as  sub-processes.   In some
       cases  (such  as  expanding  abbreviations)  unknown  will
       change the original command slightly and then (re-)execute
       it.  The result of the unknown  command  is  used  as  the
       result for the original non-existent command.

       The  default implementation of unknown behaves as follows.
       It first calls the auto_load library procedure to load the
       command.   If this succeeds, then it executes the original
       command with its original  arguments.   If  the  auto-load
       fails then unknown calls auto_execok to see if there is an
       executable file by the name cmd.  If so,  it  invokes  the
       Tcl  exec  command with cmd and all the args as arguments.
       If cmd cannot be auto-executed, unknown checks to  see  if
       the  command  was  invoked at top-level and outside of any
       script.  If so, then unknown takes two  additional  steps.
       First,  it  sees  if  cmd  has  one of the following three
       forms: !!, !event, or ^old^new?^?.  If  so,  then  unknown
       carries  out history substitution in the same way that csh
       would for these constructs.  Finally,  unknown  checks  to
       see  if  cmd  is a unique abbreviation for an existing Tcl
       command.  If so, it expands the command name and  executes
       the  command  with the original arguments.  If none of the
       above efforts  has  been  able  to  execute  the  command,
       unknown generates an error return.  If the global variable
       auto_noload  is  defined,  then  the  auto-load  step   is
       skipped.   If  the  global variable auto_noexec is defined
       then  the  auto-exec  step  is  skipped.    Under   normal
       circumstances  the return value from unknown is the return
       value from the command that was eventually executed.

EXAMPLE
       Arrange for the  unknown  command  to  have  its  standard
       behavior  except for first logging the fact that a command
       was not found:

              # Save the original one so we can chain to it
              rename unknown _original_unknown

              # Provide our own implementation
              proc unknown args {
                  puts stderr "WARNING: unknown command: $args"
                  uplevel 1 [list _original_unknown {*}$args]
              }

SEE ALSO
       info(n), proc(n), interp(n), library(n), namespace(n)

KEYWORDS
       error, non-existent command



Tcl                                                    unknown(n)


@@@COMMAND: unload@@@
unload(n)             Tcl Built-In Commands             unload(n)



_________________________________________________________________

NAME
       unload - Unload machine code

SYNOPSIS
       unload ?switches? fileName
       unload ?switches? fileName packageName
       unload ?switches? fileName packageName interp
_________________________________________________________________

DESCRIPTION
       This  command  tries to unload shared libraries previously
       loaded with load from  the  application's  address  space.
       fileName  is  the  name of the file containing the library
       file to be unload;  it must be the same  as  the  filename
       provided to load for loading the library.  The packageName
       argument is the name of the package (as determined  by  or
       passed  to  load),  and is used to compute the name of the
       unload procedure; if not supplied,  it  is  computed  from
       fileName  in the same manner as load.  The interp argument
       is the path name of the interpreter from which  to  unload
       the  package (see the interp manual entry for details); if
       interp is omitted, it defaults to the interpreter in which
       the unload command was invoked.

       If  the initial arguments to unload start with - then they
       are treated as switches.  The following switches are  cur-
       rently supported:

       -nocomplain
              Suppresses  all  error  messages. If this switch is
              given, unload will never report an error.

       -keeplibrary
              This switch will prevent unload  from  issuing  the
              operating  system call that will unload the library
              from the process.

       --     Marks the end of switches.  The argument  following
              this  one  will be treated as a fileName even if it
              starts with a -.

   UNLOAD OPERATION
       When a file containing a shared library is loaded  through
       the  load  command, Tcl associates two reference counts to
       the library file. The first counter shows how  many  times
       the  library  has been loaded into normal (trusted) inter-
       preters while the second  describes  how  many  times  the
       library  has been loaded into safe interpreters. As a file
       containing a shared library can be loaded only once by Tcl
       (with  the  first  load  call on the file), these counters
       track how many interpreters use the library.  Each  subse-
       quent  call  to load after the first simply increments the
       proper reference count.

       unload works in the opposite direction. As a  first  step,
       unload  will  check  whether the library is unloadable: an
       unloadable library exports a special unload procedure. The
       name  of the unload procedure is determined by packageName
       and whether or not the target interpreter is a  safe  one.
       For  normal  interpreters  the  name of the initialization
       procedure will have the form pkg_Unload, where pkg is  the
       same  as  packageName except that the first letter is con-
       verted to upper case and all other letters  are  converted
       to lower case.  For example, if packageName is foo or FOo,
       the initialization procedure's name  will  be  Foo_Unload.
       If  the target interpreter is a safe interpreter, then the
       name of the initialization procedure will  be  pkg_SafeUn-
       load instead of pkg_Unload.

       If  unload determines that a library is not unloadable (or
       unload functionality has  been  disabled  during  compila-
       tion),  an  error  will  be  returned.   If the library is
       unloadable, then unload will call the unload procedure. If
       the  unload  procedure returns TCL_OK, unload will proceed
       and decrease the proper reference count (depending on  the
       target  interpreter type). When both reference counts have
       reached 0, the library will be detached from the  process.

   UNLOAD HOOK PROTOTYPE
       The unload procedure must match the following prototype:
              typedef int Tcl_PackageUnloadProc(Tcl_Interp *interp, int flags);

       The  interp argument identifies the interpreter from which
       the library is to be unloaded.  The unload procedure  must
       return  TCL_OK  or TCL_ERROR to indicate whether or not it
       completed successfully;  in  the  event  of  an  error  it
       should  set  the interpreter's result to point to an error
       message.  In this case, the result of the  unload  command
       will be the result returned by the unload procedure.

       The       flags      argument      can      be      either
       TCL_UNLOAD_DETACH_FROM_INTERPRETER                      or
       TCL_UNLOAD_DETACH_FROM_PROCESS.  In  case the library will
       remain attached to the process after the unload  procedure
       returns  (i.e. because the library is used by other inter-
       preters),   TCL_UNLOAD_DETACH_FROM_INTERPRETER   will   be
       defined.  However, if the library is used only by the tar-
       get interpreter and the library will be detached from  the
       application  as  soon as the unload procedure returns, the
       flags argument will be set to  TCL_UNLOAD_DETACH_FROM_PRO-
       CESS.

   NOTES
       The unload command cannot unload libraries that are stati-
       cally linked with the  application.   If  fileName  is  an
       empty string, then the packageName argument must be speci-
       fied.

       If packageName is omitted or specified as an empty string,
       Tcl  tries  to guess the name of the package.  This may be
       done differently  on  different  platforms.   The  default
       guess,  which  is  used on most UNIX platforms, is to take
       the last element of fileName, strip off  the  first  three
       characters  if  they are lib, and use any following alpha-
       betic and underline characters as the  module  name.   For
       example,  the  command unload libxyz4.2.so uses the module
       name xyz and the command unload bin/last.so  {}  uses  the
       module name last.

PORTABILITY ISSUES
       Unix
              Not  all  unix  operating  systems  support library
              unloading. Under such an  operating  system  unload
              returns an error (unless -nocomplain has been spec-
              ified).

BUGS
       If the same file is loaded by different fileNames, it will
       be loaded into the process's address space multiple times.
       The behavior of this varies from system  to  system  (some
       systems  may  detect the redundant loads, others may not).
       In case a library has been silently detached by the  oper-
       ating  system  (and  as a result Tcl thinks the library is
       still loaded), it may be dangerous to use unload on such a
       library  (as  the library will be completely detached from
       the application while some interpreters will  continue  to
       use it).

EXAMPLE
       If  an  unloadable  module in the file foobar.dll had been
       loaded using the load command like this (on Windows):
              load c:/some/dir/foobar.dll
       then it would be unloaded like this:
              unload c:/some/dir/foobar.dll

       This allows a C code module to  be  installed  temporarily
       into  a  long-running  Tcl  program and then removed again
       (either because it is no longer needed or  because  it  is
       being  updated  with a new version) without having to shut
       down the overall Tcl process.

SEE ALSO
       info sharedlibextension, load(n), safe(n)

KEYWORDS
       binary code, unloading, safe interpreter, shared library



Tcl                            8.5                      unload(n)


@@@COMMAND: unmark_objects@@@
unmark_objects

Description: 
Unmark items that are currently marked

Syntax: 
unmark_objects  [-color_index <arg>] [-rgb <args>] [-color <arg>] [-quiet]
                [-verbose] [<objects>]

Usage: 
  Name            Description
  ---------------------------
  [-color_index]  Color index
  [-rgb]          RGB color index list
  [-color]        Valid values are red green blue magenta yellow cyan and 
                  orange
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<objects>]     Objects to unmark

Categories: 
GUIControl

Description:

  Unmarks the specified object or objects that were previously marked by the
  mark_objects command. This command is for use in GUI mode.

  This command supports the color options as specified below. However, these
  options are not necessary to unmark a specific object, but can be used to
  unmark all objects currently marked in the specified color. See the example
  below.

Arguments:

  -rgb <args> - (Optional) The color to unmark in the form of an RGB code
  specified as {R G B}. For instance, {255 255 0} specifies the color yellow.

  -color <arg> - (Optional) The color to unmark. Supported highlight colors
  are red, green, blue, magenta, yellow, cyan, and orange.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) One or more objects to be unmarked. If no objects
  are specified, all marked objects of the specified color will be unmarked.
  If no color is specified, all marked objects will be unmarked.

Examples:

  The following example unmarks the selected objects:

    unmark_objects [get_selected_objects] 
    

  The following example unmarks all objects currently marked in the color
  yellow:

    unmark_objects -color yellow 
    

See Also:

   *  get_selected_objects
   *  mark_objects


@@@COMMAND: unplace_cell@@@
unplace_cell

Description: 
Unplace one or more instances. 

Syntax: 
unplace_cell  [-quiet] [-verbose] <cell_list>...

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <cell_list>  a list of cells to be unplaced 

Categories: 
Floorplan

Description:

  Unplace the specified cells from their current placement site.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <cell_list> - (Required) Specifies a list of one or more cells to be
  unplaced from the device.

Examples:

  The following example unplaces the specified cell:

    unplace_cell {fftEngine/fftInst/ingressLoop[6].ingressFifo/buffer_fifo/i_4773_12897} 
    

  The following example unplaces multiple cells:

    unplace_cell {div_cntr_reg_inferredi_4810_15889  div_cntr_reg[0] div_cntr_reg[1]} 
    

See Also:

   *  create_cell
   *  place_cell
   *  remove_cell


@@@COMMAND: unregister_proc@@@
unregister_proc

Description: 
Unregister a previously registered Tcl proc.

Syntax: 
unregister_proc  [-quiet] [-verbose] <tasknm>

Returns: 
Nothing

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <tasknm>    Name of Tcl task to unregister.  The task must be wrapping a 
              proc.

Categories: 
Tools

Description:

  Unregister the Tcl command, or <tasknm>, from the Vivado Design Suite Tcl
  interpretor.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <tasknm> - (Required) Name of Tcl task to unregister. The task must be
  wrapping a registered Tcl procedure.

Example:

  The following example unregisters the findCmd Tcl task:

    unregister_proc findCmd 
    

See Also:

   *  register_proc


@@@COMMAND: unselect_objects@@@
unselect_objects

Description: 
Unselect items that are currently selected

Syntax: 
unselect_objects  [-quiet] [-verbose] [<objects>]

Usage: 
  Name         Description
  ------------------------
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  [<objects>]  Objects to unselect

Categories: 
GUIControl

Description:

  Unselects the specified object or objects that were previously selected by
  the select_objects command.

  This command will unselect both primary and secondary selected objects. The
  selection of secondary objects is controlled through the use of Selection
  Rules defined in the Tools > Settings command. Refer to the Vivado Design
  Suite User Guide: Using the IDE (UG893) for more information on Setting
  Selection Rules.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Optional) One or more objects to be unselected. If no objects
  are specified, all selected objects will be unselected.

Examples:

  The following example unselects the specified site on the device:

    unselect_objects [get_sites SLICE_X56Y214] 
    

  The following example unselects all currently selected objects:

    unselect_objects 
    

See Also:

   *  get_selected_objects
   *  select_objects


@@@COMMAND: unset@@@
unset(n)              Tcl Built-In Commands              unset(n)



_________________________________________________________________

NAME
       unset - Delete variables

SYNOPSIS
       unset ?-nocomplain? ?--? ?name name name ...?
_________________________________________________________________

DESCRIPTION
       This  command removes one or more variables.  Each name is
       a variable name, specified in any of the  ways  acceptable
       to  the set command.  If a name refers to an element of an
       array then that element is removed without  affecting  the
       rest  of  the  array.  If a name consists of an array name
       with no parenthesized index,  then  the  entire  array  is
       deleted.   The  unset  command  returns an empty string as
       result.  If -nocomplain is specified as  the  first  argu-
       ment,  any possible errors are suppressed.  The option may
       not be abbreviated, in order to disambiguate it from  pos-
       sible  variable names.  The option -- indicates the end of
       the options, and should be used if you wish  to  remove  a
       variable  with the same name as any of the options.  If an
       error occurs, any variables after the  named  one  causing
       the  error not deleted.  An error can occur when the named
       variable does not exist, or the name refers  to  an  array
       element  but  the variable is a scalar, or the name refers
       to a variable in a non-existent namespace.

EXAMPLE
       Create an array containing a mapping from some numbers  to
       their  squares and remove the array elements for non-prime
       numbers:
              array set squares {
                  1 1    6 36
                  2 4    7 49
                  3 9    8 64
                  4 16   9 81
                  5 25  10 100
              }

              puts "The squares are:"
              parray squares

              unset squares(1) squares(4) squares(6)
              unset squares(8) squares(9) squares(10)

              puts "The prime squares are:"
              parray squares

SEE ALSO
       set(n), trace(n), upvar(n)

KEYWORDS
       remove, variable



Tcl                            8.4                       unset(n)


@@@COMMAND: update@@@
update(n)             Tcl Built-In Commands             update(n)



_________________________________________________________________

NAME
       update - Process pending events and idle callbacks

SYNOPSIS
       update ?idletasks?
_________________________________________________________________


DESCRIPTION
       This command is used to bring the application "up to date"
       by entering the event loop repeatedly  until  all  pending
       events (including idle callbacks) have been processed.

       If  the  idletasks  keyword is specified as an argument to
       the command, then no new events or errors  are  processed;
       only  idle  callbacks are invoked.  This causes operations
       that are normally deferred, such as  display  updates  and
       window layout calculations, to be performed immediately.

       The  update  idletasks  command is useful in scripts where
       changes have been made to the application's state and  you
       want  those  changes to appear on the display immediately,
       rather than waiting for the script to complete.  Most dis-
       play  updates  are  performed as idle callbacks, so update
       idletasks will cause them to run.  However, there are some
       kinds  of  updates that only happen in response to events,
       such as those triggered  by  window  size  changes;  these
       updates will not occur in update idletasks.

       The  update  command  with no options is useful in scripts
       where you are performing a  long-running  computation  but
       you  still  want the application to respond to events such
       as user interactions;  if  you  occasionally  call  update
       then  user input will be processed during the next call to
       update.

EXAMPLE
       Run computations for about a second and then finish:
              set x 1000
              set done 0
              after 1000 set done 1
              while {!$done} {
                  # A very silly example!
                  set x [expr {log($x) ** 2.8}]

                  # Test to see if our time-limit has been hit.  This would
                  # also give a chance for serving network sockets and, if
                  # the Tk package is loaded, updating a user interface.
                  update
              }


SEE ALSO
       after(n), interp(n)


KEYWORDS
       event, flush, handler, idle, update



Tcl                            7.5                      update(n)


@@@COMMAND: update_calibration_scheme@@@
update_calibration_scheme

Description: 
Updates calibration scheme.

Syntax: 
update_calibration_scheme  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: update_clock_routing@@@
update_clock_routing

Description: 
Update clock routing on global clocks if they are modified after placement

Syntax: 
update_clock_routing  [-pin <args>] [-net <args>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-pin]      A single pin (pin should be already unrouted)
  [-net]      A single net (net should be already unrouted)
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Tools, Tcl

Description:

  The update_clock_routing command is an advanced command used for manually
  updating the routing structures of all global clocks in designs targeting
  the UltraScale architecture. The command operates on all global clocks in a
  design, not individual clocks.

  Due to a more flexible clocking architecture, AMD Versal adaptive SoC, AMD
  UltraScale, and AMD UltraScale+ designs require a two-step process for
  routing global clocks. First the Vivado placer assigns the routing
  resources required to route the global clocks from the clock source to the
  destination clock regions (CLOCK_ROOT or USER_CLOCK_ROOT). Next the Vivado
  router fills in the routing gaps on the clock nets. In between these two
  steps the resulting structures are called gap trees: each global clock net
  has its base routing resources assigned but with large routing gaps where
  no routing resources have been assigned.

  After gap trees are constructed, the router optimally routes the remaining
  clock network to all leaf-level primitives to fill in the routing gaps.
  During an implementation run the global clock routing is handled
  automatically. However in cases where the clock tree has been changed after
  implementation, by modifying the USER_CLOCK_ROOT property on a clock net
  for instance, the Vivado tool may need the update_clock_routing command to
  properly rebuild the gap trees and fill in the routing gaps.

  Examples of this include:

   *  Moving the clock root of a global clock.

   *  Adding or moving loads of a global clock into a clock region not yet
      occupied by the global clock, then running timing analysis on the
      updated design.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example updates the USER_CLOCK_ROOT property on the specified
  clock nets, unroutes the nets, and then updates the clock routing:

    set_property USER_CLOCK_ROOT X1Y0 [get_nets {clk1 clk2}]
    route_design -unroute -nets [get_nets {clk1 clk2}]
    update_clock_routing

  Important: The unroute command is needed to clean out existing clock
  routing on the clock nets before updating the clock routing.

See Also:

   *  route_design
   *  set_property


@@@COMMAND: update_compile_order@@@
update_compile_order

Description: 
Updates a fileset compile order and possibly top based on a design graph.

Syntax: 
update_compile_order  [-force_gui] [-fileset <arg>] [-quiet] [-verbose]

Usage: 
  Name          Description
  -------------------------
  [-force_gui]  Execute this command, even when run interactively in the GUI.
  [-fileset]    Fileset to update based on a design graph
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution

Categories: 
Project

Description:

  Update the compile order of the design sources in the current project, or
  in the specified fileset.

Arguments:

  -force_gui - Update the compile order in GUI mode of the Vivado IDE.

  -fileset <arg> - Update the compile order of the specified fileset.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example updates the compile order of the source files in the
  simulation fileset:

    update_compile_order -fileset sim_1 
    

See Also:

   *  add_files
   *  import_files


@@@COMMAND: update_design@@@
update_design

Description: 
update the netlist of the current design

Syntax: 
update_design  -cells <args> [-strict] [-from_file <arg>] [-from_design <arg>]
               [-from_cell <arg>] [-black_box] [-buffer_ports] [-quiet]
               [-verbose]

Usage: 
  Name             Description
  ----------------------------
  -cells           List of cells to update with a new sub-netlist.
  [-strict]        Require exact ports match for replacing cell (otherwise 
                   extra ports are allowed).
  [-from_file]     Name of the file containing the new sub-netlist.
  [-from_design]   Name of the an open netlist design containing the new 
                   sub-netlist.
  [-from_cell]     Name of cell in the from_design which defines the new 
                   sub-netlist.
  [-black_box]     Update the cell to a black_box.
  [-buffer_ports]  buffer all the ports of black box
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution

Categories: 
Project

Description:

  This command updates the in-memory design, replacing the current netlist in
  the specified cell with a netlist from a specified file, from another open
  design, from a specified cell of a design, or converts the cell to a black
  box cell.

  The update_design command can update a single instance, or can update all
  instances of a master cell.

  Only the in-memory view of the design is changed by the new netlist. You
  must save the design using the write_checkpoint command, or any updates
  will be lost when you close the project or exit the tool.

Arguments:

  -cells <args> - (Required) Defines a list of names, or cell objects, to
  update with the specified netlist.

  -strict - (Optional) Require the new netlist to have exactly the same ports
  as the cell it is imported into. The tool will perform some checking on the
  new netlist to insure that the specified netlist has all the ports required
  for the specified cell. However, additional ports are also permitted,
  unless the -strict option is used.

  -from_file - (Optional) Name of a file containing the new netlist. The
  netlist can be in the form of a structured Verilog netlist (.v) or an EDIF
  netlist (.edf) file.

  Note: -from_file and -from_design are mutually exclusive.

  -from_design - (Optional) Allows you to import the netlist from another
  open design in the current project. The design must be opened in the
  current tool invocation, and not a separate process.

  -from_cell - (Optional) Name of a cell in the design specified with
  -from_design. The netlist from the specified cell will be used to update
  the cell in the current design. By default the tool will use the top-level
  cell of the design specified in -from_design.

  Note: This option can only be used with -from_design.

  -black_box - (Optional) Change the specified cell into a black box cell.

  -buffer_ports - (Optional) Insert buffers for all the ports of a black box
  cell.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  This example replaces a black box cell with the netlist from the specified
  file:

    update_design -from_file C:/Data/cell_contents.v -cell black_box_cell 
    

  The following example updates the netlist in the arnd4 cell with the
  specified Verilog netlist:

    update_design -cell arnd4 -from_file C:/Data/round_4.v 
    

  The following example updates the arnd4 cell in the current design with the
  netlist from the same cell in the specified design:

    update_design -cell arnd4 -from_design netlist_2 -from_cell arnd4 
    

See Also:

   *  get_cells
   *  write_checkpoint


@@@COMMAND: update_files@@@
update_files

Description: 
Update file(s) in the project based on the file(s) or directory(ies) specified

Syntax: 
update_files  [-from_files <args>] [-norecurse] [-to_files <args>]
              [-filesets <args>] [-force] [-report_only] [-quiet] [-verbose]

Returns: 
list of the files updated

Usage: 
  Name            Description
  ---------------------------
  [-from_files]   New files and directories to use for updating
  [-norecurse]    Recursively search in specified directories
  [-to_files]     Existing project files and directories to limit updates to
  [-filesets]     Fileset name
  [-force]        Overwrite imported files in the project, even if read-only,
                  if possible
  [-report_only]  Do no actual file updates, but report on updates that 
                  otherwise would have been made
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 
Project

Description:

  Updates the specified files with the contents of specified remote files.
  Use this command to update a local file with the contents of its original
  remote file, or replace it with the contents of a different remote file.

  This command returns a list of updated files, or returns an error if it
  fails.

Arguments:

  -from_files <args> - (Optional) An ordered list of files or directories to
  use when updating the -to_files to be updated.

  -norecurse - (Optional) Disable recursive searching through specified
  sub-directories.

  -to_files <args> - (Optional) The path and filename of the file or files to
  update with the specified -from_files.

  -filesets <args> - (Optional) Overwrite the files in the specified fileset
  with the -from_files.

  -force - (Optional) Force the overwrite of specified files, even if they
  are write restricted.

  -report_only - (Optional) Run the command a generate a report related to
  updated files, but do no actually update the files.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example updates the various project source IP core files with
  the specified -from_files, reporting the results without making any
  updates:

    
    update_files -from_files C:/Data/IP/*.xci \  
       -to_file [get_files *.xci} -report_only 
    

  Note: No warnings will be issued for newer local files that will be
  overwritten.

See Also:

   *  reimport_files


@@@COMMAND: update_ip_catalog@@@
update_ip_catalog

Description: 
Update the IP Catalog.  Before executing this command optionally use the following to set repository paths:'set_property ip_repo_paths <repo_path_list> [current_fileset]'

Syntax: 
update_ip_catalog  [-rebuild] [-add_ip <arg>] [-delete_ip <arg>]
                   [-delete_mult_ip <args>] [-disable_ip <arg>]
                   [-enable_ip <arg>] [-add_interface <arg>] [-create_index]
                   [-repo_path <arg>] [-update_module_ref] [-quiet] [-verbose]

Returns: 
True for success

Usage: 
  Name                  Description
  ---------------------------------
  [-rebuild]            Trigger a rebuild of the specified repository's index
                        file or rebuild all repositories if none specified
  [-add_ip]             Add the specified IP into the specified repository
                        Values: Either a path to the IP's component.xml or to
                        a zip file containing the IP
  [-delete_ip]          Remove the specified IP from the specified repository
                        Values: Either a path to the IP's component.xml or 
                        its VLNV
  [-delete_mult_ip]     Remove the specified IPs from the specified 
                        repository
                        Values: A list of IPs; either paths to the 
                        component.xml files or their VLNVs
  [-disable_ip]         Disable the specified IP from the specified 
                        repository
                        Values: Either a path to the IP's component.xml or 
                        its VLNV
  [-enable_ip]          Enable the specified disabled IP from the specified 
                        repository
                        Values: Either a path to the IP's component.xml or 
                        its VLNV
  [-add_interface]      Add the specified interface into the specified 
                        repository
                        Values: A path to the interface's xml file
  [-create_index]       Cache the specified repository's data on disk, to 
                        improve load time.
  [-repo_path]          Used in conjunction with rebuild, add_ip, delete_ip, 
                        delete_mult_ip, disable_ip or create_index to specify
                        the path of the repository on which to operate
  [-update_module_ref]  Update module reference from their source (e.g. HDL 
                        file)
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution

Categories: 
IPFlow

Description:

  Update the IP catalog associated with the current design.

  The Xilinx IP catalog, or repository, is located in the installation
  hierarchy of the Vivado Design Suite software release being used. You can
  also add custom IP to the repository by using the set_property command to
  set the IP_REPO_PATHS property on the source fileset to point to the
  locations of custom IP, as shown in the example below.

  The update_ip_catalog command lets you add, delete, disable, or enable
  individual IP cores in the catalog. When referring to individual cores, you
  can reference them by the path to the component.xml file, or by referencing
  the VLNV property of the IP.

  Note: The VLNV property refers to the Vendor:Library:Name:Version string
  which uniquely identifies the IP in the catalog.

  This command returns a transcript of its process if successful, or returns
  an error if it fails.

Arguments:

  -rebuild - (Optional) Rebuild the complete IP catalog index, or just
  rebuild the index for the IP repository specified by the -repo_path.

  -add_ip <arg> - (Optional) Add an individual IP core to the specified IP
  repository. This argument requires the -repo_path argument to also be
  specified. The IP is specified as a path to the component.xml of the IP, or
  the path to a zip file containing the IP.

  -delete_ip <arg> - (Optional) Remove an IP core from the specified IP
  repository. This argument requires the -repo_path argument to also be
  specified. The IP is specified as a path to the component.xml of the IP, or
  as the VLNV property of the IP.

  -delete_mult_ip <arg> - (Optional) Remove the specified IP cores from the
  IP repository. This argument requires the -repo_path argument to also be
  specified. The IPs are specified either as paths to the component.xml
  files, or as the VLNV properties of the IP.

  -disable_ip <arg> - (Optional) Disable an IP core from the specified IP
  repository. This argument requires the -repo_path argument to also be
  specified. The IP is specified as a path to the component.xml of the IP, or
  as the VLNV property of the IP.

  -enable_ip <arg> - (Optional) Enable a previously disabled IP core from the
  specified repository. This argument requires the -repo_path argument to
  also be specified. The IP is specified as a path to the component.xml of
  the IP, or as the VLNV property of the IP.

  -add_interface <arg> - (Optional) Specify the path to the XML file of a
  user-defined AXI interface to add to the IP repository.

  -create_index - (Optional) Cache the specified repository`s data on disk,
  to improve load time. This argument requires the -repo_path argument to
  also be specified.

  -repo_path <arg> - (Optional) Used in conjunction with -rebuild, -add_ip,
  -delete_ip, -delete_mult_ip or -create_index to specify the directory name
  of an IP repository to operate on.

  Note: The IP repository must have been previously added to the current
  source fileset using the set_property command to set the IP_REPO_PATH. See
  the example below.

  -update_module_ref - (Optional) Refresh the block design cell or cells that
  reference module definitions from RTL source files by rereading a module
  definition from the source file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example sets the IP_REPO_PATHS property of the current Source
  fileset, to add an IP repository, then rebuilds the IP catalog index for
  the whole IP catalog:

    set_property IP_REPO_PATHS C:/Data/IP_LIB [current_fileset]  
    update_ip_catalog -rebuild 
    

  This example disables the IP specified by its VLNV property from the
  specified IP repository:

    update_ip_catalog -disable_ip {myCo.com:ip:custom_decoder:1.0} \  
       -repo_path C:/Data/ip 
    

  This example disables the IP specified by the path to the component.xml
  file, from the IP repository:

    update_ip_catalog -disable_ip C:/Data/ip/custom_encoder_1/component.xml \  
    -repo_path C:/Xilinx/Vivado/data/ip 
    

See Also:

   *  create_ip
   *  import_ip
   *  generate_target
   *  update_module_reference
   *  validate_ip


@@@COMMAND: update_macro@@@
update_macro

Description: 
Update a macro

Syntax: 
update_macro  [-absolute_grid] [-quiet] [-verbose] <macro> <rlocs>

Usage: 
  Name              Description
  -----------------------------
  [-absolute_grid]  Use absolute grid for relative locations
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <macro>           Macro to update
  <rlocs>           a list interleaved instances and site names

Categories: 
XDC

Description:

  Populate a previously created macro with leaf cells and relative placements.

  A macro is made up of primitive, or leaf-level logic cells, and their
  associated connections, positioned in a placement grid. The specified
  relative locations, or <rlocs>, can be based on a relative grid, or on an
  absolute grid, called an RPM_GRID. Refer to the Vivado Design Suite User
  Guide: Implementation (UG904) for more information on absolute and relative
  placement grids

  A cell can only belong to a one macro. If you attempt to assign a
  leaf-level cell to multiple macros, the Vivado tool will return an error.
  If you attempt to assign a non-primitive cell to a macro, the tool will
  return an error.

  To change the contents of an existing macro, you must delete the macro with
  delete_macro, recreate it with create_macro, and update it with new
  contents. You cannot simply overwrite or modify an existing macro.

Arguments:

  -absolute_grid - (Optional) Use to indicate that the <rlocs> are specified
  in the absolute RPM_GRID.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <macro> - (Required) Specify the name of the macro to update.

  <rlocs> - (Required) Specify the leaf-cells to include in the macro, and
  their relative locations (RLOCs). When -absolute_grid is specified, the
  location is based on actual device coordinates instead of relative
  locations. The cells and RLOCs are specified as name-value pairs, with
  multiple leaf-cells and RLOCs assigned to a single macro as follows:

    {cell0 XmYn cell1 XmYn ... cellN XmYn} 
    

  Where:

   *  m = An integer representing the relative or absolute X coordinate of
      the preceding cell.

   *  n = An integer representing the relative or absolute Y coordinate of
      the preceding cell.

   *  Cell coordinates are relative to each other, unless the -absolute_grid
      option has been specified.

   *  The relative coordinates are based on a theoretical array of Slices,
      located relative to each other.

   *  The absolute coordinates are determined by the RPM_X and RPM_Y
      properties from actual Slices of the target device. These can be
      determined by the report_property command for selected sites.

Examples:

  The following example creates a macro named usbMacro0, sets the current
  instance to the usbEngine0/u0 module, assigns three cells to the macro,
  with a relative placement for each cell to have two of them placed inside
  the same Slice, and the third placed in a vertically adjacent Slice:

    create_macro usbMacro0  
    current_instance usbEngine0/u0  
    update_macro usbMacro0 {rx_active_reg X0Y0 \  
       rx_err_reg X0Y0 rx_valid_reg X0Y1} 
    

  The following example creates a macro named usbMacro1, assigns three cells
  to the macro using the hierarchical path to the leaf-cell, with absolute
  coordinates specified for the cells in the macro:

    create_macro usbMacro1  
    set Site1 [get_sites SLICE_X8Y77]  
    set Site2 [get_sites SLICE_X9Y77]  
    set Site3 [get_sites SLICE_X8Y78]  
    set RPM1 X[get_property RPM_X $Site1]Y[get_property RPM_Y $Site1]  
    set RPM2 X[get_property RPM_X $Site2]Y[get_property RPM_Y $Site2]  
    set RPM3 X[get_property RPM_X $Site3]Y[get_property RPM_Y $Site3]  
    update_macro usbMacro1 -absolute_grid "usbEngine1/u0/rx_active_reg $RPM1 \  
    usbEngine1/u0/rx_err_reg $RPM2 usbEngine1/u0/rx_valid_reg $RPM3" 
    

  Note: In the prior example, notice the use of Tcl variables to capture the
  Sites of interest, and extract the RPM_X and RPM_Y properties of those
  sites for use in the update_macro command. Also notice the use of quotes
  ("") instead of curly braces ({}) in the update_macro command. This is to
  allow the Tcl shell to perform variable substitution of the command. Refer
  to the Vivado Design Suite User Guide: Using Tcl Scripting (UG894) for more
  information on variables and variable substitution.

  This command reports the properties on the usbMacro1 macro to see the
  absolute grid coordinates assigned to the cells in the macro:

    report_property -all [get_macros usbMacro1] 
    

See Also:

   *  create_macro
   *  delete_macros
   *  get_macros
   *  get_property
   *  get_sites
   *  place_design
   *  report_property


@@@COMMAND: update_module_reference@@@
update_module_reference

Description: 
Refresh module reference definition and instance(s)

Syntax: 
update_module_reference  [-quiet] [-verbose] [<ips>...]

Returns: 
A return code indicating success or failure.

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<ips>]     module reference to be upgraded
              Values: IP instance name(s) within the design

Categories: 
IPFlow

Description:

  Refresh the block design cell or cells that reference module definitions
  from RTL source files by rereading the module definition from the source
  file.

  Note: This command does not cause the Vivado tool to reread the source
  file. If changes have been made to the source file it must be separately
  updated.

  This command returns a transcript of the update process as well as any
  warnings related to design changes, or returns nothing if the command
  fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <ips> - (Optional) Specifies the module references in the current design to
  upgrade. Modules can be specified by name, or returned by the get_ips
  command.

Examples:

  The following example updates the specified module references in the
  current design:

    update_module_reference {rtlRam_0 uart_0} 
    

See Also:

   *  create_bd_cell
   *  create_bd_design


@@@COMMAND: update_noc_qos@@@
update_noc_qos

Description: 
Update the NoC solution

Syntax: 
update_noc_qos  [-force] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-force]    Force update even if the existing solution is invalid
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Tools


@@@COMMAND: update_sw_parameters@@@
update_sw_parameters

Description: 
Update the dcp by adding the generated sw param info files to it

Syntax: 
update_sw_parameters  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Project

Description:

  Updates the design check points (DCPs) with the latest hardware def. This
  hardware def will have the updated sw parameters information.

  Whenever a software parameter of an IP is modified, the runs need not to go
  stale. But already generated design checkpoints need to be updated with the
  modified parameter information. This information is captured in the hwdef
  file. With update_sw_parameters command, the hwdef file is added to already
  generated design checkpoints.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example modifies a software parameter for the CIPS IP,
  generates the hw_handoff target and then updates the DCPs with the modified
  values:

    set_property -dict [list CONFIG.PS_I2C0_PERIPHERAL_ENABLE {1}] [get_bd_cells versal_cips_0]  
    generate_target hw_handoff [get_files top.bd] 
    update_sw_parameters 
    

See Also:

   *  refresh_design
   *  close_design


@@@COMMAND: update_timing@@@
update_timing

Description: 
update timing

Syntax: 
update_timing  [-full] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-full]     Perform a full timing update instead of an incremental one
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Timing

Description:

  Updates timing for the current design.

  Update the timing data to reflect any timing constraints that were added to
  the design since the timing engine was last run. This command updates the
  in-memory view of the timing database, without incurring the time of a full
  timing analysis.

  Timing is automatically updated by commands that change timing or need
  updated timing information, such as the report_timing command. The
  update_timing command lets you manually trigger the timing update to insure
  the latest constraints are applied to the timing engine.

  The update_timing command uses an incremental analysis approach by default,
  which updates only out-of-date information, to reduce process and analysis
  time. You can also specify a complete or full update to insure a
  comprehensive review of timing data in the design. However, to avoid long
  timing analysis run times, you should use the -full option only when you
  need to.

Arguments:

  -full - (Optional) Perform a complete timing analysis rather than the
  default incremental update of the timing data.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example performs a full update of the in-memory timing data:

    update_timing -full 
    

See Also:

   *  report_timing
   *  report_timing_summary
   *  reset_timing


@@@COMMAND: upgrade_ip@@@
upgrade_ip

Description: 
Upgrade a configurable IP to a later version

Syntax: 
upgrade_ip  [-srcset <arg>] [-vlnv <arg>] [-log <arg>] [-quiet] [-verbose]
            <objects>...

Returns: 
A return code indicating success or failure.

Usage: 
  Name        Description
  -----------------------
  [-srcset]   (Optional) Specifies the source file set containing the IP to 
              be upgraded
              Default: The current source fileset
              Values: Source set name
  [-vlnv]     (Optional) Identifies the Catalog IP to which the IP will be 
              upgraded. The VLNV string maps to the IPDEF property on the IP 
              core. This is a strict comparison, and the upgrade will fail if
              the identified IP does not exist in the Catalog.
              Default: Latest version of the current IP
              Values: A string of the form '<vendor>:<library>:<name>:<versio
              n>'
  [-log]      (Optional) Identifies the log file to which the IP upgrade 
              report will be concatenated. 
              Default: An empty string, indicating that no log will be 
              written
              Values: A file path to an existing writable file, or a 
              non-existent file location in a writable directory
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <objects>   IP to be upgraded
              Values: IP instance(s) within the design, as returned by 
              'get_ips <instance name>' or 'get_bd_cells <cell name>'

Categories: 
IPFlow

Description:

  This command upgrades the specified IP cores from an older version to the
  latest version in the IP catalog.

  You can only upgrade IP that explicitly supports upgrading. The
  UPGRADE_VERSIONS property on the ipdef object indicates if there are
  upgrade versions for an IP core.

  Note: The upgrade_ip command also accepts Block Design cell IP instances as
  bd_cell objects. The command upgrades the bd_cell objects within the Block
  Design, and does not require the diagram to be open in the Vivado IP
  integrator .

Arguments:

  -srcset <arg> - (Optional) Specifies the source file set to upgrade the IP
  files in. If not specified, the default source file set is sources_1.

  -vlnv <arg> - (Optional) Specify the Vendor:Library:Name:Version attribute
  of the IP to upgrade from the IP catalog. The VLNV attribute identifies the
  object in the IP catalog.

  -log <arg> - (Optional) Specifies the name of a file to append the IP
  upgrade information to. By default the upgrade_ip command does not log its
  activities.

  Note: If the path is not specified as part of the file name, the log file
  will be written into the current project directory.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <objects> - (Required) Specifies which IP cores of Block Design cells to
  upgrade. The IP must be specified as objects returned by the get_ips
  command.

  Note: Do not use the get_ips -all option, as this can result in recursion
  issues.

Examples:

  The following example upgrades all IP cores in the current project to the
  latest version:

    upgrade_ip [get_ips] 
    

See Also:

   *  create_ip
   *  get_bd_cells
   *  get_ips
   *  import_ip
   *  open_bd_design


@@@COMMAND: upgrade_project@@@
upgrade_project

Description: 
Upgrade a project from a previous release to use the latest Vivado features.

Syntax: 
upgrade_project  [-migrate_output_products] [-log <arg>]
                 [-migrate_to_inline_hdl] [-quiet] [-verbose]

Usage: 
  Name                        Description
  ---------------------------------------
  [-migrate_output_products]  Migrate the output products directory structure
                              to the latest Vivado structure.
  [-log]                      (Optional) Identifies the log file to which the
                              project upgrade report will be concatenated. 
                              Default: An empty string, indicating that no 
                              log will be written
                              Values: A file path to an existing writable 
                              file, or a non-existent file location in a 
                              writable directory
  [-migrate_to_inline_hdl]    Migrate the utility IP (xl*/util_*) in all user
                              BDs to inline hdl .
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution

Categories: 
Project


@@@COMMAND: uplevel@@@
uplevel(n)            Tcl Built-In Commands            uplevel(n)



_________________________________________________________________

NAME
       uplevel - Execute a script in a different stack frame

SYNOPSIS
       uplevel ?level? arg ?arg ...?
_________________________________________________________________

DESCRIPTION
       All  of  the arg arguments are concatenated as if they had
       been passed to concat; the result is then evaluated in the
       variable  context indicated by level.  Uplevel returns the
       result of that evaluation.

       If level is an integer then it gives a  distance  (up  the
       procedure calling stack) to move before executing the com-
       mand.  If level consists of # followed by  a  number  then
       the  number  gives  an absolute level number.  If level is
       omitted then it defaults to 1.  Level cannot be  defaulted
       if the first command argument starts with a digit or #.

       For  example,  suppose  that  procedure a was invoked from
       top-level, and that it called b,  and  that  b  called  c.
       Suppose that c invokes the uplevel command.  If level is 1
       or #2  or omitted, then the command will  be  executed  in
       the  variable  context of b.  If level is 2 or #1 then the
       command will be executed in the variable context of a.  If
       level is 3 or #0 then the command will be executed at top-
       level (only global variables will be visible).

       The uplevel command causes the invoking procedure to  dis-
       appear  from the procedure calling stack while the command
       is being  executed.   In  the  above  example,  suppose  c
       invokes the command
              uplevel 1 {set x 43; d}
       where  d  is  another Tcl procedure.  The set command will
       modify the variable x in b's context, and d  will  execute
       at  level  3, as if called from b.  If it in turn executes
       the command
              uplevel {set x 42}
       then the set command will modify the same  variable  x  in
       b's context:  the procedure c does not appear to be on the
       call stack when d is executing.  The  info  level  command
       may  be used to obtain the level of the current procedure.

       Uplevel makes it possible to implement  new  control  con-
       structs  as  Tcl procedures (for example, uplevel could be
       used to implement the while construct as a Tcl procedure).

       The  namespace  eval  and  apply commands offer other ways
       (besides procedure calls) that the Tcl naming context  can
       change.   They  add a call frame to the stack to represent
       the namespace context.  This  means  each  namespace  eval
       command counts as another call level for uplevel and upvar
       commands.  For example, info level 1 will  return  a  list
       describing  a  command that is either the outermost proce-
       dure call or the outermost namespace eval command.   Also,
       uplevel  #0  evaluates a script at top-level in the outer-
       most namespace (the global namespace).

EXAMPLE
       As stated above, the uplevel command is useful for  creat-
       ing  new  control  constructs.   This  example  shows  how
       (without error handling) it can be used  to  create  a  do
       command that is the counterpart of while except for always
       performing the test after running the loop body:
              proc do {body while condition} {
                  if {$while ne "while"} {
                      error "required word missing"
                  }
                  set conditionCmd [list expr $condition]
                  while {1} {
                      uplevel 1 $body
                      if {![uplevel 1 $conditionCmd]} {
                          break
                      }
                  }
              }

SEE ALSO
       apply(n), namespace(n), upvar(n)

KEYWORDS
       context, level, namespace, stack frame, variables



Tcl                                                    uplevel(n)


@@@COMMAND: upvar@@@
upvar(n)              Tcl Built-In Commands              upvar(n)



_________________________________________________________________

NAME
       upvar - Create link to variable in a different stack frame

SYNOPSIS
       upvar ?level? otherVar myVar ?otherVar myVar ...?
_________________________________________________________________


DESCRIPTION
       This command arranges for one or more local  variables  in
       the  current procedure to refer to variables in an enclos-
       ing procedure call or to global variables.  Level may have
       any  of  the  forms permitted for the uplevel command, and
       may be omitted if the first letter of the  first  otherVar
       is not # or a digit (it defaults to 1).  For each otherVar
       argument, upvar makes the variable by  that  name  in  the
       procedure  frame  given  by  level (or at global level, if
       level is #0) accessible in the current  procedure  by  the
       name given in the corresponding myVar argument.  The vari-
       able named by otherVar need not exist at the time  of  the
       call;   it  will be created the first time myVar is refer-
       enced, just like an ordinary  variable.   There  must  not
       exist  a  variable  by the name myVar at the time upvar is
       invoked.  MyVar is always treated as the name of  a  vari-
       able,  not  an array element.  An error is returned if the
       name looks like an array element, such as a(b).   OtherVar
       may refer to a scalar variable, an array, or an array ele-
       ment.  Upvar returns an empty string.

       The upvar command simplifies the implementation  of  call-
       by-name  procedure  calling  and  also  makes it easier to
       build new control constructs as Tcl procedures.  For exam-
       ple, consider the following procedure:
              proc add2 name {
                 upvar $name x
                 set x [expr {$x + 2}]
              }
       If  add2  is invoked with an argument giving the name of a
       variable, it adds two  to  the  value  of  that  variable.
       Although  add2  could  have been implemented using uplevel
       instead of upvar, upvar  makes  it  simpler  for  add2  to
       access the variable in the caller's procedure frame.

       namespace  eval  is  another way (besides procedure calls)
       that the Tcl naming context can change.  It  adds  a  call
       frame  to  the  stack  to represent the namespace context.
       This means each namespace eval command counts  as  another
       call  level  for uplevel and upvar commands.  For example,
       info level 1 will return a list describing a command  that
       is  either  the  outermost procedure call or the outermost
       namespace eval command.   Also,  uplevel  #0  evaluates  a
       script at top-level in the outermost namespace (the global
       namespace).

       If an upvar variable is unset (e.g. x in add2 above),  the
       unset  operation affects the variable it is linked to, not
       the upvar variable.  There is no way  to  unset  an  upvar
       variable  except  by  exiting the procedure in which it is
       defined.  However, it is possible  to  retarget  an  upvar
       variable by executing another upvar command.

TRACES AND UPVAR
       Upvar  interacts with traces in a straightforward but pos-
       sibly unexpected manner.  If a variable trace  is  defined
       on  otherVar,  that  trace  will  be  triggered by actions
       involving myVar.  However, the  trace  procedure  will  be
       passed  the  name of myVar, rather than the name of other-
       Var.  Thus, the output  of  the  following  code  will  be
       "localVar" rather than "originalVar":
              proc traceproc { name index op } {
                 puts $name
              }
              proc setByUpvar { name value } {
                 upvar $name localVar
                 set localVar $value
              }
              set originalVar 1
              trace variable originalVar w traceproc
              setByUpvar originalVar 2

       If  otherVar  refers to an element of an array, then vari-
       able traces set for the entire array will not  be  invoked
       when  myVar is accessed (but traces on the particular ele-
       ment will still be invoked).  In particular, if the  array
       is  env,  then changes made to myVar will not be passed to
       subprocesses correctly.

EXAMPLE
       A decr command that works like incr  except  it  subtracts
       the value from the variable instead of adding it:
              proc decr {varName {decrement 1}} {
                  upvar 1 $varName var
                  incr var [expr {-$decrement}]
              }


SEE ALSO
       global(n), namespace(n), uplevel(n), variable(n)


KEYWORDS
       context, frame, global, level, namespace, procedure, vari-
       able



Tcl                                                      upvar(n)


@@@COMMAND: validate_board_files@@@
validate_board_files

Description: 
Check whether the XML files describing a board in the given directory are valid.
Only supported for board XML files with schema_version>=2.0.
The XML files must contain an appropriate DOCTYPE declaration to be fully validated. Examples:
<!DOCTYPE board SYSTEM "board.dtd"> <!-- for board.xml -->
<!DOCTYPE ip_presets SYSTEM "preset.dtd"> <!-- for preset.xml -->
<!DOCTYPE part_info SYSTEM "part0_pins.dtd"> <!-- for part0_pins.xml -->

Note that if a project is open and an IP repository loaded, this command will also validate
certain IP and Interface attributes used in the board definition against the current IP repository.

Syntax: 
validate_board_files  [-doctype_inject <arg>] [-quiet] [-verbose] [<dir>]

Returns: 
ok if all board files are valid

Usage: 
  Name               Description
  ------------------------------
  [-doctype_inject]  The name of a directory containing the dtd files 
                     (board.dtd, part0_pins.dtd, preset.dtd) for DOCTYPE 
                     injection in board files. If the path is invalid (or 
                     does not contain the dtd files), then the injection will
                     not happen. Use "" to inject the default dtd files from 
                     the vivado install data path.
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  [<dir>]            The name of a directory containing the board files 
                     (board.xml, part0_pins.xml, preset.xml) to be checked

Categories: 
Object, Project, XPS, Board


@@@COMMAND: validate_cluster_configurations@@@
validate_cluster_configurations

Description: 
Validate list of cluster configurations

Syntax: 
validate_cluster_configurations  [-quiet] [-verbose] <cluster_configurations>

Usage: 
  Name                      Description
  -------------------------------------
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution
  <cluster_configurations>  List of cluster configurations

Categories: 
cluster_configuration


@@@COMMAND: validate_hw_platform@@@
validate_hw_platform

Description: 
Validate the specified harware platform

Syntax: 
validate_hw_platform  [-verbose] [-quiet] [<file>]

Returns: 
The name of the shell file

Usage: 
  Name        Description
  -----------------------
  [-verbose]  Dump verbose information
  [-quiet]    Ignore command errors
  [<file>]    Xilinx Shell Archive file
              Values: Path to shell file.

Categories: 
Vitis, Platform

Description:

  Validate a Xilinx support archive (XSA) file to ensure it has the required
  content for the platform.

  This command returns information related to the validation of the XSA, or
  returns an error if it fails.

Arguments:

  -verbose - (Optional) Provide detailed information related to the XSA and
  the validation process.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  <file> - (Optional) Specify the path and file name of the XSA file.

  Note: If the path is not specified as part of the file name, the tool will
  search for the specified file in the current working directory and then in
  the directory from which the tool was launched.

Examples:

  The following example validates the specified XSA, returning verbose
  information related to the platform contents:

    validate_hw_platform C:/Data/zc706.xsa -verbose

See Also:

   *  open_hw_platform
   *  write_hw_platform


@@@COMMAND: validate_ixc_design@@@
validate_ixc_design

Description: 
Validate IXC design

Syntax: 
validate_ixc_design  [-check_phy_connectivity] [-quiet] [-verbose]

Usage: 
  Name                       Description
  --------------------------------------
  [-check_phy_connectivity]  Checks all used hardware level connections for 
                             MIG IPs
  [-quiet]                   Ignore command errors
  [-verbose]                 Suspend message limits during command execution

Categories: 
Memory


@@@COMMAND: validate_noc@@@
validate_noc

Description: 
Generate the block data model of the design and validate NoC

Syntax: 
validate_noc  [-force] [-part <arg>] [-pr_config <arg>] [-quiet] [-verbose]
              [<fileset>]

Usage: 
  Name          Description
  -------------------------
  [-force]      Force validate design
  [-part]       Target part
  [-pr_config]  Partition configuration to validate
  [-quiet]      Ignore command errors
  [-verbose]    Suspend message limits during command execution
  [<fileset>]   Current fileset to validate

Categories: 
Vivado, Design


@@@COMMAND: variable@@@
variable(n)           Tcl Built-In Commands           variable(n)



_________________________________________________________________

NAME
       variable - create and initialize a namespace variable

SYNOPSIS
       variable ?name value...? name ?value?
_________________________________________________________________


DESCRIPTION
       This command is normally used within a namespace eval com-
       mand to create one or more variables within  a  namespace.
       Each  variable  name is initialized with value.  The value
       for the last variable is optional.

       If a variable name does not exist, it is created.  In this
       case,  if  value is specified, it is assigned to the newly
       created variable.  If no value is specified, the new vari-
       able  is  left undefined.  If the variable already exists,
       it is set to value if value is specified or left unchanged
       if no value is given.  Normally, name is unqualified (does
       not include the names of any containing  namespaces),  and
       the variable is created in the current namespace.  If name
       includes any namespace qualifiers, the variable is created
       in  the  specified  namespace.   If  the  variable  is not
       defined, it will be visible to the  namespace  which  com-
       mand, but not to the info exists command.

       If  the  variable  command is executed inside a Tcl proce-
       dure, it creates local variables linked to the correspond-
       ing namespace variables (and therefore these variables are
       listed by info vars.)  In this way  the  variable  command
       resembles  the global command, although the global command
       only links to variables in the global namespace.   If  any
       values  are  given,  they are used to modify the values of
       the associated namespace variables.  If a namespace  vari-
       able does not exist, it is created and optionally initial-
       ized.

       A name argument cannot  reference  an  element  within  an
       array.   Instead,  name should reference the entire array,
       and the initialization value should be  left  off.   After
       the  variable has been declared, elements within the array
       can be set using ordinary set or array commands.

EXAMPLES
       Create a variable in a namespace:
              namespace eval foo {
                  variable bar 12345
              }

       Create an array in a namespace:
              namespace eval someNS {
                  variable someAry
                  array set someAry {
                      someName  someValue
                      otherName otherValue
                  }
              }

       Access variables in namespaces from a procedure:
              namespace eval foo {
                  proc spong {} {
                      # Variable in this namespace
                      variable bar
                      puts "bar is $bar"

                      # Variable in another namespace
                      variable ::someNS::someAry
                      parray someAry
                  }
              }


SEE ALSO
       global(n), namespace(n), upvar(n)


KEYWORDS
       global, namespace, procedure, variable



Tcl                            8.0                    variable(n)


@@@COMMAND: version@@@
version

Description: 
Returns the build for Vivado and the build date

Syntax: 
version  [-short] [-quiet] [-verbose]

Returns: 
Vivado version

Usage: 
  Name        Description
  -----------------------
  [-short]    Return only the numeric version number
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
Report

Description:

  Returns the version number of the AMD tool. This includes the software
  version number, build number and date, and copyright information.

Arguments:

  -short - (Optional) Returns the version number of the software only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example returns only the version number for the software:

    version -short 
    


@@@COMMAND: vwait@@@
vwait(n)              Tcl Built-In Commands              vwait(n)



_________________________________________________________________

NAME
       vwait - Process events until a variable is written

SYNOPSIS
       vwait varName
_________________________________________________________________


DESCRIPTION
       This  command enters the Tcl event loop to process events,
       blocking the application if no events are ready.  It  con-
       tinues processing events until some event handler sets the
       value of variable varName.  Once varName has been set, the
       vwait  command  will  return  as soon as the event handler
       that modified varName completes.  varName must be globally
       scoped  (either  with a call to global for the varName, or
       with the full namespace path specification).

       In some cases the vwait command may not return immediately
       after  varName  is set.  This can happen if the event han-
       dler that sets varName does not complete immediately.  For
       example,  if an event handler sets varName and then itself
       calls vwait to wait for a different variable, then it  may
       not  return  for  a  long time.  During this time the top-
       level vwait is blocked waiting for the  event  handler  to
       complete, so it cannot return either.

EXAMPLES
       Run  the  event-loop  continually  until  some event calls
       exit.  (You can use any variable not mentioned  elsewhere,
       but  the  name  forever  reminds  you  at  a glance of the
       intent.)
              vwait forever

       Wait five seconds for a connection  to  a  server  socket,
       otherwise  close  the  socket  and  continue  running  the
       script:
              # Initialise the state
              after 5000 set state timeout
              set server [socket -server accept 12345]
              proc accept {args} {
                 global state connectionInfo
                 set state accepted
                 set connectionInfo $args
              }

              # Wait for something to happen
              vwait state

              # Clean up events that could have happened
              close $server
              after cancel set state timeout

              # Do something based on how the vwait finished...
              switch $state {
                 timeout {
                    puts "no connection on port 12345"
                 }
                 accepted {
                    puts "connection: $connectionInfo"
                    puts [lindex $connectionInfo 0] "Hello there!"
                 }
              }


SEE ALSO
       global(n), update(n)


KEYWORDS
       event, variable, wait



Tcl                            8.0                       vwait(n)


@@@COMMAND: wait_on_runs@@@
wait_on_runs

Description: 
Block execution of further Tcl commands until the specified run(s) complete(s).

Syntax: 
wait_on_runs  [-timeout <arg>] [-exit_condition <arg>] [-quiet] [-verbose]
              <runs>...

Usage: 
  Name               Description
  ------------------------------
  [-timeout]         Maximum time to wait for the run(s) to complete (in 
                     minutes)
                     Default: -1
  [-exit_condition]  Exit condition for wait on run, 
                      1) ALL 
                      2. ANY_ONE 
                      3. ANY_ONE_MET_TIMING
                     Default: ALL
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <runs>             Runs to wait on

Categories: 
Project

Description:

  Blocks the execution of Tcl commands until the specified runs have completed
  either successfully or in error, or until the specified amount of time has
  elapsed.

  This command will tell you when the run(s) have terminated, but not the results
  of the run. To determine if the run has completed successfully, you could
  query the value of the PROGRESS property of the run:

    launch_runs synth_1   
    wait_on_runs synth_1   
    if {[get_property PROGRESS [get_runs synth_1]] != "100%"} {   
       error "ERROR: synth_1 failed"   
    } 
    
  The wait_on_runs command can be used for runs that have been launched. If
  the specified runs have not been launched when the wait_on_runs command is
  used, you will get an error. Runs that have already completed do not return
  an error.

  Note: This command is used for running the tool in batch mode or from Tcl
  scripts. It is ignored when running interactively from the GUI.

Arguments:

  -timeout <arg> - (Optional) The time in minutes that the wait_on_runs
  command should wait until the run(s) finishes. This allows you to define a
  period of time beyond which the tool should resume executing Tcl commands
  even if the specified run(s) has not finished execution. The default value of
  -1 is used if timeout is not specified, meaning that there is no limit to
  the amount of time the tool will wait for the run(s) to complete.

  -exit_condition - (Optional) The exit condition that wait_on_runs command will
  use to check in order to stop waiting on runs for completion. It takes the 
  following values
    1) ALL - with this exit condition the wait_on_runs command will wait for all
             the runs execution to finish
    2) ANY_ONE - with this exit condition the wait_on_runs command will wait until 
                 any one of the runs finishes execution
    3) ANY_ONE_MET_TIMING - with this exit condition the wait_on_runs command will
                            wait until any of the runs meets timing

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <runs> - (Required) The name of the run(s) to wait on.

Examples:

  The following example launches the impl_1 run, and then waits for the
  specified run to complete, or to wait for one hour, whichever occurs first:

    launch_runs impl_1  
    wait_on_runs -timeout 60 impl_1 
    
  The following example launches the impl_1 and impl_2 runs, and then waits for the
  specified runs to complete, or to wait for one hour, whichever occurs first:

    launch_runs impl_1 impl_2 
    wait_on_runs -timeout 60 -exit_condition ALL impl_1 impl_2

  The following example launches the impl_1 and impl_2 runs, and then waits for any one 
  of the specified runs to complete, or to wait for one hour, whichever occurs first:

    launch_runs impl_1 impl_2 
    wait_on_runs -timeout 60 -exit_condition ANY_ONE impl_1 impl_2

  The following example launches the impl_1 and impl_2 runs, and then waits for any one 
  of the specified runs to meet timing, or to wait for one hour, whichever occurs first:

    launch_runs impl_1 impl_2 
    wait_on_runs -timeout 60 -exit_condition ANY_ONE_MET_TIMING impl_1 impl_2

See Also:

   *  launch_runs


@@@COMMAND: webserver@@@
webserver

Description: 
Start and Stop the webserver. With no arguments this gives the state of the webserver (running or stopped), URL, key value, and active connections.

Syntax: 
webserver  [-start] [-stop] [-open] [-external] [-browser <arg>] [-port <arg>]
           [-key <arg>] [-quiet] [-verbose]

Usage: 
  Name         Description
  ------------------------
  [-start]     start the webserver if not running
  [-stop]      stop the webserver if running
  [-open]      start if not running and open a browser
  [-external]  allow connections from external hosts. Only valid with 
               start/open
  [-browser]   optional browser to use when opening HTML. Implies 'open'
  [-port]      webserver port. Use 0 to choose an open port. Only valid with 
               'start'
               Default: 0
  [-key]       none, auto, or a string to be used as a security key (website 
               password).
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution

Categories: 



@@@COMMAND: webtalk_add_data@@@
webtalk_add_data

Description: 
Internal task add data to the Webtalk manager's data model.

Syntax: 
webtalk_add_data  -client <arg> [-context <arg>] -key <arg> [-value <arg>]
                  [-desc <arg>] [-html <arg>] [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -client     string value that is the client name. Must have been registered
              via webtalk_register_client.
  [-context]  string value that is the context for the data.
              Default: empty
  -key        string value that is the key for the data.
  [-value]    string value that is the value for the data.
              Default: empty
  [-desc]     string value that is the description for the data.
              Default: empty
  [-html]     string value that is the html tag for the data.
              Default: empty
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: webtalk_dump_data@@@
webtalk_dump_data

Description: 
Dump the webtalk data model created by calls to webtalk_add_data to standard output.

Syntax: 
webtalk_dump_data  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: webtalk_init@@@
webtalk_init

Description: 
Initialize webtalk for use by an external client.

Syntax: 
webtalk_init  [-webtalk_dir <arg>] [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  [-webtalk_dir]  Directory that webtalk can use for temporary files. Must 
                  exist and be writable.
                  Default: current working directory
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 



@@@COMMAND: webtalk_register_client@@@
webtalk_register_client

Description: 
Register a new client with the Webtalk manager.

Syntax: 
webtalk_register_client  -client <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -client     string value that is the name of the client.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: webtalk_terminate@@@
webtalk_terminate

Description: 
Terminate webtalk mgr previously initialized via webtalk_init.

Syntax: 
webtalk_terminate  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: webtalk_transmit@@@
webtalk_transmit

Description: 
Internal task add data to the Webtalk manager's data model.

Syntax: 
webtalk_transmit  -clientid <arg> -regid <arg> -xml <arg> -html <arg>
                  -wdm <arg> [-intro <arg>] [-curlverbose] [-quiet] [-verbose]

Usage: 
  Name            Description
  ---------------------------
  -clientid       integer value uniquely identifying the client.
  -regid          string value that is the customer's registration id.
  -xml            string value that is the name of the xml file to generate.
  -html           string value that is the name of the html file to generate.
  -wdm            string value that is the name of the webtalk data mapping 
                  file to use.
  [-intro]        if specified will replace the standard intro verbage in the
                  HTML report. Can use HTML markup in this string.
                  Default: empty
  [-curlverbose]  Run xilcurl with --verbose flag if true.
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution

Categories: 



@@@COMMAND: while@@@
while(n)              Tcl Built-In Commands              while(n)



_________________________________________________________________

NAME
       while  -  Execute script repeatedly as long as a condition
       is met

SYNOPSIS
       while test body
_________________________________________________________________


DESCRIPTION
       The while command evaluates test as an expression (in  the
       same  way that expr evaluates its argument).  The value of
       the expression must a proper boolean value;  if  it  is  a
       true  value then body is executed by passing it to the Tcl
       interpreter.  Once body has been  executed  then  test  is
       evaluated  again, and the process repeats until eventually
       test evaluates to a false boolean  value.   Continue  com-
       mands may be executed inside body to terminate the current
       iteration of the loop, and break commands may be  executed
       inside  body  to  cause immediate termination of the while
       command.   The  while  command  always  returns  an  empty
       string.

       Note: test should almost always be enclosed in braces.  If
       not, variable substitutions will be made before the  while
       command   starts  executing,  which  means  that  variable
       changes made by the loop body will not  be  considered  in
       the  expression.   This is likely to result in an infinite
       loop.  If test is enclosed in braces,  variable  substitu-
       tions  are  delayed  until  the  expression  is  evaluated
       (before each loop iteration), so changes in the  variables
       will be visible.  For an example, try the following script
       with and without the braces around $x<10:
              set x 0
              while {$x<10} {
                  puts "x is $x"
                  incr x
              }

EXAMPLE
       Read lines from a channel until we get to the end  of  the
       stream, and print them out with a line-number prepended:
              set lineCount 0
              while {[gets $chan line] >= 0} {
                  puts "[incr lineCount]: $line"
              }


SEE ALSO
       break(n), continue(n), for(n), foreach(n)


KEYWORDS
       boolean value, loop, test, while



Tcl                                                      while(n)


@@@COMMAND: write_abstract_shell@@@
write_abstract_shell

Description: 
Write an abstract shell checkpoint of the current design

Syntax: 
write_abstract_shell  -cell <arg> [-force] [-quiet] [-verbose] <file>

Returns: 
The name of the checkpoint file

Usage: 
  Name        Description
  -----------------------
  -cell       Create an abstract shell for this reconfigurable cell
  [-force]    Overwrite existing checkpoint file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Design checkpoint file
              Values: A filename with alphanumeric characters and .dcp 
              extension.

Categories: 
FileIO


@@@COMMAND: write_aie_intf_constraints@@@
write_aie_intf_constraints

Description: 
Writes aie interface placement information as constraints file.

Syntax: 
write_aie_intf_constraints  [-no_fixed_only] [-cell <arg>] [-force] [-quiet]
                            [-verbose] [<file>]

Usage: 
  Name              Description
  -----------------------------
  [-no_fixed_only]  Export fixed and non-fixed placement (by default only 
                    fixed placement is exported)
  [-cell]           AIE IP Name for which constraints to be written)
  [-force]          Overwrite existing file.
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  [<file>]          Output AIE Interface constraints file.

Categories: 
AIE, FileIO


@@@COMMAND: write_bitstream@@@
write_bitstream

Description: 
Write a bitstream for the current design

Syntax: 
write_bitstream  [-force] [-verbose] [-raw_bitfile] [-no_binary_bitfile]
                 [-mask_file] [-readback_file] [-logic_location_file]
                 [-bin_file] [-reference_bitfile <arg>] [-cell <arg>]
                 [-no_partial_bitfile] [-quiet] <file>

Usage: 
  Name                    Description
  -----------------------------------
  [-force]                Overwrite existing file
  [-verbose]              Print write_bitstream options
  [-raw_bitfile]          Write raw bit file (.rbt)
  [-no_binary_bitfile]    Do not write binary bit file (.bit)
  [-mask_file]            Write mask file (.msk)
  [-readback_file]        Write readback files (.rbd, .msd)
  [-logic_location_file]  Write logic location file (.ll)
  [-bin_file]             Write binary bit file without header (.bin)
  [-reference_bitfile]    Reference bitfile to be used for generating partial
                          bitstream
  [-cell]                 Create only partial bitstream for named cell
  [-no_partial_bitfile]   Do not write partial bit files for a Dynamic 
                          Function eXchange design
  [-quiet]                Ignore command errors
  <file>                  The name of the .bit file to generate

Categories: 
FileIO

Description:

  Writes a bitstream file for the current project. This command must be run
  on an Implemented Design. The bitstream written will be based on the open
  Implemented Design.

  The files that can be generated by the write_bitstream command include the
  following:

   *  Bit file: The binary bitstream file (.bit).

   *  Raw (ASCII) Bit file: A raw bit file (.rbt) that contains the same
      information as the binary bitstream file, but is in ASCII format.

   *  Mask file: A mask file (.msk) that has mask data in place of the
      configuration data in the bitstream file.

   *  Logic Location file: An ASCII logic location file (.ll) that shows the
      bitstream position of latches, flip-flops, LUTs, Block RAMs, and I/O
      block inputs and outputs.

   *  Bin file: A binary file (.bin) containing only the device programming
      data, without the header information found in the standard binary Bit
      file.

   *  Reference Bit file: An incremental bitstream file containing only the
      differences from the current bitstream and a specified reference
      bitstream.

  The AMD Vivado tool can write a compressed bitstream, if you have enabled
  compression by setting the BITSTREAM.GENERAL.COMPRESS property on the
  implemented design. Refer to the Vivado Design Suite User Guide:
  Programming and Debugging (UG908) for more information on Device
  Configuration Properties. To enable compression use the following Tcl
  command:

    set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]

  The Vivado Design Suite can also write an encrypted bitstream to protect
  the intellectual property of the design in the bitstream. To create an
  encrypted bitstream you must first define the type of encryption to be
  used, and the encryption key. You can accomplish this most easily using the
  Encryption page of the Edit Device Properties dialog box in the Vivado IDE.
  Refer to the Vivado Design Suite User Guide: Programming and Debugging
  (UG908) for more information on the Edit Device Properties dialog box.

  You can also enable encryption by manually defining the appropriate
  properties on the implemented design as follows:

    set_property BITSTREAM.ENCRYPTION.ENCRYPT YES [get_designs impl_1]
    set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT EFUSE [get_designs impl_1]
    set_property BITSTREAM.ENCRYPTION.KEY0 8675309 [get_designs impl_1]

  The properties associated with encryption include:

   *  BITSTREAM.ENCRYPTION.ENCRYPT - Enables encryption when generating the
      bitstream with write_bitstream. This property accepts a value of YES or
      NO.

   *  BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT - Specifies the method for
      storing the encryption key on the hardware device. The accepted values
      are BBRAM and EFUSE, referring to battery-backed SRAM or the eFUSE
      registers on the device.

      Caution: eFUSEs are one-time programmable cells on the hardware device,
      used to store the factory-programmed Device DNA, AES-GCM encryption
      key, and user specified values. Refer to the UltraScale Architecture
      Configuration User Guide (UG570) or 7 Series FPGAs Configuration User
      Guide (UG470) for more information on eFUSE registers.

   *  BITSTREAM.ENCRYPTION.KEY0 - Specifies the encryption key to apply to
      the BBRAM, or the eFUSE FUSE_KEY registers on the device. The key can
      be specified as a 256 bit value, and will be required when accessing an
      encrypted bitstream to program, verify, or readback the hw_device.

      Tip: The write_bitstream command will write an NKY file of the same
      name as the bitstream file (with the .nky extension) when the
      BITSTREAM.ENCRYPTION.KEY0 property is specified. This encryption file
      can then be used in other designs by setting the
      BITSTREAM.ENCRYPTION.KEYFILE property.

   *  BITSTREAM.ENCRYPTION.KEYFILE - Specifies an encryption key file (NKY or
      NKZ) as an alternative to setting the ENCRYPTION.KEY0 property. The
      specified encryption key file will be used during bitstream encryption.

      Important: If both the BITSTREAM.ENCRYPTION.KEY0 and
      BITSTREAM.ENCRYPTION.KEYFILE properties are defined, the tool will use
      the encryption key specified by the BITSTREAM.ENCRYPTION.KEY0 property
      and return a message to that effect.

Arguments:

  -force - (Optional) Force the overwrite of an existing bitstream file of
  the same name.

  -verbose - (Optional) Print details of the options applied to the bitstream
  when running the write_bitsream command.

  -raw_bitfile - (Optional) Write a raw bit file (.rbt) which contains the
  same information as the binary bitstream file, but is in ASCII format. The
  output file will be named <file>.rbt.

  -no_binary_bitfile - (Optional) Do not write the binary bitstream file
  (.bit). Use this command when you want to generate the ASCII bitstream or
  mask file, or to generate a bitstream report, without also generating the
  binary bitstream file.

  -mask_file - (Optional) Write a mask file (.msk), which has mask data where
  the configuration data is in the bitstream file. This file determines which
  bits in the bitstream should be compared to readback data for verification
  purposes. If a mask bit is 0, that bit should be verified against the
  bitstream data. If a mask bit is 1, that bit should not be verified. The
  output file will be named <file>.msk.

  -readback_file - (Optional) Lets you perform the Readback function by
  creating the necessary readback files (.rbd, .msd).

   *  .rbd - An ASCII file that contains only expected readback data,
      including pad words and frames. No commands are included.

   *  .msd - An ASCII file that contains only mask information for
      verification, including pad words and frames. No commands are included.

  -logic_location_file - (Optional) Creates an ASCII logic location file
  (.ll) that shows the bitstream position of latches, flip-flops, LUTs, Block
  RAMs, and I/O block inputs and outputs. Bits are referenced by frame and
  bit number in the location file to help you observe the contents of FPGA
  registers.

  -bin_file - (Optional) Creates a binary file (.bin) containing only device
  programming data, without the header information found in the standard
  bitstream file (.bit).

  -reference_bitfile <arg> - (Optional) Read a reference bitstream file, and
  output an incremental bitstream file containing only the differences from
  the specified reference file. This partial bitstream file can be used for
  incrementally programming an existing device with an updated design.

  -cell <arg> - (Optional) Write a partial bitstream file for the specified
  cell or block level of the design hierarchy. The bitstream file will only
  include programming data for the specified cell or module.

  -no_partial_bitfile - (Optional) Do not output a partial bit file for a
  Partial Reconfiguration module or design. Refer to the Vivado Design Suite
  User Guide: Dynamic Function eXchange (UG909) for more information on the
  PR flow.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  <file> - (Required) The name of the bitstream file (.bit) to write. If you
  do not specify a file extension, the .bit extension will be added by the
  tool, but you cannot specify an extension other than .bit.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example enables compression and writes a bitstream file of
  the specified name:

    set_property BITSTREAM.GENERAL.COMPRESS TRUE [current_design]
    write_bitstream design1.bit

  The following example writes both the binary and ASCII forms of the
  bitstream:

    write_bitstream -raw_bitfile C:/Data/design1

  Note: The appropriate file extension will be added by the tool.

See Also:

   *  create_hw_bitstream
   *  launch_runs
   *  program_hw_devices
   *  readback_hw_device
   *  verify_hw_devices


@@@COMMAND: write_bmm@@@
write_bmm

Description: 
Write a bmm file

Syntax: 
write_bmm  [-force] [-quiet] [-verbose] <file>

Returns: 
The name of the bmm file

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrite existing BMM file.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Design bmm file
              Values: A filename with alphanumeric characters and .bmm 
              extension.

Categories: 
FileIO

Description:

  The Block RAM Memory Map (BMM) file is a text file that describes how
  individual block RAMs on an FPGA are grouped together into a contiguous
  address space called an Address Block.

  The write_bmm command exports BMM information from the current design to
  the specified file. For implemented designs the BMM file will be include
  placement information. The data2mem command uses the BMM file as input to
  direct the translation of programming data into the proper form for use in
  simulation, device programming, or software development in SDK.

  The command returns the name of the output file, or an error.

Arguments:

  -force - (Optional) Overwrite the BMM file if it already exists.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename of the BMM file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Example:

  The following example writes the BMM file for the current design:

    write_bmm C:/Data/design1.bmm 
    

See Also:

   *  data2mem


@@@COMMAND: write_bsdl@@@
write_bsdl

Description: 
Generate a design specific post-configuration BSDL file (.bsd).

Syntax: 
write_bsdl  [-force] [-bsd <arg>] [-quiet] [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrite existing .bsd file
  [-bsd]      Specify an updated generic BSDL file.
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Output file name. The .bsd extension is optional.

Categories: 
FileIO

Description:

  Generate a Boundary Scan Description Language (BSDL) file (.bsd) for the
  current design that reflects the post-configuration boundary scan
  architecture of the target device.

  The boundary scan architecture for the device is changed when the device is
  configured because certain connections between the boundary scan registers
  and pad may change. These changes must be communicated to the boundary scan
  tester through a post-configuration BSDL file. Refer to the Vivado Design
  Suite User Guide: Programming and Debugging (UG908) for more information on
  the available configuration modes.

  The write_bsdl command reads a pre-configuration BSDL file for the target
  part from the Vivado Design Suite installation area, and combines that with
  post-configuration data from the current design.

  This command returns the name of the output BSDL file, or returns an error
  if it fails.

Arguments:

  -force - (Optional) Overwrite an existing BSDL file of the same name.

  -bsd <arg> - (Optional) Specify an existing BSDL file to update. Use this
  to update a generic BSDL file from the Vivado Design Suite installation
  with post-configuration data from the current design.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Specify the output file name. The .bsd extension is
  optional.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Example:

  The following example writes a BSDL file at the specified location:

    write_bsdl -force C:/Data/project/design1.bsd 
    

See Also:

   *  write_bitstream


@@@COMMAND: write_bxn@@@
write_bxn

Description: 
Export the current netlist as binary netlist

Syntax: 
write_bxn  [-force] [-quiet] [-verbose] <file>

Returns: 
the name of the output file

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrite existing file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Output file

Categories: 
FileIO


@@@COMMAND: write_cfgmem@@@
write_cfgmem

Description: 
Create file(s) for programming flash memory.

Syntax: 
write_cfgmem  [-force] -format <arg> -size <arg> [-interface <arg>] [-checksum]
              [-disablebitswap] [-loadbit <arg>] [-loaddata <arg>] [-quiet]
              [-verbose] <file>

Usage: 
  Name               Description
  ------------------------------
  [-force]           Overwrite existing file
  -format            Format of the file to generate
  -size              Size of memory that is being targeted in M Bytes (must 
                     be power of 2).
  [-interface]       Interface used to program device.
                     Default: SMAPx8
  [-checksum]        Calculate a 32-bit checksum for each file. Memory will 
                     be filed with value of 0xFF unless a different byte 
                     value is specified.
                     Default: 0xFF
  [-disablebitswap]  Disable bit swapping in a byte for bitfiles.
  [-loadbit]         Load bit files into memory from given address.
  [-loaddata]        Load data into memory from given address.
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <file>             The name of the file to generate

Categories: 
FileIO

Description:

  This command formats a design specific configuration bitstream (.bit) file,
  and any specified data files, into a specified memory configuration file
  format to program into a flash memory device using the program_hw_cfgmem
  command. Supported memory configuration file formats are MCS, BIN, and HEX.

  Note: When you generate a cfgmem file with write_cfgmem, by default the
  bits within a byte are bit-swapped, or mirrored, compared to bytes in the
  original input bitstream. You can disable bitswap using the -disablebitswap
  option as described below.

  The process whereby the design specific data is loaded or programmed into
  the AMD FPGA is called configuration. The create_hw_cfgmem command
  defines a flash memory device used for configuring and booting the hardware
  device.

  After the hw_cfgmem object is created, and associated with the hw_device,
  the configuration memory can be programmed with the bitstream and other
  data from a memory configuration file created with the write_cfgmem
  command. The hw_cfgmem object is programmed using the program_hw_cfgmem
  command.

  The write_cfgmem -loadbit command loads one or more specified bitstream
  files into the memory configuration file, filling the available memory of
  the device in an upward or downward direction from a specified starting
  address. You can also add data files to the memory configuration file, by
  specifying the starting address to load the file with -loaddata.

  Note: When using -loadbit and -loaddata to fill the memory of the device,
  you must exercise care to insure that the bitstream and data files fit into
  the available memory and do not overwrite each other. Any data collisions
  will cause the write_cfgmem command to fail with an error.

  The write_cfgmem command returns a transcript of its process when
  successful, or returns an error if it fails.

Arguments:

  -force - (Optional) Overwrite a file of the same name if one exists.

  -format [ BIN | HEX | MCS ] - (Required) The format of the memory
  configuration file to write. Supported values include BIN, HEX, and MCS.

  -size <arg> - (Required) Specify the size limit in MBytes of the PROM
  device that is being targeted. The size must be specified as a power of 2.

  -interface <arg> - (Optional) Specify the interface used to program the
  PROM device. Valid values include SMAPx8 (default), SMAPx16, SMAPx32,
  SERIALx1, SPIx1, SPIx2, SPIx4, SPIx8, BPIx8, BPIx16. This also determines
  if byte swapping is enabled or disabled. The default interface is SMAPx8.

  Note: The specified interface format of the configuration memory file is
  critical to properly programming the flash memory device with the
  program_hw_cfgmem command. You should be careful to use this option to
  match the generated file with the target cfgmem_part.

  -checksum - (Optional) Calculate a 32-bit checksum for the PROM file. The
  device memory will be filled with the default value of 0xFF unless a
  different byte value is specified. This option generates a checksum value
  appearing in the memory configuration file. This value should match the
  checksum in the device programmer. Use this option to verify that correct
  data was programmed into the flash memory.

  -disablebitswap - (Optional) Disable the default bit swapping for bytes in
  the bitstream files. By default, in the files written by write_cfgmem, the
  bits within a byte are bit-swapped, or mirrored, compared to bytes in the
  original input BIT files. This option disables the bit swapping in the
  output files.

  -loadbit <arg> - (Optional) Specify the starting address of the PROM device
  to begin loading one or more bitstream files. The option is specified as a
  string with the form:

    "up|down 0x0 <bitfile1>.bit <bitfile2>.bit" 
    

  Where:

   *  up | down - This option loads one or more BIT files into memory,
      starting from the specified address, in either and upward or a downward
      direction.

   *  0x0 - The starting address to load the bitstream, specified as a
      hexadecimal value.

   *  <bitfile>.bit - The bitstream (.bit) file to load into the flash memory
      device. You can specify multiple bitstream files, causing the files to
      be concatenated in a daisy chain.

  Note: You can only specify the -loadbit option once, but you can repeat the
  arguments as needed to load multiple bitstream files from different
  starting addresses:

    -loadbit "up 0 bitfile1.bit up 0xFFFFFF bitfile2.bit"  
    

  -loaddata <arg> - (Optional) Load the specified data files into the memory
  of the configuration device from the starting address. The -loaddata option
  is a string in the same form as the -loadbit argument, specifying the
  direction, starting address, and data file names to add into the memory
  configuration file. Data files will be added to the flash memory device as
  is, with no additional formatting.

   *  up | down - This option loads one or more DATA files into memory,
      starting from the specified address, in either and upward or a downward
      direction.

   *  0x0 - The starting address to load the data file, specified as a
      hexadecimal value.

   *  <data_file> - A data file to load into the flash memory device. You can
      specify multiple data files, causing the files to be concatenated in a
      daisy chain.

  Note: Although both -loadbit and -loaddata are marked as optional, at least
  one argument must be used to provide the data for the memory configuration
  file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename of the memory configuration file to write.
  The file extension will match the format specified (.mcs), and is not
  required as part of the file name.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Example:

  The following example writes the specified memory configuration file in the
  MCS format, with a size limit of 64 MB, loading the specified bitstream
  file moving up from the starting address:

    write_cfgmem -format MCS -size 64 -loadbit "up 0x0 \  
    C:/Data/Vivado_Debug/project_debug/project_debug.runs/impl_1/sinegen_demo.bit" \  
    config_memory1 
    

See Also:

   *  create_hw_cfgmem
   *  current_hw_device
   *  delete_hw_cfgmem
   *  get_cfgmem_parts
   *  get_property
   *  program_hw_cfgmem
   *  readback_hw_cfgmem
   *  set_property
   *  write_bitstream


@@@COMMAND: write_checkpoint@@@
write_checkpoint

Description: 
Write a checkpoint of the current design

Syntax: 
write_checkpoint  [-force] [-cell <arg>] [-logic_function_stripped] [-encrypt]
                  [-key <arg>] [-quiet] [-verbose] [<file>]

Returns: 
The name of the checkpoint file

Usage: 
  Name                        Description
  ---------------------------------------
  [-force]                    Overwrite existing checkpoint file
  [-cell]                     Write a checkpoint of this cell
  [-logic_function_stripped]  Convert INIT strings on LUTs & RAMBs to fixed 
                              values. Note that the resulting netlist will be
                              nonfunctional.
  [-encrypt]                  Encrypt unprotected modules using IEEE 1735 IP 
                              security version 2
  [-key]                      Key file to be used with -encrypt option; 
                              Otherwise, use Xilinx public key
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution
  [<file>]                    Design checkpoint file
                              Values: A filename with alphanumeric characters
                              and .dcp extension.

Categories: 
FileIO

Description:

  Saves the design at any point in the design process so that you can quickly
  import it back into the tool as needed. A design checkpoint (DCP) can
  contain the netlist, the constraints, and any placement and routing
  information from the implemented design. Tool parameters and non-netlist 
  properties are not saved inside dcp archive.

  Tip: In the Project mode, a DCP will not have timing constraints after
  synthesis. The timing constraints are annotated against the design during
  open_run or link_design commands, or when launching an implementation run.
  To create a DCP with timing constraints, create the design checkpoint after
  opt_design, or after the implementation run completes.

  Use the open_checkpoint command to load a design from a saved checkpoint 
  file.

Arguments:

  -force - (Optional) Overwrite an existing checkpoint file of the same name
  if it already exists.

  -cell <arg> - (Optional) Instructs the tool to output the contents of the
  specified hierarchical cell into a checkpoint file. Only one cell can be
  specified for output.

  -logic_function_stripped - (Optional) Hides the INIT values for LUTs and
  RAMs by converting them to fixed values. This creates a checkpoint for
  debug purposes that does not behave as expected during simulation or
  synthesis. The fixed value uses hex values 6 and 9 (binary 0110 and 1001
  respectively) to represent a XOR function and enable constant propagation.
  For example, a 64-bit value will be changed to 64'h6996966996696996.

  Note: The INIT values are not changed if they already match this pattern.

  -encrypt - (Optional) Encrypt the checkpoint netlist.

  -key <arg> - (Optional) Specify the key to use in encrypting and decrypting
  the checkpoint. If not specified, the Xilinx public key is used by default.

  -incremental_synth - (Optional) Enables the synthesis checkpoint to be used
  for incremental synthesis. The checkpoint must be enabled for incremental
  synthesis to be used for subsequent incremental synthesis runs.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the checkpoint file to be created. A .dcp
  extension will be added if no extension is specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example creates the specified checkpoint file, overwriting a
  file of the same name if one already exists:

    write_checkpoint C:/Data/checkpoint1 -force

  Note: The tool will add the .dcp extension to the specified file name, and
  will overwrite an existing checkpoint1.dcp file.

See Also:

   *  open_checkpoint
   *  read_checkpoint
   *  link_design



@@@COMMAND: write_chipscope_archive@@@
write_chipscope_archive

Description: 
chipscope container

Syntax: 
write_chipscope_archive  [-rp <arg>] [-force] [-quiet] [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name        Description
  -----------------------
  [-rp]       rp name
  [-force]    Overwrite existing file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      container file name

Categories: 
FileIO, Debug


@@@COMMAND: write_csv@@@
write_csv

Description: 
Export package pin and port placement information

Syntax: 
write_csv  [-force] [-quiet] [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrite existing file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Pin Planning CSV file

Categories: 
FileIO

Description:

  Writes package pin and port placement information into a comma separated
  value (CSV) file.

  The specific format and requirements of the CSV file are described in the
  Vivado Design Suite User Guide: I/O and Clock Planning (UG899).

Arguments:

  -force - (Optional) Overwrite the CSV file if it already exists.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename of the CSV file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example exports a CSV file from the current project:

    write_csv C:/Data/pinList.csv 
    

See Also:

   *  read_csv


@@@COMMAND: write_debug_probes@@@
write_debug_probes

Description: 
Write debug probes to a file

Syntax: 
write_debug_probes  [-cell <arg>] [-no_partial_ltxfile] [-force] [-quiet]
                    [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name                   Description
  ----------------------------------
  [-cell]                Hierarchical name of the Reconfigurable Partition 
                         Cell
  [-no_partial_ltxfile]  Do not generate partial LTX files
  [-force]               Overwrite existing file
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution
  <file>                 Debug probes file name (default extension is .ltx)

Categories: 
FileIO, Debug

Description:

  Writes an AMD Vivado Design Suite logic analyzer probes file containing ILA
  debug cores and signal probes added to the current design. The debug probes
  data file typically has a .ltx file extension.

  ILA cores are added to the design using the create_debug_core command. ILA
  probes are added to the design using the create_debug_port command, and
  connected to nets in your design using the connect_debug_port command.

  The specific information and use of the debug probes file is described in
  the Vivado Design Suite User Guide: Vivado Programming and Debugging
  (UG908).

Arguments:

  -cell <arg> - (Optional) Specify the hierarchical name of a reconfigurable
  partition cell to export a partial probe file.

  -force - (Optional) Overwrite the specified file if it already exists.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The file name of the debug probes file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example write a debug probe file from the current design:

    write_debug_probes C:/Data/designProbes.ltx

See Also:

   *  create_debug_core
   *  connect_debug_cores
   *  implement_debug_core


@@@COMMAND: write_device_image@@@
write_device_image

Description: 
Write programmable device image

Syntax: 
write_device_image  [-force] [-verbose] [-raw_partitions] [-mask_file]
                    [-logic_location_file] [-cell <arg>] [-no_pdi]
                    [-no_partial_pdifile] [-quiet] <file>

Usage: 
  Name                    Description
  -----------------------------------
  [-force]                Overwrite existing file
  [-verbose]              Print write_device_image options
  [-raw_partitions]       Write raw CFI and NPI partition files (.rcfi and 
                          .rnpi)
  [-mask_file]            Write mask file (.msk_cfi)
  [-logic_location_file]  Write logic location file (.ll)
  [-cell]                 Create only partial device image for named cell
  [-no_pdi]               Do not generate pdi file
  [-no_partial_pdifile]   Do not write partial pdi files for a Dynamic 
                          Function eXchange design
  [-quiet]                Ignore command errors
  <file>                  The name of the .pdi file to generate. If extension
                          is included, only allowed extension is .pdi

Categories: 
FileIO


@@@COMMAND: write_edif@@@
write_edif

Description: 
Export the current netlist as an EDIF file

Syntax: 
write_edif  [-pblocks <args>] [-cell <arg>] [-force] [-security_mode <arg>]
            [-logic_function_stripped] [-quiet] [-verbose] <file>

Returns: 
the name of the output file or directory

Usage: 
  Name                        Description
  ---------------------------------------
  [-pblocks]                  Export netlist for these pblocks (not valid 
                              with -cell)
  [-cell]                     Export netlist for this cell (not valid with 
                              -pblocks)
  [-force]                    Overwrite existing file
  [-security_mode]            If set to 'all', and some of design needs 
                              encryption then whole of design will be written
                              to a single encrypted file
                              Default: multifile
  [-logic_function_stripped]  Convert INIT strings on LUTs & RAMBs to fixed 
                              values
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution
  <file>                      Output file (directory with -pblocks or -cell)

Categories: 
FileIO

Description:

  Writes the current netlist as an EDIF file, or outputs the contents of
  specific Pblocks or hierarchical cells as EDIF netlist files.

  In the case of either the -pblocks or -cell option being used, this
  argument specifies a directory name where the EDIF netlist files for each
  Pblock or cell will be written. The EDIF netlist file will be named after
  the Pblock or cell. If the directory specified does not exist, the tool
  will return an error.

Arguments:

  -pblocks <arg> - (Optional) Instructs the tool to output the contents of
  the specified Pblocks as EDIF netlist files. The contents of each Pblock
  will be written to a separate EDIF file. These files can be added as design
  source files to netlist projects, but are not intended to be read into a
  design using update_design. Use the -cell option to write EDIF netlists for
  use with update_design.

  -cell <arg> - (Optional) Instructs the tool to output the contents of the
  specified hierarchical cell as EDIF netlist files. Only one cell can be
  specified for output.

  Note: The -pblocks and -cell options are mutually exclusive. Although they
  are optional arguments, only one can be specified at one time.

  -force - (Optional) Overwrite the EDIF file if it already exists.

  -security_mode [ multifile | all ] - (Optional) Write a multiple EDIF files
  when encrypted IP is found in the design, or write a single file.

   *  multifile - This is the default setting. By default the command writes
      out the full design netlist to the specified file. However, if the
      design contains secured IP, it creates an encrypted file containing the
      contents of the secured module. This will result in the output of
      multiple EDIF files, containing secured and unsecured elements of the
      design.

   *  all - Write both encrypted and unencrypted cells to a single specified
      file.

  -logic_function_stripped - (Optional) Hides the INIT values for LUTs & RAMs
  by converting them to fixed values in order to create a netlist for debug
  purposes that will not behave properly in simulation or synthesis.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename of the EDIF file to write. The default
  file extension for an EDIF netlist is .edn. If the -pblocks or -cell
  options are used, the name specified here refers to a directory rather than
  a single file.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes an EDIF netlist file for the whole design to
  the specified file name:

    write_edif C:/Data/edifOut.edn 
    

  The following example outputs an EDIF netlist for all Pblocks in the
  design. The files will be written to the specified directory.

    write_edif -pblocks [get_pblocks] C:/Data/FPGA_Design/ 
    

See Also:

   *  read_edif


@@@COMMAND: write_fdts@@@
write_fdts

Description: 
Writes flattened device tree

Syntax: 
write_fdts  [-force] [-quiet] [-verbose] <file>

Returns: 
success/failure status of applied action.

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrites the existing fdts file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      fdts file (Values: A filename with alphanumeric characters and 
              .dts extention.) 

Categories: 
Project


@@@COMMAND: write_guide_info@@@
write_guide_info

Description: 
Write placement information of instances and terms

Syntax: 
write_guide_info  [-quiet] [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      file name

Categories: 



@@@COMMAND: write_hw@@@
The command 'write_hw' is auto loaded by Tcl. To explicitly load the command type 'load_features labtools'.

@@@COMMAND: write_hw_emu_dir@@@
write_hw_emu_dir

Description: 
Write the Xilinx Shell Archive for the current design

Syntax: 
write_hw_emu_dir  [-force] [-quiet] [-verbose] [<output_dir>]

Returns: 
The name of the Shell file

Usage: 
  Name            Description
  ---------------------------
  [-force]        Overwrite existing output directory
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  [<output_dir>]  Output directory name
                  Default: .

Categories: 
Vitis, Platform, FileIO


@@@COMMAND: write_hw_platform@@@
write_hw_platform

Description: 
Write the Xilinx Shell Archive for the current design

Syntax: 
write_hw_platform  [-fixed] [-force] [-include_bit] [-include_bin]
                   [-include_sim_content] [-minimal] [-hw] [-hw_emu]
                   [-rp <arg>] [-rm <arg>] [-static] [-quiet] [-verbose]
                   [<file>]

Returns: 
The name of the Shell file

Usage: 
  Name                    Description
  -----------------------------------
  [-fixed]                Write fixed Shell.
  [-force]                Overwrite existing Xilinx Shell Archive file
  [-include_bit]          Include bit file(s) in the Shell.
  [-include_bin]          Include bin file(s) in the Shell.
  [-include_sim_content]  Include simulaton files in the Shell.
  [-minimal]              Add only minimal files in the Shell.
  [-hw]                   Write shell for use in hardware only.
  [-hw_emu]               Write shell for use in hardware emulation only.
  [-rp]                   Write shell for the reconfigurable module at this 
                          instance path. The specific RM is selected by the 
                          active configuration or by '-rm'. This option is 
                          valid for Versal designs only.
  [-rm]                   Specifies the name of a reconfigurable module for 
                          use with '-rp'. This option is valid for Versal 
                          designs only.
  [-static]               Write shell for the static portion of a DFX design.
                          This option is valid for Versal designs only.
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  [<file>]                Device Support Archive file
                          Values: A filename with alphanumeric characters and
                          .xsa extension.

Categories: 
Vitis, Platform, FileIO

Description:

  Writes a Xilinx support archive (XSA) of the current design for use as a
  hardware platform.

  All platforms are dynamically implemented during compilation, meaning that
  the accelerator logic coming is implemented along with some or all of the
  logic contained in the hardware platform design. The XSA represents the
  required portion of the hardware platform. The hardware platform design
  used to create a XSA consists of an AMD Vivado IP integrator subsystem
  design with all the required board interface IP cores configured and
  connected to the device I/Os. The Vivado project must also include several
  required XSA and PFM properties needed to define the XSA.

  This command reports the name of the XSA file written, or returns an error
  if it fails.

Arguments:

  -fixed - (Optional) Overwrite a fixed shell XSA, which enables the platform
  for use in the software development flow, but not for use in acceleration.

  -force - (Optional) Overwrite the XSA file if it already exists.

  -include_bit - (Optional) Include the bitstream for the current design in
  the XSA. By default MCS files are created by write_hw_platform, and the
  bitstreams are discarded. When this option is specified, bitstream files
  are preserved for use in debugging the platform.

  -include_sim_content - (Optional) Export data needed to support hardware
  emulation while creating the XSA. This option requires special features of
  the hardware platform, and is not generally recommended.

  -minimal - (Optional) Include only those files in the XSA that are required
  to run the Vitis flow. Do not add anything extra. When this option is
  specified, the write_hw_platform command ignores other options that add
  content to the XSA, for example, -include_bit and -include_sim_content
  options.

  -hw - (Optional) Writes out the XSA that can only be used in a hardware
  only platform.

  -hw_emu - (Optional) Writes out the XSA that can only be used in a hardware
  emulation only platform.

  -rp - (Optional) Writes shell for the reconfigurable module at this instance
  path. The specific RM is selected by the active configuration or by -rm.
  This option is valid for Versal designs only.

  -rm - (Optional) Specifies the name of a reconfigurable module for use with
  -rp. This option is valid for Versal designs only.

  -static - (Optional) Writes shell for the static portion of a DFX design.
  This option is valid for Versal designs only.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the XSA file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes the XSA for the current project, overwriting
  an XSA file of the same name if one exists.

    write_hw_platform -force C:/Data/vck190.xsa

  The following example writes the XSA for a hardware emulation only platform.

    write_hw_platform -hw_emu C:/Data/vck190.xsa

See Also:

   *  open_hw_platform
   *  validate_hw_platform


@@@COMMAND: write_hw_platform_metadata@@@
write_hw_platform_metadata

Description: 
Write the unified JSON metadata file for the current design

Syntax: 
write_hw_platform_metadata  [-quiet] [-verbose] [<file>]

Returns: 
The name of the unified JSON metadata file

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<file>]    Unified JSON metadata file
              Values: A filename with alphanumeric characters and .json 
              extension.

Categories: 
Vitis, Platform, FileIO

Description:

  Writes a JSON metadata file for the platform represented by the current
  design.

  This command returns the name of the JSON file written, or returns an error
  if it fails.

Arguments:

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the JSON file to write. Must use the .json
  file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes the JSON file for the current project:

    write_hw_platform_metadata C:/Data/zc102_platform.json

See Also:

   *  open_hw_platform
   *  validate_hw_platform
   *  write_hw_platform


@@@COMMAND: write_hwdef@@@
write_hwdef

Description: 
Writes hardware definition for use in the software development

Syntax: 
write_hwdef  [-force] [-quiet] [-verbose] <file>

Returns: 
success/failure status of applied action.

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrites the existing hardware definition file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Hardware definition file (Values: A filename with alphanumeric 
              characters and .hwdef extention.) 

Categories: 
Project

Description:

  Writes a hardware definition (.hwdef) file for use in the software
  development tools (SDK).

  The write_hwdef command is intended to simplify the movement of designs
  from the Vivado Design Suite to software development in SDK. This command
  is run automatically by the Vivado Design Suite when generating the output
  products for a top-level design that includes a block design with an
  embedded processor like MicroBlaze, or Zynq-7000 SoC. Block designs are
  created in the IP integrator of the Vivado Design Suite with the
  create_bd_design command.

  Each Block Design and HIP generates a hardware container file with .hwdef
  extension. The container file includes device metadata and hardware design 
  files.

  The write_hwdef command returns nothing if successful, or an error if the
  command fails.

Arguments:

  -force - (Optional) Overwrite and existing hardware definition file if one
  exists. If this option is not specified, then the Vivado Design Suite will
  not overwrite an existing file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Specify the name of the hardware definition file. The
  file can include the path and file extension. The default file extension of
  .hwdef is used if an extension is not specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example creates the specified hardware definition file:

    write_hwdef  -force C:/Data/ug940/lab1/zynq_design.hdf  
    

See Also:

   *  create_bd_design
   *  launch_sdk
   *  write_sysdef


@@@COMMAND: write_hwx@@@
write_hwx

Description: 
Writes the hardware files archive for the current design for use in the Labtool

Syntax: 
write_hwx  [-force] [-bit <arg>] [-bin <arg>] [-ll <arg>] [-msk <arg>]
           [-nky <arg>] [-rbt <arg>] [-ltx <arg>] [-quiet] [-verbose] <file>

Returns: 
The name of the hw file

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrite existing hardware archive file
  [-bit]      Bitstream file 
  [-bin]      Binary configuration data file with no header information
  [-ll]       Logical location file
  [-msk]      Mask file
  [-nky]      Encryption key file
  [-rbt]      Raw bit file
  [-ltx]      Debug probes file
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      Hardware archive file
              Values: A filename with alphanumeric characters and .hwx 
              extension.

Categories: 
FileIO


@@@COMMAND: write_ibis@@@
write_ibis

Description: 
Write IBIS models for current floorplan

Syntax: 
write_ibis  [-force] [-allmodels] [-nopin] [-no_pin_mapping] [-truncate <arg>]
            [-component_name <arg>] [-ibs <arg>] [-pkg <arg>] [-quiet]
            [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name               Description
  ------------------------------
  [-force]           Overwrite existing .ibs file
  [-allmodels]       Include all available buffer models for this 
                     architecture.  By default, only buffer models used by 
                     the floorplan are included.
                     
  [-nopin]           Disable inclusion of the per-pin modeling of the package
                     (path from the die pad to the package pin). Package is 
                     reduced to a single RLC transmission line model applied 
                     to all pins and defined in the [Package] section.
                     Default: This option is not set. IBISWriter includes 
                     per-pin modeling of the package as RLC matrices in the 
                     [Define Package Model] section if this data is 
                     available.
                     
  [-no_pin_mapping]  Do not output the [Pin Mapping] section for ultrascale, 
                     ultrascale plus, and versal.
                     
  [-truncate]        Maximum length for a signal name in the output file. 
                     Names longer than this will be truncated. This property 
                     can be set to truncate  signal name length to 20, 40, or
                     0 (unlimited).
                     Default: Truncate signal name length to 40 characters in
                     accordance with the IBIS version 4.2 specification.
                     
                     Default: 40
  [-component_name]  Specify a new component name for use in multiple FPGA 
                     designs to replace the default.
                     
  [-ibs]             Specify an updated generic IBIS models file.
  [-pkg]             Specify an updated per pin parasitic package data file.
                     
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <file>             Output file name. The .ibs extension is optional.

Categories: 
FileIO

Description:

  Writes the IBIS models for the target device in the current design. The
  netlist and implementation details from the design are combined with the
  per-pin parasitic package information to create a custom IBIS model for the
  design.

  Because the write_ibis command incorporates design information into the
  IBIS Model, you must have an RTL, Netlist, or Implemented Design open when
  running this command.

Arguments:

  -force - (Optional) Overwrite the IBIS file if it already exists.

  -allmodels - (Optional) Export all buffer models for the target device. By
  default the tool will only write buffer models used by the design.

  -nopin - (Optional) Disable per-pin modeling of the path from the die pad
  to the package pin. The IBIS model will include a single RLC transmission
  line model representation for all pins in the [Package] section. By default
  the file will include per-pin modeling of the package as RLC matrices in
  the [Define Package Model] section if this data is available.

  -no_pin_mapping - (Optional) Do not output the Pin Mapping section for
  UltraScale, UltraScale+, and Versal devices.

  -truncate <arg> - (Optional) The maximum length for a signal name in the
  output file. Names longer than this will be truncated. Valid values are 20,
  40, or 0 (unlimited). By default the signal names are truncated to 40
  characters in accordance with the IBIS version 4.2 specification.

  -component_name <arg> - (Optional) Specify a new component name to change
  the default value, which is the device family.

  -ibs <arg> - (Optional) Specify an updated generic IBIS models file. This
  is used to override the IBIS models found in the tool installation under
  the parts directory. This argument is required for any parts that do not
  have generic models in the installation directory.

  -pkg <arg> - (Optional) Specify an updated per pin parasitic package data
  file. This is used to override the parasitic package file found in the tool
  installation hierarchy under the parts directory. This argument is required
  for any parts that do not have generic models in the installation
  directory.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename of the IBIS file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example exports all buffer models for the target device,
  eliminates truncation of signal names, and specifies the file name and path
  to write:

    write_ibis -allmodels -truncate 0 C:/Data/FPGA_Design/ibisOut.txt 
    


@@@COMMAND: write_inferred_xdc@@@
write_inferred_xdc

Description: 
Write file with inferred xdc timing constraints

Syntax: 
write_inferred_xdc  [-force] [-all] [-append] [-async_clocks] [-all_async_reg]
                    [-clock_groups] [-clocks] [-excl_clocks] [-exceptions]
                    [-io_constraints] [-merge_existing_constraints]
                    [-name <arg>] [-quiet] [-verbose] [<file>]

Usage: 
  Name                           Description
  ------------------------------------------
  [-force]                       Overwrite existing file.
  [-all]                         Generate all constraints except missing 
                                 clocks which are generated with the -clocks 
                                 option
  [-append]                      Append the constraints to file, don't 
                                 overwrite the constraints file
  [-async_clocks]                Find asynchronous clock groups
  [-all_async_reg]               Find the missing ASYNC_REG property for safe
                                 and unsafe Clock Domain Crossing
  [-clock_groups]                Find asynchronous and exclusive clock 
                                 groups, equivalent to options -async_clocks 
                                 -excl_clocks
  [-clocks]                      Find missing clock definitions
  [-excl_clocks]                 Find logically and physically exclusive 
                                 clock groups
  [-exceptions]                  Find missing exceptions
  [-io_constraints]              Find missing input and output delays
  [-merge_existing_constraints]  Add existing user defined constraints to the
                                 generated constraints
  [-name]                        Start constraints wizard in a GUI panel with
                                 this name. Do other command options can be 
                                 combined with -name.
  [-quiet]                       Ignore command errors
  [-verbose]                     Suspend message limits during command 
                                 execution
  [<file>]                       Filename to write constraints into

Categories: 
FileIO, Timing

Description:

  You can use the write_inferred_xdc to find constraints that should be
  defined in the open synthesized or implemented design. Write timing
  constraints that are automatically generated by the Vivado timing engine,
  rather than defined in an existing XDC file and added to the design.

  Run write_inferred_xdc -clocks first to define suggested clock and
  generated clock constraints. The suggested clock constraints will be
  defined with a period of 1 ns. You can edit the recommended constraints to
  create clocks and generated clocks with the required clock period to meet
  the needs of your design.

  You can add the edited constraints file into the design using read_xdc, or
  add_files, and update_timing.

  You may need to run the write_inferred_xdc command multiple times, using
  various options like -clock_groups or -async_clocks, to capture all
  inferred timing constraints from the fully clocked design. You can use an
  iterative process of writing and sourcing the inferred clocked constraints,
  and then writing and sourcing additional constraint files to capture all
  inferred constraints. See the example below for more information.

  This command returns a transcript of the process when successful, or
  returns an error if it fails.

Arguments:

  -force - (Optional) Overwrite the specified output file if it already exists.

  -all - (Optional) Write all XDC constraints for the current design, except
  missing clocks. The missing clocks can be separately obtained using the
  -clocks option.

  -append - (Optional) Append the output of the command to the specified file
  rather than overwriting it.

  Note: The -append option can only be used with the -file option.

  -async_clocks - (Optional) Find asynchronous clock groups that should be
  defined using the set_clock_groups -asynchronous constraint.

  -all_async_reg - (Optional) Find missing ASYNC_REG properties for safe and
  unsafe Clock Domain Crossing.

  -clock_groups - (Optional) Find asynchronous and exclusive clock groups,
  equivalent to specifying both the -async_clocks and -excl_clocks options in
  the same command.

  -clocks - (Optional) Find missing clock and generated clock definitions
  that should be defined by the create_clock and create_generated_clock
  constraints.

  Note: This is the default report generated by the write_inferred_xdc
  command when no other constraint options are specified.

  -excl_clocks - (Optional) Find physically and logically exclusive clock
  groups that should be defined using the set_clock_groups
  -physically_exclusive constraint or the set_clock_groups
  -logically_exclusive constraint.

  -exceptions - (Optional) Find missing timing exceptions that should be
  defined by timing constraints such as set_false_path or set_multicycle_path
  that change the default assumptions for timing paths in the design.

  -io_constraints <arg> - (Optional) Find missing I/O constraints such as
  set_input_delay, and set_output_delay.

  -merge_existing_constraints - (Optional) This option reports existing
  user-defined constraints matching the type of inferred constraints
  currently being reported by the write_inferred_xdc command.

  Note: The existing constraints are written to the specified file as
  comments so that the inferred constraints file can be read into the Vivado
  Design Suite using read_xdc without conflicting with existing constraints.

  -name <arg> - (Optional) Specifies the name of the results set to return
  the reported constraints to when running in the Vivado IDE.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename to write the inferred XDC constraints to.
  You should specify a file extension as part of the file name, as the
  write_inferred_xdc command will not provide one.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes the inferred clock constraints in the current
  design:

    write_inferred_xdc -clocks C:/Data/design1_inferred_clocks.xdc 
    

  The write_inferred_xdc command may need to be run multiple times to capture
  all the inferred constraints, as is shown in this example:

    write_inferred_xdc -clocks clocks.xdc  
    source clocks.xdc  
    write_inferred_xdc -all all.xdc  
    source all.xdc  
    write_inferred_xdc -async_clocks async.xdc  
    source async.xdc  
    

See Also:

   *  create_clock
   *  create_generated_clock
   *  report_exceptions
   *  report_timing
   *  set_clock_groups
   *  set_false_path
   *  set_input_delay
   *  set_multicycle_path
   *  set_output_delay
   *  write_xdc


@@@COMMAND: write_ip_tcl@@@
write_ip_tcl

Description: 
Write a tcl script on disk that will recreate a given IP.

Syntax: 
write_ip_tcl  [-force] [-no_ip_version] [-ip_name <arg>] [-multiple_files]
              [-quiet] [-verbose] [<objects>] [<tcl_filename>...]

Returns: 
IP TCL file

Usage: 
  Name               Description
  ------------------------------
  [-force]           Flag to overwrite existing file.
  [-no_ip_version]   Flag to not include the IP version in the IP VLNV in 
                     create_ip commands. NOTE - this may have implications if
                     there are major IP version changes.
  [-ip_name]         Set the name of the IP. This argument is not supported 
                     for multiple IP.
  [-multiple_files]  Flag to create a .tcl file for each IP supplied as an 
                     argument
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  [<objects>]        IP(s) to be written to disk
                     Values: IP instance(s) as returned by 'get_ips <instance
                     name>'
  [<tcl_filename>]   File path to the exported tcl file. If the path is a 
                     directory and multiple IP are given as an argument, a 
                     file for each IP will be created.
                     Default: ./

Categories: 
Object, Project, IPFlow


@@@COMMAND: write_iphys_opt_tcl@@@
write_iphys_opt_tcl

Description: 
Write iPhysOpt script.

Syntax: 
write_iphys_opt_tcl  [-place] [-binary] [-quiet] [-verbose] [<output>]

Usage: 
  Name        Description
  -----------------------
  [-place]    write out placement information
  [-binary]   write out in binary format
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  [<output>]  tcl file containing iPhysOpt script

Categories: 
Tools

Description:

  Because physical optimization requires timing data that is only available
  after placement, the phys_opt_design command cannot be run prior to
  placement. However, the interactive physical optimization feature, or
  iphys_opt_design, lets you write out the physical optimizations performed
  on the post-placed design, and then apply those optimizations to the design
  netlist prior to placement. Refer to the Vivado Design Suite User Guide:
  Implementation (UG904) for more information on interactive physical
  optimization.

  Interactive physical optimization can be used in two ways:

   *  Applying post-placement physical optimizations to the pre-placement
      netlist to improve the overall placement result and improve design
      performance.

   *  Saving the physical optimizations in a Tcl script to be repeated as
      needed.

  The write_iphys_opt_tcl command can only be run after placement, on a
  design that has had actual physical optimizations performed.

  Note: You can use the report_phys_opt command to report the physical
  optimizations that have been performed on the design.

  The output is a Tcl script file with a sequence of iphys_opt_design
  commands listing the specific optimizations performed by the
  phys_opt_design command. The iphys_opt Tcl script can be edited to change
  the specific optimizations performed. The Tcl script provides a history of
  the physical optimizations performed on the design after placement, marked
  by date and history.

  Note: The iphys_opt Tcl script contains the specific optimizations
  performed by the phys_opt_design command, but does not include placement
  and routing changes or results.

  This command returns nothing if successful, or returns an error if it fails.

Arguments:

  -place - (Optional) Write out placement data for optimized cells in the
  design, as well as the physical optimization Tcl commands. The default
  iphys_opt Tcl script does not include the placement data.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <output> - (Required) The name of the interactive physical optimization Tcl
  file to write. You should specify the path, name, and extension for the
  file.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes the physical optimizations that have been
  performed in the current design to the specified Tcl script:

    write_iphys_opt_tcl C:/Data/myDesign_physopt.tcl 
    

See Also:

   *  iphys_opt_design
   *  phys_opt_design
   *  read_iphys_opt_tcl
   *  report_phys_opt


@@@COMMAND: write_mem_info@@@
write_mem_info

Description: 
Write the Memory Map Info of the design to a .mmi file.

Syntax: 
write_mem_info  [-cell <arg>] [-no_partial_mmi] [-force_detect_xpm] [-force]
                [-quiet] [-verbose] <file>

Returns: 
The name of the .mmi file

Usage: 
  Name                 Description
  --------------------------------
  [-cell]              Create only partial .mmi for named cell
  [-no_partial_mmi]    Do not write partial bit files for a Dynamic Function 
                       eXchange design
  [-force_detect_xpm]  Traverse netlist and check for XPM
  [-force]             Overwrite existing mem info xml file
  [-quiet]             Ignore command errors
  [-verbose]           Suspend message limits during command execution
  <file>               Design mem info file
                       Values: A filename with alphanumeric characters and 
                       .mmi extension.

Categories: 
FileIO

Description:

  This command writes a memory information (MMI) file defining the BRAM
  placement and address ranges to create a memory map of the design.

  Note: write_mem_info requires an open implemented design so that the memory
  information includes the BRAM placement data, as well as the address
  ranges, required for proper programming.

  The memory map information (MMI) file, written by the write_mem_info
  command, is a text file that describes how individual Block RAMs on the
  AMD device are grouped together to form a contiguous address space
  called an Address Block.

  The mem info file (MMI) contains memory mapping information similar to the
  Block Memory Map (BMM) file, but in a format that can be read by the
  updatemem command to merge with a bitstream (BIT) file. The updatemem
  command uses the MMI file to identify the physical BRAM resource that maps
  to a specific address range. Refer to the UpdateMEM User Guide (UG1580)
  for more information on running updatemem.

  This command returns the name of the file created, or returns an error if
  it fails.

Arguments:

  -force - (Optional) Overwrite an existing memory info file if one exists.
  If this option is not specified, then the Vivado Design Suite will not
  overwrite an existing file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Specify the name of the memory info file to write. The
  file can include the path and file extension. The default file extension of
  .mmi is used if an extension is not specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Example:

  The following example creates the memory mapping file from the open design:

    write_mem_info C:/Data/design1.mmi 
    

See Also:

   *  write_bmm
   *  write_sysdef



@@@COMMAND: write_messages@@@
write_messages

Description: 
Write Vivado messages to the specified file.

Syntax: 
write_messages  [-severity <args>] [-force] [-message_db <arg>]
                [-suppression <arg>] [-modified_severity <arg>] [-quiet]
                [-verbose] [<file>]

Usage: 
  Name                  Description
  ---------------------------------
  [-severity]           Message severity list to query, e.g. "ERROR", 
                        "CRITICAL WARNING", "WARNING", "INFO", "STATUS", 
                        "ALL" or "OUTPUT".
  [-force]              Overwrite existing file.
  [-message_db]         Message source file name, e.g. xst.xmsgs, rds.pb.
  [-suppression]        Write suppressed messages, e.g. "SUPPRESSED", 
                        "UNSUPPRESSED", "ALL". 
                        SUPPRESSED : Write only suppressed messages. 
                        UNSUPPRESSED : Write unsuppressed messages. 
                        ALL : Write both suppressed and unsuppressed 
                        messages.
                        Default: ALL
  [-modified_severity]  Write modified Severity messages, e.g. "MODIFIED", 
                        "UNMODIFIED", "ALL". 
                        MODIFIED : Write only changed severity messages.
                        UNMODIFIED : Write unchanged severity messages. 
                        ALL : Write both changed and unchanged severity 
                        messages.
                        Default: ALL
  [-quiet]              Ignore command errors
  [-verbose]            Suspend message limits during command execution
  [<file>]              Filename to output result to.

Categories: 
FileIO

Description:

  The write_messages command writes AMD Vivado Design Suite messages 
  to the specified file. The command returns the name of the output 
  file or an error.

Arguments:

  -severity - (Optional) Message severity list to query, for example, ERROR,
  CRITICAL, CRITICAL WARNING, WARNING, INFO, STATUS, ALL, OR OUTPUT.

  where,

   *  All: Reports all messages with severities ERROR, CRITICAL WARNING,
      WARNING, INFO, AND STATUS

   *  OUTPUT: Reports all the message types which are reported in the
      vivado.log file.

  Default value is : ALL

  -message_db - (Optional) Message source file name, for example, xst.xmsgs
  or rds.pb.

  -suppression - (Optional) Write suppressed messages, for example,
  SUPPRESSED, UNSUPPRESSED, ALL.

   *  SUPPRESSED : Write only suppressed messages

   *  UNSUPPRESSED : Write unsuppressed messages

   *  ALL : Write both suppressed and unsuppressed messages

   *  Default: No

  -modified_severity - (Optional) Write modified severity messages, for
  example, MODIFIED, UNMODIFIED, ALL.

   *  MODIFIED: Write only changed severity messages

   *  UNMODIFIED : Write unchanged severity messages

   *  ALL: Write both changed and unchanged severity messages

   *  Default: Both

  -force - (Optional) Overwrites an existing file if one exists. If this
  option is not specified, then the AMD Vivado Design Suite does not
  overwrite an existing file.

  <file> - (Required) Specify the name of the memory info file to write. The
  file can include the path and file extension.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

Examples:

  The following example writes the suppressed messages to the suppressed.log
  file.

    write_messages -suppression SUPPRESSED -file suppressed.log -force

See Also:

   *  set_msg_config
   *  get_msg_config


@@@COMMAND: write_noc_solution@@@
write_noc_solution

Description: 
Write Solution To JSON File

Syntax: 
write_noc_solution  -file <arg> [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  -file       Output Solution File In JSON Format
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 
NOC


@@@COMMAND: write_placer_checkpoint@@@
write_placer_checkpoint

Description: 
Write Placer Checkpoint

Syntax: 
write_placer_checkpoint  [-force] [-quiet] [-verbose] <directory>

Usage: 
  Name         Description
  ------------------------
  [-force]     Overwrite existing checkpoint directory for current phase
  [-quiet]     Ignore command errors
  [-verbose]   Suspend message limits during command execution
  <directory>  Design checkpoint directory
               Values: A directory name with alphanumeric characters

Categories: 



@@@COMMAND: write_project_tcl@@@
write_project_tcl

Description: 
(User-written application)
Export Tcl script for re-creating the current project


Syntax: 
write_project_tcl  [-paths_relative_to <arg>] [-origin_dir_override <arg>]
                   [-target_proj_dir <arg>] [-force] [-all_properties]
                   [-no_copy_sources] [-absolute_remote_path] [-no_ip_version]
                   [-absolute_path] [-dump_project_info] [-use_bd_files]
                   [-no_bd_xlnoc] [-internal] [-validate]
                   [-ignore_msg_control_rules] [-quiet] [-verbose] <file>

Returns: 
true (0) if success, false (1) otherwise


Usage: 
  Name                         Description
  ----------------------------------------
  [-paths_relative_to]         Override the reference directory variable for 
                               source file relative paths
                               Default: Script output directory path
  [-origin_dir_override]       Set 'origin_dir' directory variable to the 
                               specified value (Default is value specified 
                               with the -paths_relative_to switch)
                               Default: None
  [-target_proj_dir]           Directory where the project needs to be 
                               restored
                               Default: Current project directory path
  [-force]                     Overwrite existing tcl script file
  [-all_properties]            Write all properties (default & non-default) 
                               for the project object(s)
  [-no_copy_sources]           Do not import sources even if they were local 
                               in the original project
                               Default: 1
  [-absolute_remote_path]      Write remote sources with absolute paths
  [-no_ip_version]             Flag to not include the IP version as part of 
                               the IP VLNV in create_bd_cell commands.
                               Default: 1
  [-absolute_path]             Make all file paths absolute wrt the original 
                               project directory
  [-dump_project_info]         Write object values
  [-use_bd_files]              Use BD sources directly instead of writing out
                               procs to create them
  [-no_bd_xlnoc]               Do not create BD xlnoc cell
                               Default: 1
  [-internal]                  Print basic header information in the 
                               generated tcl script
  [-validate]                  Runs a validate script before recreating the 
                               project. To test if the files and paths 
                               refrenced in the tcl file exists or not.
  [-ignore_msg_control_rules]  Do not imports message control rules in tcl 
                               script
  [-quiet]                     Execute the command quietly, returning no 
                               messages from the command.
  [-verbose]                   Suspend message limits during command 
                               execution
  <file>                       Name of the tcl script file to generate

Categories: 
xilinxtclstore, projutils, user-written
Description:

  Create a Tcl script to re-create the current project. The generated script
  will contain the Tcl commands for creating the project, setting the project
  type, creating filesets, adding/importing source files, and defining runs and
  run properties. The re-created project will be functionally equivalent to
  the original project.

  This generated Tcl project script and the various design sources can be stored
  in a version control system for source file management and project archival.

  To re-create the project, you should source the generated Tcl script in a 
  Vivado Tcl shell from the same directory where the script was generated. If the
  original project already exists in the same project directory, the script may
  fail with an error message that the project already exists. In this case you may
  want to run the script from a different directory path or update the generated
  script by adding a "-force" switch to the "create_project" command. 

  In the generated Tcl script, the project source files are referenced relative to
  the "origin_dir" variable. By default, the source files are referenced relative
  to the directory where the tcl script is generated. The "origin_dir" is set to "."
  (the current tcl script directory). When the script is executed from this directory,
  any source files will be referenced relative to this 'origin_dir' path value.

  In the case where the script is sourced from a different directory or physically
  moved to a different directory, then the "origin_dir" variable MUST be manually set
  relative to the new directory. Manually set the "origin_dir" to make sure that the
  source files are correctly referenced relative to the original location.

  You can have the "origin_dir" automatically set to a directory of your choice by 
  using the -paths_relative_to option. All the source file paths will be defined
  relative to the directory specified with this option.
 
  If -absolute_path is specified, the project source files will be referenced
  using absolute paths only. In this case, the script can be executed from any
  directory provided these absolute paths are accessible in the same filesystem. 

  If the original project contains IP cores, the following rules apply in the generated
  script while re-creating the project:-

  1. The IP will not be regenerated, if it was generated in the original project.

    In this case, the script will "add" the IP from the original project with
    generated synthesis/simulation products.
 
  2. The IP will be generated, if it was not generated in the original project.
  
    In this case, the script will "add" the IP from the original project and 
    create OOC synthesis runs for generating the synthesis/simulation products.

  If the original project had completed runs, those runs will be re-created with
  the same settings in the generated project; however those runs will not be
  automatically launched in order to save runtime.

Arguments:

  -paths_relative_to - (Optional) Specify the directory path relative to which
  the sources will referenced when re-creating the project. The path will be
  set for the "origin_dir" variable in the generated script.

  -target_proj_dir - (Optional) Specify the directory path where the project
  will be recreated. The tool will write "create_project" command with the
  directory path specified with this switch.

  -force - (Optional) Overwrite an existing project script file of the same
  name. If the script file already exists, the tool returns an error unless
  the -force argument is specified. 

  -all_properties - (Optional) Write all properties (default and non-default)
  for the project. The tool will write "set_property" commands for setting the
  properties for objects like project, filesets, files, runs etc. 

  Note: By default, if the -all_properties switch is not specified, then only
  the non-default properties will be written to the script.

  -no_copy_sources - (Optional) Do not import sources even if they are local to
  the original project. The tool will not import the files that were local in
  the original project into the new project. If the design contains BD sources then
  -use_bd_files switch must also be provided.

  -no_ip_version - (Optional) Flag to not include the IP version as part of the
  IP VLNV in create_bd_cell commands. NOTE - this may have implications if there 
  are major IP version changes.

  -absolute_path - (Optional) Make all file paths absolute in the generated script.
  This allows running the script from any location in that filesystem. By default the 
  file paths will be relative to the origin_dir variable.

  -dump_project_info - (Optional) Dump information about all properties to two text files, 
  <project_name>_dump.txt (short), and <project_name>_def_val.txt (detailed).

  -use_bd_files - (Optional) Use block design sources directly instead of writing out
  procs to create them. If the -no_copy_sources switch is provided the BD files will be 
  added (but not copied locally) to the project. Otherwise the files will be imported 
  (copied locally) to the project.

  -internal - (Optional) Print only basic header information in the generated tcl script.
  By default information about required file sources will also be part of the header.

  -quiet - (Optional) Execute the command quietly, returning only ERROR messages. 

  -verbose - (Optional) Temporarily override any message limits and return all
  messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The name of the output Tcl script file to be created by
   the write_project_tcl command. The tool will apply an extension of '.tcl' if
   a file extension is not supplied. 

Examples:

  The following example exports a Tcl script named "recreate.tcl" for the test project:-
  
  Start Vivado in tcl mode and execute following commands:
    % open_project test/test.xpr
    % write_project_tcl recreate.tcl
    % close_project

  The following example exports a Tcl script named "recreate.tcl" for the test
  project in the "./script" directory and specifies the "/tmp/test" directory path
  in the "create_project" command. When the "recreate.tcl" script is sourced in the
  Vivado Tcl shell, the project will be re-created in "/tmp/test" directory:-

  Start Vivado in tcl mode and execute following commands:
    % open_project test/test.xpr
    % write_project_tcl -target_proj_dir "/tmp/test" ./script/recreate.tcl
    % close_project
    % source script/recreate.tcl

  The following Tcl commands exports Tcl script for the current project and writes
  all the properties, both default or non-default values:-

  % write_project_tcl -all_properties recreate.tcl

  The following Tcl commands exports Tcl script for the current project and adds files
  that are local in this project. The recreated project will reference these files:-

  % write_project_tcl -no_copy_sources recreate.tcl

  The following Tcl and shell commands opens a test project, exports "recreate.tcl"
  script for the current project in the current working directory, creates a new
  project in ./my_test directory, prints the list of files in the new project, prints
  the current project settings and then closes the newly created project:-

  Start Vivado in tcl mode and execute following commands:
    % open_project test/test.xpr
    % write_project_tcl -force recreate.tcl
    % close_project
    % exit

  From OS shell:
    # mkdir my_test
    # cd my_test
    # vivado -mode batch -source ../recreate.tcl -tclargs --origin_dir ..

  Start Vivado in tcl mode and execute following commands:
    % open_project test/test.xpr 
    % get_files -of_objects [get_filesets sources_1]
    % report_property [current_project]
    % close_project

  The following Tcl commands creates a new project named bft_test, adds files to the
  project, sets the fileset property, exports a tcl script named "bft.tcl" in the current
  working directory, creates a new project in "./my_bft" directory, prints the list of
  files in the new project (test_1.v and test_2.v), prints the "verilog_define" property
  value and then closes the newly created project:-

  Start Vivado in tcl mode and execute following commands:
    % create_project bft_test ./bft_test
    % add_files test_1.v
    % add_files test_2.v
    % set_property verilog_define {a=10} [get_filesets sources_1]
    % write_project_tcl -force bft.tcl
    % close_project
    % exit

  From OS shell:
    # mkdir my_bft
    # cd my_bft
    # vivado -mode batch -source ../bft.tcl -tclargs --origin_dir ..
    
  Start Vivado in tcl mode and execute following commands:
    % open_project bft_test/bft_test.xpr 
    % get_files -of_objects [get_filesets sources_1]
    % get_property verilog_define [get_filesets sources_1]
    % close_project

See Also:

   *  add_files
   *  archive_project
   *  close_project
   *  create_project
   *  current_project
   *  get_files
   *  get_property
   *  open_project
   *  report_property
   *  set_property


@@@COMMAND: write_qor_suggestions@@@
write_qor_suggestions

Description: 
Write QoR Suggestions to the given file

Syntax: 
write_qor_suggestions  [-strategy_dir <arg>] [-tcl_output_dir <arg>] [-force]
                       [-of_objects <args>] [-disable_dont_touch] [-quiet]
                       [-verbose] <file>

Usage: 
  Name                   Description
  ----------------------------------
  [-strategy_dir]        Directory to create Strategy RQS & TCL files
                         Values: If passed a directory path, for each 
                         strategy suggested one set of RQS and TCL files will
                         be generated.
  [-tcl_output_dir]      Directory to create TCL files
                         Values: TCL files for the QoR suggestions will be 
                         generated in the provided directory.
  [-force]               Overwrite existing suggestions file
  [-of_objects]          List of QoR suggestion objects
  [-disable_dont_touch]  write suggestion command having DONT_TOUCH to file
  [-quiet]               Ignore command errors
  [-verbose]             Suspend message limits during command execution
  <file>                 QoR suggestions file
                         Values: A filename with alphanumeric characters and 
                         .rqs extension.

Categories: 
FileIO, Feasibility, Timing

Description:

  Write the QoR suggestions generated by the report_qor_suggestions command.
  You can combine the suggestions from the latest report with suggestions
  read into the design with read_qor_suggestions so that you can manage all
  suggestions in a single RQS file.

  To write out specific QoR suggestions, use the -of_objects option. When
  this is not specified, all suggestions will be written.

  The recommended way to manage suggestions is using RQS objects. However, it
  is possible to view and execute the commands using Tcl. Specifying the
  -tcl_output_dir option writes Tcl scripts for the automated suggestions
  that are property based.

  Implementation strategies that use machine learning to analyze the design
  can be generated running report_qor_suggestions. If you specify the
  -strategy_dir option, multiple Tcl files and one RQS file will be written
  for each strategy. The Tcl files aid integration into project or non
  project flows. The main RQS file should not be used as the suggestions are
  contained in the run specific files along with strategy information.

  This command returns the name of the output file created when successful,
  or returns an error if it fails.

Arguments:

  -strategy_dir <arg> - (Optional) Creates Tcl scripts and RQS files
  containing commands to set up implementation runs based on machine
  learning.

  -tcl_output_dir <arg> - (Optional) Creates Tcl scripts containing XDC
  commands.

  -force - (Optional) Overwrite the specified file if it already exists.

  -of_objects <args> - (Optional) Writes the specified QoR suggestion objects
  as returned by the get_qor_suggestions command. This can be used to write
  specific QoR suggestions based on specific properties.

  -disable_dont_touch - (Optional) Allows suggestions to be generated that
  reset the DONT_TOUCH property. This may lead to slightly lower MTBF and
  signals no longer being available.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Optional) Write the QoR suggestions to the specified file. If no
  file extension is specified, the .rqs extension will be added. If the
  specified file exists, an error will be returned unless the -force option
  is also specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  Note: At least one of strategy_dir, tcl_output_dir, or a file must be
  specified.

Examples:

  The following example reports QoR suggestions and write non-strategy
  suggestions to the specified file.

    report_qor_suggestions
    write_qor_suggestions C:/Data/qor_results.rqs

  The following example reports QoR suggestions and write both strategy and
  non-strategy suggestions.

    report_qor_suggestions
    write_qor_suggestions -strategy_dir C:/Data/strategy_dir C:/Data/qor_suggestions.rqs

  This creates one RQS file for each strategy suggestion, generating up to
  three by default. Each RQS file includes one strategy suggestion and all
  non-strategy suggestions. This means that for subsequent runs, one RQS file
  per run is required.

  Note: To make use of strategy suggestions, the directive for each
  implementation command (opt_design, place_design, phys_opt_design, and
  route_design) must be set to RQS. This can be configured automatically in
  project mode by sourcing the project mode Tcl script generated for each RQS
  file in the strategy_dir. There is also a non-project example Tcl script
  that demonstrates this requirement.

  The following example reports QoR suggestions and write a file with the
  commands from the suggestions in the Tcl format. This is for users who do
  not wish to use the QoR Suggestion object flow and more closely manage what
  properties are added to the design.

    report_qor_suggestions write_qor_suggestions -tcl_output_dir ./TCL

  The following example reports QoR suggestions and write a file sugg.rqs
  with only one suggestion RQS_CLOCK-1-1.

    report_qor_suggestions
    write_qor_suggestions -of_objects [get_qor_suggestions RQS_CLOCK-1-1] -file sugg.rqs

  The following example reports QoR suggestions and write a file sugg.rqs
  with only suggestions that are APPLIED previously.

    report_qor_suggestions
    write_qor_suggestions -of_objects [get_qor_suggestions -filter {APPLIED}] -file sugg.rqs

See Also:

   *  get_qor_suggestions
   *  read_qor_suggestions
   *  report_qor_suggestions


@@@COMMAND: write_readback_instances@@@
write_readback_instances

Description: 
This command writes logic instances for SNPS flow

Syntax: 
write_readback_instances  [-quiet] [-verbose]

Usage: 
  Name        Description
  -----------------------
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution

Categories: 



@@@COMMAND: write_schematic@@@
write_schematic

Description: 
Export schematic 

Syntax: 
write_schematic  [-force] [-format <arg>] [-orientation <arg>] [-scope <arg>]
                 [-name <arg>] [-quiet] [-verbose] <file>

Returns: 
name of the output file

Usage: 
  Name            Description
  ---------------------------
  [-force]        Overwrite existing file
  [-format]       Values: native or pdf. read_schematic can be used to view 
                  native format.
                  Default: native
  [-orientation]  Values: landscape or portrait
  [-scope]        Values: current_page, visible or all
                  Default: current_page
  [-name]         Schematic window title
  [-quiet]        Ignore command errors
  [-verbose]      Suspend message limits during command execution
  <file>          Output file

Categories: 
FileIO

Description:

  Output the currently opened, or specified Schematic window in the Vivado
  IDE to a file.

  The file can be written as a native ASCII file that can be read back into
  the Vivado IDE using the read_schematic command, or can be written as a PDF
  or SVG file for use outside of the Vivado Design Suite. This can be useful
  when documenting IP cores from the IP packager flow, or from the Vivado IP
  integrator.

Arguments:

  -force - (Optional) Overwrite the specified Schematic file if it already
  exists.

  -format [ native | pdf | svg ] - (Optional) Write the output file in the
  specified format. The default file format is native to the Vivado Design
  Suite, that can be read back into the tool using the read_schematic
  command. SVG is scalable vector graphics format. PDF is portable document
  format.

  Note: The -format argument is case sensitive.

  -orientation [ landscape | portrait ] - (Optional) Write the schematic in a
  vertical (portrait) or horizontal (landscape) orientation. The default is
  portrait.

  -scope [ current_page | visible | all ] - (Optional) Write the current page
  of the schematic, or the visible content displayed in the schematic window,
  or all of the schematic. The default is current_page.

  -name <arg> - (Optional) Specifies the name of the open Schematic window to
  write. Use this option to write the specified schematic window when more
  than one schematic window is opened.

  Note: When multiple schematic windows are opened, the first opened window
  is written if -name is not specified.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The path and filename of the Schematic file to write.
  The path is optional, but if one is not provided the Schematic file will be
  written to the current working directory, or the directory from which the
  Vivado tool was launched.

Example:

  The following example writes the specified Schematic window, displayed in
  the Vivado IDE, to a native format file that can later be read back into
  the Vivado Design Suite, overwriting the specified file if it already
  exists:

    write_schematic -name Schematic C:/Data/mySchematic.txt -force 
    

  The following example writes a PDF file with a horizontal view of the
  specified schematic window:

    write_schematic -format pdf -name "Schematic (2)" C:/Data/mySchematic.pdf \  
    -orientation landscape 
    

See Also:

   *  read_schematic
   *  write_bd_layout


@@@COMMAND: write_sdf@@@
write_sdf

Description: 
write_sdf command generates flat sdf delay files for event simulation

Syntax: 
write_sdf  [-process_corner <arg>] [-cell <arg>] [-filter_cell <arg>]
           [-rename_top <arg>] [-force] [-mode <arg>] [-gzip]
           [-multithread <arg>] [-quiet] [-verbose] <file>

Usage: 
  Name               Description
  ------------------------------
  [-process_corner]  Specify process corner for which SDF delays are 
                     required; Values: slow, fast
                     Default: slow
  [-cell]            Root of the design to write, e.g. des.subblk.cpu
                     Default: whole design
  [-filter_cell]     Confine sdf instances to those contained within this 
                     hierarchical cell and to nets which contain at least one
                     pin within this hierarchical cell, e.g. des.subblk.cpu
                     Default: whole design
  [-rename_top]      Replace name of top module with custom name e.g. netlist
                     Default: new top module name
  [-force]           Overwrite existing SDF file
  [-mode]            Specify sta (Static Timing Analysis) or timesim (Timing 
                     Simulation) mode for SDF
                     Default: timesim
  [-gzip]            write gzipped SDF
  [-multithread]     Run in multithread mode with specified number of threads
                     Default: -1
  [-quiet]           Ignore command errors
  [-verbose]         Suspend message limits during command execution
  <file>             File name

Categories: 
FileIO, Simulation, Timing

Description:

  Writes the timing delays for cells in the design to a Standard Delay Format
  (SDF) file.

  The output SDF file can be used by the write_verilog command to create
  Verilog netlists for static timing analysis and timing simulation.

Arguments:

  -process_corner [ fast | slow ] - (Optional) Write delays for a specified
  process corner. Delays are greater in the slow process corner than in the
  fast process corner. Valid values are `slow` or `fast`. By default, the SDF
  file is written for the slow process corner.

  -cell <arg> - (Optional) Write the SDF file from a specific cell of the
  design hierarchy. The default is to create an SDF file for the whole
  design.

  -rename_top <arg> - (Optional) Rename the top module in the output SDF file
  as specified.

  -force - (Optional) Forces the overwrite of an existing SDF file of the
  same name.

  -mode [ timesim | sta ]- (Optional) Specifies the mode to use when writing
  the SDF file. Valid values are:

   *  timesim - Output an SDF file to be used for timing simulation. This is
      the default setting.

   *  sta - Output an SDF file to be used for static timing analysis (STA).

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The file name of the SDF file to write. The SDF file is
  referenced in the Verilog netlist by the use of the -sdf_anno and -sdf_file
  arguments of the write_verilog command.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes an SDF file to the specified directory:

    write_sdf C:/Data/FPGA_Design/designOut.sdf 
    

See Also:

   *  write_verilog


@@@COMMAND: write_sysdef@@@
write_sysdef

Description: 
Writes hardware definition for use in the software development

Syntax: 
write_sysdef  [-force] [-hwdef <arg>] [-bitfile <arg>] [-pdifile <arg>]
              [-meminfo <arg>] [-quiet] [-verbose] <file>

Returns: 
success/failure status of applied action.

Usage: 
  Name        Description
  -----------------------
  [-force]    Overwrites the existing hardware definition file
  [-hwdef]    Input Hardware definition file 
  [-bitfile]  Bitstream file 
  [-pdifile]  PDI file for Versal 
  [-meminfo]  BRAM file 
  [-quiet]    Ignore command errors
  [-verbose]  Suspend message limits during command execution
  <file>      System definition file (Values: A filename with alphanumeric 
              characters and .sysdef extention.) 

Categories: 
Project

Description:

  Writes a post-implementation hardware definition of the open design,
  including the generated bitstream, for use in the software development
  tools (SDK).

  The write_sysdef command, as well as the write_hwdef command, is intended
  to simplify the movement of designs from the Vivado Design Suite to
  software development in SDK. Both of these commands are run automatically
  by the Vivado Design Suite when generating the output products for a
  top-level design that includes a block design with an embedded processor
  like MicroBlaze, or Zynq-7000 SoC. Block designs are created in the IP
  integrator of the Vivado Design Suite with the create_bd_design command.

  The write_hwdef command runs after place_design, and the write_sysdef
  command runs after write_bitstream. The sysdef file includes all of the
  contents of the hardware definition file created by the write_hwdef
  command, with the addition of the bitstream (.bit) file and the memory map
  information (.mmi).

  The write_sysdef command returns nothing if successful, or an error if the
  command fails.

Arguments:

  -force - (Optional) Overwrite and existing system definition file if one
  exists. If this option is not specified, then the Vivado Design Suite will
  not overwrite an existing file.

  -hwdef <arg> - (Required) Specify the hardware definition file to include
  in the system definition file.

  -bitfile <arg> - (Required) Specify the bitstream file to include in the
  system definition file.

  -meminfo <arg> - (Optional) Specify the BRAM memory file to include in the
  system definition file. This file can be either the memory map information
  file (.mmi) written by the write_mem_info command, or the block memory map
  file created by write_bmm.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Specify the name of the system definition file to
  write. The file can include the path and file extension. The default file
  extension of .sysdef is used if an extension is not specified.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes a system definition file from the specified
  hardware definition file, including the bitfile and the block memory map as
  specified:

    write_sysdef -hwdef "C:/Data/ug940/lab1/zynq_design.hwdef" \  
       -bitfile "C:/ug940/lab1/zynq_debug/zynq_debug.runs/impl_1/zynq_design.bit" \  
       -meminfo "C:/ug940/lab1/zynq_debug/zynq_debug.runs/impl_1/zynq_design.mmi" \  
        C:/Data/ug940/lab1/zynq_design.sysdef 
    

See Also:

   *  create_bd_design
   *  launch_sdk
   *  place_design
   *  write_bitstream
   *  write_bmm
   *  write_hwdef
   *  write_mem_info


@@@COMMAND: write_ucf@@@
write_ucf

Description: 
Export UCF information to a file or directory

Syntax: 
write_ucf  [-no_fixed_only] [-constraints <arg>] [-pblocks <args>]
           [-cell <arg>] [-quiet] [-verbose] <file>

Returns: 
name of the output file or directory

Usage: 
  Name              Description
  -----------------------------
  [-no_fixed_only]  Export fixed and non-fixed placement (by default only 
                    fixed placement will be exported)
  [-constraints]    Include constraints that are flagged invalid
                    Values: valid, invalid, all
                    Default: valid
  [-pblocks]        Export placement for these pblocks (not valid with -cell)
  [-cell]           Export placement for this cell (not valid with -pblocks)
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  <file>            Output file (directory with -pblocks, -cell)

Categories: 
FileIO

Description:

  Writes physical constraints to a user constraint file (UCF). Constraints
  can be written from the top-level, which is the default, from specific
  Pblocks, or from a specific hierarchical cell.

  This command will write the constraints from all UCF files of the active
  constraint fileset. Constraints from multiple files will be included in the
  specified UCF file.

Arguments:

  -no_fixed_only - Write both fixed and unfixed placement LOCs to the
  constraint file being written. By default only the fixed LOCs will be
  written to the UCF file. Fixed LOCs are associated with user-assigned
  placements, while unfixed LOCs are associated with tool assigned
  placements.

  -constraints <arg> - Write constraints that are flagged valid, invalid, or
  all constraints (both valid and invalid). The default behavior is to export
  only valid constraints to the UCF file. However, you can specify
  -constraints values of VALID, INVALID, or ALL.

  -pblocks <arg> - One or more Pblocks from which to write the constraints.

  -cell <arg> - The name of a hierarchical cell in the current design to
  export the constraints from. The constraints will be written to the
  specified UCF file relative to the specified cell.

  Note: A design must be open when using this option.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - The filename of the UCF file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

  Note: When you use -pblock or -cell, this argument specifies a directory
  name where the UCF files for each Pblock or cell will be written. Each UCF
  file will be named after a Pblock or cell. If the specified directory does
  not exist you will get an error.

Examples:

  The following example writes the valid and invalid constraints, including
  both fixed and unfixed LOCs, for all Pblocks found in the design to the
  specified directory:

    
    write_ucf -no_fixed_only -constraints all -pblocks [get_pblocks] C:/Data/FPGA_Design 
    

See Also:

   *  read_ucf
   *  save_design
   *  save_design_as


@@@COMMAND: write_verilog@@@
write_verilog

Description: 
Export the current netlist in Verilog format

Syntax: 
write_verilog  [-cell <arg>] [-mode <arg>] [-lib] [-port_diff_buffers]
               [-write_all_overrides] [-keep_vcc_gnd] [-rename_top <arg>]
               [-sdf_anno <arg>] [-sdf_file <arg>] [-force]
               [-include_xilinx_libs] [-logic_function_stripped]
               [-skip_clock_attributes] [-quiet] [-verbose] <file>

Returns: 
the name of the output file or directory

Usage: 
  Name                        Description
  ---------------------------------------
  [-cell]                     Root of the design to write, e.g. 
                              des.subblk.cpu
                              Default: whole design
  [-mode]                     Values: design, pin_planning, synth_stub, sta, 
                              funcsim, timesim
                              Default: design
  [-lib]                      Write each library into a separate file
  [-port_diff_buffers]        Output differential buffers when writing in 
                              -port mode
  [-write_all_overrides]      Write parameter overrides on Xilinx primitives 
                              even if the override value is the same as the 
                              default value
  [-keep_vcc_gnd]             Don't replace VCC/GND instances by literal 
                              constants on load terminals.  For simulation 
                              modes only.
  [-rename_top]               Replace top module name with custom name e.g. 
                              netlist
                              Default: new top module name
  [-sdf_anno]                 Specify if sdf_annotate system task statement 
                              is generated
  [-sdf_file]                 Full path to sdf file location
                              Default: <file>.sdf
  [-force]                    Overwrite existing file
  [-include_xilinx_libs]      Include simulation models directly in netlist 
                              instead of linking to library
  [-logic_function_stripped]  Convert INIT strings on LUTs & RAMBs to fixed 
                              values.  Resulting netlist will not behave 
                              correctly.
  [-skip_clock_attributes]    Do not write the default special clock signal 
                              attributes when writing the synthesis directive
                              in synth_stub mode.
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution
  <file>                      Which file to write

Categories: 
FileIO, Simulation

Description:

  Write a Verilog netlist of the current design or from a specific cell of
  the design to the specified file or directory. The output is a IEEE
  1364-2001 compliant Verilog HDL file that contains netlist information
  obtained from the input design files.

  You can output a complete netlist of the design or specific cell, or output
  a port list for the design, or a Verilog netlist for simulation or static
  timing analysis.

Arguments:

  -cell <arg> - (Optional) Write the Verilog netlist from a specified cell or
  block level of the design hierarchy. The output Verilog file or files will
  only include information contained within the specified cell or module.

  -mode <arg> - (Optional) The mode to use when writing the Verilog file. By
  default, the Verilog netlist is written for the whole design. Valid mode
  values are:

   *  design - Output a Verilog netlist for the whole design. This acts as a
      snapshot of the design, including all post placement, implementation,
      and routing information in the netlist.

   *  pin_planning - Output only the I/O ports for the top-level of the design.

   *  synth_stub - Output the ports from the top-level of the design for use
      as a synthesis stub.

   *  sta - Output a Verilog netlist to be used for static timing analysis
      (STA).

   *  funcsim - Output a Verilog netlist to be used for functional
      simulation. The output netlist is not suitable for synthesis.

   *  timesim - Output a Verilog netlist to be used for timing simulation.
      The output netlist is not suitable for synthesis.

  -lib - (Optional) Create a separate Verilog file for each library used by
  the design.

  Note: The -library option can only be used for simulation. Vivado synthesis
  will treat all Verilog files as being in the default work library.

  -port_diff_buffers - (Optional) Add the differential pair buffers and
  internal wires associated with those buffers into the output ports list.
  This argument is only valid when -mode pin_planning or -mode synth_stub is
  specified.

  -write_all_overrides [ true | false ] - (Optional) Write parameter
  overrides, in the design to the Verilog output even if the value of the
  parameter is the same as the defined primitive default value. If the option
  is false then parameter values which are equivalent to the primitive
  defaults are not output to the Verilog file. Setting this option to true
  will not change the result but makes the output Verilog more verbose.

  -keep_vcc_gnd - (Optional) By default, when writing a nelist for
  simulation, or from an IP integrator block design, the Vivado Design Suite
  replaces VCC and GND primitives, and the nets they drive, with literal
  constants on each of the loads on the net. The -keep_vcc_gnd option
  disables this default behavior and preserves the VCC or GND primitives.

  -rename_top <arg> - (Optional) Rename the top module in the output as
  specified. This option only works with -mode funcsim or -mode timesim to
  allow the Verilog netlist to plug into top-level simulation test benches.

  -sdf_anno [ true | false ] - (Optional) Add the $sdf_annotate statement to
  the Verilog netlist. Valid values are true (or 1) and false (or 0). This
  option only works with -mode timesim, and is set to false by default.

  -sdf_file <arg> - (Optional) The path and filename of the SDF file to use
  when writing the $sdf_annotate statement into the output Verilog file. When
  not specified, the SDF file is assumed to have the same name and path as
  the Verilog output specified by <file>, with a file extension of .sdf. The
  SDF file must be separately written to the specified file path and name
  using the write_sdf command.

  -force - (Optional) Overwrite the Verilog files if they already exists.

  -include_xilinx_libs - (Optional) Write the simulation models directly in
  the output netlist file rather than pointing to the libraries by reference.

  -logic_function_stripped - (Optional) Hides the INIT values for LUTs & RAMs
  by converting them to fixed values in order to create a netlist for debug
  purposes that will not behave properly in simulation or synthesis.

  -skip_clock_attributes - By default under synth_stub mode, module terminals
  connected to clock are marked as such with a special synthesis directive
  for clock signals. With this option, the synthesis directive for clock
  signals is omitted and they are treated as regular terminals.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The path and filename of the Verilog file to write. The
  path is optional, but if one is not provided the Verilog file will be
  written to the current working directory, or the directory from which the
  Vivado tool was launched.

Examples:

  The following example writes a Verilog simulation netlist file for the
  whole design to the specified file and path:

    write_verilog C:/Data/my_verilog.v

  In the following example, because the -mode timesim and -sdf_anno options
  are specified, the $sdf_annotate statement will be added to the Verilog
  netlist. However, since the -sdf_file option is not specified, the SDF file
  is assumed to have the same name as the Verilog output file, with an .sdf
  file extension:

    write_verilog C:/Data/my_verilog.net -mode timesim -sdf_anno true

  Note: The SDF filename written to the $sdf_annotate statement will be
  my_verilog.sdf.

  In the following example, the functional simulation mode is specified, the
  option to keep VCC and GND primitives in the output simulation netlist is
  enabled, and the output file is specified:

    write_verilog -mode funcsim -keep_vcc_gnd out.v

See Also:

   *  write_sdf
   *  write_vhdl


@@@COMMAND: write_vhdl@@@
write_vhdl

Description: 
Export the current netlist in VHDL format

Syntax: 
write_vhdl  [-cell <arg>] [-mode <arg>] [-lib] [-port_diff_buffers]
            [-write_all_overrides] [-keep_vcc_gnd] [-rename_top <arg>]
            [-arch_only] [-force] [-include_xilinx_libs] [-quiet] [-verbose]
            <file>

Returns: 
the name of the output file or directory

Usage: 
  Name                    Description
  -----------------------------------
  [-cell]                 Root of the design to write, e.g. des.subblk.cpu
                          Default: whole design
  [-mode]                 Output mode. Valid values: funcsim, pin_planning, 
                          synth_stub
                          Default: funcsim
  [-lib]                  Write each library into a separate file
  [-port_diff_buffers]    Output differential buffers when writing in -port 
                          mode
  [-write_all_overrides]  Write parameter overrides on Xilinx primitives even
                          if the same as the default value
  [-keep_vcc_gnd]         Don't replace VCC/GND instances by literal 
                          constants on load terminals.  For simulation modes 
                          only.
  [-rename_top]           Replace top module name with custom name e.g. 
                          netlist
                          Default: new top module name
  [-arch_only]            Write only the architecture, not the entity 
                          declaration for the top cell
  [-force]                Overwrite existing file
  [-include_xilinx_libs]  Include simulation models directly in netlist 
                          instead of linking to library
  [-quiet]                Ignore command errors
  [-verbose]              Suspend message limits during command execution
  <file>                  Which file to write

Categories: 
FileIO, Simulation

Description:

  Write a VHDL netlist of the current design or from a specific cell of the
  design to the specified file or directory.

  The output of this command is a VHDL IEEE 1076.4 VITAL-2000 compliant VHDL
  file that contains netlist information obtained from the input design
  files. You can output a complete netlist of the design or specific cell, or
  output a port list for the design.

Arguments:

  -cell <arg> - (Optional) Write the VHDL netlist from a specified cell or
  block level of the design hierarchy. The output VHDL file or files will
  only include information contained within the specified cell or module.

  -mode <arg> - (Optional) The mode to use when writing the VHDL file. By
  default, the simulation netlist is written for the whole design. Valid mode
  values are:

   *  funcsim - Output the VHDL netlist to be used as a functional simulation
      model. The output netlist is not suitable for synthesis. This is the
      default setting.

   *  pin_planning - Output only the I/O ports in the entity declaration for
      the top module.

   *  synth_stub - Output the ports from the top-level of the design for use
      as a synthesis stub.

  -lib - (Optional) Create a separate VHDL file for each library used by the
  design.

  Note: This option is the opposite of, and replaces the -nolib option from
  prior releases. Previously the default behavior of write_vhdl was to output
  a separate VHDL file for each library used in the design, unless -nolib was
  specified. Now you must specify the -lib option to output separate files
  for each library.

  -port_diff_buffers - (Optional) Add the differential pair buffers and
  internal wires associated with those buffers into the output ports list.
  This argument is only valid when -mode pin_planning or -mode synth_stub is
  specified.

  -write_all_overrides [ true | false ] - (Optional) Write parameter
  overrides in the design to the VHDL output even if the value of the
  parameter is the same as the defined primitive default value. If the option
  is false then parameter values which are equivalent to the primitive
  defaults are not output to the VHDL file. Setting this option to true will
  not change the result but makes the output netlist more verbose.

  -keep_vcc_gnd - (Optional) By default, when writing a nelist for
  simulation, or from an IP integrator block design, the Vivado Design Suite
  replaces VCC and GND primitives, and the nets they drive, with literal
  constants on each of the loads on the net. The -keep_vcc_gnd option
  disables this default behavior and preserves the VCC or GND primitives.

  -rename_top <arg> - (Optional) Rename the top module in the output as
  specified. This option only works with -mode funcsim to allow the VHDL
  netlist to plug into top-level simulation test benches.

  -arch_only - (Optional) Suppress the entity definition of the top module,
  and outputs the architecture only. This simplifies the use of the output
  VHDL netlist with a separate test bench.

  -force - (Optional) Overwrite the VHDL files if they already exists.

  -include_xilinx_libs - (Optional) Write the simulation models directly in
  the output netlist file rather than pointing to the libraries by reference.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The filename of the VHDL file to write. If the file
  name does not have either a .vhd or .vhdl file extension then the name is
  assumed to be a directory, and the VHDL file is named after the top module,
  and is output to the specified directory.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  The following example writes a VHDL simulation netlist file for the whole
  design to the specified file and path:

    write_vhdl C:/Data/bft_top.vhd 
    

  In the following example the entity definition of the top-level module is
  not output to the VHDL netlist:

    write_vhdl C:/Data/vhdl_arch_only.vhd -arch_only 
    

See Also:

   *  write_verilog


@@@COMMAND: write_waivers@@@
write_waivers

Description: 
Write out one or more DRC/METHODOLOGY/CDC message waivers in command form

Syntax: 
write_waivers  [-type <arg>] [-objects <args>] [-return_string] [-force]
               [-quiet] [-verbose] [<file>]

Usage: 
  Name              Description
  -----------------------------
  [-type]           Type of waiver(s) - ALL, DRC, METHODOLOGY, CDC, LINT to 
                    write
  [-objects]        List of DRC/METHODOLOGY/CDC waiver objects to be written
  [-return_string]  Return report results as a string object
  [-force]          Overwrite existing file
  [-quiet]          Ignore command errors
  [-verbose]        Suspend message limits during command execution
  [<file>]          Name of file to write waivers

Categories: 
Waiver, Object

Description:

  To save waivers from one design session to the next, you must use
  write_waivers to create an XDC file of the waiver commands, and read_xdc to
  read those waivers back into the design when it is reopened.

Arguments:

  -type <arg> - (Optional) Specifies the type of waivers to write to the
  file. Currently supports DRC, METHODOLOGY, and CDC.

  -objects <args> - (Optional) Specifies a list of waiver objects to write.
  Waiver objects can be specified by the get_waivers command.

  -return_string - (Optional) Directs the output to a Tcl string. The Tcl
  string can be captured by a variable definition and parsed or otherwise
  processed.

  -force - (Optional) This argument forces writing of waivers to the file. If
  you receive a message that the waivers will not be written because the
  counts will be invalid, you can use this option to write the file.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) Specifies the file name to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  This example writes all waivers in the current design:

    write_waivers C:/Data/design_waivers.xdc 
    

  The following example writes only DRC type waivers:

    write_waivers -type DRC C:/Data/drc_waivers.xdc 
    

See Also:

   *  create_waiver
   *  delete_waivers
   *  get_cdc_violations
   *  get_drc_violations
   *  get_methodology_violations
   *  get_waivers
   *  report_cdc
   *  report_drc
   *  report_methodology
   *  report_waivers


@@@COMMAND: write_xdc@@@
write_xdc

Description: 
Writes constraints to a Xilinx Design Constraints (XDC) file. The default file extension for a XDC file is .xdc. 

Syntax: 
write_xdc  [-no_fixed_only] [-constraints <arg>] [-cell <arg>] [-sdc]
           [-no_tool_comments] [-force] [-exclude_timing] [-include_noc]
           [-exclude_physical] [-add_netlist_placement]
           [-logic_function_stripped] [-type <args>] [-write_id]
           [-exclude_cells <args>] [-quiet] [-verbose] [<file>]

Usage: 
  Name                        Description
  ---------------------------------------
  [-no_fixed_only]            Export fixed and non-fixed placement (by 
                              default only fixed placement is exported)
  [-constraints]              Include constraints that are flagged invalid
                              Values: valid, invalid, all
                              Default: valid
  [-cell]                     Hierarchical cell for which constraints are 
                              exported.
  [-sdc]                      Export all timing constriants in SDC compatible
                              format.
  [-no_tool_comments]         Don't write verbose tool generated comments to 
                              the xdc when translating from ucf.
  [-force]                    Overwrite existing file.
  [-exclude_timing]           Don't export timing constraints.
  [-include_noc]              Export NOC constraints.
  [-exclude_physical]         Don't export physical constraints.
  [-add_netlist_placement]    Export netlist placement constraints.
  [-logic_function_stripped]  Write disable_timing constraints which are 
                              associated with having previously run 
                              write_edif with its -logic_function_stripped 
                              option.
  [-type]                     Types of constraint to export.
                              Values: timing, io, misc, waiver and physical, 
                              noc. If not specified, all constraints will be 
                              exported.
  [-write_id]                 Write position number for timing constraints
  [-exclude_cells]            Don't export constraints scoped to or below the
                              specified hierarchical cell(s).
  [-quiet]                    Ignore command errors
  [-verbose]                  Suspend message limits during command execution
  [<file>]                    Output constraints to the specified XDC file.

Categories: 
Timing, FileIO

Description:

  Writes constraints to a Xilinx Design Constraints file (XDC). The XDC can
  be exported from the top-level, which is the default, or from a specific
  hierarchical cell.

  Important: The write_xdc command writes the constraints to the specified
  file in the same order they are added to or executed in the design.

  The write_xdc command lets you write invalid XDC constraints so that you
  can quickly report constraints that have been ignored by the Vivado Design
  Suite due to a problem with the way the constraint is written or applied.
  This is useful for debugging constraint files applied in specific designs.

  This command can be used to create an XDC file from a design with UCF
  files. All constraints from the active constraint fileset are exported to
  the XDC, even if they come from multiple files.

  Tip: The write_xdc command does not convert all UCF constraints into XDC
  format, and is not intended to automatically convert UCF based designs to
  XDC. Refer to the Vivado Design Suite Migration Methodology Guide (UG911)
  for more information on migrating UCF constraints to XDC.

Arguments:

  -no_fixed_only - (Optional) Export both fixed and unfixed placement LOCs to
  the constraint file being written. By default, only the fixed LOCs is
  written to the XDC file. Fixed LOCs are associated with user-assigned
  placements, while unfixed LOCs are associated with tool assigned
  placements.

  -constraints <arg> - (Optional) Export constraints that are flagged valid,
  invalid, or all constraints (both valid and invalid). The default behavior
  is to export only valid constraints to the XDC file. Valid values are
  VALID, INVALID, or ALL.

  -cell <arg> - (Optional) The name of a hierarchical cell in the current
  design to export the constraints from. The constraints are written to the
  specified XDC file relative to the specified cell.

  Note: A design must be open when using this option.

  -exclude_cells <arg> - (Optional) Do not export constraints scoped to or
  below the hierarchical cells listed in <arg>. All other constraints are
  exported including constraints which refer hierarchically to the cells or
  cell contents but are scoped above the specified cells.

  -sdc - (Optional) Export only the timing constraints in a file format that
  is 100% SDC compatible from the current design. Does not export any other
  defined constraints.

  -no_tool_comments - (Optional) Do not add tool generated comments into the
  XDC file.

  -force - (Optional) Overwrite a file of the same name if one already exists.

  -exclude_timing - (Optional) Do not export timing constraints. This results
  in an XDC file that contains only physical constraints.

  -include_noc - (Optional) Writes all the constraints in the design
  including the modular NoC constraints.

  -exclude_physical - (Optional) Do not export physical constraints. This
  results in an XDC file that contains only timing constraints.

  -add_netlist_placement - (Optional) Include placement constraints that are
  defined in the netlist file as part of the written XDC file.

  -type <arg> - (Optional) Specifies the types of constraint to export. Valid
  values are: timing, io, misc, waiver, physical, and noc. Multiple types can
  be specified at one time. If the type is not specified, all constraints are
  exported.

  -logic_function_stripped - (Optional) Includes the set_disable_timing
  constraints which are needed to preserve the constants propagation and
  timing signoff after stripping the logic function of the LUTs. It should be
  used in association with write_edif -logic_function_stripped.

  -write_id - (Optional) Includes the constraint position number before each
  timing constraint. The position number if also reported inside the Timing
  Constraints Editor (TCE) and some of the Methodology violations.

  -quiet - (Optional) Execute the command quietly, returning no messages from
  the command. The command also returns TCL_OK regardless of any errors
  encountered during execution.

  Note: Any errors encountered on the command-line, while launching the
  command, will be returned. Only errors occurring inside the command will be
  trapped.

  -verbose - (Optional) Temporarily override any message limits and return
  all messages from this command.

  Note: Message limits can be defined with the set_msg_config command.

  <file> - (Required) The file name of the XDC file to write.

  Note: If the path is not specified as part of the file name, the file will
  be written into the current working directory, or the directory from which
  the tool was launched.

Examples:

  Write the valid and invalid constraints, including both fixed and unfixed
  cells, to the specified file.

    write_xdc -no_fixed_only -constraints all C:/Data/design.xdc

  Write only the invalid constraints, including both fixed and unfixed cells,
  to the specified file.

    write_xdc -constraints invalid C:/Data/bad_constraints.xdc

  Write the physical constraints only, including placement constraints
  defined in any netlist source files.

    write_xdc -exclude_timing -add_netlist_placement C:/Data/physical.xdc

See Also:

   *  read_xdc


@@@COMMAND: write_xdef@@@
write_xdef

Description: 
Write Xilinx physical design exchange to a file.  The XDEF contains placement, clustering, and routing information and relates logical design objects to the device model.

Syntax: 
write_xdef  [-print_release_version] [-force] [-no_routing] [-mode <arg>]
            [-cell <arg>] [-quiet] [-verbose] <file>

Usage: 
  Name                      Description
  -------------------------------------
  [-print_release_version]  Print out the release version of the file
  [-force]                  Overwrite existing XDEF file if necessary
  [-no_routing]             Do not write the routing data
  [-mode]                   (Verilog|VHDL|EDIF) Rename logical cells and nets
                            in the output XDEF to match names in the given 
                            output file type.
  [-cell]                   Write the XDEF as if the given cell was the top 
                            level cell in the design.
  [-quiet]                  Ignore command errors
  [-verbose]                Suspend message limits during command execution
  <file>                    Output file name

Categories: 
FileIO


@@@COMMAND: writeback_frames@@@
writeback_frames

Description: 
Create a partial bitstream to modify selected frames in a bitfile

Syntax: 
writeback_frames  -reference_file <arg> -update_file <arg> [-force] [-quiet]
                  [-verbose] <file>

Usage: 
  Name             Description
  ----------------------------
  -reference_file  Input bitfile (.bit or .rbt)
  -update_file     File containing details of bits to be modified
  [-force]         Overwrite existing file
  [-quiet]         Ignore command errors
  [-verbose]       Suspend message limits during command execution
  <file>           Output partial bitfile (.bit, .bin or .rbt)

Categories: 
FileIO


