DVT SystemVerilog IDE User Guide
Rev. 24.2.25, 31 October 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 Extern Prototype
7.11. Declare Method
7.12. Declare Variable
7.13. Did You Mean
7.14. Explicitly Declare
7.15. Fully Qualify Type
7.16. Implement Extern Constraint
7.17. Implement Extern Method
7.18. Implement Missing Pure Virtual Methods
7.19. Import Type
7.20. Remove 'local' or 'protected' Qualifier
7.21. Remove Signal from Sensitivity List
7.22. Remove Signal Never Used
7.23. Update Extern Prototype/Implementation
7.24. Update Module Instance
7.25. Update Virtual Method Signature
7.26. 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. Collapse Macro
8.6. Expand Macro
8.7. Expand .* Port Connections
8.8. Extract to Variable
8.9. Extract to Method
8.10. Extract to Module
8.11. Move Selection to New File
8.12. Join Extern and Implementation
8.13. Split to Extern and Implementation
8.14. Rename in File
9. AI Assistant
9.1. Overview
9.2. Getting Started
9.3. Key Terms
9.3.1. Sessions
9.3.2. Blueprints
9.3.3. Prompting
9.3.4. Symbols
9.3.5. Snippets
9.4. Working in Chat
9.4.1. List of Buttons, Shortcuts and Commands
9.5. Working in Editor
9.6. Reference
9.6.1. List of Commands
9.6.2. Predefined Blueprints
9.6.3. Custom Blueprints
9.6.4. Predefined Snippets
9.6.5. Custom Snippets
9.6.6. LLM Configuration
9.7. How to Set-up Local LLMs Using Ollama
9.8. Troubleshooting
9.8.1. Why do I get unexpected replies?
9.8.2. Why do I get different replies for the same request?
9.8.3. What to do if I get errors or find a bug?
10. Content Filters
10.1. Content Filters XML syntax
10.2. Filtering by element type
10.3. Content Filters Examples
10.4. Predefined Content Filters
11. Code Templates
11.1. Code Templates in Autocomplete
11.2. Constraint Code Templates
11.3. Method Code Templates
11.4. Global Code Templates
11.5. Project Level Code Templates
11.6. Code Templates View
12. File Templates
13. Project Templates
13.1. What is a project template?
13.2. How to generate code from a project template
13.2.1. Step 1. Specify Directories
13.2.2. Step 2. Specify Parameters
13.3. Template Configuration
13.3.1. template-config.xml
13.3.2. template.config
13.4. Add from Template
14. Code Formatting
14.1. Whitespace
14.2. Indentation
14.3. Vertical Alignment
14.4. Line Wrapping
14.5. Disable Format for Code Sections
14.6. Format Multiple Files
14.7. External
14.8. Preferences Keys
14.9. Automatic Indentation As You Type
15. Override Functions
15.1. Override Annotation
15.2. Inspect Overrides in the Quick Type Hierarchy View
15.3. Inspect Overrides in the Layers View
15.4. Override Using the Dialog
15.5. Override Using Autocomplete
15.6. Override Using the Type Hierarchy View
16. Generate Getters and Setters
17. Module Automatic Instantiation
17.1. Autoinstance Using Autocomplete
17.2. Autoinstance Using Drag and Drop
18. Semantic Search
19. Show Usages, Readers or Writers
20. Favorite Searches
21. Show Constraints
22. Show Instances
22.1. Show Instances in the Search View
22.2. Show Instances in the Design Hierarchy View
23. Quick Search in Views
23.1. CamelCase
23.2. Simple Regex
23.3. Hierarchical Search
23.4. Search for Members
23.5. Search Port in Design Hierarchy
23.6. Search Port in Verification Hierarchy
23.7. Search all UVM Phase Overrides
23.8. Search Global API
24. Trace Connections
24.1. Trace Connections from Design Hierarchy
24.2. Trace Connections from Editor
24.3. Trace Connections View
24.4. Trace Path
25. Breadcrumb Navigation Bar
25.1. Design Breadcrumb
25.2. Verification Breadcrumb
25.3. Scope Breadcrumb
25.4. Filesystem Breadcrumb
26. Code Factory
27. Refactoring
27.1. Rename Refactoring
27.2. Rename Port Across the Design Hierarchy
27.3. Rename File
27.4. Bind Method Call Arguments by Name
27.5. Bind Method Call Arguments by Position
27.6. Connect Instance Ports by Name
27.7. Connect Instance Ports by Position
27.8. Expand .* Port Connections
27.9. Extract to Variable
27.10. Extract to Method
27.11. Extract to Module
27.12. Move Selection to New File
27.13. Join Extern and Implementation
27.14. Split to Extern and Implementation
27.15. Change Method Signature
27.16. Connect Instances Across the Design Hierarchy
27.16.1. Connect Instances Using New Ports
27.16.2. Connect Instances Using Existing Ports
27.16.3. Structural Changes Preview Diagram
27.16.4. Refactoring Connect View
27.17. Add Port to Module from Selected Field
27.18. Add New Port to Module
27.19. Add New Parameter to Module
27.20. Refactoring Scripts
27.20.1. Writing a Refactoring Script
27.20.2. Applying a Refactoring Script
28. Diagrams
28.1. UML Diagrams
28.1.1. UML Diagrams - Select Types
28.1.2. UML Diagrams - Preferences
28.1.3. UML Diagrams - Legend
28.2. Architecture UML Diagrams
28.3. Sequences UML Diagrams
28.4. Design Diagrams
28.4.1. Schematic Diagrams
28.4.2. Flow Diagrams
28.4.3. Block Diagrams
28.4.4. Finite-State Machine Diagrams
28.4.5. Diagram Filters
28.4.6. Design Diagram Actions
28.4.7. Breadcrumb Navigation Bar
28.4.8. Low Power Format Support
28.5. UVM Components Diagrams
28.5.1. Component Diagrams from Verification Hierarchy
28.5.2. Component Diagrams from Simulation
28.5.3. Diagram Filters
28.6. Diagram Actions
28.7. Diagram Toolbar
28.8. Diagram Magnifier
28.9. WaveDrom Timing Diagrams
28.10. Bit Field Diagrams
28.10.1. Bit Field Diagrams for UVM registers
28.10.2. Bit Field Diagrams for packed data types
29. Low Power Format Support
29.1. Supply Network Diagram
30. Export HTML/PDF Documentation
30.1. Preview HTML Documentation
31. External Tools Integration
31.1. Run Configurations
31.1.1. Run Configuration Session Type
31.1.2. Custom Shortcut and Button for a Run Configuration
31.1.3. Using environment variables in DVT Generic Run Configurations
31.1.4. Using an alias in a DVT Generic Run Configuration
31.1.5. DVT Generic Run Configuration Variables
31.2. Smart Log
31.2.1. Smart Log - Filters
31.2.2. Smart Log - Hyperlinks
31.2.3. Smart Log - Styles
31.3. External Builders
31.3.1. How to define a new external builder
31.3.2. How to invoke external builders
31.3.3. External Builder Output
31.3.4. Source Code Markers - errors warnings
31.4. External Documentation
31.4.1. Configure External Documentation
31.4.2. Browse External Documentation
31.4.3. Search External Documentation
32. Debugger Integration
32.1. Simulation Prerequisites
32.2. Launch a Debug Simulation
32.3. Connect to an Existing Simulation
32.4. Breakpoints
32.5. Threads, Call Stack, Stepping
32.6. Variables
32.7. Watch Expressions
32.8. Debug Specific Configurations
33. Custom Dialogs
33.1. Quick Steps
33.2. Customizing the Dialog Output
33.3. SWT/XML Reference
33.3.1. Layouts
33.3.2. Widgets
33.4. Custom Dialog Snapshots
33.4.1. Custom Dialog Snapshots File Syntax (XML)
34. Command Line Interface
34.1. dvt_cli.sh
34.2. Syntax
34.3. Examples
34.4. Makefile Example
34.5. Commands
34.5.1. Create a Project (Mixed-Language Capable)
34.5.2. Create a Project From an Existing Template
34.5.3. Import an Existing Project
34.5.4. List Compiled Files
34.5.5. Compare Files
34.5.6. Launch a Run Configuration
34.5.7. Open a File
34.5.8. Close a File
34.5.9. Open a Custom Dialog
34.5.10. Open a Perspective
34.5.11. Refresh a Project
34.5.12. Rebuild a Project
34.5.13. Print Edited File
34.5.14. Quit
34.5.15. Query the running status
34.5.16. Print version
34.5.17. Run Performance Exploration
35. Macros Support
35.1. Inactive Code Highlight
35.1.1. Overview
35.1.2. Settings
35.2. Macro Expansion
35.2.1. Overview
35.2.2. Triggering
35.2.3. Tips
35.2.4. IMPORTANT NOTE
35.3. Macros and Quick Macros Views
36. Reminders (TODO Markers)
37. OVM Support
37.1. OVM Compliance Review
37.2. OVM Field Editor
37.2.1. Triggering
37.2.2. Interface
37.2.3. Problems
37.2.4. Tips
37.3. OVM Smart Log
37.4. Quick OVM Documentation Access
37.5. OVM Templates
38. UVM Support
38.1. Runtime UVM Configuration Queries
38.2. Static UVM Configuration Queries
38.3. UVM Browser
38.4. UVM Compliance Review
38.5. UVM Content Filters
38.6. UVM Field Editor
38.6.1. Triggering
38.6.2. Interface
38.6.3. Problems
38.6.4. Tips
38.7. UVM Runtime Elaboration
38.8. UVM Sequence Tree
38.9. UVM Smart Log
38.10. UVM Templates
38.11. UVM Verification Hierarchy
38.12. OVM to UVM Migration
38.12.1. Triggering
38.12.2. Preferences
38.12.3. Review changes
39. VMM Support
39.1. VMM Smart Log
39.2. Quick VMM Documentation Access
39.3. VMM Templates
40. Settings Management
40.1. Managed Settings
40.2. Unmanaged Settings
40.3. User and Common Settings Location
40.4. Use Cases
40.4.1. Memory Allocation Thresholds
40.4.2. Workspace Preferences
40.4.3. Run Configurations
40.4.4. Compile Waivers
40.4.5. Content Filters
40.4.6. External Builders
40.4.7. Export HTML Documentation
40.4.8. Custom Pragmas
40.5. Examples
40.6. Deprecated Settings Management (before DVT 3.5)
40.6.1. Workspace Settings
40.6.2. Project Settings
40.6.3. Other Settings
40.6.4. Importing Preferences From a Different Workspace
40.6.5. Customizing Default Settings Using dvt.ini
41. Reference
41.1. Comments Formatting
41.1.1. Javadoc
41.1.2. Natural Docs
41.2. Common Shortcuts
41.3. Custom Pragmas
41.4. DVT Resource Monitor
41.5. Editor Notification
41.6. Editor Right Click Menu
41.6.1. Folding
41.6.2. Macros
41.6.3. Source
41.6.4. Code Factory
41.6.5. Show
41.6.6. References
41.6.7. Trace
41.6.8. Refactor
41.7. Hyperlinks
41.7.1. Hyperlinks in Comments
41.8. Icons and Decorations
41.8.1. Icons
41.8.2. Decorations
41.8.3. Changing Icon Colors
41.8.4. Project Colors
41.9. Inactive Generates Code Highlight
41.10. Lazy Bring up Resources
41.11. Memory Monitor
41.12. Scripts
41.12.1. dvt.sh
41.12.2. dvt_cli.sh
41.12.3. dvt_from_rawtokens.sh
41.12.4. dvt_kit_installer.sh
41.12.5. dvt_plugin_installer.sh
41.12.6. dvt_build.sh
41.13. Syntax Coloring
41.14. Themes
41.15. Toolbar Actions
41.16. Tooltips
41.17. Views
41.17.1. Call Hierarchy View
41.17.2. Checks View
41.17.3. Code Templates View
41.17.4. Compile Order View
41.17.5. Config DB View
41.17.6. Console View
41.17.7. Coverage View
41.17.8. Design Hierarchy View
41.17.9. Factory Overrides View
41.17.10. Inspect View
41.17.11. Layers View
41.17.12. Macros View
41.17.13. Outline View
41.17.14. Power Domain View
41.17.15. Problems View
41.17.16. Quick Query View
41.17.17. Registers View
41.17.18. Tasks View
41.17.19. Trace Connections View
41.17.20. Types View
41.17.21. Type Hierarchy View
41.17.22. UVM Browser View
41.17.23. UVM Sequence Tree View
41.17.24. Verification Hierarchy View
42. Application Notes
42.1. C/C++ support
42.2. Design Elaboration
42.2.1. Top candidates
42.2.2. Parameter values
42.2.3. Unelaborated Design
42.2.4. Debugging
42.2.5. Performance
42.3. Compilation Speed-up
42.4. Precompilation Support
42.5. Encrypted VIP Support
42.6. FPGA Support
42.6.1. Intel(Altera) Quartus
42.6.2. Xilinx ISE/Vivado
42.7. Generating External Tool Scripts from the DVT Build Configuration
42.8. Incremental Compilation
42.9. Preprocessed Files Support
42.9.1. Using the PVerilog editor (Deprecated)
42.10. Output and logging
42.11. Understanding DVT IDE memory usage
42.12. UVM Library Compilation Troubleshooting
42.13. Visual Artifacts
43. Tips and Tricks
44. Q & A
44.1. I am new to Eclipse, where should I start from?
44.2. Where can I find DVT Help?
44.3. How do I see and configure the key shortcuts?
44.4. Are there any backup files in Eclipse?
44.5. Workspace in use, cannot launch eclipse...
44.6. Locking is not possible in the directory...
44.7. How to start DVT Eclipse with a different eclipse.ini
44.8. Save could not be completed
44.9. IBM Clearcase Plugin
44.10. Non existing package mti_fli
44.11. How to use Working Sets for filtering Problems/Task/Search views?
44.12. How to handle Simulator and Command Line Macros
44.13. How do I Access Files Outside Project Dir - Working with Linked Resources
44.14. Mapping Linux to Windows (/proj/ to Z:\proj\)
44.15. Subversive vs Subclipse
44.16. How do I associate a project with both DVT and CDT?
44.17. Can I use vi/vim along with DVT?
44.18. Can I perform dos2unix or unix2dos from DVT?
44.19. How can I configure Eclipse to use a local CVS repository?
44.20. I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do?
44.21. How do I change the background color of the Editor?
44.22. Some widget colors are not displayed properly. What can I do?
44.23. How do I change the tooltip colors?
44.24. How do I change Internet Proxy Settings?
44.25. Eclipse does not start, there is no Workspace, metadata or log file created
44.26. Workspace permissions
44.27. How do I link mylyn with Bugzilla?
44.28. How do I print source code?
44.29. How do I disable Eclipse Software Sites?
44.30. How do I revert to a previous version?
44.31. What are the most common shortcuts in DVT?
44.32. How does DVT integrate with emacs?
44.33. How does DVT integrate with CVS?
44.34. How to set an environment variable within a Run Configuration?
44.35. How to run a remote Unix commnad from DVT Eclipse for Windows?
44.36. Rebuild shortcut (Ctrl + Alt + R) does not work
44.37. I want to use an alias in a DVT Generic Run Configuration, but it's not recognized
44.38. How to set multiple paths as sources of predefined projects ?
44.39. Lines are suddenly changing indentation when I edit text or move the cursor through the editor.
44.40. How to change the directory where the build log file is saved ?
44.41. How to find the DVT logs on Linux/Unix ?
44.42. How to create resource filters ?
44.43. How to create custom shortcut and button for a Run Configuration?
44.44. I know that file.foo is present in the project location, but I can't see it in the Navigator View
44.45. How to copy the full path to the file in the current editor?
44.46. How to adjust the console logs filters matching parameters?
44.47. When I switch to Block (Column) Selection mode the font changes
44.48. In Block (Column) Selection mode I see strange editng artifacts
44.49. How to modify the font size in the code editors?
44.50. How to automatically checkout/lock files from the revision control system ?
44.51. How can I see if a file is read-only?
44.52. How can I open a file in DVT from the terminal?
44.53. How can I open a file in DVT from Questa?
44.54. How do I change the name of the xterm opened by a DVT Generic Run Configuration?
44.55. I get errors while installing or updating a plugin from an update site
45. What is New?
46. How to Report an Issue?
47. Legal Notices
48. Third Party Licenses