Graphical User Interface#
The graphical user interface can be access by launching OpenROAD with -gui
or
by opening it from the command-line with gui::show
.
Commands#
Note
Parameters in square brackets
[-param param]
are optional.Parameters without square brackets
-param2 param2
are required.
Save Image#
This command can be both be used when the GUI is active and not active to save a screenshot with various options.
save_image
[-resolution microns_per_pixel]
[-area {x0 y0 x1 y1}]
[-width width]
[-display_option {option value}]
filename
Options#
Switch Name |
Description |
---|---|
|
path to save the image to. |
|
x0, y0 - first corner of the layout area (in microns) to be saved, default is to save what is visible on the screen unless called when gui is not active and then it selected the whole block. x1, y1 - second corner of the layout area (in microns) to be saved, default is to save what is visible on the screen unless called when gui is not active and then it selected the whole block. |
|
resolution in microns per pixel to use when saving the image, default will match what the GUI has selected. |
|
width of the output image in pixels, default will be computed from the resolution. Cannot be used with |
|
specific setting for a display option to show or hide specific elements. For example, to hide metal1 |
Save Clocktree Image#
This command saves the screenshot of clocktree given options
to filename
.
save_clocktree_image
filename
-clock clock_name
[-width width]
[-height height]
[-corner corner]
Options#
Switch Name |
Description |
---|---|
|
path to save the image to. |
|
name of the clock to save the clocktree for. |
|
name of the timing corner to save the clocktree for, default to the first corner defined. |
|
height of the image in pixels, defaults to the height of the GUI widget. |
|
width of the image in pixels, defaults to the width of the GUI widget. |
Select Objects#
This command selects object based on options. Returns: number of objects selected.
select
-type object_type
[-name glob_pattern]
[-filter attribute=value]
[-case_insensitive]
[-highlight group]
Options#
Switch Name |
Description |
---|---|
|
name of the object type. For example, |
|
(optional) filter selection by the specified name. For example, to only select clk nets |
|
(optional) filter selection based on the objects’ properties. |
|
(optional) add the selection to the specific highlighting group. Values can be 0 to 7. |
Display Timing Cones#
This command displays timing cones for a pin given options.
display_timing_cone
pin
[-fanin]
[-fanout]
[-off]
Options#
Switch Name |
Description |
---|---|
|
name of the instance or block pin. |
|
(optional) display the fanin timing cone. |
|
(optional) display the fanout timing cone. |
|
(optional) remove the timing cone. |
Focus Net#
This command limits the drawing to specified net.
focus_net
net
[-remove]
[-clear]
Options#
Switch Name |
Description |
---|---|
|
name of the net. |
|
(optional) removes the net from from the focus. |
|
(optional) clears all nets from focus. |
TCL functions#
Is GUI Enabled#
Determine is the GUI is active:
gui::enabled
Trigger GUI to Load Design#
Announce to the GUI that a design was loaded
(note: this is only needed when the design was loaded through the odb API and not via read_def
or read_db
):
gui::design_created
Load DRC Result#
To load the results of a DRC report:
gui::load_drc
filename
Options#
Switch Name |
Description |
---|---|
|
Filename for DRC report. |
Show GUI#
To open the GUI from the command-line (this command does not return until the GUI is closed):
gui::show
script
interactive
Options#
Switch Name |
Description |
---|---|
|
TCL script to evaluate in the GUI. |
|
Boolean if true, the GUI should open in an interactive session (default), or if false that the GUI would execute the script and return to the terminal. |
Hide GUI#
To close the GUI and return to the command-line:
gui::hide
Layout Fit#
To fit the whole layout in the window:
gui::fit
Zoom to a specific region#
To zoom in our out to a specific region:
gui::zoom_to
x0 y0 x1 y1
Options#
Switch Name |
Description |
---|---|
|
first and second corner of the layout area in microns. |
Zoom In#
To zoom in the layout:
gui::zoom_in
x y
Options#
Switch Name |
Description |
---|---|
|
new center of layout in microns. |
Zoom Out#
To zoom out the layout:
gui::zoom_out
x y
Options#
Switch Name |
Description |
---|---|
|
new center of layout in microns. |
Center At#
To move the layout to new area:
gui::center_at
x y
Options#
Switch Name |
Description |
---|---|
|
new center of layout in microns. |
Set Resolution#
To change the resolution to a specific value:
gui::set_resolution
resolution
Options#
Switch Name |
Description |
---|---|
|
database units per pixel. |
Add a single net to selection#
To add a single net to the selected items:
gui::selection_add_net
name
Options#
Switch Name |
Description |
---|---|
|
name of the net to add. |
Add multiple nets to selection#
To add several nets to the selected items using a regex:
gui::selection_add_nets
name_regex
Options#
Switch Name |
Description |
---|---|
|
regular expression of the net names to add. |
Add a single inst to selection#
To add a single instance to the selected items:
gui::selection_add_inst
name
Options#
Switch Name |
Description |
---|---|
|
name of the instance to add. |
Add multiple insts to selection#
To add several instances to the selected items using a regex:
gui::selection_add_insts
name_regex
Options#
Switch Name |
Description |
---|---|
|
regular expression of the instance names to add. |
Select at point or area#
To add items at a specific point or in an area:
Example usage:
gui::select_at x y
gui::select_at x y append
gui::select_at x0 y0 x1 y1
gui::select_at x0 y0 x1 y1 append
gui::select_at
x0 y0 x1 y1
[append]
Or
gui::select_at
x y
[append]
Options#
Switch Name |
Description |
---|---|
|
point in the layout area in microns. |
|
first and second corner of the layout area in microns. |
|
if |
Select next item from selection#
To navigate through multiple selected items: Returns: current index of the selected item.
gui::select_next
Select previous item from selection#
To navigate through multiple selected items: Returns: current index of the selected item.
gui::select_previous
Clear Selection#
To clear the current set of selected items:
gui::clear_selections
Get Selection Property#
To get the properties for the current selection in the Inspector:
gui::get_selection_property
name
Options#
Switch Name |
Description |
---|---|
|
name of the property. For example, |
Animate Selection#
To animate the current selection in the Inspector:
gui::selection_animate
[repeat]
Options#
Switch Name |
Description |
---|---|
|
indicate how many times the animation should repeat, default value is 0 repeats. If the value is 0, the animation will repeat indefinitely. |
Highlight Net#
To highlight a net:
gui::highlight_net
name
[highlight_group]
Options#
Switch Name |
Description |
---|---|
|
name of the net to highlight. |
|
group to add the highlighted net to, defaults to |
Highlight Instance#
To highlight an instance:
gui::highlight_inst
name
[highlight_group]
Options#
Switch Name |
Description |
---|---|
|
name of the instance to highlight. |
|
group to add the highlighted instance to, defaults to |
Clear Highlight Groups#
To clear the highlight groups:
gui::clear_highlights
[highlight_group]
Options#
Switch Name |
Description |
---|---|
|
group to clear, defaults to |
Add Ruler to Layout#
To add a ruler to the layout:
either press
k
and use the mouse to place it visually. To disable snapping for the ruler when adding, hold theCtrl
key, and to allow non-horizontal or vertical snapping when completing the ruler hold theShift
key.or use the command:
Returns: name of the newly created ruler.
gui::add_ruler
x0 y0 x1 y1
[label]
[name]
[euclidian]
Options#
Switch Name |
Description |
---|---|
|
first and second end point of the ruler in microns. |
|
text label for the ruler. |
|
name of the ruler. |
|
|
Delete a single ruler#
To remove a single ruler:
gui::delete_ruler
name
Options#
Switch Name |
Description |
---|---|
|
name of the ruler. |
Clear All Rulers#
To remove all the rulers:
gui::clear_rulers
Set Heatmap#
To control the settings in the heat maps:
The currently availble heat maps are:
Power
Routing
Placement
IRDrop
RUDY
[1]
These options can also be modified in the GUI by double-clicking the underlined display control for the heat map.
gui::set_heatmap
name
[option]
[value]
Options#
Switch Name |
Description |
---|---|
|
is the name of the heatmap. |
|
is the name of the option to modify. If option is |
|
is the new value for the specified option. This is not used when rebuilding map. |
Dump Heatmap to file#
To save the raw data from the heat maps ins a comma separated value (CSV) format:
gui::dump_heatmap
name
filename
Options#
Switch Name |
Description |
---|---|
|
is the name of the heatmap. |
|
path to the file to write the data to. |
GUI Display Controls#
Control the visible and selected elements in the layout:
gui::set_display_controls
name
[display_type]
[value]
Options#
Switch Name |
Description |
---|---|
|
is the name of the control. For example, for the power nets option this would be |
|
is either |
|
is either |
Check Display Controls#
To check the visibility or selectability of elements in the layout:
gui::check_display_controls
name
display_type
Options#
Switch Name |
Description |
---|---|
|
is the name of the control. For example, for the power nets option this would be |
|
is either |
Save Display Controls#
When performing a batch operation changing the display controls settings, the following command can be used to save the current state of the display controls.
gui::save_display_controls
Restore Display Controls#
This command restores display controls.
gui::restore_display_controls
Input Dialog#
To request user input via the GUI: Returns: a string with the input, or empty string if canceled.
gui::input_dialog
title
question
Options#
Switch Name |
Description |
---|---|
|
is the title of the input message box. |
|
is the text for the message box. |
Pause script execution#
Pause the execution of the script:
gui::pause
[timeout]
Options#
Switch Name |
Description |
---|---|
|
is specified in milliseconds, if it is not provided the pause will last until the user presses the Continue button. |
Show widget#
To open a specific layout widget:
gui::show_widget
name
Options#
Switch Name |
Description |
---|---|
|
of the widget. For example, the display controls would be “Display Control”. |
Hide widget#
To close a specific layout widget:
gui::hide_widget
name
Options#
Switch Name |
Description |
---|---|
|
of the widget. For example, the display controls would be “Display Control”. |
License#
BSD 3-Clause License. See LICENSE file.