DVT SystemVerilog IDE User Guide
Rev. 23.1.22, 22 September 2023
| DVT SystemVerilog IDE User GuideTable 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
- 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. Connect Instances Across the Design Hierarchy
- 26.15.1. Connect Instances Using New Ports
- 26.15.2. Connect Instances Using Existing Ports
- 26.15.3. Structural Changes Preview Diagram
- 26.15.4. Refactoring Connect View
- 26.16. Add Port to Module from Selected Field
- 26.17. Add New Port to Module
- 26.18. Add New Parameter to Module
- 26.19. Refactoring Scripts
- 26.19.1. Writing a Refactoring Script
- 26.19.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 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
- 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. Encrypted VIP Support
- 41.5. FPGA Support
- 41.5.1. Intel(Altera) Quartus
- 41.5.2. Xilinx ISE/Vivado
- 41.6. Generating External Tool Scripts from the DVT Build Configuration
- 41.7. Incremental Compilation
- 41.8. Preprocessed Files Support
- 41.9. Output and logging
- 41.10. UVM Library Compilation Troubleshooting
- 41.11. 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. DVT is crashing with "Problematic frame ld-linux-x86-64.so.2 _dl_rtld_di_serinfo
- 43.12. libxul.so undefined symbol
- 43.13. How to use Working Sets for filtering Problems/Task/Search views?
- 43.14. How to handle Simulator and Command Line Macros
- 43.15. How do I Access Files Outside Project Dir - Working with Linked Resources
- 43.16. Mapping Linux to Windows (/proj/ to Z:\proj\)
- 43.17. Subversive vs Subclipse
- 43.18. How do I associate a project with both DVT and CDT?
- 43.19. Can I use vi/vim along with DVT?
- 43.20. Can I perform dos2unix or unix2dos from DVT?
- 43.21. How can I configure Eclipse to use a local CVS repository?
- 43.22. I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do?
- 43.23. How do I change the background color of the Editor?
- 43.24. Some widget colors are not displayed properly. What can I do?
- 43.25. How do I change the tooltip colors?
- 43.26. How do I change Internet Proxy Settings?
- 43.27. Eclipse does not start, there is no Workspace, metadata or log file created
- 43.28. Workspace permissions
- 43.29. How do I link mylyn with Bugzilla?
- 43.30. How do I print source code?
- 43.31. How do I disable Eclipse Software Sites?
- 43.32. How do I revert to a previous version?
- 43.33. What are the most common shortcuts in DVT?
- 43.34. How does DVT integrate with emacs?
- 43.35. How does DVT integrate with CVS?
- 43.36. How to set an environment variable within a Run Configuration?
- 43.37. How to run a remote Unix commnad from DVT Eclipse for Windows?
- 43.38. Rebuild shortcut (Ctrl + Alt + R) does not work
- 43.39. I want to use an alias in a DVT Generic Run Configuration, but it's not recognized
- 43.40. How to set multiple paths as sources of predefined projects ?
- 43.41. Lines are suddenly changing indentation when I edit text or move the cursor through the editor.
- 43.42. How to change the directory where the build log file is saved ?
- 43.43. How to find the DVT logs on Linux/Unix ?
- 43.44. How to create resource filters ?
- 43.45. How to create custom shortcut and button for a Run Configuration?
- 43.46. I know that file.foo is present in the project location, but I can't see it in the Navigator View
- 43.47. How to copy the full path to the file in the current editor?
- 43.48. How to adjust the console logs filters matching parameters?
- 43.49. When I switch to Block (Column) Selection mode the font changes
- 43.50. In Block (Column) Selection mode I see strange editng artifacts
- 43.51. How to modify the font size in the code editors?
- 43.52. How to automatically checkout/lock files from the revision control system ?
- 43.53. How can I see if a file is read-only?
- 43.54. How can I open a file in DVT from the terminal?
- 43.55. How can I open a file in DVT from Questa?
- 43.56. How do I change the name of the xterm opened by a DVT Generic Run Configuration?
- 43.57. 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
|