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:&quot;">
• 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 \&quot; 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