DVT SystemVerilog IDE User Guide
Transcription
DVT SystemVerilog IDE User Guide
DVT SystemVerilog IDE User Guide Rev. 3.5.32 18 December 2014 Technical Support: [email protected] Copyright (C) 2005-2014 AMIQ EDA s.r.l. (AMIQ). All rights reserved. License: This product is licensed under the AMIQ's End User License Agreement (EULA). Trademarks: The trademarks, logos and service marks contained in this document are the property of AMIQ or other third parties. DVT™, eDT™, VlogDT™, VhdlDT™ Verissimo™ are trademarks of AMIQ. Eclipse™ and Eclipse Ready™ are trademarks of Eclipse Foundation, Inc. All other trademarks are the property of their respective holders. Restricted Permission: This publication is protected by copyright law. AMIQ grants permission to print hard copy of this publication subject to the following conditions: 1.The publication may not be modified in any way. 2. Any authorized copy of the publication or portion thereof must include all original copyright, trademark, and other proprietary notices and this permission statement. Disclaimer: This publication is for information and instruction purposes. AMIQ reserves the right to make changes in specifications and other information contained in this publication without prior notice. The information in this publication is provided as is and does not represent a commitment on the part of AMIQ. AMIQ does not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy, or usefulness of the information contained in this document. The terms and conditions governing the sale and licensing of AMIQ products are set forth in written agreements between AMIQ and its customers. No representation or other affirmation or fact contained in this publication shall be deemed to be a warranty or give rise to any liability of AMIQ whatsoever. DVT SystemVerilog IDE www.dvteclipse.com Table of Contents 1. Installation Checklist .......................................................................................................... 1 2. Predefined Projects ............................................................................................................. 5 3. Getting Started .................................................................................................................... 9 3.1. What is a Workspace ............................................................................................... 9 3.2. What is a Project ..................................................................................................... 9 3.3. Project Natures ....................................................................................................... 10 3.4. Workspace and Workbench ................................................................................... 11 3.5. Refresh ................................................................................................................... 12 3.6. Linked Resources ................................................................................................... 13 3.7. Backup and Local History ..................................................................................... 14 3.8. Basic Tutorial ......................................................................................................... 15 3.8.1. Switch to the DVT Perspective .................................................................. 15 3.8.2. Open a Project ............................................................................................ 17 3.8.3. Configure the Build .................................................................................... 18 3.8.4. Build the Project ......................................................................................... 19 3.8.5. Inspect the Compilation Errors ................................................................... 19 3.8.6. See Comments in Tooltips .......................................................................... 21 3.8.7. Use Hyperlinks to Move Around in the Code ............................................ 23 3.8.8. Quickly Open a Type (Class, Module, Interface) ....................................... 24 3.8.9. Quickly Inspect the Class Hierarchy .......................................................... 24 3.8.10. Quickly Open a File ................................................................................. 25 3.8.11. Quickly Move Inside the Editor ............................................................... 27 3.8.12. Inspect the Class Hierarchy and Class Members ...................................... 28 3.8.13. Inspect the Design Hierarchy .................................................................... 29 3.8.14. Inspect the Verification Hierarchy ............................................................ 30 3.8.15. Browse Through All the Available Types (Classes, Modules, Interfaces) .............................................................................................................. 31 3.8.16. Look for the Implementation of an Extern Function or Task .................... 32 3.8.17. Search for Entities .................................................................................... 33 3.8.18. Use Content Assist (Autocomplete) .......................................................... 34 3.8.19. Use Code Templates ................................................................................. 35 3.8.20. Use Module Auto Instance ....................................................................... 37 3.8.21. Expand Macros (Apply Preprocessing) .................................................... 38 3.8.22. Trace Macro Errors ................................................................................... 39 3.8.23. Track Tasks using TODO Markers ........................................................... 40 3.8.24. Quickly See the Current Scope in the Status Bar ..................................... 40 3.8.25. Fold Code Regions in Order to Improve Readability ............................... 41 3.8.26. Access the Context Sensitive Help ........................................................... 41 4. Build Configurations ......................................................................................................... 43 4.1. default.build ........................................................................................................... 43 4.2. Emulating compiler invocations ............................................................................ 44 4.3. Multiple .build Files ............................................................................................... 44 4.4. Compatibility Modes ............................................................................................. 46 4.4.1. Default DVT Compatibility Mode .............................................................. 47 4.4.2. vcs.vlogan Compatibility Mode .................................................................. 49 4.4.3. vcs.vhdlan Compatibility Mode .................................................................. 50 © AMIQ i Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com 4.4.4. ius.irun Compatibility Mode ....................................................................... 50 4.5. Paths ....................................................................................................................... 54 4.6. Strings .................................................................................................................... 54 4.7. Comments .............................................................................................................. 55 4.8. Environment Variables .......................................................................................... 55 4.9. Including Other Argument Files ............................................................................ 56 4.10. Build Persistence .................................................................................................. 56 4.11. DVT Auto-Linked ................................................................................................ 58 4.12. Run a Script Before Build ................................................................................... 59 4.13. All Build Directives ............................................................................................. 60 4.14. e Language Test Files .......................................................................................... 69 4.15. e Language SPECMAN_PATH ........................................................................... 69 4.16. SystemVerilog OVM or UVM Library Compilation ........................................... 70 5. Compile Checks ................................................................................................................ 72 5.1. Compile Waivers ................................................................................................... 72 5.2. Semantic Checks .................................................................................................... 74 5.3. Non Standard Checks ............................................................................................ 77 6. Content Assist (Autocomplete) ......................................................................................... 84 6.1. Content assist for CamelCase and Underscore ...................................................... 85 6.2. Code Templates ..................................................................................................... 85 6.3. Module Automatic Instantiation ............................................................................ 86 6.4. Override Functions Using Autocomplete .............................................................. 87 7. Content Filters .................................................................................................................. 88 7.1. Content Filters XML syntax .................................................................................. 88 7.2. Content Filters Examples ....................................................................................... 91 7.3. Predefined Content Filters ..................................................................................... 92 8. Code Templates .............................................................................................................. 101 8.1. Code Templates in Autocomplete ....................................................................... 101 8.2. Global Code Templates ....................................................................................... 102 8.3. Project Level Code Templates ............................................................................. 102 8.4. Code Templates View .......................................................................................... 103 9. File Templates ................................................................................................................ 106 10. Project Templates ......................................................................................................... 107 10.1. What is a project template? ............................................................................... 107 10.2. How to generate code from a project template .................................................. 108 10.2.1. Step 1. Specify Directories ..................................................................... 108 10.2.2. Step 2. Specify Parameters ..................................................................... 109 10.3. template.config ................................................................................................... 110 10.4. Add from Template ........................................................................................... 110 11. Code Formatting ........................................................................................................... 113 11.1. Whitespace ......................................................................................................... 113 11.2. Indentation .......................................................................................................... 113 11.3. Vertical Alignment ............................................................................................. 114 11.4. Line Wrapping ................................................................................................... 115 11.5. External .............................................................................................................. 116 12. Override Functions ....................................................................................................... 117 12.1. Override Annotation .......................................................................................... 117 12.2. Inspect Overrides in the Quick Type Hierarchy View ....................................... 117 © AMIQ ii Rev. 3.5.32 DVT SystemVerilog IDE 13. 14. 15. 16. 17. 18. 19. 20. 21. www.dvteclipse.com 12.3. Inspect Overrides in the Layers View ............................................................... 12.4. Override Using the Dialog ................................................................................. 12.5. Override Using Autocomplete ........................................................................... 12.6. Override Using the Type Hierarchy View ......................................................... Generate Getters and Setters ........................................................................................ Module Automatic Instantiation ................................................................................... 14.1. Autoinstance Using Autocomplete .................................................................... 14.2. Autoinstance Using Drag and Drop ................................................................... Semantic Search ............................................................................................................ Search for References (Usages) .................................................................................... Quick Search in Views ................................................................................................. 17.1. CamelCase .......................................................................................................... 17.2. Simple Regex ..................................................................................................... 17.3. Hierarchical Search ............................................................................................ 17.4. Search for Members ........................................................................................... 17.5. Search Port in Design Hierarchy ....................................................................... 17.6. Search Port in Verification Hierarchy ............................................................... 17.7. Search all UVM Phase Overrides ...................................................................... 17.8. Search Global API ............................................................................................. Trace Port Connections ................................................................................................ 18.1. Trace Connections from Design Hierarchy ....................................................... 18.2. Trace Connections from Editor ......................................................................... 18.3. Trace Connections View .................................................................................... 18.4. Trace Path .......................................................................................................... Code Factory ................................................................................................................. Refactoring .................................................................................................................... 20.1. Rename Refactoring ........................................................................................... 20.2. Refactoring Scripts ............................................................................................. 20.2.1. Writing a Refactoring Script ................................................................... 20.2.2. Applying a Refactoring Script ................................................................ 20.3. Connect Instances Across the Design Hierarchy ............................................... 20.3.1. Connect Instances Using New Ports ....................................................... 20.3.2. Connect Instances Using Existing Ports ................................................. 20.3.3. Preview Structural Changes in the Design Hierarchy ............................. 20.3.4. Connect Instances Toolbar ...................................................................... 20.4. Add Port to Module from Selected Field .......................................................... 20.5. Add New Port to Module .................................................................................. Diagrams ....................................................................................................................... 21.1. Class Diagrams .................................................................................................. 21.1.1. Class Diagrams - Select Classes ............................................................. 21.1.2. Class Diagrams - Preferences ................................................................. 21.1.3. Class Diagrams - Legend ........................................................................ 21.2. Architecture UML Diagrams ............................................................................. 21.3. Sequences UML Diagrams ................................................................................ 21.4. Module Diagrams ............................................................................................... 21.4.1. Module Diagrams - Select Modules ....................................................... 21.4.2. Module Diagrams - Preferences .............................................................. 21.4.3. Module Diagrams - Breadcrumb Navigation .......................................... © AMIQ iii 118 119 120 120 122 124 124 124 125 127 128 128 129 129 131 133 134 135 136 138 138 138 140 143 146 147 147 148 148 150 152 152 155 157 160 161 161 163 163 164 166 167 168 169 169 173 175 183 Rev. 3.5.32 DVT SystemVerilog IDE 22. 23. 24. 25. www.dvteclipse.com 21.5. Diagram Toolbar ................................................................................................ 21.6. Diagram Preferences .......................................................................................... Export HTML Documentation ...................................................................................... 22.1. Export HTML Documentation Wizard .............................................................. 22.2. Comments Formatting ........................................................................................ 22.2.1. JavaDoc ................................................................................................... 22.2.2. NaturalDocs ............................................................................................. 22.3. Customizing Documentation .............................................................................. External Tools Integration ............................................................................................ 23.1. Run Configurations ............................................................................................ 23.1.1. Run Configuration Session Type ............................................................ 23.1.2. Custom Shortcut and Button for a Run Configuration ............................ 23.1.3. Using environment variables in DVT Generic Run Configurations ........ 23.1.4. Using an alias in a DVT Generic Run Configuration ............................. 23.1.5. DVT Generic Run Configuration Variables ........................................... 23.2. Smart Log .......................................................................................................... 23.2.1. Smart Log - Filters ................................................................................. 23.2.2. Smart Log - Hyperlinks .......................................................................... 23.2.3. Smart Log - Styles .................................................................................. 23.3. External Builders ............................................................................................... 23.3.1. How to define a new external builder ..................................................... 23.3.2. How to invoke external builders ............................................................. 23.3.3. External Builder Output .......................................................................... 23.3.4. Source Code Markers - errors warnings ................................................. 23.4. External Documentation .................................................................................... 23.4.1. Configure External Documentation ........................................................ 23.4.2. Browse External Documentation ............................................................ 23.4.3. Search External Documentation .............................................................. Custom Dialogs ............................................................................................................. 24.1. Quick Steps ........................................................................................................ 24.2. Customizing the Dialog Output ......................................................................... 24.3. SWT/XML Reference ........................................................................................ 24.3.1. Layouts .................................................................................................... 24.3.2. Widgets ................................................................................................... Command Line Interface .............................................................................................. 25.1. dvt_cli.sh ............................................................................................................ 25.2. Syntax ................................................................................................................. 25.3. Notes .................................................................................................................. 25.4. Examples ............................................................................................................ 25.5. Makefile Example .............................................................................................. 25.6. Commands .......................................................................................................... 25.6.1. Create a Project (Mixed-Language Capable) .......................................... 25.6.2. Create a Project From an Existing Template .......................................... 25.6.3. Import an Existing Project ...................................................................... 25.6.4. List Compiled Files ................................................................................. 25.6.5. Launch a Run Configuration .................................................................. 25.6.6. Open a File ............................................................................................. 25.6.7. Open a Custom Dialog ........................................................................... © AMIQ iv 183 183 185 185 190 191 195 196 198 198 201 203 204 205 205 207 207 210 213 214 214 217 217 218 219 220 220 221 222 224 224 227 228 229 235 235 235 236 236 237 237 237 239 239 239 240 240 240 Rev. 3.5.32 DVT SystemVerilog IDE 26. 27. 28. 29. www.dvteclipse.com 25.6.8. Refresh a project ..................................................................................... 25.6.9. Quit .......................................................................................................... 25.6.10. Query the running status ....................................................................... 25.6.11. Print version .......................................................................................... Macros Support ............................................................................................................. 26.1. Inactive Code Highlight ..................................................................................... 26.1.1. Overview ................................................................................................. 26.1.2. Settings .................................................................................................... 26.2. Macro Expansion ............................................................................................... 26.2.1. Overview ................................................................................................. 26.2.2. Triggering ................................................................................................ 26.2.3. Tips .......................................................................................................... 26.2.4. IMPORTANT NOTE .............................................................................. 26.3. Macros and Quick Macros Views ..................................................................... Reminders (TODO Markers) ........................................................................................ OVM Support ............................................................................................................... 28.1. OVM Compliance Review ................................................................................. 28.1.1. Architecture Tab ..................................................................................... 28.1.2. Checks Tab ............................................................................................. 28.1.3. Statistics Tab ........................................................................................... 28.1.4. Waivers Tab ............................................................................................ 28.1.5. HTML Report ......................................................................................... 28.1.6. Problems View Integration ..................................................................... 28.2. OVM Field Editor .............................................................................................. 28.2.1. Triggering ................................................................................................ 28.2.2. Interface ................................................................................................... 28.2.3. Problems .................................................................................................. 28.2.4. Tips .......................................................................................................... 28.3. OVM Smart Log ................................................................................................ 28.4. Quick OVM Documentation Access ................................................................. 28.5. OVM Templates ................................................................................................. UVM Support ............................................................................................................... 29.1. UVM Browser .................................................................................................... 29.2. UVM Compliance Review ................................................................................. 29.2.1. Architecture Tab ..................................................................................... 29.2.2. Checks Tab ............................................................................................. 29.2.3. Statistics Tab ........................................................................................... 29.2.4. Waivers Tab ............................................................................................ 29.2.5. HTML Report ......................................................................................... 29.2.6. Problems View Integration ..................................................................... 29.3. UVM Content Filters ......................................................................................... 29.4. UVM Factory Queries ....................................................................................... 29.5. UVM Field Editor .............................................................................................. 29.5.1. Triggering ................................................................................................ 29.5.2. Interface ................................................................................................... 29.5.3. Problems .................................................................................................. 29.5.4. Tips .......................................................................................................... 29.6. UVM Smart Log ................................................................................................ © AMIQ v 240 241 241 241 242 242 242 242 243 243 243 244 245 245 246 247 247 248 248 249 250 252 256 256 256 256 258 259 259 260 260 262 262 265 266 266 267 268 269 273 273 273 276 276 276 278 279 279 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com 29.7. UVM Templates ................................................................................................. 280 29.8. UVM Verification Hierarchy ............................................................................. 280 29.9. OVM to UVM Migration .................................................................................. 281 29.9.1. Triggering ................................................................................................ 281 29.9.2. Preferences .............................................................................................. 281 29.9.3. Review changes ...................................................................................... 282 30. VMM Support ............................................................................................................... 284 30.1. VMM Smart Log ............................................................................................... 284 30.2. Quick VMM Documentation Access ................................................................. 285 30.3. VMM Templates ................................................................................................ 285 31. Settings Management .................................................................................................... 287 31.1. Managed Settings ............................................................................................... 287 31.2. Unmanaged Settings .......................................................................................... 291 31.3. User and Common Settings Location ................................................................ 291 31.4. Use Cases ........................................................................................................... 292 31.4.1. Memory Allocation Thresholds .............................................................. 292 31.4.2. Workspace Preferences ........................................................................... 293 31.4.3. Run Configurations ................................................................................. 293 31.4.4. Compile Waivers .................................................................................... 293 31.4.5. Content Filters ......................................................................................... 293 31.4.6. External Builders .................................................................................... 293 31.4.7. Export HTML Documentation ................................................................ 294 31.5. Examples ............................................................................................................ 294 31.6. Deprecated Settings Management (before DVT 3.5) ......................................... 295 31.6.1. Workspace Settings ................................................................................. 295 31.6.2. Project Settings ....................................................................................... 295 31.6.3. Other Settings .......................................................................................... 296 31.6.4. Importing Preferences From a Different Workspace .............................. 296 31.6.5. Customizing Default Settings Using dvt.ini ............................................ 297 32. Reference ...................................................................................................................... 300 32.1. Common Shortcuts ............................................................................................. 300 32.2. Editor Right Click Menu ................................................................................... 301 32.2.1. Folding .................................................................................................... 301 32.2.2. Macros ..................................................................................................... 301 32.2.3. Source ...................................................................................................... 301 32.2.4. Code Factory ........................................................................................... 301 32.2.5. Show ........................................................................................................ 302 32.2.6. References ............................................................................................... 302 32.2.7. Trace ........................................................................................................ 302 32.2.8. Refactor ................................................................................................... 302 32.3. Icons and Decorations ........................................................................................ 302 32.3.1. Icons ........................................................................................................ 302 32.3.2. Decorations ............................................................................................. 304 32.4. Scripts ................................................................................................................. 304 32.4.1. dvt.sh ....................................................................................................... 304 32.4.2. dvt_cli.sh ................................................................................................. 306 32.4.3. dvt_from_rawtokens.sh ........................................................................... 306 32.4.4. dvt_kit_installer.sh .................................................................................. 307 © AMIQ vi Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com 32.4.5. dvt_updater.sh ......................................................................................... 308 32.5. Toolbar Actions ................................................................................................. 310 32.6. Views ................................................................................................................. 310 32.6.1. Checks View ........................................................................................... 310 32.6.2. Code Templates View ............................................................................. 312 32.6.3. Compile Order View ............................................................................... 312 32.6.4. Console View .......................................................................................... 313 32.6.5. Coverage View ........................................................................................ 314 32.6.6. Design Hierarchy View .......................................................................... 315 32.6.7. Layers View ............................................................................................ 319 32.6.8. Macros View ........................................................................................... 321 32.6.9. Outline View ........................................................................................... 322 32.6.10. Problems View ...................................................................................... 326 32.6.11. Tasks View ........................................................................................... 327 32.6.12. Trace Connections View ....................................................................... 329 32.6.13. Types View ........................................................................................... 329 32.6.14. Type Hierarchy View ............................................................................ 331 32.6.15. UVM Browser View ............................................................................. 334 32.6.16. Verification Hierarchy View ................................................................. 334 33. Tips and Tricks ............................................................................................................. 338 34. Application Notes ......................................................................................................... 370 34.1. Encrypted VIP Support ...................................................................................... 370 35. Q & A ........................................................................................................................... 371 35.1. I am new to Eclipse, where should I start from? ............................................... 371 35.2. Where can I find DVT Help? ............................................................................ 371 35.3. How do I see and configure the key shortcuts? ................................................. 371 35.4. Are there any backup files in Eclipse? .............................................................. 372 35.5. Workspace in use, cannot launch eclipse... ....................................................... 372 35.6. Locking is not possible in the directory... ......................................................... 372 35.7. How to start DVT Eclipse with a different eclipse.ini ....................................... 372 35.8. Save could not be completed ............................................................................. 373 35.9. IBM Clearcase Plugin ........................................................................................ 373 35.10. Non existing package mti_fli ........................................................................... 373 35.11. libxul.so undefined symbol .............................................................................. 374 35.12. How to use Working Sets for filtering Problems/Task/Search views? ............. 374 35.13. How can I do an incremental textual search in any view? ............................... 377 35.14. Diagram error - image has not been created .................................................... 377 35.15. How to handle Simulator and Command Line Macros .................................... 378 35.16. How do I Access Files Outside Project Dir - Working with Linked Resources ..................................................................................................................... 379 35.17. Mapping Linux to Windows (/proj/ to Z:\proj\) .............................................. 380 35.18. Subversive vs Subclipse ................................................................................... 380 35.19. How do I associate a project with both DVT and CDT? ................................. 381 35.20. Can I use vi/vim along with DVT? ................................................................. 381 35.21. Can I perform dos2unix or unix2dos from DVT? ........................................... 382 35.22. How can I configure Eclipse to use a local CVS repository? .......................... 382 35.23. I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do? .............................................................................................. 383 © AMIQ vii Rev. 3.5.32 DVT SystemVerilog IDE 36. 37. 38. 39. www.dvteclipse.com 35.24. How do I change the background color of the Editor? .................................... 383 35.25. How do I change the color of the interface? ................................................... 383 35.26. How to apply the dark color theme or other themes? ...................................... 383 35.27. How do I change the tooltip colors? ................................................................ 384 35.28. How do I change Internet Proxy Settings? ...................................................... 384 35.29. Eclipse does not start, there is no Workspace, metadata or log file created ..... 385 35.30. Workspace permissions .................................................................................... 385 35.31. How to install our server as a service in Windows? ........................................ 386 35.32. How do I link mylyn with Bugzilla? ............................................................... 386 35.33. How do I print source code? ........................................................................... 387 35.34. How do I disable Eclipse Software Sites? ....................................................... 388 35.35. How do I revert to a previous version? ........................................................... 388 35.36. What are the most common shortcuts in DVT? ............................................... 389 35.37. How does DVT integrate with emacs? ............................................................ 389 35.38. How does DVT integrate with CVS? .............................................................. 389 35.39. How to set an environment variable within a Run Configuration? .................. 389 35.40. How to run a remote Unix commnad from DVT Eclipse for Windows? ......... 390 35.41. Rebuild shortcut (Ctrl + Alt + R) does not work ............................................. 390 35.42. Sometimes I experience DVT GUI hangs, what should I do? ......................... 391 35.43. Sometimes I experience DVT GUI hangs when switching from another X application to DVT ..................................................................................................... 391 35.44. I want to use an alias in a DVT Generic Run Configuration, but it's not recognized .................................................................................................................... 392 35.45. How to set multiple paths as sources of predefined projects ? ......................... 392 35.46. Lines are suddenly changing indentation when I edit text or move the cursor through the editor. ....................................................................................................... 392 35.47. How to change the directory where the build log file is saved ? ...................... 393 35.48. How to find the DVT logs on Linux/Unix ? .................................................... 393 35.49. How to create resource filters ? ....................................................................... 393 35.50. How to create custom shortcut and button for a Run Configuration? .............. 394 35.51. I know that file.foo is present in the project location, but I can't see it in the Navigator View ........................................................................................................... 394 35.52. How to copy the full path to the file in the current editor? .............................. 395 35.53. How to adjust the console logs filters matching parameters? .......................... 395 35.54. When I switch to Block (Column) Selection mode the font changes ............... 395 35.55. In Block (Column) Selection mode I see strange editng artifacts .................... 396 35.56. How to modify the font size in the code editors? ............................................ 396 35.57. How to automatically checkout/lock files from the revision control system ? ...................................................................................................................................... 398 35.58. How can I see if a file is read-only? ............................................................... 398 35.59. How can I open a file in DVT from the terminal? .......................................... 399 35.60. How do I change the name of the xterm opened by a DVT Generic Run Configuration? ............................................................................................................. 399 What is New? ............................................................................................................... 401 How to Report an Issue? .............................................................................................. 529 Legal Notices ................................................................................................................ 530 Third Party Licenses ..................................................................................................... 531 © AMIQ viii Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com List of Tables 21.1. ..................................................................................................................................... 179 21.2. ..................................................................................................................................... 179 © AMIQ ix Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 1. Installation Checklist Eclipse Version You must use Eclipse 3.6 or newer. To check the Eclipse version use menu Help > About Eclipse Platform. In the snapshot the Eclipse version is 3.6. Java Version You must use Java 1.6 or newer. To check the Java version use menu Help > About Eclipse Platform, then click on Configuration Details and select Configuration tab. In the snapshot the Java version is 1.6. © AMIQ 1 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 1. Installation Checklist www.dvteclipse.com DVT Plug-in To check the DVT plugin is installed use menu Help > About Eclipse Platform. You should see the DVT button. © AMIQ 2 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 1. Installation Checklist www.dvteclipse.com To see more details, for example the version, click the button. DVT License To check the DVT license go to menu Window > Preferences and inspect the DVT > License. The DVT license is pointed to by $DVT_LICENSE_FILE system variable or in case of a FlexLM license by' $DVTLMD_LICENSE_FILE' and $LM_LICENSE FILE system variables. © AMIQ 3 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 1. Installation Checklist www.dvteclipse.com DVT is activated lazily. In other words it doesn't look for a license until you try to use its functionality. Before checking the license status, it is recommended to open a predefined project. © AMIQ 4 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 2. Predefined Projects The predefined projects capability allows you to quickly access pre-configured project repositories. For example training labs or golden reference projects or projects that you commonly use. DVT looks for predefined projects in the directory indicated by the $DVT_PREDEFINED_PROJECTS system variable. In order to support directories spread on the disk, DVT also scans all directories indicated by any other system variable whose name starts with $DVT_PREDEFINED_PROJECTS_EXT_. For example, if you installed DVT from a distribution, by default $DVT_PREDEFINED_PROJECTS points to $DVT_HOME/predefined_projects. This is a project repository that you can use to explore the DVT features without the initial effort of configuring a project. At any time, if you wish to change the default you just need to point $DVT_PREDEFINED_PROJECTS to location. Or add another pre-configured projects repository by $DVT_PREDEFINED_PROJECTS_EXT_MY_NEW_REPOSITORY to it. location, another pointing For example if you installed DVT as a plug-in on top of an existing Eclipse installation, $DVT_PREDEFINED_PROJECTS is unset. But you can download the predefined projects separately, and point the system variable to the folder where you extracted the predefined projects. Opening a Predefined Project To open a predefined project use the Predefined Project Wizard by selecting File > New > DVT Predefined Project. You can also open the wizard from the DVT Project Wizard by clicking on the Predefined Projects link: © AMIQ 5 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 2. Predefined Projects www.dvteclipse.com Preferences In the wizard's main window you can select the predefined project and the target directory. A copy of the selected project will be placed in the target directory. Keep in mind that: 1. The target directory must not be a parent of or inside of the eclipse workspace path 2. The target directory must be writable 3. The selected project must not exist in the current workspace © AMIQ 6 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 2. Predefined Projects www.dvteclipse.com 1. Quick filter - by project name; 2. Available predefined projects; 3. A short description of the selected project; 4. If you want to change the default target directory (by default is the $HOME/ dvt_predefined_projects_target ); 5. Override target directory (if it already exists) © AMIQ 7 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 2. Predefined Projects www.dvteclipse.com 6. A message dialog will pop up, with info about all $DVT_PREDEFINED_PROJECTS & $DVT_PREDEFINED_PROJECTS_EXT_* environment variables (indicates the directories where DVT scans for predefined projects); See the picture below: If all the settings are correct, click Finish. © AMIQ 8 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 3. Getting Started 3.1 What is a Workspace When you start Eclipse you are asked to indicate a workspace directory. • The workspace is a directory on the disk where the Eclipse platform and all the installed plug-ins store preferences, configurations and temporary information. Subsequent Eclipse invocations will use this storage to restore the previous state. • As the name suggests, it is your "space of work". It defines your area of interest during an Eclipse session. • In a workspace you define projects that reference your disk resources. You don't have to move source files into the workspace. And projects don't import or copy source files into the workspace. Instead projects point to any folder or files on your disk. • We don't recommend keeping source code files in the workspace. Each time you start Eclipse you can create a new workspace directory or indicate an existing one. You can create many workspaces, each one dedicated to some activity. You may use one workspace for developing your current project and another for maintaining the previous one. If the two activities are unrelated, in doing so you minimize clutter and improve performance by using two workspaces. You can launch several Eclipse applications in parallel, but one workspace can be used only by one Eclipse instance that locks it (<workspace_dir>/.metadata/.lock). If you try to use an workspace already in use by an existing Eclipse instance, you'll be signaled "Workspace in use or cannot be created, choose a different one". You can switch at anytime to another workspace from menu File > Switch Workspace..., but launching different Eclipse for different workspaces is common practice. Workspace and Workbench Refresh 3.2 What is a Project In order to see the contents of a specific directory on the disk, you need to define a project using various wizards. Create a New Project Menu File > New > DVT Project © AMIQ 9 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com The first time when you create a project, the Eclipse platform creates a .project file in the directory you specified, right before it presents the directory contents. This is the only operation the platform performs. It will not move or copy any files to your workspace from the directory you specified. It will just create the .project file. Some plug-ins might create other information holders in the project directory. For example DVT creates a .dvt directory to store project level configurations specific to DVT. NOTE: There are ways to create projects directly from a revision control system, for example from a CVS repository. As expected, in this case files will be brought into your workspace. Import an Existing Project Menu File > Import... (> General > Existing Projects into Workspace) If a project was created for a directory on the disk (a .project file is already there), you cannot create another project in that directory. Instead you import an existing project into your workspace. Automatic Create or Import The DVT plug-in merges the create and import wizards. It automatically detects that a project already exists at the specified location and imports it. Otherwise it guides you through the project creation. Build Configurations 3.3 Project Natures In Eclipse a project can have zero to many project natures. Various plug-ins provide functionality for a project if it is tagged with a specific nature. For example DVT builds a project only if it has one of the natures it knows about, for example Verilog, VHDL or e Language. Project natures are stored in the project definition, that is in the .project file. To turn on/off a specific nature for a project, select the project in Navigator and choose Change DVT Nature from the right click menu. © AMIQ 10 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.4 Workspace and Workbench Work Workspace and workbench are different terms for different concepts, however they sound quite similar to be mistakenly interchanged. The "work" prefix has a tendency to make us lose the interest, so I guess we don't get to hear clearly the "space" or "bench" that follow, hence both workspace and workbench collapse under the annoying "something about work". Workspace One of the first things you specify when you start Eclipse is the workspace location. The workspace is a directory that holds information about the projects you work on, as well as the Eclipse preferences (from layout to behavior). We can say that the workspace "holds" the Integrated Development Environment: the data you work on (organized in projects) and how you work with it (preferences). It is your "space of work" or "working space" or "working universe". Depending on your style, you can do all your work in a single workspace, no matter how different projects in your life, for example a Web project to publish your photos, a Verification © AMIQ 11 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com project and a Java project where you learn how to program. Or you can chose to have several workspaces, each one dedicated to a specific state of mind or universe of thinking. Workbench The workbench is practically the Eclipse main window. It is the bench where you organize your instruments, except that now you don't have power supplies, signal generators or oscilloscopes, but different views and editors. Views and editors are your instruments to manipulate sources and data. You arrange them at hand for a specific task (exploring, debugging, coding etc.). What instruments you use and how you lay them out on your bench ( workbench) is known as a perspective: with what and from what angles you look at your data. Eclipse allows you quickly to reorganize your workbench, by choosing a different perspective. Don't have to spend time moving the signal generator away, just switch to another perspective. Workspace Again The projects (your data) are not necessarily physically located in the workspace directory. They can be simple pointers to other locations on the disk. However the workspace aggregates all your "relevant" projects for a specific development universe. When you create a new empty project in the workspace, it is located in the actual workspace directory. When you create a project from existing source, the workspace keeps a pointer to the project folder. When you import a project in your workspace, again the workspace keeps a pointer to the project folder. (Importing is an interesting concept, documented separately). You can switch at any time from one workspace to another (menu File > Switch workspace...). You can start several Eclipse instances looking at various workspaces (chose when prompted at start or in batch mode "eclipse -d <workspace location>"). However, you cannot have two Eclipse instances looking at the same workspace at once. Eclipse locks the workspace, as indicated by the .metadata/.lock file in the workspace directory. What is a Workspace 3.5 Refresh Once you start Eclipse, the workspace is usually read from the disk (not necessarily, caches are also kept from the previous invocation). From this point on, usually, what ever changes you do outside of Eclipse on resources in the workspace are not reflected immediately. You need to request for a refresh (right click on a project and chose Refresh from the drop down menu). "Usually" above because it can be customized. To customize the way refresh behaves and eventually switch it to fully detect each change whenever it occurs, use menu Window > Preferences > General > Workspace. From here you can customize if refresh is done on startup, how often etc. Refresh is a basic and primitive support of concurrency and also has to do with performance. Maybe I don't want to be notified of every change on resources in my projects if somebody © AMIQ 12 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com is also processing part of the data outside Eclipse. It may take a while, even not be relevant and stop me from working until the external processing is complete. For example compilation. Hence maybe I want to trigger it when I know for sure I am interested in some external changes. This does not imply that conflicts (for example editing a file that changed on the disk) are not promptly signaled by Eclipse. It happens often that you don't find some files in your workspace (of course inside a project) although from explorer or console it seems they are there. Maybe you forgot to refresh? What is a Workspace Workspace and Workbench What is a Project 3.6 Linked Resources Linked resources are very similar with file system links, except they are registered in the .project file, not created on the disk. To create a linked resource, right click on the project in the Navigator and select from the popup menu New > Linked Resource. In the wizard you must specify the path the link will point to (for example /apps) and the linked directory name (for example apps): 1. Target: the file system path the link will point to; 2. Name: the linked directory's name; 3. Location: location (inside the selected project) where the link directory will be created. Tip: You can also use system variables in the path, for instance: ${DVT_ENV-SYSTEM_VARIABLE_NAME}/work equivalent to © AMIQ 13 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com $SYSTEM_VARIABLE_NAME/work in a terminal. This way you can share the project with your team and the linked folders will work seamlessly. Note: When you press Finish, if the directory the link points to is too big (for example it has more than 3000 children), a Resource Filter dialog will pop-up. You can use it to exclude those children that you don't need and that may slow down the platform (you can find out more about it here). Linked resources will appear in the Navigator with a small "link" icon: Tip: You can also use drag & drop from a filesystem navigator (like Nautilus in Gnome, Dolphin in KDE or Explorer in Windows): drag the external folder and drop it on the desired target location (Project or Folder) in the Navigator View. In the dialog that pops-up specify that you want to "Link to files and folders". A linked resource will be automatically created. What is a Workspace What is a Project 3.7 Backup and Local History The Eclipse platform provides a similar to autosaved backup files functionality (<name>.bak in win, <name>~ in emacs etc.). It is more elaborated, quite similar with revision control systems in capabilities (compare, multiple versions across time etc.) To quote from the platform manual: "A local edit history of a file is maintained when you create or modify a file. Each time you edit and save the file, a copy is saved so that you can replace the current file with a previous edit or even restore a deleted file. You can also compare the contents of all the local edits. Each edit in the local history is uniquely represented by the date and time the file was saved. Only files have local history; projects and folders do not." Some quick access hints: 1. Right click on a file > Compare With > Local History... and compare with various file snapshots taken over time © AMIQ 14 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 2. From menu Window > Preferences > General > Workspace > Local History you can configure how often snapshots are taken and for how long preserved. Right click in the editor and chose Compare With/Replace With > Local History.... 3.8 Basic Tutorial This tutorial provides a step by step walk-through of the SystemVerilog development environment. 3.8.1 Switch to the DVT Perspective The DVT Perspective provides a workbench layout with many useful views and shortcuts at hand for developing SystemVerilog code, for example the type browser, class hierarchy browser etc. From menu Window > Open Perspective > Other... choose DVT © AMIQ 15 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com You can customize and save a perspective. In order to further speed-up the development, at any time you can switch between various perspectives with different tool (views) layouts. For example you can use one perspective for writing code (the editor will take most of the real estate) and another perspective for code navigation (type browser will be a significant component). The default DVT perspective looks like this: © AMIQ 16 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.2 Open a Project A project corresponds to a specific directory on the disk. The project is presented in the Navigator View - a file browser component that helps you browse the project directory contents. For more details see What is a Project. Create a New Project Invoke the New Project Wizard: choose menu File > New > DVT Project. © AMIQ 17 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 1. Specify the Project Directory It can be a directory that already contains sources or a new directory that will be created. 2. Specify the Project Name By default, the project's name is the last segment of the project's directory path (e.g. /tmp/path1/path2/p_name > p_name). You can change this name by selecting Custom. NOTE: If Project Directory points to an existing project, you cannot change its name. 3. Open a Predefined Project You may open one of the predefined projects that DVT ships with and continue to explore the DVT features. For more details see Predefined Projects. 4. Specify the Project Nature. If the poject does not exist or it does not contain any nature, you must select at least one nature. This way DVT will compile the respective sources. 3.8.3 Configure the Build As soon as you create a project, you'll be notified there is nothing to build. To configure the build follow the link in the build notification dialog or open the .dvt/ default.build file. © AMIQ 18 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com In order to provide advanced functionality (like hyperlinks, autocomplete, design and class hierarchy, error signaling, etc.) DVT analyzes the source code files in your project. This analysis process is called build. By default, DVT doesn't build anything. In order to build, DVT uses the arguments that you specify in one of the <name>.build files located in the .dvt folder of your project. The default build configuration is .dvt/default.build. Here you list compilation directives in a similar way you would pass arguments to any simulator. For more details see Build Configurations. 3.8.4 Build the Project Once you specified the files you want to compile, the incdirs to be used for `include and so on, you should rebuild the project. In general, every time you change the .build configuration, you should rebuild. In order to rebuild you click the Rebuild button . While editing source files, a project is incrementally compiled as soon as you save, unless the menu option Project > Build Automatically is un-checked. The building progress is reported in the Progress View. Depending on your configuration, you may also see detailed information in the Console View. 3.8.5 Inspect the Compilation Errors Syntax errors are detected as you type. © AMIQ 19 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com They are indicated in the vertical bars of the editor (right - for the visible code, left - for the full file). If you keep the mouse over the marker on the left you'll see more details about the error. Same tooltip will appear if you keep the mouse over the marker on the editor right bar. You can also click on the marker to jump to the error. If a project contains errors, for example syntax errors, it will be indicated using decorators: © AMIQ 20 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com You can use the Problems View to inspect the errors. You can show the Problems View from menu Window > Show View > Other... > General > Problems. Double clicking on some error will jump to the source location. 3.8.6 See Comments in Tooltips When you position the mouse over a type, method, field etc., a tooltip will pop-up showing information on corresponding declaration. Some examples are presented below. In a similar way you'll see information on fields, events, variables etc., predefined or not. © AMIQ 21 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com Type Info Macro Info Task Info The information presented in the tooltip is created using the comment on top of the declaration. For example, given the following declaration of a field: the corresponding tooltip will look like this: © AMIQ 22 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.7 Use Hyperlinks to Move Around in the Code If you place the mouse over a type, method, field etc. and press the Ctrl key, a hyperlink will be presented. Click on the hyperlink to jump to definition. You can also jump to a definition if you put the cursor on the relevant name and press F3. You can hyperlink and jump to an imported file. You can hyperlink and jump to a macro. © AMIQ 23 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.8 Quickly Open a Type (Class, Module, Interface) You can quickly open a specific type definition. Press Ctrl+Shift+T. The Quick Types View will pop-up and you can enter any regular expression to locate a type. Select and press Enter or click to jump to its definition. 3.8.9 Quickly Inspect the Class Hierarchy You can quickly see inheritance tree for a class, task, function etc. Put the cursor over the entity name and press Ctrl+T. © AMIQ 24 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com For example for functions you can also see the implementations along the hierarchy (icons are not grayed). 3.8.10 Quickly Open a File You can quickly open a file that is included via the top files. Just press Ctrl+I.The Quick Compile Order View will pop-up and you can enter any regular expression to locate a file. Select and press Enter or click to open the file. © AMIQ 25 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com You can also see the include tree of the files in your project in the Compile Order View. Open the view from menu Window > Show View > Other... > DVT > Compile Order . © AMIQ 26 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com This is the Compile Order View. 3.8.11 Quickly Move Inside the Editor Press Ctrl+O to open the Quick Outline for an overview of your file. You can enter any regular expression to locate an entity to jump to the current file. You can also see the outline in the Outline View. Open the view from menu Window > Show View > Other... > General > Outline . © AMIQ 27 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.12 Inspect the Class Hierarchy and Class Members Position the cursor on the relevant name and press F4 or right click and choose Show > Type Hierarchy from the menu. The Type Hierarchy View will present: • the inheritance tree (for example parents and children of a class) • members © AMIQ 28 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.13 Inspect the Design Hierarchy Position the cursor on a module name and press Shift+F4 or right click and choose Show > Design Hierarchy from the menu. The Design Hierarchy View opens with the chosen element set as the top of the hierarchy. © AMIQ 29 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.14 Inspect the Verification Hierarchy Position the cursor on a UVM class name and press Shift+F6 or right click and choose Show > Verification Hierarchy from the menu. The Verification Hierarchy View opens with the chosen class set as the top of the hierarchy. © AMIQ 30 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.15 Browse Through All the Available Types (Classes, Modules, Interfaces) You can explore all the types like classes, modules, interfaces or structs... that are defined in your project using the Types View. Go to menu Window > Show View > Other... > DVT > Types to open the Types View. © AMIQ 31 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.16 Look for the Implementation of an Extern Function or Task Position the cursor on the relevant name and press Shift+F3 or right click and choose Show > Layers from the menu. © AMIQ 32 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.17 Search for Entities You can search for a specific type, method etc. in the current project or whole workspace. Press Ctrl+H to pop-up the search dialog. © AMIQ 33 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com The results are presented in the Search View. 3.8.18 Use Content Assist (Autocomplete) Content assist provides you with a list of suggested completions for partially entered text. Proposals are context dependent and include accessible fields, methods, variables, OVM macros etc. as well as templates for various constructs. © AMIQ 34 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com Press Ctrl+Space to trigger content assist. Content assist is triggered automatically in some contexts, for example when you type in a . (dot) in the editor after a class type field name. Proposals are presented in a list for you to choose from. Moving through proposals you can quickly see the related documentation. Press Enter or click to select a proposal or Esc to cancel the assist. 3.8.19 Use Code Templates When you trigger autocomplete using Ctrl+Space, template suggestions may appear in the proposal list. © AMIQ 35 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com To define templates go to the DVT > Code Templates preference page (via menu Window > Preferences) and select SystemVerilog from Select Nature:. Click the New button to define a new template. The template name is important for proposal filtering based on already typed text. © AMIQ 36 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.20 Use Module Auto Instance You need to type the first letters of the module name, then press Ctrl+Space three (3) times. You can recognize module instances by their icon, it looks like a chip with ports ready to be glued in. © AMIQ 37 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.21 Expand Macros (Apply Preprocessing) You can apply preprocessing over a selected section of code in order to see how macros are expanded. You have multiple options in the right-click context menu Macros. To expand them in the source file, choose Expand One Level Inline or Expand All Levels Inline. To expand them in a temporary file, choose Expand One Level or Expand All Levels. © AMIQ 38 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.22 Trace Macro Errors To debug macro usage errors (especially if macros in macros are used) you can see how the error is propagated from macro to macro (the error trace) either by: • going with the mouse over the error marker on the left and right click • or selecting the error in the Problems View, right click and choosing Macro Trace The macro error trace will be presented in the Console View with hyperlinks to source. © AMIQ 39 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.23 Track Tasks using TODO Markers If you place TODO markers in your code they are recognized and presented in the Tasks View. This is a mean to insert reminders, preserve, track and share them with your team. You can use TODO markers inside comments. FIXME (high priority), TODO and XXX (low priority) are recognized. Go to menu Window > Show View > Other... > General > Tasks to open the Tasks View. Double click on a task to jump to the marker definition. 3.8.24 Quickly See the Current Scope in the Status Bar The scope at cursor (current function/class/module...) is always presented in the status bar. © AMIQ 40 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.25 Fold Code Regions in Order to Improve Readability Use the Expand All button or the Collapse All button from the toolbar or from right click menu Source > Folding to unfold/fold the current file. 3.8.26 Access the Context Sensitive Help A focused set of help topics that is related to the current context can be shown to users on demand using context-sensitive help. This form of user assistance is delivered to users when a platform-specific trigger is activated (e.g. F1 key on Windows, Ctrl+F1 on GTK, Help key on Carbon): © AMIQ 41 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 3. Getting Started 42 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 4. Build Configurations In order to provide advanced functionality (like hyperlinks, autocomplete, design and class hierarchy, error signaling, etc.) DVT analyzes the source code files in your project. This analysis process is called build and it is performed by the DVT internal builder (also referred to as internal builder or DVT builder or DVT parser). For convenience, build is synonym with code compilation or code analysis. The internal builder performs an initial full build of your project (a full build can also be triggered on demand). As you change sources, DVT performs an incremental build (incremental compilation), that is it analyzes only the changes. Unless the build automatically preference is turned off, an incremental build is performed as soon as you save or as soon as DVT detects some idle time after you changed the code. DVT includes standard compliant code parsers. During the build process it creates an internal representation of the code. This representation is called the internal DVT dictionary, index, database or model. This model is partially serialized on the disk, so that subsequent tool invocations don't require a full build. See Build Persistence for more details. In order to build, the internal builder uses the arguments that you specify in the current build file. A build file is one of the <name>.build files located in the .dvt folder of your project. Blue bullet decorations indicate if a file is compiled, for example in the Navigator View. This is a compiled file. This file is not compiled. 4.1 default.build .dvt/default.build is an argument file that configures DVT's internal builder. By default, whenever a full build is performed, DVT starts by reading this file. It may contain: • comments • directives in two forms: • +directive+arg1+arg2+ • -directive arg1 arg2 • top files. Anything that is not a directive or comment is regarded as path to a top file. Note: Unknown directives are ignored. In general, DVT-specific directives start with +dvt_. Unknown directives that start with this prefix are flagged with a warning. The internal builder parses each top file, following includes/imports as specified by the language. Some directives ( parsing directives) allow you to control how files are compiled © AMIQ 43 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com based on their extension, for example using System Verilog 1800-2012 for *.sv, Verilog 2001 for *.v, VHDL 1076-2008 for *.vhdl and e Language 1647-2011 parser for *.e. The parsing directives are either generic or mode specific. Note: A project is built by analyzing source code with one or more of DVT's parsers depending of the Project Natures. Even if build configuration files in the .dvt folder specify certain files to be compiled with a specific language syntax, they will not be analyzed unless the corresponding nature is enabled for the project. The language syntax to project nature mapping is: e Language e Nature Verilog, SystemVerilog vlog Nature VHDL vhdl Nature In general, the directives are similar with the arguments (or flags) that you would pass to any compiler/simulator. A build file may include other argument files and so on. The internal builder follows the included files as it encounters them (as if part of a continuous stream). Note that the way a file is included (for example with '-f' or '-F') has an influence on how paths inside the included files are interpreted. For more details see Including Other Argument Files. To simplify the flow integration, DVT supports several Compatibility Modes. This capability allows you to reuse existing arguments or argument files that you already use for a particular simulator invocation. 4.2 Emulating compiler invocations Sometimes a design is compiled across multiple invocations. For example, environment variables or preprocessing directives may change their values between invocations, or sources may be compiled into different libraries. The +dvt_init+<mode> directive is equivalent with a new compiler invocation, where <mode> represents the compiler compatibilty mode. The directive resets the DVT builder to the mode specific default state and clears all the previous directives (preprocessing defines, system variables, libraries, etc.). You may specify any number of +dvt_init directives inside a build file. The compatibility mode is enforced until the next +dvt_init directive. Even if there is no +dvt_init directive specified, there is always an initial reset equivalent to +dvt_init+dvt. 4.3 Multiple .build Files You can have multiple build files inside the .dvt directory, and tell DVT which one to use for compilation by using the Set current build button from the toolbar: © AMIQ 44 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com The current build name is saved in the .dvt/build.config.xml file. The project state is saved per build file after each build, and this allows you to easily switch between multiple views of the project (see Build Persistence for more information). Use Cases Depending on your current focus (browsing rtl.build contains all directives needed to the design, writing testbench code, debugging) compile the design you only want to load in DVT the relevant code testbench.build contains all the directives needed to compile the verification environment default.build includes both the rtl.build and testbench.build Quickly switch between synthesizable and default.build contains all directives needed to non-synthesizable version of the design compile all the code hierarchy synth.build contains +dvt_preprocess_translate_pragmas +synthesis and a -f directive to include default.build You switch often between several versions compile.f contains directives needed to of the same code base. The paths to the compile all the code few different files are controlled by the $VERSION environment variable. version1.build contains +dvt_env +VERSION=1 and a -f directive to include compile.f version2.build contains +dvt_env +VERSION=2 and a -f directive to include compile.f ... You want to change the active build before Change the build name in .dvt/ launching DVT, as designers compile just the build.config.xml before launching DVT, for RTL by rtl.build, while others all.build. example by a wrapper script "run_dvt.sh -rtl". © AMIQ 45 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com 4.4 Compatibility Modes A compatibility mode defines how DVT decides what top files to parse and with what language syntax to parse them. File Extension to Language Syntax Mapping File extensions can be mapped either to a specific language syntax or skipped (that is they will not be parsed). Each mode has a default file extension to syntax mapping. You control the extensions mapping by using various directives, like for example +verilog2001ext in vcs.vlogan Compatibility Mode. The +dvt_ext_unmap_all directive clears the syntax mapping, including skipped. This means that all top files will be parsed using the Language Syntax for Unmapped Extensions. Note that the syntax for unmapped extensions can be Skip, for example in the Default DVT Compatibility Mode, as a result nothing will be compiled. Language Syntax for Unmapped Extensions An unmapped top file will be parsed using this syntax or skipped, depending on the compatibility mode. Can be controlled by various directives, like for example +dvt_ext_unmapped_syntax+<syntax> in the Default DVT Compatibility Mode or +v2k in vcs.vlogan Compatibility Mode. Language Syntax for Included Files Where relevant, for example for Verilog/ SystemVerilog, the included files are parsed either with the same syntax as the including file, or as specified by the extension mapping. See also each compatibility mode documentation. Note: A compatibility mode might also introduce specific predefined API, like for example Verilog preprocessing macros. List of Compatibility Modes The following compatibility modes are supported: • dvt - This is the default mode. • vcs.vlogan • vcs.vhdlan • ius.irun • TBD questa.vlog © AMIQ 46 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com • TBD questa.vcom How to Specify the Compatibility Mode The +dvt_init+<mode> directive changes the compatibility mode, where <mode> can be any of the above modes. A +dvt_init+<mode> directive: 1. Resets the dvt builder to the mode specific default state. 2. Clears all the previous directives (preprocessing defines, system variables, libraries, etc.). You can see it as the equivalent of a new tool invocation. You may specify any number of +dvt_init directives inside a build file. The compatibility mode is enforced until the next +dvt_init directive. 4.4.1 Default DVT Compatibility Mode The +dvt_init+dvt directive resets the builder to the dvt default state. File Extension to Language Syntax Mapping Syntax Extensions Verilog 2001 .v, .vh System Verilog 1800-2012 .vp, .vs, .vsh, .v95, .v95p, .sv, .svh, .svp, .svi, .sva VHDL 1076-2008 .vhd, .vhdl e Language .e 1647-2011 Skipped Files .c, .cpp, .so, .a, .o, .cc Language Syntax for Unmapped Extensions: Skip unmapped extensions. Language Syntax for Included Files: Included files are parsed as specified by the extension mapping. Mode Specific Directives Directive Description +dvt_ext_map Files with <ext> extension are parsed using the specified <syntax>. See the list +<syntax> below for more details regarding <syntax>. +<ext> +dvt_ext_unmap Files with <ext> extension are parsed using the Language Syntax for +<ext> Unmapped Extensions. © AMIQ 47 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com +dvt_ext_unmapped_syntax Set the Language Syntax for Unmapped Extensions. See the list below for +<syntax> more details regarding <syntax>. +dvt_ext_unmap_all All files are parsed using the Language Syntax for Unmapped Extensions. +dvt_ext_included by_ext: The included files are parsed using the syntax as specified by directives, +by_ext that is using by ext syntax (if explicit) or the syntax for unmapped extensions +dvt_ext_included by_parent: Included files are parsed using the syntax that was used for parsing +by_parent the including file Specifying a <syntax> To specify the <syntax> for the directives above, one should use any of the following strings, case-insensitive: 1364-1995, Verilog_95 1364-2001-noconfig, Verilog_2001_noconfig 1364-2001, Verilog_2001 1364-2005, Verilog_2005 1800-2005, SystemVerilog_2005 1800-2009, SystemVerilog_2009 1800-2012, SystemVerilog_2012, SystemVerilog 1647-2011, e_2011, e 1076-1987, VHDL_87 1076-1993, VHDL_93 1076.1-1999, VHDL_AMS_99 1076-2000, VHDL_2000 1076-2002, VHDL_2002 1076.1-2007, VHDL_AMS_2007 1076-2008, VHDL_2008, VHDL SKIP The dot (.) for specifying <ext> is optional. For example +dvt_ext_map +verilog_1364_1995+.svh and +dvt_ext_map+verilog_1364_1995+svh are equivalent. You can specify more extensions +verilog_1364_1995+.svh+svp. at once, for example +dvt_ext_map When several directives change the syntax of a specific <ext>, the last one wins. © AMIQ 48 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com Examples • I want to parse .c and .v files as SystemVerilog: +dvt_init+dvt // By default .c are skipped and .v are parsed with Verilog 2001 syntax +dvt_ext_map+SystemVerilog_2012+.v+.c // Now .c and .v are parsed with SystemVerilog 2012 Note Every time you re-map an already mapped extension, DVT will warn you. For the example above, you get the following warnings: .v was previously mapped to Verilog_2001 .c was previously mapped to Skip • I want the .vp files to be parsed with the Language Syntax for Unmapped Extensions: +dvt_init+dvt // By default .vp is parsed with SystemVerilog 2012. +dvt_ext_unmap+.vp // Because by default the unmapped extensions are skipped, .vp files will be skipped • I want to change the Language Syntax for Unmapped Extensions: +dvt_init+dvt // By default the unmapped extensions are skipped +dvt_ext_unmapped_syntax+Verilog_95 // Now unmapped extensions, for example .foo, will be parsed as V • I want to configure everything from scratch: +dvt_init+dvt +dvt_ext_unmap_all // All files are skipped +dvt_ext_unmapped_syntax+Verilog_95 // Compile all files with unmapped extensions as Verilog 95 +dvt_ext_map+skip+.cpp // Skip .cpp files +dvt_ext_map+SystemVerilog_95+.sv // Compile .sv as SystemVerilog +dvt_ext_map+VHDL_1076_1_1999+.vhd // Compile .vhd as VHDL-AMS • I want to parse everything as SystemVerilog +dvt_init+dvt +dvt_ext_unmap_all // All files are skipped +dvt_ext_unmapped_syntax+SystemVerilog // All files are parsed as SystemVerilog 4.4.2 vcs.vlogan Compatibility Mode The +dvt_init+vcs.vlogan directive resets the builder to the vcs.vlogan default state. File Extension to Language Syntax Mapping Syntax Extensions Skipped Files .c, .cpp, .so, .a, .o, .cc Language Syntax for Unmapped Extensions: Verilog 1995 Language Syntax for Included Files: Included files are parsed using the syntax that was used for parsing the including file. Mode Specific Directives © AMIQ 49 Rev. 3.5.32 DVT SystemVerilog IDE Directive Chapter 4. Build Configurations www.dvteclipse.com Description +verilog1995ext All files with <ext> extension are parsed using the Verilog 1995 syntax. +<ext> +verilog2001ext All files with <ext> extension are parsed using the Verilog 2001 syntax. +<ext> +systemverilogext All files with <ext> extension are parsed using the SystemVerilog syntax. +<ext> -sverilog Sets the syntax for unmapped extensions to SystemVerilog. This directive has precedence over +v2k. +v2k Sets the syntax for unmapped extensions to Verilog 2001. -extinclude The included files are parsed using the syntax as specified by directives, that is using by ext syntax (if explicit) or the syntax for unmapped extensions. It overrides the default behavior. The dot (.) for specifying <ext> is optional. For example +verilog1995ext+.svh and +verilog1995ext+svh are equivalent. You can specify more extensions at once, for example +verilog1995ext+.svh+svp. When several directives change the syntax of a specific <ext>, the last one wins. Predefined API VCS Defined as preprocessing macro without value. 4.4.3 vcs.vhdlan Compatibility Mode The +dvt_init+vcs.vhdlan directive resets the builder to the vcs.vhdlan default state. File Extension to Language Syntax Mapping Syntax Extensions Skipped Files .c, .cpp, .so, .a, .o, .cc Language Syntax for Unmapped Extensions: VHDL 1076-1993 Mode Specific Directives Directive Description -w <lib> Compile intro library <lib> -work <lib> -vhdl87 Sets the syntax for unmapped extensions to VHDL 1076-1987 4.4.4 ius.irun Compatibility Mode The +dvt_init+ius.irun directive resets the builder to the ius.irun default state. © AMIQ 50 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com File Extension to Language Syntax Mapping Syntax Extensions Verilog 1995 .v95, .v95p Verilog 2001 .v, .vp, .vs System Verilog 1800-2012 .sv, .svp, .svi, .svh, .vlib, .vcfg VHDL 1987 .vhd, .vhdl, .vhdp, .vhdlp, .vhcfg VHDL AMS .vha, .vhams, .vhms 1999 e Language .e 1647-2011 Skipped Files .vams, .pslvlog, .pslvhdl, .pslsc, .c,.cpp, .cc, .s, .o, .a, .so, .sl, .scs, .sp Language Syntax for Unmapped Extensions: Skip Language Syntax for Included Files: Included files are parsed using the syntax that was used for parsing the including file. Mode Specific Directives Note: in IUS compatibility mode all directives are case-insensitive except for -f / -F Directive Description -default_ext <syntax> Set the Language Syntax for Unmapped Extensions. See the list below for more details regarding the <syntax> argument. Files with <ext> extension will be parsed using the specified <syntax>. If <syntax>_ext the optional + is specified, the mapping will be added to the default File [+]<ext>[,<ext>] Extension to Language Syntax Mapping. Otherwise, the default mapping of the specified <syntax> is overridden. If you specify the override directive multiple times for the same <syntax>, the default File Extension to Language Syntax Mapping will be overridden only the first time. You can specify more extensions at once, comma-separated, for example - vlog_ext .svh,.svp. The dot (.) for specifying <ext> is mandatory. The following directives are supported: -a_ext, -amsvhdl_ext, -amsvlog_ext, -as_ext, -c_ext, -cpp_ext, -dynlib_ext, -e_ext, -o_ext, -spice_ext, -sysv_ext, vhcfg_ext, -vhdl_ext. See the list below for more details regarding <syntax>. -asext Equivalent to -as_ext +<ext>[,<ext>] <ext>[,<ext>] -ccext <ext> Equivalent to -c_ext +<ext>[,<ext>] -cxxext <ext> Equivalent to -cpp_ext +<ext>[,<ext>] -objext <ext> Equivalent to -o_ext +<ext>[,<ext>] © AMIQ 51 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com -vhdlext <ext> Equivalent to -vhdl_ext +<ext>[,<ext>] -vlogext <ext> Equivalent to -vlog_ext +<ext>[,<ext>] -sv All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a Verilog syntax flavor will be parsed with SystemVerilog 2012 instead. Has precedence over -v1995. -v1995 All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with Verilog 2001 will be parsed instead with a reduced keywordset variant of Verilog 2001. The reduced keywordset does not contain the keywords automatic, localparam, generate, endgenerate, and genvar. -v95 -v200x All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a VHDL syntax flavor (but not VHDL AMS) will be parsed with VHDL 2000 instead. Has precedence over -v93. -v93 All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a VHDL syntax flavor (but not VHDL AMS) will be parsed with VHDL 93 instead. -ams All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a VHDL syntax flavor will be parsed with VHDL AMS 1999 instead. Has precedence over -v93 and -v200x. -snpath <path> Equivalent to +dvt_env+SPECMAN_PATH=$SPECMAN_PATH:<path> -sndefine <arg> Equivalent to +define+<arg> -ovm Load the OVM / UVM library from the irun installation location. -uvm For ovm: `irun -location -nolog`/tools/ovm. For uvm: `irun -location -nolog`/tools/uvm/uvm_lib/uvm_sv. -ovmhome <path> Load the OVM / UVM library from the specified <path>. Has precedence over -ovm / -uvm. -uvmhome <path> How to specify <syntax> for - default_ext <syntax> and - <syntax>_ext directives Language Syntax - default_ext <syntax> - <syntax>_ext Verilog 2001 -default_ext verilog -vlog_ext © AMIQ 52 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com Verilog 1995 -default_ext verilog95 SystemVerilog 2012 -default_ext systemverilog, - -sysv_ext default_ext vcnf VHDL 1987 -default_ext vhdl, -default_ext -vhdl_ext vhcfg e Language -default_ext e -e_ext VHDL AMS 1999 -default_ext vhdl-ams -amsvhdl_ext SKIP -default_ext verilog-ams, - -a_ext, -amsvhdl_ext, default_ext psl_vlog, amsvlog_ext, -default_ext psl_vhdl, default_ext psl_sc, default_ext c, N/A - - -as_ext, -c_ext, -cpp_ext, -dynlib_ext, -e_ext, -o_ext, -default_ext cpp, -default_ext -spice_ext, -sysv_ext, assembly, -default_ext o, vhcfg_ext, -vhdl_ext - -default_ext a, -default_ext so, -default_ext scs Predefined API INCA Defined as preprocessing macro without value. Examples • I want to parse .sv, .c and .v files as SystemVerilog: +dvt_init+ius.irun // By default .c are skipped and .v are parsed with Verilog 2001 syntax -sysv_ext +.v,.c // Now .c and .v are parsed with SystemVerilog 2012; however, the default extensions mappe Note Every time you re-map an already mapped extension, DVT will warn you. For the example above, you get the following warnings: .v was previously mapped to Verilog_2001 .c was previously mapped to Skip • I want the .vp files to be parsed with the Language Syntax for Unmapped Extensions: +dvt_init+ius.irun // By default .vp, .v, .vs are parsed with Verilog 2001 -vlog_ext .v, .vs // We override the mapping for Verilog 2001 with only the other two extensions. // Now .vp is not mapped to any Language Syntax. // Because by default the unmapped extensions are skipped, .vp files will be skipped • I want to change the Language Syntax for Unmapped Extensions: +dvt_init+ius.irun // By default the unmapped extensions are skipped © AMIQ 53 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com -default_ext verilog95 // Now unmapped extensions, for example .foo, will be parsed as Verilog 95 • I want to parse all Verilog source files and all files with unmapped extensions as SystemVerilog, and all VHDL files as VHDL 2000: +dvt_init+ius.irun -default_ext systemverilog // All files with unmapped extensions are parsed as SystemVerilog -sv // All Verilog source files are parsed with SystemVerilog -v200x // All VHDL source files are parsed with VHDL 2000 4.5 Paths You can specify absolute or relative paths. Relative paths are resolved relative to the compilation root. By default the compilation root is the project directory. However, when using the -F directive to include another argument file the compilation root might change (for more details see Including Other Argument Files). You can use environment variables when specifying paths. You can use ant-like path patterns [http://ant.apache.org/manual/dirtasks.html#patterns] when specifying top file paths: • ? matches single character, e.g. top?.sv matches top1.sv and topA.sv but not top_1.sv • * matches a sequence of characters from a file/directory name, e.g. top*/*.sv will match all files with .sv extension from all the directories starting with top • ** matches a sequence of directories from a path (recursively) e.g. **/*.sv matches all files with .sv extension from the whole project directory tree 4.6 Strings You may use single quoted (') or double quoted (") strings to group a piece of text so that it will be considered a single directive argument. Example: +define+FOO='my macro' To use a quotation mark " in a string, you should escape it using backslash \ like this: +define+MOO="Hello \"Moo\"" You can also use \" as string delimiter, and any " inside the string defined like this are considered as part of the string, like this: +define+MOO=\"Hello "Moo"\" NOTE: When in vcs compatibility mode, the escaping only works in files included with -file (see Including Other Argument Files). © AMIQ 54 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com 4.7 Comments The following comment styles are allowed: # single line comment // single line comment -- single line comment /* multi line comment */ 4.8 Environment Variables To define an environment variable you can use the following syntax: +dvt_env+<NAME>[=VALUE] or, equivalently: +dvt_setenv+<NAME>[=VALUE] Examples: +dvt_env+UVM_HOME=/uvm/uvm-1.1 +dvt_env+SPECMAN_PATH=$SPECMAN_PATH:/path/to/my/vips To use the value of a system variable called ENV_VAR you can use any of the following notations: • $ENV_VAR • ${ENV_VAR} • %ENV_VAR% Environment variables, either from the parent shell or explicitly defined, can be used to specify: • top files • directives that take a path as an argument, for example +incdir+ • value for defines When an environment variable is not defined, but it is used, the behavior is as follows: • for the value of a define directive, the define value is left as-is © AMIQ 55 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com • for top files and directives that take a path as an argument, an error is signaled and such top files and directives are ignored • when used inside the value of an environment variable, it is expanded to the empty string Environment variables are visible to the DVT parsers, like for example when used in the e language import statements. Environment variables are propagated to the external tools launched from DVT, for example by using Run Configurations or External Builders. When an environment variable is used inside a build file, only the +dvt_env+ directives above the usage line are taken into account. Predefined environment variables Variable Value DVT_PROJECT_LOC Absolute path of the project directory. 4.9 Including Other Argument Files You can include other argument files with -f, -F or -file: -f /path/to/argument/file.f The -f and -file directives are equivalent, except for the vcs compatibility mode. In the vcs compatibility mode Strings [/wiki/Strings] are handled differently when using -f or -file. The behavior of -F is not consistent across simulators, so DVT treats it according to the compatibility mode: dvt, vcs questa ius when analyzing the contents of the included argument file, all relative paths are resolved as relative to the parent directory of the argument file; in other words, this is equivalent to changing the compilation root to be the parent directory of the argument file the directive is disregarded when analyzing the contents of the included argument file, relative paths are resolved as relative to the compilation root except for relative top file paths. Relative top file paths are resolved as follows: - first, as relative to the parent directory of the argument file - if not found, as relative to the compilation root 4.10 Build Persistence The internal DVT dictionary and information regarding the project state, like for example the errors and warnings, are persisted on disk in the dvt database. When closing and re-opening DVT, the project is restored from the persisted information to the saved state to avoid rebuilding. © AMIQ 56 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com By default, the database is saved in the workspace directory under the location below: <dvt_workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects/<project_name>/dict When the current build is other than the default, the following location is used: <dvt_workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects/<project_name>/dict/bc_<current_b You can specify a custom database location with the +dvt_db_location+ directive, like this: +dvt_db_location+<path> The database is saved in: <path>/dvt_db/<project_name> When the current build is other than the default, the following location is used: <path>/dvt_db/<project_name>/bc_<current_build_name> This directive is global: it has effect for all the compiled code, regardless of +dvt_init+ directives. If specified multiple times, only the first time is taken into account. This may change in the future. There are several use-cases for custom database location. Generally, the target is to eliminate rebuilding after import: • closing and re-opening DVT • importing an existing project in a new workspace • load a set of read-only files in "Browsing mode" (no edit) DB Access Considerations The pseudo-code algorithm below illustrates handling write access restrictions and concurrent access to the location specified by the +dvt_db_location+ directive. if <dvt_db_location> is in use by another DVT instance then USE workspace db location else if read access is required if <dvt_db_location> does not exist READ FROM workspace db location (*1) else if <dvt_db_location> is not writable and there is a saved snapshot in the workspace db location READ FROM workspace db location else READ FROM <dvt_db_location> else if write access is required if <dvt_db_location> is not writable (*1) WRITE TO workspace db location © AMIQ 57 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com else (*2) WRITE TO <dvt_db_location> and CLEAN UP workspace db location (*1) Read only db locations force writes to the workspace db location and as a consequence the read only wil (*2) The workspace db location is cleaned up in order to ensure that a fall back per (*1) is not outdated. 4.11 DVT Auto-Linked Some of the files that DVT compiles for a project may be located outside the project directory (see What is a Project). In order to benefit from DVTs advanced functionalities on such files, they are automatically linked as if inside the project, under the <project_root>/DVT AutoLinked virtual folder. A virtual folder is a logical container - it has no physical representation on the disk. For example, a file physically located in: /path/to/my/base/classes/file.ext will be Auto-Linked under the following virtual folder hierarchy: <project_root> `DVT Auto-Linked `path `to `my `base `classes `file.ext You can create new files or open existing ones anywhere in the DVT Auto-Linked hierarchy. For creating new files, you can use the New File Wizard. The files thus created will have a representation on the disk. For opening existing files, you can right click on any folder in the DVT Auto-Linked hierarchy and select Open from the context menu. A File Chooser will appear that will help you find the file that you want. In the case of very deep hierarchies, you can define "aliases" for paths using the +dvt_auto_link_root+<alias>=<root_path> directive. These aliases are called DVT AutoLinked Roots. For example by adding this line in the project's default.build: +dvt_auto_link_root+base_classes=/path/to/my/base/classes/ the following virtual folder hierarchy is created: <project_root> © AMIQ 58 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com `DVT Auto-Linked `base_classes `file.ext The specified <root_paths> and <aliases> must be unique, and therefore only the first occurrence is considered. Aliases may not be names of directories located directly under the filesystem root (like for example /etc or /bin). Environment variables may be used when specifying root paths, for example: +dvt_auto_link_root+src=$HOME/a/b/c Notes • An environment variable may only be used at the beginning of a root path (that is, the following will not work: +dvt_auto_link_root+src=/path/$VAR/a/b/c) • Only environment variables inherited from the console where DVT was started may be used. Variables defined using +dvt_env+ are not allowed. • The +dvt_auto_link_root+ directive may only be used in the first invocation More examples: +dvt_auto_link_root+hdl=/a/b/c All auto-linked files with a path that starts with /a/b/c will be presented in DVT Auto Linked/hdl +dvt_auto_link_root+hdl=/a/b/c +dvt_auto_link_root+hdl/d/e/f The second directive will be ignored because the same "hdl" alias was used. +dvt_auto_link_root+hdl=/a/b/c +dvt_auto_link_root+src=/a/b/c The second directive will be ignored because the same "/a/b/c" path was used. +dvt_auto_link_root+hdl=/a/b +dvt_auto_link_root+src=/a/b/c All files under /a/b/c will be presented under src and the rest from /a/b under hdl. 4.12 Run a Script Before Build In order to run a script before the build see the Build tab from the DVT Generic run configuration. For more details see Run Configurations. © AMIQ 59 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com 4.13 All Build Directives Directive Note Description -ams ius.irun Compatibility Mode-Specific All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a VHDL syntax flavor will be parsed with VHDL AMS 1999 instead. Has precedence over -v93 and -v200x. -asext <ext>[,<ext>] ius.irun Compatibility Mode-Specific Equivalent to -as_ext +<ext>[,<ext>] -ccext <ext> ius.irun Compatibility Mode-Specific Equivalent to -c_ext +<ext>[,<ext>] -cxxext <ext> ius.irun Compatibility Mode-Specific Equivalent to -cpp_ext +<ext>[,<ext>] -cuname <compilation_unit_name> Compile under <compilation_unit_name> package; the directive is enforced until: * another -cuname directive is encountered * +dvt_init directive is encountered * end of default.build is encountered -default_ext <syntax> ius.irun Compatibility Mode-Specific +define +<DEFINE>=<replacement> Set the Language Syntax for Unmapped Extensions. See ius.irun Compatibility Mode for more details regarding the <syntax> argument. Define a preprocessing define; the replacement is optional; you may quote the replacement with ' or "; if defined, environment variables are expanded. -define <DEFINE>=<replacement> +dvt_active_test e Language Only The definition of structs/units/types declared in several +<path> Test Files is considered to be the one in the Active Test File. +dvt_auto_link +<true/false> GLOBAL +dvt_auto_link_root GLOBAL +<alias>=<root_path> Enable automatic linking of resources located outside the project location. Default: true. When Auto-Linking <root_path>/subpath/to/file link it as © AMIQ 60 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com DVT Auto-Linked/<alias>/subpath/to/file This directive helps to reduce the depth of the virtual filesystem hierarchy under DVT Auto-Linked, because the <root_path> sequence of virtual folders is compacted to <alias> virtual folder. The <root_paths> and <aliases> specified like this must be unique, and therefore only the first occurrence is considered. This is a global directive. Aliases may not be names of directories located directly under the filesystem root (like for example etc or bin). +dvt_build_log_file_location GLOBAL +<path_to_existing_directory> Specify the location of the internal builder log file. Default: ./ (Project location). +dvt_build_log_to_console GLOBAL +<true/false> Enable/disable internal builder logging to console. Default: true. +dvt_build_log_to_file GLOBAL +<true/false> Enable/disable internal builder logging to file. Default: true. +dvt_compilation_root +</path/to/ compilation/ root> Specify the compilation root. Relative paths specified in default.build will be resolved as relative to this location, except for the special cases that rise when Including Other Argument Files. +dvt_db_location GLOBAL +<path> Save the project database files under <path>/ dvt_db/<project_name> directory. The <path>/dvt_db/ <project_name> directory will be created if needed and may be overwritten at each full/incremental project build. In certain situations (for example if write access for <path>/dvt_db/<project_name> is denied or the directory is in use by another DVT instance) DVT falls back to the default location: <dvt_workspace>/.metadata/.plugins/ org.eclipse.core.resources/.projects/<project_name>. +dvt_disable_parallel_lex_parse GLOBAL Disable lexing-parsing parallelization. SystemVerilog Only +dvt_disable_preproc_optimize GLOBAL +<true/false> SystemVerilog Only Disable DVT preprocessing optimizations. Default: false. +dvt_disable_checks GLOBAL Disable a set of semantic checks by ID. +<check_id1> +<...> SystemVerilog For example: +dvt_disable_checks and VHDL Only +UNDECLARED_IDENTIFIER © AMIQ 61 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com Possbile check IDs: UNDECLARED_IDENTIFIER, MISSING_OTHERS_CHOICE, REDUNDANT_OTHERS_CHOICE. By default no checks are disabled. +dvt_e_as_computed_translate_method e Language Only Explicitly specify the user-defined methods used in +<package>::<struct>.<method> as computed macros. The <package> is optional and defaults to main if not specified. +dvt_e_enable_non_standard_checks GLOBAL Enable/disable non-standard syntax and semantic +<true/false> checks. Default: false. e Language Only +dvt_e_sn_which_emulation GLOBAL Use the following set of search paths to locate VIPs\n instead of sn_which.sh: e Language Only / <IUS Install Location>/specman/linux/ <IUS Install Location>/specman/src/ <IUS Install Location>/specman/docs/ <IUS Install Location>/specman/tcl/specman/ <IUS Install Location>/specman/linux/ <IUS Install Location>/specman/src/ <IUS Install Location>/specman/docs/ <IUS Install Location>/specman/tcl/specman/ <IUS Install Location>/specman/erm_lib/ <IUS Install Location>/specman/sn_lib/ <IUS Install Location>/specman/packages/ <IUS Install Location>/specman/uvm/uvm_lib/ <IUS Install Location>/specman/ovm/ovm_lib/ <IUS Install Location>/specman/erm_lib/ <IUS Install Location>/specman/sn_lib/ <IUS Install Location>/specman/packages/ © AMIQ 62 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com <IUS Install Location>/specman/uvm/uvm_lib/ <IUS Install Location>/specman/ovm/ovm_lib/ +dvt_e_macro_strict_exp_checking GLOBAL If true, the <exp> match expression will match only +<true/false> valid expressions. If false, <exp> is equivalent with the e Language Only <any> match expression that matches any non-empty sequence of characters. Default: false. +dvt_e_macro_exp_back_tracking GLOBAL If true, the parser will reject a user defined expression +<true/false> match if the result of the macro reparse is not a valid e Language Only expression. Default: true. +dvt_e_sn_extract_defines GLOBAL Automatically extract and define the Specman version +<true/false> defines. Default: true. e Language Only +dvt_e_sn_which_add GLOBAL By default, the following VIPs are located using +<vip1>+<vip2> sn_which.sh, and their locations are added to the +... e Language Only $SPECMAN_PATH: evc_util, vr_ad, ovm_e, uvm_e. When an irun installation newer than 13.10 is detected, +dvt_e_sn_which_clear only evc_util, vr_ad, and uvm_e are added. Use +dvt_sn_which_add+<vip1>+<vip2>+... to add to this list and +dvt_sn_which_clear to clear it. +dvt_enable_unknown_directive_warnings GLOBAL Trigger warnings for unknown build directives. Default: +<true/false> false. +dvt_env +<NAME>[=VALUE] Define an environment variable. Its value is visible for subsequent directives and during parsing. +dvt_setenv +<NAME>[=VALUE] +dvt_ext_map +<syntax> +<ext> Files with <ext> extension are parsed using the specified <syntax>. See Default DVT Compatibility Mode for more details regarding <syntax>. +dvt_ext_unmap +<ext> Files with <ext> extension are parsed using the Language Syntax for Unmapped Extensions. +dvt_ext_unmap_all All files are parsed using the Language Syntax for Unmapped Extensions. +dvt_ext_unmapped_syntax +<syntax> Set the Language Syntax for Unmapped Extensions. See Default DVT Compatibility Mode for more details regarding <syntax>. +dvt_extended_checks DEPRECATED + During incremental compilation, basic semantic checking is performed for all the code. Extended checks are applied only on parts of the code, in order to prevent performance penalty. This directive controls the granularity of the extended semantic checks during incremental build: © AMIQ 63 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com +dvt_extended_checks+AUTO - extended semantic cheks in all of the code +dvt_extended_checks+MANUAL - basic semantic checks in all of the code NOTE: You can manually trigger extended semantic cheks in all of the code. +dvt_extract_comment_above GLOBAL +<true/false> Verilog Only Extract comments above elements. Default: true. +dvt_extract_comment_above_max_empty_lines GLOBAL Extract comment if located at no more than specified +<number_of_lines> number of empty lines above element declaration. Verilog Only Default: 1. +dvt_extract_comment_bcd GLOBAL +<true/false> Verilog Only Extract /** begin comment delimiter comments. Default: true. +dvt_extract_comment_inline GLOBAL +<true/false> Verilog Only Exctract comments inline with elements. Default: true. +dvt_extract_comment_ml GLOBAL +<true/false> Verilog Only Extract /* multi line comments. Default: true. +dvt_extract_comment_sl GLOBAL +<true/false> Verilog Only Extract // single line comments. Default: true. +dvt_file_compile_timeout GLOBAL +<timeout> During full compilation, skip parsing a file if it takes more than the specified threshold (in seconds). Set 0 for disable timeout. Default: 40 seconds. +dvt_file_substituteGLOBAL During compilation, the <file_path> file will be +<file_path>=<substitute_file_path> substituted with the <substitute_file_path> file. SystemVerilog Only +dvt_full_compile_checks GLOBAL In order to speed-up full compilation, you may chose to +<scope> fully check only a relevant subset your source code. This SystemVerilog directive controls the scope of the full build checks: and VHDL Only +dvt_full_compile_checks+FULL - all of the code is checked +dvt_full_compile_checks+LIBS - only the specfied libraries are checked, some basic checks are still performed for the rest of the code © AMIQ 64 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com +dvt_full_compile_checks+OFF - only some basic checks are performed Default: FULL +dvt_incremental_compile_checks GLOBAL +<scope> SystemVerilog and VHDL Only In order to speed-up incremental compilation, you may chose to fully check only a relevant subset your source code. This directive controls the scope of the incremental build checks: +dvt_incremental_compile_checks+FULL - all of the code is checked +dvt_incremental_compile_checks+LIB - only the corresponding libraries of the modified files are checked, some basic checks are still performed for the rest of the code +dvt_incremental_compile_checks+FILE - only the modified files are checked, some basic checks are still performed for the rest of the code +dvt_incremental_compile_checks+OFF - only some basic checks are performed all over the code Default: LIB +dvt_incremental_compile_max_lines GLOBAL Files with more than max lines will not be incrementally +<max_lines_number> compiled. Set 0 for infinite limit. Default: 7000. +dvt_incremental_compile_timeout GLOBAL During incremental compilation, skip the file if parsing +<timeout> or semantic checking takes more than the specified threshold (in seconds). Set 0 for disable timeout. Default: 4 seconds. +dvt_init +<mode> Equivalent of a new invocation, resets all directives. See Compatibility Modes for a detailed description. +dvt_max_nof_threads GLOBAL +<num_threads> Configure the maximum number of threads to use during different phases of intensive computation (e.g. semantic checking, etc.). Default: 8 +dvt_path_pattern_timeout +<timeout> Timeout in seconds when scanning path patterns (like for example /**/*.v). Default: 5. +dvt_preprocess_translate_pragmas Verilog Only Instructs DVT to skip analyzing the code between +<pragma1> pragmas such as +<pragma2>+... // <pragma> translate_off // <pragma> translate_on © AMIQ 65 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com You can specify any number of pragmas as arguments to this directive, separated by '+' like for example +dvt_preprocess_translate_pragmas+pragma+synopsys +synthesis +dvt_semantic_checks_timeout GLOBAL +<timeout> SystemVerilog and VHDL Only Popup semantic checking dialog asking to continue or stop when full compilation semantic checking takes more than the specified timeout (in seconds). Default value: 30. +dvt_skip_compile +<simple_pattern> Instructs DVT to skip analyzing the files whose absolute path matches the specified <simple_pattern>. In a simple pattern you can use wildcards such as '*' (any string) and '?' (any character). Such skipped files are decorated distinctively in the Navigator View: . +dvt_skip_compile +not +<simple_pattern> Instructs DVT to skip analyzing the files whose absolute path does not match the specified <simple_pattern>. In a simple pattern you can use wildcards such as '*' (any string) and '?' (any character). Such skipped files are decorated distinctively in the Navigator View: . +dvt_skip_compile +regex +<regex_pattern> Instructs DVT to skip analyzing the files whose absolute path matches the specified <regex_pattern>. Such skipped files are decorated distinctively in the Navigator View: . +dvt_skip_compile +regex+not +<regex_pattern> Instructs DVT to skip analyzing the files whose absolute path does not match the specified <regex_pattern>. Such skipped files are decorated distinctively in the Navigator View: . +dvt_skip_ext +<ext> Do not parse top files with <ext> extension. The dot (.) for specifying <ext> is optional. For example +dvt_skip_ext+.gv and +dvt_skip_ext+gv are equivalent. +dvt_test+<path> e Language Only Specify a top file and mark it as test. For example, the e Language test files have a special status, see e Language Test Files. © AMIQ 66 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations -extinclude The included files are parsed using the syntax as specified by directives, that is using by ext syntax (if explicit) or the syntax for unmapped extensions. It overrides the default behavior. vcs.vlogan Compatibility Mode-Specific +incdir+<path> www.dvteclipse.com Indicate search directories for files included with `include preprocessing directive. -incdir <path> +libext+<suffix> Specify accepted extensions for files in the library directories. Note: there are no default extensions, .v and .sv don't have a special status. -libmap <path> Specify the Verilog library map file. +librescan When DVT finds an unresolved module reference in a library file or directory, it will scan for the unresolved reference starting from the first specified library; by default (librescan not specified) it starts scanning from the library that introduced the unresolved reference and continues using the specified libraries order. -librescan -objext <ext> ius.irun Compatibility Mode-Specific -ovm Equivalent to -o_ext +<ext>[,<ext>] In all modes except the ius.irun Compatibility Mode it is equivalent with -uvm +incdir+/path/to/uvm/src /path/to/uvm/src/uvm_pkg.sv where /path/to/uvm is $UVM_HOME or $DVT_UVM_HOME if $UVM_HOME is not defined. In the ius.irun Compatibility Mode /path/to/uvm is using the IUS installation. -ovmhome ius.irun Compatibility Mode-Specific Load the OVM / UVM library from the specified <path>. Has precedence over -ovm / -uvm. -sndefine <arg> ius.irun Compatibility Mode-Specific Equivalent to +define+<arg> -snpath <path> ius.irun Compatibility Mode-Specific Equivalent to +dvt_env+SPECMAN_PATH= $SPECMAN_PATH:<path> -sv ius.irun Compatibility Mode-Specific All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a Verilog -uvmhome © AMIQ 67 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com syntax flavor will be parsed with SystemVerilog 2012 instead. Has precedence over -v1995. -sverilog vcs.vlogan Compatibility Mode-Specific Sets the syntax for unmapped extensions to SystemVerilog. This directive has precedence over +v2k. -<syntax>_ext ius.irun [+]<ext>[,<ext>] Compatibility Mode-Specific Files with <ext> extension will be parsed using the specified <syntax>. If the optional + is specified, the mapping will be added to the default File Extension to Language Syntax Mapping. Otherwise, the default mapping of the specified <syntax> is overridden. If you specify the override directive multiple times for the same <syntax>, the default File Extension to Language Syntax Mapping will be overridden only the first time. You can specify more extensions at once, commaseparated, for example - vlog_ext .svh,.svp. The dot (.) for specifying <ext> is mandatory. The following directives are supported: -a_ext, amsvhdl_ext, -amsvlog_ext, -as_ext, -c_ext, -cpp_ext, -dynlib_ext, -e_ext, -o_ext, -spice_ext, -sysv_ext, vhcfg_ext, -vhdl_ext. See ius.irun Compatibility Mode for more details regarding <syntax>. +systemverilogext vcs.vlogan +<ext> Compatibility Mode-Specific All files with <ext> extension are parsed using the SystemVerilog syntax. +UVM_TESTNAME GLOBAL The name of the UVM test which will be automatically created under uvm_root. -v <path> Specify a Verilog library file. -v1995 ius.irun Compatibility Mode-Specific All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with Verilog 2001 will be parsed instead with a reduced keywordset variant of Verilog 2001. The reduced keywordset does not contain the keywords automatic, localparam, generate, endgenerate, and genvar. -v200x ius.irun Compatibility Mode-Specific All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a VHDL syntax flavor (but not VHDL AMS) will be parsed with VHDL 2000 instead. Has precedence over -v93. -v93 ius.irun Compatibility Mode-Specific All files that would be parsed according to the File Extension to Language Syntax Mapping or Language Syntax for Unmapped Extensions with a VHDL syntax flavor (but not VHDL AMS) will be parsed with VHDL 93 instead. -v95 © AMIQ 68 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations +v2k vcs.vlogan Compatibility Mode-Specific Sets the syntax for unmapped extensions to Verilog 2001. +verilog1995ext vcs.vlogan +<ext> Compatibility Mode-Specific All files with <ext> extension are parsed using the Verilog 1995 syntax. +verilog2001ext vcs.vlogan +<ext> Compatibility Mode-Specific All files with <ext> extension are parsed using the Verilog 2001 syntax. -vhdl87 vcs.vhdlan Compatibility Mode-Specific Sets the syntax for unmapped extensions to VHDL 1076-1987. -vhdlext <ext> ius.irun Compatibility Mode-Specific Equivalent to -vhdl_ext +<ext>[,<ext>] -vlogext <ext> ius.irun Compatibility Mode-Specific Equivalent to -vlog_ext +<ext>[,<ext>] -w <lib> vcs.vhdlan Compatibility Mode-Specific Compile intro library <lib>. -work <lib> www.dvteclipse.com -work <lib> Compile into library <lib>. -y <path> Specify a Verilog library directory. 4.14 e Language Test Files Test Files are parsed independently on top of the Top Files. A Test File can be specified using the following directive: +dvt_test+/path/to/test_file.e All Test Files and the files imported by Test Files, but not part of Top Files and the files imported by Top Files, are decorated with a green bullet: 4.15 e Language SPECMAN_PATH The SPECMAN_PATH environment variable is used by the e Language parser to find imported files. It can be defined or altered by using the +dvt_env+ directive. © AMIQ 69 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com When relative paths are provided, they are automatically transformed into paths relative to the compilation root directory. By default the compilation root is the project directory. For more details see Paths. Examples: Define/overwrite shell-inherited value +dvt_env+SPECMAN_PATH=/my/specman/ path1:/my/specman/path1 Append to shell-inherited value +dvt_env+SPECMAN_PATH= $SPECMAN_PATH:/my/specman/path Prepend to shell-inherited value +dvt_env+SPECMAN_PATH=/my/specman/ path:$SPECMAN_PATH Append <project_root>/e directory to the +dvt_env+SPECMAN_PATH= SPECMAN_PATH $SPECMAN_PATH:e Backward-compatibility note: starting with DVT version 3.2, if a .build file is used to configure the project, the .edt_specman_path file is ignored. Adding VIPs to $SPECMAN_PATH using sn_which.sh You can specify a list of VIPs that should automatically be located by DVT using sn_which.sh and added to the $SPECMAN_PATH (if available in the console where DVT was started). The Specman version defines (e.g define SPECMAN_VERSION_###) are also detected using the same mechanism. By default, the following VIPs are located and added automatically: evc_util, vr_ad, ovm_e, uvm_e 4.16 SystemVerilog OVM or UVM Library Compilation Typically the OVM or UVM libraries are compiled using directives like: +incdir+/path/to/xvm/src /path/to/xvm/src/xvm_pkg.sv Using the -ovm or -uvm directives You can use the - ovm or - ''-uvm'' directives to compile the OVM or UVM libraries. They are shortcuts for the explicit directives above. For - ''-uvm'': 1. If the $UVM_HOME system variable is specified, use that library. 2. If the $DVT_UVM_HOME system variable is specified, use that library. If you launch DVT using one of the utility scripts that ship with DVT, $DVT_UVM_HOME is set by default to the most recent uvm library in $DVT_PREDEFINED_PROJECTS/libs. © AMIQ 70 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 4. Build Configurations www.dvteclipse.com The - ''-ovm'' directive works in a similar way. NOTE: At any time you can set a system variable using for example: +dvt_setenv+UVM_HOME=/path/to/xvm © AMIQ 71 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 5. Compile Checks The DVT internal builder performs various checks on the source code. • Syntax Checks indicate wrong syntax according to the IEEE standard, for example typos like 'clas' instead of 'class' when declaring a class. Syntactic checking is the first level checking performed on the code during parsing. • Semantic Checks indicate wrong semantic according to the IEEE standard, for example calling an undefined function 'foo()'. For performance reasons, not all semantic checks are performed at once. A subset is performed during full or incremental compilation. The complete set of checks is performed on demand, when explicitely triggered. • Non Standard Checks indicate syntax or semantic that is not standard, although some simulators support it. Non standard syntax is the result of legacy (for example from Vera) or additional language capabilities that may get into future standard releases. Check failures are signaled as compile problems, with the error or warning severity. The compile problems are presented in the Problems View. For performance reasons not all compile problems are visible at once in the Problems View. You can use Compile Waivers to change the severity (promote/demote) or disable the problems reported by DVT during build. 5.1 Compile Waivers You can use waivers to change the severity (promote/demote) or disable the problems reported by DVT during compilation. Promote Warning -> Error Demote Error -> Warning Disable Hide Waivers are defined per project, in the .dvt/waivers.xml file. To quickly create a waivers file click on the Edit waivers button in the Problems View. The .dvt/waivers.xml is created with a default content and opened. You can easily create your own waivers from the default generated ones. In the waivers editor you can use autocomplete for tags, attributes and attribute values. To quickly create a new waiver, in the Problems View right click on any problem reported by DVT and waive it. DVT proposes some default values for the waiver description, path and message. You can easily change them to fine-tune the waiver. You can include other waiver files using the <include/> tag. Compile Waivers Examples Use Case © AMIQ Solution 72 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com I want to hide all errors from a library that I do <waiver name="Disable all from library not control. folder." severity="DISABLED"><match path="/path/to/library/*"/></waiver> I want to hide all errors that I don't care about. <waiver name="Disable all that match a specific message pattern." severity="DISABLED"><match message="*some message pattern*"/></ waiver> I want to hide DVT false alarms until the issue Use a message based and/or path based waiver. is fixed. Compile Waivers File Syntax (XML) <!-XML file header; required. --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE waivers PUBLIC "-//DVT//waivers" "waivers.dtd" > <!-Root tag; required. Version attribute is required. The latest syntax version, illustrated by this example, is version 1. --> <waivers version="1"> <!-You can include waivers from other waiver files. The syntax of the included files is the same as this. You may use system variables in the path to included waiver files. --> <include path="$COMMON/path/to/included_waivers.xml"/> <!-The root tag must contain at least one waiver. The waiver tag must specify the NEW severity of the problems waived by this waiver; it can be one of ERROR, WARNING or DISABLED --> <waiver name="Optional short name of the waiver" severity="DISABLED"> <description>An optional verbose description of the waiver.</description> <!-Each waiver must contain at least one match tag. Each match tag must specify a message pattern, a path pattern or both. A match tag matches a problem if ALL specified patterns match. The waiver will waive a problem if ANY of the match tags matches. NOTE: path pattern is NOT matched against the project relative path patterns may contain * or ? wildcards --> <match © AMIQ 73 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com message="pattern to match against the problem's message" path="/pattern/to/match/against/the/problems/absolute/path"/> <match message="*message pattern*" path="/path/pattern*"/> <match message="*only by message*"/> <match path="/only/by/path*"/> </waiver> <!-- Further example waivers --> <waiver name="Disable by message" severity="DISABLED"> <description> This waiver disables all problems containing 'JUST_A_FOO_PROBLEM' inside their message. </description> <match message="*JUST_A_FOO_PROBLEM*"/> </waiver> <waiver name="Demote by path" severity="WARNING"> <description> This waiver turns into warnings all problems reported under '/path/to/foo' </description> <match path="/path/to/foo/*"/> </waiver> <waiver name="Promote by path OR message" severity="ERROR"> <description> This waiver turns into errors all problems that contain 'JUST_A_FOO_PROBLEM' inside their message OR were reported under '/path/to/foo'.</description> <match message="*JUST_A_FOO_PROBLEM*"/> <match path="/path/to/foo/*"/> </waiver> <waiver name="Disable by path AND message" severity="DISABLED"> <description> This waiver disables all problems that contain 'JUST_A_FOO_PROBLEM' inside their message AND were reported under '/path/to/foo'.</description> <match message="*JUST_A_FOO_PROBLEM*" path="/path/to/foo/*"/> </waiver> </waivers> 5.2 Semantic Checks ID Message Notes Preprocessing CYCLIC_INCLUDE Cyclic include detected Basic NON_EXISTING_INCLUDE_FILE No such file # Basic FAILED_TO_OPEN_INCLUDE_FILE Cannot open `include file # Basic MISMATCHED_ENDIF Expecting `endif label # found # Basic © AMIQ 74 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com CYCLIC_MACRO Cyclic define detected Basic UNDEFINED_MACRO Undefined macro name: # Basic REDEFINED_MACRO Redefinition of macro name # Basic WRONG_NUMBER_OF_MACRO_ARGUMENTS Number of macro instance parameters # not equal to macro define Basic parameters # Modules DUPLICATE_MODULE Duplicate module #, already declared at line # file # Extended Primitives DUPLICATE_PRIMITIVE Duplicate primitive #, already declared at line # file # Extended Interfaces DUPLICATE_INTERFACE Duplicate interface #, already declared at line # file # Extended Instances UNDECLARED_MODULE Instantiated module # is not declared Basic DUPLICATE_INSTANCE Duplicate instance #, already declared at line # file # Extended NOF_PORT_CONNECTIONS Expected # port connections, found # Extended NON_EXISTING_PORT Non existing port # of module # Extended MULTIPLE_PORT_CONNECTIONS Multiple connections to port # Extended IMPLICIT_PORT_CONNECTION Cannot infer implicit connection for port(s) # Basic NOT_IN_LIST_OF_PORTS # not in the list of # ports" Extended Packages DUPLICATE_PACKAGE Duplicate package #, already declared at line # file # Extended NON_EXISTING_PACKAGE Non existing package # Basic IMPORT_IN_CLASS Import statement not allowed within class scope Basic Typedefs DUPLICATE_TYPEDEF Duplicate typedef #, already declared at line # file # Extended Classes DUPLICATE_CLASS Duplicate class #, already declared at line # file # Extended EXTEND_NON_EXISTING_CLASS Non existing class # Basic CIRCULAR_INHERITANCE Class # extends itself Basic DUPLICATE_CONSTRUCTOR Duplicate constructor # already declared at line # file # Extended EXTERN_METHOD_UNDECLARED Outer class method # was not declared extern inside class # Basic Parameters DUPLICATE_PARAMETER Duplicate parameter #, already declared at line # file # Extended Nets, Variables, Fields, Properties © AMIQ 75 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com DUPLICATE_FIELD Duplicate field #, already declared at line # file # Extended UNDECLARED_PORT Port # direction declaration is missing Methods DUPLICATE_FUNCTION Duplicate function #, already declared at line # file # Extended DUPLICATE_TASK Duplicate task # already declared at line # file # Extended DUPLICATE_METHOD_IMPLEMENTATION Duplicate method implementation for #, already defined at line # Extended file # DUPLICATE_ARGUMENT Duplicate argument #, already declared at line # file # Extended DUPLICATE_VARIABLE Duplicate variable # already declared at line # file # Extended ILLEGAL_STATIC_VIRTUAL Illegal static virtual function/task declaration Extended Constraints DUPLICATE_CONSTRAINT Duplicate constraint #, already declared at line # file # Extended Events DUPLICATE_EVENT Duplicate event #, already declared at line # file # Extended Covergroups DUPLICATE_COVERGROUP Duplicate covergroup #, already declared at line # file # Extended DUPLICATE_COVERPOINT Duplicate coverpoint #, already declared at line # file # Extended DUPLICATE_COVER_CROSS Duplicate cover cross #, already declared at line # file # Extended Enumerations DUPLICATE_ENUM_LITERAL Duplicate enumeration literal #, already declared at line # file # Extended Programs DUPLICATE_PROGRAM Duplicate program #, already declared at line # file # Extended Checkers DUPLICATE_CHECKER Duplicate checker #, already declared at line # file # Extended Blocks DUPLICATE_NAMED_BLOCK Duplicate named block #, already declared at line # file # Extended DUPLICATE_CLOCKING Duplicate clocking block #, already declared at line # file # Extended Configurations UNDECLARED_CONFIGURATION Configuration # is not declared Basic UNDECLARED_LIBRARY Library # is not declared Basic UNDECLARED_DESIGN Top design # is not declared Basic UNDECLARED_CELL Cell # is not declared Basic Associated types (fields, variables, functions, etc.) © AMIQ 76 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com NON_EXISTING_TYPE Non existing type # Extended Hierarchical identifiers UNDECLARED_IDENTIFIER Identifier # is not declared Extended UNDECLARED_IDENTIFIER Identifier # is not a member of # Extended UNEXPECTED_IDENTIFIER Expecting function # but actual target is not a function Extended 5.3 Non Standard Checks ID Message Notes/ Examples ARGUMENTDynamic array 'new' used in wrong context ILLEGAL_NEW_DYNAMIC_ARRAY task too(input int a[] = new 1);...endtask ASSERTIONGlobal deferred immediate assertion item not allowed must be (0))) else ILLEGAL_GLOBAL_SCOPE_FOR_ASSERTION declared under the scope of a module or checker $error("some error"); ASSIGNMENT_PATTERNEmpty assignment pattern '{} not allowed MANDATORY_CONTENT x = '{}; ASSIGNMENT_PATTERNConcatenation used instead of assignment pattern for struct x = {a : '0, b : ILLEGAL_CONCATENATION initialization '1}; ATTRIBUTEAttribute instance 'const' specifier not allowed ILLEGAL_CONST_SPECIFIER (* const int full_case=1, parallel_case *) ATTRIBUTEAttribute instance 'const' specifier not allowed ILLEGAL_DATA_TYPE_SPECIFIER (* const int full_case=1, parallel_case *) ATTRIBUTEAttribute instance followed by ';' not allowed ILLEGAL_SEMI (* full_case, parallel_case; *) CASEEmpty case statement not allowed MANDATORY_BRANCHES case (x) endcase CASTMissing tick on type casting expression MANDATORY_TICK int(some_var) CONFIGURATIONMissing ';' after configuration rule statement MANDATORY_SEMI CONSTANT_EXPRESSIONInside expression should not be placed in constant expression ILLEGAL_INSIDE_OPERATOR © AMIQ 77 int y inside {b, c} ? 10 : 2 [a]; Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com CONSTRAINT'default' qualifier not allowed ILLEGAL_DEFAULT_QUALIFIER default constraint a {...} CONSTRAINT'hard' qualifier not allowed ILLEGAL_HARD_SOLVE_BEFORE solve before hard; CONSTRAINTDist expression enclosed in parentheses ILLEGAL_PAREN (x dist {100 := 1, 200 := 2, 300 := 5}) x y CONSTRAINTMisplaced 'soft' keyword should be placed before the expression constraint ILLEGAL_SOFT_KEYWORD deflt { length inside {32, 1024} soft; } CONSTRAINTSpace between : and = in a dist_weight ILLEGAL_SPACE_1 x dist { 100 : = 1, 200 : = 2, 300 : = 5} CONSTRAINTSpace between : and / in a dist_weight ILLEGAL_SPACE_2 x dist {100 : / 1, 200 : = 2, 300 : = 5} CONSTRUCTORUsing 'automatic' lifetime for class constructor ILLEGAL_LIFETIME function automatic new(...); COVER_BINS_IFFBins 'iff' expression without parentheses MANDATORY_PAREN bins a = { 0:63,65 } iff ana; COVER_BINS_SELECTION'wildcard' specification not allowed ILLEGAL_WILDCARD bit 3:0 a, b; covergroup cov @(posedge clk); aXb : cross a, b { wildcard bins i_zero = binsof(a) intersect { 0 }; } endgroup COVER_BINS_SELECTION_IFFBins selection 'iff' expression without parentheses MANDATORY_PAREN COVER_BINSOF_COVERPOINTHierarchical identifier not allowed for cover point specification ILLEGAL_HIERARCHICAL © AMIQ 78 binsof(x.cover_point_id.bin_ // correct is binsof(cover_point_id.bin_id Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks COVER_BINSOF_BINSelect used in bin identifier ILLEGAL_SELECT www.dvteclipse.com binsof(cover_point_id.bin_id 3) COVERCROSS_IFFCovercross 'iff' expression without parentheses MANDATORY_PAREN COVERPOINT_IFFCoverpoint 'iff' expression without parentheses MANDATORY_PAREN coverpoint a iff test; DATA_TYPEPacked dimension for integer atom type (byte, shortint, int, longint, int 1:0 a; ILLEGAL_PACKED_DIMENSION_FOR_NON_BIT integer, time). DATA_TYPE'$typeof' system task is not allowed ILLEGAL_TYPEOF $typeof(a) b; DATA_TYPEPacked dimension should use constant range instead of constant enum bit 1 ILLEGAL_CONSTANT_EXPRESSION_FOR_PACKED_DIMENSION expression. { A, B } foo; DATA_TYPEPackage scope in enum base type not allowed ILLEGAL_PACKAGE_SCOPE_IN_ENUM_BASE_TYPE package package_name;...typedef int id;...endpackage...typedef enum package_name::id {R,G,B} x; DATA_TYPEInteger vector type or identifier before packed dimension is typedef MANDATORY_TYPE_IDENTIFIER_IN_ENUM_BASE_TYPE required enum 1:0 {R,G,B} x; DELAY_EXPRIdentifier followed by bit-select or part-select requires parentheses always ... MANDATORY_PAREN #del 0 ok = 1; DISABLE_STATEMENT'class_name::' not allowed in disable statement construct" ILLEGAL_CLASS_SCOPE disable a_class::a; DPI_STRINGDPI_C/DPI_SC should be replaced by DPI-C/DPI-SC ILLEGAL_UNDERSCORE import "DPI_C" init_1 = function void moo() END_LABELClass scope 'class_scope::' before end label not allowed ILLEGAL_CLASS_SCOPE ... endfunction : class_scope::func_name EVENT_CONTROLSelect used in event control ILLEGAL_SELECT @u_m3_1.a 1; EVENT_TRIGGER'class_name::' not allowed in event trigger construct" ILLEGAL_CLASS_SCOPE -> a_class::a; FATAL_ELABORATION_SYSTEM_TASKExpecting 0, 1 or 2 as $fatal first argument ILLEGAL_FINISH_NUMBER $fatal(4, "Sorry"); FATAL_ELABORATION_SYSTEM_TASKFinish number missing in $fatal call MANDATORY_FINISH_NUMBER $fatal("Sorry"); © AMIQ 79 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com FIELD'static const' outside class scope ILLEGAL_STATIC_CONST_OUTSIDE_CLASS module m;...static const c;...endmodule FOR_LOOP-'for' loop initialization is not optional MANDATORY_INITIALIZATION for (;i<10; i+ +) begin end FOR_LOOP-Only variable assignments allowed as 'for' initialization statement for (+ ILLEGAL_INITIALIZATION +count;count<10; ++count) begin end FOR_LOOP-'for' loop conditional expression is not optional" MANDATORY_EXIT_CONDITION for (i=1;; i+ +) begin end FOR_LOOP-'for' loop step is not optional MANDATORY_STEP for (i=1;i<10;) begin end FOREACH_LOOPMultidimensional array select in foreach loop ILLEGAL_MULTIPLE_BRACKETS int A 2 3 4;...foreach(A i-1 pkg::j k) begin ... end FUNCTION-Missing 'function' keyword in prototype declaration" MANDATORY_FUNCTION_KEYWORD extern int f(); FUNCTION-Empty arguments list '()' not allowed when arguments declared task print(); ILLEGAL_EMPTY_ARGUMENTS_LIST inside function/task body" input string message; // task print; input string message is correct FUNCTION-'pure' qualifier not allowed before # class qualifier ILLEGAL_PURE_VIRTUAL_KEYWORD_ORDER pure local virtual function void foo(); // pure virtual local function foo() is correct. FUNCTION-Signing before data type ILLEGAL_SIGNING_BEFORE_RETURN_DATA_TYPE function unsigned int foo(); endfunction FUNCTION-'static' qualifier not allowed ILLEGAL_STATIC_QUALIFIER static function foo();...endfunction © AMIQ 80 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com FUNCTION-Extern function is not implemented MANDATORY_IMPLEMENTATION_OF_EXTERN FUNCTION-Extern function out-of-body declaration must be in the same scope function ILLEGAL_PACKAGE_SCOPE_FOR_EXTERN_IMPL as the class void a_package::a_class::a_functi FUNCTION-Extern global function not allowed ILLEGAL_EXTERN_DECLARATION_IN_GLOBAL_SCOPE extern foo(); int FUNCTION-Function prototype return data type or void missing MISSING_FUNCTION_RETURN_DATA_TYPE_OR_VOID function doCheck(); FUNCTION-Range selection of randomize argument 'arg_name' not allowed ILLEGAL_SELECT_ON_RANDOMIZE_ARGUMENT std::randomize(rand_var 7:0) with {...}; FUNCTION-Hierarchical interface identifier 'id1.id2' not allowed ILLEGAL_HIERARCHICAL_INTERFACE_IDENTIFIER task id1.id2.id3(); GENERATE_BEGIN'begin/end' generate block in module or interface ILLEGAL_IN_MODULE_OR_INTF GENERATE_BEGIN'begin/end' generate block in program ILLEGAL_IN_PROGRAM IDENTIFIERReserved keyword # used as an identifier ILLEGAL_IT_IS_A_RESERVED_KEYWORD instance, restrict, checker, table, cell, config, design IFDEF`ifdef, `ifndef, `elsif must be followed by an identifier instead of MANDATORY_IDENTIFIER '`<defined_name>' INSIDE_OPERATORThe value range after inside should be placed between curly braces if ( a inside MANDATORY_CURLY_BRACES {} x) LVALUE- Hierarchical name using subroutine call not allowed ILLEGAL_METHOD_CALL_IN_HIERARCIHCAL_IDENTIFIER $root.m4.foo().y = 10; MODPORT- Hierarchical identifier not allowed in modport port declaration ILLEGAL_HIERARCHICAL_IDENTIFIER interface i2; wire clk; wire gnt; clocking sb @(posedge clk); output gnt; endclocking modport master (output sb.gnt);endinterface MODPORT- .* used in modport import/export declaration ILLEGAL_DOT_STAR_IMPORT_EXPORT interface i2; wire clk; © AMIQ 81 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com task masterRead(input logic 7:0 raddr); endtask clocking sb @(posedge clk); endclocking modport master (import sb.*);endinterface MODPORT- Missing modport port s declaration MISSING_PORTS_DECLARATION modport mp_name(); MODULE- Missing instance name in instantiation of '<module_name>' MANDATORY_INSTANCE_NAME module top(input i, output o); m1(.i(i), .o(o)); endmodule module m1(input i, output o); endmodule PACKAGE- Misplaced initial block construct ILLEGAL_INITIAL_BLOCK package p1;initial begin end;endpackage PARAMETER_ASSIGNMENTUnsized dimension is not allowed in parameter assignment ILLEGAL_UNSIZED_DIMENSION parameter logic flag1[] = '{2}; localparam logic flag2[] = '{2}; PARAMETER_ASSIGNMENTParameter value not enclosed in parentheses MANDATORY_PAREN module m #(P1=1) ();endmodule module top();m # 3 u_m();endmodule PARAMETER_ASSIGNMENTEmpty ordered parameter assignment MANDATORY_WHEN_ORDERED xmm_atomic_gen #(transaction, ,"Atomic Gen") msg_rx_gen; PORT_CONNECTIONImplicit port connection '.*' cannot appear more than once in the m SINGLE_IMPLICIT_CONNECTION port list u_m(.*, .*) © AMIQ 82 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 5. Compile Checks www.dvteclipse.com PRIMITIVE_OUTPUT_TERMINALPrimitive output terminal enclosed in parentheses ILLEGAL_PAREN nor (highz1,strong0) n1((out1),in1,in2); PRIMITIVE_INOUT_TERMINALPrimitive inout terminal enclosed in parentheses ILLEGAL_PAREN tranif0 ti0 (x, (y), z); PROPERTY-Missing ';' after property statement MANDATORY_SEMI -> b endproperty REPLICATION_OPERATORRange multiple concatenation not allowed ILLEGAL_RANGE {2:3{1}} SPECIFY- Missing timing check limits not allowed MANDATORY_SETUPHOLD_TIMING_CHECK_LIMITS $setuphold( posedge clk, data); SPECIFY- Null $width arg MANDATORY_WIDTH_ARGUMENTS $width( negedge clr, lim, , notif ); SPECIFY- Parallel path description list of inputs not allowed ILLEGAL_LIST_OF_SOURCE_IN_PARALLEL_PATH (in1,in2 => q 1) = 1; STRING- Use '\\' in order to continue to the next line MANDATORY_BACKSLASH_FOR_NEXT_LINE string my_s = "string is splitted on multiple lines"; STREAM_CONCATENATIONPacked dimension on stream concatenation simple type SIMPLE_TYPE_PACKED_DIMENSION result = { >> bit 7:0 { variable_name } }; TASKExtern task is not implemented MANDATORY_IMPLEMENTATION_OF_EXTERN TASKExtern task out-of-body declaration must be in the same scope as ILLEGAL_PACKAGE_SCOPE_FOR_EXTERN_IMPL the class TEMPORAL_GOTO_OR_NON_CONSECUTIVE_REPEAT_OPERATORGoto repeat '[->' and non-consecutive repeat '[=' operators take ILLEGAL_SYNTAX boolean expressions only TIME_UNITS_AND_PRECISIONThe unsigned number or fixed point number in time literal shall timeunit 10 ILLEGAL_SPACE not be followed by whitespace ps; TYPEDEF- Typedef covergroup ILLEGAL_COVERGROUP typedef covergroup my_coverg; WILD_EQUALITY_OPERATORWild equality operator '=?=' not standard, use '==?' instead. ILLEGAL_SYNTAX WILD_EQUALITY_NOT_OPERATORWild equality not operator '!?=' not standard, use '!=?' instead. ILLEGAL_SYNTAX USELIB_DIRECTIVEVerilog-XL directive `uselib non standard, use -y, -v, and +libext ILLEGAL_SYNTAX command line flags instead. © AMIQ 83 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 6. Content Assist (Autocomplete) Content assist (autocomplete) can be triggered explicitly if you press Ctrl+Space in any code context. Some of the contexts when content assist is triggered automatically as you type are: • when you type a dot (.) for accessing a struct member (field, method etc) as in bfm.do_write() • when you type a compare (==) in an expression as in if (mode == Proposals are presented in a list for you to choose from. Moving through proposals you can quickly see the related documentation. Press Enter or click to select a proposal or Esc to cancel the assist. © AMIQ 84 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 6. Content Assist (Autocomplete) www.dvteclipse.com Sometimes autocomplete has many proposals that are split in several categories: 1. the first one is for things you can access in a scope (wires, regs, functions, tasks etc. depending on the enclosing scope) 2. the second one is for code templates 3. the third one is for other things, like module instances If you press Ctrl+Space the first time, you'll see a small indication in the proposals pop-up window at the bottom, something like "Press Ctrl+Space again to see template proposals". Pressing Ctrl+Space cycles through the categories above. 6.1 Content assist for CamelCase and Underscore You can quickly filter the proposals list by using capital letters or underscores as anchors like the the examples below: Variable Name Substrings that do find variable Substrings that don't find the variable uvmTestDoneObjectionBase uTesDonObj, DoneObj, TDOB estDone, tionBase uvm_test_done_objection_base uv_te_d_o_b, t_d_o, TDO ne_objection uvm_TESTDone_objectionBASE uv_T_D_o_b, TESDOB test_done_objection_base, ESTDone_, one_objection Natural behavior with ignore case turned on or off. 6.2 Code Templates Code templates are presented in content assist. Press the first letters from the template name then click Ctrl+Space twice to get a list of available templates. © AMIQ 85 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 6. Content Assist (Autocomplete) www.dvteclipse.com 6.3 Module Automatic Instantiation You need to type the first letters of the module name, then press Ctrl+Space three (3) times. You can recognize module instances by their icon, it looks like a chip with ports ready to be glued in. © AMIQ 86 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 6. Content Assist (Autocomplete) www.dvteclipse.com 6.4 Override Functions Using Autocomplete Write function or task and then press Ctrl + Space and a list with all available methods will pop-up. You can type the first letters of the method's name to filter out the list. © AMIQ 87 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 7. Content Filters Apply Content Filters to remove irrelevant information displayed in views. See Content Filters Examples for a list of use cases and examples. Toggle the content filtering functionality (on/off) with this toolbar button: . All views have a special indication that is: • enabled if some content has been filtered • disabled if no content has been filtered or content filters off For example in Types View: By default, elements from the UVM, OVM and VMM libraries are filtered. See Predefined Content Filters for details. You can define custom Content Filters in the .dvt/content_filters.xml file. To quickly create .dvt/content_filters.xml with some example filters, right click on the project and go to New > DVT Content Filters XML. See Content Filters XML syntax. 7.1 Content Filters XML syntax The .dvt/content_filters.xml file contains filter definitions using the syntax documented below. When editing .dvt/content_filters.xml you can use Autocomplete by pressing Ctrl + Space. Any errors encountered while loading the .dvt/content_filters.xml are reported in the DVT Internal Build Console. <!-XML file header; required. --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE content-filters PUBLIC "-//DVT//content_filters" "content_filters.dtd" > <!-Root tag; required. Version attribute is required. The latest syntax version, illustrated by this example, is version 1. --> © AMIQ 88 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <content-filters version="1"> <!-The root tag must contain at least one filter. An element is filtered if it matches all the filters. The filter tag must specify the kind="HIDE" attribute. The filter tag may specify a name attribute. --> <filter kind="HIDE" name="Filter name"> <description>An optional verbose description of the filter.</description> <!-Each filter must specify at least one of the following tags: path-set, element-text-set or element-type-set --> <!-The path-set tag must specify a match attribute. If match="TRUE" the set comprises of the enumerated paths (see below). If match="FALSE" the set comprises any path except the enumerated ones (see below). An element (problem, task, type, function, macro etc) matches the path-set if it is defined/introduced in a file within the path-set. The path-set tag may specify an apply-to-macro-call-stack attribute. By default apply-to-macro-call-stack="FALSE". If apply-to-macro-call-stack="TRUE" an element introduced by a macro call will match the path set if the macro matches the path-set. --> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <!-A path-set must contain at least a path attribute. The path tag must specify a pattern attribute. The pattern may contain wildcards ? (any character) and * (any sequence of characters). The pattern may contain environment variables. You may not use variables defined in build configuration files using +dvt_env+ directive. The path tag may specify an include-children attribute. By default include-children="FALSE". If include-children="TRUE" any file `included (SystemVerilog) or imported (e Language) directly or indirectly by a file matching the pattern, is also part of the path-set. --> <path pattern="*/uvm_pkg.sv" include-children="TRUE" /> <path pattern="*/vr_ad_top.e" include-children="TRUE" /> </path-set> <!-The element-text-set tag must specify a match attribute. If match="TRUE", an element matches the set if it matches any element-text tag. © AMIQ 89 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com If match="FALSE", an element matches the set if it does not match any element-text tag. An element (problem, task, type, function, macro etc) matches the text-set if its displayed label matches the text-set. --> <element-text-set match="TRUE"> <!-An element-text-set must contain at least one element-text tag. The element-text tag must specify a pattern attribute. The pattern may contain wildcards ? (any character) and * (any sequence of characters). --> <element-text pattern="_internal_*"/> </element-text-set> <!-The element-type-set tag must specify a match attribute. If match="TRUE", an element matches if it matches any element-type tag. If match="FALSE", an element matches if it does not match any element-type tag. --> <element-type-set match="TRUE"> <!-An element-type-set must contain at least one element-type tag. The element-type tag must specify the name attribute. Valid values for the element-type name are: COVER, EVENT, ONEVENT, EXPECT, MACRO, METHOD, METHOD_TYPE, SCALAR_TYPE, STRUCT, ACTION_BLOCK, ASSERT_EXPECT, CHECKER, CLASS, CLOCKING_BLOCK, CONSTRAINT, COVERGROUP, COVERPOINT, COVERCROSS, FIELD, FUNCTION, GENERATE_BLOCK, INTERFACE, MODPORT, MODULE, PACKAGE, PRIMITIVE, PROGRAM, PROPERTY_SEQUENCE, TYPE_ALIAS, PARAMETER, TYPE_PARAMETER, ARCHITECTURE, BLOCK, COMPONENT, ENTITY, PACKAGE_BODY, CONFIGURATION, INSTANCE, SIGNAL, PORT, PROCESS, VARIABLE, TYPE The element-type tag may specify a language attribute which helps to fully identify an element which is valid in multiple languages (for example STRUCT is a valid element type both in SystemVerilog and e Language) The valid values for the language attribute are: E, SV and VHDL. --> <element-type name="STRUCT" language="SV" /> </element-type-set> <!-Each filter may specify a view-set tag. If view-set is not specified, the filter applies to all views. The view-set tag must specify a match attribute. If match="TRUE" the set comprises of the enumerated views (see below). If match="FALSE" the set comprises all views except the enumerated ones (see below). --> <view-set match="TRUE"> <!-© AMIQ 90 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com A view-set must contain at least one view tag. The view tag must specify the name attribute. Possible values for the name attribute are: DESIGN_HIERARCHY, DIAGRAM, TYPE_HIERARCHY_MEMBERS, MACRO, OUTLINE, PROBLEMS, SEARCH, T TYPES_MEMBERS, UVM_BROWSER_CLASSES, UVM_BROWSER_MEMBERS --> <view name="TASKS" /> </view-set> </filter> </content-filters> 7.2 Content Filters Examples • Hide the Types, Tasks and Problems from a library <filter kind="HIDE" name="Base classes"> <description>Hide the Types, Tasks and Problems from /path/to/my_base_classes</description> <view-set match="TRUE"> <view name="TYPES" /> <view name="TASKS" /> <view name="PROBLEMS" /> </view-set> <path-set match="TRUE"> <path pattern="/path/to/my_base_classes/*" /> </path-set> </filter> • Hide the Tasks and Problems from a library <filter kind="HIDE" name="My library"> <description>Hide the Tasks and Problems from files included by my_library_top.svh</description> <view-set match="TRUE"> <view name="TASKS" /> <view name="PROBLEMS" /> </view-set> <path-set match="TRUE"> <path include-children="TRUE" pattern="*/my_library_top.svh" /> </path-set> </filter> • Hide from Outline View the functions and fields introduced by specific macros <filter kind="HIDE" name="Noisy macros"> <description>Hide from Outline View the functions and fields introduced by macros defined in files under <view-set match="TRUE"> <view name="OUTLINE" /> </view-set> <path-set apply-to-macro-call-stack="TRUE" match="TRUE"> <path pattern="$MY_MACROS_LIBRARY/*" /> © AMIQ 91 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com </path-set> <element-type-set match="TRUE"> <element-type name="FUNCTION"/> <element-type name="FIELD"/> </element-type-set> </filter> • See only tasks that contain REVIEW_FIRST from a library <filter kind="HIDE" name="REVIEW_FIRST tasks"> <description>Hide the tasks that don't contain REVIEW_FIRST from /path/to/my_in_progress_folder</de <view-set match="TRUE"> <view name="TASKS" /> </view-set> <path-set match="TRUE"> <path pattern="/path/to/my_in_progress_folder/*" /> </path-set> <element-text-set match="FALSE"> <element-text pattern="*REVIEW_FIRST*"/> </element-text-set> </filter> 7.3 Predefined Content Filters By default, elements defined in the UVM, OVM and VMM libraries are filtered out by Predefined Content Filters from the following views: • Design Hierarchy • Diagram • Macros (and Quick Macros) • Outline (and Quick Outline) • Problems • Search • Tasks • Type Hierarchy (Members Panel) • Types (and Quick Types) • UVM Browser (Classes and Members Panels) You can easily enable/disable Predefined Content Filters form the preference page: menu Window > Preferences then DVT > Content Filters. © AMIQ 92 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com The Predefined Content Filters definitions are: <filter kind="HIDE"> <view-set match="TRUE"> <view name="DESIGN_HIERARCHY"/> <view name="OUTLINE"/> <view name="PROBLEMS"/> <view name="SEARCH"/> <view name="TASKS"/> <view name="TYPES"/> <view name="TYPE_HIERARCHY_MEMBERS"/> <view name="UVM_BROWSER_CLASSES"/> <view name="UVM_BROWSER_MEMBERS"/> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/ovm.svh" /> <path include-children="TRUE" pattern="*/ovm_pkg.sv" /> <path include-children="TRUE" pattern="*/ovm_e_top.e" /> </path-set> </filter> <filter kind="HIDE"> <view-set match="TRUE"> <view name="DESIGN_HIERARCHY"/> <view name="OUTLINE"/> <view name="PROBLEMS"/> <view name="SEARCH"/> <view name="TASKS"/> <view name="TYPES"/> <view name="TYPE_HIERARCHY_MEMBERS"/> <view name="UVM_BROWSER_CLASSES"/> <view name="UVM_BROWSER_MEMBERS"/> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/uvm.svh" /> <path include-children="TRUE" pattern="*/uvm_pkg.sv" /> <path include-children="TRUE" pattern="*/uvm_e_top.e" /> </path-set> </filter> <filter kind="HIDE"> <view-set match="TRUE"> <view name="DESIGN_HIERARCHY"/> <view name="OUTLINE"/> <view name="PROBLEMS"/> <view name="SEARCH"/> <view name="TASKS"/> <view name="TYPES"/> <view name="TYPE_HIERARCHY_MEMBERS"/> © AMIQ 93 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <view name="UVM_BROWSER_CLASSES"/> <view name="UVM_BROWSER_MEMBERS"/> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/vmm.sv" /> </path-set> </filter> <filter name="OVM Predefined Diagram Filter" kind="HIDE"> <view-set match="TRUE"> <view name="DIAGRAM" /> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/ovm.svh" /> <path include-children="TRUE" pattern="*/ovm_pkg.sv" /> <path include-children="TRUE" pattern="*/ovm_e_top.e" /> </path-set> <element-type-set match="FALSE"> <element-type name="CLASS" language="E"/> <element-type name="CLASS" language="SV"/> </element-type-set> </filter> <filter name="UVM Predefined Diagram Filter" kind="HIDE"> <view-set match="TRUE"> <view name="DIAGRAM" /> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/uvm.svh" /> <path include-children="TRUE" pattern="*/uvm_pkg.sv" /> <path include-children="TRUE" pattern="*/uvm_e_top.e" /> </path-set> <element-type-set match="FALSE"> <element-type name="CLASS" language="E"/> <element-type name="CLASS" language="SV"/> </element-type-set> </filter> <filter name="VMM Predefined Diagram Filter" kind="HIDE"> <view-set match="TRUE"> <view name="DIAGRAM" /> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/vmm.sv" /> </path-set> <element-type-set match="FALSE"> <element-type name="CLASS" language="E"/> <element-type name="CLASS" language="SV"/> </element-type-set> © AMIQ 94 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com </filter> <filter name="UVM Predefined Macros View Filter" kind="HIDE"> <view-set match="TRUE"> <view name="MACRO" /> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/uvm.svh" /> <path include-children="TRUE" pattern="*/uvm_pkg.sv" /> </path-set> <element-text-set match="FALSE"> <element-text pattern="uvm_info" /> <element-text pattern="uvm_warning" /> <element-text pattern="uvm_error" /> <element-text pattern="uvm_fatal" /> <element-text pattern="uvm_info_context" /> <element-text pattern="uvm_warning_context" /> <element-text pattern="uvm_error_context" /> <element-text pattern="uvm_fatal_context" /> <element-text pattern="uvm_field_utils_begin" /> <element-text pattern="uvm_field_utils_end" /> <element-text pattern="uvm_object_utils" /> <element-text pattern="uvm_object_param_utils" /> <element-text pattern="uvm_object_utils_begin" /> <element-text pattern="uvm_object_param_utils_begin" /> <element-text pattern="uvm_object_utils_end" /> <element-text pattern="uvm_component_utils" /> <element-text pattern="uvm_component_param_utils" /> <element-text pattern="uvm_component_utils_begin" /> <element-text pattern="uvm_component_param_utils_begin" /> <element-text pattern="uvm_component_end" /> <element-text pattern="uvm_object_registry" /> <element-text pattern="uvm_component_registry" /> <element-text pattern="uvm_field_int" /> <element-text pattern="uvm_field_object" /> <element-text pattern="uvm_field_string" /> <element-text pattern="uvm_field_enum" /> <element-text pattern="uvm_field_real" /> <element-text pattern="uvm_field_event" /> <element-text pattern="uvm_field_sarray_int" /> <element-text pattern="uvm_field_sarray_object" /> <element-text pattern="uvm_field_sarray_string" /> <element-text pattern="uvm_field_sarray_enum" /> <element-text pattern="uvm_field_array_int" /> <element-text pattern="uvm_field_array_object" /> <element-text pattern="uvm_field_array_string" /> <element-text pattern="uvm_field_array_enum" /> <element-text pattern="uvm_field_queue_int" /> © AMIQ 95 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <element-text pattern="uvm_field_queue_object" /> <element-text pattern="uvm_field_queue_string" /> <element-text pattern="uvm_field_queue_enum" /> <element-text pattern="uvm_field_aa_int_string" /> <element-text pattern="uvm_field_aa_object_string" /> <element-text pattern="uvm_field_aa_string_string" /> <element-text pattern="uvm_field_aa_object_int" /> <element-text pattern="uvm_field_aa_int_int" /> <element-text pattern="uvm_field_aa_int_int_unsigned" /> <element-text pattern="uvm_field_aa_int_integer" /> <element-text pattern="uvm_field_aa_int_integer_unsigned" /> <element-text pattern="uvm_field_aa_int_byte" /> <element-text pattern="uvm_field_aa_int_byte_unsigned" /> <element-text pattern="uvm_field_aa_int_shortint" /> <element-text pattern="uvm_field_aa_int_shortint_unsigned" /> <element-text pattern="uvm_field_aa_int_longint" /> <element-text pattern="uvm_field_aa_int_longint_unsigned" /> <element-text pattern="uvm_field_aa_int_key" /> <element-text pattern="uvm_field_aa_int_enumkey" /> <element-text pattern="uvm_record_attribute" /> <element-text pattern="uvm_record_field" /> <element-text pattern="uvm_pack_intN" /> <element-text pattern="uvm_pack_enumN" /> <element-text pattern="uvm_pack_sarrayN" /> <element-text pattern="uvm_pack_arrayN" /> <element-text pattern="uvm_pack_queueN" /> <element-text pattern="uvm_pack_int" /> <element-text pattern="uvm_pack_enum" /> <element-text pattern="uvm_pack_string" /> <element-text pattern="uvm_pack_real" /> <element-text pattern="uvm_pack_sarray" /> <element-text pattern="uvm_pack_array" /> <element-text pattern="uvm_pack_queue" /> <element-text pattern="uvm_unpack_intN" /> <element-text pattern="uvm_unpack_enumN" /> <element-text pattern="uvm_unpack_sarrayN" /> <element-text pattern="uvm_unpack_arrayN" /> <element-text pattern="uvm_unpack_queueN" /> <element-text pattern="uvm_unpack_int" /> <element-text pattern="uvm_unpack_enum" /> <element-text pattern="uvm_unpack_string" /> <element-text pattern="uvm_unpack_real" /> <element-text pattern="uvm_unpack_sarray" /> <element-text pattern="uvm_unpack_array" /> <element-text pattern="uvm_unpack_queue" /> <element-text pattern="uvm_create" /> <element-text pattern="uvm_do" /> <element-text pattern="uvm_do_pri" /> © AMIQ 96 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <element-text pattern="uvm_do_with" /> <element-text pattern="uvm_do_pri_with" /> <element-text pattern="uvm_create_on" /> <element-text pattern="uvm_do_on" /> <element-text pattern="uvm_do_on_pri" /> <element-text pattern="uvm_do_on_with" /> <element-text pattern="uvm_do_on_pri_with" /> <element-text pattern="uvm_send" /> <element-text pattern="uvm_send_pri" /> <element-text pattern="uvm_rand_send" /> <element-text pattern="uvm_rand_send_pri" /> <element-text pattern="uvm_rand_send_with" /> <element-text pattern="uvm_rand_send_pri_with" /> <element-text pattern="uvm_declare_p_sequencer" /> <element-text pattern="uvm_register_cb" /> <element-text pattern="uvm_set_super_type" /> <element-text pattern="uvm_do_callbacks" /> <element-text pattern="uvm_do_obj_callbacks" /> <element-text pattern="uvm_do_callbacks_exit_on" /> <element-text pattern="uvm_do_obj_callbacks_exit_on" /> <element-text pattern="uvm_blocking_put_imp_decl" /> <element-text pattern="uvm_nonblocking_put_imp_decl" /> <element-text pattern="uvm_put_imp_decl" /> <element-text pattern="uvm_blocking_get_imp_decl" /> <element-text pattern="uvm_nonblocking_get_imp_decl" /> <element-text pattern="uvm_get_imp_decl" /> <element-text pattern="uvm_blocking_peek_imp_decl" /> <element-text pattern="uvm_nonblocking_peek_imp_decl" /> <element-text pattern="uvm_peek_imp_decl" /> <element-text pattern="uvm_blocking_get_peek_imp_decl" /> <element-text pattern="uvm_nonblocking_get_peek_imp_decl" /> <element-text pattern="uvm_get_peek_imp_decl" /> <element-text pattern="uvm_blocking_master_imp_decl" /> <element-text pattern="uvm_nonblocking_master_imp_decl" /> <element-text pattern="uvm_master_imp_decl" /> <element-text pattern="uvm_blocking_slave_imp_decl" /> <element-text pattern="uvm_nonblocking_slave_imp_decl" /> <element-text pattern="uvm_slave_imp_decl" /> <element-text pattern="uvm_blocking_transport_imp_decl" /> <element-text pattern="uvm_nonblocking_transport_imp_decl" /> <element-text pattern="uvm_transport_imp_decl" /> <element-text pattern="uvm_analysis_imp_decl" /> <element-text pattern="UVM_REG_ADDR_WIDTH" /> <element-text pattern="UVM_REG_DATA_WIDTH" /> <element-text pattern="UVM_REG_BYTENABLE_WIDTH" /> <element-text pattern="UVM_REG_CVR_WIDTH" /> <element-text pattern="UVM_DEFAULT_TIMEOUT" /> <element-text pattern="UVM_MAX_STREAMBITS" /> © AMIQ 97 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <element-text pattern="UVM_PACKER_MAX_BYTES" /> <element-text pattern="UVM_TLM_B_MASK" /> <element-text pattern="UVM_TLM_B_TRANSPORT_IMP" /> <element-text pattern="UVM_TLM_FUNCTION_ERROR" /> <element-text pattern="UVM_TLM_NB_BW_MASK" /> <element-text pattern="UVM_TLM_NB_FW_MASK" /> <element-text pattern="UVM_TLM_NB_TRANSPORT_BW_IMP" /> <element-text pattern="UVM_TLM_NB_TRANSPORT_FW_IMP" /> <element-text pattern="UVM_TLM_TASK_ERROR" /> </element-text-set> </filter> <filter name="OVM Predefined Macros View Filter" kind="HIDE"> <view-set match="TRUE"> <view name="MACRO" /> </view-set> <path-set match="TRUE" apply-to-macro-call-stack="TRUE"> <path include-children="TRUE" pattern="*/ovm.svh" /> <path include-children="TRUE" pattern="*/ovm_pkg.sv" /> </path-set> <element-text-set match="FALSE"> <element-text pattern="ovm_phase_func_decl" /> <element-text pattern="ovm_phase_task_decl" /> <element-text pattern="ovm_phase_func_topdown_decl" /> <element-text pattern="ovm_phase_func_bottomup_decl" /> <element-text pattern="ovm_phase_task_topdown_decl" /> <element-text pattern="ovm_phase_task_bottomup_decl" /> <element-text pattern="ovm_info" /> <element-text pattern="ovm_warning" /> <element-text pattern="ovm_error" /> <element-text pattern="ovm_fatal" /> <element-text pattern="ovm_field_utils_begin" /> <element-text pattern="ovm_field_utils_end" /> <element-text pattern="ovm_object_utils" /> <element-text pattern="ovm_object_param_utils" /> <element-text pattern="ovm_object_utils_begin" /> <element-text pattern="ovm_object_param_utils_begin" /> <element-text pattern="ovm_object_utils_end" /> <element-text pattern="ovm_component_utils" /> <element-text pattern="ovm_component_param_utils" /> <element-text pattern="ovm_component_utils_begin" /> <element-text pattern="ovm_component_param_utils_begin" /> <element-text pattern="ovm_component_end" /> <element-text pattern="ovm_field_int" /> <element-text pattern="ovm_field_object" /> <element-text pattern="ovm_field_string" /> <element-text pattern="ovm_field_enum" /> <element-text pattern="ovm_field_real" /> © AMIQ 98 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <element-text pattern="ovm_field_event" /> <element-text pattern="ovm_field_sarray_int" /> <element-text pattern="ovm_field_sarray_object" /> <element-text pattern="ovm_field_sarray_string" /> <element-text pattern="ovm_field_sarray_enum" /> <element-text pattern="ovm_field_array_int" /> <element-text pattern="ovm_field_array_object" /> <element-text pattern="ovm_field_array_string" /> <element-text pattern="ovm_field_array_enum" /> <element-text pattern="ovm_field_queue_int" /> <element-text pattern="ovm_field_queue_object" /> <element-text pattern="ovm_field_queue_string" /> <element-text pattern="ovm_field_queue_enum" /> <element-text pattern="ovm_field_aa_int_string" /> <element-text pattern="ovm_field_aa_object_string" /> <element-text pattern="ovm_field_aa_string_string" /> <element-text pattern="ovm_field_aa_object_int" /> <element-text pattern="ovm_field_aa_int_int" /> <element-text pattern="ovm_field_aa_int_int_unsigned" /> <element-text pattern="ovm_field_aa_int_integer" /> <element-text pattern="ovm_field_aa_int_integer_unsigned" /> <element-text pattern="ovm_field_aa_int_byte" /> <element-text pattern="ovm_field_aa_int_byte_unsigned" /> <element-text pattern="ovm_field_aa_int_shortint" /> <element-text pattern="ovm_field_aa_int_shortint_unsigned" /> <element-text pattern="ovm_field_aa_int_longint" /> <element-text pattern="ovm_field_aa_int_longint_unsigned" /> <element-text pattern="ovm_field_aa_int_key" /> <element-text pattern="ovm_field_aa_int_enumkey" /> <element-text pattern="ovm_declare_p_sequencer" /> <element-text pattern="ovm_sequence_utils_begin" /> <element-text pattern="ovm_sequence_utils_end" /> <element-text pattern="ovm_sequence_utils" /> <element-text pattern="ovm_update_sequence_lib" /> <element-text pattern="ovm_update_sequence_lib_and_item" /> <element-text pattern="ovm_sequencer_utils" /> <element-text pattern="ovm_sequencer_utils_begin" /> <element-text pattern="ovm_sequencer_param_utils" /> <element-text pattern="ovm_sequencer_param_utils_begin" /> <element-text pattern="ovm_sequencer_utils_end" /> <element-text pattern="ovm_create" /> <element-text pattern="ovm_do" /> <element-text pattern="ovm_do_pri" /> <element-text pattern="ovm_do_with" /> <element-text pattern="ovm_do_pri_with" /> <element-text pattern="ovm_send" /> <element-text pattern="ovm_send_pri" /> <element-text pattern="ovm_rand_send" /> © AMIQ 99 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 7. Content Filters www.dvteclipse.com <element-text pattern="ovm_rand_send_pri" /> <element-text pattern="ovm_rand_send_with" /> <element-text pattern="ovm_rand_send_pri_with" /> <element-text pattern="ovm_create_on" /> <element-text pattern="ovm_do_on" /> <element-text pattern="ovm_do_on_pri" /> <element-text pattern="ovm_do_on_with" /> <element-text pattern="ovm_do_on_pri_with" /> <element-text pattern="ovm_blocking_put_imp_decl" /> <element-text pattern="ovm_nonblocking_put_imp_decl" /> <element-text pattern="ovm_put_imp_decl" /> <element-text pattern="ovm_blocking_get_imp_decl" /> <element-text pattern="ovm_nonblocking_get_imp_decl" /> <element-text pattern="ovm_get_imp_decl" /> <element-text pattern="ovm_blocking_peek_imp_decl" /> <element-text pattern="ovm_nonblocking_peek_imp_decl" /> <element-text pattern="ovm_peek_imp_decl" /> <element-text pattern="ovm_blocking_get_peek_imp_decl" /> <element-text pattern="ovm_nonblocking_get_peek_imp_decl" /> <element-text pattern="ovm_get_peek_imp_decl" /> <element-text pattern="ovm_blocking_master_imp_decl" /> <element-text pattern="ovm_nonblocking_master_imp_decl" /> <element-text pattern="ovm_master_imp_decl" /> <element-text pattern="ovm_blocking_slave_imp_decl" /> <element-text pattern="ovm_nonblocking_slave_imp_decl" /> <element-text pattern="ovm_slave_imp_decl" /> <element-text pattern="ovm_blocking_transport_imp_decl" /> <element-text pattern="ovm_nonblocking_transport_imp_decl" /> <element-text pattern="ovm_transport_imp_decl" /> <element-text pattern="ovm_analysis_imp_decl" /> <element-text pattern="ovm_do_callbacks" /> <element-text pattern="ovm_do_obj_callbacks" /> <element-text pattern="ovm_do_callbacks_exit_on" /> <element-text pattern="ovm_do_obj_callbacks_exit_on" /> <element-text pattern="ovm_do_task_callbacks" /> <element-text pattern="ovm_do_ext_task_callbacks" /> </element-text-set> </filter> © AMIQ 100 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 8. Code Templates 8.1 Code Templates in Autocomplete Type the first letters from the code template name, then press Ctrl+Space twice to see code template proposals. Proposals are suggested using Global Code Templates and Project Level Code Templates. SystemVerilog: e Language: VHDL: © AMIQ 101 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 8. Code Templates www.dvteclipse.com 8.2 Global Code Templates To see the list of global code templates go to menu Window > Preferences then select the DVT > Code Templates preference page. Click the New button to define a new template. NOTE: The template name is important for autocomplete proposal filtering based on already typed text! See more details here. 8.3 Project Level Code Templates Project level code templates are available in autocomplete only for the respective project. You cannot use them in other projects - as opposed to Global Code Templates. © AMIQ 102 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 8. Code Templates www.dvteclipse.com To see the list of project level code templates Right-click on a project in Navigator > Properties > DVT > Code Templates. Click the New button to define a new template. NOTE: The template name is important for autocomplete proposal filtering based on already typed text! See more details here. After selecting a template, press Enter and it is automatically inserted at the current position in the active editor. 8.4 Code Templates View The Code Templates is located near the Navigator and Hierarchy views or you can open it from Window > Show View > Other... > DVT > Code Templates. To insert a template in a code editor, you can either: © AMIQ 103 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 8. Code Templates www.dvteclipse.com • drag and drop it in the editor at a specific location • double click on it • click on Insert into editor button • right-click on it > Insert Note: if you choose one of the last three actions mentioned above, the template will be inserted in the current editor at the current cursor's positon. Please make sure you have an opened editor and the cursor is at the right position before adding the template!' 1. Insert the selected template into the current editor 2. Create a new template 3. Edit the selected template 4. Remove the selected template ( NOTE: you cannot undo this operation!) 5. Refresh the view (if it doesn't automatically update when you modify templates/projects etc.) 6. Collapse/expand all 7. Filter templates (you can filter them by: nature, context, name, project, description) 8. Templates' natures © AMIQ 104 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 8. Code Templates www.dvteclipse.com 9. A global template 10.A project template 11.Templates' contexts 12.Preview the template's pattern (it automatically updates when clicking on a template) To create a new template, click on Create a New Template button on the toolbar: 1. Template's name 2. Check Automatically insert if you want the template to expand automatically on ctrl-space when there is no other matching template available. It is usually good idea to leave the checkbox checked, otherwise you would get a template proposal "popup" 3. Each template must be created under a project available in the current workspace (select ['' ''global ] for a global template) 4. Assign a nature - only natures relevant to the selected project will be displayed 5. Template's context - only contexts relevant to the selected nature will be displayed 6. Templates's description 7. Code Pattern - embed variables in ${} e.g. ${ variable_name} to enable the template proposal wizard when inserting the template into an editor 8. Insert variables - here you can find some useful misc. predefined variables © AMIQ 105 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 9. File Templates Whenever you create a new file using the New File Wizard, you can pick a file template. A file template is a code template with the context set to File Content. For more details see Code Templates. © AMIQ 106 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 10. Project Templates 10.1 What is a project template? A project template is a parameterized directory tree. Both in the file contents (.v, .sv, .sh, .e, .vhd, .txt - practically any file) and in the file or directory names you can use parameters. Combined with TODO markers, you can use a project template as a customized wizard. Parameters are IDs surrounded by double underscores (for example __pkg_prefix__) or by x_ and _x (for example x_pkg_prefix_x). This convention allows you to edit the template like any other project using DVT in its full power - autocomplete, hyperlinks etc. Parameters are highlighted distinctively: NOTE: It is not mandatory (but elegant) to use DVT for template creation. It is very elegant to apply the template using DVT. . When you generate code using the project template, parameters are replaced in all files (including their names) with the values you specify: © AMIQ 107 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 10. Project Templates www.dvteclipse.com . How to generate code from a project template template.config 10.2 How to generate code from a project template To generate code from a project template use DVT Project From Template Wizard from menu File > New > DVT Project From Template then follow the steps: 1. Specify Template Directory and Target Directory 2. Specify Parameters 10.2.1 Step 1. Specify Directories Specify the template directory ( You can also choose from Predefined Projects) and the destination directory where the code will be generated. © AMIQ 108 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 10. Project Templates www.dvteclipse.com 10.2.2 Step 2. Specify Parameters DVT automatically recognizes the parameters by scanning the template directory recursively. If default values are specified in the template.config file they are automatically filled in. You can edit values as needed. You may restore to defaults as well. If the template directory was developed using DVT and configured as a project (it includes .project and .dvt files) you may chose to inherit its settings (default.build etc.). © AMIQ 109 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 10. Project Templates www.dvteclipse.com . 10.3 template.config You may use the template.config file in the template directory to specify default values and description for the parameters: • name,value,description pkg_prefix,ti_i2c,The verification component prefix PKG_PREFIX,TI_I2C,For defines Some parameters are predefined: • __user__ for the user name (from the operating system) • __date__ for the date (from the operating system) 10.4 Add from Template With this feature you can generate code from a single template file (or a folder containing templates) and add it to an existing project. To access the Add from Template Wizard go to Navigator > right click on a Target folder inside a project > New > Add from Template © AMIQ 110 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 10. Project Templates www.dvteclipse.com The next step is to browse for the templates source folder (by default, is the last path used), then click Next. From the Templates panel > select the files/folders you want to add to Target. In the Attributes panel, you can modify the replacement variables by typing a new value or by selecting one from the history. The Target panel is used for preview - it shows where the selected files will be placed in the project and signals if the there is a duplicate file error (if the file you want to add already exists in the target folder). © AMIQ 111 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 10. Project Templates 112 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 11. Code Formatting In order to format a selected region of code or an entire file, use the Format Source action. Press Ctrl+Shift+F or use editor's right click menu Source > Format Source. All code formatting preferences are available at menu Window > Preferences > DVT > SystemVerilog > Editor > Formatting. 11.1 Whitespace • Trim end of line whitespace - When enabled, end of line whitespace is deleted. • Compact whitespace groups - When enabled, consecutive whitespace characters are trimmed to a single space character. It does not affect indentation, that is the whitespace at the beginning of a line is not affected by this option. • Tabs and Spaces - Lines are indented using tabs or spaces depending on the preferences configured in Window > Preferences > General > Editors > Text Editors: • If the Insert spaces for tabs option is enabled, indentation will use space characters, otherwise tabs will be used. • The Displayed tab width option controls the size of a tab in spaces. • Add whitespace before - Space separated list of tokens to add whitespace before. • Add whitespace after - Space separated list of tokens to add whitespace after. 11.2 Indentation • Optional "begin" - Some language constructs, for example the conditional statement if or the loop statement for, require a begin - end block to control the execution of several statements. Such blocks are called optional "begin" in order to distinguish them from other cases like fork begin ... end endfork' or plain begin ... end blocks used just for grouping several statements together for readability. This option affects the optional "begin" blocks: • On a new line - begin is moved on a new line • On the same line - begin is moved on the same line with it's construct • Leave as is • Parameters - This option affects module ports and parameters, function and task arguments, class parameters: • One per line - each is placed on it's own line • More per line - more are placed on the same line, as fit when line wrapping is enabled © AMIQ 113 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 11. Code Formatting www.dvteclipse.com • Leave as is • Preprocessing - This option affects `ifdef blocks: • Indent and increase indentation level - indent like any other scope language construct that increases indentation of it's enclosed statements • Indent - indent, but don't increase the enclosed statements indentation • Move at first column - move at line start, but don't increase the enclosed statements indentation • Leave as is • Don't indent single line comments at first column - This option affects single line comments that start at column zero. It is useful to disable the indentation for whole regions of code that are block commented, for example by using Ctrl + /. When enabled, single line comments that start at column zero are not indented. • Indent multi-line comments - This option affects multi-line comments ( /* ... */). When enabled, multi-line comments are indented. • Don't increase the indent Level On - By default all scope language constructs increase indentation. This option allows you to control which language constructs should increase indentation. • Implicit semi macros - The code formatting engine depends on detecting some delimiters for properly identifying the proper indentation scope, for example indentation should not increase after if(a) foo1();, but it should after if(a) begin foo();. Semicolon or end is such a delimiter and sometimes it may be encapsulated inside a macro. This option allows you to explicitly list such macros for proper code formatting. 11.3 Vertical Alignment When enabled, this option performs vertical alignment. • Vertical Alignment Tokens The lines of code inside the same scope are aligned by the specified comma separated list of vertical alignment tokens. if(a) begin if(a) begin x = 1; x = 1; // aligned by '=' inside the if scope xx = 1; xx = 1; end else begin end else begin xxx = 1; xxx = 1; // aligned by '=' inside the else scope, orthogonal to the if scope above xxxx = 1; xxxx = 1; end end © AMIQ 114 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 11. Code Formatting www.dvteclipse.com Vertical alignment is performed left to right, by the same token. For example assuming '=' and ':' as vertical align tokens: var x : int = 1; // "first level :", "second level =" var xx : int = 1; a = 1; // not aligned to "second level =" above, as this is a "first level =" aa = 1; In order to use the comma character ',' as a vertical alignment token, the character must be preceded by the escaping character '\'. • Vertical align single line comments - When enabled, single line comments are aligned. • Vertical align to open parenthesis - When enabled, vertical align to open parenthesis. • Vertical align to open curly - When enabled, vertical align to open curly. • Vertical Align Patterns - Module Port Declarations - When enabled, this pattern aligns module ports: input [7:0] a, // comment input signed [7:0] bb, // comment output signed [7:0] ccc, // comment input clk, // clock input rst, // reset input data_in // data • Vertical Align Patterns - Module Signal Declarations - When enabled, this pattern aligns module signals: reg signed [7:0] data_out; // c1 wire [1:0] byte_enable; // c2 reg nop; // c3 • Vertical Align Patterns - Function Declarations - When enabled, this pattern aligns function and task declarations: task write_byte (input bit [7:0] data, output bit error); 11.4 Line Wrapping When enabled, this option splits the lines of code that exceed the specified number of characters. • Line Width - A line is wrapped when it exceeds this value • Wrap single line comments and move above when needed - When enabled, if a single line comment exceeds the line width, it will be moved above and further wrapped, if needed. It is moved above in order not to break the association between an entity and it's description. © AMIQ 115 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 11. Code Formatting www.dvteclipse.com DVT automatically considers any comment above or in-line with an entity as it's description that appears in tooltips, auto-complete or generated documentation. • Wrap multi line comments - When enabled, multi line comments are wrapped to fit the line width. 11.5 External When enabled, all other code formatting options are disabled and code formatting is performed using the given command. © AMIQ 116 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 12. Override Functions 12.1 Override Annotation An Override Annotation indicates that a function/task overrides a parent class implementation. Override annotations are triangles on the vertical ruler to the left of the editor, next to the function definition: A green triangle indicates an overridden function A yellow triangle indicates a shadowed function that overrides a non-virtual function from a parent. A white triangle indicates a predefined function Hover an override annotation to see the overridden parent. Click on an override annotation to jump to the parent function that is overridden. 12.2 Inspect Overrides in the Quick Type Hierarchy View Press Ctrl+T with the cursor positioned on the function name. The Quick Type Hierarchy View allows you to inspect and jump to a specific parent or child that implements the function in the hierarchy. © AMIQ 117 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 12. Override Functions www.dvteclipse.com See also Quick_Type_Hierarchy_View. 12.3 Inspect Overrides in the Layers View Position the cursor on the function name and press Shift+F3 or right click and choose Show > Layers from the menu. The Layers View is populated with all the function declarations and implementations across the object oriented hierarchy. You can choose to see supertype, subtype or full layers. See also Layers_View. © AMIQ 118 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 12. Override Functions www.dvteclipse.com 12.4 Override Using the Dialog To override an inherited function or task, in the Editor, right click inside a class body > Source > Override Methods to open the override methods dialog. Alternatively you can hit Ctrl + Space in the Editor and select Open Override Methods Select the functions/tasks you want to override and press OK. The empty body of the overridden functions or tasks will be placed inside the class body at the cursor position: © AMIQ 119 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 12. Override Functions www.dvteclipse.com 12.5 Override Using Autocomplete Write function or task and then press Ctrl + Space and a list with all available methods will pop-up. You can type the first letters of the method's name to filter out the list. See also Content_Assist_Autocomplete. 12.6 Override Using the Type Hierarchy View You can override a function by pressing F4 to open the Type Hierarchy View > enable Show All Inherited Members option (highlighted in the image below) > select a function > rightclick > Override The function's body will be placed at the and of the class. © AMIQ 120 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 12. Override Functions 121 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 13. Generate Getters and Setters To open the Generate Getters and Setters dialog start typing inside a body class, press Ctrl +Space and select Generate Getters and Setters or right-click inside a body class and select Source > Generate Getters and Setters. There will appear a list with all the getters and setters that can be created for the current class. You can type the first letters of the field's name to filter out the list. Select the functions that you want to implement and press OK. © AMIQ 122 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 13. Generate Getters and Setters 123 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 14. Module Automatic Instantiation 14.1 Autoinstance Using Autocomplete You need to type the first letters of the module name, then press Ctrl+Space three (3) times. You can recognize module instances by their icon, it looks like a chip with ports ready to be glued in. 14.2 Autoinstance Using Drag and Drop Design elements can be auto instantiated by dragging them from the Types View into the editor. © AMIQ 124 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 15. Semantic Search You can search for a specific type, method etc. in the current project or whole workspace. Press Ctrl+H to pop-up the search dialog. To search for the declaration of a specific type, method, field etc. : • Press Ctrl+H to open the Search Dialog • Click on the vlog Search tab. • Type the name in the Search String (if you select in the editor before pressing Ctrl+H, the Search String is automatically set to the selection). • Select type or field etc. and Declarations • Click Search. To search for a whole word in all verilog files, in comments or not: • Press Ctrl+H to open the Search Dialog © AMIQ 125 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 15. Semantic Search www.dvteclipse.com • Click on the vlog Search tab. • Type the name in the Search String (if you select in the editor before pressing Ctrl+H, the Search String is automatically set to the selection). • Select Whole Word and Do not search in comments or All occurrences • Click Search. The search results are presented in the Search View. The Search View is automatically raised at any invocation. You can also go to menu Window > Show View > Other... > General > Search to open the Search View. • Use up and down arrows to move from one match to another. • Use search history to switch between various search results. • Use search again to refresh search results. © AMIQ 126 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 16. Search for References (Usages) To search where a function, variable, class, module or any other entity is used, right click on it's name > References > Project. The results are presented in the Search View. You can also search for references from the Search Dialog (Ctrl+H) . © AMIQ 127 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 17. Quick Search in Views Most DVT views have a Quick Search bar: The Quick Search bar allows you to easily locate a specific element by typing a few letters from its name. Besides simple Regex ('?' for any character and '*' for any character sequence), more advanced patterns are supported, for example CamelCase or hierarchical patterns like top//fifo/c.pi_data. 17.1 CamelCase No filter. Filter: fsc All elements that contain the character sequence fsc. Filter: f_s_c All elements that contain consecutive words starting with f, s, c. Words are character sequences delimited by underscores or by capital letters. © AMIQ 128 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com Filter: FSC All elements that contain words starting with or containing characters in this order f, s, c. 17.2 Simple Regex No filter. Regex Filter: rs* All elements that contain the text rs. Regex Filter: f?c All elements that f<any_character>c. contain the text 17.3 Hierarchical Search You can use single slash ('/') characters to search for strict (direct) hierarchies and double slash ('//') to search for non-strict (indirect) hierarchies. You can choose to see all or just the direct descendants of the matched elements. For each hierarchical segment you can use either CamelCase or Simple Regex. © AMIQ 129 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com No filter. Filter: first/second ''Search for strict hierarchy.'' All elements that contain the search pattern and are in a direct hierarchical relationship (father/son) are shown. Filter: second/s_f/fi* ''Search for strict hierarchy'' + CamelCase and simple Regex Filter: second//fsc ''Search for non-strict hierarchy.'' All elements that contain the search pattern and are in a direct or indirect hierarchical relationship (ancestor/../../descendant) are shown. Filter: s_p/ ''Search for strict hierarchy and show direct descendants.'' Same results as for search strict hierarchy, but including the sons of the matched elements. Filter: s_p// ''Search for strict hierarchy and show all descendants.'' Same results as for search strict hierarchy, but including all descendants of the matched elements. © AMIQ 130 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com 17.4 Search for Members In addition to Hierarchical Search, you can use a member pattern after the dot '.' character to search for types or instances that contain specific members (for example methods, ports, events, etc). The members that match the member pattern are promoted to the top of the members pane. Search for port example No filter. Filter: .sleep Search by port name. All instances with ports that contain the search pattern are shown. Filter: sec/.sleep Search by hierarchy and port name. Hierarchical searching and port searching can be combined. Search for method example © AMIQ 131 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com No filter. Filter: .collect Search by member name. All types with members that contain the search pattern are shown. © AMIQ 132 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com Filter: gpio/.collect Search by hierarchy and member name. Hierarchical searching and member searching can be combined. 17.5 Search Port in Design Hierarchy You can search for a specific port in the design hierarchy by using the Design Hierarchy View. Press the Select Top button and pick one of the available design tops. Make the ports panel visible by pressing the Show/Hide Ports button. In the instances filter text box, type the name of the port you are looking for, preceded by the dot '.' character. The instances that contain the port are bolded. The ports are also bolded and promoted to the top of the ports pane. © AMIQ 133 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com 17.6 Search Port in Verification Hierarchy You can search for a specific port in the verification hierarchy by using the Verification Hierarchy View. Press the Select Top button and pick one of the available top units/components. Make the ports panel visible by pressing the Show/Hide Ports button. In the instances filter text box, type the name of the port you are looking for, preceded by the dot '.' character. The instances that contain the port are bolded. The ports are also bolded and promoted to the top of the ports pane. © AMIQ 134 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com 17.7 Search all UVM Phase Overrides Use the Types View to see where a specific function is declared. For example, type .*phase in the Types View Quick Search to locate all UVM phase overrides. The classes that contain the declarations are bolded. The matching type members are also bolded and promoted to the top of the members pane. © AMIQ 135 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 17. Quick Search in Views www.dvteclipse.com 17.8 Search Global API Use the Types View to locate functions, tasks, fields, parameters, etc. declared at library or package level. For example, type .dpi_get in the Types View Quick Search to locate dpi functions located inside the uvm_pkg package. The libraries or packages that contain the declarations are bolded. The matching members are also bolded and promoted to the top of the members pane. © AMIQ 136 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 17. Quick Search in Views 137 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 18. Trace Port Connections 18.1 Trace Connections from Design Hierarchy Start by inspecting the module hierarchy in the Design Hierarchy View. All traces are going to be computed on this design hierarchy. You can trace across the whole design (when you pick a top module as the hierarchy root) or focus on a specific module in the design (when you pick that module as the hierarchy root). The Design Hierarchy View documentation provides more details on how to populate this view. Select an instance and click on the Show/Hide Ports button in the toolbar. Then right click on a port and select one of the trace kinds, for example Trace Drive and Load. The Trace Connections View opens. 18.2 Trace Connections from Editor You can trace connections directly from the DVT editor. All four trace kinds ( Trace Drive, Trace Load, Trace Drive and Load, Trace in Subinstances) are available. Start by placing the editor cursor over a port or signal and selecting Trace > trace kind from the right-click context menu. © AMIQ 138 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com IMPLEMENTATION NOTE: Tracing Connections from Editor works within the current design hierarchy, found in the Design Hierarchy View. The Design Hierarchy View documentation provides more details on how to populate this view. If the traced port or signal belongs to multiple module instances, you must select the desired one. The Trace Connections View opens. © AMIQ 139 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com 18.3 Trace Connections View The Trace Connections View presents a hierarchy similar with the Design Hierarchy View: • The connected instances are displayed, the rest are filtered out. • You can use Trace All in Full Hierarchy or the Show Root options to show the entire design. The connected instances are colored, the rest are grayed-out. • Port icons indicate the direction of the signal. • Sources and destinations are marked with red/green decorations. • You can search for a specific connected instance or port/signal with Quick Search. © AMIQ 140 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com The toolbar buttons allow you to change the trace kind (drive, load, drive and load or subinstances): • Trace Drive shows the connected instances across the drive paths (who drives this port?). • Trace Load shows the connected instances across the load paths (who does this port drive?). • Trace Drive and Load shows the connected instances across the drive and load paths (how is this signal connected in the design)? • Trace in Subinstances shows the connected instances under the traced module instance (how is this signal connected below?). • Trace All in Full Hierarchy is similar with Trace Drive and Load, but the full hierarchy is presented, not only connected instances (how is this signal connected in the whole design context?). Other buttons: • Show/Hide Ports Shows or hides the connections (ports or signals) of the currently selected instance. • Show Root shows the path to the hierarchy root, even if the signal doesn't reach it. It provides the enclosing context for deep traces, for example when tracing a signal many levels below the top module. This option is enabled by default. © AMIQ 141 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com At any time you can see the traced port (the port you are currently tracing). It is indicated in the info label. The two connected instances that are bold colored in the tree represent : • The instance with the traced port. • The instance with the port or signal shown in the trace path. More details here. Double-click on an element to go to code. • For a connected instance, go to its declaration. • For a port, go to where it is connected in the trace path. • For a signal, go to where it is declared. When the connections panel is hidden, right-click on an instance in the tree to show the context menu. © AMIQ 142 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com When visible, right-clicking on a port or signal to show the context menu. The options in the context menu are : • Trace > trace kind Trace ports found on the drive or load paths of the current traced port. • Go to... Go to the port instantiations or signal declarations of the selected instance. The same as double-clicking on a particular port or signal in the connections panel. • Why Show the trace path from the traced port to the selected port or signal. More details here. 18.4 Trace Path Why signal foo drives/loads signal moo? The Why option in the context menu allows you to see the trace path from any port/signal of a connected instance to the original traced port. © AMIQ 143 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com A list is displayed containing the step by step path starting with the connected port/signal and ending with the traced port. The list contains port instantiations, signal definitions and the assign statements through which the traced signal propagates. At any time you can see what kind of path the port or signal is on (drive path or load path). Also you can change the order the list is displayed, so that it suits your take on the trace kind (from source to destination or reverse) using the button. Double-click on an element to go to code : • For a port, go to where it is instantiated in the trace path. • For a signal, go to where it is declared. • For an assign statement, go to where it is used. © AMIQ 144 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 18. Trace Port Connections www.dvteclipse.com Selecting an element in the list will color red both the corresponding connected instance in the Trace Connections View hierarchy and the current port or signal in the connection panel. The connected instances on the trace path are marked in the tree with an asterisk before their names. © AMIQ 145 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 19. Code Factory The Code factory allows you to easily generate instances, signals and testbenches starting with modules or entities. Factory Input It is required that you first set an input. Right-click on the element definition and select from the context menu the option Set Factory Input under Code Factory. The current input persists until a new one is set or until a full build is invoked. Creating code Having set an input, you can do one of the following: • Create Instance for instantiating the design element; • Create Signals for listing the ports of the design element as signals; • Create Testbench for defining a testbench that instantiates the design element with all the required port connections already made; The code will be inserted at the cursor's current position. Any information or errors during Code Factory operations are shown in the status bar. Notes • At the moment you can set only SystemVerilog modules and VHDL entities as factory input. • Cross language operations are not supported. You can't set a SystemVerilog module as input and use it in VHDL for creating output and vice-versa. © AMIQ 146 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 20. Refactoring 20.1 Rename Refactoring To rename an entity (type, method, macro etc.) in the source code along with all its references, place the cursor on the desired element, then right click and select Refactor > Rename (or use the shortcut combination <Shift + Alt + R>). You will be prompted for the new name of the entity: Click OK to perform the refactoring, or Preview to see the changes that are about to be performed in the source code. In the Preview page you can select the changes that should be performed. After you click Finish the changes are performed, and the project is rebuilt. © AMIQ 147 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 1. Select a file/change to see the source differences produced by the refacotring. 2. Uncheck a file/change to prevent those changes from being applied. 20.2 Refactoring Scripts In some situations - like porting code from a library to another, or when dealing with crossproject API refactoring - one has to perform several refactoring operations for many projects. DVT can help you automate such operations by providing scripted refactoring functionality. Refactoring scripts are XML files that describe a set of changes to be performed for a project (into source code, scripts or file/directory names). For instance, such a script can describe all the changes to be applied to a source base for migration between OVM and UVM libraries. 20.2.1 Writing a Refactoring Script Below there is a thoroughly commented example script to illustrate the XML syntax used by the scripting engine. XML header on the first line. © AMIQ 148 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com <?xml version="1.0" encoding="UTF-8"?> Start of refactoring script content. The script name is displayed in visual controls. <refactor-script version="1" name="My refactoring script"> You can specify exceptions, i.e. paths that will not be affected by the refactoring. Paths are relative to the project root. You can specify both files and folders. For a folder, all files in it and in all its subfolders will be skipped. <exception kind="path" path="skipme"/> It is advised to exclude sensitive project configuration files, like for instance: <exception kind="path" path=".project"/> Actual refactoring directives are called items. There are several kinds of items, differentiated by the action they perform. When writing a script, one must be careful not to have item collisions: situations when the same piece of text is modified by more than one item. Here are examples that illustrate all the actions currently available in DVT. replace-in-text performs plain textual search & replace for all the text files in the project like source files, scripts etc. Note that the search string is case sensitive. <item action="replace-in-text" search="ovm" replacement="uvm" /> replace-in-file-name and replacein-dir-name perform plain textual search & replace in the names of all files/folders within the project. <item action="replace-in-file-name" search="ovm" replacement="uvm" /> <item action="replace-in-dir-name" search="ovm" replacement="uvm" /> rename renames all occurrences of the specified element. An element " is a SystemVerilog language element, and should be specified as follows: • for macros, the name of the macro preceded by a backtick, just like a macro call <item action="rename" element="`my_macro" newname="`my_macro_new_name"/> • for types, modules, methods, etc., the name of the element preceded by the enclosing elements, including the package (if it's the case) © AMIQ 149 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com <item action="rename" element="my_pkg::my_class" newname="my_class_new_name"/> Note that the new name is just the name of the element. Here are some more examples: <item action="rename" element="my_pkg::my_module.my_function" newname="my_function_new_name"/> <item action="rename" element="outer_class.inner_class.my_function" newname="my_function_new_name" comment="XXX: API change. Function renamed from my_function to my_function_new_name."/> In the last example, outer_class is not inside any package (i.e. it's in the global scope). Also, you can optionally specify a comment that will be inserted on the line above the occurence. If the comment contains a Task Tag (like TODO, FIXME, XXX or a custom defined one), after refactoring is completed you can use the Tasks View to inspect action items or notes automatically added by the refactoring. add-comment adds the specified comment to each occurrence of the specified element. The comment will be inserted on the line above the occurrence. <item action="add-comment" element="my_type.foo" comment="FIXME: function removed from my_type API"/> Finally, the script closing tag. </refactor-script> To see a larger example, you can simply start the OVM to UVM Migration wizard and inspect the script behind it (there is an Inspect button on the right side of the first wizard page). 20.2.2 Applying a Refactoring Script To apply a script: right click on project, select Refactor > Apply a refactoring script, then browse to the script you want to apply. © AMIQ 150 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com You can either apply the changes straightforward or inspect them in a Preview wizard page, where you can select which of the proposed changes should be performed. Also, on the topright of the preview wizard you have a Filter button that allows you to filter changes by the type of refactoring action. To apply the refactoring, click Finish © AMIQ 151 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 1. Select a file/change to see the source differences procuced by the refacotring. 2. Uncheck a file/change to prevent those changes from being applied. 3. Filter the displayed changes by type of refactoring item 20.3 Connect Instances Across the Design Hierarchy You can use the Connect Instances Toolbar in order to connect two module instances across the design hierarchy. 20.3.1 Connect Instances Using New Ports In order to connect two module instances using new ports, you must specify the output instance (the signal source) and the input instance (the signal destination). New ports will be created across the design hierarchy as needed, in order to propagate the signal. 1. Press the Select Top button and pick one of the available design tops. More details here on how to populate the Design Hierarchy View. 2. Press the Show Connect Toolbar button to bring up the Connect Instances Toolbar . 3. Right click on an instance and select Connect Output from the context menu. © AMIQ 152 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com The output instance is presented in the connect toolbar Output textbox: 4. Select another instance, right click and Connect Input. The input instance is presented in the connect toolbar Input textbox along the previous set output instance: © AMIQ 153 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 5. You can Preview Structural Changes in the Design Hierarchy . 6. Press the Connect button. The Refactor Connect dialog pops-up. Here you can tune the port and signal names, as well as other refactoring parameters. 7. Press the Preview button to preview the source code changes: © AMIQ 154 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 8. Press the OK button in order to perform the changes. Note 1: At any time you can change the connection output or input. Pick the direction using the radio buttons, select another instance, then right click Connect Input/Output. Note 2: You can undo the whole refactoring operation using Undo ( Ctrl+Z). 20.3.2 Connect Instances Using Existing Ports In order to connect two module instances using existing ports, you must specify the output port (the signal source) and the input port (the signal destination). New ports will be created across the design hierarchy as needed, in order to propagate the signal. © AMIQ 155 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 1. Press the Select Top button and pick one of the available design tops. More details here on how to populate the Design Hierarchy View. 2. Press the Show Connect Toolbar button to bring up the Connect Instances Toolbar . 3. Press the Show/Hide Ports button to see the ports of the selected instance, if needed. 4. Select an instance using left click and a port using right click Connect. The output instance and port are presented in the connect toolbar Output textbox: 5. Select another instance using left click and a port using right click Connect. © AMIQ 156 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com The input instance and port are presented in the connect toolbar Input textbox along the previous set instance and port: 6. The rest of the steps are the same as connecting instances using new ports. More details here. Note : The swap between output instance and input instance doesn't work for directional ports (input or output). 20.3.3 Preview Structural Changes in the Design Hierarchy Any change to a module or entity definition, like new ports or new signals being added, affects all its instances. Before proceeding to source code changes, you can preview the design structural changes. Terminology: • output instance is the module instance where the connection starts. It outputs the signal that will be connected. output module is the module being instantiated as an output instance. • input instance is the module instance where the connection ends. It inputs the signal that will be connected. input module is the module being instantiated as an input instance. • closest parent instance is the parent instance through which a signal is routed to connect the ports leading from the output instance to the input instance across the design hierarchy. No ports will be added to the closest parent instance. The closest parent module is the module corresponding to the closest parent instance. • relevant modules are the modules that will change by adding new ports and/or new signals. relevant instances are instances of relevant modules. © AMIQ 157 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com Ports are added only to modules that are instantiated on the paths leading from the output module instance and the input module instance to the closest parent instance. Ports are added to the output module or the input module only if the connection is not using an existing port. All the instances that will not change are grayed out. All relevant instances are highlighted. If you hide the irrelevant instances, only the grayed out instances enclosing relevant instances are kept in the tree. The following filters in the Connect Instances Toolbar help you understand the structural changes: • Show Design Hierarchy to see the unfiltered design hierarchy. • Minimal Path highlights just the affected path from the output instance to the input instance. It includes the closest parent instance through which the signal is routed. It presents the connection between the instances you've selected without considering the side effects caused by other instances. • Direct Changes highlights all the "similar" instances that are connected. It practically presents all the instances of the closest parent module. • Indirect Changes highlights all the changes in the design that are not Direct Changes. For example an output module could be instantiated outside the closest parent module design hierarchy, in "isolation" from the input module. As such these may be unexpected changes that lead to dangling ports. • All Changes highlights all the changes in the design. Here you see all the relevant instances. It is the union of Direct Changes and Indirect Changes. Note 1: Changes are computed on all tops. Example We connect blue1: Blue ( output instance) to d1 : D ( input instance). b1 : B is the closest parent instance and B is the closest parent module. The relevant instances are highlighted. The structural changes of the filters above are: Show Design Minimal Path Hierarchy © AMIQ Direct Changes Indirect Changes 158 All Changes Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 20. Refactoring 159 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 20.3.4 Connect Instances Toolbar 1. You press the Show Connect Toolbar button to bring up the connect toolbar. 2. In the design hierarchy you can select the instances that you want to connect. 3. You can Swap the ports direction. 4. The output instance path. The port segment is presented only if you use an existing port. 5. The input instance path. The port segment is presented only if you use an existing port. 6. Filter that controls the structural changes preview mode (see Preview Structural Changes in the Design Hierarchy). 7. Filter to hide unaffected instances. © AMIQ 160 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 20. Refactoring www.dvteclipse.com 8. Press Connect to start the refactoring operation. 9. Press Close to hide the Connect Toolbar. 20.4 Add Port to Module from Selected Field You can use the Add Port to Module to add a selected field as a port easy and fast. 1. Right click field wire1 in module A. 2. Select Refactor > Add Port. 3. You can optionally change the new generated port name. 4. Select a direction for the port and press Preview or OK. 20.5 Add New Port to Module You can use the Add Port to Module to add a new port easy and fast. 1. Right click on an empty line in module A. 2. Select Refactor > Add Port. 3. Specify the port name, direction, type and optional width. 4. Select a direction for the port and press Preview or OK. © AMIQ 161 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 20. Refactoring 162 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 21. Diagrams Diagrams help you inspect or document the architecture of a verification environment (e language, SystemVerilog) or the structure of a design element (Verilog, VHDL). They are rendered inside the diagram editor, using the dot engine. You must have dot installed for diagrams to work (see http://www.graphviz.org). For convenience every DVT distribution includes dot. The dot executable can be specified using menu Window > Preferences > DVT > Diagrams. 21.1 Class Diagrams You can create class diagrams to inspect or document the architecture of a verification environment from the toolbar button or from the menu File > New > SystemVerilog UML Class Diagram. Class diagrams are saved with the extension .vcdiagram. You must have dot installed (diagrams are rendered using the dot engine - see http:// www.graphviz.org and Common dot related issues). You can specify the dot executable from menu Window > Preferences > DVT > Diagrams. In the diagram editor you can click on classes to jump to the source code. You can select the relevant classes for which to draw the diagram from button (see Class Diagrams - Select Classes). For the selected classes diagram can present inheritance, associations (pointers) and class members (see Class Diagrams - Preferences). You can customize the font sizes for nodes and edges from menu Window > Preferences > DVT > Diagrams. See Class Diagrams - Legend for the description of diagram drawing conventions. © AMIQ 163 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com 21.1.1 Class Diagrams - Select Classes A diagram is created around a set of relevant classes you specify. For example when you decide to show parents, children or associations by using Class Diagrams - Preferences, it applies only to selected classes. In a diagram the selected classes are colored with yellow fill (see also the Class Diagrams - Legend). The right list shows the selected classes. Use left/right arrows or double click to select the relevant classes. © AMIQ 164 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com You can also add/remove an element to/from the current selection by right clicking on it in the diagram and choosing "Select type"/"Deselect type": Class Diagrams Class Diagrams - Preferences Class Diagrams - Legend © AMIQ 165 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com 21.1.2 Class Diagrams - Preferences For the selected classes you can choose to show parents, children, associations (pointers), customize the graph layout etc. You may choose to: • Show first, all or no parents for the selected classes • Show first, all or no children for the selected classes • Show all, public or no members - fields, methods (functions, tasks), events - for the selected classes • Show associations (pointers): • Selected - only pointers between selected classes are shown • First - only pointers from selected classes are shown • Full - the full collaboration diagram (pointers from selected classes and their parents and so on recursively) • Customize the graph layout © AMIQ 166 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com • Show package information Class Diagrams Class Diagrams - Select Classes Class Diagrams - Legend 21.1.3 Class Diagrams - Legend A class. A selected class. A selected class with members. '- (minus)' for fields + (plus) for functions or tasks * (star) for events A predefined class. Inheritance: ChildClass inherits from ParentClass. Association: AClass points to BClass (has a field f_bcl of type BClass). © AMIQ 167 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com Inheritance with parameters: SetParams inherits from AClassWithParams#(int) (sets T to int). Association with parameters: MyClass has a field p_cls of type AClassWithParams#(int) (sets T to int). Outgoing connections (inheritance or associations) from a selected class are colored with orange. Incoming connections (inheritance or associations) to a selected class are colored with blue. Class Diagrams Class Diagrams - Select Classes Class Diagrams - Preferences 21.2 Architecture UML Diagrams An Architecture UML Diagram presents the associations between all the entities that inherit from a commonly used set of base classes. Typically these are components like monitors, drivers, agents etc. To create an Architecture UML Diagram use the New Diagram toolbar button and select Architecture UML Diagram from the menu. © AMIQ 168 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com You can tune the default set of base classes and filters from menu Window > Preferences > DVT > Diagrams > UML Architecture Diagrams. 21.3 Sequences UML Diagrams A Sequences UML Diagram presents the associations between all the entities that inherit from a commonly used set of base classes. Typically these are sequence or scenario data types. To create a Sequences UML Diagram use the New Diagram toolbar button and select Sequences UML Diagram from the menu. You can tune the default set of base classes and filters from menu Window > Preferences > DVT > Diagrams > UML Sequences Diagrams. 21.4 Module Diagrams Module Diagrams help you inspect and document the structure of a design element. A module diagram presents the design's direct subinstances, the connections between them, as well as the connections to design's ports. You must have dot installed (diagrams are rendered using the dot engine - see http:// www.graphviz.org and Common dot related issues). A DVT distribution includes dot. You can specify the dot executable from menu Window > Preferences > DVT > Diagrams. © AMIQ 169 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 21. Diagrams 170 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com Create a new module diagram in any of the following ways: • right-click on a project or open the File menu and choose New > HDL Module Diagram • use the New Diagram toolbar button and select New HDL Module Diagram from the menu • Right click in the Types View or the Design Hierarchy View and select Show Diagram • Place the cursor over a Type or Instance name in the editor, right click and select Show > Diagram The size of instance blocks is proportional to their number of ports. Click on a diagram node to go to the element's definition in the source code. Instances containing subinstances have a thick border. To view their diagram right click and select Show Module Diagram or press Ctrl and click. © AMIQ 171 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 21. Diagrams 172 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com 21.4.1 Module Diagrams - Select Modules In case you want to change the design, click the Select Module button to pick a design. Select Module opens automatically when you create a new diagram, unless you started from a selection. You can chose only from designs with subinstances. You can filter the list using the text field. © AMIQ 173 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 21. Diagrams 174 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com 21.4.2 Module Diagrams - Preferences Use the Preferences button to customize the diagram contents and layout. © AMIQ 175 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 21. Diagrams 176 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com By default Show connected Ports is selected. If some ports clutter the diagram, you can exclude them by selecting Hide ports if name contains. Tip: if you generate a diagram and see less ports than expected, check its description at the bottom for the list of port names you have excluded. Uncheck Display port names to hide Port names from the diagram and show them as a tooltip. Choose Hide all ports to show only subinstances in the diagram. © AMIQ 177 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 21. Diagrams 178 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com Show multiple nodes per port is an alternative way of viewing ports of the enclosing design: if a port is connected to several instances, a node is created for it next to each instance. This may help reduce clutter. The following images illustrate how this option changes the diagram: Table 21.1. Without Multiple Nodes Per Port With Multiple Nodes Per Port Collapse bidirectional edges uses a single edge with arrows at both ends to represent signals flowing in both directions between two nodes. Note: the diagram might not be displayed correctly with this option if your version of the dot program is older than 2.29. The following images illustrate this option: Table 21.2. Without Collapse Bidirectional Edges © AMIQ With Collapse Bidirectional Edges 179 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com The Graph direction can also be customized, as illustrated by the screenshots in this section. © AMIQ 180 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com The preference page DVT → Diagrams → Module Diagrams allows you to choose: • highlighting of modules with subinstances • colors for all elements of the diagram The preview section automatically reflects your changes. © AMIQ 181 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 21. Diagrams 182 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com 21.4.3 Module Diagrams - Breadcrumb Navigation If you navigate to sub-instances using right click > Show Module Diagram or by pressing Ctrl+Click, the breadcrumb buttons above the diagram allow you to quickly navigate through the design hierarchy. The small buttons with an arrow show possible subinstances of a design. You can select a subinstance to display its diagram. 21.5 Diagram Toolbar Select input elements - the selection dialog opens automatically when you create a new diagram, unless you started from a selection. Change preferences Save - depending on the dot version, you may save a diagram in various formats, for example JPEG, PNG or SVG. Refresh Refresh automatically - when on, the diagram is automatically refreshed, for example when you change the input elements or preferences. Zoom in Zoom out Zoo fit Zoom reset Show legend Show help 21.6 Diagram Preferences The preference page DVT > Diagrams has settings for Graphviz DOT that affect both Class and Module Diagrams. © AMIQ 183 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 21. Diagrams www.dvteclipse.com Diagrams are generated using the Graphviz DOT program. The DVT Distribution includes DOT so you can use diagrams without additional setup. If you prefer (or if you didn't install DVT from Distribution) you can also specify the location of the DOT program on your system. The Font you choose here is used by all diagrams in DVT. This preference can contain: • A font name, like sans, mono or verdana • The absolute path to a True Type Font file (.ttf), e.g. /usr/share/fonts/truetype/ubuntufont-family/Ubuntu-R.ttf The DVT Distribution includes several font files, for convenience. You can preview & choose one of them by clicking the button. © AMIQ 184 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 22. Export HTML Documentation To generate the HTML Documentation click on Export HTML Documentation Wizard button on the main toolbar . The HTML documentation is similar with JavaDoc and it is generated using the comments above type declarations, method declarations etc. NOTE: It is recommended to perform a full build before exporting the HTML documentation. 22.1 Export HTML Documentation Wizard 1. General Page 1. Specify the project for which HTML Doc will be generated 2. Documentation title 3. Overview description file - its content will be placed on the first page of the documentation 4. User defined HTML Page - a customized html page that can be embedded in the navigation menu (for example you can add links to external documentation or resources: <a © AMIQ 185 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com target="elementFrame" href=" http://www.dvteclipse.com">dvt</a> -> will open the web page in the main frame) 5. The output directory - target directory where the documentation will be placed 6. Option to hide the "Generate by < user >" watermark 2. API Selection Preferences Select/deselect what kind of API and what packages to include in documentation. 3. Filter Preferences © AMIQ 186 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com 1. A set of general filters 2. SystemVerilog specific filters 3. Names Filter - exclude types' names that match these filters 4. Paths filter - exclude files from documentation © AMIQ 187 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com 4.Styling Preferences Comments beautify and formatting 5.Link To Existing Documentation © AMIQ 188 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com Create links to the elements for which documentation is already generated in the directories specified in the list above, instead of re-generating their HTML pages. You can also select if you want to see references to external documentation's index.html files in the left navigation menu. 6.Diagrams Preferences © AMIQ 189 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com Add/remove diagrams (based on project's natures). Depending on how big is your project, generating diagrams could be a time consuming task. 22.2 Comments Formatting There are two formatting styles supported: JavaDoc & NaturalDocs. You can use HTML syntax in JavaDoc comments . © AMIQ 190 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com 22.2.1 JavaDoc JavaDoc Support The table below lists the JavaDoc tags that DVT recognizes. For more details see http:// en.wikipedia.org/wiki/Javadoc. @param Valid for: functions, tasks Adds a parameter with the specified argument-name followed by the specified description to the "Arguments" section @return © AMIQ Valid for: functions 191 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com Adds a "Returns" section with the description text. This text should describe the return type and permissible range of values @see Adds a "See Also" heading with a link or text entry that points to reference. A doc comment may contain any number of @see tags, all grouped under the same heading @author Adds an "Author" entry @deprecated Adds a comment indicating that this API should no longer be used (even though it may continue to work) @version Adds a "Version" subheading with the specified version-text @since Adds a "Since" heading with the specified since-text {@link LINK_ADDRESS Inserts an in-line link with visible text label that points LINK_TEXT} to the documentation for the specified package, class or member name of a referenced class. This tag is valid in all doc comments. For more details see below. {@literal text} Displays text without interpreting the text as HTML markup or nested javadoc tags. This enables you to use regular angle brackets (< and >) instead of the HTML entities (<and >) in doc comments, such as in parameter types (<Object>), inequalities (3 < 4), or arrows (<-) JavaDoc Links An in-line link in a comment can be created using this tag {@link LINK_ADDRESS LINK_TEXT}.There are two types of links: • Internal Links -> point to data inside Documentation. In this case LINK_ADDRESS must respect the following notation: Package_Name::Class_Name.Method_Name for an absolute path or TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME for relative paths. In case of a relative path a link will be created to the best match for that type with regard to its scope inside the project. NOTE: Using relative paths could generate broken links if there are different data types with the same name inside the project! • External Links -> point to external web pages or files. For webpages LinkAddress must start with http:// and for files with file:// followed by the resource's address. For example: {@link http://www.dvteclipse.com} or {@link file://external-res.pdf} For both types of links LINK_TEXT is optional and it can be used to show a user defined text instead of link's path. JavaDoc Autocomplete and Comment Templates To add JavaDoc like comments to code, in Code Editor type above the code declaration /** and then press Enter. Depending on the code type (a class declaration, a function, a task etc.) a comment will be added with the respective JavaDoc tags. © AMIQ 192 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com These comments are added based on some predefined comment templates that can be customized. Go to Window > Preferences > DVT > SystemVerilog > Editor > Code Templates.You can select a javadoc template and modify it by adding/removing supported tags (using this naming convention: ${TagNameWithout@} ) or custom text. You can also create new templates. A template will be applied only to a specified data type, for example: javadoc_class will be applied to classes. If you want to add a template for modules its name must respect the following rule: YourTemplateName_DataType (ex: MyModuleTemplate_module) and must be placed in JavaDoc Comment Context. See the result in the image below: © AMIQ 193 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 22. Export HTML Documentation 194 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com 22.2.2 NaturalDocs NaturalDocs Support The table below lists the NaturalDocs syntax that DVT recognizes. For more details see http:// www.naturaldocs.org. <LinkAddress> Inserts an in-line link with visible text label that points to the documentation for the specified package, class or member name of a referenced class. This tag is valid in all doc comments. For more details see below. ~Italic Text~ Use tilda (~) for Italic Text. *Bold Text* Use star (*) for Bold Text. Headings You can add headings to your output just by ending a line with a colon and having a blank line above it. Bullet Lists You can add bullet lists by starting a line with a dash, an asterisk, an o, or a plus. Bullets can have blank lines between © AMIQ 195 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com them if you want, and subsequent lines don’t have to be indented. You end a list by skipping a line and doing something else. Definition Lists You can add a definition list by using the format below, specifically “text space dash space text”. Like bullet lists, you can have blank lines between them if you want, subsequent lines don’t have to be indented, and you end the list by skipping a line and doing something else. Images You can include images in your documentation by writing (see filename). If you put it alone on a line it will be embedded in place. Code and Text Diagrams , or :'''. If you have a vertical line or text box with the comment, you must separate these symbols from it with a space. NaturalDocs Links An in-line link in a comment can be created using <LINK_ADDRESS LINK_TEXT>.There are two types of links: • Internal Links -> point to data inside Documentation. In this case LINK_ADDRESS must respect the following notation: Package_Name::Class_Name.Method_Name for an absolute path or TYPE_NAME.INNER_TYPE_NAME or just TYPE_NAME for relative paths. In case of a relative path a link will be created to the best match for that type with regard to its scope inside the project. NOTE: Using relative paths could generate broken links if there are different data types with the same name inside the project! • External Links -> point to external web pages or files. For webpages LinkAddress must start with http:// and for files with file:// followed by the resource's address. For example: < http://www.dvteclipse.com> or <file://external-res.pdf> For both types of links LINK_TEXT is optional and it can be used to show a user defined text instead of link's path. 22.3 Customizing Documentation Generated documentation using new HTML style can be customized using the files <html_doc>/css/custom.css and <html_doc>/js/custom.js. The new HTML style is based on Bootstrap [http://http://getbootstrap.com/] and jQuery [http:// jquery.com/] frameworks and customizations can be done using jQuery API and by changing Bootstrap's default styles. Custom CSS The custom Cascading Style Sheet is included last and can overwrite any style defined above. Example: changing the color of collapsible panels holding the element names. © AMIQ 196 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 22. Export HTML Documentation www.dvteclipse.com .panel-default > .panel-heading { background-color: Chocolate; color: Cornsilk; } Custom JavaScript The custom.js JavaScript file is included at the end of the HTML and it can completely change the content of the page. Example: adding a custom "CONFIDENTIAL" warning to TOC and every page header can be done using jQuery. $('body').prepend('<div class="alert alert-warning text-center" role="alert">CONFIDENTIAL</div>'); Customizing the TOC page and the content pages separately can be achieved by testing the window name: if (window.name === "content") $('body').prepend('<div class="alert alert-warning text-center" role="alert">This is the content frame</div> if (window.name === "toc") $('body').prepend('<div class="alert alert-warning text-center" role="alert">This is the toc frame</div>'); A similar approach can be used to customize individual pages based on the file name: if (window.location.pathname.split('/').pop() === "summary-overview.html") $('body').prepend('<div class="alert alert-warning text-center" role="alert">This is the the summary page< © AMIQ 197 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 23. External Tools Integration 23.1 Run Configurations You can invoke (run) any executable from Eclipse and see its output in the Console View. You just need to create a Run Configuration from menu Run > Run.... VlogDT provides one type of configuration: • DVT Generic DVT Generic Run Configuration 1. Menu Run > Run Configurations.... 2. Select DVT Generic configuration and click the New button. 3. Specify name, working directory, run as command or script and the content of the command or script. 4. Click Run. © AMIQ 198 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com Before writing the command you can specify how to run the content. Run as a: • command (the content must be a single line command with arguments) • script (the content must be a multiline script, preceded by a hash exclam, that will be written to file system before execution) If run as a command is selected the content should look like this: sh -c "echo Test ${string_prompt:Parameter 1} ${string_prompt:Parameter 2}" or if run as a script is selected a script with hash exclam must be specified: #!/bin/sh echo Test ${string_prompt:Parameter 1} ${string_prompt:Parameter 2} for i in `seq 5 -1 0` ; do echo Starting in $i seconds sleep 1 done echo Test started Parameters can be specified using Eclipse variables or DVT Custom_Dialogs can be used for more complex dialogs. © AMIQ 199 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com As a result you will be asked to provide the "Parameter 1" e.g. "run" and "Parameter 2" e.g. "script". The result of running the command will be: "Test run script" Note: The parameters ${VAR} are considered Eclipse variables that and will be resolved before running the command. To use shell variables in the command you must use the $VAR syntax. When running as a command, unresolved Eclipse variables will trigger an error and the run will be aborted. not be reported. When running as a script the unresolved Eclipse variables will remain untouched. Quick Run You can launch again at any time from menu Run > Run History... or directly from the toolbar (simple click launches last): You can also use the Run > Quick Run menu (or Ctrl+U shortcut key) to quickly launch any existing Run Configuration: The DVT Quick Run dialog will pop-up and present a list of all available Run Configurations. You can use the quick filter to search for a specific Run Configuration, up and down arrows to navigate in the list and Enter to launch: © AMIQ 200 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com Output The invocation output is dumped to the Console View. Click on hyperlinks in the Console View to jump directly to the to source location. 23.1.1 Run Configuration Session Type Note: This feature is available only for Linux and MacOS The options available under the command/script text box can be used to control the process session that will be used to run the command or script. The following session types are available: © AMIQ 201 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com Same process session as DVT • The process will be a direct child of DVT • The process must manage its subprocesses if termination signals are received, otherwise orphaned processes may appear • Job control is not available • stdin, stdout, sdterr will be available in "Console View", tty will not be available A new process session • The process will be launched using a wrapper script that will create a new process session • The process may manage its subprocesses if termination signals are received, but "Terminate all spawned processes..." option can be used to kill all subprocesses when the parent process ends or is terminated • Job control is available • stdin, stdout, sdterr will be available in "Console View", tty will not be available An xterm process session (xterm must be available in the system) • The process will be launched using xterm that will create a new process session • The process may manage its subprocesses if termination signals are received, but "Terminate all spawned processes..." option can be used to kill all subprocesses when the parent process ends or is terminated • Job control is available • tty, stdin, stdout and sdterr will be available in xterm, the stdout, stderr can be redirected to "Console View" using "Redirect xterm output..." option • xterm window can remain on screen when the process ends or is terminated if "Hold xterm window open..." option is selected © AMIQ 202 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 23.1.2 Custom Shortcut and Button for a Run Configuration On the main toolbar click on Run > Run Configurations... > select a run configuration file from DVT Generic and click on Shortcuts Tab. You can choose to add a shortcut on the main toolbar and/or an accelerator (for example, ALT+SHIFT+1). WARNING: It is not recommended to remove accelerators from Window > Preferences > General > Keys © AMIQ 203 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com If you want to remove a shortcut/accelerator you can uncheck the respective preference in the Shortcuts Tab. Toolbar shortcuts must have an icon. You can specify an external file or create one by selecting the Create Icon option. Each icon can have a one letter label and a background color. You can specify the position of a button on the toolbar by modifying the Toolbar Order Number - buttons are placed on the toolbar from left to right, ordered from 0 to N (max 999). If there are more buttons with the same number, they will be ordered alphabetically. NOTE: You cannot create shortcuts/accelerators for read-only run configuration files. 23.1.3 Using environment variables in DVT Generic Run Configurations Environment variables can be set in the following ways: • in the shell where DVT was launched © AMIQ 204 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com • using +dvt_env+ directive in the project's build configuration file (.dvt/default.build) - see Environment Variables • from the Environment tab of the Run Configurations dialog (menu Run > Run Configurations) • directly within the command getting executed, for example: sh -c "env PROJECT_DIR= ${project_loc} iev -f ${project_loc}/iev/iev.f -c". 23.1.4 Using an alias in a DVT Generic Run Configuration Aliases only work in interactive shells. The command specified in the Run Configuration should be: <your_shell> -ic "<your_alias>" for example bash -ic "ll" When you create a new DVT Generic Run Configuration, DVT tries to guess the shell that you use from the $SHELL system variable and fills it in for you. 23.1.5 DVT Generic Run Configuration Variables The following variables are available when you configure a run configuration. These variables are automatically expanded each time the run configuration is launched. DVT variables Name Description ${selected_resources_loc} Absolute file system path of the selected resources separated by system file separator character. You can pass as argument a string to be used as separator. ${selected_resources_path} Workspace relative path of the selected resources separated by system file separator character. You can pass as argument a string to be used as separator. ${selected_resources_name} The name of the selected resources separated by system file separator character. You can pass as argument a string to be used as separator. ${dvt_current_build_file} Absolute path to the current DVT build file ${dvt_cli} © AMIQ Expands to the full DVT CLI path, using as the workspace option the current workspace: $DVT_HOME/bin/dvt_cli.sh -workspace ${workspace_loc} 205 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com Eclipse variables Name Description ${workspace_loc} The absolute path on the system's hard drive to Eclipse's workspace directory ${workspace_loc:<resource The absolute path on the system's hard drive to the specified resource. The path>} <resource path> is the full path of the resource relative to the workspace root. For example ${workspace_loc:/MyProject/MyFile.txt}. Note that the expanded result of this variable is not the same as ${workspace_loc}/ MyProject/MyFile.txt if the project's contents directory for MyProject is outside the workspace directory. ${project_loc}The absolute path on the system's hard drive to the currently selected resource's project or to the project being built if the external tool is run as part of a build. ${project_loc:<resource The absolute path on the system's hard drive to the specified resource's path>} project. The <resource path> is the full path of the resource relative to the workspace root. For example ${workspace_loc:/MyProject/MyFile.txt}. Note that the expanded result of this variable is not the same as ${workspace_loc}/ MyProject if the project's contents directory for MyProject is outside the workspace directory. ${container_loc} The absolute path on the system's hard drive to the currently selected resource's parent (either a folder or project). ${container_loc:<resource The absolute path on the system's hard drive to the specified resource's parent path>} (either a folder or project). The <resource path> is the full path of the resource relative to the workspace root. For example:${workspace_loc:/MyProject/ MyFolder/MyFile.txt}. Note that the expanded result of this variable is not the same as ${workspace_loc}/MyProject/MyFolder if the project's contents directory for MyProject is outside the workspace directory. ${resource_loc} The absolute path on the system's hard drive to the currently selected resource. ${resource_loc:<resource The absolute path on the system's hard drive to the specified resource. The path>} <resource path> is the full path of the resource relative to the workspace root. For example ${workspace_loc:/MyProject/MyFile.txt}. Note that the expanded result of this variable is not the same as ${workspace_loc}/ MyProject/MyFile.txt if the project's contents directory for MyProject is outside the workspace directory. ${project_path}The full path, relative to the workspace root, of the currently selected resource's project or of the project being built if the external tool is run as part of a build. ${container_path} The full path, relative to the workspace root, of the currently selected resource's parent (either a folder or project). ${resource_path} The full path, relative to the workspace root, of the currently selected resource. ${project_name} The name of the currently selected resource's project or of the project being built if the external tool is run as part of a build. ${container_name} The name of the currently selected resource's parent (either a folder or project). ${resource_name} The name of the currently selected resource. © AMIQ 206 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 23.2 Smart Log For any invocation you can either use predefined filter sets for specific tools, or define your own filters and style maps in order to view the simulation output like the one below. For more details: Smart Log - Filters Smart Log - Hyperlinks Smart Log - Styles Run Configurations 23.2.1 Smart Log - Filters To define a new filter for a DVT Generic run configuration go to the Filters Tab, click New... and specify filter parameters. © AMIQ 207 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com The main filter parameters are: • Name - The name of the filter • Severity - The severity of the filter. • Pattern - The filter pattern. Use ${file} to indicate a file hyper-link, and ${line} to indicate the line to jump to. Use (?<TAG_NAME>) to tag a group that will be used to randomly or explicitly assign a style (green bold for example - see Smart Log - Styles). © AMIQ 208 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com In the Filters Tab you can also set other parameters such as: • The maximum number of characters per line ( 1 ) • The maximum number of consecutive lines ( 2 ) • Whether links should jump to resources from the current working set ( 5 ) You can browse through predefined filters to see more examples ( 3 ). You can also add a filter pattern for your console title ( 4 ). This should contain capturing groups whose contents will be appended to the console title. For example the pattern in the image © AMIQ 209 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com above: "DVT_CONSOLE_TITLE\s+(\w+)" will append "[my_title]" to the console title when it will match a text like "DVT_CONSOLE_TITLE my_title" in the console output. Smart Log - Hyperlinks Smart Log - Styles Run Configurations 23.2.2 Smart Log - Hyperlinks Using the predefined filters enables you access to hyperlinks for files and also for some error codes of certain simulators. By clicking on a hyperlinked error code a dialog pops-up with the explanation of that error provided by the simulator help tool. DVT supports verror for Questa and nchelp for IUS. You can customize the name of these tools by setting the following environment variables: DVT_VERROR_TOOL_NAME and DVT_NCHELP_TOOL_NAME You can further customize this feature by creating your own regular expression for a custom hyperlink that launches a defined launch configuration. Use ${cmd:launch_configuration_name:regular_expression} to define these custom hyperlinks in your filter pattern, where launch_configuration_name is the name of the launch configuration that is going to be launched when clicking on the hyperlink and regular_expression is the regular expression whose matched result will be hyperlinked. For example when running a launch configuration that outputs the location of a log file like this one: in order to hyperlink the location of the file a pattern needs to be defined: © AMIQ 210 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com To summarize the content of the log file and display just the number of errors, warnings and infos in a new console: the "Summarize_log" launch configuration is defined with $DVT_CUSTOM_HYPERLINK_CAPTURING_GROUP_0 environment variable © AMIQ 211 the Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com Smart Log - Filters Smart Log - Styles Run Configurations © AMIQ 212 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 23.2.3 Smart Log - Styles Assuming the filter MyTrace has a pattern Trace (?<AGENT_KIND> a-zA-Z_0-9+) (?<INSTANCE> a-zA-Z_0-9+) .* that contains 2 groups tagged <AGENT_KIND> and <INSTANCE>, DVT will randomly assign a color for each unique combination (AGENT_KIND_match, INSTANCE_match). You'll get different colors for: • Master M1 (<AGENT_KIND> group matched "Master" and <INSTANCE> matched "M1") • Master M2 (<AGENT_KIND> group matched "Master" and <INSTANCE> matched "M2") • Slave S1 (<AGENT_KIND> group matched "Slave" and <INSTANCE> matched "S1") • Slave S2 (<AGENT_KIND> group matched "Slave" and <INSTANCE> matched "S2") Trace Master M1 sending packet... Trace Master M2 waiting for grant... Trace Slave S1 receiving packet... Trace Master M1 abort... Trace Slave S1 signal nack... Trace Slave S2 go to idle... You can manually assign colors by editing the .dvt/log_styles.xml file: <?xml version="1.0" encoding="UTF-8"?> <section name="attributes"> <item key="version" value="1"/> <list key="log_styles"> <item value="PATTERN_NAME=MyTrace, AGENT_KIND=Master, INSTANCE=M1, COLOR=#FF8000, FONT_STYLE=BOLD, BORDER_STYLE=NONE"/> <item value="PATTERN_NAME=MyTrace, AGENT_KIND=Master, INSTANCE=M2, COLOR=#008000, FONT_STYLE=BOLD, BORDER_STYLE=NONE"/> <item value="PATTERN_NAME=MyTrace, AGENT_KIND=Slave, INSTANCE=S1, COLOR=#800080, FONT_STYLE=BOLD, BORDER_STYLE=NONE"/> <item value="PATTERN_NAME=MyTrace, AGENT_KIND=Slave, INSTANCE=S2, COLOR=#8080FF, FONT_STYLE=BOLD, BORDER_STYLE=NONE"/> </list> © AMIQ 213 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com </section> For example the first line means "If pattern MyTrace matched and AGENT_KIND is 'Master' and INSTANCE is 'M1' set color to ...". You can use regular expressions, for example AGENT_KIND=M*. You can specify the COLOR, the FONT_STYLE (BOLD or ITALIC), and the BORDER_STYLE (DOT or SOLID or NONE). Smart Log - Filters Smart Log - Hyperlinks Run Configurations 23.3 External Builders An external builder allows you to invoke any script/tool and back-annotate its output (errors, warnings etc.) to the source code. It is a mean that allows you to connect any 3d party tool (compiler, linter etc.) to DVT error signaling engines. You can configure one or more external builders on a project: • The commands you define will be invoked on project clean, full build and incremental build. • The patterns you define will be applied on the command output to recognize errors, warnings etc. • The pattern matches will be back-annotated to the source code and presented in a similar way DVT signals errors (file, line, in the Errors View etc.) DVT ships with some predefined example configurations to get you started. For more details: How to define a new external builder How to invoke external builders External Builder Output Source Code Markers - errors warnings etc 23.3.1 How to define a new external builder Select the project in the Navigator View, right-click and choose Properties. Choose the DVT > External Builders properties. Click the New button to define a new external builder. From the list of external builders choose the generic External Builder or one of the pre-configured ones. © AMIQ 214 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com Main tab In the Main tab you can: © AMIQ 215 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 1. Specify the name of the builder. It will appear in the extracted messages, for example in the Errors View. 2. Specify the Full Build command - invoked on project full build and re-build. It is any regular shell command. You can use various variables (see pre-configured builders for examples). 3. Specify the Auto Build command - invoked on incremental builds, for example on save. It is any regular shell command. You can use various variables (see pre-configured builders for examples). 4. Specify the Clean command - invoked on project clean and before re-build. It is any regular shell command. You can use various variables (see pre-configured builders for examples). 5. Specify the working directory where the commands are invoked from. You can use various variables, browse the file system etc. (see pre-configured builders for examples). 6. Use various variables to pass as arguments to commands, for example ${incdir} or ${project_loc}. NOTE: If you wish to specify multiple commands or use wildcards or system variables, use sh -c "". E.g: sh -c "echo $USER; rm -f *.log" Filters tab © AMIQ 216 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com In the Filters tab you can: 1. Choose from one of the predefined filter categories. 2. Preview a filter. 3. Define a new filter, edit, remove or duplicate an existing one. Filters in predefined categories cannot be edited or removed (allow future enhancements or fixes). 23.3.2 How to invoke external builders External builders are automatically invoked after the DVT builder. For example when requesting to build or rebuild the project, when saving etc. Obviously if the command is empty for a specific phase (full, clean or auto), the builder is not invoked. You can also explicitly invoke only the external builders from the dedicated button . The focus must be on some editor in the project or a resource from the project should be selected. If you have multiple external builders defined for a project, you can select which one will be invoked by clicking on the respective entry in the menu: NOTE: When invoking only one builder, a Clean Project operation that removes all errors from all external builders is also triggered. 23.3.3 External Builder Output An external builder dumps its output in the console upon invocation. Using the defined filters, matches are identified and hyper-linked to source code. © AMIQ 217 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 23.3.4 Source Code Markers - errors warnings The matches found in the builder output using the filters are marked on the source code. They are visible in the editors, Problems View etc. You can right-click on a marker to jump to the Console output of the external builder to investigate the error/warning. © AMIQ 218 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 23.4 External Documentation You can browse and search through 3rd party documentation using the Eclipse help system. © AMIQ 219 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com For more details: Configure External Documentation Search External Documentation 23.4.1 Configure External Documentation NOTE: Integration with external documentation is not available by default in DVT distributions. You have to install the feature by following this procedure: http://dvteclipse.com/ install_update_site.html. At step #4 make sure you have checked the Help Plugins. NOTE: DVT doesn't ship with 3rd party documentation, if it is not in the public domain (for example doxygen docs are public).. Assuming you have the documentation installed, configure the path to it from menu Window > Preferences > Help: 23.4.2 Browse External Documentation Once configured it will appear in the help system (menu Help > Help Contents): © AMIQ 220 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 23. External Tools Integration www.dvteclipse.com 23.4.3 Search External Documentation You can search through the documentation directly from within Eclipse IDE. For example select and click Ctrl+Shift+H. The Help View is brought up with the matches. You can also bring up the Help View from menu Window > Show View > Other... > Help. © AMIQ 221 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 24. Custom Dialogs You can easily create your own dialogs or wizards and integrate them with scripts and flows using DVT Custom Dialogs. Create a Dialog A Custom Dialog is defined in a file with the .swtxml extension (see #1 below) using SWT/ XML Syntax. To simplify dialog creation, DVT includes: • a SWT/XML Editor (highlight, structure, autocomplete by Ctrl+Space ...) (see #2 below) • a SWT/XML Preview View for previewing the edited dialog (see #3 below) Open a Dialog A Custom Dialog can be opened from any Run Configuration by using the ${dvt_dialog_prompt:path_to_dialog.swtxml} variable. This variable takes as an argument © AMIQ 222 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com the dialog descriptor file. The path to the *.swtxml file can be specified, in order of precedence, either as an absolute path, as a path relative to the location of the run configuration file or as a path relative to the project. When the run configuration is executed, the ${dvt_dialog_prompt:path_to_dialog.swtxml} variable is replaced with the string produced by the dialog (i.e. the dialog output). For example you can use the following command in a DVT Generic run configuration: sh -c "echo ${dvt_dialog_prompt:path_to_dialog.swtxml}" You can also open a dialog using the Command_Line_Interface. A dialog looks like this: Use the Dialog Output The dialog output is a string composed by concatenating the output of each widget that has an id attribute specified. The output of a widget is its id concatenated with its value. The value differs across widgets, see Widgets. For example a Directory Chooser defined like this: <dvt:DirectoryChooser id="+incdir+" value="/path/to/some/dir"/> will produce: +incdir+/path/to/some/dir © AMIQ 223 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com See Customizing_the_Dialog_Output for more customization options. You can find some comprehensive examples in the DVT Predefined Projects shipped with DVT. You can start with an example dialog containing all the available widgets from menu New > Example > DVT > DVT Custom Dialog. 24.1 Quick Steps 1. Follow the wizard from menu New > Example > DVT > DVT Custom Dialog and place the customdialog.swtxml file in your DVT project. 2. The SWT/XML Editor and the SWT/XML Preview View will open. In the editor (bottom side) switch to the Source tab instead of the Design tab. 3. Change the title of the dialog by editing the id attribute of the topmost (first) Composite element 4. Craft the dialog to the desired look by using the provided examples, autocomplete (Ctrl +Space) and the SWT/XML Preview View 5. Create a Run Configuration and specify as command echo ${dvt_dialog_prompt:customdialog.swtxml} and run it to see and verify the output produced by the newly created dialog 6. When you are content with the output, replace the command with your_script.sh ${dvt_dialog_prompt:customdialog.swtxml} 24.2 Customizing the Dialog Output Because the id of a widget can be any string, you can construct a wide variety of output formats simply by changing the form of the id. Some common use-cases are: • Bash style dash arguments, e.g.: id=" -name " => -name value • Simulator style plus arguments, e.g.: id=" +incdir+" => +incdir+value • Make style equals arguments, e.g.: id=" name=" => name=value The dvt:Container widget This widget acts just like a Composite (i.e. you can surround sets of widgets or composites with it), but also takes some configuration parameters that are applied for all the widgets it contains. • To specify values for checkboxes use checkboxOffValue and checkboxOnValue parameters: © AMIQ 224 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com XML <dvt:Container layout="layout:grid;" parameters="checkboxOnValue: -cov 1;checkboxOffValue: -cov 0"> <Button id=" " style="CHECK" text="Collect coverage" selection="true" /> </dvt:Container> <dvt:Container layout="layout:grid;" parameters="checkboxOnValue: -wave 1;checkboxOffValue: -wave 0 <Button id=" " style="CHECK" text="Dump wave" /> </dvt:Container> Output: -cov 1 -wave 0 • The default separator for list elements is ;. To change it, use listSeparator parameter: XML <dvt:Container parameters="listSeparator: -f "> <dvt:DirectoryFilesListing id=" -f " rootDirectory="/tmp/files"/> </dvt:Container> Output: -f file_1 -f file_3 -f file_5 -f file_7 • To prevent the widget id from being output when the value is empty use noIdForEmptyValues parameter: XML <dvt:Container parameters="noIdForEmptyValues:true"> <Text id=" -text "></Text> </dvt:Container> • To quote values use quoteWith parameter: © AMIQ 225 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com XML <dvt:Container layout="layout:grid;numColumns:2;" parameters="quoteWith:'"> <Label text="Text:"></Label> <Text id=" -text " style="BORDER" text="text with whitespace that needs to be quoted" /> </dvt:Container> Output: -text 'text with whitespace that needs to be quoted' Note: If you wish to quote a string with double quotes you should escape the double quote character from XML syntax as follows: <dvt:Container parameters="quoteWith:""> • To show information about the value of a certain widget in the console title use showInTitle parameter: XML <dvt:Container parameters="showInTitle:true"> <Label text="Seed:"></Label> <Text id=" -seed " style="BORDER" text="42223" /> </dvt:Container> Output Further customization can easily be achieved by using a simple script for processing arguments. E.g. with the following bash snippet you can convert any argument to any desired form: #!/bin/bash # # bash_arg_converter.sh # while [ $# -gt 0 ]; do case $1 in -custom_*) argname="$1" © AMIQ 226 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com shift argval="$1" ## Customize here to desired format ## echo -n " $argname $argval " ;; *) echo -n " $1 " ;; esac shift done In the configuration command box use the following instead of ${dvt_dialog_prompt}: `./bash_arg_converter.sh ${dvt_dialog_prompt:customdialog.swtxml}` How to avoid quoting problems: in the .swtxml file it is recommended to use \" for nested quotes and for the Launch Command (Run Configurations > Launch Command) the variable ${dvt_dialog_prompt:customdialog.swtxml} should be surrounded by quotes, like in the image below: 24.3 SWT/XML Reference A custom dialog is described in an XML file with .swtxml extension. The first line must declare the file as XML: <?xml version="1.0" encoding="utf-8"?> The topmost element must be a Composite widget that defines the title of the dialog (specified by its id attribute) and the widgets that can be used (standard SWT widgets and custom DVT widgets): © AMIQ 227 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com <Composite xmlns="http://www.swtxml.com/swt" xmlns:sv="http://www.dvteclipse.com/xmlns/customdialog/sv" xmlns:dvt="http://www.dvteclipse.com/xmlns/customdialog" id="Dialog Title"> </Composite> A widget is a graphical component (e.g. Textbox, Checkbox) or a container of other widgets (e.g. Composite, Group). Each widget has a corresponding XML tag. You can use any widget to create your dialog. If you specify an id attribute for the widget tag, it will also produce an output in the dialog result. 24.3.1 Layouts There is a large set of layout options available. A complete reference can be found here [http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/ index.html]. The best approach to finding the desired layout is by using the extensive autocomplete provided by the SWT/XML Editor. Below there is a list common use-cases with examples. Horizonal Fill <Composite id=" -verbosity " layout="layout:fill;"> <Label text="Verbosity:"/> <Button id=" HIGH " style="RADIO" text="High"/> <Button id=" MEDIUM " style="RADIO" text="Medium"/> <Button id=" LOW " style="RADIO" text="Low"/> </Composite> Vertical Fill <Composite id=" -verbosity " layout="layout:fill;type:VERTICAL;"> <Label text="Verbosity:"/> <Button id=" HIGH " style="RADIO" text="High"/> <Button id=" MEDIUM " style="RADIO" text="Medium"/> <Button id=" LOW " style="RADIO" text="Low"/> </Composite> Grid © AMIQ 228 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com <Composite id=" -verbosity " layout="layout:grid;numColumns:3;"> <Label text="Verbosity:" layoutData="horizontalSpan:3;"/> <Button id=" HIGH " style="RADIO" text="High"/> <Button id=" MEDIUM " style="RADIO" text="Medium"/> <Button id=" LOW " style="RADIO" text="Low"/> </Composite> 24.3.2 Widgets Composite Composites are used for grouping other elements, and they have no visual representation. You can control how their children elements are arranged by specifying the layout attribute. See the Layouts section for information on how to control the look of the dialog. Group Groups are similar to composites, except that they are graphically delimited by a border and can have a title specified by the text attribute. Refer to Radio Button for an example. Label Labels are simple text fragments used to present information. Refer to Textbox for an example. Textbox XML <Label text="Seed number:"/> <Text id=" -seed " style="BORDER" text="123456" /> Output -seed 123456 Checkbox XML <Button id=" -cov " style="CHECK" text="Collect coverage" selection="true" /> <Button id=" -wave " style="CHECK" text="Dump wave" /> Output -cov © AMIQ 229 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com Radio Button XML <Group id=" -sim " text="Simulator" layout="layout:fill;type:VERTICAL;"> <Button id=" IUS " style="RADIO" text="IUS" selection="true"/> <Button id=" VCS " style="RADIO" text="VCS" /> <Button id=" Questa " style="RADIO" text="Questa" /> </Group> Output: -sim IUS Directory Chooser XML <dvt:DirectoryChooser id=" -sim_dir " question="Sim dir" layoutData="horizontalAlignment:FILL;" value="../sim"/> Output: -sim_dir ../sim File Chooser XML <dvt:FileChooser id=" -mem_file " question="Memory init data" layoutData="horizontalAlignment:FILL;" extensions="*.bin" © AMIQ 230 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com value="/common/mem/init.bin"/> Output: -mem_file /common/mem/init.bin Combo Box XML <Combo id=" -test " text="test_reset" items="test_random;test_reset;test_back2back;test_1;test_2;test_3"/> Output: -test test_reset Combo Box (read only) XML <Combo id=" -test " style="READ_ONLY" text="test_reset" items="test_random;test_reset;test_back2back;test_1;test_2;test_3"/> Output: -test test_reset List XML <List id=" -verbosity " © AMIQ 231 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com text="HIGH" style="BORDER|V_SCROLL" items="HIGH;MEDIUM;LOW;NONE"/> Output: -verbosity HIGH Directory Files Listing Lists all files/dirs that match a certain criteria in a specified folder. XML <dvt:DirectoryFilesListing id=" -file " question="Files Listing" includePaths="**\*.sv;**\*.e;**\*.vhdl" excludePaths="" rootDirectory="/home/path/.." fileType="FILE;DIR" outputOption="basename" showHiddenFiles="true" timeoutSeconds="10"/> Output: -file file_name Parameters • includePaths (excludePaths) - include (exclude) files based on their filename • Examples • "**\*.e;**\*.vhd" matches all .e and .vhd files/dirs in a directory tree. • "test\a??.sv" matches all files/dirs that start with an 'a', then two more characters and then ".sv", in a directory called test. • "**" matches everything in a directory tree. © AMIQ 232 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com • "**\test\**\XYZ*" matches all files/dirs that start with "XYZ" and where there is a parent directory called test (e.g. "abc\test\def\ghi\XYZ123"). • Default value for 'includePaths' is '**' • rootDirectory - can be specified as an absolute path or relative to a project in the current workspace. The path can also contain system variables. • fileType - select whether files, directories or both are shown • FILE - displays only files • DIR - displays only directories • FILE;DIR - displays both files and directories • Default value for 'fileType' is FILE • outputOption - option to format the selected file's name • 'basename' - returns the file's name without extension • 'fullname' - returns the file's name with extension • 'fullpath' - returns an absolute path of the selected file • 'relativepath' - a path relative to 'rootDirectory' • showHiddenFiles - by default is false • timeoutSeconds - if the root directory has a large number of children, listing them is stopped after * seconds Note: The includePaths and excludePaths attributes use ant-like path patterns [http:// ant.apache.org/manual/dirtasks.html#patterns]. Class Selector XML <sv:ClassSelector © AMIQ 233 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 24. Custom Dialogs www.dvteclipse.com id=" -test " question="Test to run" layoutData="horizontalAlignment:FILL; verticalAlignment:FILL; grabExcessHorizontalSpace:true; grabExcessVerticalSpace:true;" baseClassName="uvm_test"/> Output: -test test_2m_4s Note: This widget is only available for SystemVerilog. © AMIQ 234 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 25. Command Line Interface DVT has a Command Line Interface that allows you to perform various operations in DVT directly from the shell. For example you can create a new project, import an existing project, open a file etc. You send the CLI commands using the dvt_cli.sh script. 25.1 dvt_cli.sh With this script you can send commands to a running DVT from the terminal. If no running DVT instance is detected in the specified workspace, a new one is opened using dvt.sh. 25.2 Syntax ./bin/dvt_cli.sh -h[elp] ./bin/dvt_cli.sh [-s[ilent]] [-noexit] [-timeout <timeout>] [-workspace <dir>] [-import_workspace_settings <dir>] [-force_import_workspace_settings <dir>] <command> [-eclipse_args "<arguments to be passed to eclipse executable>"] -h[elp] -s[ilent] -noexit Display usage. [Optional] Do not print any WARNING / INFO messages. [Optional] If the script starts a new DVT, it will not exit until DVT is closed (i.e. dvt.sh finishes). -timeout <timeout> [Optional] If the script starts a new DVT, it will wait at most <timeout> seconds for DVT to start. Default: 100. -workspace <dir> [Optional] Location of the DVT workspace (overrides $DVT_WORKSPACE_PATH) -eclipsespace [Optional] Path to a custom eclipse storage directory (instead of ~/.eclipse). -import_workspace_settings <dir> [optional, dvt.sh argument] Path to the workspace from where settings will be imported. -force_import_workspace_settings <dir> [optional, dvt.sh argument] Same as -import_workspace_settings, but it will overwrite target workspace settings. -eclipse_ini <path_to_ini_file> [optional, dvt.sh argument] use this file instead of the default eclipse.ini when starting DVT (using this flag you can set JVM memory limits and other eclipse parameters as described in http://wiki.eclipse.org/Eclipse.ini) <command> All other arguments are considered the command to be passed to DVT. For more info on the available commands consult the COMMANDS section below. © AMIQ 235 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 25. Command Line Interface www.dvteclipse.com -eclipse_args <arguments to be passed to eclipse executable> Everything that follows this argument is passed to the eclipse executable as-is. THIS MUST BE THE LAST ARGUMENT OF THE COMMAND LINE 25.3 Notes This script can also be configured by the following system variables: $DVT_WORKSPACE_PATH [required if -workspace flag not specfied] location of the DVT workspace $DVT_NETCAT_EXECUTABLE [required if 'netcat' is not found in $PATH] location of the netcat exacutable This script requires netcat executable. To pass system variables to the script as arguments you should escape the $ (dollar) preceding the varible name with \ (backslash), e.g. \$USER 25.4 Examples Create a Verilog/SystemVerilog/VHDL project: $> dvt_cli.sh createProject $PROJ/my_project -lang vlog -lang vhdl -f $PROJ/my_project/filelist.f Create a project and place it in its own workingset in a new DVT window; overwrite project if it already exists; logically link some common library files under the project directory: $> dvt_cli.sh createProject $PROJ/my_project -lang vlog -lang vhdl -workingset -newwindow -force -f $PROJ/my_project/filelist.f -map common $COMMON_LIB Create an e Language project and place it in its own workingset in a new DVT window; logically link some common library files under the project directory: $> dvt_cli.sh createProject $PROJ/my_project -workingset -newwindow -force -top $PROJ/my_project/e/top.e -test $PROJ/my_project/tests/test1.e -map common $COMMON_LIB Create a Verilog/SystemVerilog/VHDL project and associate it with Perforce $> dvt_cli.sh createProject $PROJ/my_project -lang vlog -lang vhdl -f $PROJ/my_project/filelist.f -p4 P4PORT=company_server:1666,P4CLIENT=perforce-work,P4USER=user1 Create a project from an existing template: $> dvt_cli.sh createProjectFromTemplate /target/location -template $PROJ/template/ Import an existing project into the workspace and place it in its own workingset in a new DVT window: $> dvt_cli.sh importProject $PROJ/my_project -workingset -newwindow © AMIQ 236 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 25. Command Line Interface www.dvteclipse.com Open a file in the context of my_project and reveal line #50: $> dvt_cli.sh openFile $PROJ/my_project/e/bfm.e -line 50 -project my_project Open a custom dialog and print its output to the console: $> dvt_cli.sh openCustomDialog -file dialog.swtxml -project my_project Print a list of the files compiled in my_project: $> dvt_cli.sh listCompiledFiles -project my_project -unique 25.5 Makefile Example If you plan to integrate DVT in a flow which uses Make, you can find an example Makefile inside the uvm-1.1d_ubus predefined project: cd $DVT_HOME/predefined_projects/uvm-1.1d_ubus/examples/ # default target prints the usage make -f Makefile.dvt # Target dvt_gen creates the project directory # and generates the project configuration files make -f Makefile.dvt dvt_gen # Target dvt calls dvt_gen, starts DVT and creates the project make -f Makefile.dvt dvt # target dvt con 25.6 Commands 25.6.1 Create a Project (Mixed-Language Capable) createProject <project_path> [-workingset [-newwindow]] [-force] [-f|-F <file_path>] [-top <top_file_path>] [-test <test_file_path>] [-map <link_name> <target_path>] [-name <project_name>] [-lang <lang>] [-perspective <perspective>] [-p4 <connection_parameters>] [-exclude [name|path|projectRelativePath[_regex]=]<pattern>] <project_path> absolute path to project (must exist) -workingset [Optional] add project to a working set -newwindow [Optional] open a new window with the working set selected -force [Optional] required to overwrite existing project -f|-F [Optional] specify a command file for the project;-f and -F are mutually exclusive © AMIQ 237 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 25. Command Line Interface www.dvteclipse.com -top [Optional] specify a top file for the project; you can specify this option multiple times -test [Optional] specify a test file for the project; you can specify this option multiple times -map [Optional] create a linked resource called <link_name> pointing to <link_target> -name [Optional] use as project name instead of project's directory name -lang enable support for <lang> language; valid are: E, VLOG, VHDL (case-insensitive); at least one must be specified -perspective [Optional] switch to <perspective> after creating the project. By default, DVT switches to the DVT Perspective if multiple -lang directives are provided. If a single language is enabled, the corresponding perspective is activated. Valid argument values: E, VLOG, VHDL, DVT or a perspective id -p4 [Optional] share project with Perforce Eclipse plugin. The <connection_parameters> argument must be specified as a list of <parameter>=<value> separated by commas. Mandatory parameters: P4PORT=<host:port> (P4PORT=company_server:1666) P4CLIENT=<perforce_workspace_name> (P4CLIENT=perforce-work) P4USER=<username> (P4USER user1) Optional parameters: P4CHARSET=<charset_type> (P4CHARSET=none) P4PASSWD=<password> (P4PASSWD=password123) SAVEPASS=<save_in_secure_storage_or_not> (SAVEPASS=false) OFFLINE=<working_offline_or_not> (OFFLINE=false) -exclude [Optional] exclude from the project resources (files, directories) and their children recursively by name, location (absolute path) or projectRelativePath. For <name|location|projectRelativePath>=<pattern>, the pattern is case insensitive and allows simple wildcards (* and ?) For <name_regex|location_regex|projectRelativePath_regex>=<pattern>, the pattern is case sensitive and allows regular expressions If only <pattern> is specified, matching is done against the resouce <name> using simple wildcards (* and ?). [NOTE] DVT provides a user interface for managing Resource Filters as a simpler and more intuitive alternative to the Eclipse built-in Resource Filters management UI. However, DVT's UI only works for <projectRelativePath> filters that do not contain wildcards or regular expressions -build <name> [Optional] Set <name> as active build configuration. -<name>.build <build configuration directives ...> [Optional] Create the build configuration file <project>/.dvt/<name>.build with <build configuration directives> as content. All flags up to the end of the command line, or up to the next -<name>.build flag are considered build configuration directives. © AMIQ 238 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 25. Command Line Interface www.dvteclipse.com This flag cannot be used in conjunction with -f, -F, -test, or -top. NOTE: For backward compatibility, the commands createEProject and createSVProject are still recognized by the DVT CLI, and are equivalent with a createProject command plus the corresponding -lang flag 25.6.2 Create a Project From an Existing Template createProjectFromTemplate <target_path> -template <template_path> Creates a project into the workspace from an existing project template <target_path> absolute path to target directory <template_path> absoulute path of the project template 25.6.3 Import an Existing Project importProject <project_path> [-workingset [-newwindow]] [-p4 <connection_parameters>] Import an existing project into the workspace <project_path> absolute path to project -workingset [Optional] add project to a working set -newwindow [Optional] open a new window with the working set selected -p4 [Optional] share project with Perforce Eclipse plugin. The <connection_parameters> argument must be specified as a list of <parameter>=<value> separated by commas. Mandatory parameters: P4PORT=<host:port> (P4PORT=company_server:1666) P4CLIENT=<perforce_workspace_name> (P4CLIENT=perforce-work) P4USER=<username> (P4USER user1) Optional parameters: P4CHARSET=<charset_type> (P4CHARSET=none) P4PASSWD=<password> (P4PASSWD=password123) SAVEPASS=<save_in_secure_storage_or_not> (SAVEPASS=false) OFFLINE=<working_offline_or_not> (OFFLINE=false) 25.6.4 List Compiled Files listCompiledFiles -project <project_name>[ -unique][ -dirs][ -separator <separator>] List all the files compiled in the specified project, in compilation order. -project The project for which you want the list of compiled files. -unique [Optional] Remove duplicates form the list. -dirs [Optional] Get a list of parent directories of the compiled files instead of the files themselves. © AMIQ 239 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 25. Command Line Interface www.dvteclipse.com -separator [Optional] Specify a custom separator for the list elements; default is newline. 25.6.5 Launch a Run Configuration launchRunConfig [-blocking] -name <run_config_name> Launch a Run Configuration -blocking [Optional] return after the Run Configuration has completed -name Name of the Run Configuration to launch 25.6.6 Open a File openFile <path_to_file>[ -line <line_number>][ -project <project_name>] Open the file denoted by <path_to_file> in the DVT editor. -line [Optional] select and reveal the specified line in the editor; lines are counted from 1 -project [Optional] try to open the file from the specified project If the file does not exist in the given project, it is opened from any other project in the workspace. If the file does not exist in any project, it is opened out of any context (limited DVT capabilities). 25.6.7 Open a Custom Dialog openCustomDialog -file <path_to_swtxml> [-project <project_name>] Open a custom dialog and return the values that were filled in. -file .swtxml file describing the custom dialog. Either an absolute path or a path relative to project root -project [Optional] specify a project for the Custom Dialog 25.6.8 Refresh a project refreshProject <project_name> [-subpath <subpath>] [-depth <depth>] Refresh a project or a <subpath> in a project. -subpath [Optional] Only refresh <project_path>/<subpath>. May be a folder or a file. -depth [Optional] Only refresh to the provided depth. By default the refresh depth is 2, that is full (recursive) refresh. Possible values for <depth> are: 2 the resource and its direct and indirect members at any depth © AMIQ 240 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 25. Command Line Interface www.dvteclipse.com 1 the resource and its direct members 0 the resource, but not any of its members 25.6.9 Quit quit Quit DVT 25.6.10 Query the running status status Query the running status of DVT. 25.6.11 Print version version Print the DVT version number. © AMIQ 241 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 26. Macros Support 26.1 Inactive Code Highlight 26.1.1 Overview DVT editor marks the inactive code (i.e. code that is not compiled due to ifdef/ifndef) with a colored background. 26.1.2 Settings You can enable/disable the highlight and choose the highlight color: navigate to Window > Preferences then expand DVT > SystemVerilog > Editor. In the panel on the right side you can find the Inactive code highlight settings group. © AMIQ 242 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 26. Macros Support www.dvteclipse.com 26.2 Macro Expansion 26.2.1 Overview You can inspect the code generated by the expansion of a macro in two ways: • inline: DVT replaces the macro call with the generated code in place; the expanded code is guarded by pragmas that allow DVT to collapse the code back to the original • in a separate editor: DVT opens a new editor window that shows the generated code 26.2.2 Triggering To expand Place the cursor on a macro call in the editor, right click, select from the pop-up menu Macros and then the desired expand type. Expansion also works for an entire region of code, and all macros in the selection will be expanded. DVT also marks inline macro expansions in the code and collects them in the tasks view to allow easy tracking. You can choose to expand only the first level (i.e. further macro calls inside the top level macro are not expanded) or all levels. You can quickly collapse a macro expansion by right-clicking on its marker. © AMIQ 243 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 26. Macros Support www.dvteclipse.com To collapse Place the cursor on the expansion start pragma, and select Collapse Inline Expansion. Do not modify the pragmas generated by DVT because this might break the collapse functionality! DVT will notify you if the macro expansion in the editor does not match the current macro definitions. This may happen either because the expansion or the macro definitions have been modified since the macro was expanded. A compare window will display the differences between the editor expansion and the expansion with current macro definitions. 26.2.3 Tips • Shortcuts • There are some handy keyboard shortcuts you can use for triggering: Expand one level inline Ctrl Shift = Collapse inline expansion Ctrl Shift - • Selection • Expansion also works for an entire region of code, and all macros in the selection will be expanded. © AMIQ 244 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 26. Macros Support www.dvteclipse.com • Markers • DVT also marks inline macro expansions in the code and collects them in the tasks view to allow easy tracking. • Quick collapse • You can quickly collapse a macro expansion by right-clicking on its marker. 26.2.4 IMPORTANT NOTE Do not modify the pragmas generated by DVT because this might break the collapse functionality! The pragmas are: • @DVT_EXPAND_MACRO_INLINE_START • @DVT_EXPAND_MACRO_INLINE_ORIGINAL • @DVT_EXPAND_MACRO_INLINE_END 26.3 Macros and Quick Macros Views The Macros View and Quick Macros View present all the macros in the project and allow you to quickly locate a macro definition in code. © AMIQ 245 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 27. Reminders (TODO Markers) See the Tasks View. © AMIQ 246 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 28. OVM Support 28.1 OVM Compliance Review To perform the OVM Compliance review of your project click the SV Lint button in the toolbar of the Verilog Perspective, and select Lint As > OVM Compliance The OVM Compliance Review opens and contains the following tabs: • The Main Tab is the entry point (see image below). From here you can Export to HTML the report. • The Architecture Tab presents entities grouped by categories like agents, monitors, drivers etc. • The Checks Tab presents the status of all checks with links to relevant source lines. • The Statistics Tab presents various statistics. • The Waivers Tab can be used to edit and inspect the defined waivers. © AMIQ 247 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com 28.1.1 Architecture Tab The architecture tab can be used to inspect the automatically detected environment architecture. 28.1.2 Checks Tab The checks tab can be used to inspect the compliance review results. Different filter combinations can be used to reduce the amount of information and have a better overview of the problems. The bottom of the view can be used to write different comments for every check as a reminder or for a later review. © AMIQ 248 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com 28.1.3 Statistics Tab The statistics tab can be used to inspect the collected statistics. © AMIQ 249 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com 28.1.4 Waivers Tab The waivers tab can be used to add, remove, edit and inspect the waivers. Waivers are used to change the status of the hits that are matched by the waiver properties. Hits can also be removed using the same method. The status option can be set to: • DISABLED: hits are removed • ERROR: hits are reported as errors • WARNING: hits are reported as warnings • INFO: hits are reported as info There are two types of waivers: • Manually defined waivers • Code waivers (collected from code) Manually defined waivers can be created using New... button from the Waivers tab. The Waivers Editor dialog offers an easy way to configure a waiver. The parameters that can be configured are: • Waiver Name: an unique name for the waiver • Waiver File: the file where the waiver will be saved (from the waivers include tree) © AMIQ 250 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com • Apply on: the scope of the waiver (it applies on matched or non matched hits) • Status: the status that will be applied to the matched hits • Check Names: the name of the checks this waiver applies to • Line Ranges: the line, or line ranges (StartLine:EndLine) this waiver must match • Message Patterns: the regular expression this waiver must match (Perl-like or simple regular expression) The waiver will match a hit if all defined parameters match the hit properties (the check that generated the hit, line, file, or message). If a parameter is empty (not defined) it will match any value. Code waivers can be inserted in code as comments with the following syntax: // @DVT_LINTER_WAIVER_START ["NAME"] STATUS [CHECK_1, CHECK_2] © AMIQ 251 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com code line ... code line // @DVT_LINTER_WAIVER_END Where: • NAME: is the waiver name (optional) and must be enclosed within quotation marks • STATUS: is the status applied to the hits (mandatory) and must be one of the valid status values (DISABLE, ERROR, WARNING, INFO) • CHECK_1, CHECK_2: is a list of check names (optional) this waiver applies to, if it's not defined the waiver applies to all checks 28.1.5 HTML Report The report is divided in 3 panels. 1. Summary Page or Hits Page (right) 2. Categories and Checks Tree (middle) 3. Filters (left) Summary Page Summary page contains statistics charts and top failures from current state of the report. To toggle between summary page and hits page you can use the following button Donut charts represent the ratio of errors/warnings/infos/passed checks or hits. © AMIQ 252 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com Under the charts, checks and files with the highest number of failures are displayed. Hovering over the checks or files will pop-up a filtering button that can be used to add that check or file to the filters. Hits Page The page appears when a check or category is selected in the tree or when the following button is pressed The hits table contains all the hits of the selected check or category and allows filtering and sorting. © AMIQ 253 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com To sort the table after severity, check, file or line, click on the column header of that specific property. Multiple sorting can be achieved by holding <Shift> pressed when clicking on the column header. Hovering over the checks or files column will pop-up a filtering button that can be used to add that check or file in the filters. Above the hits table a quick filter bar is displayed. It can be used to filter furthermore the hits displayed in the table. The quick filter applies to any information (check, file, line, message) available in the table and only the matching rows will show in the table. The small chart above the quick filter represents the ratio and absolute values of hit severities displayed in the table. Below the hits table a details area shows the information of the selected category, check and hit. Categories and Checks Tree Selecting a check or category in the tree will display the hits table for it. The details area will be updated with the information about that category or check. The status of a category or a check is computed based on the contained hits. © AMIQ 254 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com Filters Filters work on the information displayed in all components (summary page, checks tree, hits table). Status filters are filtering out the hits and checks that don't match and are applied on selection. Checks and files filters are filtering out the hits and checks that don't contain match. They are applied only when Reapply Filters button is pressed. The filters can also contain regular expressions. To save the state of the report (filters, selected checks, etc.) the save button can be used. Clicking it will show the URL needed to open the report in the same state © AMIQ 255 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com 28.1.6 Problems View Integration The Problems View can be used to inspect the compliance errors with ease. As soon as the compliance is performed, all the problems automatically appear in the Problems View and as markers on the left part of the Editor. It is also possible to jump to source code or reapply the linting without leaving this view. 28.2 OVM Field Editor The OVM Field Editor enables you to inspect and edit OVM field registrations. It allows you to quickly add, remove and edit the registration macros and presents field statistics (total no. of fields, no. of registered fields, no. of warnings/errors). 28.2.1 Triggering Triggering the OVM Field Editor for a certain class: place the cursor anywhere inside the class definition, right click and select Source > UVM Field Editor from the pop-up menu. If you place the cursor on a field, the OVM Field Editor will show up with the respective field selected. If there are no previously registered macros, the ovm_*_utils_begin and ovm_*_utils_end macros shall be determined based on the class found at the cursor position. For a class that inherits from ovm_sequence, a pop-up dialog will ask you to select the desired sequencer from the available ones. 28.2.2 Interface On the left side of the Field Editor Dialog there is a list containing all the fields in the class. You can register/unregister the class by clicking on the checkbox in the Class group. When the class is registered you can register or unregister fields by checking the corresponding checkboxes. © AMIQ 256 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com When selecting a field you can also find information about the macro used for registration in the OVM Registration Macro group. If it's not the desired macro you can fix it using the Fix button. On the right side you can see the flag status of the registered fields. Its main features are highlighted and explained below: 1. Summary information regarding registrations: no. of registered fields, total no. of fields in class, no. of errors, no. of warnings. 2. Content Filters matched indication 3. Class checkbox that allows you to toggle the registration state. 4. Field type 5. Field name 6. Field icon. The field icons have the following meanings: Icon Meaning The class is not registered The class is registered The field is a virtual interface © AMIQ 257 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com The field is instantiated and is a UVM Component The field is instantiated and is a UVM Object The field is a port The field is an array The field is not registered. The field is registered. The field is registered and affected by a warning. The field is registered and affected by an error. 7. Field registration checkbox that allows you to toggle the registration state. 8. Select/Deselect all buttons. Used to register/unregister all the fields in a class. 9. Fix button. Used to fix a macro registration if the right one isn't used 10. The UVM Registration Macro that is currently used for the selected field. 11. Message area: displays error/warning messages. 12. Field operation checkbox. If checked, the flag will be added to the registration. 13. Field operation controls: allow you to select / clear all of the checkboxes. 14. Print radix radio button. If checked, the radix will be set in the registration. At most one radix can be specified. 15. Tooltip: hover with the mouse pointer any field operation checkbox or print radix radio button to obtain information about the flag. 16. Clear print radix: allows you to unset the print radix (set all radio buttons off). 28.2.3 Problems OVM Field Editor reports the following problems: Message Severity This field is registered with <current_macro_name> instead of Error <macro_determined_by_dvt> Radix flag is specified more than once. Error The flags for the field registration are incorrectly specified. They should be Error OR-ed together using # (pipe character). © AMIQ 258 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com DVT could not determine a registration macro for this field. Warning ovm_field_object will be used. 28.2.4 Tips • Shortcut • You can quickly trigger by using <Shift+Alt+G>. • Fixing problems • To fix a problem, press the fix button if it's a wrong registration macro or unregister and register the field. Note: registering and unregistering the field will reset the flags/registration macro. • Multiple selection • You can't use multiple selection to perform registration/unregistration of more fields. Note: if you want you can register/unregister all the fields using the Select/Deselect all buttons. 28.3 OVM Smart Log DVT ships with predefined filters for OVM that allow you to view colored and hyper-linked logs like the one below. To turn on OVM Smart Log: • Select the predefined OVM filters as indicated below: © AMIQ 259 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com 28.4 Quick OVM Documentation Access • The Doxygen documentation is available at menu Help > Help Contents > OVM release number Doxygen . You may choose documentation version from menu Window > Preferences > Help > OVM Doxygen. • The CDN OVM/UVM User Guide is available at menu Help > Help Contents > CDN OVM/UVM User Guide. You need to configure the path to installed documentation from menu Window > Preferences > Help > CDN OVM/UVM User Guide. You can use Ctrl+Shift+H to quickly search through documentation (with or without selection in the editor). 28.5 OVM Templates DVT offers autocomplete templates for OVM components. Just type in the editor ovm then hit <Ctrl + Space> twice and a drop-down list will offer you the available templates. © AMIQ 260 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 28. OVM Support www.dvteclipse.com After you pick the desired template, you can fill in the template parameters (e.g. company prefix, component name etc.). © AMIQ 261 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 29. UVM Support 29.1 UVM Browser The UVM Browser view is an intuitive entry point for exploring all the classes of an UVMbased verification environment. It allows you to explore UVM-based classes grouped by categories, like agents, monitors, drivers or sequences and easily inspect the UVM flow specific API, like overridden phases, class members registered to the factory or TLM ports. Open the view from menu Window > Show View > Other... > DVT > UVM Browser. You can use CamelCase or Simple Regex to locate a specific element. © AMIQ 262 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com Toolbar Prepend Prepend the enclosing package name to the name of each class, useful when Package you explore for example all agents across packages. Name Group Group classes by package. You may chose to see for example all agents across By packages or to explore all categories in a specific package. Package The top UVM Types Panel presents all the UVM-based classes defined in your verification environment. For convenience they are grouped by categories like agents or monitors. The inheritance hierarchy between classes is shown up to the UVM base class. © AMIQ 263 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com The categories and their corresponding base classes are the following Categories Base class Agents uvm_agent Drivers uvm_driver Envs uvm_env Items uvm_sequence_item Monitors uvm_monitor Memories uvm_mem Ports uvm_port_base, uvm_tlm_if_base, uvm_tlm_extension_base, uvm_sqr_if_base, uvm_tlm_req_rsp_channel, uvm_tlm_fifo_base Registers uvm_reg Backdoor Registers uvm_reg_backdoor Frontdoor Registers uvm_reg_frontdoor Register Adapters uvm_reg_adapter Register Blocks uvm_reg_block Register Fields uvm_reg_field Register Sequences uvm_reg_sequence FIFO Registers uvm_reg_fifo Register Files uvm_reg_file Register Maps uvm_reg_map Scoreboards uvm_scoreboard Sequencers uvm_sequencer Sequences uvm_sequence Tests uvm_test Other Components uvm_component Other Objects uvm_object The bottom Members Panel panel displays class members. You can toggle the UVM Members Mode on/off using the button. In UVM Members Mode it displays the following members: • Virtual interfaces • Class members registered to the factory using the `uvm_field... macros • Class members of an UVM-based type (TLM ports included) © AMIQ 264 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com • Overridden functions and tasks from parent UVM base classes When the UVM Members Mode is off, the Members Panel behaves exactly like the Members Panel of the Type Hierarchy View. 29.2 UVM Compliance Review To perform the UVM Compliance review of your project click the SV Lint button in the toolbar of the Verilog Perspective, and select Lint As > UVM Compliance The UVM Compliance Review opens and contains the following tabs: • The Main Tab is the entry point (see image below). From here you can Export to HTML the report. • The Architecture Tab presents entities grouped by categories like agents, monitors, drivers etc. • The Checks Tab presents the status of all checks with links to relevant source lines. • The Statistics Tab presents various statistics. • The Waivers Tab can be used to edit and inspect the defined waivers. © AMIQ 265 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.2.1 Architecture Tab The architecture tab can be used to inspect the automatically detected environment architecture. 29.2.2 Checks Tab The checks tab can be used to inspect the compliance review results. Different filter combinations can be used to reduce the amount of information and have a better overview of the problems. The bottom of the view can be used to write different comments for every check as a reminder or for a later review. © AMIQ 266 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.2.3 Statistics Tab The statistics tab can be used to inspect the collected statistics. © AMIQ 267 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.2.4 Waivers Tab The waivers tab can be used to add, remove, edit and inspect the waivers. Waivers are used to change the status of the hits that are matched by the waiver properties. Hits can also be removed using the same method. The status option can be set to: • DISABLED: hits are removed • ERROR: hits are reported as errors • WARNING: hits are reported as warnings • INFO: hits are reported as info There are two types of waivers: • Manually defined waivers • Code waivers (collected from code) Manually defined waivers can be created using New... button from the Waivers tab. The Waivers Editor dialog offers an easy way to configure a waiver. The parameters that can be configured are: • Waiver Name: an unique name for the waiver • Waiver File: the file where the waiver will be saved (from the waivers include tree) © AMIQ 268 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com • Apply on: the scope of the waiver (it applies on matched or non matched hits) • Status: the status that will be applied to the matched hits • Check Names: the name of the checks this waiver applies to • Line Ranges: the line, or line ranges (StartLine:EndLine) this waiver must match • Message Patterns: the regular expression this waiver must match (Perl-like or simple regular expression) The waiver will match a hit if all defined parameters match the hit properties (the check that generated the hit, line, file, or message). If a parameter is empty (not defined) it will match any value. Code waivers can be inserted in code as comments with the following syntax: // @DVT_LINTER_WAIVER_START ["NAME"] STATUS [CHECK_1, CHECK_2] code line ... code line // @DVT_LINTER_WAIVER_END Where: • NAME: is the waiver name (optional) and must be enclosed within quotation marks • STATUS: is the status applied to the hits (mandatory) and must be one of the valid status values (DISABLE, ERROR, WARNING, INFO) • CHECK_1, CHECK_2: is a list of check names (optional) this waiver applies to, if it's not defined the waiver applies to all checks 29.2.5 HTML Report The report is divided in 3 panels. © AMIQ 269 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 1. Summary Page or Hits Page (right) 2. Categories and Checks Tree (middle) 3. Filters (left) Summary Page Summary page contains statistics charts and top failures from current state of the report. To toggle between summary page and hits page you can use the following button Donut charts represent the ratio of errors/warnings/infos/passed checks or hits. Under the charts, checks and files with the highest number of failures are displayed. Hovering over the checks or files will pop-up a filtering button that can be used to add that check or file to the filters. Hits Page The page appears when a check or category is selected in the tree or when the following button is pressed The hits table contains all the hits of the selected check or category and allows filtering and sorting. © AMIQ 270 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com To sort the table after severity, check, file or line, click on the column header of that specific property. Multiple sorting can be achieved by holding <Shift> pressed when clicking on the column header. Hovering over the checks or files column will pop-up a filtering button that can be used to add that check or file in the filters. Above the hits table a quick filter bar is displayed. It can be used to filter furthermore the hits displayed in the table. The quick filter applies to any information (check, file, line, message) available in the table and only the matching rows will show in the table. The small chart above the quick filter represents the ratio and absolute values of hit severities displayed in the table. Below the hits table a details area shows the information of the selected category, check and hit. Categories and Checks Tree Selecting a check or category in the tree will display the hits table for it. The details area will be updated with the information about that category or check. The status of a category or a check is computed based on the contained hits. © AMIQ 271 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com Filters Filters work on the information displayed in all components (summary page, checks tree, hits table). Status filters are filtering out the hits and checks that don't match and are applied on selection. Checks and files filters are filtering out the hits and checks that don't contain match. They are applied only when Reapply Filters button is pressed. The filters can also contain regular expressions. To save the state of the report (filters, selected checks, etc.) the save button can be used. Clicking it will show the URL needed to open the report in the same state © AMIQ 272 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.2.6 Problems View Integration The Problems View can be used to inspect the compliance errors with ease. As soon as the compliance is performed, all the problems automatically appear in the Problems View and as markers on the left part of the Editor. It is also possible to jump to source code or reapply the linting without leaving this view. 29.3 UVM Content Filters Out-of-the-box UVM Predefined Content Filters eliminate the unnecessary content overhead by automatically filtering out the irrelevant internal information from the UVM library. As it compiles the UVM library, DVT detects issues, collects task reminders, and analyzes the API defined by the UVM library, but it hides them by default. You can bring in the full content with a simple click. For more details see Content Filters. 29.4 UVM Factory Queries Factory Queries for config db setters, config db getters or factory overrides help quickly and accurately locate UVM factory related constructs that may influence the behavior of the testbench. You can run these queries from the UVM entry of the main menu. © AMIQ 273 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com Results are available in the Search View. • Tip Use the Quick Search to locate specific hits • Tip Navigate matches with Next/Prev buttons The Facoty Queries are detailed in the table below: © AMIQ 274 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com Query shows usages of config uvm_component.set_config_int() db setters uvm_component.set_config_string() uvm_component.set_config_object() uvm_config_db.set() config uvm_component.get_config_int() db getters uvm_component.get_config_string() uvm_component.get_config_object() uvm_config_db.get() factory uvm_component.set_type_override_by_type() overrides uvm_component.set_inst_override_by_type() uvm_component.set_type_override() uvm_component.set_inst_override() uvm_factory.set_inst_override_by_type() uvm_factory.set_inst_override_by_name() uvm_factory.set_type_override_by_type() uvm_factory.set_type_override_by_name() uvm_component_registry.set_type_override() uvm_component_registry.set_inst_override() uvm_object_registry.set_type_override() uvm_object_registry.set_inst_override() © AMIQ 275 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.5 UVM Field Editor The UVM Field Editor enables you to inspect and edit UVM field registrations. It allows you to quickly add, remove and edit the registration macros and presents field statistics (total no. of fields, no. of registered fields, no. of warnings/errors). 29.5.1 Triggering Triggering the UVM Field Editor for a certain class: place the cursor anywhere inside the class definition, right click and select Source > UVM Field Editor from the pop-up menu. If you place the cursor on a field, the UVM Field Editor will show up with the respective field selected. If there are no previously registered macros, the uvm_*_utils_begin and uvm_*_utils_end macros shall be determined based on the class found at the cursor position. For a class that inherits from uvm_sequence, a pop-up dialog will ask you to select the desired sequencer from the available ones. 29.5.2 Interface On the left side of the Field Editor Dialog there is a list containing all the fields in the class. You can register/unregister the class by clicking on the checkbox in the Class group. When the class is registered you can register or unregister fields by checking the corresponding checkboxes. When selecting a field you can also find information about the macro used for registration in the UVM Registration Macro group. If it's not the desired macro you can fix it using the Fix button. On the right side you can see the flag status of the registered fields. Its main features are highlighted and explained below: © AMIQ 276 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 1. Summary information regarding registrations: no. of registered fields, total no. of fields in class, no. of errors, no. of warnings. 2. Content Filters matched indication 3. Class checkbox that allows you to toggle the registration state. 4. Field type 5. Field name 6. Field icon. The field icons have the following meanings: Icon Meaning The class is not registered © AMIQ 277 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com The class is registered The field is a virtual interface The field is instantiated and is a UVM Component The field is instantiated and is a UVM Object The field is a port The field is an array The field is not registered. The field is registered. The field is registered and affected by a warning. The field is registered and affected by an error. 7. Field registration checkbox that allows you to toggle the registration state. 8. Select/Deselect all buttons. Used to register/unregister all the fields in a class. 9. Fix button. Used to fix a macro registration if the right one isn't used 10. The UVM Registration Macro that is currently used for the selected field. 11. Message area: displays error/warning messages. 12. Field operation checkbox. If checked, the flag will be added to the registration. 13. Field operation controls: allow you to select / clear all of the checkboxes. 14. Print radix radio button. If checked, the radix will be set in the registration. At most one radix can be specified. 15. Tooltip: hover with the mouse pointer any field operation checkbox or print radix radio button to obtain information about the flag. 16. Clear print radix: allows you to unset the print radix (set all radio buttons off). 29.5.3 Problems UVM Field Editor reports the following problems: Message Severity This field is registered with <current_macro_name> instead of Error <macro_determined_by_dvt> © AMIQ 278 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support Radix flag is specified more than once. www.dvteclipse.com Error The flags for the field registration are incorrectly specified. They should be Error OR-ed together using # (pipe character). DVT could not determine a registration macro for this field. Warning uvm_field_object will be used. 29.5.4 Tips • Shortcut • You can quickly trigger by using <Alt+Shift+G>. • Fixing problems • To fix a problem, press the Fix button if it's a wrong registration macro or unregister and register the field. Note: registering and unregistering the field will reset the flags/registration macro. • Multiple selection • You can't use multiple selection to perform registration/unregistration of more fields. Note: if you want you can register/unregister all the fields using the Select/Deselect all buttons. 29.6 UVM Smart Log DVT ships with predefined filters for UVM that allow you to view colored and hyper-linked logs like the one below. To turn on UVM Smart Log: • Select the predefined UVM filters as indicated below: © AMIQ 279 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.7 UVM Templates DVT offers autocomplete templates for UVM components. Just type in the editor uvm then hit <Ctrl + Space> twice and a drop-down list will offer you the available templates. After you pick the desired template, you can fill in the template parameters (e.g. company prefix, component name etc.). 29.8 UVM Verification Hierarchy See the Verification Hierarchy View. © AMIQ 280 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com 29.9 OVM to UVM Migration DVT provides an OVM to UVM migration wizard that automatically performs all the necessary changes within an existing OVM project. The changes may also be reviewed and customized. 29.9.1 Triggering Right click on a project in the Navigator View, then select Refactor > Migrate OVM to UVM. 29.9.2 Preferences In the first page of the wizard you can configure: 1. Refactor Script: the Refactor Script to use for performing the migration. DVT is shipped with predefined scripts (e.g. OVM 2.1.1 to UVM 1.0 EA), but you can also use custom scripts tailored to your needs (just click Browse to point to a script file on your disk). You can see the content of the selected script by clicking Inspect. 2. Skip Linked Resources: in general, linked resources are files located outside of the DVT project (like, for instance, the OVM library source files) so you might want the migration to skip them. 3. Disable OVM Project: in case your project is configured with DVT as an OVM project, the wizard removes this configuration. 4. Enable UVM Project: in case your project is not configured with DVT as an UVM project, the wizard adds this configuration. 5. UVM Library Path: if you enable UVM, the UVM library is compiled up-front, and you must specify its location. You can may use system variables ($UVM_HOME in the snapshot below). 6. Create UVM Linked Resource: for quick navigation in the library code, you may link (logical link, nothing is created on disk) the library files to your project. This way, although outside your project, the UVM sources will not be shown with gray icons and limited functionality. 7. Name of the linked folder © AMIQ 281 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com At this step you can either click OK to finish or Preview to inspect the changes that are about to be made. 29.9.3 Review changes In the review page you can inspect the changes that will be performed, and filter out (uncheck) the changes you don't want to perform. 1. Select a file/change to see the source differences produced by the refacotring. 2. Uncheck a file/change to prevent those changes from being applied. © AMIQ 282 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 29. UVM Support www.dvteclipse.com Click OK to apply the changes. © AMIQ 283 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 30. VMM Support 30.1 VMM Smart Log DVT ships with predefined filters for VMM that allow you to view colored and hyper-linked logs like the one below. To turn on VMM Smart Log: • Use +define+VMM_LOG_FORMAT_FILE_LINE in the simulator invocation or define VMM_LOG_FORMAT_FILE_LINE in the source code. • Select the predefined VMM filters as indicated below: Smart Log © AMIQ 284 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 30. VMM Support www.dvteclipse.com 30.2 Quick VMM Documentation Access • The Doxygen documentation is available at menu Help > Help Contents > VMM release number Doxygen '''. You may choose documentation version from menu '''Window > Preferences > Help > VMM Doxygen . • The SNPS VMM documentation is available at menu Help > Help Contents > SNPS VMM '''. You need to configure the path to installed documentation from menu '''Window > Preferences > Help > SNPS VMM. • The SNPS Testbench documentation is available at menu Help > Help Contents > SNPS Testbench '''. You need to configure the path to installed documentation from menu '''Window > Preferences > Help > SNPS Testbench. You can use Ctrl+Shift+H to quickly search through documentation (with or without selection in the editor). 30.3 VMM Templates DVT offers autocomplete templates for VMM components. Just type in the editor VMM then hit <Ctrl + Space> twice and a drop-down list will offer you the available templates. After you pick the desired template, you can fill in the template parameters (e.g. transactor name, environment name etc.). © AMIQ 285 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 30. VMM Support 286 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 31. Settings Management DVT allows you to customize various settings from memory allocation thresholds to run configurations or editor specific preferences like tab width and code templates. Starting with version 3.5, DVT provides an out of the box mechanism that simplifies settings management. Settings are organized in several precedence levels in order to allow a fine-grained control: • Project level settings are stored in <project>/.dvt directory • User level setting are stored by default in $HOME/.dvt/settings, the location can be customized using $DVT_USER_SETTINGS system variable • Common level settings are not stored by default, the location can be customized using $DVT_COMMON_SETTINGS system variable The order of precedence (starting with the higher one) is: • Project level • User level • Common level In order to reuse a specific setting, for example from project level to user level, all you have to do is copy it from the project level specific file to the user level specific file. In similar way you can move settings from user to common level for team or company wide reuse. 31.1 Managed Settings Not all settings are used in the same way. Some of the settings might be used only when the platform starts and others only when a specific operation is invoked. The following list presents the type of settings, the file where they are stored by default and order of precedence: • Eclipse Launcher Configuration • file name: eclipse.ini • description: settings used by the Eclipse launcher (executable) to start the process, for example memory allocation thresholds • precedence: • dvt.sh arguments • user © AMIQ 287 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com • common • $DVT_HOME/eclipse/eclipse.ini • handling: merged by precedence order; flags that have a key-value nature will be overwritten by the higher precedence value and all other flags will be accumulated • relevant settings: • memory allocation thresholds (-Xms, -Xmx, -Xss) • flags used by Eclipse • compiler exclude options • GTK RC File • file name: theme.gtkrc • description: settings used by GTK window manager under linux operating system to determine the window colors for buttons, text, etc. • precedence: • user • common • $DVT_HOME/.dvt.gtkrc • handling: replaced by precedence order; the file with higher precedence will be used • Workspace Preferences • file name: preferences.ini • description: any changes done through Window > Preferences dialog will be automatically reflected in the preferences.ini file at user level; • precedence: • user • common • handling: merged by precedence order; preferences will be overwritten by the higher precedence value • relevant settings: © AMIQ • key bindings 288 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com • global code templates • editor customizations • task tags • DVT Generic Run Configurations • file name: *.launch • description: run configurations are used to run external programs and can be serialized in *.launch files • handling: accumulated from all opened projects (including user and common locations automatically linked in DVT-Settings project) • Verissimo Linter Configurations • file name: *.launch • description: linter configurations are used to set the linter configuration files (*_lint_ruleset.xml, *_lint_waivers.xml, *_lint_user_notes.xml, *_lint_manual_checks_status.xml) and can be serialized in *.launch files • handling: accumulated from all opened projects (including user and common locations automatically linked in DVT-Settings project) • Compile Waivers • file name: waivers.xml • description: used to change the severity (promote/demote) or disable the problems reported by DVT during compilation (see Compile Waivers) • precedence: • project • user • common • handling: accumulated from all levels in precedence order • default location: <project>/.dvt/waivers.xml • Content Filters • file name: content_filters.xml © AMIQ 289 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com • description: used to eliminate the unnecessary clutter introduced by 3rd party libraries like UVM (automatically hiding their API, TODO reminders, problems, ...) • precedence: • project • user • common • handling: accumulated from all levels in precedence order • default location: <project>/.dvt/content_filters.xml • External Builders • file name: external_builders.xml • description: used to invoke any 3rd party script or tool and back-annotate its output (errors, warnings etc.) to the source code (see External Builders) • precedence: there can't be two configurations with the same name, if it happens there is no guarantee on the precedence order • handling: accumulated from all levels • default location: <project>/.dvt/external_builders.xml • Export HTML Documentation • file name: dvt_export_html.xml • description: settings used by the Export HTML Documentation Wizard (see Export HTML Documentation) • precedence: • project • user • common • handling: flags that have a key-value nature will be overwritten by the higher precedence value and all other flags will be accumulated • default location: <project>/.dvt/dvt_export_html.xml © AMIQ 290 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com 31.2 Unmanaged Settings There are also some settings that are not handled by DVT. The following list presents settings that won't be handled: • Position of dialogs • Is persisted when the same workspace is used but in can't be shared using user or common levels • Size of views • Is persisted when the same workspace is used but in can't be shared using user or common levels • Last opened perspective or saved perspectives • Is persisted when the same workspace is used but in can't be shared using user or common levels • Working Sets • Are persisted when the same workspace is used but in can't be shared using user or common levels • Secure storage information • This is preserved in $HOME/.eclipse/org.eclipse.equinox.security and is not handled by DVT • User installed plugins in a shared installation • This is preserved in $HOME/.eclipse/org.eclipse.platform* directories and is not handled by DVT • Settings used by other plugins that are not stored using the workspace preferences engine • These settings can be stored anywhere so is not possible to handle them 31.3 User and Common Settings Location • User level settings • Location is set by default in $HOME/.dvt/settings when DVT is started using dvt.sh or dvt_cli.sh scripts on Linux. On Windows and MacOS the user location is not defined and the engine for settings management is disabled. © AMIQ 291 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com • To set or change the location of user level settings the $DVT_USER_SETTINGS variable must be set in the environment before DVT is started. • Common level settings • Location is not defined by default. • To set or change the location for common level settings, the $DVT_COMMON_SETTINGS variable must be set in the environment before DVT is started. • If multiple common levels are needed then the variable can contain multiple paths separated using the OS's path separator. In this case the last directory will have the higher precedence. 31.4 Use Cases Using the same settings across all workspace and projects can be achieved by configuring the corresponding file and adding it in the user location (where $DVT_USER_SETTINGS points to). To share the settings with other users you must put the setting files in a common location and set $DVT_COMMON_SETTINGS to that location. A recommended work-flow for sharing any type of settings with other users is: 1. Start DVT in a clean workspace 2. Customize preferences 3. Define run configurations, compile waivers, etc. on a reference project and move the corresponding files in the user location (available under DVT-Settings/user) 4. Close DVT and move the files from the user location to a common location where all users can point the $DVT_COMMON_SETTINGS system variable 31.4.1 Memory Allocation Thresholds Create or modify the eclipse.ini file in the user settings location and add the new memory arguments. For example: -vmargs -Xmx2048m -Xms128m -Xss1m After adding the new memory thresholds every DVT instance will use them. If you want to change the memory only for a single invocation of DVT you can use the dvt.sh arguments (Xmx, -Xms, -Xss) in the command used to invoke DVT. © AMIQ 292 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com To share this configuration with other users you can put the eclipse.ini file in common location. Users will still be able to change the settings using an eclipse.ini in the user location. 31.4.2 Workspace Preferences Workspace Preferences are automatically saved in the user location preferences.ini file. Reusing them across workspaces is automatically achieved. To share a set of preferences you must copy the preferences.ini file in the common location. Some workspace preferences that are usually shared between users are: • Key Bindings - General > Keys • Code Templates - DVT > Code Templates • Task Tags - DVT > Task Tags • Formatting - DVT > e Language / SystemVerilog / VHDL > Editor > Formatting • Tab width and spaces > General > Editors > Text Editors 31.4.3 Run Configurations Run Configurations can be used to launch 3rd party tools and can be reused across workspaces and projects by using the Common Tab > Save as > Shared file and save it in DVT-Settings/ user project directory. To share them with other users move them in the common location. 31.4.4 Compile Waivers You can create Compile Waivers for libraries or IPs using a reference project and copy the <project>/.dvt/waivers.xml file in the user location to make it available for all projects. To share them with other users move them in the common location. 31.4.5 Content Filters You can create Content Filters for libraries or IPs using a reference project and copy the <project>/.dvt/content_filters.xml file in the user location to make it available for all projects. To share them with other users move them in the common location. 31.4.6 External Builders You can create External Builders to invoke any 3rd party script or tool and back-annotate the output to the source code using the wizard. The external builders will be saved in © AMIQ 293 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com <project>/.dvt/external_builders.xml and you can reuse them by copying the file in the user location. 31.4.7 Export HTML Documentation To use the same settings for Export HTML Documentation regardless of the project where you create the documentation you must generate a documentation using the desired settings. They will be saved in the <project>/.dvt/dvt_export_html.xml file. You can manually edit the file to remove specific settings like the <title> tag. The file can be moved afterwards in the user or common locations. 31.5 Examples To understand how settings from all levels are merged we can use the following layout for common, user and project levels: > common_settings/ > waivers.xml > preferences.ini > eclipse.ini > run_sim.launch > user_settings/ > preferences.ini > run_compile.launch > project/ > .dvt/ > ........... > waivers.xml DVT is invoked using the following command: dvt.sh -Xmx 4096m For the above example DVT will start using the flags specified in the common level eclipse.ini but the memory allocation threshold will be the one specified in the command (4096 MB) because the command line arguments have precedence. The DVT session will contain the run_sim run configuration and also the run_compile run configuration because these are accumulated from all levels. Workspace preferences will result from merging the preferences.ini from both common and user levels but if there are any conflicts the user level preferences will have precedence. Nonconflicting preferences are accumulated from both levels. When operating on the opened project, the compilation problems will be waived using the accumulated waivers from common level and project level (project/.dvt/waivers.xml). © AMIQ 294 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com 31.6 Deprecated Settings Management (before DVT 3.5) DVT settings use the Eclipse Platform settings mechanism. By settings we refer to every option that can be configured by users and are restored between different invocations of DVT. There are 3 types of settings: • Workspace Settings • Project Settings • Other Settings 31.6.1 Workspace Settings Workspace settings are mainly those that can be set in Window > Preferences dialog. These settings are persisted in the <workspace>/.metadata/.plugins/ org.eclipse.core.runtime/.settings/ There are also other settings that can be stored under <workspace>/.metadata/ directory and can be considered workspace settings. Some of them are: • The paths of the imported workspace projects • The last position of different dialogs • The settings of different views (e.g. column order) 31.6.2 Project Settings These settings are always correlated to the project and are saved under the project directory. It is very important to understand that every Eclipse plugin can create and maintain its own set of files with settings related to that plugin. .project file By default, the Eclipse Platform creates in every project directory a .project file that can contain the following information: • Project name • Project natures and builders (what kind of project is that and what are the plugins that should handle this project) • Linked resources information (files or directories from outside the project that are linked into the project's tree) .dvt directory © AMIQ 295 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com This directory is used to keep all the settings needed for a DVT project. Some of the files stored in this directory are: • .*_top_files or default.build used for compilation configuration • *_linter_waivers.xml and *_linter_ruleset.xml used for linter configuration 31.6.3 Other Settings There are another two places where DVT can store information. • $HOME/.dvt.gtkrc file is used to store GTK Theme settings on linux platforms. Since Eclipse Platform 3.x doesn't support themes, the feature uses this file to store the information about the colors. This file exists because the GTK hooks are done in the scripts before the platform is up. Be aware that GTK Theme settings are common between all DVT instances of that user. • $HOME/.eclipse directory can hold two things: • The Eclipse key ring settings, in case that any passwords are saved in DVT (e.g. CVS, SVN,... plugins can use passwords that can be protected with a master password). • User installed plugins when it uses a global installation (DVT directory is read only)/ 31.6.4 Importing Preferences From a Different Workspace Workspace Settings can be migrated between workspaces using different methods • Using Import/Export Wizard • Using dvt.sh Script • Manually Using Import/Export Wizard The recommended way to migrate workspace settings is through the Preferences Import/Export Wizard. To export the settings, start DVT in the workspace containing the settings, go to File > Export > General > Preferences, select Export All and choose the name of the file. To import the preferences, start DVT in the new workspace, go to File > Import > General > Preferences, select Import All and choose the name of the file. Using dvt.sh Script Another way to import the settings from an old workspace into a new one is to use the dvt.sh script to start DVT. © AMIQ 296 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com Argument Description workspace <dir> Path to the workspace directory. import_workspace_settings <dir> Path to the workspace from where the settings will be imported. force_import_workspace_settings <dir> Same as -import_workspace_settings, but it will overwrite target workspace settings. Manually To import workspace settings from an old workspace to a new one can be done just by copying the settings directory mkdir -p <new_workspace>/.metadata/.plugins/org.eclipse.core.runtime/ cp -r <old_workspace>/.metadata/.plugins/org.eclipse.core.runtime/.settings/ <new_workspace>/.metadata/.p 31.6.5 Customizing Default Settings Using dvt.ini Eclipse Platform supports setting the default preferences for every new workspace. This option is useful in many situations: • The user wants to use the same preferences in every new workspace, and using the export/ import is an overhead • The DVT application administrator wants to put a set of default settings for company wide deployment. The easiest way to customize the default settings is to set them in clean workspace and save them using the Show Changed Preferences Dialog in the distribution's dvt.ini file. The required steps to do this are: 1. Open DVT in a new workspace 2. Change the preferences 3. Use the Window > Show Changed Preferences dialog to identify the changed preferences 4. Add those in the dvt_eclipse/misc/dvt.ini file Now every new workspace will have those preferences. Show Changed Preferences Dialog To open the Show Changed Preferences Dialog go to Window > Show Changed Preferences The dialog allows the user to inspect the modified preferences and save them in a file. © AMIQ 297 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com Changing the Default dvt.ini To add new settings to the default settings provided with the distribution and to make them available by default for everyone who starts in a new workspace, the settings saved in the Show Changed Preferences Dialog should be added in the dvt_eclipse/misc/dvt.ini file. The dvt.ini file already contains some settings as distribution default. The user's settings should be appended to this file. Some of the default settings already present in the dvt.ini file are: Name Description org.eclipse.ui/ Enables the JVM memory monitor. SHOW_MEMORY_MONITOR=true org.eclipse.ui/ ENABLE_ANIMATIONS=false Disables the minimize/maximize animations. org.eclipse.ui.editors/ lineNumberRuler=true Shows line numbers by default in editors. org.eclipse.debug.ui/ Activates "Always org.eclipse.debug.ui.UseContextualLaunch=false application. ro.amiq.dvt/ spelling_user_dictionary= $DVT_HOME/misc/ dvt_dictionary.txt launch previously launched Sets the path to the distribution dictionary for DVT editors. Using a User Customized dvt.ini After creating a preferences file the user can replace the distribution's dvt.ini file to make them widely deployed or he or she can start DVT with a different file for default settings using the dvt.sh script: © AMIQ 298 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 31. Settings Management www.dvteclipse.com dvt.sh [any other argument] -eclipse_args -pluginCustomization <path_to_settings_file> © AMIQ 299 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 32. Reference 32.1 Common Shortcuts Ctrl+Shift+L Open the Shortcuts dialog. Use it to see all the available shortcuts. F3 Jump to declaration. Cursor must be on the entity name. Ctrl+L Open the Go to Line dialog. Use it to quickly jump to a line in the current file. Ctrl+D Delete current line. Ctrl + / Comment current line or selection. Ctrl+Q Jump to last edit location. Ctrl+Alt+R Rebuild Project. Ctrl+S Save. Ctrl+3 Brings up the Quick Access dialog - UI elements such as commands, views, wizards, preference pages etc. can be accessed directly by typing their name. Alt + / Autocomplete strings from currently opened editors. Alt+Shift+Up arrow Select the word at cursor position. Ctrl+F Open the Find dialog. Use it to find some text in the current file.If you select something, it will automatically fill the query. Ctrl+K +Shift+K Ctrl Jump to the next/prev match of the selected word in file. Shift+Alt+UP Arrow Select the identifier at cursor. F5 Refresh. Alt + r + t + With this shortcut you can quickly access a Run Configuration from Run <Configuration > Run History. Firstly, Alt + r will open the Run menu, then type t to open number> Run History and then type the number of the Configuration from that list. Ctrl+I Open the Quick Compile Order View dialog. Use it to quickly open a file. Ctrl+O Open the Quick Outline View dialog. Use it to quickly move around in large files. Ctrl+Shift+O Open the Quick Layers View. Cursor must be on the entity name. Use it to quickly locate and jump to an extension. Shift+F3 Update the Layers View to see all externsions/external implementations. Cursor must be on the entity name. Ctrl+H Open the Search dialog. Use it to search for a type, method, field, module, task, function etc. in the workspace, current project etc. If you select something, it will automatically fill the query. © AMIQ 300 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Ctrl+T Open the Quick Type Hierarchy View dialog. You can quickly see inheritance tree for a class, function etc. For methods, tasks etc. you also see the implementations along the hierarchy (icons are not grayed). Cursor must be on the entity name. Ctrl+P Open the Quick Macros View dialog. Use it to quickly jump to a macro definition. F4 Open and update the Type Hierarchy View to see the inheritance tree and members of a struct. Cursor must be on the entity name. Shift+F4 Open and update the Design Hierarchy View to see the design structure. Cursor must be on the entity name. Shift+F6 Open and update the Verification Hierarchy View to see the UVM instances structure. Cursor must be on the UVM registered class. 32.2 Editor Right Click Menu 32.2.1 Folding Collapse All Levels Fold to statement level. Show Active Preprocessing Show First Level Collapse all levels then expand one level. Expand All Levels Unfold code. Toggle Current Line Fold/unfold. Define Custom Region Create a folding marker for the selected region. 32.2.2 Macros See Macro Expansion 32.2.3 Source Jump to Pair Bracket Format Source See Code Formatting Toggle Comment Comment/uncomment selection or current line. OVM Field Editor See OVM Field Editor UVM Field Editor See UVM Field Editor Override Methods See Override Functions Emacs 32.2.4 Code Factory See Code Factory © AMIQ 301 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.2.5 Show Declaration See Use Hyperlinks to Move Around in the Code Diagram See Diagrams Type Hierarchy See Type Hierarchy View Design Hierarchy See Design Hierarchy View Verification Hierarchy See Verification Hierarchy View Layers See Layers View Quick Types See Quick Types View Quick Compile Order See Quick Compile Order View Quick Macros See Quick Macros View Quick Type Hierarchy See Quick Type Hierarchy View Quick Layers See Quick Layers View Quick Outline See Quick Outline View 32.2.6 References See Search For References 32.2.7 Trace See Trace Port Connections 32.2.8 Refactor Rename See Rename Refactoring Add Port See Add Port to Module from Selected Field or Add New Port to Module 32.3 Icons and Decorations 32.3.1 Icons Regular Verilog/SystemVerilog File Linked Resource Verilog/SystemVerilog File See Linked Resources. Out of Project Verilog/SystemVerilog File The file is not inside a project directory, nor accessible as a linked resource. Functionality is limited on "gray" files. © AMIQ 302 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Library Package Program Typedef Class Interface Module Checker Primitive Generate Field Enumeration name Constructor Function Task Event Constraint Cover Group Input Port Output Port Bidirectional Port Interface Port ModPort Wire Always Module Instance Unknown Instance Interface Instance Object Instance - Relevant for XVM methodologies, indicates a "created" object. Component Instance - Relevant for XVM methodologies, indicates a "created" component. Test Class - Relevant for XVM methodologies, indicates a "test" class. Root Class - Relevant for XVM methodologies, indicates the "root" class. Preprocessing define Preprocessing undefine Preprocessing ifdef, ifndef © AMIQ 303 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Code Template For example in autocomplete proposals. 32.3.2 Decorations Project Scope To enable/disable go to Window > Preferences > General > Appearance > Label Decorations preference page and check/uncheck Verilog Language Included File. Top Files Scope The marked entity is in the Top Files scope. See Build_Configurations. Access Modifiers To enable/disable go to Window > Preferences > General > Appearance > Label Decorations preference page and check/uncheck Verilog Language Access Modifier. Local Protected Public Errors and Warnings To enable/disable go to Window > Preferences > General > Appearance > Label Decorations preference page and check/uncheck Verilog Language Problem. Error Warning 32.4 Scripts 32.4.1 dvt.sh The DVT IDE Launcher. Usage dvt.sh dvt.sh -h[elp] dvt.sh © AMIQ 304 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com [-site site] [-workspace <dir>] [-import_workspace_settings <dir>] [-force_import_workspace_settings <dir>] [-dvt_log_location <file>] [-bg] [-eclipse_args <args>] [-Xms <size>] [-Xmx <size>] [-Xss <size>] [-eclipsespace <dir>] Where: [-workspace <dir>] Path to the eclipse workspace (temporary eclipse directory). [-import_workspace_settings <dir>] Path to the eclipse workspace from which settings will be imported. Valid only with -workspace. [-force_import_workspace_settings <dir>] Same as -import_workspace_settings, but it will overwrite target workspace settings. Valid only with -workspace. [-eclipsespace <dir>] Path to a custom eclipse storage directory (instead of ~/.eclipse). [-dvt_log_location <file>] File where DVT output will be sent (e.g. /dev/null). Default /tmp/dvt_log_13686. [-bg] Launch DVT in background. [-Xms <size>] (only in Linux) Set the initial and minimum Java heap size, size syntax is <N>[g|G|m|M|k|K]. [-Xmx <size>] (only in Linux) Set the maximum Java heap size, size syntax is <N>[g|G|m|M|k|K]. Default is 1024m for 32 bit OSs and 2048m for 64 bit OSs. [-Xss <size>] (only in Linux) Set the thread stack size, size syntax is <N>[g|G|m|M|k|K]. Default is 1m. [-eclipse_args <args>] Everything that follows this argument is passed to the eclipse executable as-is. THIS MUST BE THE LAST ARGUMENT OF THE COMMAND LINE © AMIQ 305 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Examples Start DVT without any option. You will be prompted for the workspace location. $> dvt.sh Start DVT with the maximum heap size of 4096 MB. You will be prompted for the workspace location. $> dvt.sh -Xmx 4096m Start DVT in the specified workspace. $> dvt.sh -workspace /home/cristian/dvt/workspace Start DVT in the specified workspace and use the specified eclipsespace for storing userspecific eclipse data, like for example plugins installed by user on top of a shared installation. By default this data is stored in /home/cristian/.eclipse. $> dvt.sh -workspace /nfsdisk/cristian/dvt/workspace -eclipsespace /nfsdisk/cristian/dvt/eclipsespace Start DVT with a custom configuration file. The default is /apps/amiq/dvt/eclipse/eclipse.ini. IMPORTANT NOTE: -eclipse_args must be the last argument of the command line $> dvt.sh -eclipse_args --launcher.ini /nfsdisk/cristian/dvt/mydvt.ini 32.4.2 dvt_cli.sh See Command Line Interface. 32.4.3 dvt_from_rawtokens.sh Creates and opens a DVT project from a rawtokens file. Usage dvt_from_raw_tokens.sh [-workspace <dir>] -projectpath <dir> -rawtokens <file1> [ ... -rawtokens <fileN>] -overwrite Where: [-workspace <dir>] Path to the eclipse workspace. Default: ~/dvt_eclipse_workspace -projectpath <dir> Path to the DVT project. It will be created. -rawtokens <file> © AMIQ Path to a rawtokens file. 306 Rev. 3.5.32 DVT SystemVerilog IDE [-overwrite] Chapter 32. Reference www.dvteclipse.com Delete project directory if already exists. Examples dvt_from_rawtokens.sh -workspace $HOME/dvt_workspace -projectpath $HOME/dvt_projects/aproject -raw 32.4.4 dvt_kit_installer.sh This script is a command line utility that can be used to install/uninstall plugins delivered with the DVT_KIT distribution for Linux and MacOS. The script allows you to create a DVT distribution with any combination of plugins from the following list: Plugins • CDT: C/C++ Development Tools (org.eclipse.cdt) • JDT: Java Development Tools (org.eclipse.jdt) • PYTHON: Pydev (org.python.pydev) • PERL: Perl Editor and IDE for Eclipse (org.epic) • TCL: Tcl Editor and IDE for Eclipse (org.eclipse.dltk.tcl) • CVS: Eclipse CVS Client (org.eclipse.cvs) • SVN: Subversive SVN Team Provider (org.eclipse.team.svn) • GIT: Eclipse EGit (org.eclipse.egit) • PERFORCE: Perforce plugin for Eclipse (com.perforce.team) • CLEARCASE: Clearcase plugin for Eclipse (net.sourceforge.eclipseccase) You can also see the list using: $DVT_HOME/bin/dvt_kit_installer.sh -h Usage dvt_kit_installer.sh [options] operation OPTIONS: The options must be specified before the operation [-w|workspace <dir>] © AMIQ 307 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com - Temporary workspace directory for this script (default /tmp/) [-s|simulate] - Simulate the operation [-h|help] - Display this help OPERATIONS: The operation must be specified after the options and only one operation can be specified followed by a list of plugins (containing at least one plugin) [-i|install <space separated list of plugins>] - Install the plugins specified in the list [-d|delete|uninstall <space separated list of plugins>] - Uninstall the plugins specified in the list Example Install the plugins for CVS, SVN and C++ $DVT_HOME/bin/dvt_kit_installer.sh install CVS SVN CDT Uninstall the plugin for CVS $DVT_HOME/bin/dvt_kit_installer.sh uninstall CVS Simulate the installation of JDT plugins $DVT_HOME/bin/dvt_kit_installer.sh -s install JDT 32.4.5 dvt_updater.sh This script is a command line utility that can be used to update/install/uninstall plugins (including DVT plugins) from an archived update site into the DVT Eclipse distribution. The script overcomes the unusual problems that can appear when the computer is not connected to the Internet and the user tries to install from a local update site: Script limitations: • Only root features can be listed with "-l" • If a plugin that is a dependency is uninstalled the script reports success but the plugin is still there. Usage dvt_updater.sh © AMIQ 308 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com install dvt_update_site-*.zip | update dvt_update_site-*.zip | uninstall [-w /path/to/workspace] [-f 'feature_name_1,..,feature_name_N'] [-l] [-s] [-h] Where: install - installs from the specified update site the features specified with or the default features. update - updates from the specified update site the features specified or the default features. uninstall - uninstalls the features specified or the default features. [-w /path/to/workspace] - path to a temporary workspace (default is /tmp) [-f 'feature_name_1,..,feature_name_N'] - a comma separated list of feature names, default features are: ro.amiq.dvt.feature, ro.amiq.dvt.extensions.feature com.mbartl.eclipse.viplugin.feature [-l] - lists installed root features [-s] - simulate the operation [-h] - show this help Examples Update DVT from an archived update site. $DVT_HOME/bin/dvt_updater.sh /path/to/dvt_update_site-*.zip List all installed root features. $DVT_HOME/bin/dvt_updater.sh -l com.mbartl.eclipse.viplugin.feature.feature.group/2.1.0.DVT20111227 com.mulgasoft.emacsplus.feature.feature.group/3.6.5 com.mulgasoft.emacsplus.optional.features.feature.group/3.6.5 com.xored.glance.feature.group/0.9.1 org.eclipse.dd.ipxact.feature.feature.group/0.2.2.201011301942 © AMIQ 309 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com org.eclipse.epp.mpc.feature.group/1.1.1.I20110907-0947 org.eclipse.platform.ide/3.7.1.M20110909-1335 org.eclipse.wst.xml_ui.feature.feature.group/3.3.1.v201108102009-7H7EFZ3DxumTlaI6nheRdHo2p1KaDIL org.fhsolution.eclipse.feature.csvedit.feature.group/1.1.1 ro.amiq.dvt.extensions.feature.feature.group/3.0.7.8 ro.amiq.dvt.feature.feature.group/3.0.7.8 Operation completed in 156 ms. Uninstall a plugin from the distribution. In this example the Vi and Emacs plugins are uninstalled. The name of a specific plugin can be found by listing all the root features. $DVT_HOME/bin/dvt_updater.sh uninstall -f 'com.mulgasoft.emacsplus.feature,com.mulgasoft.emacsplus.op 32.5 Toolbar Actions Icon Description Rebuild Project - See Build Configurations. Lint - Run Verissimo or XVM Compliance Checking. Diagrams - See Diagrams. Diagrams - See Export HTML Documentation. Diagrams - See GUI Filters. What's New? Report an Issue! 32.6 Views 32.6.1 Checks View The Checks View presents all the immediate, concurrent, deferred immediate assert and assume constructs in the project. Open the view from menu Window > Show View > Other... > DVT > Checks Double click on a check and jump to the source location. immediate assert concurrent assert deferred immediate assert immediate assume © AMIQ 310 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com concurrent assume deferred immediate assume 1. Quick Search. You can use CamelCase, Simple Regex or Hierarchical Search to locate a specific element. By default, hierarchical search will show all descendants: 2. Check Kind Filters. You may choose to hide immediate, concurrent assertions or assumptions - see the image below: © AMIQ 311 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.6.2 Code Templates View See Code Templates View 32.6.3 Compile Order View The Compile Order View presents the order of the compiled files as it results from the include's starting in the project top files. Open the view from menu Window > Show View > Other... > DVT > Compile Order. Double click on a file to open it. You can use CamelCase or Simple Regex to locate a specific element. A file that is not part of the current project (files are not under the project directory). A file in your project. Right click on a file will pop-up a menu with an option to Go To Include. By clicking on it, the file (parent) that includes the selected file instance will be opened in an editor. © AMIQ 312 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Quick Compile Order View Press Ctrl+I to quickly open a compiled file. The Quick Compile Order View will pop-up and and present a filterable list of all the compiled files in the project. You can use CamelCase or Simple Regex to locate a specific element. Select a file and press Enter or click to open it. 32.6.4 Console View Any invocation (for example a DVT Generic run) output is dumped to the Console View. The Console View is automatically raised at any invocation.You can also go to menu Window > Show View > Other... > General > Console. to open the Console View. Click on hyperlinks in the Console View to jump directly to the to source location. © AMIQ 313 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.6.5 Coverage View The Coverage View presents all the coverage groups and items in your project. Open the view from menu Window > Show View > Other... > DVT > Coverage. Double click on a group or item and jump to the source location. cover group simple item cross item transition item 1. Quick Search. You can use CamelCase, Simple Regex or Hierarchical Search to locate a specific element. By default, hierarchical search will show all descendants: 2. Cover Group. 3. Cover Items. © AMIQ 314 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.6.6 Design Hierarchy View The Design Hierarchy View presents recursively the instances in a Verilog module or the instances in a VHDL entity or component implementation. Cross-language design hierarchies are also supported. Position the editor cursor on the name of a design element and press Shift+F4 or right-click and choose Show > Design Hierarchy from the context menu. The Design Hierarchy View opens with the chosen element set as the top of the hierarchy. You can also go to menu Window > Show View > Design Hierarchy to open the view. • Select Top A drop-down menu/pop-up dialog to select from top modules for Verilog or top architectures for VHDL. For Verilog, a top element is a module that instantiates other design elements and it is not itself instantiated. Similar for VHDL top architectures. • History List Click to see the previously inspected elements. • Show Connect Toolbar Show or hide the connect instances toolbar. More details here. • Show/Hide Ports Shows or hides the ports of the selected element. You can set the ports panel to the right or below the hierarchy. © AMIQ 315 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com • Alphabetical Sort Sort instances and ports alphabetically. By default it is off which means that the instances and the ports are presented in their declaration order in the source files. The view label shows the current project, the current top element and the number of instances in the hierarchy. You can double-click on an instance to go to its declaration. Double-click on a port to go to where it is connected. Right-click on an instance in the hierarchy and you have the following options : • Connect Output See Connect Instances Using New Ports. • Show Diagram Show the HDL diagram for the current selection. More details here. • Copy Instance Path Copy to the clipboard the instance path for the current selection (for example: apb_subsystem_top.i_apb_subsystem). • Show Design Hierarchy Set the selected element as the top of the hierarchy and update the view. Right-click on a port and you have the following options : © AMIQ 316 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com • Trace Drive / Load / Drive and Load / In Subinstance See Trace Connections. • Connect See Connect Instances. You can use the filters to locate a specific instance or port. You may use slash '/' characters to filter hierarchically one level and '//' to filter hierarchically all the levels. You may use the dot '.' character to filter instances that contain a specific port. The ports that match the filter are promoted to the top of the ports panel. See Quick Search for more details. No filter. © AMIQ 317 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Filter by instance name. All instances that contain the filter text are shown. Filter strict hierarchy. All instances that contain the filter text and are in a direct hierarchical relationship (father/son) are shown. Filter non-strict hierarchy. All instances that contain the filter text and are in a direct or indirect hierarchical relationship (ancestor/../../descendant) are shown. Filter strict hierarchy and show all descendants. Same results as for filter strict hierarchy, but including all descendants of the matched instances. Filter strict hierarchy and show direct descendants. Same results as for filter strict hierarchy, but including the sons of the matched instances. © AMIQ 318 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Filter by port name. All instances with ports that contain the filter text are shown. Filter by hierarchy and port name. Hierarchical filtering and port filtering may be combined. 32.6.7 Layers View For an extern declaration you can quickly see where it is implemented using the Layers View. Position the cursor on the element's name and press Shift+F3 or right click and choose Show > Layers from the menu. The Layers View is automatically raised at any invocation. You can also open it from Window > Show View > Other... > DVT > Layers. Double click on a layer and jump to the corresponding source location. Right click on a layer to see its Usages. You can use CamelCase or Simple Regex to locate a specific element. © AMIQ 319 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 1. Show History List Click to see the previously inspected layers (see the image below): Quick Layers View Position the cursor on the element's name and press Ctrl+Shift+O. The Quick Layers View will pop-up and present a filterable list with all of the selected element's layers. You can use CamelCase or Simple Regex to locate a specific element. Select a layer and press Enter or click to jump to the corresponding source location. © AMIQ 320 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.6.8 Macros View The Macros View presents all the preprocessing macros in the project. Open the view from menu Window > Show View > Other... > DVT > Macros. Double click on a macro to jump to its definition. Right click on a macro to view its Usages. You can use CamelCase or Simple Regex to locate a specific element. Preprocessing define Preprocessing undefine Preprocessing ifdef, ifndef © AMIQ 321 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Quick Macros View Press Ctrl+P to quickly jump to a specific macro definition. The Quick Macros View will pop-up and and present a filterable list of all the preprocessing macros in the project associated with the active editor or the current selected project from the Navigator (if no editor is open). You can use CamelCase or Simple Regex to locate a specific element. Select a macro and press Enter or click to jump to its definition. 32.6.9 Outline View The Outline View presents an overview of the editor contents. Open the view from menu Window > Show View > Other... > General > Outline. © AMIQ 322 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com You can click on an entity to jump to its location inside the current file. You can use CamelCase or Simple Regex to locate a specific element. Filters... Select what elements to show Alphabetical Sort If alphabetical sort is on, all the entities are sorted by © AMIQ 323 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com name. By default the entities are presented in the definition order. Category Sort If category sort is on, entities are arranged by categories (fields, methods etc.), instead of being mixed as they appear in the file. Expand All Collapse All Quick Outline View Press Ctrl+O to open the Quick Outline dialog. It presents an overview of your file. You can use CamelCase or Simple Regex to locate a specific element. © AMIQ 324 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Outline View Preferences You can configure the Outline View contents from menu Window > Preferences > DVT > SystemVerilog > Outline View. © AMIQ 325 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.6.10 Problems View If a project contains errors, for example syntax errors, it will be indicated using decorators: © AMIQ 326 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com You can use the Problems View to inspect the errors. Open the view from menu Window > Show View > Other... > General > Problems. Double clicking on some error will jump to the source location. 32.6.11 Tasks View You can embed reminders in your source files by adding comments prefixed by certain "keywords" called task tags. There are three predefined tags: © AMIQ 327 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com • FIXME - high priority • TODO - normal priority • XXX - low priority All reminders are listed in the Tasks View. If it is not visible, open the view from menu Window > Show View > Other > General > Tasks. Double click on a task to jump to the marker definition. You can define custom reminder tags and assign them priorities: • Navigate to Window > Preferences > DVT > Task Tags You can specify if the tags should be considered case-sensitive and if the tag name should be displayed in Tasks View. • Click the Add... button on the right, enter the name of your tag and select its priority © AMIQ 328 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com • Click OK in the New Task Tag and Preferences dialogs DVT will recognize the new tag and highlight it in code comments. Note: it is recommended to rebuild the project so that DVT rescans all files for reminders. 32.6.12 Trace Connections View See Trace Connections View 32.6.13 Types View The Types View presents all the types (classes, structs, units, entities etc.) defined in your project. Open the view from menu Window > Show View > Other... > DVT > Types. Click on the Show Members button to show the Members pane. Double click on a type or type member to jump to its definition. Right click on a type or type member to search for usages or further inspect the Type Hierarchy View or the Verification Hierarchy View, where applicable. You can perform Search For Members. Toolbar Show/ Toggles the visibility of the members pane. Use the drop-down to chose Hide placement (to the right side or below the types tree). Members Sort Click to sort by category. Default sort order is alphabetical. by Category ExpandExpand all nodes in types tree. All Collapse Collapse all nodes in types tree. All © AMIQ 329 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Quick Types View Press Ctrl+Shift+T to quickly open a specific type definition for the project associated with the active editor or the current selected project from the Navigator (if no editor is open). The Quick Types View will pop-up and and present a filterable list of all the types in the project associated with the active editor or the current selected project from the Navigator (if no editor is open). You can use CamelCase or Simple Regex to locate a specific element. Select and press Enter or click to jump to its definition. © AMIQ 330 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com 32.6.14 Type Hierarchy View The Type Hierarchy View presents the inheritance and the members of a class. Position the cursor on the class name and press F4 or right click and choose Show > Type Hierarchy from the menu. The Type Hierarchy View is automatically opened at any invocation. You can also open it from Window > Show View > Other... > DVT > Type Hierarchy. You can right click in the inheritance tree and further inspect the Type Hierarchy or see Usages. Right click on a function or task member to override it. More details here: Override_Functions You can use CamelCase or Simple Regex to locate a specific element. © AMIQ 331 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Show History List Click to see the previously inspected types: Filters... Select what members to show (functions, tasks, fields, events etc.): © AMIQ 332 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com Quick Type Hierarchy View You can quickly inspect and jump to a specific parent or child in the hierarchy. Press Ctrl+T with the cursor positioned on the element name. The Quick Type Hierarchy View will pop-up and present a filterable list with all of the selected element's hierarchy. You can use CamelCase or Simple Regex to locate a specific element. Select and press Enter or click to jump to the corresponding source location. © AMIQ 333 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com For functions you can also see the implementations along the hierarchy (icons are not grayed). 32.6.15 UVM Browser View See UVM Browser. 32.6.16 Verification Hierarchy View The Verification Hierarchy View presents the UVM object instance tree. An UVM object instance is a class member of an UVM based type that is created using an UVM factory create call. Position the editor cursor on the name of an UVM based class and press Shift+F6 or right-click and choose Show > Verification Hierarchy from the context menu. The Verification Hierarchy View opens with the chosen class set as the top of the hierarchy. You can also go to Window > Show View > Verification Hierarchy to open the view. © AMIQ 334 Rev. 3.5.32 DVT SystemVerilog IDE • Chapter 32. Reference www.dvteclipse.com Select Top A drop-down menu/pop-up dialog to select from top UVM components. A top component instantiates other UVM components or UVM objects and it is not itself instantiated. • History List Click to see the previously inspected components. • Show/Hide Ports Shows or hides the UVM ports of the selected component. You can set the ports panel to the right or below the hierarchy. • Alphabetical Sort Sort instances and ports alphabetically. By default it is off which means that the instances and the ports are presented in their declaration order from the source files. The view label shows the current project, the current top component and the number of instances in the hierarchy. © AMIQ 335 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com You can double-click on any component or on any port to go to its declaration. Right-click on an instance in the hierarchy and you have the following options : • Show Usages (References) Search for the references of the selected instance. More details here • Show Layers Show the layers of the selected instance. More details here. • Show Type Hierarchy Show the type hierarchy for the selected instance type. More details here. • Show Verification Hierarchy Set the selected instance as the top of the hierarchy and update the view. • Open Type Declaration Go to the component declaration of the selected instance. • Open Create Call Go to the UVM factory create call of the selected instance. Right-click on a port and you have the options to search for its usages, its layers and for its type hierarchy. © AMIQ 336 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 32. Reference www.dvteclipse.com You can use the filters to locate a specific instance or port. You may use slash '/' characters to filter hierarchically one level and '//' to filter hierarchically all the levels. You may use the dot '.' character to filter instances that contain a specific port. See Quick Search for more details. For example, filtering hierarchically all the levels for a specific port name : © AMIQ 337 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 33. Tips and Tricks The following tips and tricks give some helpful ideas for increasing your productivity. Editing Code Navigation Searching Miscellaneous Editing Content assist Content assist provides you with a list of suggested completions for partially entered text. In the editor press Ctrl+Space. Module Automatic Instantiation © AMIQ You need to type the first letters of the module name, then press Ctrl+Space three (3) times.You can recognize module instances by their icon, it looks like a chip with ports ready to be glued in. 338 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Expand You can apply preprocessing over a selected section of code in order to see Macros how macros are expanded. You have multiple options in the right-click context (Apply menu Macros. To expand them in the source file, choose Expand One Level Preprocessing) Inline or Expand All Levels Inline. © AMIQ 339 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com To expand them in a temporary file, choose Expand One Level or Expand All Levels. Trace Macro To debug macro usage errors (especially if macros in macros are used) you can Errors see how the error is propagated from macro to macro (the error trace) either by: - going with the mouse over the error marker on the left and right click - or selecting the error in the Problems View, right click and choosing Macro Trace © AMIQ 340 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com The macro error trace will be presented in the Console View with hyperlinks to source. Code templates Code templates are presented in content assist if applicable. Matching begin - end If you double click on/after begin – end, function – endfunction etc. the block is highlighted. © AMIQ 341 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Mismatched endif You can use comments after endif to track the match with starting ifdef. If the name of ifdef doesn't match the endif comment a warning is issued. Toggle Comment You can toggle comment on/off for the current line or the selected lines. Press Ctrl+/ or use the action from the drop down menu on right click in editor. Select Word To select the word at cursor, press Shift + Alt + Up Arrow. at Cursor Format source Use the Source > Format Source action from the editor's right click menu. The whole file is formatted or the current selection, if any. Override functions To access the Override menu, in Editor, right click inside a class body > Source > Override Methods . © AMIQ 342 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com One key If you press Tab once at the beginning of a line, it is automatically aligned to indentation the enclosing context. Press twice to insert a tab. Reminders (TODO markers) When you tag a comment in source code with TODO, a corresponding tasks is automatically created as a reminder. From the Tasks View, double click on the task takes you to the TODO in the code. Same for for FIXME (higher priority) and XXX (lower priority) markers. You can also add your own tags, see the Reminders (TODO Markers) section of the documentation. Spell checking You can enable spell-checking support from the General > Editors > Text Editors > Spelling preference page. Spelling errors are displayed in the Verilog Language editor and corresponding Quick Fixes are available. Folding You can fold code sections to improve read-ability. This is how a folded file looks like: © AMIQ 343 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Folding actions (to expand or collapse) are available in the toolbar or on right click in the editor. You may also use the +''' or '-' signs on the left side of the editor. - Use '''Collapse All Levels for folding to statement (class, module ...) level. - Use Show First Level for folding to struct member (method, cover...) level. - Use Expand All to fully expand the file. When you type on a folded line, it is automatically expanded. You may see the folded code in a tooltip if you move with the mouse over the + sign. Folding You can define custom folding areas using comments to indicate the start and custom areas the end of the area: Maximize editor Double-click on the editor tab to maximize editor to full window. Doubleclick again to restore. Show line Check Show line numbers from the General > Editors > Text Editors numbers preference page © AMIQ 344 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Local history Whenever you edit a file, its previous contents are kept in the local history. Right click in the editor and choose Compare With/Replace With > Local History.... Inactive code The editor marks with a colored background the areas of code that are not highlight compiled due to preprocessing. See the Inactive Code Highlight documentation section. Emacs Automation © AMIQ You can invoke Emacs to perform automation on the file you are currently editing. In the editor window: Right click > Source > Emacs, then select one 345 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com of: Auto, DeleteAuto, InjectAuto, Indent or use the associated key bindings (the same as in Emacs). Note 1: the shortcuts are available only when Emacs mode is enabled in Eclipse; to enable Emacs mode go to Window > Preferences > General > Keys and select the Emacs scheme. Note 2: you can also add toolbar buttons to perform Emacs automation: go to Window > Customize Perspective > Command Groups Availability and check Emacs Verilog-Mode from the Available command groups on the left. Note 3: To change the default emacs command go to Window > Preferences > DVT and fill in the Emacs command you want to execute Open file in To open multiple editors for the same file you should first open the file then more editors right click on the editor's titlebar and select New Editor Split the To open multiple editors side by side follow these steps: editor view - open each file in its editor; if you wish to see the same file in a split view, right click on its titlebar and select New Editor - if you wish to split horizontally, drag the title bar of the file you want to split and drop it over the horizontal scrollbar - if you wish to split vertically, drag the title bar of the file you want to split and drop it over the vertical scrollbar © AMIQ 346 Rev. 3.5.32 DVT SystemVerilog IDE Column selection Chapter 33. Tips and Tricks www.dvteclipse.com You can switch to and from column (block) selection mode either by clicking on the “Toggle Block Selection Mode” button in the toolbar, or by using the <Shift + Alt+ A> shortcut key. Auto insert To add JavaDoc like comments to code, in Code Editor type above the code JavaDoc declaration /** and then press Enter. Depending on the code type (a class comment declaration, a function, a task etc.) a comment will be added with the respective JavaDoc tags. For more details: Export Html Documentation Code Navigation Tooltips © AMIQ When you position the mouse over a type, method, field etc., a tooltip will popup showing information on corresponding declaration. 347 Rev. 3.5.32 DVT SystemVerilog IDE Hyperlinks Chapter 33. Tips and Tricks www.dvteclipse.com If you place the mouse over a type, method, field, macro etc. and press the Ctrl key, a hyperlink will be presented. Click on the hyperlink to jump to definition. You can also jump to a definition if you put the cursor on the relevant name and press F3 Inheritance You can view the inheritance tree and all the members of a class by placing tree and the mouse over it '''and pressing the '''F4 key. members © AMIQ 348 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com (Type Hierarchy View) Design You can view the design hierarchy of a module by placing the mouse over it hierarchy of and pressing Shift+F4. a module (Design Hierarchy View) © AMIQ 349 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Class Diagrams You can create class diagrams to inspect or document the architecture of a verification environment. For more details see the Diagrams > Class Diagrams Current Scope The scope at cursor (function/class...) is always presented in the status bar. Quick Type You can quickly open a specific type definition. Press Ctrl+Shift+T. The Quick Types View will pop-up and you can enter any regular expression to locate a type. Select and press Enter or click to jump to its definition. © AMIQ 350 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Quick Outline Press Ctrl+O to open the Quick Outline for an overview of your file. You can enter any regular expression to locate a place to jump in the current file. Quick Compile Order © AMIQ You can quickly open a file that is included via the top files. Just press Ctrl+I. The Quick Compile Order View will pop-up and you can enter any regular expression to locate a file. Select and press Enter or click to open the file. 351 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Quick Type Position the cursor on the entity (struct, method ...) name and press Ctrl+T to Hierarchy see the Quick Type Hierarchy View. For methods and others, non-grayed icons means parent implementations are available. © AMIQ 352 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com External You can view the external implementations in the Layers View. Position the Implementationcursor on the relevant name and press Shift+F3 or right click and choose Show Layers from the menu. Types View © AMIQ You can view all the types (scalars, classes, module) in the project (including their fields, methods etc.) in the Types View. Open the view from menu Window > Show View > Other... > DVT > Types. 353 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Checks View You can view all the checks (immediate, concurrent, deferred immediate assert and assume constructs) in the project in the Checks View. Open the view from menu Window > Show View > Other... > DVT > Checks. © AMIQ 354 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Coverage View You can browse all the coverage definitions in the project using the Coverage View. Open the view from menu Window > Show View > Other... > DVT > Coverage. Compile Order View You can see the include tree of the files in your project in the Compile OrderView.Open the view from menu Window > Show View > Other... > DVT > Compile Order. © AMIQ 355 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Macros View You can see all the macros in your project in the Macros View.Open the view from menu Window > Show View > Other... > DVT > Macros. Outline View You can see the summary contents of the current file (structs, field, methods) in the Outline View.Open the view from menu Window > Show View > Other... > General > Outline. Mark occurrences © AMIQ When working in the SystemVerilog editor, turn on Mark Occurrences in the toolbar or press Alt+Shift+O. 356 Rev. 3.5.32 DVT SystemVerilog IDE Override Annotations Chapter 33. Tips and Tricks www.dvteclipse.com Override Annotations indicate that a function/task overrides a parent class implementation. Bookmarks Similar with a web browser, you can add bookmarks in your code without altering the code. Right click on the left vertical bar of the editor and choose Add Bookmark... Specify a meaningful name: © AMIQ 357 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com You can jump to bookmarks from Bookmarks View. Open the view from menu Window > Show View > Other... > General > Bookmarks. Go to line Press Ctrl+L shortcut or double click in the status bar to jump to a specific line. Back/ Forward navigation You can navigate between editors in a browser like way using the Back/ Forward Navigation Go to last edit Useful when you navigated around in the code, before proceeding with the location source change.Click on Last Edit Location button in the toolbar to jump to the file where you were previously editing. Searching Search for To search for the declaration of a specific type, method, field etc.: task. function, field etc. - Press Ctrl+H to open the Search Dialog - Click on the Vlog Search tab. - Type the name in the Search String (if you select in the editor before pressing Ctrl+H, the Search String is automatically set to the selection). - Select type or function etc. and Declarations - Click Search. © AMIQ 358 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Search for To search where a method (or field etc.) is used, right click on it's name > references References > Project. The results are presented in the Search View. You can also search for references from the Search Dialog (Ctrl+H). © AMIQ 359 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Search for To search for a whole word in all files, in comments or not: whole word - Press Ctrl+H to open the Search Dialog * Click on the vlog Search tab. - Type the name in the Search String (if you select in the editor before pressing Ctrl+H, the Search String is automatically set to the selection). - Select Whole Word and Do not search in comments or All occurrences - Click Search. © AMIQ 360 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Miscellaneous All shortcuts Press Ctrl+Shift+L to see all shortcuts. Project Properties © AMIQ Select the project in the Navigator View, right click and choose Properties. Or from menu Project > Properties. 361 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Export To generate the HTML Documentation click the Export HTML HTML Documentation Wizard button in the toolbar of the Verilog Perspective. documentation For more details see the Export HTML Documentation chapter. OVM/UVM Compliance Review To perform the OVM/UVM compliance review of your project click the SV Lint button in the toolbar of the Verilog Perspective. . OVM Editor Field The OVM Field Editor enables you to inspect and edit OVM field registrations. To bring up the OVM Field Editor, right click inside a class definition and select 'OVM Field Editor' from the pop-up menu, or simply press Shift Alt F. UVM Editor Field The UVM Field Editor enables you to inspect and edit UVM field registrations. To bring up the UVM Field Editor, right click inside a class definition and select 'UVM Field Editor' from the pop-up menu, or simply press Shift Alt G. © AMIQ 362 Rev. 3.5.32 DVT SystemVerilog IDE Project templates Chapter 33. Tips and Tricks www.dvteclipse.com A project template is a parameterized directory tree. Both in the file contents (.v, .sv, .sh - practically any file) and in the file or directory names you can use parameters. Combined with TODO markers, you can use a project template as a customized wizard.For more details see the Project Templates chapter in VlogDT User Guide. System See: Build_Configurations Variables and -f Support Generic You can launch external scripts: launch (make, scripts etc.) Menu Run > Run.... Select DVT Generic configuration and click the New button.# Specify name, working directory and command. Click Run. © AMIQ 363 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com You can also use the Run > Quick Run menu (or Ctrl+U shortcut key) to quickly launch any existing Run Configuration: Create dialogs scripts flows You can create Custom Dialogs for your own scripts: for & Follow the wizrd from menu New > Example > DVT > DVT Custom Dialog, then create a run configuration with the command echo ${dvt_dialog_prompt:customdialog.swtxml} and run it. External Builders © AMIQ An external builder allows you to invoke any script/tool and back-annotate its output (errors, warnings etc.) to the source code. It is a mean that allows 364 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com you to connect any 3d party tool (compiler, linter etc.) to DVT error signaling engines.You can configure one or more external builders on a project: - The commands you define will be invoked on project clean, full build and incremental build. - The patterns you define will be applied on the command output to recognize errors, warnings etc. - The pattern matches will be back-annotated to the source code and presented in a similar way DVT signals errors (file, line, in the Errors View etc.)DVT ships with some predefined example configurations to get you started.For more details see the External Tools>External Builders chapter in VlogDT User Guide. External You can browse and search through 3rd party documentation using the Eclipse Documentationhelp system.For more details see the External Tools>External Documentation chapter in VlogDT User Guide. Context Sensitive Help A focused set of help topics that is related to the current context can be shown to users on demand using context-sensitive help. This form of user assistance is delivered to users when a platform-specific trigger is activated (e.g. F1 key on Windows, Ctrl+F1 on GTK, Help key on Carbon).For more details see the Getting Started > Context Sensitive Help chapter in VlogDT User Guide. Mapping Linux Windows Linux directories can be mapped to Windows drives, thus allowing editing to files from Windows. For example /home/simi is mapped to Z:\. This has an impact on paths configured for a DVT project, for example INCDIRs etc. The paths are set using Linux conventions, however Eclipse runs © AMIQ 365 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com in Windows and the DVT builder needs to know about the mapping in order to compile the files. To specify the mapping, set the system variable %DVT_CROSSPLATFORM_MAP% before invoking Eclipse. You can add multiple mappings separated by ";" e.g.: /projects/=p:\;/home/lars/=Z:\lars\ Recover from In the event of unexpected behavior (missing results in search, types in type abnormal browsing, hyperlinks, tooltips etc.) please manually trigger a clean build from inconsistenciesmenu Project > Clean.... OVM Smart DVT ships with predefined filters for OVM that allow you to view colored and Log hyper-linked logs like the one below: See OVM Smart Log for more details. UVM Smart DVT ships with predefined filters for UVM that allow you to view colored and Log hyper-linked logs like the one below: See UVM Smart Log for more details. OVM to DVT provides an OVM to UVM migration wizard that automatically performs UVM all the necessary changes within an existing OVM project. To start the wizard: Migration right click on a project/file/directory in the navigator, then select Refactor > Migrate OVM to UVM. See OVM to UVM Migration documentation page for more details. © AMIQ 366 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Add a new Go to Window > Preferences > General > Content Types, select a category file extension from the list (for example Verilog Source File) then click on Add and then on to compile list Ok. extensions Sharing workspace settings Export all Workspace/ Eclipse customization: - Go to File > Export > General > Preferences - Make sure Export all is selected - Select a file where the preferences should be exported Now you can share this file with your team. When it is imported into another instance of Eclipse (by using File > Import > General > Preferences), the configuration (all options available in Window > Preferences) is replaced by the imported one. Note: you should restart Eclipse for the changes to be enforced ( File > Restart). © AMIQ 367 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com Using System You can use System Variables in the path of linked resources. For Variables in example ${DVT_ENV-SYSTEM_VARIABLE_NAME}/work is equivalent Linked to $SYSTEM_VARIABLE_NAME/work in a console. Resources Waive You can use Compile Waivers to promote, demote or disable the problems problems reported by DVT. reported by DVT To quickly create a new waiver, in the Problems View right click on any problem reported by DVT and waive it. DVT proposes some default values for the waiver description, path and message. You can easily change them to finetune the waiver. To quickly start up a new waivers file click on the Edit waivers button in the Problems View. The .dvt/waivers.xml is created with a default content and opened. You can easily create your own waivers from the default generated ones. In the waivers editor you can use autocomplete for tags, attributes and attribute values. Open a file in You can use the Command Line Interface like this: DVT from the terminal $> dvt_cli.sh -workspace ~/dvt_workspace openFile $(readlink -f my/file.sv) The command can be shortened by defining this alias in your ~/.cshrc: alias dvtopen 'dvt_cli.sh -workspace ~/dvt_workspace openFile `readlink -f \! *`' © AMIQ 368 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 33. Tips and Tricks www.dvteclipse.com or by defining this function in your ~/.bashrc: dvtopen () { dvt_cli.sh -workspace ~/dvt_workspace openFile $(readlink -f $1); } Then the command gets much shorter: $> dvtopen my/file.sv © AMIQ 369 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 34. Application Notes 34.1 Encrypted VIP Support In files that contain encrypted code, DVT may signal errors for mismatched language tokens, e.g. "Unexpected token 'endmodule'". The cause of this type of errors is most of the times the asymmetric encryption done to the code, e.g. an endmodule or an endif inside the encrypted code with the corresponding module or ifdef outside it, in plain text. Because DVT ignores encrypted code, some of the types may end up been compiled in the wrong scope altogether. To restore full or partial functionality, the asymmetric encrypted code must be fixed e.g. adding the missing endmodule. When the encrypted files are read-only, you will have to substitute the original broken files with the fixed ones. • Start by choosing a suitable directory to store the DVT substitute files. Often, they can be used across projects, so the directory should be outside of any DVT project directory in particular. You can define an environment variable to point to the chosen directory, like $DVT_FIXES. • For every file that needs to be fixed do: • Copy the file to $DVT_FIXES as is. • Modify $DVT_FIXES/file with the necessary fixes. • Tell DVT to use $DVT_FIXES/file as a substitute to file. This means adding to the default.build the following build directive: + dvt_file_substitute+/path/to/file=path/to/ $DVT_FIXES/file Having done the above, DVT will use the substitute files and offer valuable functionality, like hyperlinks, type hierarchy, references in the now correctly compiled code. Note The + dvt_file_substitute directive accepts only absolute paths as arguments. Environment variable can be used to define the absolute paths. Regular expressions are not supported. © AMIQ 370 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 35. Q & A 35.1 I am new to Eclipse, where should I start from? 1. Online from http://www.eclipse.org/documentation/. For example "Eclipse Ganymede Documentation (HTML Help Center)" is for Eclipse 3.4.The same documentation is available from Eclipse menu Help > Help Contents.Start with Workbench User Guide chapters Getting Started and Tasks.Really useful and relaxing is the Tips and Tricks chapter. 2. If you have installed the platform, you can always take a tour from menu Help > Welcome. 3. There is no experience compared with practice, especially for GUI intensive apps. 4. You can browse for more resources in the Eclipse site www.eclipse.org with good articles and responsive communities available. 5. Be prepared to discover nice functionality all the time. From time to time we recommend to read tips, tricks or concepts. 35.2 Where can I find DVT Help? You can access it by Help > Help Contents and Eclipse Help System is opened. The DVT Help is just another chapter inside Eclipse Help. 35.3 How do I see and configure the key shortcuts? Use Ctrl + Shift + L to get the list of all shortcuts. To configure go to menu Window > Preferences > General > Keys in the Modify tab. From the Modify tab you can also select the built-in Emacs scheme. Depending on the installed plugins, you may use other Emacs / Vi emulations. Related plug-ins: • ETEE [http://eclipseexeditor.sourceforge.net/] for Eclipse Text Editor Enhancements • Columns 4 Eclipse [http://sourceforge.net/projects/columns4eclipse/] or Column Mode for Eclipse [http://tkilla.ch/column_mode/] for rectangular selection • Lunar [http://sourceforge.net/projects/lunar-eclipse/] for editor enhancements © AMIQ 371 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.4 Are there any backup files in Eclipse? Right click on a file in the Navigator, from the pop-up menu select Compare With > Local History. To configure the history go to menu Window > Preferences > General > Workspace > Local History. 35.5 Workspace in use, cannot launch eclipse... Problem: I'm unable to select an existing workspace after my eclipse program that was accessing it was not shutdown properly. I get a "Workspace in Use" error when there are clearly no other eclipse instances running on my machine. Solution: If you are sure there is no eclipse looking at your workspace (not even another user), then you must remove the lock file located in the workspace at path_to_workspace/.metadata/.lock. On Windows, if you cannot delete this file (because another process is using it), then close all eclipse IDE sessions, do Control-Alt-Delete to bring up Windows Task Manager, select Processes page, and delete javaw.exe. 35.6 Locking is not possible in the directory... Problem: I'm unable to start DVT from a shared location, at launch time I'm receiving an error "Locking is not possible in the directory..." Solution: If you are using DVT in a shared installation setup, make sure that the installation directory is read-only for users. 35.7 How to start DVT Eclipse with a different eclipse.ini You might encounter situations when changing the default eclipse.ini configuration file is necessary, but you don't have write permissions over it. You can pass a different eclipse.ini file using laucnher.ini argument. If you use DVT as plugin: ./eclipse --launcher.ini <location> © AMIQ 372 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com If you use the prepacked distribution: ./dvt.sh -eclipse_args --launcher.ini <location> 35.8 Save could not be completed You might encounter the following error message while trying to save a file in the DVT editor: Save could not be completed. Reason: Some characters cannot be mapped using "CHAR_ENCODING" character encoding. Either change the encoding or remove the characters that are not supported by the "CHAR_ENCODING" character encoding. This means there are other characters than "CHAR_ENCODING" (e.g. ASCII) in the edited file, most probably introduced by another tool that was used for editing the same file. In order to locate (and eventually remove) these characters, you can use the following perl command: perl -nwe 'print if /[^[ :ascii: ]]/' filename 35.9 IBM Clearcase Plugin • It is not recommended to add new elements as this might result in unexpected behavior (existing files can be lost/renamed, new files might be created). • When working over a slow server connection, the Clearcase Plugin might report errors like: Exception in thread "ClearCaseDialogProgressMechanism" org.eclipse.jface.util.Assert $AssertionFailedException: Assertion failed: An operation is already in progress. 35.10 Non existing package mti_fli mti_fli is a non-standard proprietary SV package built into Questasim. To let DVT read it you should prepend the following line to your build configuration. {QUESTA_ROOT}/verilog_src/dpi_cpack/dpi_cpackages.sv where {QUESTA_ROOT} denotes the location where questa is installed. NOTE: In case you have an external builder configured to use the default.build, this setting will also be passed to the simulator. Therefore, the simulator will issue errors like: ** Error: /apps/questasim/verilog_src/dpi_cpack/dpi_cpackages.sv(4): Builtin package "mti_fli" cannot be replaced. To work around this issue, you need to have different command files for DVT and for the external builder. © AMIQ 373 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.11 libxul.so undefined symbol In case you encounter an error like the following: symbol lookup error: gdk_screen_get_resolution <path-to-xulrunner>/libxul.so: undefined symbol: you should check that the version of xulrunner installed in <path-to-xulrunner> is 1.8.x. Xulrunner is a library developed by Mozilla and used by the Eclipse platform to display web content. Unfortunately, the 1.9.x versions are known to have problems integrating with SWT. After installing xulrunner-1.8.x, there are two ways to tell eclipse where to find it: 1. In the console where you launch eclipse: setenv LD_LIBRARY_PATH=<NEW-XULRunner-directory-path> 2. Add the following line: -Dorg.eclipse.swt.browser.XULRunnerPath=<NEW-XULRunner-directory-path> in the " dvt_eclipse_directory/eclipse/eclipse.ini" file after " '-vmargs' " line where <NEW-XULRunner-directory-path> denotes the location of the newly installed xulrunner. 35.12 How to use Working Sets for filtering Problems/Task/Search views? First of all, in general you can customize the contents of the Problems/Tasks/Search views by using the View Menu > Configure contents. To see only the issues/tasks related to "your own code", you must first tell Eclipse what "your own code" means, and this can be achieved by using Working Sets. For easier access to Working Sets related commands, you should first enable two command groups: go to Window > Customize Perspective > Command Groups Availability, and from the Available Command Groups list on the left select Window Working Set and Working Set Manipulation. © AMIQ 374 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com Now, there should be three new buttons in the Eclipse toolbar that allow you to select/deselect current working sets and add/remove resources from existing working sets. 1. Modify workbench working sets 2. Add the selected elements to a working set 3. Remove the selected elements from a working set Using the add/remove buttons you can craft one or more Working Sets to contain various sets of resources (i.e. files/folders). If you haven't created any working sets before you will be prompted to create a new one. Then, using the ' Modify Workbench Working Set ' button you can select several sets of resources form the ' Current Working Set '. © AMIQ 375 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com Finally, to achieve the Problems View/Tasks View filtering you require, you should create a filter ( View Menu > Configure contents > New) where the Scope should be ' On Working Set: Window Working Set '. With this filter activated, the Tasks and Problems views will only show the errors that are contained in the sets selected from the toolbar dropdown. © AMIQ 376 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.13 How can I do an incremental textual search in any view? DVT distributions contain a plugin called Glance that can search incrementally in any view. Just select the view and press Ctrl+Alt+F to activate the search bar and start searching for text. 35.14 Diagram error - image has not been created There might be two kinds of errors related to Graphviz: 1. Graphviz is not (correctly) installed. © AMIQ 377 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com You can get graphviz from http://www.graphviz.org/Download.php, either as a package for your distribution or as source tarball. 2. Graphviz does not support png format. The problem might be related to the formats supported by the Graphviz package you have installed. DVT works with png format. To find out if your installation supports png, please issue this command in a shell: dot -T? and check if png is among the list of supported formats. If not, this can be easily solved by installing the package called graphviz-gd that adds png support to your current Graphviz installation. The official download location is here: http:// www.graphviz.org/Download.php - you just have to select the one matching your OS version & architecture. 35.15 How to handle Simulator and Command Line Macros Some simulators define proprietary pre-processing that might have some implications on the actual simulated code (see for example in OVM lib ifdef INCA occurrences). Also, many times, compilation/run scripts take as arguments macro definitions. See Build Configurations for enhanced support of simulator commands files. Until we'll fully integrate with all simulators and/or we provide preferences for specifying macros and means for easily turning them on/off, we recommend to create a dummy *.sv file that you set first in the top files project property as follows: 1. Create a separate dummy *.sv file ( eclipse_simulator_macros.sv) where you'll define simulator macros guarded by ifndefs. 2. Put the dummy macros file in your project. © AMIQ 378 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 3. Configure the Project Top Files so that the dummy macros file will be the first one. 4. Rebuild. Dummy macros might look like: Build Project 35.16 How do I Access Files Outside Project Dir - Working with Linked Resources In order to see the contents of some directory on your disk, you must create an Eclipse project in that directory (see also What is a Project ). If your project is spread across multiple directories without a reasonable common root or if you need to access files somehow related to your project that are not located in the project directory , you can open them from menu File > Open File.... If the file is outside any project in your workspace, the editor will open and the tab icon will be grayed. For example if you have a single project xbusonly in your workspace located in /ovm/ examples/xbus that includes files from /ovm/src and you open ovm.svh (for example via a hyperlink from the include directive) the editor tab will look like this: The same will happen if you jump to a definition located in the /ovm/src directory. The functionality in "gray iconed" editors is limited (no hyperlinks etc.). NOTE: This "capability" serves as an alarm that you are out of your project scope and avoid touching the files. But if you are just navigating in order to understand the world around your project (module), limited functionality it's not what you want. Solution 1. Create the project in a "root directory" that encloses all directories with relevant files (or emulate) This is a simplistic solution. Besides additional relevant files, it is most likely to get in a lot of unrelated files that might also slow the platform. A variant might be to create a special "root" directory with file system links to each directory whose contents you must access. Then create an Eclipse project in the "root". It requires changes to disk (links) just to work with Eclipse, not really acceptable. © AMIQ 379 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com Solution 2. Create a project in each relevant directory This solution might work for you. In the example above, it is most probable that a project is already defined for ex_atm. But if a project is just spread in multiple directories without a common root and each directory it's not really a separated project, it will be cumbersome to have my_p__dir_1, my_p__dir_2 projects. Solution 3. Linked Resources Choose one "main" directory to locate the project and create linked resources from it to other relevant external directories. Linked resources are very similar with file system links, except they are registered in the .project file, not created on the disk. For more details see Linked Resources. Full functionality is available for files accessible via linked resources. Linked Resources What is a Project What is a Workspace 35.17 Mapping Linux to Windows (/ proj/ to Z:\proj\) Linux directories can be mapped to Windows drives, allowing editing files from Windows. For example /home/simi is mapped to Z:\. This has an impact on paths configured for a DVT project, for example INCDIRs etc. The paths are set using Linux conventions, however Eclipse runs in Windows and the DVT builder needs to know about the mapping in order to compile the files. To specify the mapping, set the system variable %DVT_CROSSPLATFORM_MAP% before invoking Eclipse. You can add multiple mappings separated by ";" e.g.: /projects/=p:\;/home/lars/=Z:\lars\ NOTE: Please do not put any mapping of type /=\, we are handling this automatically. 35.18 Subversive vs Subclipse Subversive does not automatically recognize svn projects while Sublicpse does. © AMIQ 380 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.19 How do I associate a project with both DVT and CDT? There are two situations: 1. You have a DVT project containing C/C++ sources and want to associate it with CDT Go to File > New > Other and select C/C++ > Convert to a C/C++ project. After completing the wizard, the C/C++ files in the project should handled by CDT. 2. You have a CDT project containing Verilog/SystemVerilog sources and want to associate it with DVT Just right-click on the project and choose Toggle Verilog Nature. Now the Verilog/ SystemVerilog files in the project should be handled by DVT. See Build Configurations for further project configuration. 35.20 Can I use vi/vim along with DVT? DVT contains ViPlugin OEM ( http://www.viplugin.com/viplugin/index.php/viplugin) for vi emulation. To use it download a prepacked version of DVT or install viPlugin for DVT feature from DVT Update Site. Below you can find a list with other vi emulation plugins for Eclipse: 1. http://vrapper.sourceforge.net/home/ • free • easy install from update site • has some basic vi commands that work in editors • DVT editors work perfect with it 2. http://eclim.org/ • free • hard to install • integrates Eclipse in vi or vi in Eclipse (it has many modes) • has not been tested extensively with DVT 3. http://vimplugin.org/ • free © AMIQ 381 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com • easy to install from update site, but requires needs JDT (Java Development Tools) installed in eclipse and gvim in os • it replaces editor window in eclipse with gvim window, therefore no DVT editor feature is preserved 35.21 Can I perform dos2unix or unix2dos from DVT? Yes, you can access this built-in functionality from File > Convert line delimiters > <desired format>. Depending on the focus, the conversion is performed either for the current editor or for the files selected in the navigator view. 35.22 How can I configure Eclipse to use a local CVS repository? 1. Create a shell script with the contents below somewhere on disk and make it executable. 2. In Eclipse, go to the CVS peference page (Window > Preferences > Team > CVS > Ext Connection Method) • Select "Use an external program to connect" • For "CVS_RSH" enter the path to the script you just created • For "Parameters" enter a whitespace (won't work if left empty) • For "CVS_SERVER" you should have "cvs" 3. Add a new CVS repository location in Eclipse (File > New > Other > CVS > CVS Repository Location) • For "Host" enter "localhost" • For "Repository path" enter the local absolute path to your repository • For user and password you can enter anything (will not be taken into account) • For connection type select "ext" At this point the repository you've just created should be functional in Eclipse. You can checkout a module to see that everything is OK. In order to make cvs work in the command line as well (with projects checked out from Eclipse) you have to set the system variable CVS_RSH to point to the script and CVSROOT to the the local absolute path to your repository. Script content © AMIQ 382 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com #!/bin/sh if [ "$1" != "cvs" ]; then # Remove -l {user} {host} shift shift shift fi exec "$@" 35.23 I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do? This seems to be a problem related to running Eclipse under CDE via Citrix. Try changing CDE to another Desktop Environment, like the Java Desktop System (JDS). 35.24 How do I change the background color of the Editor? Go to Window > Preferences, then navigate to General > Editors > Text Editors. In the panel on the right, from the Appearance color options list select Background color, then use the color picker to choose the desired color (the System default checkbox must be unchecked). 35.25 How do I change the color of the interface? If you are using the linux distribution of DVT you can change these colors by going to Window > Preferences, then navigate to DVT > GTK Theme. This will overwrite the GTK theme of your system just for DVT when you start it using a distribution script. After applying a theme a restart is required. For Windows and MacOS users it is not possible to define an application theme, so the only workaround is to change your system theme to the desired colors. 35.26 How to apply the dark color theme or other themes? If you want to change the color for all the editors and the interface you can use the DVT Themes feature. Go to Window > Preferences, then navigate to DVT > DVT Theme and select a predefined theme or import a theme file. © AMIQ 383 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com To use dark colors you can select the Dark predefined theme. After applying a theme a restart is required. This theme will apply on the selected edtitors and also to GTK if you're using Linux or Solaris distributions. Keep in mind that applying a theme will overwrite the color preferences for the selected editors. 35.27 How do I change the tooltip colors? If you want to change the tooltip colors and GTK Themes are not available (Windows, MacOS) then you can use Preferences > General > Appearance > Colors and Fonts > DVT > Tooltips and for content assist Preferences > General > Appearance > Colors and Fonts > Basic' 35.28 How do I change Internet Proxy Settings? If you want to change the proxy settings go to Window > Preferences > General > Network Connections Active Provider - Specifies the settings profile to be used when opening connections. Choosing the Direct provider causes all the connections to be opened without the use of a proxy server. Selecting Manual causes settings defined in Eclipse to be used. On some platforms there is also a Native provider available, selecting this one causes settings that were discovered in the OS to be used. © AMIQ 384 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com Proxy entries - The table displays entries that are available for all providers. Checkboxes in the first column of the table indicate entries to be used for the currently selected provider. Proxy bypass - Use this table to specify, either by name or pattern, the hosts that should not use any proxy. A direct connection will always be used for matching hosts. Checkboxes in the first column of the table indicate entries to be used for the currently selected provider. When using Manual proxy provider there are three predefined schemas to set settings for: HTTP, HTTPS and SOCKS. Configuration for each schema is displayed in the Proxy entries table. To edit settings for a particular schema double-click the entry or select the entry and click Edit... button. If Port field is left blank default port number will be used: (HTTP - 80, SSL - 443, SOCKS- 1080). 35.29 Eclipse does not start, there is no Workspace, metadata or log file created A possible cause for this could be the lack of access rights to all, part or one of the files under $DVT_HOME. Solution: • check the log in the ~/user'shome/.eclipse/org.eclipse.platform_/configuration/.log and see what is the file that can not be accessed • make sure that you have rx rights on all files & folders under $DVT_HOME 35.30 Workspace permissions A possible solution for the following errors (or similar issues) is to add write permission for the Workspace you are currently using and all files inside it. © AMIQ 385 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com Keywords: unable to save, failed to write, ResourceException, unable to store; 35.31 How to install our server as a service in Windows? To start the server in background you can use a freeware tool named hstart that can run commands without using a terminal. You can download it from here: http://www.ntwind.com/download/hstart.zip The archive contains two files: hstart.exe and hstart64.exe. Use the one appropriate for your Windows (32bit or 64bit). Assuming that hstart.exe, the license file and dvt_server_1.9.jar are in the same location you can create a batch file, named for example start_dvt_server.bat with the following content: hstart.exe /NOCONSOLE "java -jar dvt_server_1.9.jar your_license_file" When you run the script, the server will start in background with no console attached. To stop the service you can use the dvt_utils.jar tool or you can stop it from Windows Task Manager. 35.32 How do I link mylyn with Bugzilla? It works like this (if mylyn is installed): © AMIQ 386 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com In the editor, comments that include text of the form bug#123 or task#123 or bug 123 will be hyperlinked. Ctrl+clicking on this text will open the task or bug in the rich task editor. To support hyperlinks within other text editors such as code or .txt files, the project that contains the file must be associated with a particular task repository. This is configured by right-clicking on the project and navigating to Properties > Task Repository and selecting the task repository used when working with this project. 35.33 How do I print source code? For black and white printing you can use enscript - if it is available on your platform. Go to Run > External Tools > External Tools Configurations… and follow the next steps: 1. Create a new Launch Configuration 2. enscript location (you can use which enscript command to get its path) 3. enscript arguments 4. Apply > Run © AMIQ 387 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com The above enscript arguments ( '-2rT4v -DDuplex:true -dPhotosmart_C5100') used in this example mean: 2 = 2 columns on page,r = landscape, T4 = tab size 4, v = verbose, Photosmart_C5110 = a printer name See also "man enscript" (in a Unix/Linux console). For color printing, you can copy/paste into Word / Open Office. The highlight is preserved. You can customize fonts / preview etc. in office tools. 35.34 How do I disable Eclipse Software Sites? Eclipse contacts all Update Sites even if the option is un-checked ( Help > Install New Software... > Contact all update sites during install to find required software). To disable update sites querying, go to Window > Preferences > Install/Update > Available Software Sites and unselect all the references to software sites in that list. 35.35 How do I revert to a previous version? In case you have updated DVT Eclipse and you want to go back to a previous installation checkpoint you can do that using: Help > About Eclipse > Installation Details > Installation History. Using this page you can select a previous configuration and inspect the installed plugins and versions. If you decide to go back to one of the old configurations just select it an click Revert. © AMIQ 388 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com NOTE: Sometimes Eclipse might need the update site for the plugins involved in the revert operation, to add them go to Window > Preferences > Install/Update > Available Software Sites. 35.36 What are the most common shortcuts in DVT? If you type Ctrl + Shift + L a list with all available Eclipse shortcuts will pop-up. For more information: Common Shortcuts 35.37 How does DVT integrate with emacs? 1. DVT integrates some emacs Verilog-Mode actions (provided that emacs is already configured): indent code, inject/delete/run automation. To activate: go to Window > Customize Perspective, then select the Command Groups Availability tab and in the list on the left select the checkbox Emacs Verilog-Mode. You should then see the emacs buttons in the toolbar. 2. Eclipse has a built-in emacs keyboard scheme. To activate it: go to Window > Preferences then General > Keys and change the Scheme to Emacs 3. There is an emacs plugin for Eclipse available at http://www.mulgasoft.com/ 35.38 How does DVT integrate with CVS? Get the CVS plugin: The simplest way is to install DVT from a prepacked distribution that includes the CVS plugin for Eclipse. For an Eclipse installation that find in the Navigator View that the projects that were previously checked out are now recognized as shared projects. If you right click on a file/directory in the Navigator View, you should have common operations under the Team menu ( Update/Commit/Show history etc). 35.39 How to set an environment variable within a Run Configuration? More details here © AMIQ 389 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.40 How to run a remote Unix commnad from DVT Eclipse for Windows? Presuming that you use ssh or telnet to connect to the unix environment you can use a putty tool to do this. The name of the command is plink.exe [http://www.chiark.greenend.org.uk/ ~sgtatham/putty/download.html] and it can be considered the analog of ssh for Windows. You can use the plink.exe command with the DVT Generic Launch Configuration. More information about how to use plink.exe can be foudn here http://the.earth.li/~sgtatham/ putty/0.61/htmldoc/Chapter7.html#plink. There is also a sub chapter about how to use plink unattended (it won't require any interaction like user or password input). 35.41 Rebuild shortcut (Ctrl + Alt + R) does not work If 'Ctrl + Alt + R' does not trigger a rebuild, you can change it from Windows > Preferences > General > Keys > select 'Default' scheme > search for 'Rebuild Project' > change the binding > OK © AMIQ 390 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.42 Sometimes I experience DVT GUI hangs, what should I do? When you experience GUI hangs please follow the next steps in order to provide us some valuable debug information about your situation: • While the GUI is hanged, run the following command $DVT_HOME/bin/dvt_debug_utils.sh -workspace /path/to/dvt_workspace -thread_dump -nof_kills 60 • When the command above is done (in ~1 minute), it prints the path to the log file it has generated, like this: DVT log file is: /tmp/dvt_log_<pid#> • Send us the generated log along with a brief description of the activities you were performing in DVT when the hang occured (like for example creating a New Project, invoking the Content Assist, maximizing a view, etc.). 35.43 Sometimes I experience DVT GUI hangs when switching from another X application to DVT In some GTK/X versions, when switching from various X applications to DVT, you might experience unresponsive UI for various periods of time (from tens of seconds up to complete hangs). This behavior has its roots in the way the respective applications, X and GTK manage the System Clipboard. First off, you should make sure you are running a recent GTK version. If it's not possible to update your GTK / if the problem persists when running with the newest GTK available for you, this section covers an alternative solution. To confirm that you are affected by this problem, follow the steps in this section in order to generate a debug information file (in the example: ~/dvt_threads.dump) and in addition, run the following command: $> grep gtk_clipboard_wait_for_contents ~/dvt_threads.dump 2>&1 1>/dev/null && echo "Yes" || echo "No" If the grep result is No you are probably not affected by this specific issue, so we recommend sending us the ~/dvt_threads.dump file in order to furhter investigate the problem. If the grep result is Yes you can fix the problem by patching your Eclipse installation. For patching, DVT must be installed from a prepacked distribution. Follow the steps below: • Suppose your DVT Eclipse installation directory is $DVT_HOME. First make a backup of the file to be replaced: $> mv $DVT_HOME/eclipse/plugins/org.eclipse.swt.gtk.<os>.<arch>_<version>.jar $DVT_HOME/eclipse/ © AMIQ 391 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com where <os>, <arch> and <version> are specific to your system & installation. • Then copy the patched jar file: $> cp $DVT_HOME/misc/patch/org.eclipse.swt.gtk.<os>.<arch>_<version>.jar $DVT_HOME/eclipse/plugi • Restart DVT. You should not experience any more hangs. NOTE In some cases it was reported that although the patch eliminated long GUI lagging/ hangs, it introduced some minor lags when changing the file selection in the navigator. If this is your case, you should set the following environment variable: $> setenv DVT_SWT_CLIPBOARD_PATCH_TEXT_ONLY_MODE true before launching DVT. Navigator selection will work smoothly again. The only drawback is that you won't be able to paste files directly in the Navigator view. 35.44 I want to use an alias in a DVT Generic Run Configuration, but it's not recognized More details here 35.45 How to set multiple paths as sources of predefined projects ? You can set an environment variable starting with "DVT_PREDEFINED_PROJECTS_EXT_" for each directory that contains predefined projects. For example, if there are two directories - let's say dir1 & dir2, you must create two environment variables pointing to them: • $DVT_PREDEFINED_PROJECTS_EXT_1 -> dir1 • $DVT_PREDEFINED_PROJECTS_EXT_2 -> dir2 Note 1: Each environment variable must point to only one directory that can store any number of projects Note 2: Avoid duplicate projects in different directories 35.46 Lines are suddenly changing indentation when I edit text or move the cursor through the editor. This might happen if you don't use a monospaced font ( e.g: Courier ). To change the editor font: © AMIQ 392 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 1. Go to Window > Preferences. 2. From here go to: General > Appearance > Colors and Fonts. 3. In the window on the right side choose: Verilog Language > Editor > Verilog Language Text Font 4. Press Edit and check that the font you are using is monospaced. If it isn't, choose one from the list ( ex: Courier, Monospace). 5. Ok > Apply 35.47 How to change the directory where the build log file is saved ? Open the active .build file under the .dvt diredctory (e.g. .dvt/default.build) and add these flags: +dvt_build_log_to_file+true/false +dvt_build_log_file_location+path/to/folder (use "." for project's root) 35.48 How to find the DVT logs on Linux/Unix ? If you run DVT with dvt.sh: • To print the logs location go to the workspace dir and: $ dvt_debug_utils.sh • To dump the threads of a running DVT go to the workspace dir and: $ dvt_debug_utils.sh -thread_dump Other logs are in the <path_to_workspace>/.metadata folder. 35.49 How to create resource filters ? Right click on a project > Properties > Verilog Language > Resource Filters. From this wizard you can select what resources to exclude from the selected project. By default it only shows 50 children for each directory. If a directory contains more than 50 children you are not allowed to filter its content. You can modify this limit, globally, from Maximum number of children for each directory or by right-clicking on a directory and selecting Show more files. There is also a Timeout option if the project's resources are located on remote computers and the network lag may slow down the platform. The wizard will display only those children (files/ folders) that were scanned before the timeout is reached. © AMIQ 393 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com WARNING: DVT Resource Filters are not fully compatible with Eclipse's filters. If you already use standard platform's filters, it is recommended to disable them before applying DVT filters. NOTE: Linked-Resources (project's resources linked to file system directories) cannot be filtered; you can only filter their children. 35.50 How to create custom shortcut and button for a Run Configuration? More details here 35.51 I know that file.foo is present in the project location, but I can't see it in the Navigator View Check if there is a Navigator filter enabled preventing the file from being displayed. Bring down the Navigator View Menu and select 'Filters': © AMIQ 394 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com Make sure there is no pattern in the list that matches the name of the file (like for example *.foo). 35.52 How to copy the full path to the file in the current editor? Right click in the current editor > Copy Full Path. You can also assign it a shortcut: go to Window > Preferences > General > Keys (or press twice ctrl + shift + L ) and assign a shortcut to Copy Full Path. It's a global shortcut, you can call it from anywhere but only the active editor's input will be considered (or the current selection in the navigator if you call it when the navigator view is active e.g. after you select a file). 35.53 How to adjust the console logs filters matching parameters? Go to: Run > Run Configurations... > select a run configuration > open Filters tab. Here you can adjust how many characters per line (between 1-999, default 256) and how many consecutive lines (between 1-99, default 8) can be matched by a filter. These limitations prevent inifinite recursive matching if a log message does not follow a standard pattern or it is too long. 35.54 When I switch to Block (Column) Selection mode the font changes Please make sure the Text Font and the Text Editor Block Selection Font are the same: • go to General > Appearance > Colors and Fonts © AMIQ 395 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com • in the list on the right, under the Basic category you should see • Text Font • Text Editor Block Selection Font • The fonts should be the same 35.55 In Block (Column) Selection mode I see strange editng artifacts Please make sure the Text Editor Block Selection Font is a monospaced font: • go to General > Appearance > Colors and Fonts • in the list on the right, under the Basic category you should see Text Editor Block Selection Font • The font should be monospaced 35.56 How to modify the font size in the code editors? You can increase/decrease the font size in code editors using these buttons, on the main toolbar: You can can also modify the font settings from Window > Preference > General > Appearance > Colors and Fonts. For global settings (used by all editors), select Basic > Text Font and for editor specific settings, select (e , Verilog, VHDL) Language > Editor > Text Font. © AMIQ 396 Rev. 3.5.32 DVT SystemVerilog IDE © AMIQ Chapter 35. Q & A 397 www.dvteclipse.com Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.57 How to automatically checkout/ lock files from the revision control system ? Let's suppose your project is tracked by a revision control system, for example Perforce, DesignSync or Clearcase, that keeps non checked out files read-only. In this scenario, you can instruct DVT to perform some actions on any read-only file that gets modified by direct editing or by refactoring: 1. Create a new run configuration, named DVT_CHECKOUT_HOOK. 2. In the newly created run configuration, add any script or command you wish to be performed on the read-only files that get modified. The list of files is in ${selected_resources_loc} variable, by default separated by colon (:). You can use custom separators. See the examples below, supposing the list of files is: file1.e, file2.sv, file3.vhdl. • ${selected_resources_loc} would expand to file1.e:file2.sv:file3.vhdl • ${selected_resources_loc: } would expand to file1.e file2.sv file3.vhdl • ${selected_resources_loc: >> } would expand to file1.e >> file2.sv >> file3.vhdl 3. You can now use the DVT_CHECKOUT_HOOK run configuration in two ways: • simply start to modify a read-only file and it will get triggered automatically • select some files (in the Navigator) and manually launch the "DVT_CHECKOUT_HOOK" run configuration; note that you can map the run configuration to a toolbar button (see Custom Shortcut and Button for a Run Configuration) Also, you can disable the checkout confirmation by inserting the following attribute in the DVT_CHECKOUT_HOOK run configuration file: <booleanAttribute key="ro.amiq.dvt.launch.REQUIRE_CHECKOUT_CONFIRMATION" value="false"/> 35.58 How can I see if a file is readonly? To enable read-only decorators for Navigator(1), Editor(2) and Refactoring Preview(3) go to: Window > Preferences > DVT and select the Show read-only decorators checkbox. © AMIQ 398 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com 35.59 How can I open a file in DVT from the terminal? You can use the Command Line Interface like this: $> dvt_cli.sh -workspace ~/dvt_workspace openFile $(readlink -f my/file.sv) The command can be shortened by defining this alias in your ~/.cshrc: alias dvtopen 'dvt_cli.sh -workspace ~/dvt_workspace openFile `readlink -f \!*`' or by defining this function in your ~/.bashrc: dvtopen () { dvt_cli.sh -workspace ~/dvt_workspace openFile $(readlink -f $1); } Then the command gets much shorter: $> dvtopen my/file.sv 35.60 How do I change the name of the xterm opened by a DVT Generic Run Configuration? At the beginning of your script/command insert these commands: © AMIQ 399 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 35. Q & A www.dvteclipse.com echo -ne "\033]0;YOUR_WINDOW_TITLE_HERE\007" echo -ne "\033]1;YOUR_TASKBAR_TITLE_HERE\007" © AMIQ 400 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 36. What is New? #.# - major version - Includes new features, major enhancements, architectural changes, bug fixes. #.#.# - minor version - Includes bug fixes, minor enhancements. 3.5.32 (18 December 2014) Features • DVT-1243 Ability to generate getters and setters, see Generate_Getters_and_Setters Enhancements • DVT-4498 Enclose selected text when typing bracket or quote or begin/end • DVT-6856 Code Formatting: Add vertical align patterns for classes and functions Bugfixes • DVT-6580 Eclipse 4: Tool Bar Customization / Dynamic Launch Configuration Toolbar category is showing icons from every toolbar refresh • DVT-6581 Eclipse 4: Commands for Dynamic Launch Configurations are persisted after the launch configuration is deleted • DVT-6909 Wrong auto-indentation when adding new line immediately before a string • DVT-6915 Search for references should look into all compiled files regardless of their content type • DVT-6918 Refactoring should be performed into all compiled files regardless of their content type • DVT-6920 Content assist shows no proposals after end delimiter without matching block name • DVT-6921 Code Formatting: Add whitespace before/after should not break '+:' and '-:' operators 3.5.31 (5 December 2014) Bugfixes • DVT-6603 Eclipse 4: Build toolbar should resize on large build names instead of displaying a drop-down • DVT-6662 Eclipse 4: Updated ViPlugin for DVT to 2.13.1 (fixes for Eclipse 4) • DVT-6858 False DUPLICATE_NAME error on genvar use © AMIQ 401 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6859 False UNDECLARED_IDENTIFIER error on genvar use in nested for blocks • DVT-6883 ViPlugin: Fixed "invalid stream header" error and some NullPointerExceptions • DVT-6885 New DVT File Wizard doesn't allow selecting the directory in the DVT AutoLinked hierarchy • DVT-6894 New DVT File Wizard doesn't recognize paths on shared partitions • DVT-6896 DVT Editor line delimiter should be set by the "New text file delimiter" workspace and project preferences Enhancements • DVT-6895 Code Formatting: Ability to vertically align to open curly • DVT-6897 Code Formatting: Ability to place function/task declaration arguments on new line/same line • DVT-6898 Code Formatting: Ability to place class declaration parameters on new line/same line • DVT-6899 Change default state of Prepend Package Name and Group By Package buttons 3.5.30 (28 November 2014) Features • DVT-3222 Ability to create a project from template using dvt_cli.sh Enhancements • DVT-6027 Add capability to use commands to open custom hyper links created by run configuration filters • DVT-6682 Mention shown UVM types in UVM Browser documentation • DVT-6683 Add Ports Category in UVM Browser • DVT-6855 Verissimo: Add check title to HTML lint report • DVT-6860 Add Register Maps Category to UVM Browser • DVT-6873 Add +dvt_env_no_override build directive Bugfixes • DVT-6834 False UNDECLARED_IDENTIFIER when accessing interface parameters by modports • DVT-6838 False UNDECLARED_IDENTIFIER error for method access on event triggered property © AMIQ 402 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6857 False UNDECLARED_IDENTIFIER error when accessing a typedef parameter field • DVT-6862 Field Editor "Select all" button clears set print radix • DVT-6872 Build log file is not automatically refreshed if it resides inside the workspace 3.5.29 (21 November 2014) Enhancements • DVT-6832 Improved error recovery on missing semicolon • DVT-6849 Support for net declaration using non-standard packed dimension (expression instead of range) • DVT-6848 Demote to warning the non-standard IMPORT_IN_CLASS semantic indication Bugfixes • DVT-6824 Eclipse 4: NullPointerException in ContentMergeViewer $ContentMergeViewerLayout.layout (patch for Eclipse Luna 4.4.1, Eclipse Bug 348429) • DVT-6841 Content assist is very slow in some cases when more than 100k proposals • DVT-6842 No error reported on incomplete define declaration (e.g. `define followed by new line) 3.5.28 (16 November 2014) Enhancements • DVT-5743 Add expand all in current scope to code folding • DVT-6028 Match Questa errors and invoke "verror" tool to open them Bugfixes • DVT-6790 Sometimes autocomplete does not work after `macro_calls. • DVT-6751 Verissimo: HTML lint report saved state should work between different reports • DVT-6803 False UNDECLARED_IDENTIFIER semantic error in parameterized class • DVT-6804 False UNDECLARED_IDENTIFIER semantic error when class extends its param inside a package • DVT-6826 Using many Auto-Linked roots results in "Value is too long" error • DVT-6827 Field Editor adds registration macros outside of the class body • DVT-6828 Project build fails when default.build directive contains formatted numbers (e.g +define+DEFAULT=32h'FFFFFFFF) © AMIQ 403 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com 3.5.27 (7 November 2014) Enhancements • DVT-6252 Report illegal virtual static function/task • DVT-6714 Move cursor position to field area in code templates for UVM classes • DVT-6774 Code Formatting: Ability to vertically align to open parenthesis • DVT-6783 Ability to customize run configurations console title according to the output of the process • DVT-6801 Slow post full build semantic resolve configurations phase in mixed SystemVerilog/VHDL mode Bugfixes • DVT-6409 False SystemVerilog UNDECLARED_IDENTIFIER error when referring VHDL-defined types with package::qualification • DVT-6410 False SystemVerilog UNDECLARED_IDENTIFIER error when referring members of VHDL-defined records • DVT-6745 Field editor should add the registration macros at cursor position not at the end of the class • DVT-6763 Autocomplete in Windows OS might throw exceptions when triggered outside any scope • DVT-6765 Sometimes dictionary save fails at platform shutdown • DVT-6771 False DUPLICATE_NAME semantic error on generate blocks declared inside an else branch of an enclosing generate block • DVT-6778 "Conflicting handlers" log entry for each run configuration button • DVT-6779 False UNDECLARED_IDENTIFIER semantic error when parent element type is a typedef inside a parameterizable parent class • DVT-6780 Interfaces, modules, programs, primitives or checkers not always visible from a different library • DVT-6781 DVT crashes after CentOS and RHEL updates with "_cairo_operator_bounded_by_source: Assertion `NOT_REACHED' failed" (fixed in distributions) • DVT-6782 dvt.sh -eclipse_args doesn't work with -vmargs • DVT-6784 SystemVerilog build time increases exponentially with chained if else if generate blocks © AMIQ 404 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6785 UVM Field Editor throws an internal error and erroneously deletes registration macros • DVT-6788 Suppress "First launcher.execute()" messages from ClearCase plugin (patch for distro) 3.5.26 (31 October 2014) Enhancements • DVT-4964 Code Formatting: Ability to specify a list of operators that must be surrounded by space • DVT-5420 Ability to trim trailing whitespace on save (Preferences -> General -> Editors > AnyEdit Tools) • DVT-5832 Disabled incremental build should also disable views updates • DVT-5988 Show value, file and line information in Macros View • DVT-6029 Support for URL hyper-links in run configuration filters • DVT-6152 Ability to hide from macros view "ifndef guards" • DVT-6241 Ability to customize run configurations console title • DVT-6381 Support for non-standard fprint() and print() global routines • DVT-6739 Ability to visualize all `ifdef/`ifndef that may affect the environment • DVT-6741 Add $test$plusargs $value$plusargs to predefined functions • DVT-6759 Support for non-standard syntax import "DPI-C" escaped_identifier = function int function_name() • DVT-6766 Specador: Use new HTML look & feel by default • DVT-6773 Added AnyEdit plugin in all distributions and updated CLEARCASE, PERFORCE, PERL and PYTHON plugins Bugfixes • DVT-5849 False NON_EXISTING_TYPE semantic error on port declaration not cleared on incremental build • DVT-6030 Run configuration filters of type NOTE not working when ${line} is not used inside pattern • DVT-6148 Dynamic run configuration buttons should be filtered by working sets • DVT-6462 +dvt_incremental_compile_max_lines not taken into account by semantic checking © AMIQ 405 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6613 Auto-instance should not generate duplicate wires • DVT-6750 Incorrect auto-instance generated wires for signals with packed dimension • DVT-6769 False UNDECLARED_IDENTIFIER error when accessing API of a typedef-ed parameter type • DVT-6772 No prompt for rebuild when unable to restore from a dictionary saved with pre-3.5.24 3.5.25 (23 October 2014) Enhancements • DVT-5694 Trigger semantic error on duplicate constraint name • DVT-6384 Trigger semantic error on duplicate generate block name • DVT-6723 Verissimo: Add title to HTML lint report • DVT-6724 Verissimo: Double clicking a hit in HTML lint report opened in DVT's browser will open the file • DVT-6736 Verissimo: Add hits table summary to HTML lint report • DVT-6737 Verissimo: Visual and usability enhancements for HTML lint report Bugfixes • DVT-5851 Wrong autocomplete at the end of keyword • DVT-6054 Do not show modules/other global types after dot as valid proposals when the context cannot be defined • DVT-6240 Autocomplete, hyperlink and hover support for function/task named arguments • DVT-6329 False UNDECLARED_IDENTIFIER semantic error for the type_option of a coverpoint • DVT-6673 Library-global assertions are duplicated in Checks View • DVT-6727 Verissimo: HTML lint report hits table column widths are wrong after a resize • DVT-6725 Project Statistics yields all metrics zero when full build option is checked • DVT-6728 Rebuild buttons visible only on main window after multiple windows platform restart • DVT-6734 Autocomplete after a function that takes a macro call as argument hangs • DVT-6742 Verissimo: Filter out all checks with no hits when file filters are used in HTML lint report © AMIQ 406 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6744 Field Editor should allow registration of unregistered classes 3.5.24 (10 October 2014) Features • DVT-6335 Verissimo: New HTML report with advanced functionality for filtering and searching Enhancements • DVT-5635 Simplify override function with autocomplete (Java-like) • DVT-6589 Report error if target interface signal does not exist in modport declaration • DVT-6591 Record ports in clocking blocks • DVT-6647 Added new predefined project based on UVM 1.2 - UBUS • DVT-6693 Report error for mismatched modport and interface port directions • DVT-6704 Auto-complete window does not remember the width and height between invocations • DVT-6710 Specador: Added support for clocking blocks Bugfixes • DVT-5548 Setting a template as auto-insertable doesn't work • DVT-6638 Ports should be filtered from the Outline View when showing only modules • DVT-6692 False UNDECLARED_IDENTIFIER error on modport access • DVT-6697 False NON_EXISTING_TYPE_ERROR on non-standard enum declaration • DVT-6700 Waive Problem from Problems View context menu does not escape less than < greater than > and quote " characters • DVT-6719 Added XULRunner library in Linux distributions to avoid crashes when the internal browser starts on old systems 3.5.23 (2 October 2014) Deprecated OVM Field Editor key binding will be removed in the next major release • DVT-6661 Use same shortcut for OVM and UVM field editor Enhancements • DVT-1714 Field Editor - class parameters need to be added • DVT-4972 Support for tooltips/hyperlinks/autocomplete/refactor for genvars © AMIQ 407 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6590 Report error when accessing interface level signals out of modport/clocking blocks • DVT-6650 Support for non-standard cast construct "int(some_var)" • DVT-6651 Support for macro argument identifier or operator split on 2 lines (VCS mode) • DVT-6677 Content Filters for Field Editor • DVT-6681 When DVT_USER_SETTINGS or DVT_COMMON_SETTINGS point to a location inside a project no links are created in DVT-Settings project Bugfixes • DVT-61 OVM Field Editor - Unregister/Register vs. Fix • DVT-1931 References search issue for members declared in files included multiple times • DVT-2799 OVM Field Editor doesn't pop when no fields • DVT-5533 Inhibit macro expansion in signal declarations for Code Factory templates and auto-instance generated wires • DVT-5714 Field editor does not work on classes with no fields • DVT-5989 Field editor should use uvm_component_param_utils macro for parameterized classes • DVT-6382 False UNDECLARED_IDENTIFIER semantic error genblk<N> on implicit generate blocks • DVT-6405 Problematic undeclared identifier when accessing a function from parent module instance • DVT-6479 No build after CLI createProject on a project that was previously deleted • DVT-6490 Refactor genvar leaves declaration unchanged • DVT-6604 Eclipse 4: Settings management eclipse.ini merger doesn't support case sensitive arguments • DVT-6635 The Design Hierarchy View text filter is cleared after rebuilt • DVT-6641 Quoted arguments of dvt_cli.sh -<name>.build are not handled correctly • DVT-6643 Non-deterministic build config errors on large build configurations of mixedlanguage projects • DVT-6644 Wait for clipboard contents hangs (Eclipse Bug 241957 patch) • DVT-6649 False UNDECLARED_IDENTIFIER semantic error when element is from a different library © AMIQ 408 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6658 Auto-indentation very slow for imbricated levels of "begin...end" that have "begin" immediately after closing parenthesis • DVT-6569 Trigger semantic error for missing type used as default value for a parameter • DVT-6657 DVT CLI does not accept DVT as argument of -perspective option • DVT-6660 Classes are no longer visible across libraries • DVT-6663 Enclosing scope is not determined correctly when moving the cursor from outside a type • DVT-6669 Editor preferences for autocomplete not working 3.5.22 (9 September 2014) Features • DVT-6377 Ability to specify current build configuration name and content by dvt_cli.sh Enhancements • DVT-4767 Example Makefile.dvt for a predefined project • DVT-4911 Run configurations: improve error handling and visibility of project / working dir resolution • DVT-5571 Autocomplete SystemVerilog constraints in subclasses Bugfixes • DVT-5328 UVM Field Editor shouldn't translate typedefed types • DVT-6637 Wrong UNDECLARED_IDENTIFIER semantic error pkg_name::type_name is used and pkg_name declared in a different library when 3.5.21 (3 September 2014) Enhancements • DVT-6026 Ability to specify path to Custom Dialog swtxml as relative to the location of the run configuration • DVT-6387 Hyperlinks not working on instance ports when module name is specified with macro • DVT-6600 Add modport as element type option for content filters Bugfixes • DVT-4149 Don't jump to files from other projects when double-click in views • DVT-5323 Build configurations are not correctly parsed when -ncelabargs is encountered © AMIQ 409 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5622 Semantic search does not work for global tasks • DVT-5737 No autocomplete for static events after class_name:: • DVT-6357 Compile waivers don't work for problems whose description contains newlines • DVT-6601 When creating a content_filters.xml views are not refreshed • DVT-6620 Search view quick search is shown at the bottom of the view instead of the top 3.5.20 (28 August 2014) Features • DVT-5000 Add 'show usages' hyperlink entry Bugfixes • DVT-5322 Refactoring a package name results in "Unexpected error when checking for new name" • DVT-6612 Members sorting in Types/Verification Hierarchy Views is unstable • DVT-6560 Missing semantic UNDECLARED_IDENTIFIER error when accessing undeclared method on queues in parameterized classes • DVT-6566 Missing semantic UNDECLARED_IDENTIFIER error on wrong :: access in classes extending their parameters • DVT-6574 Missing semantic UNDECLARED_IDENTIFIER error when using virtual interface (e.g. cls#(virtual intf)) • DVT-6598 Wrong icons for mixed mode instances • DVT-6610 Parser stops after finding a non-printable character (e.g. 0x1A) • DVT-6611 Fix ambiguous syntax error reporting inside macro invocation • DVT-6618 Wrong UNDECLARED_IDENTIFIER errors when an ancestor of the class extends its parameter 3.5.19 (21 August 2014) Features • DVT-5932 Ability to browse module parameters • DVT-5933 Ability to browse global functions • DVT-6592 Ability to browse and search type members in Types View Enhancements © AMIQ 410 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4050 Add -perspective switch to dvt_cli.sh importProject • DVT-5418 Ability to specify prefixes that trigger autocomplete • DVT-5613 In ius.irun compatibility mode if irun is not available -uvm should fallback to DVT_UVM_HOME with warning • DVT-6051 Hierarchical search in Types View • DVT-6158 Cross-platform Quick Search clear button • DVT-6404 Hide some of the "gray" functions from Quick Hierarchy • DVT-6465 Bold Quick Search matches in UVM Browser • DVT-6587 Automatically show Types Members / Verification Hierarchy Ports and select first match when search string includes dot • DVT-6593 Parameters don't show up in outline view Bugfixes • DVT-4736 Eclipse 4: Dynamic Launch Configuration Shortcuts key bindings do not work • DVT-6110 Wrong semantic error for parameters used in bind instances • DVT-6250 Sometimes project open causes a NullPointerException • DVT-6459 New DVT File wizard throws NullPointerException when filling in file name with .build extension • DVT-6556 Wrong icon for array of interface instances in Design Hierarchy View • DVT-6506 Cross bin automatically defined types • DVT-6538 False undeclared identifier error when binding parameterized modules • DVT-6570 Specador: FileNotFoundException (Not a directory) when generating documentation using the new HTML style • DVT-6571 Parse error on "with" used in bins selection • DVT-6584 Program and checker instances appear with the module instance icon in the Outline View • DVT-6588 Content Filters do not match SV CONFIGURATION element-type • DVT-6596 Settings management engine doesn't always work on key bindings with parameters • DVT-6597 No tooltip/hyperlink and potential matches on some identifiers when using UTF-16 chars in comments © AMIQ 411 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com 3.5.18 (1 August 2014) Enhancements • DVT-5553 Error recovery not working properly when "endmodule" is missing • DVT-5715 F2 on identifier should show tooltip • DVT-6234 Custom Dialogs: DirectoryFilesListing widget should support listing directories • DVT-6508 Add code templates for UVM library • DVT-6543 Non-standard support for "static const local" declaration in class • DVT-6549 Override indication when overriding by autocomplete Bugfixes • DVT-5829 Quick Macros and Print have conflicting key bindings, changed Quick Macros to Shfit + Ctrl + M • DVT-6065 Eclipse 4: Waive Problem in Problems View context menu doesn't work • DVT-6066 Eclipse 4: SVN plugin throws an error when DVT Auto-Linked is created • DVT-6209 Fixed cause for "Job found still running after platform shutdown" message on exit • DVT-6461 Eclipse 4: No content in Problems/Tasks View when focus is on a different stacked view (patch for Eclipse Luna 4.4.0) • DVT-6482 Eclipse 4: Missing Copy Full Path action in Navigator View context menu • DVT-6513 Eclipse 4: Tool Bar Customization / DVT Build category shows multiple empty buttons • DVT-6518 Wrong comment association for anonymous enum class variables • DVT-6522 False UNDECLARED_IDENTIFIER semantic error on binded module instance • DVT-6536 False UNEXPECTED_IDENTIFIER semantic error when property with arguments used • DVT-6539 False NON_EXISTING_TYPE semantic error when queue find_index call is accessed by :: • DVT-6540 False NON_EXISTING_TYPE semantic error when array index is accessed by :: in a sum() predefined function call • DVT-6541 No hyperlink, hover and autocomplete on item when array index is accessed by :: in a sum() predefined function call • DVT-6542 Wrong auto-indentation for assume/assert/cover/restrict property statements © AMIQ 412 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6544 Incorrect reparse of an identifier followed by a macro call (without whitespace in between) • DVT-6545 Unsupported property expression of kind (exp) |-> (exp) or if (exp) else (exp) 3.5.17 (25 July 2014) Features • DVT-5560 Specador: Ability to customize the HTML look & feel when new HTML style is used • DVT-6487 Specador: Ability to inject HTML in generated documentation when new HTML style is used Enhancements • DVT-6113 Ability to "add as -y library", similar with "add as incdir" from Navigator right click menu Bugfixes • DVT-6517 Wrong number of compiled files when +dvt_cache_incdirs_content is enabled • DVT-6520 Trace Connections from Editor not working for cross language signals and ports • DVT-6523 False UNDECLARED_IDENTIFIER semantic error when accessing nested action block labels • DVT-6525 False UNDECLARED_IDENTIFIER semantic error when class extends type parameter mapped to a typedef • DVT-6526 Specador: Watermark footer missing in new HTML style 3.5.16 (8 July 2014) Features • DVT-6485 Specador: New HTML look & feel Enhancements • DVT-4775 Ability to insert single proposals automatically • DVT-5321 Enhance autocomplete & tooltip for typedefs • DVT-6279 SystemVerilog API defined under a class should appear only under that class and not under global API • DVT-6434 SystemVerilog remove covergroups, assertions, functions, tasks, variables from index page and search • DVT-6471 Added support for 'nettype' declaration © AMIQ 413 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6474 Optimized algorithm to remove unnecessary action blocks from dictionary • DVT-6492 Rebuild fails after adding a nature to a project • DVT-6498 Eclipse 4: Fixed java.lang.NoClassDefFoundError in AbstractTextEditor affecting some versions of Eclipse 4.2 • DVT-6499 NullPointerException when DVT_COMMON_SETTINGS is used and DVT_USER_SETTINGS is not set Bugfixes • DVT-5197 File not opened in the correct folder, but in DVT Auto-Linked • DVT-5550 Specador: Method argument comments are not extracted • DVT-6210 Specador: Fixed JavaDoc @link hyperlink extraction when similar links are used • DVT-6432 Specador: Refresh web browser after new documentation is generated • DVT-6473 Performance degradation on searching modules to resolve instances • DVT-6476 Verification Hierarchy view freezes the GUI for large environments • DVT-6486 Wrong index type solving when size is based on enum item • DVT-6488 Optimize the incdir file search and revisit cross platform map implementation • DVT-6504 Performance degradation when creating Auto-Linked resources • DVT-6511 Semantic timeout dialog appears when the build is started by the linter 3.5.15 (8 July 2014) Enhancements • DVT-6438 GUI freezes when computing a large verification hierarchy • DVT-6439 Verification hierarchy computation is slow for a large number of classes • DVT-6445 UVM Verification Hierarchy View hangs when showing recursive instances Bugfixes • DVT-5775 No tooltip/hyperlink inside randomize with {} • DVT-5914 Hierarchical references to static task or functions variables not working • DVT-6457 Wrong compilation error on a -> soft b • DVT-6460 Slow semantic checking/linting eventually leading to out of memory 3.5.14 (24 June 2014) © AMIQ 414 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Enhancements • DVT-4411 Trace Connections of internal signals from editor • DVT-6162 UVM Browser should work with legacy OVM based environments • DVT-6298 UVM / Verification Hierarchy update is slow for large environments • DVT-6347 Add implicit declaration for assign if left value is a concatenation or assignment pattern • DVT-6367 Slow file open and right click menu in editor when environment has millions of defines • DVT-6372 Unify the task tags and comments collection with the parsing of the file • DVT-6391 Do not restore when using CLI createProject command Bugfixes • DVT-5274 Wrong potential match on the port of an undeclared module • DVT-5275 Wrong potential match on a port of a not compiled module in a -v file • DVT-5869 Linting performs an unnecessary restore operation prior to build • DVT-5968 Read-only pop-up not working for file with rw:r:r permissions when opened by other user • DVT-6001 Trace Connections from editor when only one top module candidate is available should automatically select it • DVT-6343 False semantic error on array iterator index method • DVT-6344 False UNDECLARED_IDENTIFIER error in the initialization of nested structs • DVT-6352 Parameterized macro called with empty argument does not expand • DVT-6355 False UNDECLARED_IDENTIFIER error in classes which extend their own parameter • DVT-6358 False errors in duplicate functions after project restore • DVT-6360 Wrong formatting for interface class constructs • DVT-6366 Auto-indentation issue after pure virtual/extern/DPI method prototypes • DVT-6368 Out of memory exception on second build when environment has millions of defines directives • DVT-6369 Project is restored twice on project open • DVT-6370 Project restore cannot be interrupted by cancel button © AMIQ 415 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6371 Macros view is populated after long time when environment has millions of defines directives • DVT-6376 Read-only indication not working for file with rw:r:r permissions when opened by other user • DVT-6418 Semantic errors no longer reported inside 'randomize() with {...}' block 3.5.13 (13 June 2014) Enhancements • DVT-6341 Support for `protected128 ... `endprotected128 construct • DVT-6345 Support for deprecated predefined sequence method 'ended()' Bugfixes • DVT-6312 No hyperlink, tooltip, autocomplete in foreach inside randomize with{} when type is in a different package • DVT-6324 No hyperlink, tooltip, autocomplete for port names after 1'b1 value for signal • DVT-6325 No hyperlink, tooltip, autocomplete for port names if parameter value is an expression • DVT-6331 Specador: Wrong hyperlinks when including external documentation directories • DVT-6333 Specador: Show the external documentation title under the 'Referenced Documentation' section in TOC • DVT-6337 Opening a the imported hundreds of times containing thousands of macro defines and/or undefines freezes the GUI • DVT-6338 Exception while searching in Design Hierarchy • DVT-6342 `pragma protect data_block complains about missing "=" • DVT-6348 Layers View displays wrong information when invoked on an element while the view is hidden 3.5.12 (10 June 2014) Enhancements • DVT-6275 Support for function declaration in cross body declaration (LRM 2012) Bugfixes • DVT-5469 Editing a file during build freezes the GUI • DVT-5729 Wrong semantic error for module signal in bind © AMIQ 416 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? • DVT-6023 UVM Field Editor uvm_field_array_int for static arrays should use www.dvteclipse.com uvm_field_sarray_int instead of • DVT-6150 False semantic error for field member in 'randomize with {...}' when type is in a different package • DVT-6204 Comments on items followed by `uvm_\`ovm_ on the next line are not collected • DVT-6221 False UNDECLARED_IDENTIFIER error in clocking block input/output/inout signal declarations • DVT-6239 XVM Field editor should order the registration macros • DVT-6271 False semantic UNDECLARED_IDENTIFIER error reported when the type of the accessed member declared in a parent class is of a type • DVT-6276 Content assist not working for the enumerated items of a enum type • DVT-6277 Autocomplete doesn't show parent class fields in a coverpoint • DVT-6288 Specador: FileNotFoundException when documentation is generated with diagrams in same location for multiple projects • DVT-6297 False semantic UNDECLARED_IDENTIFIER error when identifier is a member in a nested class in other package • DVT-6299 Auto-indent issue after pure virtual method prototype • DVT-6302 Infinite loop when "typedef myType myType" is encountered during semantic checks • DVT-6304 Specador: progress dialog should also include design diagrams and design diagrams with ports • DVT-6308 License checkout error not reported properly due to an exception in FlexLM • DVT-6316 Console Log Filters: missing hyperlinks for UVM instances containing "@" character • DVT-6330 False syntax error on property assertion variable assignment 3.5.11 (30 May 2014) Enhancements • DVT-5202 Specador: option to generate module diagrams with ports • DVT-6056 Open files compiled by DVT with the corresponding DVT editor (for example from Navigator) • DVT-6069 Open problems reported by DVT with the corresponding DVT editor (for example from Problems View) © AMIQ 417 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6108 Slow parse with multiple imbricated concatenation and ? : conditional operators • DVT-6159 Inconsistency: Outline/Quick Outline/Type Hierarchy/UVM Browser filters dialog should have Select/Deselect All buttons • DVT-6215 Specador: Show functions/tasks in global scope • DVT-6251 Specador: Include package comment in package summary page Bugfixes • DVT-6179 When using -uvmhome, UVM API is not filtered by content filters • DVT-6180 When using -uvmhome, Compile Order displays wrong order of files • DVT-6244 Sometimes Show Whitespace Characters throws an error • DVT-6268 Missing semantic UNDECLARED_IDENTIFIER error when hierarchical identifier inside a parameterizable class does not depend on the class parameters • DVT-6270 False semantic UNDECLARED_IDENTIFIER error on package access inside a generate • DVT-6273 When same sources are Auto-Linked multiple times go to declaration (from view/ hyperlink) asks user to chose project 3.5.10 (22 May 2014) Features • DVT-4129 HTML Documentation: by default show inherited API collapsed Enhancements • DVT-6208 Settings management engine should handle .dvt.gtkrc settings • DVT-6230 Provide an example Makefile wrapper for dvt_cli.sh in the uvm-ubus predefined project Bugfixes • DVT-5478 HTML Documentation: boolean values in dvt_export_html.xml that contain empty spaces are not recognized • DVT-6192 Auto-indent issue after a open-close group of parentheses • DVT-6207 Fixed ConcurrentModificationException preventing DVT CLI daemon to start • DVT-6219 False semantic UNDECLARED_IDENTIFIER error when referring VHDLdefined types/enums/constants in Verilog • DVT-6220 Compare Dialog is not using the editor background color © AMIQ 418 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6227 False semantic UNDECLARED_IDENTIFIER error when using explicit package::type parameter • DVT-6229 Changed Quick Search default messages 3.5.9 (12 May 2014) REMOVED • DVT-6174 Remove support for +dvt_reparse_duplicate_top_files+ build directive Enhancements • DVT-5821 Added category sort button in Coverage and Checks Views Bugfixes • DVT-6104 Search view Quick Search should be reset between searches • DVT-6105 Search view is populated slower when Quick Search is active • DVT-6151 No hyperlink/tooltip/autocomplete/refactoring class#(param)::param_ret_fun().param_api() support for • DVT-6157 Build configurations: in ius.irun compatibility mode, SPECMAN_PATH is ignored • DVT-6166 Eclipse 4: Fixed org.eclipse.swt.SWTException: Invalid thread access when running "dvt_cli.sh -newwindow" • DVT-6167 Eclipse 4: Fixed java.lang.NoSuchMethodError in AbstractTextEditor caused by a bug in DVT Patcher • DVT-6171 False semantic UNDECLARED_IDENTIFIER error when directly accessing under a generate block an instance name located within the parent design hierarchy • DVT-6173 Invoking a single External Build Configuration triggers a full rebuild with all the External Builders • DVT-6181 HTML Documentation: cannot trigger a project rebuild from the documentation wizard • DVT-6183 False semantic UNDECLARED_IDENTIFIER error in hierarchical names passing through anonymous generates 3.5.8 (30 April 2014) Features • DVT-6132 Support for C like preprocessing (#define, #if, #elif, etc.) Enhancements © AMIQ 419 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5692 Auto-indentation after brackets (curly, square and parentheses) • DVT-6147 Issue a warning at startup if incremental build (Project > Build Automatically) is disabled Bugfixes • DVT-4645 Copy/Paste doesn't always work (Eclipse Bug 368354 patch) • DVT-4657 dvt_cli.sh -newwindow opens two windows if DVT was not already running • DVT-5653 Incorrect auto-indentation after "foreach" in curly brackets • DVT-5736 Sometimes when closing a project files remain open and display an error message • DVT-5842 Added Outline View button for configuring element filters • DVT-5691 Do not auto-indent "else" to "if" in different block • DVT-6035 dvt_cli.sh openFile command issues an error if -line is not specified • DVT-6068 Restrict default content filters to */uvm_pkg.sv not *uvm_pkg.sv • DVT-6090 False semantic error for struct members from another package used in an assignment pattern • DVT-6131 False semantic UNDECLARED_IDENTIFIER class#(param)::param_ret_fun().param_api() error for • DVT-6133 Views should update when linter window is selected • DVT-6135 Duplicate lint configurations when starting with dvt_sv_lint_gui.sh • DVT-6136 Race condition prevents the linter to start when dvt_sv_lint_gui.sh is used • DVT-6138 Semantic timeout dialog always shows at incremental build when +dvt_file_compile_timeout is set to 0 (disable) • DVT-6143 Linter default preference files prefix changed from "custom_lint" to "verissimo" • DVT-6144 Linter not-matched waivers disable all checks when used with path or message filters • DVT-6145 Reapplying linter checks after removing a waiver that matches (and disables) a check doesn't enable the check back 3.5.7 (22 April 2014) REMOVED • DVT-6121 Removed deprecated scripts run_gui_mode.sh and run_batch_mode.sh Enhancements © AMIQ 420 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4747 Filter out API defined by UVM macros or inherited API in class diagrams when Content Filters are enabled • DVT-5002 Ability to show only selected parents and children in class diagrams • DVT-6036 Build config: incorrect number of expected arguments for -no_error directives • DVT-6099 Build config: warn of unknown +dvt_enable_unknown_directive_warnings +dvt directives regardless of • DVT-6112 Add empty package code template • DVT-6122 Ability to use $DVT_PROJECT_LOC environment variable in build config and external tools Bugfixes • DVT-5157 External builder markers disappear when paths in default.build are target files of symlinks from project • DVT-5897 Project restore might run out of memory on a dictionary built with same max memory • DVT-6012 Views should not be updated when they are not visible • DVT-6077 Wrong jump to file from external builder console error when the path is relative • DVT-6096 False unexpected end of file syntax error in ml_uvm • DVT-6097 Dynamic Launch Configuration Shortcuts should not be visible if they refer to closed projects • DVT-6044 False semantic UNDECLARED_IDENTIFIER error when using imported modport task • DVT-6100 Unexpected syntax error on typed coverpoint • DVT-6106 False semantic UNDECLARED_IDENTIFIER errors when identifier is also a struct member • DVT-6109 Pre-restore dictionary size too big due to Java serialization inner class issue 3.5.6 (15 April 2014) Enhancements • DVT-5771 Ability to copy hierarchy path in Verification Hierarchy View • DVT-5831 Ability to Show Type Hierarchy when inside a class • DVT-5888 Hierarchical search in Compile Order View © AMIQ 421 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5974 Auto-link files even if compilation skips them by +dvt_skip_compile • DVT-5999 Auto-link files even if compilation times out • DVT-6006 Add basic support for 'vunit' PSL construct • DVT-6013 Non-standard "automatic" lifetime for class constructor prototype • DVT-6018 Allow various operations like jump to definition or show hierarchy for the "after cursor" identifier • DVT-6016 Incremental compilation should not be performed for a build config file opened with a SystemVerilog editor (for example when using -f my_list_of_files.sv) • DVT-6081 +dvt_file_substitute should work DVT_CROSSPLATFORM_MAP is applied to them for paths before Bugfixes • DVT-3877 Last external builders marker takes over previous markers on same file/line • DVT-4796 Errors reported by external builder incremental build are not displayed in Problems View • DVT-5669 Bind module_name should add instances to all module_name instances • DVT-5705 Whitespace characters at the end of a line and after a code statement, should be ignored in auto-indentation • DVT-5766 Interface instances bound to modules are not recognized • DVT-5790 JavaDoc comments autocomplete should not insert the "javadoc_function" template for a function defined inside a macro • DVT-5913 False semantic UNDECLARED_IDENTIFIER errors when accessing members of instances introduced using 'bind' • DVT-6000 Sometimes hyperlink not working after a certain line • DVT-6005 Compile Order view in "Show only files with errors" mode should refresh after reapplying compile waivers • DVT-6008 Wrong semantic error on extern function implementation return type parameter • DVT-6021 Views are not updated across multiple Workbench Windows when building a project • DVT-6024 Renaming the type of a field having same name as the type fails (e.g. " my_class my_class;") • DVT-6047 External Tools: "Note" filters should use the same color © AMIQ 422 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-6052 Using parens as vertical align tokens doesn't work for port connections • DVT-6070 False semantic UNDECLARED_IDENTIFIER error when accessing labels of conditional statements • DVT-6071 False semantic UNDECLARED_IDENTIFIER error when accessing members of labeled always blocks • DVT-6072 Wrong undeclared identifier for queue.pop_front().field • DVT-6073 Hyperlink not working when directly accessing an element located within the parent design hierarchy • DVT-6079 Wrong undeclared identifier error in task when default_nettype is not none • DVT-6080 Undeclared identifier not signaled on direct access of variable declared in enclosing module • DVT-6089 Function/task autocomplete missing a whitespace before name • DVT-6091 Subsequent module ports have wrong implicit type • DVT-6095 Sometimes when opening symlinked files they get recompiled 3.5.5 (1 April 2014) Enhancements • DVT-5666 Content Filters for Design Hierarchy view • DVT-5943 +dvt_file_compile_timeout pop-up dialog should specify the filename • DVT-5945 Add "Prepend Package Name" button to the Verification Hierarchy View • DVT-5950 Support for 'let' construct • DVT-5952 Support for non-standard string API like match(), prematch(), postmatch(), thismatch(), backref() • DVT-5967 Ability to control "Disable code folding if file exceeds ### lines" Bugfixes • DVT-5938 Specific DVT project selection dialogs must show only DVT projects • DVT-5946 False semantic error when using virtual instances defined in other libraries • DVT-5947 False semantic action_block_name" syntax UNDECLARED_IDENTIFIER when using "disable • DVT-5948 Wrong handling of string defines in default build e.g +define+NAME=\"literal \" leading to unexpected semantic errors © AMIQ 423 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5949 False semantic UNDECLARED_IDENTIFIER semantic error when ports of a module are mapped to an expression • DVT-5951 HTML Documentation: do not remove the enclosing "*" characters in comments if they are not followed/preceded by an empty character • DVT-5958 Wrong syntax error on "coverpoint"... "bins"... "with" construct • DVT-5961 Adding a DVT nature to a project should create the .dvt sub-directory if it does not exist • DVT-5962 Strange behavior of dvt_cli.sh when using "-newwindow -workingset": no console, workingset visible on focus, old window updates • DVT-5964 False UNDECLARED_IDENTIFIER when directly accessing an instance name located within the parent design hierarchy • DVT-5965 HTML Documentation: comment formatting is not applied on the module description • DVT-5975 Missing semantic UNDECLARED_IDENTIFIER error when accessing members of actual class parameters • DVT-5976 Wrong NON_EXISTING_TYPE class_typedef::sub_class/sub_typedef in variable declaration • DVT-5979 False error for multiple import statements before the port declaration of a module • DVT-5980 Console Log Filters: missing hyperlinks for relative paths starting with "../../" • DVT-5981 Wrong default template when creating a new file with explicitly specified extension in a mixed language project • DVT-5982 Do not notify views when incremental compilation is not performed (for example because of max number of lines) • DVT-5984 Scanning -y and -v for undeclared modules should ignore only the modules/ interfaces/primitives/etc. which are not used by the design • DVT-5986 Missing semantic UNDECLARED_IDENTIFIER error when classes are extending parameterizable classes 3.5.4 (21 March 2014) Enhancements • DVT-5887 Search View Quick Search should bold the matched parts of branches like in all other views • DVT-5923 Support for non-standard multidimensional array select in 'foreach' loop using expression © AMIQ 424 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5927 Scanning -y files should look only for undeclared modules in '+dvt_init +vcs.vlogan' compatibility mode • DVT-5929 Support for non-standard "endfunction class_scope::function_name" syntax • DVT-5930 Missing read-only notification when formatting a read-only or unchecked out file Bugfixes • DVT-3653 Undeclared variable identifiers used in functions are not being caught • DVT-3655 Assignment referencing undefined identifier not reported as error • DVT-3657 Assignments to undefined members of a structure are not caught • DVT-5911 Wrong handling of a macro with default parameters • DVT-5912 False semantic NON_EXISTING_TYPE errors when associative array packed dimension contains 'signed/unsigned' • DVT-5915 False semantic NON_EXISTING_TYPE interface.modport modport_reference error when declaring an • DVT-5917 False semantic UNDECLARED_IDENTIFIER error when accessing variables from labelled action blocks • DVT-5918 Infinite loop sometime when BadLocationException is thrown in tooltip parser • DVT-5919 False semantic UNDECLARED_IDENTIFIER error '`macro_name' when macro is not defined • DVT-5921 False semantic UNDECLARED_IDENTIFIER error when array select is a conditional expression • DVT-5922 ClassCastException in dictionary due to same hash on some elements • DVT-5925 Default content of a New > DVT Content Filters XML may filter out all tasks in windows • DVT-5926 VHDL entities placed in different libraries are not visible from SV top module • DVT-5928 Wrong vertical align by parenthesis close, bracket close or curly close 3.5.3 (14 March 2014) Enhancements • DVT-5892 Support for non-standard select of bin identifier • DVT-5900 Support for non-standard rand_mode call on fields with missing 'rand/randc' qualifier Bugfixes © AMIQ 425 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5816 Although only fields should be visible in Type Hierarchy Show All Predefined Members also shows functions • DVT-5843 Content filtered indication for Type Hierarchy should be right above the members panel • DVT-5872 False semantic UNDECLARED_IDENTIFIER errors when accessing fields from a generic interface port • DVT-5890 Semantic error when unpacked dimensions contain brackets • DVT-5893 False semantic error on sized arrays of associative arrays, when size is a localparam • DVT-5894 Quick Hierarchical Search in Coverage and Checks Views does not match any element if the filter starts with "." or contains a "!" character • DVT-5896 Trace Connections View search for port does not bold the matched ports • DVT-5899 Hyperlink not working on included files defined through a macro • DVT-5901 False semantic UNDECLARED_IDENTIFIER errors when using foreach 'item' access • DVT-5902 Wrong file and line number for errors reported in files included using macro • DVT-5903 Content Filters: Errors and tasks in symbolic linked files are not filtered • DVT-5905 Content filters do not apply for problems reported on files outside project • DVT-5907 SystemVerilog Verification Hierarchy does not show TLM1 ports 3.5.2 (11 March 2014) Bugfixes • DVT-5855 False semantic UNDECLARED_IDENTIFIER error for hierarchical named block access • DVT-5857 False semantic UNDECLARED_IDENTIFIER after list select containing package::value access • DVT-5868 False semantic UNDECLARED_IDENTIFIER errors signaled when accessing parameters from an undeclared module or interface • DVT-5877 HTML Documentation: filter out duplicate inline comments for port declarations • DVT-5885 False semantic UNDECLARED_IDENTIFIER errors when package::value used as associated array key type • DVT-5886 Quick Search does not perform prefix matching on CamelCaseStrings © AMIQ 426 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com 3.5.1 (7 March 2014) Enhancements • DVT-5788 Copy full path of multiple resources • DVT-5818 Content Filters: ability to filter Search View by element text Bugfixes • DVT-5700 HTML Documentation Generator should not report progress for each diagram • DVT-5795 HTML Documentation Wizard does not refresh all the settings when changing the project • DVT-5803 Support for non-standard attribute_instance • DVT-5804 Some formatter preferences (like Vertical align > Module port declarations) are not saved under Windows OS • DVT-5805 Wrong semantic error after 'find_index' when item type is a typedef • DVT-5808 Performance improvements for Content Filters • DVT-5809 Performance improvements for Checks and Coverage Views • DVT-5810 Outline should not reveal the first matched element when new content is added • DVT-5811 Internal builder console is cleared when saving a build configuration file • DVT-5814 Struct members are not visible from assignment patterns inside a class • DVT-5815 Changed Code Factory shortcut conflicting with Copy Full Path shortcut from Shift+Alt+P to Shift+Alt+K • DVT-5822 False UNDECLARED_IDENTIFIER error when identifier is member of a struct • DVT-5823 Content Filters: Some include-children top file patterns wrongly match all files • DVT-5824 Fixed incompatibilities with Eclipse 3.6 • DVT-5826 Fixed dvt.sh issues on MacOS 3.5 (27 February 2014) HIGHLIGHTS • Enhanced Semantic Checks: check that each identifier is properly declared and used • Improved UVM Support: • UVM Browser is the entry point for exploring all the classes of an UVM-based verification environment © AMIQ 427 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • The Verification Hierarchy View presents the UVM object instance tree • Ability to locate UVM factory related constructs that may influence the testbench behavior using UVM Factory Queries • Out-of-the-box Predefined Content Filters to hide the UVM library internals like tasks, problems and API • Ability to explore the checking aspect of a verification environment using the Checks View • Ability to explore the coverage aspect of a verification environment using the Coverage View • Trace Connections usability improvements, enhancements and bug fixes. • Ability to use Content Filters in order to eliminate unnecessary information overload. • Redesigned the tool configuration and preferences sharing capabilities. See Settings Management • Redesigned the code formatting engine. See Code Formatting • Completely unified the DVT Perspective across all languages. • Quick Search available in most views • Redesigned icons (see Icons and Decorations), tool-bars and menus. • Renamed the Hierarchy View to Type Hierarchy View • Renamed the Instance Tree View to Design Hierarchy View REMOVED • DVT-4293 Remove all incdir and define variables for External Tools Integration ${dvt_current_build_file} should be used instead • DVT-5765 Removed deprecated scripts dvt_trap.sh, dvt_xterm.sh, license_utils.sh Features • DVT-650 & DVT-1021 & DVT-2451 & DVT-2430 Ability to control preferences for site, team, user, project levels • DVT-1180 Link Back to Console from External Builder Marker • DVT-1654 Quick Macros View for SystemVerilog • DVT-2382 Filter out tasks from imported OVM or UVM libraries • DVT-2943 Ability to use waivers for build configuration problems • DVT-3637 Format option to align to first letter of signal © AMIQ 428 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4017 Unify Type Hierarchy View • DVT-4049 Auto-Link files included by default.build • DVT-4337 Ability to hide UVM/Custom library content from Hierarchy, Types, Tasks, Macros ... Views • DVT-4390 Bad indentation for consecutive if (...) `ovm_info(...) statements • DVT-4412 & DVT-5112 Add ports view to Trace Connections View • DVT-4706 Added new Verification Hierarchy view. See Verification Hierarchy View • DVT-5111 Add filter to Trace Connections View tree • DVT-5128 Unify Views context menu actions: Show References, Layers, Hierarchy, Instance Tree, Diagrams • DVT-5243 Unify Macros & Quick Macros Views • DVT-5264 Unify Coverage View • DVT-5265 Unify Checks View • DVT-5277 Ability to disable format for a marked region of code • DVT-5302 Coverage View for SystemVerilog • DVT-5368 Unify Layers View • DVT-5388 Extended support for configurations and libraries • DVT-5610 Unify Trace Connections View • DVT-5763 Changed Instance Tree view to Design Hierarchy View. See Design Hierarchy View Enhancements • DVT-532 Ability to easily share code templates at site level • DVT-4040 Unify icons across languages • DVT-4408 CamelCase support for quick views and views text filters • DVT-4440 Undeclared signal semantic error is not issued under always_comb construct • DVT-4482 Semantic check for unknown package reference • DVT-4483 Semantic check for class members associated type • DVT-4795 Predefined project mx_1 does not compile using Questa Simulator © AMIQ 429 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5025 Trace Connections toolbar icons are not intuitive • DVT-5068 Show matched/total number of instances in Instance Tree • DVT-5084 New icon for interface ports • DVT-5155 Ability to control memory using dvt.sh arguments • DVT-5268 Element count in top label of views should show filtered/total info • DVT-5330 Mark the current trace path in the Trace Connections View tree • DVT-5331 Show port/signal icons in the Trace Connections View menus and ports view • DVT-5347 Align HTML Documentation with Coverage / Checks Views • DVT-5387 Undeclared module warning is still reported even after resolving the module using the configuration • DVT-5396 Minimize number of disk accesses when writing to dvt_build.log • DVT-5495 Signal with a different icon undeclared modules in instance tree • DVT-5618 Ability to control compilation timeout via build configuration directives: +dvt_file_compile_timeout and +dvt_incremental_compile_timeout • DVT-5764 Updated JRE in distribution to version 1.7.0u4 Bugfixes • DVT-3811 Formatting issue when ';' is missing at the end of a statement • DVT-3942 Formatter bug when with double bracket closing on the last line of block • DVT-4559 When the Instance Tree gets empty after an incremental build the "work" library is shown • DVT-4582 Formatting issue after constraint block • DVT-4583 Formatting issue after multiline comment block • DVT-4614 Cursor jumps on another line after auto-format when using spaces instead of tabs • DVT-4669 Place each parameter on a new line doesn't work properly • DVT-4970 Source Format: incorrect indent after a "wait fork" statement • DVT-5099 SV Formatter internal error • DVT-5101 SV Formatter preference "compact whitespace groups" does not always work • DVT-5106 Instance Tree and Trace Connections views memory leak © AMIQ 430 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5210 Types View should reset after a project is cleaned • DVT-5239 Wrong formatting for imbricated begin-end blocks • DVT-5351 References, hyperlink, tooltip not working on wire in default clocking construct • DVT-5342 Format foreach $display doesn't indent properly • DVT-5352 Checker instantiation is considered a module instantiation • DVT-5380 Invoking Trace Connections in Editor triggers an error when Instance Tree is filtered • DVT-5454 Formatter indent UVM/OVM field registrations • DVT-5448 When the platform starts and there is no resource selected, the current project is not in sync with the highlighted project in Navigator • DVT-5485 & DVT-5554 Instance Tree loses selection when the editor is changed or when Navigator View is selected • DVT-5588 Format broken for "else if" chains • DVT-5638 Show enclosing scope in Quick Layers View • DVT-5650 Wrong formatting of "repeat" loops without begin/end • DVT-5722 Instance Tree shows the first element when it should be empty • DVT-5723 Show Instance Tree is not working on a VHDL entity when the top is Verilog module • DVT-5769 Assertion flagged as undeclared identifier • DVT-5770 Enumerated type is not recognized in function declaration 3.4.28 (24 February 2014) Enhancements • DVT-3828 Perform full semantic checks for types defined in current file on incremental build • DVT-4411 Trace Connections from Editor of internal signals, not only ports Bugfixes • DVT-5597 Hierarchical references in coverpoint only show wires, not module instances • DVT-5724 Do not treat as case-insensitive gcc-like build config directives in ius.irun compatibility mode • DVT-5730 Sequence arguments are not resolved except for the first and the last © AMIQ 431 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5738 Autoinstance with "Preserve port order" does not declare signals • DVT-5740 External Tools custom filter does not work if the pattern text ends with space/ tab/new line char • DVT-5742 External Tools can't read from an external_builders.xml file that contains patterns with the same id 3.4.27 (29 January 2014) Enhancements • DVT-5704 Allow //{{ and //}} symbols as user defined code folding region • DVT-5687 Update DVT_UVM_HOME to point to latest uvm_1.1d Bugfixes • DVT-5696 Wrong tooltip/hyperlink on some fields followed by a "randomize with" call • DVT-5726 Preprocessing issue when using `timescale followed by a macro call under `if [ n ] def ... `endif 3.4.26 (8 January 2014) Bugfixes • DVT-5676 Commas in multiline comments are not ignored for macro arguments • DVT-5677 Macro parameters are not recognized if they are not on the same line with the macro call • DVT-5679 NullPointerException when full semantic checking is enabled 3.4.25 (18 December 2013) Enhancements • DVT-5641 Non standard support for misplaced attribute instance specification when instantiating a module • DVT-5663 Support for non-standard global deferred immediate assertion item Bugfixes • DVT-3661 Duplicate fields, modules, variables, etc. should be reported as warnings instead of errors • DVT-5619 Expand all levels for large macro stacks never finishes • DVT-5658 Content assist stack overflow when parent class is declared inside child class © AMIQ 432 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5659 HTML Documentation: generating documentation throws an error when the option "Exclude files outside project" is set • DVT-5661 <anonymous_enum>.name() is not recognized as call to a predefined function under Windows OS • DVT-5662 False IMPLICIT_PORT_CONNECTION errors for binds inside a module • DVT-5664 Inserting text in block selection mode skips characters in some environments, fixed for Eclipse Platform 3.8.1 and DVT distros 3.4.24 (2 December 2013) Enhancements • DVT-5615 Macro definition optional '\' to continue on next line when inside a multiline comment • DVT-5616 Open non-DVT perspectives when creating project with dvt_cli.sh • DVT-5629 Trim whitespace characters after new line in auto-indentation Bugfixes • DVT-5494 Incorrect created wire in Code Factory testbench for enum type • DVT-5620 Very long parse time for thousands of nested concatenations • DVT-5623 Quick Hierarchy does not show implementations for tasks on children classes • DVT-5632 Instance tree should not be updated on every resource selection 3.4.23 (22 November 2013) Enhancements • DVT-4906 Automatically continue comment on new line when editing inside a block comment • DVT-5481 Show the parameter descriptions instead of the parameter names in Add From Project Template dialog • DVT-5596 Added support for non-standard $setup syntactic issue when using min max type expression as timing check limit • DVT-5601 Non-standard support for packed dimension instead of constant range in typedef enum declaration • DVT-5603 Non-standard support for missing modport port [ s ] declaration (e.g. "modport mp_name();") • DVT-5604 False error reported in default.build for -licwait directive © AMIQ 433 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5609 Support for multiline preprocessing directives Bugfixes • DVT-5556 Javadoc comments (/**...) should not insert empty lines for empty tags • DVT-5600 Auto-indentation stuck when trying to match unrecognized group • DVT-5602 False syntax error for missing arguments on constructor prototype (e.g. "extern function new;") • DVT-5608 Macro invocation reports error when parameters are not on the same line with the macro name • DVT-5607 Long-running background activity after Replace All with many occurrences 3.4.22 (15 November 2013) Bugfixes • DVT-5492 Don't include localparams in Code Factory created testbenches • DVT-5575 Inside single-line comment '\r' should not be considered a newline • DVT-5579 "Resource is inaccessible" error in DVT Auto-Linked when updating change sets for SVN • DVT-5580 Wrong NOF_PORT_CONNECTIONS error for instances of modules with duplicated ports • DVT-5581 `default_nettype is not reset between invocations 3.4.21 (14 November 2013) Enhancements • DVT-5566 Added dvt_cli.sh -p4 flag for sharing project with Perforce • DVT-5573 Increase the maximum recurrence limit for a macro using itself as argument Bugfixes • DVT-5574 Internal builder console hyperlinks don't work for locale-specific number format (like 1,234) 3.4.20 (8 November 2013) Enhancements • DVT-5530 dvt_cli.sh -silent flag should shut down all INFO & WARNING messages Bugfixes © AMIQ 434 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5471 External Tools: avoid error/warning/note color nuances for automatic smart log colors • DVT-5531 In ius.irun compatibility mode -assert directive should take no args • DVT-5559 After platform startup, text selection in a DVT editor triggers restore from dictionary for all projects 3.4.19 (1 November 2013) Bugfixes • DVT-5484 Module diagrams sometimes throw NullPointerException • DVT-5489 '$root' variable reported as unknown identifier when performing full semantic checks 3.4.18 (30 October 2013) Enhancements • DVT-4651 Show package information in UML class diagrams Bugfixes • DVT-5482 Wrong syntax error when whitespace missing between decimal formatted number and conditional operator • DVT-5483 Stack overflow exception thrown when solving loop variables 3.4.17 (29 October 2013) Enhancements • DVT-3895 & DVT-5439 Auto-indent after if statement without "begin...end" block • DVT-3931 Auto-indent after "`ovm_*_utils_begin" and "`uvm_*utils_begin" • DVT-5431 Improved auto-indentation for blocks • DVT-5468 Build Progress indication with invocation and top file granularity Bugfixes • DVT-1717 No auto-indentation after "function void name_funct();" • DVT-5225 Module auto-instance code is not indented correctly • DVT-5437 Change Extended help dialog title from "DVT Generic - Extended error ID info" to "Error ID info" • DVT-5438 New File Wizard stuck when changing nature and filtering template © AMIQ 435 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5470 "Create Testbench" not working for values of module parameters that start with $ 3.4.16 (11 October 2013) Feature • DVT-3755 Ability to "copy" module and "paste" as instance, signals or testbench. See Code Factory Enhancements • DVT-5455 Added enum ranges tooltip, content assist, HTML documentation and semantic checking • DVT-5465 Add from Project Template scans for default parameter values in both source and target template.config Bugfixes • DVT-5459 Multiple selects issue when performing semantic checking • DVT-5460 Semantic issue when determining 'foreach' array index type on incremental compilation • DVT-5461 Platform not closing sometime due to save dictionary pop-up (pop-up cannot be dismissed) • DVT-5466 Project Template Wizards don't work with parametrized directory names 3.4.15 (4 October 2013) Enhancements • DVT-5428 Non-standard support for missing semicolon after the property statement • DVT-5446 Save dictionary in compressed format Bugfixes • DVT-4664 Restore opened files when running dvt_cli.sh createProject -force • DVT-5361 Set active build configuration is not consistent across multiple Eclipse Workbench Windows • DVT-5426 The "please wait..." info box sometimes persists after successfully generating diagrams • DVT-5432 Macro expansion for macro call followed by `undef doesn't replace parameters • DVT-5449 Add From Template: add option to select a predefined project as a source directory © AMIQ 436 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5450 New Project from Template and Add from Template corrupts the binary files in the template project 3.4.14 (25 September 2013) Deprecated Support for deprecated build configuration files will be removed in the next major DVT release (.dvt/.vlog_defines, .dvt/.vlog_top_files, .dvt/.vlog_ignore_files, .dvt/.vlog_vmm_project, .dvt/.vlog_uvm_pr Enhancements • DVT-4273 & DVT-5410 Added dot in Windows distros Bugfixes • DVT-5166 Macro references don't include `ifdefs • DVT-5415 Duplicated key binding Ctrl+Y for "Redo" in Windows 3.4.13 (20 September 2013) Enhancements • DVT-1180 Link Back to Console from External Builder Marker • DVT-5096 Ability to include compile waivers • DVT-5165 Add "read only" file indication in Navigator View, Editors and Refactoring Preview • DVT-5314 Match brackets to the left and right of the cursor • DVT-5344 Clean up +defines from Predefined Projects build configuration files • DVT-5375 Incremental build causing editor freeze on big environments (possible cause disk access to write dictionary) • DVT-5378 Editor setting for changing the color of the matched bracket highlight • DVT-5390 Updated ViPlugin for DVT to 2.11.0 • DVT-5392 Corresponding matching bracket highlight when emulating vi • DVT-5393 Added support for non standard construct 'foreach (a.b [ c.get() ][ index ])' • DVT-5396 Minimize number of disk accesses when writing to dvt_build.log Bugfixes • DVT-4107 & DVT-4630 Allow cyclic includes with ifndef guards (false cyclic include error) • DVT-4631 False cyclic define error © AMIQ 437 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4654 ViPlugin state not persisted between sessions • DVT-5316 Some UVM Code Templates contain compile errors • DVT-5375 Incremental build causing editor freeze on big environments (possible cause disk access to write dictionary) • DVT-5384 User interface is not responsive while generating diagrams • DVT-5385 Configuration clause instance using liblist is not searching the correct libraries • DVT-5386 Explicit import directive "import PACKAGE::TYPE" does not search for the PACKAGE name in the configuration default liblist • DVT-5407 Ability to cancel diagram generation 3.4.12 (11 September 2013) Enhancements • DVT-5147 Disable auto-complete triggering (beep) when typing a '.' inside comments Bugfixes • DVT-5358 Some project template variable names have extra underscores 3.4.11 (9 September 2013) Enhancements • DVT-3091 Show project name in console title for Run Configurations and External Builders • DVT-4558 New ${dvt_cli} run configuration variable • DVT-5087 Ability to query the running status of DVT • DVT-5223 Ability to query the version of running DVT • DVT-5315 Ability to customize nchelp tool name/path to show extended help in console • DVT-5359 Support for SystemVerilog 2012 checker syntax Bugfixes • DVT-4657 dvt_cli.sh -newwindow opens two windows if DVT was not already running • DVT-4757 & DVT-4995 When tracing inout ports no target icon decorations are shown in the Trace Connections View • DVT-4778 When creating/importing a project via dvt_cli.sh, auto-select "Window Working Set" in Open Resource dialog • DVT-5354 Syntax highlighter broken for multiline string ending with newline © AMIQ 438 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5355 Invocation using -y or -v must search for the undeclared elements from the current invocation library only • DVT-5356 Instance tree is not populated after project restore • DVT-5360 Fixed configuration instance and default liblist directives 3.4.10 (26 August 2013) Bugfixes • DVT-4690 dvt.sh/dvt_cli.sh should issue an error if provided a non-existing eclipse.ini • DVT-5172 A syntax error in covergroup breaks the error recovery for subsequent tasks/ functions • DVT-5241 Miss-leading syntax error message generated by the parser when syntactic predicates are involved • DVT-5313 Rebuild buttons are only visible in the first Eclipse Workbench Window • DVT-5333 Trace Connections View memory not cleaned properly between trace port operations • DVT-5338 Switching a project doesn't update the Instance Tree View when no top module is specified • DVT-5340 Update Clearcase plugin to version 2.2.34 to fix some small issues • DVT-5341 Change distro name form DVT_CUSTOM_KIT to DVT_KIT 3.4.9 (14 August 2013) Features • DVT-5264 Unify Coverage View • DVT-5302 Coverage View for SystemVerilog Enhancements • DVT-5306 Hide "Project" sub-menu for non DVT project's context menu • DVT-5307 Hide "Validate" and "Format Source" menu items added by XML plugins on non XML files Bugfixes • DVT-5308 Cancel does not work for hyperlink file selection dialog • DVT-5311 Open declaration hyperlink no longer working correctly (flickering) 3.4.8 (12 August 2013) © AMIQ 439 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Enhancements • DVT-5120 Added support for -eclipse_args for dvt_cli.sh • DVT-5297 Add External Tools filters for SpyGlass logs Bugfixes • DVT-5036 Types/Compile Order Views should refresh when opening a project • DVT-5244 Compare with > Other Resource ... from editor does not work • DVT-5295 Expand all levels for uvm_field_int macro does not work • DVT-5294 Port connection hyperlinks not working for module instantiations with several hundred port connections • DVT-5296 Sometimes the external tools filter variable '${file}' does not match correctly • DVT-5300 Multi-line macro calls are not correctly expanded 3.4.7 (5 August 2013) Features • DVT-1654 Quick Macros View for SystemVerilog • DVT-5243 Unify Macros & Quick Macros Views Enhancements • DVT-5279 Update $DVT_UVM_HOME to uvm-1.1c • DVT-5208 Slow hyperlink to module definitions in large designs Bugfixes • DVT-4749 Run configurations session wrapper doens't check for all necessary binaries • DVT-4787 Run configurations default command/script should not use csh/tcsh with -i flag • DVT-4788 Run configurations generated script doesn't run the last when using csh/tcsh • DVT-5266 External builders persistence file defaults to the deprecated .dvt/.dvt_builders instead of external_builders.xml • DVT-5269 External Build button should invoke all external builders instead of the last ran builder • DVT-5280 Code folding intensive computation when multiple opening/closing keywords are placed on the same line • DVT-5281 Code folding doesn't work for property ... endproperty © AMIQ 440 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5284 Disabled EMACS+ plugin auto activation in distros to prevent clipboard problems • DVT-5286 Adding linting/compliance code waiver from hit results in an "Index out of bounds" exception • DVT-5287 Adding linting/compliance code waiver from hit should check if file is writable or invoke team providers for checkout • DVT-5289 Wrong compilation issues reported due to non-standard module parameter #PARAM 3.4.6 (26 July 2013) Enhancements • DVT-4896 Added KIT distro for Linux and MacOS. See dvt_kit_installer.sh • DVT-5126 Show a change indication when collapsing a modified macro/macro expansion • DVT-5256 Added support for configuration (instance clause, cell clause, default liblist clause and design clause) Bugfixes • DVT-4997 Auto-instance a VHDL entity in Verilog using content assist • DVT-5234 HTML Documentation: spacing and tabs indentation problems for NaturalDocs formatting • DVT-5246 Compile Order View: collapse all does not work • DVT-5249 Error expanding a macro when parameters are not provided • DVT-5254 Collapse macro expansion by editor marker right click does not work • DVT-5257 Wrong syntactic error reported when edge description contains 0x, 0z, 1x, 1z 3.4.5 (22 July 2013) Enhancements • DVT-4509 Build configurations: +dvt_auto_link_root (without trailing +) issues "unknown directive" instead of "badly specified directive" • DVT-4820 Build configurations: allow usage of +dvt_auto_link_root only in first invocation • DVT-4960 Survive duplicate directives like "-liblist -liblist arg" • DVT-5009 View filters should cancel an ongoing search operation when filter text is changed and trigger a new search (Instance Tree/Types/Compile Order) • DVT-5024 Redesigned the select instance dialog for Trace Connections from Editor © AMIQ 441 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5080 Ability to redraw diagrams on demand instead of auto-update • DVT-5199 Use a bidirectional edge when indirectly connecting incompatible ports Bugfixes • DVT-4663 dvt_cli.sh exit code should reflect the operation result • DVT-5203 Trace Connections View is cleaned after building any project • DVT-5205 Semantic error when defining a function with the same name as a task • DVT-5211 Set the correct window size for module diagram's legend • DVT-5215 DVT views flicker after building projects that shouldn't affect them • DVT-5222 Eclipse Juno - "Cannot get the parent identifier from an undefined context..." exception • DVT-5226 HTML Documentation: wrong hyperlinks on default class parameters • DVT-5228 A non-matched quote (") triggers non-standard warning on every line of code • DVT-5229 Cross language hyperlinks open the file in wrong editor • DVT-5233 Code Templates View: no error message when creating a template with unescaped "$" characters • DVT-5236 JavaDoc code templates auto-complete does not work if there is a whitespace character after "/**" 3.4.4 (9 July 2013) REMOVED • DVT-5188 Removed support for DVT Auto-Linked language specific subfolders ("SystemVerilog", "e-Language" and "VHDL") Enhancements • DVT-4313 Inform that extended checks markers are obsolete on incremental build • DVT-4748 Use cache when clicking through diagrams • DVT-4754 Add an indication for array of instances in module flow diagrams • DVT-4768 F3 is not working in the Build Configuration editor • DVT-4870 Trigger an error when using DVT-defined Environment Variables for +dvt_auto_linked_root • DVT-4934 Auto-indentation in blocks delimited by curly brackets © AMIQ 442 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5114 Module diagram hyperlinks not working when navigating using breadcrumb • DVT-5123 Update the legend of module flows diagrams with hyperlink hints • DVT-5136 Update default SystemVerilog language Syntax to SystemVerilog 2012 • DVT-5138 Wrong editor tab tooltip for DVT Auto-Linked files starting with e-Language/ SystemVerilog/VHDL prefixes • DVT-5158 Code folding and double click selection on `elsif • DVT-5177 Added support for non standard construct 'interface::self()' Bugfixes • DVT-4033 Report an Issue: "save as zip" not closing the wizard • DVT-4745 Two spaces in generated wire declaration when doing a module auto-instance • DVT-4802 Black box module should inherit the ports direction using the enclosing module or other instantiated elements • DVT-5078 Gate primitives not shown in instance tree • DVT-5092 Cancel does not work while generating HTML Documentation with diagrams • DVT-5116 Formatter hangs with certain vertical alignment token sets • DVT-5117 Wrong hyperlink to declaration or assignment when the name of the wire is an escaped identifier that contains ".", "[" or "(" • DVT-5118 Wrong NON_EXISTING_PACKAGE error triggered when the package name is an escaped identifier • DVT-5119 Hyperlink is not working on a class field when its name is an escaped identifier • DVT-5122 Wrong jump to editor for ports/signals with similar names • DVT-5139 Run configurations session wrapper throws errors in some "sh" replacements (e.g. dash in Ubuntu) due to non POSIX syntax • DVT-5142 Refactor rename not working properly when more than 10 files are changed • DVT-5156 Double click on Compile Order View during build freezes the DVT • DVT-5173 Coverage event 'with function sample()' not allowed if no arguments provided to 'sample' • DVT-5180 `default_nettype not correctly computed when instantiating a module (it inherits the `default_nettype from module definition) • DVT-5194 New File Wizard does not show an error message when creating a new file in a virtual folder © AMIQ 443 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5196 HTML Documentation: open index.html in the platform's internal web browser (instead of the default editor) • DVT-5204 Fixed "Could not set character size" error when displaying diagram's legend and preferences 3.4.3 (21 June 2013) Enhancements • DVT-4542 Pair only elements of same kind when folding code and performing doubleclick selections (like task, class, `ifdef, etc) • DVT-5093 Display the relevant documentation when requesting the legend for UML diagrams • DVT-5107 Improved the display of ports and signals in the Trace Connection View • DVT-5109 Changed shadows indication to overrides indication for class constructors Bugfixes • DVT-3182 Concatenate comments from extern and implementation for inline documentation • DVT-4966 Hyperlink jumps to an enum item with the same name instead of module parameter • DVT-5038 Types View: after platform restart icons are not visible • DVT-5102 Wrong instance name when using escaped identifiers 3.4.2 (14 June 2013) Enhancements • DVT-4223 Persist the Instance Tree Ports View settings • DVT-4761 Add a button to show the legend of module flows diagrams • DVT-4992 Disable "Use dot from distribution" checkbox in non-linux environments • DVT-5086 Automatically detect and ignore VCS-encrypted (binary) SystemVerilog source files Bugfixes • DVT-4223 Persist the Instance Tree Ports View settings • DVT-4858 Quick filter in Types View should expand the tree and select the first match • DVT-4974 Auto-complete inside "randomize() with { ... }" does not recognize hierarchy past first level © AMIQ 444 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5035 Types View search filter sets focus on wrong type if project has multiple natures • DVT-5052 Trace Connections View is not cleaned when closed • DVT-5076 Add to default.build does not add build configuration files • DVT-5077 Always open with DVT editor when double click in Compile Order View • DVT-5083 Trace Connections from Editor does not work on a primitive's port • DVT-5091 Instance Tree View memory leak • DVT-5094 All refactoring operations should only validate editing of the files that will be modified (make writable/check out) • DVT-5095 Incorrect trace path shown in Trace Connections View for signals with the same name • DVT-5097 Syntactic error reported on previous included files when unexpected char occurs at the beginning of a file (binary file) 3.4.1 (7 June 2013) Performance • DVT-5050 Trace Connections optimizations for big instance trees • DVT-5073 Performance improvement on DVT-Auto Linked files creation (part 2) Enhancements • DVT-4827 Print total build time in human-readable form • DVT-4910 Add support for non-standard syntax foreach(a.b.foo().an_array[ i ]) • DVT-4999 Module instantiation without instance name has wrong label in Instance Tree • DVT-5039 Add defined macros to `timescale directive • DVT-5074 Added Trace Connections message dialog for operation already in progress Bugfixes • DVT-5026 Diagram preference page incorrectly manages invalid dot executable • DVT-5027 Types View drag and drop entity auto-instance does not work on Windows • DVT-5028 Trace Connections View memory leak • DVT-5034 Quick Types/Compile Order Views should show Select Project dialog if no project is selected © AMIQ 445 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5046 Quick Types/Compile Order Views do not close when trying to open an element that is already opened in an editor • DVT-5047 Types View drag and drop module auto-instance doesn't scroll through vlog/vhdl editor • DVT-5053 HTML Documentation Wizard overview description file error if the file "readme.txt" is not found • DVT-5059 Trace Connections from Editor does not work on interface ports • DVT-5063 Path hyperlinks are improperly formatted when file name contains '&' character • DVT-5064 Path hyperlinks are improperly formatted when file name contains whitespace • DVT-5069 Hyperlink jumps to right location but override annotation goes to gray file 3.4 (2 June 2013) HIGHLIGHTS • Override Annotations in the Editor. See Override Functions • Ability to inspect each step from source to destination when tracing connections. See Trace Path • Ability to trace connections from editor. See Trace Connections from Editor • Ability to search for ports in the design hierarchy. See Search Port in Design Hierarchy • Ability to instantiate a module using drag and drop. See Autoinstance Using Drag and Drop • Unified Types and Quick Types Views across languages. See Types View • Unified Compile Order and Quick Compile Order Views across languages. See Compile Order View • Unified Tasks Tags Preferences across languages. See Reminders (TODO Markers) Performance • DVT-5032 Performance improvement on DVT-Auto Linked files creation • DVT-5033 Performance improvement on implicit net assignment semantic checks Features • DVT-141 Mixed Language Support: Unify Compile Order View and Quick Compile Order View. See Compile Order View • DVT-147 Mixed Language Support: Unify Types View and Quick Types View. See Types View © AMIQ 446 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3107 Mixed Language Support: Unify Task Tags Preferences. See Reminders (TODO Markers) • DVT-4434 Trace port directly from editor. See Trace Connections from Editor • DVT-4724 Mixed Language Support: Unify Project Statistics • DVT-4933 Add an indication in the editor that a class function or task is overridden. See Override Functions Enhancements • DVT-3131 Remove checkboxes from the entries in Tasks View • DVT-4023 Added Why section in the Trace Connections View to see trace path of a port or signal. See Trace Path • DVT-4634 Mixed Language Support: Quick Types View should show information for all languages instead of asking to select a language • DVT-4682 Support for drag and drop Verilog module auto-instance • DVT-4957 Update OVM/UVM Field Editor "Preliminary Check" dialog • DVT-4975 Synchronized Why section with the Trace Connections View • DVT-4976 Add icons to the ports displayed in the Why window • DVT-4977 Differentiate between sources and destinations in the Trace Connections View • DVT-4987 Enable "Change DVT Nature" popup menu action, regardless of current perspective • DVT-4990 Mixed Language Support: Quick Compile Order should show information for all languages instead of asking to select a language • DVT-5004 Ability to search for ports in the Instance Tree View • DVT-5018 Added progress reporting for trace port operations Bugfixes • DVT-4247 Refactor Connect: unable to reuse an existing port when connecting two instances • DVT-4674 Diagram "Save as" should update supported extensions when dot binary changes • DVT-4714 Refactor Connect: toolbar changes position depending on the order of button presses (ports view, connect toolbar) • DVT-4929 Add support for simple wildcards (* and ?) for Instance Tree filtering • DVT-4973 Relative paths in environment inherited $SPECMAN_PATH are not resolved as relative to compilation root © AMIQ 447 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-5005 Build Config Editor - Some top files include patterns don't get recognized under Windows • DVT-5019 Quick Hierarchy View (Ctrl+T) not showing the expected info on class constructor 'new' • DVT-5020 Override Method (via autocomplete or right click menu) doesn't work for predefined functions • DVT-5031 Connect ports: toggle ports view after performing a connect operation duplicates the connect toolbar 3.3.8 (24 May 2013) Performance • DVT-5010 Performance improvement on post build resolve import (RI) and check for duplicate (RD) steps Bugfixes • DVT-5011 Missing tooltip and content assist for rand_mode() function and task on rand/ randc declared fields • DVT-5012 Missing tooltip/hyperlink and content assist on implicit iterator of lists (e.g list.find_index(my_index) with { my_index = index; }) 3.3.7 (17 May 2013) Enhancements • DVT-3139 Allow creating a new file under the DVT Auto-Linked folder using the New File Wizard • DVT-4961 References of a port when using list of instances works only for the first instance (potential matches for the subsequent instances) • DVT-4963 Non-standard support for module instantiation without instance name • DVT-4981 Non-standard support for keyword 'design' used as an identifier (e.g. 'modport design (...)') • DVT-4982 Support for Aspect Oriented Programming (AOP) using +dvt_enable_sv_aop flag in *.build configuration files • DVT-4991 Code templates changes: removed 'uvm_1_0_ea' templates and renamed 'uvm_1_1' to 'uvm' Bugfixes • DVT-4815 Fixed MacOS dot crashes by disabling orthogonal routing option for this platform © AMIQ 448 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4834 Files under DVT Auto-Linked roots are not removed when added as linked resources • DVT-4959 Registration macro for array of events is not computed correctly • DVT-4962 Macros should not be expanded inside strings (e.g. "`DEF_NAME = " should not change if DEF_NAME is defined) • DVT-4968 Smart log styles don't work for run configurations • DVT-4983 Wrong location of tooltips/hyperlinks at left word boundary • DVT-4993 Prevent a dictionary restore when a full build will follow 3.3.6 (27 April 2013) CLEANUP • DVT-4944 Renamed "Trace in Design" as "Trace Drive and Load" to reflect the changed functionality Enhancements • DVT-4661 Build Config: turn off "Unknown directive" warnings by default • DVT-4662 Build Config: add support for +dvt_enable_unknown_directive_warnings Bugfixes • DVT-4626 On MacOS dvt.sh issues an error (tee: illegal option -- -) • DVT-4803 Custom Dialogs: Directory Files Listing widget presents an empty list on the first run • DVT-4879 Expand macros defined like `define a_macro(arg) `macro1``arg`macro2 according to compatibility mode • DVT-4904 Non-standard support for missing return type of a method prototype 'function foo()' • DVT-4910 Non-standard support for hierarchical method call in 'foreach' construct (e.g. foreach(a.b.foo().an_array[ i ])) • DVT-4922 Project right click > Add to default.build should work if .dvt directory does not exist or is empty • DVT-4923 Project right click > Add to default.build should refresh default.build file after updating it • DVT-4938 Trace Connections View doesn't show the vertical scrollbar • DVT-4941 Project right click > Ignore Files does not add the correct path to default.build © AMIQ 449 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4943 DVT Wizards menu entries not visible in DVT Perspective in project right click menu • DVT-4947 Some images are not displayed in the built-in documentation • DVT-4956 Reapply checks in the linter GUI not working after rebuilding the project 3.3.5 (22 April 2013) REMOVED • DVT-4900 Predefined Projects: uvm-1.1(a,b,c)_ubus projects removed Enhancements • DVT-4876 HTML Doc Wizard: enhanced support for absolute paths for documentation output directory path • DVT-4899 HTML Doc Wizard: enhanced support for system variables in paths • DVT-4914 Improve Instance Tree filtering performance • DVT-4921 Document Instance Tree View filtering Bugfixes • DVT-4849 Predefined Projects: launch configurations might not work because of 32/64 bits compatibility problems • DVT-4877 HTML Doc Wizard: open index.html in web browser after generating documentation in a directory outside the project • DVT-4878 Trace Connections View doesn't show assign statements • DVT-4902 New File Wizard shows an error message when trying to create a new file inside a virtual folder • DVT-4912 Slow parsing for large macro expansion stack 3.3.4 (15 April 2013) Performance • DVT-4731 Limit the number of proposals on autocomplete • DVT-4851 Code formating is slow when applied to large files • DVT-4852 Autocomplete auto-instance slow when large number of modules or large number of ports • DVT-4866 Populating the instance tree is slow for large designs Enhancements © AMIQ 450 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4603 Content assist option to combine both search algorithms (CamelCase and prefix match) • DVT-4722 Changed Trace in Design to show the reunion of Trace Drive and Trace Load • DVT-4740 Semantic DUPLICATE_ENUM_LITERAL problem should be demoted to WARNING • DVT-4799 Add pointers to Code Template property pages in New File Wizard • DVT-4800 Predefined Projects: uvm-1.1d library and uvm-1.1d_ubus project added • DVT-4813 Updated FlexLM libs to v.11.11.1 to add support for "INCLUDE ... PROJECT" option • DVT-4847 Non-standard support for hierarchical method call in 'foreach' construct (e.g. function_call().field[]) • DVT-4863 Non-standard support for range selection in randomize argument (e.g. std::randomize(rand_var[ 7:0 ]) with ...) • DVT-4873 Non-standard support for packed dimension on stream concatenation simple type Bugfixes • DVT-4325 Added fork ... join/join_any/join_none block selection, similar with begin ... end pair • DVT-4592 Fixed dvt.sh to work with "-eclispe_args -pluginCustomization ..." arguments • DVT-4794 New Project Wizard should not overwrite existing default.build • DVT-4830 "Resource is inaccessible" error when the DVT Auto-Linked folder is cleaned • DVT-4842 dvt_plugin_installer.sh delete directive uses only the last delete argument and ignores the rest • DVT-4861 Code enclosed between `protect ... `endprotect pragmas should not be ignored by compiler • DVT-4864 Generating HTML Documentation does not work if a build job is in progress • DVT-4868 Autocomplete not inserting the proposals when $ sign in the middle of involved identifiers (function arguments, parameters, candidate name, etc.) • DVT-4872 Duplicate error message missing first hyperlink if element declaration line number > 999 • DVT-4880 NON_EXISTING_PORT error triggered when a port's name is an escaped id containing '.' (dot character) 3.3.3 (2 April 2013) © AMIQ 451 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Performance • DVT-4225 Module flow diagram performance improvements for large designs • DVT-4742 Slow hyperlink to definition or tooltip in very large files • DVT-4743 Slow hyperlink to assignment in very large files • DVT-4744 Slow typing or navigating (scroll) through very large files Enhancements • DVT-4308 HTML Doc Batch: Ability to report progress • DVT-4758 Jump to assignment should go to the first port connection, if any • DVT-4784 Project Statistics - collect macro expansion statistics should be off by default • DVT-4769 Rebuild buttons should have the corresponding action in the drop-down menu Bugfixes • DVT-1231 Diagram, HTML Documentation, and OVM/UVM Compliance editor windows should close on project close/delete • DVT-4518 Hyperlink and tooltip should point to sequence argument instead of field • DVT-4624 Unsupported syntax 'bit[ a:b ] mem[ bit[ c ] ];' • DVT-4685 Automatic module instantiation should indent the generated code • DVT-4700 For SVN distros, after update to 3.3.1, errors are incorrectly thrown by the DVT Auto-Linked folder • DVT-4717 Empty menu entry in Window -> Customize Perspective -> Toolbar Visibility tab-> DVT Build • DVT-4725 Predefined Projects - Makefile.questa does not work if the predefined projects are stored in a read only location • DVT-4729 Copy full path doesn't work for DVT Auto-Linked folders • DVT-4735 Dynamic Shortcuts in Eclipse 4 - generated icons are not visible on the main toolbar • DVT-4774 External Questa builder is not working out of the box on Windows • DVT-4780 Hide OVM/UVM members on outline view not working after platform restart • DVT-4781 Unsupported list associated to a localparam (e.g. localparam [ 7:0 ][ 7:0 ] X = {8'h08 << 1, 8'h08 << 2};) • DVT-4782 "default" code template not visible in New File Wizard © AMIQ 452 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4783 Remove footer from "verilog file" code template • DVT-4789 Auto-complete on system tasks with no argument adds an extra dollar sign (e.g. $time()) • DVT-4798 The +dvt_env+ build directive should accept quoting the environment variable value 3.3.2 (22 March 2013) Bugfixes • DVT-4604 Fixed FlexLM client to prevent opening too many threads in some situations • DVT-4693 Fixed FlexLM client reconnection problems by reducing reconnection time after idling • DVT-4707 Predefined Projects Wizard - some fields are not displayed correctly when the monitor resolution is less than 1024x768 • DVT-4708 Outline view is notified multiple times after an incremental compile • DVT-4710 Compilation fail sometime when the project contains linked resources 3.3.1 (15 March 2013) Enhancements • DVT-4584 Support for uniqueness_constraint construct • DVT-4639 Overwrite closing brackets instead of adding another • DVT-4658 Support for specparam PULSEPATH$ = constant_mintypmax_expression • DVT-4666 Autocomplete in coverpoint field hierarchical access • DVT-4675 Diagram save as should append the .<ext> to file name specified by the user Bugfixes • DVT-2006 Fixed hyperlinks, references, tooltips for escaped identifiers • DVT-4579 Extend automatic check-out to "Search and Replace" • DVT-4619 Hyperlink after keyword virtual should always point to a type and not to a field definition with the same name • DVT-4649 Wrong syntax error reported when using event control "edge" • DVT-4652 Override Methods - bracket bug in auto generated code • DVT-4653 Override Methods should not work inside a comment block © AMIQ 453 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4670 Stack overflow when adding a key binding to a dynamic shortcut • DVT-4676 Diagram preview dialog errors out with "cannot find font" • DVT-4681 False syntactic error triggered by two consecutive semicolons inside function body block item declaration list • DVT-4684 Use of platform dependent FontData fields leads to unexpected behavior in trace port connections view • DVT-4688 Increase/Decrease Editor Font Size does not work after modifying the default font from Windows -> Preferences 3.3 (10 March 2013) HIGHLIGHTS • Ability to save a diagram in various graphical formats like jpeg, png, svg (see Diagrams) • Ability to specify the "Run Configuration Session Type", mainly in order to allow for proper termination of all spawned processes when launching an external tool (see Run Configuration Session Type) • Ability to select if a run configuration is a command or a multi-line script (see Run Configurations) • Ability to specify one or more "roots" that DVT Auto-Link can use instead of the full hierarchy, in order to flatten the deep Auto-Link hierarchy (see DVT Auto-Linked) • New HTML Documentation wizard with support for mixed language projects (see Export HTML Documentation_Wizard) REMOVED • DVT-4370 Removed support for pre DVT 2.9.7 local licenses (DVT_LICENSE_VERSION is not used anymore) DEPRECATED • DVT-4575 dvt_trap.sh is deprecated by Run Configuration Session Type • DVT-4577 dvt_xterm.sh is deprecated by Run Configuration Session Type Features • DVT-4217 Ability to specify one or more "roots" that DVT Auto-Link can use instead of the full hierarchy. See DVT Auto-Linked • DVT-4466 Integrated dvt_trap.sh and dvt_xterm.sh functionality in run configurations (see Run Configuration Session Type) • DVT-4578 Ability to select if a run configuration is a command or a multi-line script © AMIQ 454 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Enhancements • DVT-3780 Mixed Language Support: New HTML Documentation wizard with support for projects with multiple natures • DVT-4042 When changing project nature, don't create default.build if .*_top_files already exist • DVT-4047 Mixed Language Support: Unify toggle nature actions • DVT-4100 Ability to save a diagram in various graphical formats like jpeg, png, svg • DVT-4161 Generate wires for all ports when doing module auto-instance • DVT-4202 Linter HTML Report generates a ovm/uvm/verssimo.html.report file that can be used to open the report from DVT • DVT-4203 Unified Linter/Compliance HTML viewers listed in Open With context menu • DVT-4310 HTML Doc Batch: Ability to generate documentation without the xml settings file argument • DVT-4321 Show inheritance tree for all classes in a package in the generated HTML Documentation • DVT-4343 Enhance autocomplete for `include (take into account the specified incdirs) • DVT-4365 Generate Html Documentation in dvt_html_doc directory • DVT-4419 Add color preferences page for the *.build configuration file editor • DVT-4433 Serialize Instance Tree top module in default.build and automatically populate the view • DVT-4464 Outline View option to hide the content behind OVM/UVM macros • DVT-4593 Allow sub-second granularity for dvt_debug_utils.sh -thread_dump • DVT-4600 Update copyright in plugin description • DVT-4640 Don't prompt the user for making files writable, when automatic check-out fails Bugfixes • DVT-2672 & DVT-3005 Console View Terminate does not work (due to background processes holding stdout) is fixed when using a new session (see Run Configuration Session Type) • DVT-4083 HTML Documentation for struct/enum and typedefs is not extracted for global scope • DVT-4315 Html Documentation Wizard is not in sync with the .xml settings file © AMIQ 455 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4413 Shift + F4 on non-types should not clear the instance tree but bring it into focus • DVT-4428 False errors in default.build when multiple directives starting with uvm are present in the dvt compatibility mode • DVT-4465 Project root is added to incdir list instead of compilation root • DVT-4503 Wrong hyperlink for struct/enum fields in HTML Documentation • DVT-4521 Wrong line/file is reported for some directives (e.g. uvmhome) in default.build • DVT-4557 Rename "CDN OVM User Guide" to "CDN OVM/UVM User Guide" in Preferences -> Help • DVT-4570 BuildConfig Editor doesn't correctly match numbers • DVT-4638 New File Wizard - "Browse" button does not work if "Directory" field is empty • DVT-4646 Automatic check-out: text following ${selected_resources_loc} variable gets lost 3.2.21 (8 March 2013) Bugfixes • DVT-4638 New File Wizard - "Browse" button does not work if "Directory" field is empty • DVT-4643 Fixed duplicate error message path • DVT-4644 Fixed duplicate error message shown in the same file when files are outside project dir 3.2.20 (6 March 2013) Bugfixes • DVT-4628 Internal builder triggers external builder for files opened from outside project • DVT-4629 Errors reported on a wrong top file when the issue is inside a library (-y) file • DVT-4632 Compile order view not showing the correct order for the library (-y) files • DVT-4636 Set current build complains about read-only build_config.xml 3.2.19 (5 March 2013) Bugfixes • DVT-4621 Wrong redefined __LINE__ and __FILE__ warnings signaled outside project • DVT-4622 Spurious internal debug messages in console 3.2.18 (4 March 2013) Bugfixes © AMIQ 456 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4590 Tab indent issue for comments • DVT-4597 Hyperlinks/tooltips are computed very slow when there is a heavy macro on the LHS of the word • DVT-4599 Set current build fails silently when build_config.xml is read only • DVT-4605 Source format might fail to check out a license • DVT-4606 In OSX, generating a predefined diagram with no dot in PATH and no type compiled opens several windows that cannot be dismissed with the mouse • DVT-4613 Memory leak when importing/deleting projects several times • DVT-4615 `undefineall directive should not undefine CLI or predefined macros like `__FILE__ and `__LINE__ • DVT-4616 Add `wrealZState and `wrealXState in the ius.irun compatibility mode build config 3.2.17 (20 February 2013) Enhancements • DVT-4030 Workingset selection toolbar button is missing in DVT perspective • DVT-4302 Add buildProject command to DVT CLI • DVT-4496 Show [] array indication in autocomplete balloon • DVT-4538 Custom Dialogs: when ElementListSelectionDialog widget has many entries the previous selection is restored very slow • DVT-4552 Add -blocking flag to DVT CLI refreshProject • DVT-4564 Support for non-standard class_name::task_name.block_label;" syntax inside task "disable Bugfixes • DVT-4435 Unwanted sticky selection when reloading a file that changed on disk • DVT-4512 Bus width is ignored when connecting ports across the design hierarchy • DVT-4551 Don't auto-insert closing bracket )]} if there are characters after • DVT-4557 Rename "CDN OVM User Guide" to "CDN OVM/UVM User Guide" in Preferences -> Help • DVT-4561 Add support for auto-complete across binds in expressions • DVT-4565 Format preference page - NullPointerException when enabling/disabling external program formatting © AMIQ 457 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4566 Format preference page - broken layout for line wrapping note • DVT-4572 Auto-indent issues for identifiers that start with keywords 3.2.16 (11 February 2013) Features • DVT-1690 Hooks for scripts to perform automatic check-out when editing a read-only file Enhancements • DVT-3132 Autocomplete only interfaces after 'virtual interface' when inside a class • DVT-3384 Button for collapse all grayed out code (along with collapse first level etc) • DVT-4504 Restrict proposals to types when "protected" and other qualifiers are used when declaring fields in classes • DVT-4540 Support for non-standard 'automatic' lifetime when declaring class constructor Bugfixes • DVT-4418 Double click 'endmodule' selection pairs with 'property' instead of 'module' • DVT-4492 When using split editors, selecting a word in one of them reveals the cursor position in the other • DVT-4494 Macro reparse stack file paths should be always absolute • DVT-4514 Fixed possible deadlock situation in DVT Launch Configuration modification listener • DVT-4515 A more informative error message if there is a name collision between an imported project and one from the current workspace • DVT-4522 Tooltip on 'new' implicit constructor not working • DVT-4523 Sequence declared inside clocking block not correctly handled • DVT-4524 Resolve name from "name::" as package or type even if a variable with the same name exist in the context • DVT-4537 Refactoring field should update 'coverpoint' and 'covercross' field references • DVT-4539 Sequence instance followed by consecutive repetition not allowed as sequence argument • DVT-4543 Missing hyperlinks in console log 3.2.15 (28 January 2013) © AMIQ 458 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-4491 Run Configurations wizard is very slow when changing settings • DVT-4501 Missing associative index type references in direct association diagram • DVT-4497 Console hyperlink is opening the wrong file when both physical and symbolic link files are under project 3.2.14 (23 January 2013) Bugfixes • DVT-4490 Delete at cursor position removes text at the last selected region offset 3.2.13 (23 January 2013) Bugfixes • DVT-4487 Incremental build not always working (sometime not working for the files under project root) • DVT-4488 Exception thrown sometime when deleting text under vertical selection • DVT-4447 Building a C project will cause ClassCastExceptions to show up in the Error Log 3.2.12 (22 January 2013) Enhancements • DVT-4403 Inconsistent quoting when reporting errors (e.g. Expecting "something", found 'something else') • DVT-4468 Update Clearcase plugin to version 2.2.27 • DVT-4470 Overwriting closing quotation marks after typing some text • DVT-4484 Brush-up the defaults for external builders Bugfixes • DVT-4463 Wrong hyperlink from Run Configuration Filters if there are more files with the same name • DVT-4472 External builders should read from .dvt_builders if it exists but no external_builders.xml exists • DVT-4477 Error reported on the wrong file (e.g. reported on the file that include the one with the error) • DVT-4478 Wrong syntactic error reported when event expression used as sequence call argument © AMIQ 459 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4479 Dynamic Run Configurations shortcuts wizard page - cannot change "toolbar order number" • DVT-4485 The toolbar containing New Project & File wizards is not visible on the main toolbar 3.2.11 (11 January 2013) Enhancements • DVT-4426 +dvt_env+ directive should accept environment variables in variable names • DVT-4436 Improved parser recovery mechanism when syntax errors due to protected code • DVT-4459 Dynamic Launch Configuration Shortcuts - show toolbar icon & consider key binding for read-only configurations Bugfixes • DVT-3179 Javadoc auto-complete does not fill in function/task arguments • DVT-3642 Select word under cursor and find next occurrence (Ctrl + 8 <=> Alt + Shift + Up, Ctrl + K) • DVT-3765 Wildcard patters don't work for Windows network paths like \\...\...\... • DVT-3978 Build Config Editor - Environment vars defined in the build file are not shown by content assist • DVT-3979 Build Config Editor - Content assist for relative paths will not work properly if compilation root changes • DVT-4376 In default.build, when trailing + is missing for a directive, DVT throws an IndexOutOfBounds error • DVT-4393 In IUS.IRUN compatibility mode, directives should be case-insensitive. • DVT-4423 Code Templates View automatically expands on resource change causing selection loss • DVT-4424 In default.build: allow defining env variables with names containing other env variables • DVT-4425 External tools reported errors are not always back-annotated to the editor as problems (java exception thrown) • DVT-4431 Allow text being selected in a single editor at a time • DVT-4437 Project Templates should not consider x_param__ or __param_x as valid parameters • DVT-4444 Specman error message not recognized by run configurations filters © AMIQ 460 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4445 Specifying -snpath in default.build without any prior SPECMAN_PATH definition triggers an internal error • DVT-4446 In default.build, warn when -snpath appends to an existing SPECMAN_PATH value • DVT-4448 Disable DVT section from project properties page if the project does not have any DVT natures • DVT-4453 Ability to change path pattern wildcard timeout for default.build by +dvt_path_pattern_timeout+<seconds> directive 3.2.10 (24 December 2012) Enhancements • DVT-1363 Cancel linting when full build is canceled • DVT-3105 Change project (update views) when working with editors on config files • DVT-3479 Enforce that a project must be specified in lint configurations • DVT-4127 Trace port in gate level designs (netlists) • DVT-4279 Auto-insert pair character when typing '"', '{', '[' or '(' • DVT-4291 Hierarchy View - Add new filter for “virtual functions/tasks” in hierarchy view member filters • DVT-4303 Auto-indent issue for false-positive keywords (e.g.'super.end_') • DVT-4309 Update external builder default command to use ${dvt_current_build_file} • DVT-4395 2x -v library scanning speed up in large environments • DVT-4397 Support for multiple selection in Directory Files Listing (Custom Dialogs widget) • DVT-4398 New Linked Resource Wizard fields are empty when triggered after selecting an Auto-Linked file • DVT-4400 Ability to discard the id of a Custom Dialog widget, when its value is empty Bugfixes • DVT-3179 Javadoc style autocomplete sometime not working (i.e. does not fill in function args) • DVT-3798 Inline randomization of objects doesn't allow prediction (content assist) of signals • DVT-4278 Diagram editor help button doesn't work • DVT-4353 Eclipse Juno - Cancel Custom Dialog triggers an error instead of canceling the action © AMIQ 461 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4399 Eclipse Juno - Add support for build buttons and dynamic Run Configuration shortcuts • DVT-4404 Refresh on external builders property page does not work after removing/ modifying a builder • DVT-4417 Misc fixes in UVM code templates 3.2.9 (11 December 2012) REMOVED • DVT-4383 Removed Glance plugin because it was causing problems with views repainting Enhancements • DVT-3809 Buttons on main toolbar for increasing / decreasing the editor's font size • DVT-4367 Updated code templates to place cursor in right position after insertion • DVT-4379 Cleaned formatting for code templates • DVT-3950 DVT CLI should select the project after createProject/importProject • DVT-4147 Trigger warnings for the ignored directives encountered in default.build • DVT-4180 Add invocations list and number of waived issues to build log • DVT-4213 Add refresh command to DVT CLI • DVT-4268 In ius.irun compat mode, -libext <ext> should be recognized as a valid directive • DVT-4358 Add quit command to DVT CLI • DVT-4364 Trigger an error if +/-libext is specified without preceding '.' • DVT-4371 Console button for printing build log summary Bugfixes • DVT-4169 On some OSs, after Quick actions (e.g. Quick Outline) the focus is lost for entries in the current file • DVT-4184 Cannot delete project from disk, in windows and some linux OSs due to dvt_build.log still held open • DVT-4366 File extension resets to default when changing file's name in New File Wizard • DVT-4374 Fixed OVM/UVM Field Editor inserting _object_utils over any other _utils • DVT-4375 Updated UVM Field Editor to use uvm_object_utils instead of deprecated uvm_sequence_utils macro © AMIQ 462 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4378 Console logs filters don't properly highlight some log message regions • DVT-4382 Code templates preview does not use the global font settings • DVT-4389 Fixed Project -> Add to Test files, incdir... for Eclipse Juno • DVT-4384 The -f include tree is printed multiple times in the build console for mixed language projects • DVT-4385 Semantic errors are not reported in Build Console 3.2.8 (4 December 2012) Enhancements • DVT-4209 Changed the "verissimo_html_report" generated Verissimo HTML report directory to • DVT-4231 Verissimo checks can be reapplyed one by one from tree's context menu 3.2.8 (4 December 2012) REMOVED • DVT-4361 Removed key binding for "Select Project" because it was in conflict with the new binding for "Redo" Bugfixes • DVT-3984 Added back the key binding Ctrl+Y for "Redo" as it was changed in Eclipse to Ctrl+Shift+Z • DVT-4333 Bad indentation on 'if else if else' statements • DVT-4359 $root and $unit scope is not correctly computed for hyperlink and hover info • DVT-4362 Fixed empty key bindings for rebuild internal and external commands 3.2.7 (3 December 2012) Enhancements • DVT-4069 Updated Eclipse Platform to 3.8.1 and all the plugins from distribution • DVT-4156 Semantic references search in the current file • DVT-4222 Hierarchical Filtering in the Instance Tree View using slash (/) • DVT-4272 Run Configurations Launch Command - add support for Windows • DVT-4294 Issue error in default.build if -y is specified but no +libext+ directive • DVT-4311 Show file extensions based on project's natures in New File Wizard © AMIQ 463 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4318 Added default.build editor color preferences in DVT Themes • DVT-4324 HtmlDoc comment pragma to exclude types from documentation (@dvt_no_html_doc) • DVT-4328 Added invocation number for console reported syntactic errors • DVT-4332 Support for soft constraints (under "1800-2012" keyword set) • DVT-4339 Disabled Eclipse Update Site in distributions to speed up the updates (to enable use Preferences -> InstallUpdate -> Available...) Bugfixes • DVT-3990 Bad index (incremented) in syntax error report when errors at the end of the file • DVT-4036 OVM/UVM Field Editor should use ovm_field_utils_begin for virtual classes • DVT-4060 Wrong key used by OVM/UVM field editor for ovm_field_aa_int_key • DVT-4081 In ius.irun compatibility mode, for -xvm[ home ] directives, report errors on the -xvm[ home ] line instead of next +dvt_init • DVT-4164 Fixed default spelling dictionary for DVT distros • DVT-4211 In column selection mode, fixed line duplication when inserting a space after closing item (ex. after endfunction) • DVT-4305 Wrong tooltip on variables of enum type • DVT-4314 Missing text wrap in generated HTML documentation • DVT-4322 Incremental `include files are not correctly handled in a multiple invocations build config • DVT-4330 Spurious AssertionFailedExceptions might occur when switching current build • DVT-4350 Autocomplete issue when function/task argument name matches one of the template variable name (e.g 'file_name') • DVT-4351 Missing toolbar labels (in Window -> Customize Perspective -> Toolbar visibility) 3.2.6 (19 November 2012) Enhancements • DVT-4075 Added 'add directory as incdir' action (right click on a directory -> Project Menu -> Add as Incdir) • DVT-4185 Added Custom Dialog screenshot to documentation • DVT-4216 Right-clik on a folder in DVT Auto-linked and Link Resource in Project Root © AMIQ 464 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4254 Inserted code template by drag & drop from Templates view now indents the code • DVT-4257 Added a Build tab for DVT Generic Launch Configuration • DVT-4282 HtmlDoc - option added to remove "by <username>" watermark in the generated .html pages • DVT-4285 Update the problem markers differentially Bugfixes • DVT-3888 Skipped/Ignored files are not properly decorated • DVT-4137 Code templates editor now has the same background color as the DVT editor • DVT-4240 Bad begin/end delimiters matching (by double-click) due to assert property • DVT-4259 Tracing signal missing connections when signals declared inside generate block • DVT-4269 Slow editing when block selection mode is used on hundreds lines of code • DVT-4270 System variables are not translated for -uvmhome directive • DVT-4271 UVM library path is not computed correctly from -uvmhome directive • DVT-4280 Incremental build duplicates errors when file is a symbolic link • DVT-4283 Sometimes opening a file causes its error markers to disappear • DVT-4284 Incremental build disables marker limits for the semantic problem markers • DVT-4286 In default.build, some windows paths are interpreted as unicode • DVT-4290 In vcs compatibility modes, un-escaping of strings does not work correctly in argument files included with -file directive • DVT-4297 Code Templates View hangs when creating a new template • DVT-4300 Sometimes semantic errors are not restored at platform restart 3.2.5 (6 November 2012) REMOVED • DVT-3975 Removed outline view link with editor feature (not always working correctly on lazy tree) Enhancements • DVT-3827 Update error markers when opening a file that has errors but no markers (due to Problems View marker limits) • DVT-4212 Automatically infer arguments for macros aliases © AMIQ 465 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4221 Ability to Show Instance Tree on right-click on a node in the Instance Tree View Bugfixes • DVT-3565 HTML Documentation - Extract comment from output/input port declaration • DVT-4132 Custom dialog example missing from File > New > Example menu • DVT-4146 System variables not expanded for +dvt_compilation_root directive • DVT-4162 Auto-complete inside 'if (...)' in an always block does not show wires and ports • DVT-4187 In tooltip, local variable name is replaced with internal __identifier__ • DVT-4189 Escaped identifier and identifier are semantically same element • DVT-4200 Un-escaping of strings in default.build does not work • DVT-4220 Wrong notification about empty default.build when using dvt_sv_lint_gui.sh • DVT-4224 Missing connections between submodules in module flow diagram • DVT-4237 Some compile options like +libext+ or -y, -v are evaluated globally and not per invocation • DVT-4260 Preprocessing defines management across multiple invocations in default.build is broken • DVT-4261 Wrong syntax error on 'for' generate loop following a block definition 3.2.4 (26 October 2012) Enhancements • DVT-3607 Compile Order View - Ability to see where a file is included from. See Compile Order View • DVT-4095 Support for non-standard hierarchical identifier for cover point inside 'binsof' specification • DVT-4097 Support for non-standard array of typedef struct data type • DVT-4102 Predefined Projects - uvm-1.1c library and uvm-1.1c_ubus project added • DVT-4103 Support for non-standard specify $width ( negedge clr, 1, , notif ); • DVT-4104 Support for primitive without a table (the table can be in protected code) • DVT-4106 Support for nonstandard typedef covergroup • DVT-4183 Support for non-standard empty arguments list '()' when arguments are declared inside function/task body" © AMIQ 466 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-4084 Enter after /** regenerates comment leading to a wrong comment e.g. /** * * * */ * * */ • DVT-4098 Compilation errors on "let" constructs • DVT-4105 In ius.irun compat mode the -uvmhome directive searches for ovm_pkg.sv instead of uvm_pkg.sv • DVT-4126 New Project Wizard - Unable to create a project when the project location is changed • DVT-4176 Build Config Editor: incorrect autocomplete proposals for +dvt_e_sn_which • DVT-4177 Build Config Editor: no tooltip for directives that set internal builder properties • DVT-4182 Compilation errors on macro parameters declarations on multiple lines • DVT-4188 in ius.irun compatibility mode, DVT does not recognize the -ccext flag • DVT-4205 Fixed custom ruleset checks name based on library attribute 3.2.3 (17 October 2012) Enhancements • DVT-554 Dropdown for external build button: invoke a certain external builder. See How to invoke external builders Bugfixes • DVT-4088 New Project Wizard - add option to specify the project's name. See Open a Project • DVT-4092 New File Wizard exception when creating files that are not associated with DVT editors • DVT-4093 Html Documentation - Exception on wildcard index type for associative arrays 3.2.2 (12 October 2012) Enhancements • DVT-3618 Instance Tree View: option to copy instance path (right-click menu). • DVT-4045 Store predefined diagrams (and diagrams generated via shortcuts) in the dvt_diagrams/ directory Bugfixes • DVT-4078 For certain irun versions, in ius.irun Compatibility Mode, the -ovm/-uvm directive does not infer correctly the irun installation location © AMIQ 467 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-4079 Code templates not visible when creating them from the Code Templates View 3.2.1 (11 October 2012) Enhancements • DVT-4062 Show busy indicator when generating large diagrams • DVT-4066 Also dump "generate blocks" in instance tree dump • DVT-4067 Improve instance tree view performance on trees over 100k elements • DVT-4072 Ability to include ports by name in module diagrams Bugfixes • DVT-4071 Selection slow-down in DVT editors • DVT-4073 Too many view (instance tree, types, layers, etc.) update notifications received during build 3.2 (9 October 2012) HIGHLIGHTS • Support for multiple build configurations. • Enhanced the support for mixed language projects. Hyperlinks, design hierarchy, tracing and diagrams work across Verilog and VHDL. • Unified default.build instead of .edt_top_files, .vlog_top_files and .vhdl_top_files. See Build Configurations. • Enhanced Module Diagrams including colors, click-through design hierarchy and breadcrumb. • Enhanced Trace Port Connections by analyzing concatenations, bit selection and assign statements. • Out of the box Architecture UML Diagrams and Sequences UML Diagrams. REMOVED • DVT-4021 Removed eclipse.sh and eclipse.bat scripts (deprecated in 3.0.4) DEPRECATED • DVT-3498 Deprecated internal builder preference "Restrict '*.v' and '*.vh' files to Verilog-2001 syntax" (use Language Syntax directives instead). See All Build Directives. • DVT-3669 Deprecated .dvt/.edt_top_files. .dvt/.edt_defines, .dvt/.edt_ignore_files, .dvt/.edt_test_files, .dvt/.edt_specman_path. See Build Configurations. © AMIQ 468 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3708 Deprecated dvt_cli.sh createSVProject (use createProject -lang e instead) See Command Line Interface. • DVT-3883 Deprecated internal builder preference pages. See Build Configurations. • DVT-3885 Deprecated disable_ext+all (use +dvt_ext_unmap_all instead). See All Build Directives. • DVT-3997 Pop-up deprecation warning when using old .dvt/.*_top_files configuration files with the ability to dismiss per session. See Build Configurations. CLEANUP • DVT-3937 Move language specific workspace preferences under the DVT section • DVT-3938 Move language specific project properties under the DVT section • DVT-3891 Mixed Language Support: Modify "add to top files" to "add to *.build" • DVT-4052 Rename run_dvt_from_rawtokens.sh to dvt_from_rawtokens.sh • DVT-4053 Rename .dvt/.dvt_builders file to external_builders.xml. See External Builders. • DVT-4054 Rename .dvt/log_styles file to log_styles.xml. See Smart Log Features • DVT-130 Mixed Language Support: Unify the Instance Tree View. • DVT-1088 Support for multiple build configurations. See Build Configurations. • DVT-2846 Mixed Language Support: Unify .*_top_files under default.build. See Build Configurations. • DVT-3085 Autocomplete in *.build and command (*.f) files in general • DVT-3577 Mixed Language Support: Module diagrams for mixed Verilog and VHDL projects. See Module Diagrams. • DVT-3890 Mixed Language Support: New editor for *.build files. See Build Configurations. • DVT-3893 Mixed Language Support: Unify the wizards for creating projects and files • DVT-3907 Mixed Language Support: Unify the external builders. See External Builders. Enhancements • DVT-68 Support for compilation root specification in default.build. See All Build Directives. • DVT-554 Dropdown for selecting a specific external builder. See External Builders. • DVT-2608 Cross language check when reporting undeclared components/modules © AMIQ 469 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3089 Propagate system variables to external tools integration. See External Tools Integration. • DVT-3246 Semantic error for duplicate port connections in an instance • DVT-3252 Improved file navigation for the files exceeding 10K lines • DVT-3335 Support for generate blocks for refactor connect ports • DVT-3354 Option to hide typedefs in the select types dialog for class diagrams. See Class Diagrams. • DVT-3355 Option to hide the ovm/uvm package types in the select types dialog for class diagrams. See Class Diagrams. • DVT-3356 Out of the box UML Diagrams: Architecture diagrams and Sequences diagrams. See Architecture UML Diagrams and Sequences UML Diagrams. • DVT-3359 Trigger diagrams from the Types View, Instance Tree View and Editor context menu. See Module Diagrams. • DVT-3397 +dvt_init+ should behave like a new parsing invocation. See Build Configurations. • DVT-3491 Issue warning when dvt_cli doesn't get both arguments for -map. See Command Line Interface. • DVT-3522 Include instances with undefined types in Module Diagrams. See Module Diagrams. • DVT-3541 Updated predefined projects. See Predefined Projects. • DVT-3555 Customize graph direction (e.g. top-bottom, left-right) for Module Diagrams. See Predefined Projects. • DVT-3556 Context menu shortcuts when Tracing Ports for Trace Drive, Trace Load. See Trace Port Connections. • DVT-3559 Context menu shortcut for Module Diagrams to open subinstance diagram. See Module Diagrams. • DVT-3578 Add support for +dvt_skip_compile+ directive in default.build. See Build Configurations. • DVT-3586 Module Diagrams: ability to navigate back from submodule diagram. See Module Diagrams. • DVT-3589 Trace Port Connections across array selection (i.e. connecting an instance port to several bits selected from a bus). See Trace Port Connections. • DVT-3590 Show signal flow across array selection in Module Diagrams. See Module Diagrams. © AMIQ 470 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3592 Module Diagrams: extend functionality to include simple assignments when determining connections. See Module Diagrams. • DVT-3603 Shortcut for opening submodule diagram. See Module Diagrams. • DVT-3615 Customize the "u_<module name>" module instance name when using content assist (auto-instance). See Module Automatic Instantiation. • DVT-3659 Trace Port Connections through assign statements. See Trace Port Connections. • DVT-3680 Use customizable colors in module flow diagrams. See Trace Port Connections. • DVT-3691 Refactor add port ability to add ports of other types like: logic, structure, multidimensional arrays. See Add New Port to Module. • DVT-3715 Include instances of undefined type when Tracing Port Connections. See Trace Port Connections. • DVT-3729 Support concatenations when tracing connections. See Trace Port Connections. • DVT-3751 Add a -perspective switch to the dvt_cli.sh createProject command. See Command Line Interface. • DVT-3762 Refactor connect instances support for array of instances. See Connect Instances Across the Design Hierarchy. • DVT-3788 Improve semantic checks for modules with concatenated ports when using .* notation • DVT-3796 Add external tools variable containing the path to current build file. See External Tools Integration. • DVT-3819 Trace Port Connections through concatenated port aliases. See Trace Port Connections. • DVT-3824 Support for case-insensitive directives in ius compatibility modes. See All Build Directives. • DVT-3857 Tooltip colors (mouse hover, folding, errors) can be configured from Preferences -> General -> Appearance -> Colors and Fonts • DVT-3886 Mixed Language Support: Unify "Nothing to compile" dialog with the ability to dismiss per session • DVT-3908 dvt_plugin_installer.sh for customizing the Eclipse installation works with any update site • DVT-3892 Update predefined projects. See Predefined Projects • DVT-3923 Signal error when multiple -work flags are provided for the same invocation, and only consider the first one. See Build Configurations. © AMIQ 471 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3926 Alias +dvt_setenv+ to +dvt_env+. See Build Configurations. • DVT-3927 Warn when encountering unknown +dvt_ directives in default.build. See Build Configurations. • DVT-3948 Prompt for project selection when rebuild/clean is triggered if no project is selected • DVT-3953 Keyword-set support for ius.irun -v95 compatibility. See Build Configurations. • DVT-3968 Trace Port connections across Arrays of Instances. See Trace Port Connections. • DVT-3969 Trace Port Connections across wires inside Blocks. See Trace Port Connections. • DVT-3972 Add Module Diagrams support for concatenation {signal1, signal2} in instance Port Connections. See Module Diagrams. • DVT-4003 Build configuration directives for controlling +dvt_build_log_to_console, +dvt_build_log_to_file, +dvt_build_log_file build log: • DVT-4005 Add support +dvt_reparse_duplicate_top_files+ directive in default.build. See All Build Directives. • DVT-4006 Add support for +dvt_incremental_compile_max_lines+ default.build. See All Build Directives. directive in • DVT-4007 Add support for +dvt_auto_link+ directive in default.build. See All Build Directives. • DVT-4011 Add support for comment extraction preferences in default.build. See All Build Directives. • DVT-4012 Predefined Projects wizard - add progress monitor while copying a project • DVT-4018 Mixed Language Support: Add Code Templates View to the DVT unified perspective. See Code Templates View. • DVT-4046 Detailed messages for refactor connect ports errors Bugfixes • DVT-3042 Syntax Page - Restore defaults does not work • DVT-3150 Match begin - end for "property - endproperty" does not work • DVT-3446 Prompt for Module Diagram regeneration after code changes only if it will look different or the project has been rebuilt. See Module Diagrams. • DVT-3530 Import package directive triggers an error if the package is declared in VHDL • DVT-3557 Wrong setup for uvm_ref_flow predefined project © AMIQ 472 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3706 Don't allow creating a no-nature project with dvt_cli.sh. See Command Line Interface. • DVT-3728 Unexpected token error reported on module when using -cuname • DVT-3749 Unexpected switches passed to dvt_cli.sh are treated as arguments of the last known switch. See Command Line Interface • DVT-3778 dvt_cli.sh should detect locked workspaces and die quickly and gracefully. See Command Line Interface • DVT-3846 Syntax error due to multiple declaration of signals for refactor connect ports • DVT-3922 +define+ directives in default.build should not be visible across multiple invocations • DVT-3970 Improve the Instance Tree Top Items list by looking for instances inside Blocks • DVT-4008 Tooltip doesn't show package info for classes 3.1.16 (5 October 2012) Bugfixes • DVT-4026 Optimize workingset creation via dvt_cli.sh createProject / importProject • DVT-4029 Tooltips/hyperlink not working for ports of an array of module instances 3.1.15 (3 October 2012) Enhancements • DVT-4022 Support escaped quotes in build configuration files 3.1.14 (27 September 2012) Enhancements • DVT-3046 Linter waivers include functionality • DVT-3689 Added refactoring connect ability to specify the new port type Bugfixes • DVT-3977 Limit console log filters to match max. 8 consecutive lines and 256 characters per line for each error/warning message (customizable) (more details here) • DVT-3992 Platform freeze sometime after pressing text formatting button • DVT-4000 'Insert spaces for tabs' option no longer working correctly 3.1.13 (18 September 2012) © AMIQ 473 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-3965 One key indentation not working when "Insert spaces for tabs" preference is selected • DVT-3971 Outline view selected element is not revealed (scroll view) when linked with editor 3.1.12 (13 September 2012) Enhancements • DVT-3084 An easier way to copy the full path to the file in the editor (more details here) • DVT-3920 Improve duplicate error messages and debugability Bugfixes • DVT-3644 Refactor connect generates code inside comments • DVT-3779 Refactor connect issue when instance name and module name are the same • DVT-3782 Refactor connect issue when module name is any substring of the word "module" • DVT-3783 Refactor connect issue when instance name is any substring of the instantiated module name • DVT-3784 Refactor connect issue when connecting two instances of the same module generates ports that are positioned wrong • DVT-3785 Refactor connect issue when an instance is inside an if-block that is inside a forblock • DVT-3961 Refactor connect issue when instances or modules are inside a #ifndef-block • DVT-3956 When opening an auto-linked file from a run configuration console link it is opened as outside project • DVT-3957 Updated Clearcase plugin to latest to fix a compare from history bug • DVT-3962 Fixed default radix for OVM Field Editor • DVT-3963 Fixed OVM Field Editor adding default radix for UNSIGNED fields without user's explicit action • DVT-3964 Fixed OVM Field Editor event fields registration 3.1.11 (7 September 2012) Enhancements • DVT-3701 Directives for controlling file extension to Language Syntax mapping © AMIQ 474 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-3915 Internal builder logs - missing highlighting & hyperlinks • DVT-3928 When opening an auto-linked file through dvt_cli.sh it is compiled out of any context • DVT-3929 Content assist and hyperlink issues when using 'this' followed by a local (private) member (e.g. "this.local_member.some_API") • DVT-3932 Updated Clearcase Plugin to fix diff view problem 3.1.10 (1 September 2012) Enhancements • DVT-3638 Formatting option not to indent module content • DVT-3875 Updated Terminal plugin and added terminal colors in DVT themes • DVT-3887 Added launch configuration example for Questa on Windows (in uvm-1.1_ubus predefined project) • DVT-3901 Added support for non-standard goto repeat '[->' and non-consecutive repeat '[=' operators after non-boolean expressions • DVT-3916 Added indication for 'rand' class properties in HTML documentation Bugfixes • DVT-3137 Added exit to launch configurations interactive shell example to prevent throwing DVT in background • DVT-3272 Formatting module instance declaration the same way we format instance module declaration • DVT-3290 Formatting line wrapping skips lines ending with literals • DVT-3306 Formatting should indent `ovm_field*/`uvm_field* macros • DVT-3319 Formatting issue for vertical alignment • DVT-3346 Formatting region is not kept after format • DVT-3727 Formatting issue with '{}' between '()' • DVT-3807 Logger exceptions occur when restoring project rght after platform startup • DVT-3872 Unexpected char errors due to non-ASCII chars in build files • DVT-3873 For semantic errors, the file compile index should not be reported in the console • DVT-3878 Creating waiver from hit should include a message pattern © AMIQ 475 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3894 HTML Documentation - macro comments not visible • DVT-3897 Predefined macros for compatibility modes should not trigger warnings on user redefinition • DVT-3898 Whitespace after a no-value macro definition changes macro value (redefined warning issued) • DVT-3900 DVT_SV_ENABLE_MIXED_VERILOG_MODE=false doesn't work • DVT-3905 Fixed dvt_sv_lint_gui.sh deprecated argument parsing • DVT-3906 In a mixed project, incremental build on a VHDL or e-Language file multiplies Verilog semantic errors • DVT-3914 Fixed formatter bug when double bracket is closed • DVT-3918 Invisible Trace Ports tree item on Windows 3.1.9 (13 August 2012) Removed • DVT-2957 Removed SOLARIS release Features • DVT-3090 Added Terminal plugin to Linux and MacOS distros • DVT-3441 Updated statically compiled dot and used by default in Linux distos Bugfixes • DVT-3793 Wrong syntax error on macro using defines in the argument replacement • DVT-3848 Errors/warnings on file specified through multiple symlinks are reported as out of the project • DVT-3849 File specified through multiple symlinks is incrementally recompiled as out of the project after platform restart • DVT-3856 Restore defaults on Internal builder page not consistent with the defaults at project creation time • DVT-3858 Pulse control specparam triggers syntactic error 3.1.8 (7 August 2012) Enhancements • DVT-2898 Updated viPlugin build • DVT-3841 Updated all plugins in distribution © AMIQ 476 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-3831 Hyperlink from default.build opens files specified with paths going through symlinks as gray files (outside project) • DVT-3830 File specified through multiple symlinks is incrementally recompiled as out of the project • DVT-3840 Exception thrown when using preprocessing (`ifdef, `ifndef, etc.) auto-complete • DVT-3842 Fixed argument passing in deprecated scripts 3.1.7 (2 August 2012) Performance • DVT-3818 Move resolve duplicates (RD) and resolve type declaration on assign (RNA) on extended checks Enhancements • DVT-3606 See file compilation index when inspecting errors in the build console Bugfixes • DVT-3764 Obsolete syntax errors might re-appear on reapply waivers • DVT-3805 Exception when selecting a closed project in the DVT perspective while Types View is open • DVT-3806 Exception when selecting the Types View in the DVT perspective before restore is done • DVT-3807 Logger exceptions occur when restoring a project right after platform startup • DVT-3816 'do { ... } while (...);' loop syntax breaks the formatting • DVT-3821 Move Resource Filters UI to DVT Section in project properties • DVT-3822 Macro invocation breaks compilation when provided with wrong escaped identifier not ending with whitespace (e.g `some_macro(\escaped_id,second_param)) 3.1.6 (24 July 2012) Enhancements • DVT-3568 Cannot see class declared in a package imported by an imported package • DVT-3710 HtmlDoc NaturalDocs - add support for bullet, bold & definitions lists • DVT-3711 HtmlDoc NaturalDocs - add support for headings • DVT-3712 HtmlDoc NaturalDocs - add support for code, text diagrams & images © AMIQ 477 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3787 Abort linting if ruleset file has syntactic errors. Bugfixes • DVT-3768 Resource Filters - recursive symlinks not visible in UI • DVT-3769 Wrong syntax error - init packed array of structs 3.1.5 (11 July 2012) Enhancements • DVT-3747 Add support for custom location on toolbar for Run Configuration buttons Bugfixes • DVT-3757 Fixed "Connect Ports" button • DVT-3767 Fixed linter rerunning failed checks twice 3.1.4 (10 July 2012) Enhancements • DVT-3490 Ability to avoid full build when importing a project, by restoring from a saved snapshot • DVT-3717 Performance issue on checking and auto-declaring signals connecting module instances • DVT-3718 Added support for non-standard missing timing check limits on $setuphold() syntax • DVT-3725 Ability to specify custom per-project location for the DVT database with +dvt_db_location flag in default.build • DVT-3734 Changed linter rule IDs from OVM to XVM • DVT-3736 Removed linter user_prefs and default_prefs files and flags • DVT-3737 Added linter manual_checks_status.xml to store the status of manual checks from GUI(replaces user_prefs) • DVT-3738 Added linter user_notes.xml to store the user notes form GUI (replaces user_prefs) • DVT-3739 Deprecated linter flag -ovm_prefs and replaced it with -linter_preferences Bugfixes • DVT-3716 No incremental compilation on non-default extensions even if file associations and content types are properly set © AMIQ 478 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3719 False non-existing port when using '.port(expression)' declaration syntax • DVT-3731 Waivers are not applied at project restore • DVT-3735 Fixed linter gen_rulepool_doc for UVM with -uvm flag • DVT-3746 Fixed argument testing problem in dvt_sv_lint_gui.sh • DVT-3752 Macro replacement fail when provided arguments are strings and first string contains the second argument name 3.1.3 (2 July 2012) Enhancements • DVT-572 & DVT-3328 Added a linter preference for considering NOT_APPLIED as PASSED, ERROR or NOT_APPLIED • DVT-1321 Added Reapply Failed Checks button in Linter GUI • DVT-3389 Added search icon in the generated HTML documentation • DVT-3403 Linter preferences tab will be grayed out when the preferences file is not writable • DVT-3569 Added support for non-standard syntax: "for (++count; count < 10; ++count)" • DVT-3574 Show only files with errors in Compile Order View • DVT-3584 Trace port connections - extend functionality to trace through simple assignments • DVT-3588 Added progress dialog for Directory Files Listing widget (Custom Dialogs) • DVT-3615 Customize the "u_<module name>" module instance name when using content assist (auto-instance) • DVT-3634 Added server name and license count on DVT License Info Page Bugfixes • DVT-3150 Match begin - end for "property - endproperty" does not work • DVT-3416 Hierarchy View presents implicit constructor • DVT-3505 Tooltip and proposals not working when no explicit import package directive • DVT-3579 HAL Builder - errors and warnings from the external builder are not visible in the problems view • DVT-3609 Resource Filters Dialog - ignore a directory linked to one of its parents • DVT-3616 Internal error when using +dvt_env+<var> without assigning a value • DVT-3630 Should only invoke internal builder when asking for project rebuild © AMIQ 479 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3646 Fix parameter declaration for non-ANSI header for refactoring • DVT-3647 Fix parameter declaration for ANSI header for refactoring • DVT-3648 Fix code generation for ANSI header port and port direction for refactoring • DVT-3651 Remove class property 'NON_STANDARD variable dimension in constant declaration' to avoid inconsistency • DVT-3658 Internal builder preference "Restrict '*.v' and '*.vh' files to Verilog-2001 syntax" does not work when using .vlog_top_files • DVT-3670 Mark occurrences stop working on the first cursor change when repeatedly deleting a line • DVT-3674 Fix instance list for refactor connect • DVT-3676 Path wildcard not taken into account when using only '?' • DVT-3692 Resource filters & CLI: -excluded folder doesn't show up in project, but it shows as unexcluded in resource filters • DVT-3694 Hyperlink to `included file jumps to another file with same name • DVT-3702 dvt_cli.sh documentation errata: excludes managed by DVT's Resource Filters UI are only those specified by projectRelativePath 3.1.2 (15 June 2012) Enhancements • DVT-2907 Document Compile Waivers. • DVT-3488 Support translate_on and translate_off pragmas All Build Directives. • DVT-3542 VCS.vlogan compatibility mode - add +define+VCS to list of built-in defines • DVT-3543 Warn deprecated directive usage in build config files • DVT-3393 Added event 'triggered' property • DVT-3554 DVT sanity check - check for available space in .eclipse location instead of "home" • DVT-3583 Instance Tree View - ability to dump to file the list of autodetected top modules Bugfixes • DVT-3350 Refactor rename/reference search potential match when having multiline comment right next to the element • DVT-3571 Under FC15 OS the -s option of dvt_cli.sh does not suppress all messages © AMIQ 480 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3575 dvt_cli.sh script documentation does not work • DVT-3582 Dynamic shortcuts - icon path support for environment variables • DVT-3585 Dynamic shortcuts - rename Accelerator > Shortcut • DVT-3595 Quick hierarchy on function/task doesn't shows correctly the implementation in the children classes 3.1.1 (6 June 2012) Enhancements • DVT-2550 DVT CLI - ability to specify project-relative paths with -map argument • DVT-3489 dvt_cli.sh create*Project commands should pick up existing build config files if no build config flags are specified (e.g. -f, -top, -test) • DVT-3540 Automatically refresh .dvt folder at full build • DVT-3546 dvt_cli.sh should automatically infer hostname of the running DVT instance • DVT-3553 Updated predefined projects build command • DVT-3615 Customize the "u_<module name>" module instance name when using content assist (auto-instance) Bugfixes • DVT-3460 Misc. error logs bugfixes: vcs & specman • DVT-3544 Generating HTML doc. using DVT naturaldocs - misc bugfixes • DVT-3547 dvt_cli.sh excludes are not taken into account at the initial refresh • DVT-3548 Implicit wires are not defined on incremental build if +dvt_extended_checks +auto not specified • DVT-3549 Pre DVT 3.1 backward compatibility of +dvt_init+vcs.vlogan ordering • DVT-3550 Switching from .*_top_files to default.build and back does not work (nothing is compiled) 3.1 (1 June 2012) Features • DVT-1020 Add port to module from selected field • DVT-2363 Code Templates View • DVT-2450 Create new toolbar button & keyboard shortcut from run configuration (more details here) © AMIQ 481 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2914 Trace Port Connections across the design hierarchy • DVT-3158 Module Diagrams • DVT-3221 Logging and debug functionality for Linux/Unix • DVT-3348 Connect Instances Across the Design Hierarchy • DVT-3361 Resource filters wizard (more details here) • DVT-3362 Create linked resources wizard • DVT-3401 Add a FIXME comment for the unconnected ports generated by connect ports and add port functionality • DVT-3436 Added dvt_updater.sh script for install/uninstall/update operations • DVT-3437 Ability to control the Extended Checks execution • DVT-3451 Some errors might not be reported in default.build when multiple project natures are activated • DVT-3476 Sync DVT CLI usage in script / application / user guide • DVT-3497 Add Module Diagrams to HTML documentation Enhancements • DVT-571 Changed the icon for Reapply Linting in Problems View • DVT-606 Configurable source formatter • DVT-654 Module instance connection by port name signals an error if the port name doesn't exist • DVT-1034 Signal non-existent module port in instantiation • DVT-1884 Dedicated predefined external builders for OVM/UVM/VMM • DVT-2471 UVM 1.1 predefined templates • DVT-2476 Support for design libraries and library mappings • DVT-2902 Add support for -work -libmap -top +nctop flags in project configuration • DVT-2916 Add support for implicit wires • DVT-2951 Waivers with DISABLED status can be applyed on passing hits • DVT-2952 Added wildcard support for linter waivers • DVT-2955 Added overall score in HTML Report for linter checks and hits © AMIQ 482 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2965 Project config files - multiple selection in dialog with proposals for wildcards matching multiple paths • DVT-2980 Integration with Altera Quartus II • DVT-3010 References (Shift+Ctrl+G) do not work on $time, $stime, $realtime, $printtimescale and $timeformat system tasks • DVT-3020 Add implicit net declaration for continuous assigments • DVT-3021 Detect too many positional port connections for a Verilog instance • DVT-3041 Refactoring Rename- user must be forced to review the changes when potential matches • DVT-3061 Add semantic error on continuous assigns to undeclared nets if `default nettype is none • DVT-3165 Add support for +dvt_skip_ext+.ext • DVT-3196 Check implicit port connections in instantiation • DVT-3215 Formatting preference for indenting multiline comments • DVT-3235 HTMLDoc - Get module description from file header • DVT-3254 Set "Always launch the previously launched application" as default in distro • DVT-3259 Suppress dvt.bat terminal in Windows • DVT-3263 Added right click on hit to add code waiver • DVT-3264 Added one line waiver pragmas for linter • DVT-3292 Formatting preference for line wrapping parameters : "Leave as is" • DVT-3313 Ability to use "Open with" dvt.bat in Windows • DVT-3364 Added apply-on property for waivers to define the scope on which the status is applied • DVT-3422 Formatting should be undone in case code was deleted or added during the process • DVT-3443 Added build console preference in Preference -> General -> Appearance -> Colors and Fonts -> DVT -> Console • DVT-3469 Vertical alignment using comma as a token • DVT-3484 Added support for name attribute in ruleset tag used in generated ruleset documentation • DVT-3486 Added information about the waiver path in the Verissimo linting configuration dialog © AMIQ 483 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-2833 Formatting issue for fork ... join structure • DVT-2885 Formatter issue with task...endtask • DVT-2888 Formatting issue with randsequence • DVT-2967 False recurrence detected in instance tree • DVT-3012 Formatter issue with case using arrays • DVT-3043 Formatting issue with "while... begin .. end" • DVT-3044 Formatting issue for nested case statements • DVT-3062 Waive should create a single logical AND match clause using path and message • DVT-3074 Formatting issue with "initial begin ... end" • DVT-3148 Formatting issue for "end else begin" group • DVT-3149 Formatting issue for "if ... begin ... end " group • DVT-3155 Need to double-tab to indent an end(task|function|module...) from beginning of line • DVT-3216 Autoindent after newline gives the wrong indent • DVT-3219 Line indent is decreased for words starting with "end" • DVT-3236 Autocomplete protected task => detcetorp • DVT-3255 Typing end in block selection mode behaves strangely • DVT-3268 Formatting issue for "disable fork" • DVT-3284 The entity "nbsp" was referenced, but not declared - sn 11 / sn_eref.xml • DVT-3294 Formatting issue for case with escaped id • DVT-3295 Formatting issue for multiline comment on a single line • DVT-3296 Formatting issue for "if ... else ... if ... if ..." • DVT-3297 Formatting issue for "case : {...}" • DVT-3298 Formatting issue for casez, casex, randcase • DVT-3299 Formatting issue for "always if begin end" • DVT-3303 Formatting issue for loops with label © AMIQ 484 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3304 Formatting issue for "{...}" • DVT-3320 Formatting issue for "input ... sequence" • DVT-3321 Formatting issue for line wrapping params • DVT-3336 Issue with "do while (lit.getSomething(name))" • DVT-3345 Formatting issue for if block (without begin) containing only one block • DVT-3374 DVT Auto-linked update on rebuild doesn't work when linked resources are changed • DVT-3383 Hyperlinks and autocomplete for modport tasks don't work • DVT-3385 Rules ARAI, ARMI,ARDI, and ARSI should accept more than a single factory creation call per type • DVT-3404 Rules ARAI, ARMI,ARDI, ARSI, UVM30a, UVM20, UVM15a should skip virtual classes • DVT-3405 Rules "ARAD Active Agent Has Driver", "ARAS Active Agent Has Driver Sequencer" should skip virtual classes • DVT-3406 Rules "ARAD Active Agent Has Driver", "ARAS Active Agent Has Driver Sequencer" should consider inheritance • DVT-3407 Rules "ARAS Agent has sequencer" and "ARAD Agent had driver" fail when the sequencer field is a parameterized type • DVT-3425 Rules "ARDI Driver Instantiation" and "ARSI Sequencer Instantiation" should accept both "is_active" and "get_is_active()" conditional expressions • DVT-3434 Autoindent replaces tabs with spaces • DVT-3435 Formatter fails on case block with nested begin end blocks • DVT-3450 Recompute port connection semantic errors on incremental build • DVT-3467 Formatting preference for vertical alignment tokens is greyed out • DVT-3470 Vertical alignment fails for trailing single line comment • DVT-3495 Formatting issue : Line wrapping comments should not split multi line comments • DVT-3499 Formatting region should keep starting line indent as reference • DVT-3508 Renaming a modport: "Unexpected error while checking new name" • DVT-3509 "Stop Current Rebuild Job" doesn't work when "Build Automatically" is enabled Usability © AMIQ 485 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3418 Clarify description of rule "CHSC coreboard Support" • DVT-3331 Clarify description of rule "OVM30b Virtual Interface Connection in Agent" • DVT-3333 Clarify description of rule "ARIO Active and Reactive Components" 3.0.10 (23 May 2012) Bugfixes • DVT-3322 Fixed "See all available licenses" bug when license source contains multiple servers • DVT-3428 VCS error filter matches too much text for DFLT_OPT warning message • DVT-3459 Fixed a race condition in the license client 3.0.9 (16 May 2012) Bugfixes • DVT-3249 External Builder error decorations are not updated on incremental build • DVT-3372 +systemverilogext+; +verilog1995ext+; +verilog2001ext+ should accept multiple extensions separated by + • DVT-3431 Internal builder preference "Restrict '*.v' and '*.vh' files to Verilog-2001 syntax" does not work • DVT-3435 Formatter fails on case blocks with nested begin-end blocks 3.0.8 (9 May 2012) Enhancements • DVT-2739 Enable internal builder console should be default on • DVT-3214 Disable incremental compilation of big files should be default on • DVT-3240 Memory cleanup issues on successive project rebuilds • DVT-3367 Support for 'local::id' reference inside a foreach loop • DVT-3368 Support for non-standard 'typedef enum package_name::id {...}' • DVT-3369 Support for non-standard empty 'case endcase' (no case item) • DVT-3371 Improved (fast and low memory footprint) alghorithm for searching -y and -v libraries and libraries content • DVT-3392 Refresh "dvt_build.log" file when build is done Bugfixes © AMIQ 486 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2195 Using a recursive define '`define A A' hangs the parser • DVT-2262 Misc. external tools console log filters problems • DVT-3255 Typing end in block selection mode behaves strangely • DVT-3365 "What's New" and "Report an Issue" buttons are visible in other perspectives • DVT-3366 Project Templates uppercase - lowercase conversion bug • DVT-3370 Multiline comment in macro call arguments is not taken into account • DVT-3375 HtmlDoc not generated when module instance tree throws NullPointerException • DVT-3382 Diagram wizard takes too much time to open when tens of thousands of classes are available • DVT-3386 Wrong syntax error when declaring parameterized classes without a default specialization 3.0.7.9 (29 April 2012) Enhancements • DVT-3324 Hierarchical identifier in modport port declaration support (non-standard) • DVT-3325 Optional integer vector type or identifier before packed dimension in enum base type declaration support (non-standard) Bugfixes • DVT-3155 Need to double-tab to indent an end(task|function|module...) from beginning of line • DVT-3216 Autoindent after newline gives the wrong indent • DVT-3219 Line indent is decreased for words starting with "end" • DVT-3314 Wrong syntax error reported on sequence assertion variable declaration • DVT-3315 When changing the top files sometime the auto-linked folder is not properly updated on the first build • DVT-3327 In argument files, some flags don't consider their argument: -file, -cm, cm_libs, cm_line, cm_tgl • DVT-3330 Hyperlinks, tooltips and autocomplete for local tasks don't work inside the class 3.0.7.8 (24 April 2012) Enhancements © AMIQ 487 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3112 Ignore backslashes in command files • DVT-3121 Command files: support -flag "several arguments here treated as one" or -flag 'some args' • DVT-3215 Formatting preference for indenting multiline comments • DVT-3285 Support for non-standard `ifdef, `ifndef, `elsif followed by a macro with parameters (e.g. `ifdef `macro(4)) • DVT-3287 Support for non-standard unsized dimension in a module or interface parameter assignment • DVT-3307 New argument file flag: +dvt_disable_collect_actionblocks • DVT-3308 -cuname should trigger error on invalid package name • DVT-3309 -cuname is not reset at the end of argument file • DVT-3311 Syntax error markers are not displayed at full build after reaching the marker limits Bugfixes • DVT-3280 Autoinstance preserving ports order and comments fails for multiline comments • DVT-3268 Formatting issue for "disable fork" • DVT-3291 Non-ascii characters trigger errors in argument files (.*_top_files etc.) • DVT-3294 Formatting issue for case with escaped id • DVT-3295 Formatting issue for multiline comment on a single line • DVT-3298 Formatting issue for casez, casex, randcase • DVT-3299 Formatting issue for "always if begin end" • DVT-3300 Wrong undefined class semantic error reported on usage when the class is defined using 'typedef class name' • DVT-3301 The replacement of __FILE__ macro should contain quote e.g. "NA.v" • DVT-3302 Add from Template replaces __FILE__, __LINE__ with FILE, LINE. • DVT-3305 Ctrl+H isn't updated with the text selection in the editor 3.0.7.7 (13 April 2012) Enhancements • DVT-2586 Support for mixed languages in DVT_CLI © AMIQ 488 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2852 Verilog builder doesn't go through all topfiles when it encounters too many syntax errors • DVT-2986 Add -eclipsespace flag for dvt_cli.sh, alias -eclipse_area to -eclipsespace • DVT-3109 dvt_cli.sh without -f option doesn't create the .vlog_top_files • DVT-3113 Add support for -F for dvt_cli.sh • DVT-3117 Add support for -sverilog and +v2k flags • DVT-3168 Add to default list of known extensions: .a, .o, .cc • DVT-3186 Add support for -mfcu -cuname flags (define a package from a compilation unit) • DVT-3198 Non-standard construction: using parenthesis around primitive instantiation output and inout terminals • DVT-3199 Reduce memory consumption after project close/delete • DVT-3200 Reduce time for error dispatching algorithm • DVT-3201 Added more debugging info in console • DVT-3212 Add -force flag for dvt_cli.sh importProject (replace existing project with same name) • DVT-3228 dvt_cli.sh - remove constraint that the project directory should exist apriori; create if it does not exist • DVT-3270 Add support for +systemverilogext+<ex> +verilog1995ext+<ext> flags in .vlog_top_files +verilog2001ext+<ext> • DVT-3271 Add support for -extinclude flag in .vlog_top_files Bugfixes • DVT-2851 Toggle mark occurences triggers exception when the active editor is not a DVT editor • DVT-2995 Ctrl+H doesn't remember option selection • DVT-3203 Fixed multiple NullPoinerExceptions in parser • DVT-3211 Sequence method call not recognized as property expression • DVT-3226 Incremental build not working sometime when undeclared modules are found in the design • DVT-3229 Multiple scanning of the same library file if -v <libfile_path> specified multiple times in topfiles © AMIQ 489 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3238 Duplicate module error reported when using -y directives to files that define more than one unresolved module 3.0.7.6 (30 March 2012) Enhancements • DVT-3120 Support for non-standard syntax: $fatal("string with %d and %d", one, two) misses first argument that should be a number • DVT-3122 Support for non-standard syntax @this.EVT[ hierarchical.id ] • DVT-3145 Imbricated expressions slows down or even hangs the parser Bugfixes • DVT-2814 PDF doc links from training labs are broken • DVT-3013 Multiple selection dialog on -F hyperlink in top_files although only one file specified • DVT-3072 Total number of problems reported in console view is different than total in problems view • DVT-3074 Format issue with "initial @ begin ... end" • DVT-3076 __FILE__ and __LINE__ get in the way of project templates • DVT-3110 Console log errors are not properly hyperlinked • DVT-3119 Total number of errors in console varies after successive builds • DVT-3133 When creating a linked resource to a folder, the compiled sources contained in that folder should dissapear from auto-linked on next build • DVT-3134 Removed default activation of ClearCase action set menu (use Dro.amiq.dvt.showClearcaseActionSet=true) • DVT-3142 Sometimes semantic errors might be reported before syntax errors • DVT-3143 Formatting issue for line wrapping bit values • DVT-3144 Formatting issue for assert ... else block • DVT-3147 Formatting issue for "clocking ... @ ... endclocking" • DVT-3151 Formatting issue for "case default " • DVT-3152 Formatting issue with multi line comments • DVT-3171 Copy full path on linked resource/virtual folder does not work 3.0.7.5 (16 March 2012) © AMIQ 490 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Enhancements • DVT-2795 Added an option for "Direct Associations" diagrams in HTML doc extraction (as collaboration is too cluttered) • DVT-2816 HTML Doc - show module instances with generate blocks as submodules • DVT-2817 HTML Doc - show functions and tasks within modules • DVT-2896 Added Cliosoft SOS plugin to distros • DVT-2992 DVT Project selector - shortcut (CTRL+SHIFT+Z) & simple list view of open DVT Nature projects • DVT-3060 HTML Doc - support .html files for 'Overview description file' • DVT-3073 Added JDT (Java Development Tools) plugin to distros • DVT-3074 Format issue with "initial @ begin ... end" Bugfixes • DVT-3059 HTML Doc - if 'user menu' is added, 'Finish' button is disabled • DVT-3063 Diagrams errors (dot executable invocation errors) during HTML Doc generation • DVT-3067 When adding new function arguments, module ports, class parameters the autocomplete shows them in the wrong order after incremental build • DVT-3070 New project from template - import all files under .dvt folder • DVT-3071 Fixed error when generating diagrams in a path with spaces 3.0.7.4 (8 March 2012) Enhancements • DVT-2997 Added Ctrl+Shift+A as duplicated key binding for "Toggle Block Selection Mode" • DVT-3049 Added "See available licenses" button in license page Bugfixes • DVT-3045 Trimming white space characters from license variables • DVT-3050 Fixed file license multiple initialization problem 3.0.7.3 (5 March 2012) Enhancements • DVT-2958 Added open dvt_build.log file build console button © AMIQ 491 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2959 Added cancel current rebuild job build console button Bugfixes • DVT-3029 Removed UseCompressedOops from 64 bits linux distros since it can cause segmentaion fault • DVT-3030 dvt.sh on MacOS doesn't invoke the right binary • DVT-3037 +dvt_keyword_set+<kwset> not working 3.0.7.2 (1 March 2012) Enhancements • DVT-2990 Add to "Compare with" menu the generic resource compare Bugfixes • DVT-3028 Fixed local license problem affecting a small set of features 3.0.7.1 (29 February 2012) Enhancements • DVT-2333 Added Glance plugin to distribution (incremental search in any view) • DVT-2535 Update Layers when opening a type with Quick Types View • DVT-2807 Search does not locate matches in unsaved files (when no incremental is done) • DVT-2981 Option to select where to save the build log file • DVT-2996 Ability to keyboard-collapse/expand the nodes in (quick) tree views using left/ right arrows Bugfixes • DVT-2833 Formatting issue for fork ... join structure • DVT-2885 Formatter issue with task...endtask • DVT-2888 Formatting issue with randsequence • DVT-2969 Splash and license settings validation sometimes start without using DVT functionality • DVT-2972 Refactoring a function/task etc. name doesn't modify the trailing identifier • DVT-2973 Refactoring a function name doesn't rename the implicit return variable • DVT-2974 Refactoring ports can break .* instantiations since it doesn't rename the local variables referenced in the .* assignment © AMIQ 492 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-3011 Wildcards in top files don't work under Windows • DVT-3012 Formatter issue with case using arrays • DVT-3014 Run configuration filters - ${file} var doesn't recognize Windows paths • DVT-3015 Preprocessing optimization issues when the defines are unset • DVT-3026 Updated ClearCase plugin to fix the NullPointerException 3.0.7 (13 February 2012) Features • DVT-48 Hyperlinks in argument files (.vlog_top_files, -f, etc.) • DVT-533 Setting system variables in DVT for full build • DVT-2312 Go to Next/Prev Problem • DVT-2903 Ability to specify project configuration for all languages in a single file • DVT-2906 Added Show Changed Preferences Dialog in Window menu Enhancements • DVT-1652 Compile Order View shows number of unique files (include may add duplicates) and skipped from optimized compilation • DVT-2419 Ability to use system variables in waivers • DVT-2453 Option to disable incremental build for large files • DVT-2455 Underscore "CamelCase"-like autocomplete for SV • DVT-2487 Sort problems in problems view by the creation time/reporting order • DVT-2514 Support for multiple DVT_PREDEFINED_PROJECTS system variables • DVT-2540 Added Javascript search in generated HTML documentation • DVT-2623 Show if a project has multiple natures & their names as a label decorator in navigator • DVT-2726 Highlight only the word when jumping to declaration • DVT-2750 Problems view - ability to right click and "Waive problems like this" • DVT-2753 Vertical alignment option should only align equivalent characters • DVT-2805 Show argument files (.f files) tree in console • DVT-2821 Option to change javadoc tags font color © AMIQ 493 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2831 Added visual feedback when running graphviz dot (UI is locked, dot errors not reported) • DVT-2832 Diagrams - ability to specify custom arguments for graphviz dot • DVT-2848 Allow waivers with no name • DVT-2856 Option to copy full path in Navigator • DVT-2857 Problems view - show extended help from right-click on problem (only nchelp supported) • DVT-2868 Rebuild triggers should be ignored if already building the project • DVT-2889 Jump to assignment instead of declaration • DVT-2891 OVM2: accept package_name::class_name as macro argument • DVT-2920 Unexpected token on bit[5] - non-standard construct • DVT-2924 Reapply waivers after Create Problem From waiver • DVT-2930 Dump build console output on disk • DVT-2925 Refine the problem waiving message reported in the Internal Builder console (explicitly specify waiving) • DVT-2938 & DVT-2934 Select top module - if more than 10 modules open a filtered selection list • DVT-2944 Limit max number of problem markers per problem category and severity to 1000 • DVT-2948 Report only first 20 errors in DVT Build Console and the total number of errors • DVT-2950 Show the instance scope in status bar Bugfixes • DVT-1606 HtmlDoc class constraints - "extern" not visible • DVT-2421 References for system tasks do not work • DVT-2352 Add $strobe, $monitor, $fopen, $fdisplay, $fstrobe $fmonitor and $fwrite in SV auto complete • DVT-2399 Do not show DVT_PATCH in macros view • DVT-2472 Autocomplete for .triggered does not work when sequence instance has arguments • DVT-2473 Autocomplete and hover for sampled value functions ($rose, $past, etc) doesn't work © AMIQ 494 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2475 Autocomplete for $display does not work inside initial statement • DVT-2485 Autocomplete and hover for random number system functions and methods doesn't work • DVT-2486 Autocomplete should not add () to sequence methods when they have no arguments • DVT-2559 Hyperlink and hover on cast expression do not work • DVT-2576 When creating a new file point out that the empty template can be customized just like any other • DVT-2742 Instance tree misc bug fixes • DVT-2748 Formatting the source sometimes makes the cursor jump to another position • DVT-2820 Case selection on enumerated types can’t autocomplete for the case item values • DVT-2892 Hyperlink on macro defined after the place where it is used inside another macro definition is not working • DVT-2893 OVM 30b - accept "this." in front of monitor or virtual interface field • DVT-2894 Syntax error when using direction, net and data type for module port • DVT-2913 Fixed deadlock on workspace when a new project is created • DVT-2926 Hyperlinks in project configuration files should open dialog with proposals for wildcards matching multiple paths • DVT-2936 Html Documentation 'getDeclarationFilePath()' exception • DVT-2923 Updating markers for 25K files with problems hangs the UI • DVT-2939 Fail to create auto-linked files for network mapped files in Windows • DVT-2949 New file wizard - new file's name changed to "new_file" 3.0.6.6 (23 January 2012) Bugfixes • DVT-2877 Several exceptions thrown when closing a project • DVT-2881 Crash on Windows platform when outline view linked with editor is active 3.0.6.5 (17 January 2012) Enhancements • DVT-2849 Accept and signal non standard construction: inside expression in constant expression © AMIQ 495 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2854 Ignore known extensions of other languages in top files file when +disable_ext is on; +disable_ext+all disables all extension checking • DVT-2865 Enhance problem management performance on full build Bugfixes • DVT-2855 $recovery should accept notifier, timestamp_condition, timecheck_condition, delayed_reference, delayed_data optional arguments • DVT-2859 Using defines for formatted 4'd`CM_MAX_NUM_INV_PORTS) numbers triggers false error (e.g. 3.0.6.4 (10 January 2012) Enhancements • DVT-2812 Added support for mixture of `" and " in the macro text Bugfixes • DVT-1709 Project Statistics freezes the GUI and cancel doesn't work • DVT-2809 Add to top files should make sure there's a newline before the appended filename • DVT-2810 Parse error on assert property (prop_name(alfa, (posedge(beta)))); • DVT-2813 Wrong report of undeclared macro in macro strings (e.g. `"`UNDECLARED`") • DVT-2844 Too many open files exception when loading 1000s of empty files 3.0.6.3 (27 December 2011) Enhancements • DVT-2352 Added $strobe, $monitor, $fopen, $fdisplay, $fstrobe $fmonitor and $fwrite in SV auto complete • DVT-2757 Added support for -file in .vlog_top_files • DVT-2802 Chance loading message for library files in console (e.g "scanning/loading library file") • DVT-2806 Improved recovery when missing macro definitions Bugfixes • DVT-2421 References for system tasks do not work • DVT-2399 Do not show DVT_PATCH in macros view • DVT-2472 Autocomplete for '.triggered' doesn't work when sequence instance has arguments © AMIQ 496 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2473 Autocomplete and hover for sampled value functions ($rose, $past, etc.) doesn't work • DVT-2475 Autocomplete for $display doesn't work inside initial statement • DVT-2485 Autocomplete and hover for random number system functions and methods doesn't work • DVT-2486 Autocomplete should not add () to sequence methods if they have no arguments • DVT-2559 No hyperlink and hover on cast expression • DVT-2680 Autocomplete inside xxx.randomize() with {...} block doesn't take into account the xxx scope • DVT-2697 UVM53 - accept calls for uvm_config_db#(uvm_object_wrapper)::set() instead of set_config_* • DVT-2776 Autolinked resources are no longer removed if autolink flag is unset • DVT-2783 Too many potential matches in a design, hyperlinks not working (usually ports on component instantiation) • DVT-2794 Deadlock when refreshing during a refactoring operation • DVT-2797 Right-click > Add to top files breaks lines on colon ':' character • DVT-2798 NullPointerException when warnings reported outside project • DVT-2800 Defines from -v compiled file are not seen by the -v compiled files that follows 3.0.6.2 (19 December 2011) Enhancements • DVT-2778 Added a black DVT Theme • DVT-2793 DVT_PREDEFINED_PROJECTS_TARGET predefined projects environment variable for Bugfixes • DVT-2777 Fixed DVT Theme selection dialog filter 3.0.6.1 (12 December 2011) Enhancements • DVT-2727 Search for references takes too much time on big environments (e.g. 20s for 5k files) • DVT-2740 Prepacked distro performance increased due to "-Xverify:none" vmarg © AMIQ 497 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2741 "Show heap status" activated by default in prepacked distros • DVT-2749 Adjust the error/warning message prefix to reflect the +dvt_keyword_set setting • DVT-2769 Parser performance issues when files containing preprocessing (`define, `ifdef) are included multiple times over big environments (over 5K files) Bugfixes • DVT-2702 DVT CLI ListCompiledFiles should skip library topfiles • DVT-2720 Issues on collecting the comments in SV modules, programs and interfaces • DVT-2735 Autocomplete doesn't always work when extending parameterized classes • DVT-2745 OVM/UVM field editor does not open • DVT-2747 Files not included in top files are compiled as Verilog (default must be SystemVerilog) • DVT-2762 External builder exception - Variable references empty selection • DVT-2763 Exception: Attempted to beginRule that does not match outer scope rule • DVT-2768 Formatter inserts multiple newlines on Windows 3.0.6 (1 December 2011) Features • DVT-642 Add .vlog_top_files support for multiple "instructions" on a single line like -y <path> +libext+.v +libext+.sv • DVT-1179 Support for wildcards *.v, *.sv etc. in top files Enhancements • DVT-517 Vertical alignment code formatting option • DVT-1248 Autoformat for preprocessing (ifdef, else, define etc) • DVT-1344 Code Formating - Preserve spacing on signal declarations, assignments etc. • DVT-1350 Do not allow tabs in the editor (copy/paste, using templates etc.) • DVT-1640 Format keyword "begin" on a new line or not • DVT-2179 Perform out of sync check before search and ask for refresh • DVT-2311 Preferences for autoinstance format (port connections and parameters alignment) • DVT-2330 Hyperlinks for progress log in Internal Builder Console © AMIQ 498 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2335 Filter for split ncsim messages in external tools console • DVT-2338 A drop-down list to select from top modules in the Instance Tree View • DVT-2391 Format - Option to preserve comment position if starting at index 0 • DVT-2400 Formatting of parameters : leave as is, each parameter on a new line, all parameters inline • DVT-2401 Formatting preference for line wrap • DVT-2402 Formatting preference for indenting preprocessing lines • DVT-2418 Parser performance improvement (memory footprint & speed) • DVT-2412 Full build console - show start/end of the compiled file • DVT-2449 New custom dialog - drop-down with files from a directory • DVT-2488 HtmlDoc - Automatically detect and apply JavaDoc/NaturalDocs formatting • DVT-2494 Prompt to save dirty files when launching the GUI linter • DVT-2496 Updating error/compiled/ignore properties on resources takes a long time • DVT-2500 Extended help for external builder logs (for IUS filters) • DVT-2532 Overwrite MALLOC_CHECK_=1 env variable to avoid crashes • DVT-2549 Exclude resources using DVT CLI at project creation • DVT-2563 Report reapply waivers time in DVT Build Console • DVT-2565 Optimize algorithm for solving workspace resources • DVT-2582 Expand/collapse all in Compile Order View • DVT-2605 Add +dvt_keyword_set+ switch in .vlog_top_files • DVT-2617 Support custom eclipse.ini in dvt_cli.sh • DVT-2644 Edit DVT Waivers button in Problems View (easy way to start a waivers file) • DVT-2647 Library search when using -y and -v improvements • DVT-2648 Add support for +librescan / -librescan flags in .vlog_top_files • DVT-2684 Changing the location of a file outside project requires 2 builds to correctly autolink the file Bugfixes • DVT-47 Format source fails after third 'assert' © AMIQ 499 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-50 Format source → indentation issue • DVT-1093 Format source issue when formatting regions • DVT-1723 Format source indentation issue after `uvm_ (format, autoindent) • DVT-2307 Console hyperlinks get opened with wrong editor • DVT-2370 False DUPLICATE_COVERPOINT on incremental build • DVT-2404 Removed the project context menu -> Source -> Format option that breaks .project • DVT-2408 Verilog formatting fails on "covergroup with function sample" • DVT-2474 Filter library code problems for NON_STANDARD check in OVM/UVM Compliance • DVT-2501 Remove duplicate top files algorithm is non-linear (thousands of top files lock the platform) • DVT-2502 Tool bar section title for "What's new" & "Report an issue" buttons • DVT-2537 Exception thrown when canceling a DVT Custom Dialog started by an external builder • DVT-2570 EmptyStackException in scope management when using linked resources and symlinks • DVT-2580 Insert tabs for spaces does not work after format (still uses spaces) • DVT-2581 Internal builder syntax warning checkbox not taken into account • DVT-2592 Open associated type hyperlink - module recognized as field • DVT-2609 Verilog Formatter inserts spaces when "Insert tabs for spaces" is disabled • DVT-2620 Rename 'include/import tree' & 'load order' to 'compile order' • DVT-2630 Fixed parser library scan for -y, -v, +librescan / -librescan flags • DVT-2700 Missing scroll bar on predefined projects list • DVT-2704 Wrong errors/warnings reported inside inactive "`ifdef ... `endif" code blocks 3.0.5.5 (21 November 2011) Bugfixes • DVT-2583 StackOverflowError in resolveOtherParams() • DVT-2585 Preprocessing identifier starts with numeral (e.g `define 1_TEST) © AMIQ 500 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2593 Files with unknown extensions are not ignored in .vlog_top_files • DVT-2598 Cannot create new native thread (OutOfMemoryError) after full build 3.0.5.4 (8 November 2011) Enhancements • DVT-2215 Option for dvt_cli.sh to import workspace settings • DVT-2372 Option for dvt_cli.sh not to exit when starting dvt.sh • DVT-2420 Autocomplete for a macro should automatically insert newline after the macro call only when the replacement also contains newline • DVT-2547 DVT CLI createProject - possibility to specify project name • DVT-2573 Ability to specify how long DVT CLI should wait for DVT to start (-timeout flag) Bugfixes • DVT-2572 DVT Build timeout preference cannot be set by dvt.ini 3.0.5.3 (17 October 2011) Enhancements • DVT-2454 Document how to expand aliases in run configurations and change default run command to interactive mode • DVT-2458 Save all dirty editors before launching a run configuration Bugfixes • DVT-2441 DVT does not accept (* probe_point *) in module input/output declaration • DVT-2460 Could not infer project from selection when there is selection but no focus • DVT-2495 Replace all in a large file takes a very long time • DVT-2499 NullPointerException in DVTMarkerFactory 3.0.5.2 (23 September 2011) Enhancements • DVT-2290 Rename "Generic" run configuration to "DVT Generic" Bugfixes • DVT-2315 Windows - duplicate module error when opening a topfile specified with full path and lowercase device ID © AMIQ 501 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2422 Long build occurs on repeated sequence_and_expression • DVT-2425 NullPointerException when warnings reported in files outside project • DVT-2427 Lexer error on `elseif without expression 3.0.5 (10 September 2011) Features • DVT-1852 Rebuild button for internal builder only • DVT-1979 DVT color theme support for editors and GTK widgets and a predefined "Dark" theme Enhancements • DVT-183 Open the OVM/UVM Field Editor on autocomplete in registration area • DVT-1182 System variables for External Builders • DVT-1966 Improved argument parsing for dvt_cli • DVT-2177 Hyperlink for jumping to the "associated type" of an element • DVT-2309 Enhance "Nothing to build" warning message (when rebuilding a project with no sources specified) • DVT-2314 Support for shortcuts for each rebuild kind (all/internal/external) • DVT-2336 Option to automatically save editors on rebuild Bugfixes • DVT-2168 Wrong order in Layers View (ancestors should be first) • DVT-2308 Add from template does not work in Windows • DVT-2310 Build Console does not close when closing a Project • DVT-2341 Add to top files - relative path problem in Windows ("\" -> "/") 3.0.4.4 (9 September 2011) Bugfixes • DVT-2366 Support for non-standard package scope used in foreach loop variables • DVT-2384 False DUPLICATE_VARIABLE error (wrong macro expansion) • DVT-2390 Parse error on sequence expression ##delay (CRS [ *1:$ ]) 3.0.4.3 (29 August 2011) © AMIQ 502 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Enhancements • DVT-2210 Duplicate semantic errors for enum literals • DVT-2337 Refactoring: option to preserve name collisions on rename • DVT-2343 Autoinstance: prepend u_ to instance name • DVT-2344 Autoinstance: The parameters name should be copied into the connector, instead of the default value • DVT-2345 Autoinstance: module parameters each have their own line Bugfixes • DVT-2226 A macro defined in a file included several times should not be duplicated in autocomplete • DVT-2280 Support for non-standard 'cell' keyword used as identifier • DVT-2297 Search for references sometimes fails in symlinked files • DVT-2327 Module connection problem - false undeclared signal error when signal is declared inside a generate block • DVT-2342 Autoinstance doesn't work for computed params 3.0.4.2 (4 August 2011) Bugfixes • DVT-2267 Text placed under an inactive preprocessing block should not trigger syntactic errors 3.0.4.1 (3 August 2011) Bugfixes • DVT-2244 References/rename not working on symbolic link files that are linked resources in Eclipse • DVT-2256 Fixed problems related to readlink usage in Solaris scripts • DVT-2257 Changed "Xmx" memory settings to 1024m for 32bit and to 2048m for 64bit distros 3.0.4 (30 July 2011) Deprecated • DVT-2239 Scripts: eclipse.sh, run_gui_mode.sh, run_batch_mode.sh are marked for deprecation; use instead: dvt.sh, dvt_sv_lint_batch.sh, dvt_sv_lint_gui.sh © AMIQ 503 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Features • DVT-1134 Option to periodically save dirty editors Enhancements • DVT-72 Refactoring scripts do not perform automatic checkout when using rev. control • DVT-81 Refactoring potential matches - quick filter/(un)check all • DVT-1823 The methodology (ovm_*, uvm_*, vmm_* etc) code templates available as file content code templates • DVT-1858 Linter right click on hit or check to waive • DVT-2012 Refactoring scripts are not performing changes inside DVT Auto-Linked folder • DVT-2048 Run Configurations dialog/Quick Run working set filtering options • DVT-2064 HtmlDoc misc enhancements • DVT-2068 Hierarchy view - quick search for members • DVT-2086 Template parameters are proposed in the order from template.config • DVT-2088 Ability to choose a project template from $PREDEFINED_PROJECTS when creating a new project from template • DVT-2105 Enable tool-tips when 'ALT' key is pressed • DVT-2107 Preconfigured HAL external builder • DVT-2152 Quick Filter code templates by name in preference pages • DVT-2178 When rename refactoring has potential matches - warn in the first page of the wizard • DVT-2207 HtmlDoc assertions in modules, interfaces and programs • DVT-2219 Multiple defines on a single line top files support (e.g '+define +DEF_1+DEF_2+DEF_3') • DVT-2159 Show workspace location in title bar • DVT-2225 Support for 'x_parameter_id_x' templates • DVT-2231 Add HINT predefined task tag • DVT-2235 Show builder errors in console with hyperlink Bugfixes • DVT-2033 Macro expand and tooltip don't work after project restore © AMIQ 504 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2047 Project delete and click macros view pops up a NullPointerException • DVT-2106 Hover shows wrong macro comment on the first define if macro is redefined • DVT-2118 DVT CLI failed to open files in the default text editor • DVT-2119 Adding multiple files to ignore list only adds the first file in the list • DVT-2128 Quick function hierarchy jumps to wrong location • DVT-2133 Inconsistency between the algorithm that reports the UNDECLARED_MODULE issue and the one that computes the files to be compiled using -y and +libext directives • DVT-2162 Help > DVT Quick Help broken links fixed • DVT-2170 A macro defined in a file included several times should not be duplicated in Macros View • DVT-2180 No tooltip on queue size() predefined method when queue's type is a type parameter • DVT-2205 Verilog Quick Import View filtering does not jump to first match • DVT-2209 Custom Dialog File/Directory choosers fail to open if no "question" is specified 3.0.3.3 (22 July 2011) Enhancements • DVT-2081 dvt_cli.sh should also look for /bin/nc and /usr/bin/nc by default • DVT-2163 "table" used as an identifier, though it is reserved (accepted by some simulators) Bugfixes • DVT-2181 Potential matches are not reported in search/refactoring • DVT-2185 A tooltip with long non-whitespace sequences (1000s of characters) freezes the GUI 3.0.3.2 (14 July 2011) Bugfixes • DVT-2145 Avoid using resources in non-accessible state • DVT-2146 Close all editors when starting DVT with run_gui_mode.sh script to avoid having empty editors • DVT-2147 Accept non-standard construction: expression_or_dist between parentheses in constraint block © AMIQ 505 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-2155 Changed default initialization of preferences to avoid startup crashes in high load CPU scenario • DVT-2156 Fixed FlexLM Exception "ArrayIndexOutOfBoundsException" when using invalid license sources 3.0.3.1 (8 July 2011) Bugfixes • DVT-2084 Automatically DVT_LICENSE_FILE=FLEXLM infer DVT_LICENSE_VERSION when • DVT-2088 Ability to chose a project template from $PREDEFINED_PROJECTS when creating a new project from template • DVT-2123 Multiline comment inside macro definition • DVT-2134 Fixed "Internal FlexLM Error" after waking up from idle 3.0.3 (1 July 2011) Enhancements • DVT-1688 Switch for turning off tooltips • DVT-2067 Support for rawtokens lib (-y, -v, +libext+) included files Bugfixes • DVT-2009 Defined value missing in `define usage tooltip • DVT-2034 Refactoring/references does not work with multiple macro define/undefs • DVT-2035 Accept non standard construct attribute (* const integer foreign = "SystemC"; *); • DVT-2041 All preprocessing directives should accept 0 or more white-spaces between '`' and text (e.g "` ifdef A {};") • DVT-2065 Error when using multiline comment after number format (e.g. 32'h/ *ffff_ffff*/1324_5678) • DVT-2063 Flag integer packed arrays as non-standard 3.0.2.1 (27 June 2011) Bugfixes • DVT-2046 References - wrong indexing on incremental build when `include in the middle of a file 3.0.2 (17 June 2011) © AMIQ 506 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Enhancements • DVT-212 Added Eclipse Marketplace Client to distribution • DVT-254 Refactoring for functions and tasks should be performed in all superclasses/ subclasses • DVT-1485 Refactoring for constraints should be performed in all superclasses/subclasses • DVT-1657 Quick Types & Import Views - independent of editor • DVT-1909 Semantic search/references performance improvement • DVT-1922 Predefined Project Wizard - notify on IOException when copying files • DVT-1946 "file content" template kind available on autocomplete • DVT-1959 External tools console links jump to resources in current working set • DVT-1998 Run Configurations should show quoted arguments when printing the executed command • DVT-2010 Predefined project wizard - option to override target directory • DVT-2021 Updated linux JRE in distribution to version 1.6.0u26 to avoid compiler crashes • DVT-2022 DVT Custom Dialogs - when checkboxOnValue or checkboxOffValue are specified, checkbox output should not contain the id • DVT-2023 Updated Clearcase plugin to the latest version in distribution Bugfixes • DVT-1942 HtmlDoc misc bugfixes • DVT-1981 Questa 'Fatal' error filter added • DVT-1987 DVT fails to find modules/interfaces located in -v library files • DVT-1993 DVT CLI importProject takes project name from project folder instead of .project • DVT-2014 Capitalization of variables like __smallBigMedium__ when using template generation 3.0.1.1 (3 June 2011) Enhancements • DVT-1403 .vlog_top_files : -y -v demote to warning • DVT-1573 Quick run documentation • DVT-1870 Custom dialogs documentation © AMIQ 507 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-1811 Fixed editor macro expansion on expanding undeclared macros if selected together with defined macros • DVT-1696 Refactoring - 'Apply a refactoring script' typo • DVT-1874 Templates - Move these are global templates at the start of the dialog • DVT-1947 UVM/OVM field editor StackOverflowError • DVT-1948 Fixed parser error on parameter p = (0:1:2); • DVT-1954 Wrong "Number of macro instance parameters 1 not equal to macro define parameters 0" error reporting when parsing IUS xbus example • DVT-1956 Custom dialogs: SWT/XML Preview does not work for files outside of any project 3.0.1 (27 May 2011) Enhancements • DVT-1290 Signal undeclared wires as errors when `default_nettype is none • DVT-1383 Added parser support for optional compiler directives: `default_decay_time, `default_trireg_strength, `delay_mode_distributed, `delay_mode_path, `delay_mode_unit, `delay_mode_zero • DVT-1762 DVT Custom Dialogs - configurable output format • DVT-1763 DVT Custom Dialogs - support for Combo and List widgets • DVT-1830 DVT Custom Dialogs - allow freeform IDs • DVT-1778 Add support for createSVProject to DVT CLI • DVT-1827 HtmlDoc - add import/export dpi/dpi-c tag to dpi functions and tasks • DVT-1828 HtmlDoc - strike-through font for deprecated methods • DVT-1886 HtmlDoc - new navbar category with references to external documentation (index.html) • DVT-1888 Macro expansion for redefined macro/defines • DVT-1923 Hyperlink for redefined macro/defines jumps to wrong (last) location instead of the most recent definition before the use • DVT-1895 HtmlDoc - optional references to external doc index.html on navbar Bugfixes © AMIQ 508 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1738 Ask for project rebuild after changing comment extraction preferences • DVT-1739 Add 0 (zero) to default values of "Skip # lines above" combo box in comment extraction preferences • DVT-1820 HtmlDoc - default values for function arguments • DVT-1825 Refactoring for clocking blocks is not permitted • DVT-1882 HtmlDoc - broken links in diagrams fixed • DVT-1915 context.xml file added to help system 3.0.0 (13 May 2011) Features • DVT-1706 Add parser and views support for checker construct Enhancements • DVT-1587 New quick help menu added (Help -> DVT Quick Help) • DVT-1829 Added assert/assume/cover/restrict property in Outline View • DVT-1841 Requesting using uvm_*_param_utils on parameterized classes in UVM2, UVM5, UVM10 linter checks and ovm_*_param_utils on parameterized classes in OVM2, OVM5, OVM10 linterchecks checks • DVT-1846 Generate list of loaded files (and their directories) from DVT using the CLI • DVT-1850 Expand `if[n]def arguments if they are defined as macros (non-standard construct) • DVT-1867 Option to set the path to Emacs executable Bugfixes • DVT-1715 Remove lint configuration when the associated project is removed • DVT-1826 Refactoring allows renaming to same name if the text field is modified; the actual rename is done with garbage • DVT-1837 Override methods - add 'virtual' keyword for virtual functions • DVT-1840 Fixed parse error: clocking event in front of a property expression • DVT-1847 DVT viPlugin starts automatically with Eclipse activating DVT • DVT-1849 Erroneous macro expansion on macro call with macros as parameters 2.9.9.2 (6 May 2011) © AMIQ 509 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Features • DVT-1756 Added OEM viPlugin in the prepacked distribution and update site Enhancements • DVT-1618 & DVT-1735 Remove duplicate files from .vlog_top_file - made optional • DVT-1766 Added FlexLM IDLE Timeout • DVT-1810 Support non-standard construction - using select inside foreach index Bugfixes • DVT-159 Rules with DISABLED status are skipped in linter • DVT-1815 +define+ in top files is broken if "remove duplicate top files" is enabled in internal builder preferences 2.9.9.1 (4 May 2011) Enhancements • DVT-1655 HtmlDoc - Hide internal signals of an interface in the HTML documentation • DVT-1813 Add .inc as default verilog extension Bugfixes • DVT-1806 HtmlDoc - Tasks overview broken links fixed 2.9.9 (30 April 2011) Enhancements • DVT-112 Autocomplete: assign to a net is illegal in always blocks, do not show irrelevant signals • DVT-676 Semantic error on package import directly in a class scope • DVT-1433 New preference for auto-instance - preserve order of ports & comments • DVT-1440 External Tools - option to link to files from Console by short name • DVT-1571 New file wizard allows changing the templates parameters • DVT-1701 Expose -user and -configuration in eclipse.sh and other utilities • DVT-1737 User-defined primitive ports were added to Outline, Hyperlink, Content Assist • DVT-1729 Autoinstance for user-defined primitives added • DVT-1751 Add CSV editor to prepacked distribution © AMIQ 510 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1779 Add support for openFile to DVT CLI • DVT-1793 HtmlDoc - Support for the JavaDoc standard tag @param (instead of @arg). • DVT-1794 HtmlDoc - Option added: generate documentation only for API under the project root • DVT-1795 HtmlDoc - Linking with external documentation sources Bugfixes • DVT-159 Disable rule from waiver (not filtering the results) • DVT-1480 Fixed wrong parser error message when named port connection in module instance ends in a comma • DVT-1593 Fixed wrong references of a function declared without parentheses • DVT-1703 Correct code template: for a from b downto c step -1 => for a from b down to c • DVT-1750 Linter progress monitor shows different names 2.9.8 (15 April 2011) Features • DVT-960 & DVT-1397 & DVT-1697 JavaDoc and NaturalDocs (HTML documentation) • DVT-1497 User-defined dialogs for Run Configurations Enhancements • DVT-1455 Skip duplicate files in .topfiles (as physical path) • DVT-1543 Better progress reporting for Html documentation • DVT-1687 Add to Html documentation some user-defined links in navigation frame • DVT-1698 Added user-defined primitives to the internal dictionary, Types View, Outline, Content Assist, Instance Tree, Hyperlink and Layers view • DVT-1705 Added support for named generate blocks in hyperlink and content assist Bugfixes • DVT-1653 Show the kind of entity in tooltips for classes, modules, programs, interfaces • DVT-1662 Removed "***INFO Parsing library ..." messages in eclipse started console • DVT-1663 Show/hide internal builder console, should not require a rebuild • DVT-1665 Internal builder console activated on incremental compilation © AMIQ 511 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1671 Unable to use non-writable spelling dictionary • DVT-1722 Fixed parse error in more than two attribute instances 2.9.7.1 (1 April 2011) Enhancements • DVT-1389 Show module references in HTML documentation • DVT-1477 Content assist port proposals when instantiating an interface Bugfixes • DVT-1596 When function/task override by autocomplete cursor jumps to another part of the file • DVT-1602 Accept and signal non-standard construction static const in declaration outside classes • DVT-1605 Accept and signal non-standard placement of signing before data type in function declaration • DVT-1609 DVT_LICENSE_VERSION=1 not always shown in license not found pop-up 2.9.7 (25 March 2011) Features • DVT-546 FlexLM support • DVT-1173 Quick access to run configurations (Quick Run) • DVT-1591 Option to show internal compilation log in console Enhancements • DVT-1085 Linter license checking in GUI mode and option to wait (queue) for licence • DVT-1132 Internal builder options serialized in .dvt folder • DVT-1288 Class constraints in HTML Documentation • DVT-1351 Rebuild project using shortcut key (Ctrl + Alt + R) • DVT-1386 Interfaces and Modports in HTML Documentation • DVT-1435 OVM/UVM Field Editor - UVM_REFERENCE flag added • DVT-1439 OVM/UVM Field Editor - UVM_UNSIGNED by default for "bit", "reg", "logic", and other unsigned types • DVT-1498 Report an Issue - persistent user data and non-modal window © AMIQ 512 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1508 Exclude API from HTML Documentation based on path filters • DVT-1520 Added "*.sva" extension to default SystemVerilog files extensions list • DVT-1535 Accept non-standard construction: identifier followed by bit-select or part-select without parentheses in delays • DVT-1568 Switch to the new license features Bugfixes • DVT-1245 Non-standard semantic errors not shown in the linter • DVT-1366 UVM library in VCS does not work with the UVM preference page • DVT-1393 Strip off asterisks and start/end of comment (/****\ ... \****/) • DVT-1418 Dictionary not working with system variables • DVT-1425 Incremental performance degradation (memory) on big environments (~3000 types) • DVT-1456 Constructors can be referenced in the override menu • DVT-1496 DVT Auto-Linked should point to symlink instead of physical path when working with SOS database • DVT-1501 HTML Doc Generator only exports public class members • DVT-1503 Add from template - attribute name update in preview panel when duplicate file error • DVT-1505 Predefined Projects - IUS filters set by default • DVT-1512 Types Wiew Filter - Show UVM Types on last UVM version • DVT-1567 Content assist infinite loop if closing bracket has no corresponding open bracket e.g "list 0].^" • DVT-1580 Refactoring/references of _name triggers false possible matches for identifiers like some_other_name 2.9.6.9 (1 March 2011) Features Enhancements • Fixed UVM15b rule for UVM 1.0 • Removed SQPT statistic from UVM 1.0 (not anymore relevant since `uvm_sequence_utils macros are deprecated) © AMIQ 513 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com Bugfixes • DVT-1426 UVM-INFO filter fixed • DVT-1488 Content Assist constructor override 'return super.new()' not alowed 2.9.6.8 (26 February 2011) Features • DVT-560 Shortcut to select identifier at cursor (Shift + Alt + Up Arrow) • DVT-1073 Signal semantic warnings for non existing instantiated components Enhancements • Adjusted UVM Compliance checking for UVM 1.0 • DVT-1144 Added semantic checks for duplicate declarations of packages, modules, programs, interfaces, covergroups, events, module and interface instances, named blocks and typedefs • DVT-1280 Project Statistics optional full build before collecting information • DVT-1292 Show the module instance tree in the HTML Documentation • DVT-1391 Preference to control new lines before doc extraction • DVT-1393 Strip off asterisks and start of / end of comment • DVT-1395 Document structure fields in HTML Doc • DVT-1396 Document enum fields in HTML Doc • DVT-1476 Check for undeclared signals also in instances declared in interfaces Bugfixes • DVT-1387 Modules and Interfaces should not be associated with package "none" in HTML Documentation • DVT-1390 Doc extraction for comments on the same line • DVT-1415 UVM11 compliance check fails on uvm_ref_flow_1.01ea • DVT-1422 Parse error on 'const A a = new;' used in classes • DVT-1431 Single "report an issue" instance • DVT-1467 Comments are extracted erroneously on enums • DVT-1481 Assert comments are not collected © AMIQ 514 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1482 Hyperlink/tooltip/refactoring is wrong on assert having same name as a function • DVT-1484 Inline comment extraction doesn't work properly for function with arguments 2.9.6.7 (31 January 2011) Features Enhancements Bugfixes • DVT-1378 UVM_INFO filter fixed • DVT-1379 IUS Stacktrace filter fixed 2.9.6.6 (27 January 2011) Features • DVT-86 Override functions GUI • DVT-1166 Support for adding Template Components Enhancements • DVT-150 Report lining alive during long-running checks • DVT-944 Jump between macro parameters using tab when macro autocomplete is invoked (similar with function arguments) • DVT-1136 Change file permission dialog for refactoring • DVT-1279 Implement/override - autocomplete contribution • DVT-1280 Project Statistics performs a full build before collecting information • DVT-1297 Pack license status application in DVT release • DVT-1377 Ability to cancel linting during long-running checks • DVT-1384 Preferences for customizing the color of TODO markers • DVT-1385 New File Wizard - More New File Types - based on templates • DVT-1401 Non-standard syntax: solve a before b hard Bugfixes • DVT-67 Show only static functions/fields when calling members of a class using "::" operator • DVT-1183 Autocomplete for module ports should show ports only © AMIQ 515 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1262 Fixed unrecognized Questa error message (external builders) • DVT-1271 Editor changes file permission on RO file to 600 instead of preserving the permission for group and other • DVT-1302 Autocomplete auto-instantiate feature gives the option to change the parameter name, not the parameter value. • DVT-1330 Keywords should not appear in autocomplete after "." or "::" • DVT-1332 Calling macro with optional parameters issues error (not using the defaults) • DVT-1337 IUS filter set fixed • DVT-1349 Context completion doesn't work for enum encoding in a tertiary statement (conditional operator) • DVT-1353 Show autocomplete after macro name (e.g `some_define.some_item) • DVT-1356 Classes in generate blocks show type redef errors even when they are not in the same generated branch • DVT-1357 Module autoinstance fixed not to include parameters declared with localparam • DVT-1360 Refactoring scripts: specifying an element with package::type.element is broken • DVT-1361 Types defined under generate blocks not shown in types view • DVT-1374 Fixed wrong CIRCULAR_INHERITANCE error when the extended class has the same name but is in another package • DVT-1375 DVT Predefined projects: files should be made writable after copying in user location • DVT-1381 Symlinks in topfiles break error markers and open file from include tree • DVT-1402 "Unexpected token ," (comma) when using bit selection for ports in module declaration • DVT-1404 NC-Verilog_Builder pre-defined external builder filters not selected by default 2.9.6.5 (7 January 2011) Features • DVT-1128 Format code using external script Enhancements • DVT-73 Link from project specific Code Templates to configure global Code Templates • DVT-947 Label matching for 'ifdef A .... `endif // ifdef A' warning © AMIQ 516 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1167 Diagrams: select/deselect type from popup menu (right click) • DVT-1178 Rename filter set: Nc-Verilog to IUS • DVT-1273 Show non-existent paths in +incdir+ as warnings instead of errors • DVT-1278 Report an Issue: hardware info and summary field added • DVT-1306 Added predefined filter in Problems View for Linting Problems • DVT-1308 Disk space sanity check (min 10 MB of free space in user's Home folder) Bugfixes • DVT-1232 HTML documentation generator: don't show predefined members • DVT-1285 Diagrams: don't show predefined members 2.9.6.4 (18 December 2010) Features • DVT-1172 Use System Variables in linked resource path • DVT-1026 Report an Issue directly from DVT (new button in the toolbar) Enhancements • DVT-71 Collect project statistics should allow selecting collected statistics • DVT-1244 Specify where the duplicate was found when reporting redeclarations • DVT-1256 Support for non-standard 'checker' and 'restrict' keywords used as identifiers • DVT-1257 Concatenation and multiple concatenations performance issue • DVT-1260 Support for non-standard attribute instance (* integer foreign = "SystemC"; *); • DVT-1276 Collect project statistics should include hardware and system information • DVT-1246 New sv Project - faster realtime directory search Bugfixes • DVT-329 GUI linter debug mode (performance dump) not working • DVT-758 Search for references by method argument leads to hits in all methods with the same argument name • DVT-1135 Using 2 different revision of the same project in a workspace collision • DVT-1216 Fixed Solaris SPARC network filesystem bug by migrating to Eclipse Platform 3.6.1 © AMIQ 517 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1259 Symlink in INCDIR causes duplicate errors when opening an imported file • DVT-1266 Parsing error in primitive declaration • DVT-1230 Questa External Builder - 'missing vlib' error on full build command 2.9.6.3 (28 November 2010) Enhancements • DVT-1203 Added refresh tab to Generic Launch Configuration • DVT-1204 Added selected_resources_loc, selected_resources_name variables for run configurations selected_resources_path, • DVT-1146 Linter performance enhancements • DVT-1212 Rebuild lazy removes auto-linked files only if they are no longer needed Bugfixes • DVT-1177 Files auto-linked although in workspace when INCDIR is a symbolic link • DVT-1185 Disable auto-build timeout when build is triggered by the linter • DVT-1192 Builder triggers duplicate errors for fields, classes, etc. when SOS database element is checked out/in • DVT-1201 Added `suppress_faults, `nosuppress_faults predefined macros `enable_portfaults, `disable_portfaults, • DVT-1209 Internal dictionary corrupted after importing a previously deleted project 2.9.6.2 (23 November 2010) Enhancements • DVT-1193 Parser performance enhancements Bugfixes • DVT-1200 Fixed wrong reporting of UNDECLARED_SIGNAL 2.9.6.0 (17 November 2010) Bugfixes • DVT-1091 Added support for pure/extern constraint syntax • DVT-1112 Fixed wrong reporting of DUPLICATE_VARIABLE • DVT-1124 Layers view jump back to the selected element when scrolling down © AMIQ 518 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1141 Jump to pair backet in editor no longer working 2.9.5.9 (12 November 2010) Enhancements • DVT-132, DVT-241 Misc. Q&A updates • DVT-1041 No index.hml when exporting the HTML Lint Report Bugfixes • DVT-600, DVT-4 Fix annotation names in Annotations Preference Page 2.9.5.8 (5 November 2010) Features • DVT-974 Warning message if exclude directives are missing from eclipse.ini Enhancements • DVT-174 Added .flt extension to default Content Types (command file) • DVT-529 Refactor rename to something that already exists should not be allowed • DVT-589 Notify user on build timeout • DVT-614 Support for -F in .vlog_top_files with simlator specific compatibility modes. • DVT-961 Support for System Variables in New Project Wizard • DVT-1052 Added .comp extension to default Content Types (command file) • DVT-1054 Restart eclipse is needed after adding a new extension to Content Types Bugfixes • DVT-126 DVT checks out license at plugin activation instead of first feature used • DVT-932 Print executed command for launch configuration and external builder: printing is sometimes executed after run start • DVT-968 Doc generator wizard has a wrong button label (Browse Workspace instead of Browse Filesystem) • DVT-1018 No editor functionality available when opening a file with different (than standard) extension • DVT-1046 Bogus connections in inheritance diagrams • DVT-1047 References for methods don't have hits in all class hierarchy for classes situated in different scopes © AMIQ 519 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-1048 Comments are collected incorrectly on full build 2.9.5.7 (29 October 2010) Features • DVT-513 DVT Predefined Projects Enhancements • DVT-133 When adding Verilog nature, .dvt and .vlog_top_files are created with default content if they don't exist • DVT-294 When project has no top files, you can open '.vlog_top_files' for editing right from the warning dialog • DVT-765 New project wizard - mention how Top Files and INCDIR can be configured after the wizard is completed • DVT-766 Update documentation for OVM to UVM Migration • DVT-942 Show line numbers in editor by default Bugfixes • DVT-735 Internal builder semantic warning disable option not working • DVT-935 Multiline comment doesn't appear in generated documentation or tooltip • DVT-923 Solaris SPARC GTK crash in Navigator • DVT-993 External tools - console hyperlinks don't jump in source files with unknown contenttype • DVT-1014 Parser slowness related to casting type support for constant primary (see DVT-914) • DVT-1017 Autocomplete should not suggest anything after a number (or after a number followed by dot) • DVT-1022 Wrong UNDECLARED_SIGNAL in module instantiation when signal is declared inside a generate block or is returned by a function and when wildcard named port connections ( .*) is used 2.9.5.6 (26 October 2010) Bugfixes • DVT-914 Cast should accept constant expression as casting type • DVT-924 Recognize inner classes defined in a parent class © AMIQ 520 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • DVT-937 Wrong syntactic error reprort for case... default:/*comment*/ • DVT-938 Wrong non-exsiting class notification for nested classes • DVT-939 Accept multiple coverpoints on different array elements 2.9.5.5 (20 October 2010) Enhancements • Misc Documentation Updates Bugfixes • DVT-178 Project statistics filters • DVT-643 Ctrl+PgUp/Ctrl+PgDn navigation between editors gets stuck at the diagram editor • DVT-762 Wrong parser error on :/* • DVT-763 Module parameters without parens 2.9.5.4 (11 October 2010) Enhancements • Linter: • OVM/UVM Rule PKLD • Rule CHEX - check only concurrent assertions and excpects • DVT-11 Print executed command for launch configuration and external builders Bugfixes • Linter misc. bug fixes • DVT-13 External builder console content not shown after changing the build command • DVT-727 External tools NC-Verilog filter patterns do not support numbers in error ID • DVT-738 Signal an error if inside expression doesn't have {}, or has a range without [] • DVT-739 Signal an error if unsized dimension [] is used as a packed dimension outside a DPI import 2.9.5.3 (4 October 2010) Enhancements • DVT distribution release includes "DVT SV Language User Guide" PDF © AMIQ 521 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • Linter: • Added ruleset kind specific icons in Linter GUI • Added Export to HTML support for different rulesets (subtitle, browser icons, descripton) Bugfixes • DVT-672 Search for macro declaration without including layers returns no results • DVT-685 UVM Compliance category "UVM-SV Specific" typo 2.9.5.2 (1 October 2010) Features • Generic Linter Framework • UVM Compliance Checking Enhancements • Linter: • Added support for simple regular expressions in waivers message pattern • Added pragma waivers (code waivers) • OVM/UVM Rule PKVD • OVM/UVM Rule PKFN • OVM/UVM Rule PKVR • OVM/UVM Rule DCDC • OVM/UVM Rule DCRN Bugfixes • DVT-640 External library (-y) search, sort candidates using +libext+ order • DVT-641 Search for the unresolved references of the modules compiled from library • DVT-652 Folding issue for export "DPI" • DVT-659 Console hyperlink detection using working directory • DVT-664 Support for `begin_keywords "1800-2005" 2.9.5.1 (27 September 2010) Enhancements © AMIQ 522 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • Added semantic checks for duplicate declarations of classes, functions, tasks, fields, parameters, function arguments, covergroup arguments, coverpoints, covercrosses, struct and union members • Added additional assertion templates • OVM Compliance Standard Checks • Rule OVM2 - exclude macros check in virtual classes • Rule OVM5 - exclude macros check in virtual sequences • Rule OVM6 - exclude the body() method check in virtual sequences • Rule OVM8 - exclude the super.pre_body() and super.post_body() calls check in virtual sequences Bugfixes • DVT-656 Autocomplete issue when parameterized classes follow • DVT-678 Accept `ifdef, `else, `endif on the same line • DVT-679 Accept the third parameter of $width() as optional • Accept timeunit and timeprecision in program construct • Fix wrong warning signaling when a parameter is used for module instance port binding • Fix for unresolved components references in library • Fix for symbolic link files pointing to SOS database 2.9.4 (14 September 2010) Features • What's new in DVT? button for quick online access to this page • Auto-linked resources • Rename refactoring • Refactoring scripts • Added run_dvt_from_rawtokens.sh script for creating and opening a DVT project from raw tokens file • OVM Compliance reports hits in the Problems View • Project statistics Enhancements © AMIQ 523 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • OVM Compliance also reports non-standard SV constructs • VMM project property page supports vmm.sv directly under $VMM_HOME • Report semantic error if a function is implemented outside a class but not declared as external • OVM2UVM migration - support for UVM-1.0ea kit • Project-level code templates • eclipse.sh script can import settings from another workspace • eclipse.sh script can import an existing DVT project • License server releases license when client disconnects • Hierarchy and Instance Tree views show instructions when content is empty • Multiple selection support for 'Add to top files' in navigator right-click menu • Generic launch configurations can infer Project & Working directory from navigator selection • Sharable settings for HTML documentation wizard • Automatic instantiation of modules sorts ports as in/out/inout • Misc parser enhancements • Misc performance enhancements Bugfixes • OVM Compliance Waivers GUI is now working properly in KDE • External builders not called when invoking OVM Compliance • .vlog_top_files supports +define+ without value specified • .vlog_top_files does not take into account anymore the order of +defines • Semantic search reports method references in all object-oriented hierarchy • HTML documentation wizard displays multi line comments 2.9.3 New features: • UVM Smart Log • UVM Field Editor © AMIQ 524 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • UVM Code Templates • OVM to UVM Migration • Misc bug fixes. 2.9.2 • Custom defines • OVM Smart Log • Misc bug fixes. 2.9.1 • Misc bug fixes. 2.9.0 • Misc bug fixes. 2.8.9 • OVM Field Editor. • Emacs Automation. • New templates for OVM and SystemVerilog constructs. • Custom Task Tags. • Misc bug fixes. 2.8.8 • Misc bug fixes. 2.8.7 • Misc bug fixes. 2.8.6 • Highlight for Inactive Preprocessing. • Semantic Warning for Undeclared Ports (modules mapping). 2.8.5 • Inline Expand/Collapse Macros. • Hot fix for Instance Tree View (infinite loop). © AMIQ 525 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com 2.8.4 New features: • Macros View. • OVM and VMM project preference pages. • Performance improvements. • Misc bug fixes. 2.8.3 • OVM Compliance Review enhancements. 2.8.2 • OVM Compliance Review automate some of the manual checks. • Misc bug fixes (support for OVM 2.0.3). 2.8.1 • Misc bug fixes. 2.8.0 • Misc bug fixes. 2.7.0 New features: • OVM Compliance Review checks list updated according with the OVM Word published list. • Misc bug fixes. 2.6.0 New features: • Class Diagrams. See Class Diagrams. • HTML Documentation diagram support. • Smart Log. See Smart Log. • VMM Smart Log. See VMM Smart Log. • Semantic checks for types. • Label mismatch warning for ifdef/ifndef ... endif directives. See Tips and Tricks. • Added history and revision control compare editors highlight. © AMIQ 526 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • Added customizable template for new "Verilog File" content. • Support to add -f files to top files on right click Add to Top Files. 2.5.0 New features: • OVM Compliance Review. See OVM Compliance. • Export HTML Documentation. See Export HTML Documentation. 2.4.0 New features: • Highlight matching begin - end, function - endfunction etc. on double click. • Console hyperlinks by filters in Generic Launch Configuration. See Run Configurations. • Support for +incdir+<path> , -incdir <path> , +define+<DEFINE> , -define <DEFINE>, -v <path>, -y <path>, +libext+<suffix> in Top Files. • Support for defines at the project level. Useful when invoking 3rd party (Project Properties -> Verilog Language -> DEFINE). • Fixed '//' comment handling in macro invocation parameters. 2.3.0 New features: • To specify Top Files, INCDIR etc. you can also directly edit the corresponding files <project_dir>.dvt/.vlog_top_files, <project_dir>.dvt/.vlog_inc_dir etc. and use: • -f <file_name> • system variables • absolute paths • comments (//,--,#) • You can browse and search 3rd party documentation directly from Eclipse. See External Documentation. • You can build a project using 3rd party compilers. See External Builders. • You can create and use project templates. See Project Templates. • Hyperlink enhancements (F3 works on imports, preference to jump to first implemented layer). © AMIQ 527 Rev. 3.5.32 DVT SystemVerilog IDE Chapter 36. What is New? www.dvteclipse.com • Semantic search enhancements (show the match line, cover groups, layers handling). • Added filter to Types View. • Added VlogDT Builder preferences. • Added context sensitive help support. See Tips and Tricks. • SystemVerilog parser and dictionary enhancements. • Misc bug fixes and performance improvements (linked resources in top files and hyperlinks, context detection). 2.0.0 New features: • SystemVerilog parser and dictionary enhancements (class templates, parameters, ports etc.). • Misc bug fixes and performance improvements (refresh, building). 1.5.0 New features: • Misc bug fixes and performance improvements. 1.4.0 • First version. © AMIQ 528 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 37. How to Report an Issue? You can send an issue report using Report an Issue tool from the toolbar or Help menu. Fill in the required data (identification data and issue description) and add screenshots or other files you consider relevant. You can send the report via e-mail (Internet connection required) or save it as .zip and send manually to [email protected] [mailto:[email protected]]. Thank you! © AMIQ 529 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 38. Legal Notices Copyright © 2005-2014 AMIQ EDA s.r.l. (AMIQ). All rights reserved. License: This product is licensed under the AMIQ's End User License Agreement (EULA). Trademarks: The trademarks, logos and service marks contained in this document are the property of AMIQ or other third parties. DVT™, eDT™, VlogDT™, VhdlDT™, Verissimo™, Specador™ are trademarks of AMIQ. Eclipse™ and Eclipse Ready™ are trademarks of Eclipse Foundation, Inc. All other trademarks are the property of their respective holders. Restricted Permission: This publication is protected by copyright law. AMIQ grants permission to print hard copy of this publication subject to the following conditions: 1. The publication may not be modified in any way. 2. Any authorized copy of the publication or portion thereof must include all original copyright, trademark, and other proprietary notices and this permission statement. Disclaimer: This publication is for information and instruction purposes. AMIQ reserves the right to make changes in specifications and other information contained in this publication without prior notice. The information in this publication is provided as is and does not represent a commitment on the part of AMIQ. AMIQ does not make, and expressly disclaims, any representations or warranties as to the completeness, accuracy, or usefulness of the information contained in this document. The terms and conditions governing the sale and licensing of AMIQ products are set forth in written agreements between AMIQ and its customers. No representation or other affirmation or fact contained in this publication shall be deemed to be a warranty or give rise to any liability of AMIQ whatsoever. © AMIQ 530 Rev. 3.5.32 DVT SystemVerilog IDE www.dvteclipse.com Chapter 39. Third Party Licenses The following software may be included in this product: • Eclipse Platform 3.8 and Eclipse Plugins ( see license [http://www.dvteclipse.com/ third_party_licenses/LICENSE_ECLIPSE.TXT]) • Java SE Runtime Environment (JRE) Version 7 ( see license [http://www.dvteclipse.com/ third_party_licenses/LICENSE_JRE.TXT]) • ANTLR v2 ( see LICENSE_ANTLR.TXT]) license [http://www.dvteclipse.com/third_party_licenses/ • FreeMarker ( see license LICENSE_FREEMARKER.TXT]) [http://www.dvteclipse.com/third_party_licenses/ • Graphviz ( see license LICENSE_GRAPHVIZ.TXT]) [http://www.dvteclipse.com/third_party_licenses/ • P4Eclipse ( see license DISCLAIMER_P4ECLIPSE.TXT]) [http://www.dvteclipse.com/third_party_licenses/ • SVNKit ( see license LICENSE_SVNKIT.TXT]) [http://www.dvteclipse.com/third_party_licenses/ • Cliosoft SOS ( see license README_CLIOSOFT_SOS.TXT]) [http://www.dvteclipse.com/third_party_licenses/ • viPlugin (DVT includes a version of Michael Bartl's viPlugin) © AMIQ 531 Rev. 3.5.32