Views

Code Templates View

The Code Templates is located near the Navigator and Hierarchy views or you can open it from Window > Show View > Other… > DVT > Code Templates.

To insert a template in a code editor, you can either:

  • drag and drop it in the editor at a specific location

  • double click on it

  • click on Insert into editor button

  • right-click on it > Insert

Note

If you choose one of the last three actions mentioned above, the template will be inserted in the current editor at the current cursor’s positon. Please make sure you have an opened editor and the cursor is at the right position before adding the template!

../../_images/code-templates-view.png
  1. Insert the selected template into the current editor

  2. Create a new template

  3. Edit the selected template

  4. Remove the selected template (NOTE: you cannot undo this operation!)

  5. Refresh the view (if it doesn’t automatically update when you modify templates/projects etc.)

  6. Collapse/expand all

  7. Filter templates (you can filter them by: nature, context, name, project, description)

  8. Templates’ natures

  9. A global template

  10. A project template

  11. Templates’ contexts

  12. Preview the template’s pattern (it automatically updates when clicking on a template)

To create a new template, click on Create a New Template button on the toolbar:

../../_images/code-templates-view-new-template.png
  1. Template’s name

  2. Check Automatically insert if you want the template to expand automatically on Ctrl+Space when there is no other matching template available. It is usually good idea to leave the checkbox checked, otherwise you would get a template proposal “popup”

  3. Each template must be created under a project available in the current workspace (select [ global ] for a global template)

  4. Assign a nature - only natures relevant to the selected project will be displayed

  5. Template’s context - only contexts relevant to the selected nature will be displayed

  6. Templates’s description

  7. Code Pattern - embed variables in ${} e.g. ${variable_name} to enable the template proposal wizard when inserting the template into an editor

  8. Insert variables - here you can find some useful misc. predefined variables

Compile Order View

The Compile Order View presents the hierarchy of compiled files as it results from the `include compiler directives, starting from the project top files.

Open the view from menu Window > Show View > Other… > DVT > Compile Order.

Double click on a file to open it.

You can use CamelCase or Simple Regex to locate a specific element.

../../_images/vhdl_compile_order_view.png
../../_images/vlog_file_gray_obj.png

A file that is not part of the current project (files are not under the project directory).

../../_images/vlog_file_obj.png

A file in your project.

Build Config Hierarchy

Press Show Build Config button to open the build config hierarchy as it results from the ‘-f’ compile directives, starting from the active build configuration.

../../_images/compile_order_build_config_hierarchy_button.png

Note: Each invocation section will be added under the coresponding build configuration file.

../../_images/compile_order_build_config_config_hierarchy.png

Quick Compile Order View

Press Ctrl+I to quickly open a compiled file.

The Quick Compile Order View will pop-up and and present a filterable list of all the compiled files in the project.

You can use CamelCase or Simple Regex to locate a specific element.

Select a file and press Enter or click to open it.

../../_images/vhdl_quick_compile_order_view.png

Console View

Any invocation (for example a DVT Generic run) output is dumped to the Console View.

The Console View is automatically raised at any invocation.You can also go to menu Window > Show View > Other… > General > Console. to open the Console View.

Click on hyperlinks in the Console View to jump directly to the to source location.

../../_images/vhdldt-console-hyperlinks.png

Design Hierarchy View

The Design Hierarchy View presents recursively the instances in a Verilog module or the instances in a VHDL entity or component implementation. Cross-language design hierarchies are also supported.

Position the editor cursor on the name of a design element and press Shift+F4 or right-click and choose Show > Design Hierarchy from the context menu.

The Design Hierarchy View opens with the chosen element set as the top of the hierarchy. You can also go to menu Window > Show View > Design Hierarchy to open the view.

../../_images/design-hierarchy-presentation.png
  • cancel-current-operation Cancel Current Operation Stops the view operation in progress, for example a search.

  • design-hierarchy-top Select Top A drop-down menu/pop-up dialog to select from top modules for Verilog or top architectures for VHDL. For Verilog, a top element is a module that instantiates other design elements and it is not itself instantiated. Similar for VHDL top architectures.

  • history-list History List Click to see the previously inspected elements.

  • show-hide-ports Show/Hide Ports Shows or hides the ports of the selected element. You can set the ports panel to the right or below the hierarchy.

  • show-pd Show PD Shows or hides power domain information. You can choose to see the power domain names in the node labels, and distinctive foreground or background colors for all nodes belonging to the same power domain.

  • prepend-library Prepend Library Prepend to the node label the name of the library to which the instance belongs.

You can scroll through the tree of instances using:

  • the mouse scroll wheel

  • the Up arrow, Down arrow, PgUp, PgDn keys

  • the vertical button bar on the right side of the tree
    • go-to-top go to top of tree

    • up-one-page up one page

    • up up one element

    • down down one element

    • down-one-page down one page

    • go-to-bottom go to bottom of tree

Note

The up/down buttons are grayed out when reaching the top/bottom of the tree.

You can double-click on an instance to go to its declaration. Double-click on a port to go to where it is connected.

Right-click on an instance in the hierarchy and you have the following options :

../../_images/design-hierarchy-menu.png
  • Show Usages (References) Search for the references of the selected instance. More details Show Usages, Readers or Writers

  • Show Design Hierarchy Show the design hierarchy starting from the selection.

  • Show Diagram Show the design diagram for the current selection. More details Design Diagrams

  • Copy Copy the label text of the selected instance to clipboard.

  • Copy Hierarchy Path Copy the hierarchy path of the selected instance to clipboard. You can change the segment separator from Window > Preferences > DVT.

Right-click on a port and you have the following options :

../../_images/design-hierarchy-ports-menu.png
  • Trace Drive / Load / Drive and Load / In Subinstance See Trace Connections View.

  • Show Usages (References) Search for the references of the selected port. More details Show Usages, Readers or Writers

  • Readers / Writers See Show Usages, Readers or Writers

  • Show Diagram Show the Finite-State Machine for the current selection. More details Finite-State Machine Diagrams

  • Show Connections Diagram Show the Schematic Diagram of the selected port and all the instances connected to it

  • Copy Copy the label text of the selected port to clipboard.

  • Copy Hierarchy Path Copy the hierarchy path of the selected port to clipboard. You can change the segment separator from Window > Preferences > DVT.

You can use the filters to locate a specific instance or port. You may use slash ‘/’ characters to filter hierarchically one level and ‘//’ to filter hierarchically all the levels. You may use the dot ‘.’ character to filter instances that contain a specific port. The ports that match the filter are promoted to the top of the ports panel. See Quick Search in Views for more details.

No filter.

../../_images/design-hierarchy-filtering-no-filter.png

Filter by instance name. All instances that contain the filter text are shown.

../../_images/design-hierarchy-filtering_filter_instance_name.png

Filter strict hierarchy. All instances that contain the filter text and are in a direct hierarchical relationship (father/son) are shown.

../../_images/design-hierarchy-filtering_filter_strict_hierarchy.png

Filter non-strict hierarchy. All instances that contain the filter text and are in a direct or indirect hierarchical relationship (ancestor/../../descendant) are shown.

../../_images/design-hierarchy-filtering-filter-non-strict-hierarchy.png

Filter strict hierarchy and show all descendants. Same results as for filter strict hierarchy, but including all descendants of the matched instances.

../../_images/design-hierarchy-filtering-filter-strict-hierarchy-descendants.png

Filter strict hierarchy and show direct descendants. Same results as for filter strict hierarchy, but including the sons of the matched instances.

../../_images/design-hierarchy-filtering-filter-strict-hierarchy-sons.png

Filter by port name. All instances with ports that contain the filter text are shown.

../../_images/design-hierarchy-filtering-filter-port.png

Filter by hierarchy and port name. Hierarchical filtering and port filtering may be combined.

../../_images/design-hierarchy-filtering-filter-hierarchy-and-port.png

Note

To switch to the Old Design Hierarchy View (pre DVT 20.1.1) go to Window > Preferences > DVT and enable Switch to Old Design Hierarchy View

Inspect View

Inspect View shows detailed information about various elements in DVT.

Open the view from menu Window > Show View > Other… > DVT > Inspect.

To inspect an element, simply select it in a view or click on its name in the editor.

Information about the selected element will be presented in the view.

Each element shown in the Inspect View starts with an information line regarding the file and line number of the element.

The Inspect View highlights the relevant source code lines of the selected element. These lines may be surrounded with additional source code to provide a context, if necessary.

You can customize the number of lines shown by going to Window > Preferences > DVT > Maximum Inspect View context lines, or by using the key mappings detailed in the Hotkeys chapter below.

../../_images/vhdl_inspect_view_standalone.png

For convenience, you can see the Inspect View embedded in diagrams by clicking the Inspect Panel… button inspect_btn in the toolbar.

../../_images/vhdl_inspect_view_diagram.png

Hotkeys

The following key mappings are available while interacting with the Inspect View.

CTRL+ALT+[

Decrease the number of context lines shown

CTRL+ALT+]

Increase the number of context lines shown

CTRL+K

Cycle through highlighted inputs shown inside the view

WaveDrom Timing Diagrams

WaveDrom is a tool that draws timing diagrams (waveforms) from a simple textual description written in JSON. DVT renders WaveDrom waveforms in the Inspect View. The waveform diagram is updated on the fly (as you type).

../../_images/wavedrom_overview.png

The waveform description can be:

  • either embedded in comments, surrounded by @WAVEDROM_START…@WAVEDROM_END pragmas

  • or in files with *.json or *.json5 extensions

When the waveform description is found in a file with a valid extension, the Inspect View will process it’s content and render the diagram when opened. The waveform description file can also be embedded in comments using the @WAVEDROM_FILE pragma, followed by its location. The location of the file will be solved relatively to the project root.

To save the diagram as an SVG file, right-click on it in the Inspect View.

DVT offers the ability to view WaveDrom diagrams through tooltips, by hovering over any waveform written inside DVT editors.

Tip

The WaveDrom documentation is available here.

Note

To specify additional file extensions, use the +dvt_wavedrom_file_ext_add+<extension> build config directive. To clear the extensions list use +dvt_wavedrom_file_ext_clear.

Note

To specify additional search file locations to use in junction with @WAVEDROM_FILE pragma, use the +dvt_wavedrom_files_location_add+<location> build config directive. To clear the extensions list use +dvt_wavedrom_files_location_clear.

Note

By default, only waveform descriptions of maximum 5000 characters are rendered. You can change this threshold from menu Window > Preferences then DVT > Editors.

Note

DVT uses WaveDrom version 3.5.0.

Layers View

You can quickly see all the architectures of an entity or where a function is overloaded using the Layers View.

Position the cursor on an entity, architecture or function and press Shift+F3 or right click and choose Show Layers from the menu.

The Layers View is automatically raised at any invocation. You can also open it from Window > Show View > Other… > DVT > Layers.

Double click on a layer and jump to the corresponding source location.

Right click on a layer to see its Usages.

You can use CamelCase or Simple Regex to locate a specific element.

../../_images/vhdl_layers_view_notes.png
  1. Show History List Click to see the previously inspected layers (see the image below):

../../_images/vhdl_layers_view_history.png

Power Domain View

The Power Domain View shows detailed information about each power domain created in the project including instances, isolation strategies and retention rules.

Open the view from menu Window > Show View > Other… > DVT > Power Domain.

../../_images/power_domain_view.png

The power domains and their details are displayed in a hierarchical tree format.

Toggle the Inspect Panel to visualize more details of the currently selected element.

../../_images/power_domain_view_inspect.png

Tip

Double click an element to jump to its declaration.

Tip

To see the including Power Domain of any element, right click > Show PD definition

Quick Layers View

Position the cursor on the element’s name and press Ctrl+Shift+O.

The Quick Layers View will pop-up and present a filterable list with all of the selected element’s layers.

You can use CamelCase or Simple Regex to locate a specific element.

Select a layer and press Enter or click to jump to the corresponding source location.

../../_images/vhdl_quick_layers_view.png

Outline View

The Outline View presents an overview of the editor contents.

Open the view from menu Window > Show View > Other… > General > Outline.

You can click on an entity to jump to its location inside the current file.

You can use CamelCase or Simple Regex to locate a specific element.

../../_images/vhdldt-outline-view-presentation.png
../../_images/filter1.png

Filters…

Select what elements to show

../../_images/alphab_sort.png

Alphabetical Sort

If alphabetical sort is on, all the entities are sorted by name. By default the entities are presented in the definition order.

../../_images/category_sort.png

Category Sort

If category sort is on, entities are arranged by categories (fields, methods etc.), instead of being mixed as they appear in the file.

../../_images/expand_tree1.png

Expand All

../../_images/collapse_tree1.png

Collapse All

Quick Outline View

Press Ctrl+O to open the Quick Outline dialog. It presents an overview of your file.

You can use CamelCase or Simple Regex to locate a specific element.

../../_images/vhdldt-quick-outline-view.png

Outline View Preferences

You can configure the Outline View contents from menu Window > Preferences > DVT > VHDL > Outline View.

../../_images/vhdldt-outline-view-preferences.png

Problems View

If a project contains errors, for example syntax errors, it will be indicated using decorators:

../../_images/vhdldt-errors-decorator.png

You can use the Problems View to inspect the errors. Open the view from menu Window > Show View > Other… > General > Problems. Double clicking on some error will jump to the source location.

../../_images/vhdldt-errors-view.png

Quick Query View

Press Ctrl+Alt+Q to quickly open the Quick Query View, which provides a filterable list of all the types and compiled files in the project.

This view supports semantic search, allowing to look for a specific element. In order to do this, structure your query in the following manner: query_key:search_pattern.

You can use CamelCase or Simple Regex for the search_pattern.

DVT supports the following query keys:

  • architecture

  • configuration

  • entity

  • file

  • library

  • package

  • package_body

  • type_body

  • vhdl_type

Note

You can use the type:search_pattern query in order to search for all the types defined in your project.

Select an element and press Enter or click to navigate to it.

Note

By default, the Quick Query View will display 100 items from each category (types, files). You can customize this value by going to Window > Preferences > DVT > Maximum number of elements per category in Quick Query View.

Tasks View

../../_images/vhdldt-reminders-CodeTasksView.png

You can embed reminders in your source files by adding comments prefixed by certain “keywords” called task tags.

There are three predefined tags:

  • FIXME - high priority

  • TODO - normal priority

  • XXX - low priority

All reminders are listed in the Tasks View. If it is not visible, open the view from menu Window > Show View > Other > General > Tasks.

Double click on a task to jump to the marker definition.

You can define custom reminder tags and assign them priorities:

  • Navigate to Window > Preferences > DVT > Task Tags

../../_images/tasktag-preferences.png

You can specify if the tags should be considered case-sensitive and if the tag name should be displayed in Tasks View.

  • Click the Add… button on the right, enter the name of your tag and select its priority

../../_images/reminders-new_tag.png
  • Click OK in the New Task Tag and Preferences dialogs

DVT will recognize the new tag and highlight it in code comments.

Note

it is recommended to rebuild the project so that DVT rescans all files for reminders.

Trace Connections View

The Trace Connections View presents a hierarchy similar with the Design Hierarchy View:

  • The connected instances are displayed, the rest are filtered out.

  • You can use Show Root and Show Full Hierarchy options to show the entire design. The connected instances are colored, the rest are grayed-out.

  • Port icons indicate the direction of the signal.

  • Sources and destinations are marked with red/green decorations.

  • You can search for a specific connected instance or signal with Quick Search in Views.

../../_images/trace-connections-presentation.png

The toolbar buttons allow you to change the trace kind:

  • trace-drive-load Trace Drive and Load shows the connected instances across the drive and load paths (how is this signal connected in the design)?

  • trace-drive Trace Drive shows the connected instances across the drive paths (who drives this port?).

  • trace-load Trace Load shows the connected instances across the load paths (who does this port drive?).

Other buttons:

  • show-root Show Root shows the path to the hierarchy root, even if the signal doesn’t reach it. It provides the enclosing context for deep traces, for example when tracing a signal many levels below the top module. This option is enabled by default.

  • show-full-hierarchy Show Full Hierarchy shows the full hierarchy, whether it is reached by the traced signal or not (how is this signal connected in the whole design context?).

  • show-as-list Show As List to view only the sources and destinations as a list.

  • show-hide-signals Show/Hide Signals shows or hides the ports or internal signals of the currently selected instance.

  • show-diagram Show Diagram to view a graphical representation of signal traces.

At any time you can see the traced signal (the port or internal signal you are currently tracing). It is indicated in the info label. The two connected instances that are bold colored in the tree represent:

  • The instance with the traced signal.

  • The instance with the signal shown in the trace path. More details Trace Path.

../../_images/trace-connections-current-port.png

Double-click on an element to go to code:

  • For a connected instance, go to its declaration.

  • For a port, go to where it is connected in the trace path.

  • For a signal, go to where it is declared.

When the signals panel is hidden, right-click on an instance in the tree to show the context menu.

../../_images/trace-connections-hide-ports-menu.png

When visible, right-clicking on a port or internal signal to show the context menu.

../../_images/trace-connections-show-ports-menu.png

The options in the context menu are :

  • Trace > trace kind Trace signals found on the drive or load paths of the current traced signal.

  • Go to Go to the port connections or signal declarations of the selected instance. The same as double-clicking on a particular signal in the signals panel.

  • Show Path Show the trace path from the traced port to the selected port or internal signal. More details Trace Path.

Types View

The Types View presents all the types (classes, structs, units, entities etc.) defined in your project.

Open the view from menu Window > Show View > Other… > DVT > Types.

Click on the Show Members button to show the Members pane.

Double click on a type or type member to jump to its definition.

Right click on a type or type member to search for Show Usages, Readers or Writers or further inspect the Type Hierarchy View or the Verification Hierarchy View, where applicable.

You can perform Search for Members.

Toolbar

../../_images/show_hide_ports.png

Show/Hide Members

Toggles the visibility of the members pane. Use the drop-down to chose placement (to the right side or below the types tree).

../../_images/category_sort.png

Sort by Category

Click to sort by category. Default sort order is alphabetical.

../../_images/expand_tree1.png

Expand All

Expand all nodes in types tree.

../../_images/collapse_tree1.png

Collapse All

Collapse all nodes in types tree.

Note

Type containers are also shown in the view, for example libraries, generate statements, etc. See this for more information on Types, Type Containers and Type Members.

../../_images/vhdl_types_view.png

Quick Types View

Press Ctrl+Shift+T to quickly open a specific type definition for the project associated with the active editor or the current selected project from the Navigator (if no editor is open).

The Quick Types View will pop-up and and present a filterable list of all the types in the project associated with the active editor or the current selected project from the Navigator (if no editor is open).

You can use CamelCase or Simple Regex to locate a specific element.

Select and press Enter or click to jump to its definition.

../../_images/vhdl_quick_types_view.png