DVT SystemVerilog IDE User Guide
Rev. 24.2.25, 31 October 2024
| 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 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
|