Skip to content
Tobias Hermanns edited this page Nov 4, 2020 · 30 revisions

The HAL GUI provides an easy interface for users to interact with the netlist. It provides a graphical representation of the netlist enabling the user to navigate through the sea-of-gates or even manipulate it during investigation. Providing a set of widgets, it gives access to all kinds of information about the netlist and its components. Additionally, it provides access to the Python API via an embedded Python editor and a respective shell.

TODO: image of the opened gui

Getting Started

Docking System

Concepts

Selections

Views

Widgets

Graph View

The Graph View displays the netlist's components as a graph and offers several ways to interact with them. It allows to create modules as well as to fold and unfold them. Groupings can be viewd and edited. The navigation feature offers an easy way to follow a path through the graph on an element by element basis. Additionally the Cone View can reveal elements step by step that are connected to a starting point of interest to explore the graph and slowly reveal the structure of the netlist and its components.

See here for more detailed descriptions on the features offered by the Graph View.

Graph View

Views Widget

The Views Widget provides an overview of all existing views. From within the widget, new views can be created and old ones can be (re)opened in the Graph View, duplicated, have their name changed, searched, and deleted.

See here for more detailed descriptions on the features offered by the Views Widget.

View Manager Location

Modules Widget

The Module Widget illustrates the netlist's module hierarchy as a tree. The widget features helpful actions including, but not limited to, adding a child module or changing the module's displayed color.

Module Widget

See here for more detailed descriptions on the features offered by the Module Widget.

Groupings Widget

The Groupings Widget provides a table of all existing groupings. From within the widget, new groupings can be created, selected in the Graph View, have their name or color changed and deleted.

See here for more detailed descriptions on the features offered by the Groupings Widget.

Groupings Widget

Selection Details Widget

The Selection Details Widget presents details on each of the gates, nets and modules within the current selection. Its main features are a hierarchical list of elements that are currently selected in the GUI and a details section delivering additional information on a single element of that selection.

See here for more detailed descriptions on the features offered by the Selection Details Widget.

Selection Details Widget

Python Editor Widget

The Python Editor Wiget provides a light weight code editor for developing Python scripts. From within the widget, multiple scripts can be opened, edited, run and saved. The editor behaves like a standard text editor with functions like undo, copy and past but also supports some quality of life features such as auto indent, simple syntax highlighting, a code minimap as well as auto completion to some extent.

See here for more detailed descriptions on the features offered by the Selection Python Editor Widget.

TODO: image

Python Console Widget

The Python Console Widget provides an interactive console in which python code can be executed. The python console is connected to the hal python environment so that the Python Core API and Python GUI API are accessible. Code completion and code suggestion via Tab are also supported to some extent.

See here for more detailed descriptions on the features offered by the Python Console Widget.

Python Console

Log Widget

The Log Widget provides a live view of the HAL log. The information is split up into different channels depending on their category like core, python or gui. The information can be filtered by selection either a specific channel or the all category in the drop-down list at the top left corner of the widget. The widget does not show channels in which nothing has been logged yet, so new channels may appear while using HAL.

See here for more detailed descriptions on the features offered by the Log Widget.

Log Widget

Python GUI API

Clone this wiki locally