DVT SystemVerilog IDE User Guide
Rev. 24.1.5, 13 March 2024

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. Set the 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. Simulator Log-config
4.5. Emulating compiler invocations
4.6. Multiple .build Files
4.7. Compatibility Modes
4.7.1. Default DVT Compatibility Mode
4.7.2. gcc Compatibility Mode
4.7.3. ius.irun Compatibility Mode
4.7.4. ius.perspec Compatibility Mode
4.7.5. questa.vcom Compatibility Mode
4.7.6. questa.vlog Compatibility Mode
4.7.7. questa.qrun Compatibility Mode
4.7.8. vcs.vhdlan Compatibility Mode
4.7.9. vcs.vlogan Compatibility Mode
4.7.10. xcelium.xrun Compatibility Mode
4.8. Paths
4.9. Strings
4.10. Comments
4.11. Environment Variables
4.12. Including Other Argument Files
4.13. Build Persistence
4.14. DVT Auto-Linked
4.15. Run a Script Before Build
4.16. All Build Directives
4.17. e Language Test Files
4.18. e Language SPECMAN_PATH
4.19. SystemVerilog OVM or UVM Library Compilation
4.20. Xilinx Libraries Compilation
4.21. Intel(Altera) Quartus Libraries Compilation
4.22. Questa Libraries Compilation
4.23. Use of External Programs
5. Compile Checks
5.1. Compile Waivers
5.2. Semantic Checks
5.3. Synthesis Checks
5.4. Performance Checks
5.5. Dead Code Checks
5.6. 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
6.5. Implement Extern Functions Using Autocomplete
6.6. Use Assignment Pattern for Struct Type Variable
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 Class In New File
7.7. Create File From Build Config Editor
7.8. Create Included File
7.9. Create Interface Class In New File
7.10. Declare Method
7.11. Declare Variable
7.12. Did You Mean
7.13. Explicitly Declare
7.14. Fully Qualify Type
7.15. Implement Extern Method
7.16. Implement Missing Pure Virtual Methods
7.17. Import Type
7.18. Remove 'local' or 'protected' Qualifier
7.19. Remove Signal from Sensitivity List
7.20. Remove Signal Never Used
7.21. Update Extern Prototype/Implementation
7.22. Update Module Instance
7.23. Update Virtual Method Signature
7.24. 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. Extract to Variable
8.7. Extract to Method
8.8. Extract to Module
8.9. Move Selection to New File
8.10. Join Extern and Implementation
8.11. Split to Extern and Implementation
8.12. 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. Method Code Templates
10.3. Global Code Templates
10.4. Project Level Code Templates
10.5. 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 Configuration
12.3.1. template-config.xml
12.3.2. 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
13.8. Preferences Keys
13.9. Automatic Indentation As You Type
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. Favorite Searches
20. Show Constraints
21. Show Instances
21.1. Show Instances in the Search View
21.2. Show Instances in the Design Hierarchy View
22. Quick Search in Views
22.1. CamelCase
22.2. Simple Regex
22.3. Hierarchical Search
22.4. Search for Members
22.5. Search Port in Design Hierarchy
22.6. Search Port in Verification Hierarchy
22.7. Search all UVM Phase Overrides
22.8. Search Global API
23. Trace Connections
23.1. Trace Connections from Design Hierarchy
23.2. Trace Connections from Editor
23.3. Trace Connections View
23.4. Trace Path
24. Breadcrumb Navigation Bar
24.1. Design Breadcrumb
24.2. Verification Breadcrumb
24.3. Scope Breadcrumb
24.4. Filesystem Breadcrumb
25. Code Factory
26. Refactoring
26.1. Rename Refactoring
26.2. Rename Port Across the Design Hierarchy
26.3. Rename File
26.4. Bind Method Call Arguments by Name
26.5. Bind Method Call Arguments by Position
26.6. Connect Instance Ports by Name
26.7. Connect Instance Ports by Position
26.8. Expand .* Port Connections
26.9. Extract to Variable
26.10. Extract to Method
26.11. Extract to Module
26.12. Move Selection to New File
26.13. Join Extern and Implementation
26.14. Split to Extern and Implementation
26.15. Change Method Signature
26.16. Connect Instances Across the Design Hierarchy
26.16.1. Connect Instances Using New Ports
26.16.2. Connect Instances Using Existing Ports
26.16.3. Structural Changes Preview Diagram
26.16.4. Refactoring Connect View
26.17. Add Port to Module from Selected Field
26.18. Add New Port to Module
26.19. Add New Parameter to Module
26.20. Refactoring Scripts
26.20.1. Writing a Refactoring Script
26.20.2. Applying a Refactoring Script
27. Diagrams
27.1. UML Diagrams
27.1.1. UML Diagrams - Select Types
27.1.2. UML Diagrams - Preferences
27.1.3. UML Diagrams - Legend
27.2. Architecture UML Diagrams
27.3. Sequences UML Diagrams
27.4. Design Diagrams
27.4.1. Schematic Diagrams
27.4.2. Flow Diagrams
27.4.3. Block Diagrams
27.4.4. Finite-State Machine Diagrams
27.4.5. Diagram Filters
27.4.6. Design Diagram Actions
27.4.7. Breadcrumb Navigation Bar
27.4.8. Low Power Format Support
27.5. UVM Components Diagrams
27.5.1. Component Diagrams from Verification Hierarchy
27.5.2. Component Diagrams from Simulation
27.5.3. Diagram Filters
27.6. Diagram Actions
27.7. Diagram Toolbar
27.8. Diagram Magnifier
27.9. WaveDrom Timing Diagrams
27.10. Bit Field Diagrams
27.10.1. Bit Field Diagrams for UVM registers
27.10.2. Bit Field Diagrams for packed data types
28. Low Power Format Support
28.1. Supply Network Diagram
29. Export HTML/PDF Documentation
30. External Tools Integration
30.1. Run Configurations
30.1.1. Run Configuration Session Type
30.1.2. Custom Shortcut and Button for a Run Configuration
30.1.3. Using environment variables in DVT Generic Run Configurations
30.1.4. Using an alias in a DVT Generic Run Configuration
30.1.5. DVT Generic Run Configuration Variables
30.2. Smart Log
30.2.1. Smart Log - Filters
30.2.2. Smart Log - Hyperlinks
30.2.3. Smart Log - Styles
30.3. External Builders
30.3.1. How to define a new external builder
30.3.2. How to invoke external builders
30.3.3. External Builder Output
30.3.4. Source Code Markers - errors warnings
30.4. External Documentation
30.4.1. Configure External Documentation
30.4.2. Browse External Documentation
30.4.3. Search External Documentation
31. Debugger Integration
31.1. Simulation Prerequisites
31.2. Launch a Debug Simulation
31.3. Connect to an Existing Simulation
31.4. Breakpoints
31.5. Threads, Call Stack, Stepping
31.6. Variables
31.7. Watch Expressions
31.8. Debug Specific Configurations
32. Custom Dialogs
32.1. Quick Steps
32.2. Customizing the Dialog Output
32.3. SWT/XML Reference
32.3.1. Layouts
32.3.2. Widgets
32.4. Custom Dialog Snapshots
32.4.1. Custom Dialog Snapshots File Syntax (XML)
33. Command Line Interface
33.1. dvt_cli.sh
33.2. Syntax
33.3. Examples
33.4. Makefile Example
33.5. Commands
33.5.1. Create a Project (Mixed-Language Capable)
33.5.2. Create a Project From an Existing Template
33.5.3. Import an Existing Project
33.5.4. List Compiled Files
33.5.5. Compare Files
33.5.6. Launch a Run Configuration
33.5.7. Open a File
33.5.8. Close a File
33.5.9. Open a Custom Dialog
33.5.10. Open a Perspective
33.5.11. Refresh a Project
33.5.12. Rebuild a Project
33.5.13. Print Edited File
33.5.14. Quit
33.5.15. Query the running status
33.5.16. Print version
33.5.17. Run Performance Exploration
34. Macros Support
34.1. Inactive Code Highlight
34.1.1. Overview
34.1.2. Settings
34.2. Macro Expansion
34.2.1. Overview
34.2.2. Triggering
34.2.3. Tips
34.2.4. IMPORTANT NOTE
34.3. Macros and Quick Macros Views
35. Reminders (TODO Markers)
36. OVM Support
36.1. OVM Compliance Review
36.2. OVM Field Editor
36.2.1. Triggering
36.2.2. Interface
36.2.3. Problems
36.2.4. Tips
36.3. OVM Smart Log
36.4. Quick OVM Documentation Access
36.5. OVM Templates
37. UVM Support
37.1. Runtime UVM Configuration Queries
37.2. Static UVM Configuration Queries
37.3. UVM Browser
37.4. UVM Compliance Review
37.5. UVM Content Filters
37.6. UVM Field Editor
37.6.1. Triggering
37.6.2. Interface
37.6.3. Problems
37.6.4. Tips
37.7. UVM Runtime Elaboration
37.8. UVM Sequence Tree
37.9. UVM Smart Log
37.10. UVM Templates
37.11. UVM Verification Hierarchy
37.12. OVM to UVM Migration
37.12.1. Triggering
37.12.2. Preferences
37.12.3. Review changes
38. VMM Support
38.1. VMM Smart Log
38.2. Quick VMM Documentation Access
38.3. VMM Templates
39. Settings Management
39.1. Managed Settings
39.2. Unmanaged Settings
39.3. User and Common Settings Location
39.4. Use Cases
39.4.1. Memory Allocation Thresholds
39.4.2. Workspace Preferences
39.4.3. Run Configurations
39.4.4. Compile Waivers
39.4.5. Content Filters
39.4.6. External Builders
39.4.7. Export HTML Documentation
39.4.8. Custom Pragmas
39.5. Examples
39.6. Deprecated Settings Management (before DVT 3.5)
39.6.1. Workspace Settings
39.6.2. Project Settings
39.6.3. Other Settings
39.6.4. Importing Preferences From a Different Workspace
39.6.5. Customizing Default Settings Using dvt.ini
40. Reference
40.1. Comments Formatting
40.1.1. Javadoc
40.1.2. Natural Docs
40.2. Common Shortcuts
40.3. Custom Pragmas
40.4. DVT Resource Monitor
40.5. Editor Notification
40.6. Editor Right Click Menu
40.6.1. Folding
40.6.2. Macros
40.6.3. Source
40.6.4. Code Factory
40.6.5. Show
40.6.6. References
40.6.7. Trace
40.6.8. Refactor
40.7. Hyperlinks
40.7.1. Hyperlinks in Comments
40.8. Icons and Decorations
40.8.1. Icons
40.8.2. Decorations
40.8.3. Changing Icon Colors
40.8.4. Project Colors
40.9. Inactive Generates Code Highlight
40.10. Lazy Bring up Resources
40.11. Memory Monitor
40.12. Scripts
40.12.1. dvt.sh
40.12.2. dvt_cli.sh
40.12.3. dvt_from_rawtokens.sh
40.12.4. dvt_kit_installer.sh
40.12.5. dvt_plugin_installer.sh
40.12.6. dvt_build.sh
40.13. Syntax Coloring
40.14. Themes
40.15. Toolbar Actions
40.16. Tooltips
40.17. Views
40.17.1. Call Hierarchy View
40.17.2. Checks View
40.17.3. Code Templates View
40.17.4. Compile Order View
40.17.5. Config DB View
40.17.6. Console View
40.17.7. Coverage View
40.17.8. Design Hierarchy View
40.17.9. Factory Overrides View
40.17.10. Inspect View
40.17.11. Layers View
40.17.12. Macros View
40.17.13. Outline View
40.17.14. Problems View
40.17.15. Registers View
40.17.16. Tasks View
40.17.17. Trace Connections View
40.17.18. Types View
40.17.19. Type Hierarchy View
40.17.20. UVM Browser View
40.17.21. UVM Sequence Tree View
40.17.22. Verification Hierarchy View
41. Application Notes
41.1. C/C++ support
41.2. Design Elaboration
41.2.1. Top candidates
41.2.2. Parameter values
41.2.3. Unelaborated Design
41.2.4. Debugging
41.2.5. Performance
41.3. Compilation Speed-up
41.4. Precompilation Support
41.5. Encrypted VIP Support
41.6. FPGA Support
41.6.1. Intel(Altera) Quartus
41.6.2. Xilinx ISE/Vivado
41.7. Generating External Tool Scripts from the DVT Build Configuration
41.8. Incremental Compilation
41.9. Preprocessed Files Support
41.9.1. Using the PVerilog editor (Deprecated)
41.10. Output and logging
41.11. UVM Library Compilation Troubleshooting
41.12. Visual Artifacts
42. Tips and Tricks
43. Q & A
43.1. I am new to Eclipse, where should I start from?
43.2. Where can I find DVT Help?
43.3. How do I see and configure the key shortcuts?
43.4. Are there any backup files in Eclipse?
43.5. Workspace in use, cannot launch eclipse...
43.6. Locking is not possible in the directory...
43.7. How to start DVT Eclipse with a different eclipse.ini
43.8. Save could not be completed
43.9. IBM Clearcase Plugin
43.10. Non existing package mti_fli
43.11. How to use Working Sets for filtering Problems/Task/Search views?
43.12. How to handle Simulator and Command Line Macros
43.13. How do I Access Files Outside Project Dir - Working with Linked Resources
43.14. Mapping Linux to Windows (/proj/ to Z:\proj\)
43.15. Subversive vs Subclipse
43.16. How do I associate a project with both DVT and CDT?
43.17. Can I use vi/vim along with DVT?
43.18. Can I perform dos2unix or unix2dos from DVT?
43.19. How can I configure Eclipse to use a local CVS repository?
43.20. I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do?
43.21. How do I change the background color of the Editor?
43.22. Some widget colors are not displayed properly. What can I do?
43.23. How do I change the tooltip colors?
43.24. How do I change Internet Proxy Settings?
43.25. Eclipse does not start, there is no Workspace, metadata or log file created
43.26. Workspace permissions
43.27. How do I link mylyn with Bugzilla?
43.28. How do I print source code?
43.29. How do I disable Eclipse Software Sites?
43.30. How do I revert to a previous version?
43.31. What are the most common shortcuts in DVT?
43.32. How does DVT integrate with emacs?
43.33. How does DVT integrate with CVS?
43.34. How to set an environment variable within a Run Configuration?
43.35. How to run a remote Unix commnad from DVT Eclipse for Windows?
43.36. Rebuild shortcut (Ctrl + Alt + R) does not work
43.37. I want to use an alias in a DVT Generic Run Configuration, but it's not recognized
43.38. How to set multiple paths as sources of predefined projects ?
43.39. Lines are suddenly changing indentation when I edit text or move the cursor through the editor.
43.40. How to change the directory where the build log file is saved ?
43.41. How to find the DVT logs on Linux/Unix ?
43.42. How to create resource filters ?
43.43. How to create custom shortcut and button for a Run Configuration?
43.44. I know that file.foo is present in the project location, but I can't see it in the Navigator View
43.45. How to copy the full path to the file in the current editor?
43.46. How to adjust the console logs filters matching parameters?
43.47. When I switch to Block (Column) Selection mode the font changes
43.48. In Block (Column) Selection mode I see strange editng artifacts
43.49. How to modify the font size in the code editors?
43.50. How to automatically checkout/lock files from the revision control system ?
43.51. How can I see if a file is read-only?
43.52. How can I open a file in DVT from the terminal?
43.53. How can I open a file in DVT from Questa?
43.54. How do I change the name of the xterm opened by a DVT Generic Run Configuration?
43.55. I get errors while installing or updating a plugin from an update site
44. What is New?
45. How to Report an Issue?
46. Legal Notices
47. Third Party Licenses