-
Notifications
You must be signed in to change notification settings - Fork 99
Module Widget
The Module Widget illustrates the netlist's module hierarchy as a tree. The user can opt to or not to display gates and nets within this hierarchical tree; by default, gates and nets are hidden. The widget features helpful actions including, but not limited to, adding a child module or changing the module's displayed color.

The toolbar comprises the actions
- Toggle net visibility (1)
- Toggle gate visibility (2)
- Rename (3)
- Delete module (6)
- Search (7)
- Toggle expand all/collapse all (8)

The context menu shown here gets triggered when a module is selected. The structure of the context menu for gates and nets is similar but some module specific actions are missing. The menu entries shown in the snapshot below are
- To clipboard ... (9)
- Change -> Module name (3)
- Change -> Module type (4)
- Change -> Module color (5)
- Add child module (10)
- To selection ... (11)
- Move to module … (12)
- To grouping ... (13)
- Focus module in Graph View (14)
- Isolate module in new view (15)
- Delete module (6)

By using this toggle button the user decides whether nets belonging to modules are shown within the hierarchical tree or whether nets are omitted. Nets are hidden by default.
By using this toggle button the user decides whether gates are shown within the hierarchical tree or whether gates are omitted. Gates are hidden by default. In HAL every gate is assigned to a module.
Opens an input dialog and changes the name of the (module / gate / net) item to the given input.
Opens an input dialog and changes the string declaring the type of the module to the given input. Gate types which are defined by gate library cannot be changed.
Opens a color dialog and changes the displayed color of the module to the chosen color.
Deletes the selected module. Alternatively, the shortcut Del can be used while the widget is focused. All elements which were assigned to the deleted module are assigned to the parent module of the deleted module. The only way to delete gates or nets is by Python commands.
To find a specific module, a filter can be applied to the tree. Pressing the shortcut CTRL + F while the widget is focused or left-clicking the magnifying glass in the toolbar of the widget toggles the search bar. As a result, only modules matching the text in the search bar and the parent modules are shown in the tree. The search text is matched against the columns name, ID, and type. If gates or nets are visible in the tree, they are searched as well. The filter is only active when the searchbar is visible. The magnifying glass in the toolbar changes to a green color to indicate that the filter is active.
When using this toggle button the tree gets either expanded so that all (module / gate / net) items become visible or collapsed to the top module.
The user can select to copy either the items name, id, or type (if applicable) to the clipboard. He can also copy an expression in Python code to access that item to clipboard.
Opens an input dialog and creates a new empty module with the chosen name as the child of the selected module.
The user can decide to add the current (module / gate / net) item to an existing selection (if any) or to replace the current selection with the chosen item.
Opens a module selection dialog and moves the selected (module / gate) item as child to the chosen module. This action is not available for nets and is only shown if exactly one module or gate is selected.
The options are either to assign the selected (module / gate / net) item to a grouping using Assign module to grouping (or Assign gate to grouping / Assign net to grouping) - thus removing the previous assignment if any, in which case the action is labeled Reassign … - or to remove the grouping assignment using Remove module from grouping (or Remove gate from grouping / Remove net from grouping), which is disabled if the item is not assigned to any grouping. When assigning, a grouping selection dialog opens and lets the user chose an existing group or create a new one.
Focus on selected item in the Graph View if the current view contains (module / gate / net) item.
Creates a new view containing the selected (module / gate / net) in the Graph View. If a view for the selected module already exists, that view is opened instead of creating a new one. If used on net all source and destination gates connected to that net will be shown in the new view as well. The new view is also added to the list of the Views Widget. Double-clicking an item in the tree triggers the same action.
- Module — what the tree in this widget represents
- Graph View — where modules are drawn, folded, and unfolded
- Views Widget — isolating a module in a view of its own
- Dataflow Analysis — a common source of the modules that appear here