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 param2are required.
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]
[-scene scene]
Options#
Switch Name |
Description |
|---|---|
|
path to save the image to. |
|
name of the clock to save the clocktree for. |
|
name of the timing scene to save the clocktree for, default to the first scene 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. |
Save Timing Histogram Image#
This command saves the screenshot of timing histogram given options
to filename.
save_histogram_image
filename
[-mode mode]
[-width width]
[-height height]
Options#
Switch Name |
Description |
|---|---|
|
path to save the image to. |
|
chart mode to save, defaults to “setup”. |
|
height of the image in pixels, defaults to 500px. |
|
width of the image in pixels, defaults to 500px. |
Generate animated images#
This command can be used to generate an animated gif.
When used with -start this command returns an integer key that can be used to distinguish files if multiple are generated. That key can be provided when using -add or -end. If only a single file is being used the key can be ignored.
save_animated_gif
-start|-add|-end
[-resolution microns_per_pixel]
[-area {x0 y0 x1 y1}]
[-width width]
[-delay delay]
[-key key]
[filename]
Options#
Switch Name |
Description |
|---|---|
|
start a new animation. |
|
add a new frame to the animation. |
|
terminate the animtion and save file. |
|
path to save the animation 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 |
|
delay between frames in the GIF. |
|
used to distinguish multiple GIF files (returned by -add). Defaults to the most recent GIF. |
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 Database Markers Result#
To select a marker category
gui::select_marker_category
category
Options#
Switch Name |
Description |
|---|---|
|
Database marker category. |
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. |
Set GUI Title#
To set the title of the main GUI window:
gui::set_title title
Options#
Switch Name |
Description |
|---|---|
|
window title to use for the main GUI window |
Hide GUI#
To close the GUI and return to the command-line:
gui::hide
Minimize the GUI#
To minimize the GUI window to an icon:
gui::minimize
Unminimize the GUI#
To unminimize the GUI window from an icon:
gui::unminimize
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
kand use the mouse to place it visually. To disable snapping for the ruler when adding, hold theCtrlkey, and to allow non-horizontal or vertical snapping when completing the ruler hold theShiftkey.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
Add Label to Layout#
To add a label to the layout use the following command:
Returns: name of the newly created label.
add_label -position {x y}
[-anchor anchor]
[-color color]
[-size size]
[-name name]
text
Options#
Switch Name |
Description |
|---|---|
|
point of the label in microns. |
|
anchor point for text, default is center. |
|
color to use for the label, default is white. |
|
size of the label, default is determined by the default GUI font. |
|
name of the label, one will be generated if not provided. |
|
text for the label. |
Delete a single label#
To remove a single label:
gui::delete_label
name
Options#
Switch Name |
Description |
|---|---|
|
name of the label. |
Clear All Labels#
To remove all the labels:
gui::clear_labels
Display help#
To display the help for a specific command or messasge.
gui::show_help
cmd_msg
Options#
Switch Name |
Description |
|---|---|
|
command or message ID. |
Set Heatmap#
To control the settings in the heat maps:
The currently availble heat maps are:
PinPowerRoutingPlacementIRDropRUDY[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. |
Clocktree Selection#
Select a clock in the clock viewer:
gui::select_clockviewer_clock
name
Options#
Switch Name |
Description |
|---|---|
|
name of clock to select |
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”. |
Select chart#
To select a specific chart in the charts widget:
gui::select_chart
name
Options#
Switch Name |
Description |
|---|---|
|
of the chart. For example, “Endpoint Slack”. |
Update timing report#
Update the paths in the Timing Report widget:
gui::update_timing_report
Show Worst Path#
Update the paths in the Timing Report widget and select the path with the worst slack:
gui::show_worst_path
[-setup|-hold]
Options#
Switch Name |
Description |
|---|---|
|
Select the path with the worst setup slack (default). |
|
Select the path with the worst hold slack. |
Clear Timing Path#
Clear the selected timing path in the Timing Report widget:
gui::clear_timing_path
GUI Features#
Clock Insertion Latency in Timing Reports#
In the Data Path Details and Capture Path Details views, pins whose
Liberty cell defines max_clock_tree_path / min_clock_tree_path
timing groups display the internal clock latency inline:

To view this, run the MockArray example and look at reg2reg paths:
bazelisk run --//:platform=gui //test/orfs/mock-array:MockArray_4x4_base_synth gui_synth
License#
BSD 3-Clause License. See LICENSE file.