DVT SystemVerilog IDE User Guide
Rev. 19.1.24, 11 July 2019

DVT SystemVerilog IDE User Guide

Table of Contents

1. Installation Checklist
1.1. Install DVT Using a pre-packed Distribution
1.2. Install DVT Using the Update Site
1.3. Check the DVT License
2. Predefined Projects
3. Getting Started
3.1. What is a Workspace
3.2. What is a Project
3.3. Project Natures
3.4. Workspace and Workbench
3.5. Refresh
3.6. Linked Resources
3.7. Backup and Local History
3.8. Basic Tutorial
3.8.1. Switch to the DVT Perspective
3.8.2. Open a Project
3.8.3. Configure the Build
3.8.4. Build the Project
3.8.5. Inspect the Compilation Errors
3.8.6. See Comments in Tooltips
3.8.7. Use Hyperlinks to Move Around in the Code
3.8.8. Quickly Open a Type (Class, Module, Interface)
3.8.9. Quickly Inspect the Class Hierarchy
3.8.10. Quickly Open a File
3.8.11. Quickly Move Inside the Editor
3.8.12. Inspect the Class Hierarchy and Class Members
3.8.13. Inspect the Design Hierarchy
3.8.14. Inspect the Verification Hierarchy
3.8.15. Browse Through All the Available Types (Classes, Modules, Interfaces)
3.8.16. Look for the Implementation of an Extern Function or Task
3.8.17. Search for Entities
3.8.18. Use Content Assist (Autocomplete)
3.8.19. Use Code Templates
3.8.20. Use Module Auto Instance
3.8.21. Expand Macros (Apply Preprocessing)
3.8.22. Trace Macro Errors
3.8.23. Track Tasks using TODO Markers
3.8.24. Quickly See the Current Scope in the Status Bar
3.8.25. Fold Code Regions in Order to Improve Readability
3.8.26. Access the Context Sensitive Help
4. Build Configurations
4.1. Non-top files
4.2. default.build
4.3. Auto-config
4.4. Emulating compiler invocations
4.5. Multiple .build Files
4.6. Compatibility Modes
4.6.1. Default DVT Compatibility Mode
4.6.2. vcs.vlogan Compatibility Mode
4.6.3. vcs.vhdlan Compatibility Mode
4.6.4. ius.irun Compatibility Mode
4.6.5. ius.perspec Compatibility Mode
4.6.6. questa.vlog Compatibility Mode
4.6.7. questa.vcom Compatibility Mode
4.6.8. gcc Compatibility Mode
4.7. Paths
4.8. Strings
4.9. Comments
4.10. Environment Variables
4.11. Including Other Argument Files
4.12. Build Persistence
4.13. DVT Auto-Linked
4.14. Run a Script Before Build
4.15. All Build Directives
4.16. e Language Test Files
4.17. e Language SPECMAN_PATH
4.18. SystemVerilog OVM or UVM Library Compilation
4.19. Xilinx Libraries Compilation
4.20. Intel(Altera) Quartus Libraries Compilation
5. Compile Checks
5.1. Compile Waivers
5.2. Semantic Checks
5.3. Non Standard Checks
6. Content Assist (Autocomplete)
6.1. Content assist for CamelCase and Underscore
6.2. Code Templates
6.3. Module Automatic Instantiation
6.4. Override Functions Using Autocomplete
7. Quick Fix Proposals
7.1. Add Parameter to Module
7.2. Add Port to Module
7.3. Add Signal to Sensitivity List
7.4. Add Virtual Qualifier to Interface Type
7.5. Correct Spelling In Comments and Strings
7.6. Create File From Build Config Editor
7.7. Create Included File
7.8. Declare Method
7.9. Declare Variable
7.10. Did You Mean
7.11. Fully Qualify Type
7.12. Implement Extern Method
7.13. Implement Missing Pure Virtual Methods
7.14. Import Type
7.15. Remove 'local' or 'protected' Qualifier
7.16. Remove Signal from Sensitivity List
7.17. Remove Signal Never Used
7.18. Update Extern Prototype/Implementation
7.19. Update Module Instance
7.20. Update Virtual Method Signature
7.21. Waive Compilation Problems
8. Quick Assist Proposals
8.1. Bind Method Call Arguments by Name
8.2. Bind Method Call Arguments by Position
8.3. Connect Instance Ports by Name
8.4. Connect Instance Ports by Position
8.5. Expand .* Port Connections
8.6. Explicitly Declare
8.7. Extract to Variable
8.8. Extract to Method
8.9. Join Extern and Implementation
8.10. Split to Extern and Implementation
8.11. Rename in File
9. Content Filters
9.1. Content Filters XML syntax
9.2. Filtering by element type
9.3. Content Filters Examples
9.4. Predefined Content Filters
10. Code Templates
10.1. Code Templates in Autocomplete
10.2. Global Code Templates
10.3. Project Level Code Templates
10.4. Code Templates View
11. File Templates
12. Project Templates
12.1. What is a project template?
12.2. How to generate code from a project template
12.2.1. Step 1. Specify Directories
12.2.2. Step 2. Specify Parameters
12.3. template.config
12.4. Add from Template
13. Code Formatting
13.1. Whitespace
13.2. Indentation
13.3. Vertical Alignment
13.4. Line Wrapping
13.5. Disable Format for Code Sections
13.6. Format Multiple Files
13.7. External
14. Override Functions
14.1. Override Annotation
14.2. Inspect Overrides in the Quick Type Hierarchy View
14.3. Inspect Overrides in the Layers View
14.4. Override Using the Dialog
14.5. Override Using Autocomplete
14.6. Override Using the Type Hierarchy View
15. Generate Getters and Setters
16. Module Automatic Instantiation
16.1. Autoinstance Using Autocomplete
16.2. Autoinstance Using Drag and Drop
17. Semantic Search
18. Show Usages, Readers or Writers
19. Show Constraints
20. Show Instances
21. Quick Search in Views
21.1. CamelCase
21.2. Simple Regex
21.3. Hierarchical Search
21.4. Search for Members
21.5. Search Port in Design Hierarchy
21.6. Search Port in Verification Hierarchy
21.7. Search all UVM Phase Overrides
21.8. Search Global API
22. Trace Connections
22.1. Trace Connections from Design Hierarchy
22.2. Trace Connections from Editor
22.3. Trace Connections View
22.4. Trace Path
23. Breadcrumb Navigation Bar
23.1. Design Breadcrumb
23.2. Verification Breadcrumb
23.3. Scope Breadcrumb
24. Code Factory
25. Refactoring
25.1. Rename Refactoring
25.2. Bind Method Call Arguments by Name
25.3. Bind Method Call Arguments by Position
25.4. Expand .* Port Connections
25.5. Extract to Variable
25.6. Extract to Method
25.7. Join Extern and Implementation
25.8. Split to Extern and Implementation
25.9. Connect Instances Across the Design Hierarchy
25.9.1. Connect Instances Using New Ports
25.9.2. Connect Instances Using Existing Ports
25.9.3. Preview Structural Changes in the Design Hierarchy
25.9.4. Connect Instances Toolbar
25.10. Add Port to Module from Selected Field
25.11. Add New Port to Module
25.12. Add New Parameter to Module
25.13. Refactoring Scripts
25.13.1. Writing a Refactoring Script
25.13.2. Applying a Refactoring Script
26. Diagrams
26.1. UML Diagrams
26.1.1. UML Diagrams - Select Types
26.1.2. UML Diagrams - Preferences
26.1.3. UML Diagrams - Legend
26.2. Architecture UML Diagrams
26.3. Sequences UML Diagrams
26.4. Design Diagrams
26.4.1. Schematic Diagrams
26.4.2. Flow Diagrams
26.4.3. Block Diagrams
26.4.4. Finite-State Machine Diagrams
26.4.5. Diagram Filters
26.4.6. Design Diagram Actions
26.4.7. Breadcrumb Navigation Bar
26.4.8. Low Power Format Support
26.5. UVM Components Diagrams
26.5.1. Component Diagrams from Verification Hierarchy
26.5.2. Component Diagrams from Simulation
26.5.3. Diagram Filters
26.6. Diagram Actions
26.7. Diagram Toolbar
27. Low Power Format Support
27.1. Supply Network Diagram
28. Export HTML Documentation
28.1. Export HTML Documentation Wizard
28.2. Comments Formatting
28.2.1. JavaDoc
28.2.2. NaturalDocs
28.3. Customizing Documentation
29. External Tools Integration
29.1. Run Configurations
29.1.1. Run Configuration Session Type
29.1.2. Custom Shortcut and Button for a Run Configuration
29.1.3. Using environment variables in DVT Generic Run Configurations
29.1.4. Using an alias in a DVT Generic Run Configuration
29.1.5. DVT Generic Run Configuration Variables
29.2. Smart Log
29.2.1. Smart Log - Filters
29.2.2. Smart Log - Hyperlinks
29.2.3. Smart Log - Styles
29.3. External Builders
29.3.1. How to define a new external builder
29.3.2. How to invoke external builders
29.3.3. External Builder Output
29.3.4. Source Code Markers - errors warnings
29.4. External Documentation
29.4.1. Configure External Documentation
29.4.2. Browse External Documentation
29.4.3. Search External Documentation
30. Debugger Integration
30.1. Simulation Prerequisites
30.2. Launch a Debug Simulation
30.3. Connect to an Existing Simulation
30.4. Breakpoints
30.5. Threads, Call Stack, Stepping
30.6. Variables
30.7. Watch Expressions
30.8. Debug Specific Configurations
31. Custom Dialogs
31.1. Quick Steps
31.2. Customizing the Dialog Output
31.3. SWT/XML Reference
31.3.1. Layouts
31.3.2. Widgets
31.4. Custom Dialog Snapshots
31.4.1. Custom Dialog Snapshots File Syntax (XML)
32. Command Line Interface
32.1. dvt_cli.sh
32.2. Syntax
32.3. Notes
32.4. Examples
32.5. Makefile Example
32.6. Commands
32.6.1. Create a Project (Mixed-Language Capable)
32.6.2. Create a Project From an Existing Template
32.6.3. Import an Existing Project
32.6.4. List Compiled Files
32.6.5. Compare Files
32.6.6. Launch a Run Configuration
32.6.7. Open a File
32.6.8. Close a File
32.6.9. Open a Custom Dialog
32.6.10. Refresh a Project
32.6.11. Rebuild a Project
32.6.12. Print Edited File
32.6.13. Quit
32.6.14. Query the running status
32.6.15. Print version
33. Macros Support
33.1. Inactive Code Highlight
33.1.1. Overview
33.1.2. Settings
33.2. Macro Expansion
33.2.1. Overview
33.2.2. Triggering
33.2.3. Tips
33.2.4. IMPORTANT NOTE
33.3. Macros and Quick Macros Views
34. Reminders (TODO Markers)
35. OVM Support
35.1. OVM Compliance Review
35.1.1. Architecture Tab
35.1.2. Checks Tab
35.1.3. Statistics Tab
35.1.4. Waivers Tab
35.1.5. HTML Report
35.1.6. Problems View Integration
35.2. OVM Field Editor
35.2.1. Triggering
35.2.2. Interface
35.2.3. Problems
35.2.4. Tips
35.3. OVM Smart Log
35.4. Quick OVM Documentation Access
35.5. OVM Templates
36. UVM Support
36.1. UVM Browser
36.2. UVM Compliance Review
36.2.1. Architecture Tab
36.2.2. Checks Tab
36.2.3. Statistics Tab
36.2.4. Waivers Tab
36.2.5. HTML Report
36.2.6. Problems View Integration
36.3. UVM Content Filters
36.4. UVM Factory Queries
36.5. UVM Field Editor
36.5.1. Triggering
36.5.2. Interface
36.5.3. Problems
36.5.4. Tips
36.6. UVM Sequence Tree
36.7. UVM Smart Log
36.8. UVM Templates
36.9. UVM Verification Hierarchy
36.10. OVM to UVM Migration
36.10.1. Triggering
36.10.2. Preferences
36.10.3. Review changes
37. VMM Support
37.1. VMM Smart Log
37.2. Quick VMM Documentation Access
37.3. VMM Templates
38. Settings Management
38.1. Managed Settings
38.2. Unmanaged Settings
38.3. User and Common Settings Location
38.4. Use Cases
38.4.1. Memory Allocation Thresholds
38.4.2. Workspace Preferences
38.4.3. Run Configurations
38.4.4. Compile Waivers
38.4.5. Content Filters
38.4.6. External Builders
38.4.7. Export HTML Documentation
38.4.8. Custom Pragmas
38.5. Examples
38.6. Deprecated Settings Management (before DVT 3.5)
38.6.1. Workspace Settings
38.6.2. Project Settings
38.6.3. Other Settings
38.6.4. Importing Preferences From a Different Workspace
38.6.5. Customizing Default Settings Using dvt.ini
39. Reference
39.1. Common Shortcuts
39.2. Custom Pragmas
39.3. Editor Right Click Menu
39.3.1. Folding
39.3.2. Macros
39.3.3. Source
39.3.4. Code Factory
39.3.5. Show
39.3.6. References
39.3.7. Trace
39.3.8. Refactor
39.4. Hyperlinks
39.4.1. Hyperlinks in Comments
39.5. Icons and Decorations
39.5.1. Icons
39.5.2. Decorations
39.5.3. Changing Icon Colors
39.5.4. Project Colors
39.6. Scripts
39.6.1. dvt.sh
39.6.2. dvt_cli.sh
39.6.3. dvt_from_rawtokens.sh
39.6.4. dvt_kit_installer.sh
39.6.5. dvt_plugin_installer.sh
39.7. Syntax Coloring
39.8. Toolbar Actions
39.9. Tooltips
39.10. Views
39.10.1. Checks View
39.10.2. Code Templates View
39.10.3. Compile Order View
39.10.4. Console View
39.10.5. Coverage View
39.10.6. Call Hierarchy View
39.10.7. Design Hierarchy View
39.10.8. Inspect View
39.10.9. Layers View
39.10.10. Macros View
39.10.11. Outline View
39.10.12. Problems View
39.10.13. Tasks View
39.10.14. Trace Connections View
39.10.15. Types View
39.10.16. Type Hierarchy View
39.10.17. UVM Browser View
39.10.18. UVM Sequence Tree View
39.10.19. Verification Hierarchy View
40. Application Notes
40.1. C/C++ support
40.2. Encrypted VIP Support
40.3. Preprocessed Files Support
40.4. FPGA Support
40.4.1. Intel(Altera) Quartus
40.4.2. Xilinx ISE/Vivado
40.5. Generating External Tool Scripts from the DVT Build Configuration
41. Tips and Tricks
42. Q & A
42.1. I am new to Eclipse, where should I start from?
42.2. Where can I find DVT Help?
42.3. How do I see and configure the key shortcuts?
42.4. Are there any backup files in Eclipse?
42.5. Workspace in use, cannot launch eclipse...
42.6. Locking is not possible in the directory...
42.7. How to start DVT Eclipse with a different eclipse.ini
42.8. Save could not be completed
42.9. IBM Clearcase Plugin
42.10. Non existing package mti_fli
42.11. DVT is crashing with "Problematic frame ld-linux-x86-64.so.2 _dl_rtld_di_serinfo
42.12. libxul.so undefined symbol
42.13. How to use Working Sets for filtering Problems/Task/Search views?
42.14. Diagram error - image has not been created
42.15. How to handle Simulator and Command Line Macros
42.16. How do I Access Files Outside Project Dir - Working with Linked Resources
42.17. Mapping Linux to Windows (/proj/ to Z:\proj\)
42.18. Subversive vs Subclipse
42.19. How do I associate a project with both DVT and CDT?
42.20. Can I use vi/vim along with DVT?
42.21. Can I perform dos2unix or unix2dos from DVT?
42.22. How can I configure Eclipse to use a local CVS repository?
42.23. I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do?
42.24. How do I change the background color of the Editor?
42.25. How to apply the dark color theme or other themes?
42.26. How do I change the tooltip colors?
42.27. How do I change Internet Proxy Settings?
42.28. Eclipse does not start, there is no Workspace, metadata or log file created
42.29. Workspace permissions
42.30. How do I link mylyn with Bugzilla?
42.31. How do I print source code?
42.32. How do I disable Eclipse Software Sites?
42.33. How do I revert to a previous version?
42.34. What are the most common shortcuts in DVT?
42.35. How does DVT integrate with emacs?
42.36. How does DVT integrate with CVS?
42.37. How to set an environment variable within a Run Configuration?
42.38. How to run a remote Unix commnad from DVT Eclipse for Windows?
42.39. Rebuild shortcut (Ctrl + Alt + R) does not work
42.40. Sometimes I experience DVT GUI hangs, what should I do?
42.41. Sometimes I experience DVT GUI hangs when switching from another X application to DVT
42.42. I want to use an alias in a DVT Generic Run Configuration, but it's not recognized
42.43. How to set multiple paths as sources of predefined projects ?
42.44. Lines are suddenly changing indentation when I edit text or move the cursor through the editor.
42.45. How to change the directory where the build log file is saved ?
42.46. How to find the DVT logs on Linux/Unix ?
42.47. How to create resource filters ?
42.48. How to create custom shortcut and button for a Run Configuration?
42.49. I know that file.foo is present in the project location, but I can't see it in the Navigator View
42.50. How to copy the full path to the file in the current editor?
42.51. How to adjust the console logs filters matching parameters?
42.52. When I switch to Block (Column) Selection mode the font changes
42.53. In Block (Column) Selection mode I see strange editng artifacts
42.54. How to modify the font size in the code editors?
42.55. How to automatically checkout/lock files from the revision control system ?
42.56. How can I see if a file is read-only?
42.57. How can I open a file in DVT from the terminal?
42.58. How can I open a file in DVT from Questa?
42.59. How do I change the name of the xterm opened by a DVT Generic Run Configuration?
43. What is New?
44. How to Report an Issue?
45. Legal Notices
46. Third Party Licenses