get_hw_ilas - 2023.1 English

Vivado Design Suite Tcl Command Reference Guide (UG835)

Document ID
UG835
Release Date
2023-05-16
Version
2023.1 English

Get a list of hardware ILA.

Syntax

get_hw_ilas [‑of_objects <args>] [‑regexp] [‑nocase] [‑filter <arg>]
    [‑quiet] [‑verbose] [<patterns>]

Returns

Hardware ILAs

Usage

Name Description
[-of_objects] Get 'hw_ila' objects of these types: 'hw_device'.
[-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 'hw_ila' objects against patterns. Default: *

Categories

Hardware, Object

Description

Returns the ILA debug core objects defined on the current hardware device.

The Integrated Logic Analyzer (ILA) debug core lets you perform in-system debug of implemented designs, or design bitstreams, on a programmed Xilinx® FPGA. The ILA core includes many advanced features of modern logic analyzers, including boolean trigger equations, and edge transition triggers. You can use the ILA core to probe specific signals of the design, to trigger on programmed hardware events, and capture data from the Xilinx® FPGA in real-time. Refer to LogiCORE IP Integrated Logic Analyzer (PG172) for details of the ILA core.

You can add ILA debug cores into the RTL source files of a design, or in the synthesized netlist using the create_debug_core command. Refer to the Vivado Design Suite User Guide: Vivado Programming and Debugging (UG908) for more information on adding debug cores and signal probes to the design. You can get the debug cores in the synthesized netlist by using the get_debug_core commands. However, though they are related, the design debug cores are separate from the hardware debug cores found in the Hardware Manager feature of the Vivado® Design Suite.

Debug cores and probes are written to the probes file (.ltx) using the write_debug_probes command and associated with the hardware device, along with the bitstream file (.bit), using the PROBES.FILE and PROGRAM.FILE properties of the hw_device object. The hardware device is programmed with this information using the program_hw_devices command.

The steps to debug your design in hardware using an ILA debug core are:

  1. Connect to the hardware server and target using connect_hw_server and open_hw_target.
  2. Program the FPGA with the bitstream (.bit) and probes (.ltx) files using program_hw_devices.
  3. Set up the ILA debug core trigger and capture controls using set_property to set properties of the ILA.
  4. Arm the ILA debug core trigger using run_hw_ila.
  5. View the captured data from the ILA debug core in the Waveform window of the Vivado logic analyzer feature using display_hw_ila_data.
  6. Optionally use the VIO debug core to drive control signals and/or view design status signals. See get_hw_vios for more information.
  7. Optionally use the JTAG-to-AXI Master debug core to run transactions to interact with various AXI slave cores in your design. See get_hw_axis for more information.

This command returns a list of ILA debug core objects on the device, or returns an error if it fails.

Arguments

-of_objects <arg> - (Optional) Return the ILA debug cores of the specified hardware devices. The devices must be specified as objects using the get_hw_devices or the current_hw_device commands.

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.

-filter <args> - (Optional) Filter the results list with the specified expression. The -filter argument filters the list of objects returned by get_hw_ilas based on property values on the ILA debug core objects. You can find the properties on an object with the report_property or list_property commands. In the case of the "hw_ila" object, "NAME" and "CONTROL.DATA_DEPTH" 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 hw_ilas against the specified patterns. The default pattern is the wildcard '*' which gets a list of all hw_ilas available on the current hardware device.

Example

The following example gets the ILA debug cores defined on the current hardware device:

get_hw_ilas -of_objects [current_hw_device]