-
Notifications
You must be signed in to change notification settings - Fork 76
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 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.
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.
Gates display their name, their type, their input pins and their output pins.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
The highlighting actions are explained with the following example.
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.
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.
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.
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.
A dialog will appear where you can choose a module, create a new module or pick a module from the Graph View.
The Graph View will be updated and all selected elements will be condensed into a single graphical entity representing the module.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
Depending on the action predecessors or successors of the selected depth are added to the view.
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.
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.