Skip to content

Graph View

ton1ght edited this page Oct 18, 2021 · 67 revisions

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 viewed 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.

Graph View

Overview

The Graph View shows the visual representation of the netlist as a graph. It illustrates all gates, modules and nets connecting them as individual graphical entities.

Graph View Overview

Gate Information

Gates display their name, their type, their input pins and their output pins.

Gate Information

The name can be changed by using the action Change gate name in the context menu that opens when right clicking a gate in the Graph View.

Module Information

Modules display their name, their type, their input ports and their output ports. For better distinction, a module color is automatically assigned to the graphical entity representing the module.

Module Information

The name and type can be changed by using the action Change module name / Change module type in the context menu that opens when right clicking a module in the Graph View. The color can be changed in the Modules Widget via the action Change module color.

Graph View Controls

This section describes some basic controls which are used to interact with the Graph View such as modifying the camera or open and close tabs containing views.

Open, switch and close views

Opening new Views

New views can be created in several ways. To open a completely new view that shows the top module click the action New View in the toolbar of the Views Widget.

Double clicking a module opens the unfolded module in a new view. Right clicking elements and selecting the action Isolate in new View opens a new Cone View.

Each new view is added to the Views Widget and a new tab is created in the Graph View.

Switching Views

Choose the desired tab in the tab bar on the top of the Graph View to switch to another view. Alternatively click the action Open View in the Views Widget toolbar or context menu.

Closing Views

Close a view by closing the tab on the top of the Graph View. The view is not lost but kept in the Views Widget. From there it can be reopened by right clicking it in the table and choosing the action Open View in the context menu or the in the toolbar.

Camera Pan

The camera in the Graph View can be moved by moving the mouse while simultaneously holding the Shift key and left click in the view.

Zoom Level

The zoom level of the Graph View can be adjusted by scrolling the mouse wheel. Alternatively pressing the shortcut Shift + + can be used to zoom in and the shortcut Shift + - to zoom out.

Select Elements

A selection can be created using the mouse by left-clicking individual elements or dragging a rectangle around the desired components. It may also be expanded by pressing CTRL while selecting further netlist components.

Groupings

Gates, nets and modules can be assigned to groupings in the Graph View or via the action Assign to grouping in the Selection Details Widget toolbar. To assign a grouping to the selected elements in the Graph View, open the context menu by right clicking one of the selected elements and choose the action Assign to grouping. A dialog will appear which allows to choose a grouping and create a new grouping. Creating a new grouping immediately assigns the selection to the new grouping. Additionally, the context menu allows for deletion of the current assignment. The color and name of a grouping can be changed in the Groupings Widget.

The elements assigned to a grouping are highlighted in the respective grouping color in the Graph View.

Graph View Groupings

Assign groupings to predecessors or successors

To assign groupings to predecessors/successors in the Graph View (similiar to adding predecessors/successors to the Cone View), open the context menu by right-clicking a gate or module. Selecting Predecessors/Successors opens a new context menu with the highlighting actions described below.

Successor/Predecessor context menu

The highlighting actions are explained with the following example.

Successor/Predecessor context menu

Highlight predecessors or successors

In the context menu, either select Highlight successors or Highlight predecessors and choose a depth between 1 and 5, where depth 1 means direct successors/predecessors. A new grouping is created and the predecessors/successors of the selected depth are assigned to the grouping.

In this example, CLK_BUF_inst_inst is the source and depth 2 was chosen.

Example

Highlight predecessors or successors by distance

In the context menu, either select Highlight successors by distance or Highlight predecessors by distance and choose a depth between 1 and 5, where depth 1 means direct successors/predecessors. A new grouping for each distance is created and the predecessors/successors of the selected depth are assigned to the corresponding grouping. Each grouping represents the distance between the selected element and its predecessors/successors.

In this example, CLK_BUF_inst_inst is the source and depth 2 was chosen.

Highlight predecessors or successors by distance

Highlight path to predecessors or succesors

In the context menu, either select Highlight path to successor or Highlight path to predecessors. A dialog listing all predecessors/successors of the selected element will appear. Selecting a gate creates a new grouping and all gates and nets required to reach this predecessor/successor are assigned to this grouping.

In this example, CLK_BUF_inst_inst is the source and FSM_sequential_STATE_REG_reg_0_inst was selected in the dialog.

Highlight predecessors or successors by distance

Moving Elements to Modules

To move elements to a module, select a single or multiple elements in the Graph View and right click on one of them. Choose the action Move to module in the context menu that opens.

Move to module context menu

A dialog will appear where you can choose a module, create a new module or pick a module from the Graph View.

Move to module dialog

The Graph View will be updated and all selected elements will be condensed into a single graphical entity representing the module.

Move to module completed

The action Move to module in the Selection Details Widget toolbar also offers a quick way to add the current selection to a new or existing module.

Unfolding Modules

To make all elements of a module visible in the current view, select a module in the Graph View and right click on it. Then choose the action Unfold module in the context menu.

Unfold module context menu

The Graph View will be updated and all elements assigned to the selected module will be shown in the graph. The color of the elements assigned to a module is the same as the color of the parent module.

Unfold module completed

Folding Modules

To condense all elements assigned to a module back to a single graphical entity, right click one element which is assigned to the module. Choose the action Fold parent module in the context menu that opens.

Fold module context menu

The Graph View will be updated and all elements assigned to the parent module of the selected element will be condensed back into a single graphical entity.

Fold module completed

Navigating the Graph

By using the arrow keys on the keyboard it is possible to navigate through the graph element by element. To allow navigating first select a single gate or module in the graph. The pins/ports of that gate/module are now highlighted in the selection color cyan to indicate that the navigation feature is enabled and navigation towards the pins/ports is available.

Highlighted Element

Then use or to choose the direction of the navigation. is used to navigate to the input pins/ports of the element and is used to navigate to the output pins/ports of the element. The first pin/port of the gate/module is now also highlighted. It's always possible to switch from input to output and vice versa by using the arrow keys in the opposite direction.

Highlighted Pin

From there it is possible to cycle through the individual pins/ports with and . When the desired pin/port is selected confirm the direction with or to follow the net connected to that pin/port.

Cycle Pins

If the net connected to the starting pin/port of the navigation has only one source/destination the navigation will trigger and the element which has been navigated to is selected in the Graph View. The source/destination pin where the followed net has its source/destination is highlighted.

Newlz Highlighted Element

If the net connected to the starting pin/port of the navigation has multiple sources/destinations a table will be opened where the desired location has to be chosen. After choosing the destination with either Enter or double click, the navigation will trigger and the element which has been navigated to is selected in the Graph View. The source/destination pin where the followed net has its source/destination is highlighted.

Selection Table

Cone View

The Cone View allows the graph to be explored starting from a point of interest. The idea is that the Cone View only shows a small subset of gates, nets and modules at the start of exploring. By navigating to an element using the arrow keys the element will also be added to the view. Additionally its possible to add successors and predecessors to the view. Adding elements step by step that are connected to the starting point of the exploration slowly reveals the structure of the netlist and its components.

Opening a new Cone View

To open a new cone view first select a single or multiple elements of interest in the Graph View. Right click an element of the current selection and choose the action Isolate in new view in the context menu that opens.

Cone View Context Menu

A new tab showing only the selected elements will be added to the Graph View. The view is also added to the available views in the Views Widget. This newly created view is the starting point for further exploration. It only shows the elements selected before. 4 Isolated Gate Cone View

Exploring the graph

There are two ways to further explore the graph at this point. Firstly the navigation using the arrow keys can be used. Secondly the context menu can be used to add predecessors and successors (or paths to them) to the view.

Navigation using arrow keys

Using the arrow keys to navigate yields the same results as described before. If the net connected to the starting pin/port of the navigation has multiple sources/destinations, a table will be opened where the desired location has to be chosen. The table allows to choose from elements which are present in the current view (Navigate to ...) and elements which are not present in the current view (Add to view ...). Navigating to an element which is not present in the current view will add the element to the view.

Add to view table

Add predecessors and successors

To add predecessors or successors of a single or multiple elements to the view first right click on a single element of the current selection and then select Successor/Predecessor. In the new context menu, either select Add successors to view or Add predecessors to view and choose a depth between 1 and 5, where depth 1 means direct successors/predecessors.

Context menu successors

Depending on the action predecessors or successors of the selected depth are added to the view.

Added sucessors

Add path to predecessors and successors

Additionally, a path to a particular predecessor/successor can be added to the view. Selecting Add path to successor to view or Add path to predecessor to view opens a dialog where all predecessors/successors are listed.

Add path to successor/predecessor dialog

Selecting a predecessor/successor will add the path to the selected predecessor/successor to the view, including all gates and nets which are required to reach the selected predecessor/successor.

Added path to successor/predecessor

Clone this wiki locally