DVT VHDL IDE User Guide Rev. 3.5.35 30 January 2015 Technical Support: [email protected] Copyright (C) 2005-2015 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 VHDL 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 ............................................ 22 3.8.8. Quickly Open a Type (Entity, Architecture) ............................................... 22 3.8.9. Quickly Open a File ................................................................................... 23 3.8.10. Quickly Move Inside the Editor ............................................................... 24 3.8.11. Inspect the Design Hierarchy .................................................................... 25 3.8.12. Browse Through All the Available Types (Entities, Architectures) .......... 26 3.8.13. Search for Entities .................................................................................... 27 3.8.14. Use Content Assist (Autocomplete) .......................................................... 28 3.8.15. Use Code Templates ................................................................................. 30 3.8.16. Use Component Auto Instance ................................................................. 31 3.8.17. Track Tasks using TODO Markers ........................................................... 32 3.8.18. Quickly See the Current Scope in the Status Bar ..................................... 33 3.8.19. Fold Code Regions in Order to Improve Readability ............................... 33 3.8.20. Access the Context Sensitive Help ........................................................... 34 4. Build Configurations ......................................................................................................... 35 4.1. default.build ........................................................................................................... 35 4.2. Emulating compiler invocations ............................................................................ 36 4.3. Multiple .build Files ............................................................................................... 36 4.4. Compatibility Modes ............................................................................................. 38 4.4.1. Default DVT Compatibility Mode .............................................................. 39 4.4.2. vcs.vlogan Compatibility Mode .................................................................. 41 4.4.3. vcs.vhdlan Compatibility Mode .................................................................. 42 4.4.4. ius.irun Compatibility Mode ....................................................................... 42 4.5. Paths ....................................................................................................................... 46 4.6. Strings .................................................................................................................... 46 4.7. Comments .............................................................................................................. 47 4.8. Environment Variables .......................................................................................... 47 4.9. Including Other Argument Files ............................................................................ 48 4.10. Build Persistence .................................................................................................. 48 © AMIQ i Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com 4.11. DVT Auto-Linked ................................................................................................ 50 4.12. Run a Script Before Build ................................................................................... 51 4.13. All Build Directives ............................................................................................. 52 4.14. e Language Test Files .......................................................................................... 61 4.15. e Language SPECMAN_PATH ........................................................................... 61 4.16. SystemVerilog OVM or UVM Library Compilation ........................................... 62 5. Compile Checks ................................................................................................................ 64 5.1. Compile Waivers ................................................................................................... 64 5.2. Semantic Checks .................................................................................................... 66 6. Content Assist (Autocomplete) ......................................................................................... 69 6.1. Content assist for CamelCase and Underscore ...................................................... 70 6.2. Component Automatic Instantiation ...................................................................... 71 6.3. Code Templates ..................................................................................................... 71 7. Content Filters .................................................................................................................. 73 7.1. Content Filters XML syntax .................................................................................. 73 7.2. Content Filters Examples ....................................................................................... 76 7.3. Predefined Content Filters ..................................................................................... 77 8. Code Templates ................................................................................................................ 86 8.1. Code Templates in Autocomplete ......................................................................... 86 8.2. Global Code Templates ......................................................................................... 87 8.3. Project Level Code Templates ............................................................................... 87 8.4. Code Templates View ........................................................................................... 88 9. File Templates .................................................................................................................. 91 10. Project Templates ........................................................................................................... 92 10.1. What is a project template? ................................................................................. 92 10.2. How to generate code from a project template .................................................... 93 10.2.1. Step 1. Specify Directories ....................................................................... 93 10.2.2. Step 2. Specify Parameters ....................................................................... 94 10.3. template.config ..................................................................................................... 95 10.4. Add from Template ............................................................................................. 95 11. Code Formatting ............................................................................................................. 98 11.1. Capitalization ....................................................................................................... 98 11.2. Whitespace ........................................................................................................... 98 11.3. Indentation ............................................................................................................ 98 11.4. Vertical Alignment ............................................................................................... 99 11.5. Line Wrapping ................................................................................................... 100 11.6. External .............................................................................................................. 100 12. Component Automatic Instantiation ............................................................................. 101 12.1. Autoinstance Using Autocomplete .................................................................... 101 12.2. Autoinstance Using Drag and Drop ................................................................... 101 13. Semantic Search ............................................................................................................ 102 14. Search for References (Usages) .................................................................................... 104 15. Quick Search in Views ................................................................................................. 105 15.1. CamelCase .......................................................................................................... 105 15.2. Simple Regex ..................................................................................................... 106 15.3. Hierarchical Search ............................................................................................ 106 15.4. Search for Members ........................................................................................... 108 15.5. Search Port in Design Hierarchy ....................................................................... 110 © AMIQ ii Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com 16. Trace Port Connections ................................................................................................ 112 16.1. Trace Connections from Design Hierarchy ....................................................... 112 16.2. Trace Connections from Editor ......................................................................... 112 16.3. Trace Connections View .................................................................................... 114 16.4. Trace Path .......................................................................................................... 117 17. Code Factory ................................................................................................................. 120 18. Refactoring .................................................................................................................... 121 18.1. Rename Refactoring ........................................................................................... 121 18.2. Connect Instances Across the Design Hierarchy ............................................... 122 18.2.1. Connect Instances Using New Ports ....................................................... 122 18.2.2. Preview Structural Changes in the Design Hierarchy ............................. 125 18.2.3. Connect Instances Toolbar ...................................................................... 128 19. Diagrams ....................................................................................................................... 130 19.1. Module Diagrams ............................................................................................... 130 19.1.1. Module Diagrams - Select Entities ......................................................... 134 19.1.2. Module Diagrams - Preferences .............................................................. 136 19.1.3. Module Diagrams - Breadcrumb Navigation .......................................... 144 19.2. Diagram Toolbar ................................................................................................ 144 19.3. Diagram Preferences .......................................................................................... 144 20. Export HTML Documentation ...................................................................................... 146 20.1. Export HTML Documentation Wizard .............................................................. 146 20.2. Comments Formatting ........................................................................................ 151 20.2.1. JavaDoc ................................................................................................... 152 20.2.2. NaturalDocs ............................................................................................. 156 20.3. Customizing Documentation .............................................................................. 157 21. External Tools Integration ............................................................................................ 159 21.1. Run Configurations ............................................................................................ 159 21.1.1. Run Configuration Session Type ............................................................ 161 21.1.2. Custom Shortcut and Button for a Run Configuration ............................ 163 21.1.3. Using environment variables in DVT Generic Run Configurations ........ 164 21.1.4. Using an alias in a DVT Generic Run Configuration ............................. 165 21.1.5. DVT Generic Run Configuration Variables ........................................... 165 21.2. Smart Log .......................................................................................................... 167 21.2.1. Smart Log - Filters ................................................................................. 167 21.2.2. Smart Log - Hyperlinks .......................................................................... 170 21.2.3. Smart Log - Styles .................................................................................. 173 21.3. External Builders ............................................................................................... 174 21.3.1. How to define a new external builder ..................................................... 175 21.3.2. How to invoke external builders ............................................................. 177 21.3.3. External Builder Output .......................................................................... 177 21.3.4. Source Code Markers - errors warnings ................................................. 177 22. Custom Dialogs ............................................................................................................. 179 22.1. Quick Steps ........................................................................................................ 181 22.2. Customizing the Dialog Output ......................................................................... 181 22.3. SWT/XML Reference ........................................................................................ 184 22.3.1. Layouts .................................................................................................... 185 22.3.2. Widgets ................................................................................................... 186 23. Command Line Interface .............................................................................................. 192 © AMIQ iii Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com 23.1. 23.2. 23.3. 23.4. 23.5. 23.6. dvt_cli.sh ............................................................................................................ 192 Syntax ................................................................................................................. 192 Notes .................................................................................................................. 193 Examples ............................................................................................................ 193 Makefile Example .............................................................................................. 194 Commands .......................................................................................................... 194 23.6.1. Create a Project (Mixed-Language Capable) .......................................... 194 23.6.2. Create a Project From an Existing Template .......................................... 196 23.6.3. Import an Existing Project ...................................................................... 196 23.6.4. List Compiled Files ................................................................................. 196 23.6.5. Launch a Run Configuration .................................................................. 197 23.6.6. Open a File ............................................................................................. 197 23.6.7. Open a Custom Dialog ........................................................................... 197 23.6.8. Refresh a project ..................................................................................... 197 23.6.9. Quit .......................................................................................................... 198 23.6.10. Query the running status ....................................................................... 198 23.6.11. Print version .......................................................................................... 198 24. Reminders (TODO Markers) ........................................................................................ 199 25. Settings Management .................................................................................................... 200 25.1. Managed Settings ............................................................................................... 200 25.2. Unmanaged Settings .......................................................................................... 204 25.3. User and Common Settings Location ................................................................ 204 25.4. Use Cases ........................................................................................................... 205 25.4.1. Memory Allocation Thresholds .............................................................. 205 25.4.2. Workspace Preferences ........................................................................... 206 25.4.3. Run Configurations ................................................................................. 206 25.4.4. Compile Waivers .................................................................................... 206 25.4.5. Content Filters ......................................................................................... 206 25.4.6. External Builders .................................................................................... 206 25.4.7. Export HTML Documentation ................................................................ 207 25.5. Examples ............................................................................................................ 207 25.6. Deprecated Settings Management (before DVT 3.5) ......................................... 208 25.6.1. Workspace Settings ................................................................................. 208 25.6.2. Project Settings ....................................................................................... 208 25.6.3. Other Settings .......................................................................................... 209 25.6.4. Importing Preferences From a Different Workspace .............................. 209 25.6.5. Customizing Default Settings Using dvt.ini ............................................ 210 26. Reference ...................................................................................................................... 213 26.1. Common Shortcuts ............................................................................................. 213 26.2. Editor Right Click Menu ................................................................................... 214 26.2.1. Folding .................................................................................................... 214 26.2.2. Source ...................................................................................................... 214 26.2.3. Code Factory ........................................................................................... 214 26.2.4. Show ........................................................................................................ 214 26.2.5. References ............................................................................................... 214 26.2.6. Trace ........................................................................................................ 215 26.2.7. Refactor ................................................................................................... 215 26.3. Icons and Decorations ........................................................................................ 215 © AMIQ iv Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com 26.3.1. Icons ........................................................................................................ 215 26.3.2. Decorations ............................................................................................. 216 26.4. Scripts ................................................................................................................. 216 26.4.1. dvt.sh ....................................................................................................... 216 26.4.2. dvt_cli.sh ................................................................................................. 218 26.4.3. dvt_kit_installer.sh .................................................................................. 218 26.4.4. dvt_updater.sh ......................................................................................... 220 26.5. Toolbar Actions ................................................................................................. 221 26.6. Views ................................................................................................................. 221 26.6.1. Code Templates View ............................................................................. 221 26.6.2. Compile Order View ............................................................................... 222 26.6.3. Console View .......................................................................................... 223 26.6.4. Design Hierarchy View .......................................................................... 223 26.6.5. Layers View ............................................................................................ 228 26.6.6. Outline View ........................................................................................... 229 26.6.7. Problems View ........................................................................................ 233 26.6.8. Tasks View ............................................................................................. 234 26.6.9. Trace Connections View ......................................................................... 236 26.6.10. Types View ........................................................................................... 236 27. Tips and Tricks ............................................................................................................. 239 28. Q & A ........................................................................................................................... 257 28.1. I am new to Eclipse, where should I start from? ............................................... 257 28.2. Where can I find DVT Help? ............................................................................ 257 28.3. How do I see and configure the key shortcuts? ................................................. 257 28.4. Are there any backup files in Eclipse? .............................................................. 258 28.5. Workspace in use, cannot launch eclipse... ....................................................... 258 28.6. Locking is not possible in the directory... ......................................................... 258 28.7. How to start DVT Eclipse with a different eclipse.ini ....................................... 258 28.8. Save could not be completed ............................................................................. 259 28.9. IBM Clearcase Plugin ........................................................................................ 259 28.10. libxul.so undefined symbol .............................................................................. 259 28.11. How to use Working Sets for filtering Problems/Task/Search views? ............. 260 28.12. How can I do an incremental textual search in any view? ............................... 262 28.13. How do I Access Files Outside Project Dir - Working with Linked Resources ..................................................................................................................... 262 28.14. Mapping Linux to Windows (/proj/ to Z:\proj\) .............................................. 263 28.15. Subversive vs Subclipse ................................................................................... 264 28.16. How do I associate a project with both DVT and CDT? ................................. 264 28.17. Can I use vi/vim along with DVT? ................................................................. 264 28.18. Can I perform dos2unix or unix2dos from DVT? ........................................... 265 28.19. How can I configure Eclipse to use a local CVS repository? .......................... 265 28.20. I am using the Common Desktop Environment via Citrix and experiencing crashes. What can I do? .............................................................................................. 266 28.21. How do I change the background color of the Editor? .................................... 266 28.22. How do I change the color of the interface? ................................................... 266 28.23. How to apply the dark color theme or other themes? ...................................... 267 28.24. How do I change the tooltip colors? ................................................................ 267 28.25. How do I change Internet Proxy Settings? ...................................................... 267 © AMIQ v Rev. 3.5.35 DVT VHDL IDE 29. 30. 31. 32. www.dvteclipse.com 28.26. Eclipse does not start, there is no Workspace, metadata or log file created ..... 268 28.27. Workspace permissions .................................................................................... 269 28.28. How to install our server as a service in Windows? ........................................ 270 28.29. How do I link mylyn with Bugzilla? ............................................................... 270 28.30. How do I print source code? ........................................................................... 270 28.31. How do I disable Eclipse Software Sites? ....................................................... 272 28.32. How do I revert to a previous version? ........................................................... 272 28.33. What are the most common shortcuts in DVT? ............................................... 273 28.34. How does DVT integrate with CVS? .............................................................. 273 28.35. How to set an environment variable within a Run Configuration? .................. 273 28.36. How to run a remote Unix command from DVT Eclipse for Windows? ......... 273 28.37. Rebuild shortcut (Ctrl + Alt + R) does not work ............................................. 274 28.38. Sometimes I experience DVT GUI hangs, what should I do? ......................... 274 28.39. Sometimes I experience DVT GUI hangs when switching from another X application to DVT ..................................................................................................... 275 28.40. I want to use an alias in a DVT Generic Run Configuration, but it's not recognized .................................................................................................................... 276 28.41. How to set multiple paths as sources of predefined projects ? ......................... 276 28.42. Lines are suddenly changing indentation when I edit text or move the cursor through the editor. ....................................................................................................... 276 28.43. How to change the directory where the build log file is saved ? ...................... 277 28.44. How to find the DVT logs on Linux/Unix ? .................................................... 277 28.45. How to create resource filters ? ....................................................................... 277 28.46. How to create custom shortcut and button for a Run Configuration? .............. 278 28.47. I know that file.foo is present in the project location, but I can't see it in the Navigator View ........................................................................................................... 278 28.48. How to copy the full path to the file in the current editor? .............................. 279 28.49. How to adjust the console logs filters matching parameters? .......................... 279 28.50. When I switch to Block (Column) Selection mode the font changes ............... 279 28.51. In Block (Column) Selection mode I see strange editng artifacts .................... 280 28.52. How to modify the font size in the code editors? ............................................ 280 28.53. How to automatically checkout/lock files from the revision control system ? ...................................................................................................................................... 282 28.54. How can I see if a file is read-only? ............................................................... 282 28.55. How can I open a file in DVT from the terminal? .......................................... 283 28.56. How do I change the name of the xterm opened by a DVT Generic Run Configuration? ............................................................................................................. 283 What is New? ............................................................................................................... 285 How to Report an Issue? .............................................................................................. 356 Legal Notices ................................................................................................................ 357 Third Party Licenses ..................................................................................................... 358 © AMIQ vi Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com List of Tables 19.1. ..................................................................................................................................... 140 19.2. ..................................................................................................................................... 140 © AMIQ vii Rev. 3.5.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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.35 DVT VHDL 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 © AMIQ 13 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com equivalent to $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: © AMIQ 14 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 1. Right click on a file > Compare With > Local History... and compare with various file snapshots taken over time 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 VHDL development environment. 3.8.1 Switch to the DVT Perspective The VHDL Perspective provides a workbench layout with many useful views and shortcuts at hand for developing VHDL code, for example the entity and architectures browser. © AMIQ 15 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com From menu Window > Open Perspective > Other... chose DVT 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.35 DVT VHDL 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: Chose menu File > New > DVT Project. © AMIQ 17 Rev. 3.5.35 DVT VHDL 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.35 DVT VHDL 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. 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. © AMIQ 19 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 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: 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. © AMIQ 20 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 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. Type Info Function Info Procedure 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: © AMIQ 21 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com the corresponding tooltip will look like this: 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. 3.8.8 Quickly Open a Type (Entity, Architecture) 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 22 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.9 Quickly Open a File You can quickly open a compiled file. 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. 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 23 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com This is the Compile Order View. 3.8.10 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 24 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.11 Inspect the Design Hierarchy Position the cursor on a entity or architecture 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 25 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.12 Browse Through All the Available Types (Entities, Architectures) You can explore all the types like entities or architectures 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 26 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.13 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 27 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com The results are presented in the Search View. 3.8.14 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 entities, architectures, configurations, variables, signals, constants,functions, procedures, etc. as well as templates for various constructs. Press Ctrl+Space to trigger content assist. Content assist is triggered automatically in some contexts, for example when you type in a <=, or := in the editor. © AMIQ 28 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com Proposals are presented in a list for you to chose 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 29 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.15 Use Code Templates When you trigger autocomplete using Ctrl+Space, template suggestions may appear in the proposal list. To define templates go to the DVT > Code Templates preference page (via menu Window > Preferences) and select VHDL from Select Nature:. © AMIQ 30 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com Click the New button to define a new template. The template name is important for proposal filtering based on already typed text. 3.8.16 Use Component Auto Instance You need to type the first letters of the component(entity, configuration, component) name, then press Ctrl+Space three (3) times. You can recognize component instances by their icon, it looks like a chip with ports ready to be glued in. © AMIQ 31 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.17 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. © AMIQ 32 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.18 Quickly See the Current Scope in the Status Bar The scope at cursor (procedure, architecture ...) is always presented in the''' status bar'''. 3.8.19 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. © AMIQ 33 Rev. 3.5.35 DVT VHDL IDE Chapter 3. Getting Started www.dvteclipse.com 3.8.20 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 34 Rev. 3.5.35 DVT VHDL 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 35 Rev. 3.5.35 DVT VHDL 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 36 Rev. 3.5.35 DVT VHDL 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 37 Rev. 3.5.35 DVT VHDL 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 38 Rev. 3.5.35 DVT VHDL 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 39 Rev. 3.5.35 DVT VHDL 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 40 Rev. 3.5.35 DVT VHDL 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 41 Rev. 3.5.35 DVT VHDL 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 42 Rev. 3.5.35 DVT VHDL 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 43 Rev. 3.5.35 DVT VHDL 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 44 Rev. 3.5.35 DVT VHDL 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 45 Rev. 3.5.35 DVT VHDL 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 46 Rev. 3.5.35 DVT VHDL 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 47 Rev. 3.5.35 DVT VHDL 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 48 Rev. 3.5.35 DVT VHDL 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 49 Rev. 3.5.35 DVT VHDL 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 50 Rev. 3.5.35 DVT VHDL 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 51 Rev. 3.5.35 DVT VHDL 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 52 Rev. 3.5.35 DVT VHDL 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 53 Rev. 3.5.35 DVT VHDL 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 54 Rev. 3.5.35 DVT VHDL 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 55 Rev. 3.5.35 DVT VHDL 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 56 Rev. 3.5.35 DVT VHDL 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 57 Rev. 3.5.35 DVT VHDL 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 58 Rev. 3.5.35 DVT VHDL IDE -extinclude Chapter 4. Build Configurations vcs.vlogan Compatibility Mode-Specific +incdir+<path> www.dvteclipse.com 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. 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 59 Rev. 3.5.35 DVT VHDL 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 60 Rev. 3.5.35 DVT VHDL IDE +v2k Chapter 4. Build Configurations www.dvteclipse.com 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> -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 61 Rev. 3.5.35 DVT VHDL 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 62 Rev. 3.5.35 DVT VHDL 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 63 Rev. 3.5.35 DVT VHDL 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 'etity' instead of 'entity' when declaring an entity. 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 procedure '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. 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 Solution 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> © AMIQ 64 Rev. 3.5.35 DVT VHDL IDE Chapter 5. Compile Checks www.dvteclipse.com 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 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*"/> © AMIQ 65 Rev. 3.5.35 DVT VHDL IDE Chapter 5. Compile Checks www.dvteclipse.com <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 Package, library use UNDECLARED_LIBRARY Library # is not declared Basic UNDECLARED_PACKAGE Package # is not declared Basic Entities UNDECLARED_ENTITY Entity # is not declared Basic DUPLICATE_ENTITY Duplicate entity #, already declared at line # in # Extended © AMIQ 66 Rev. 3.5.35 DVT VHDL IDE Chapter 5. Compile Checks www.dvteclipse.com Architectures UNDECLARED_ARCHITECTURE Architecture # is not declared Basic DUPLICATE_ARCHITECTURE Duplicate architecture #, already declared at line # in # Extended Components UNDECLARED_COMPONENT Component # is not declared Basic DUPLICATE_COMPONENT Duplicate component #, already declared at line # in # Extended Configurations UNDECLARED_CONFIGURATION Configuration # is not declared Basic DUPLICATE_CONFIGURATION Duplicate configuration #, already declared at line # in # Extended Packages DUPLICATE_PACKAGE Duplicate package #, already declared at line # in # Extended DUPLICATE_PACKAGE_BODY Duplicate package body #, already declared at line # in # Extended Variables, Arguments, Attributes, Constants DUPLICATE_VARIABLE Duplicate variable #, already declared at line # in # Extended DUPLICATE_PORT Duplicate port #, already declared at line # in # Extended Processes DUPLICATE_PROCESS Duplicate process #, already declared at line # in # Extended Type aliases UNDECLARED_TYPE Type # is not declared Basic Types DUPLICATE_TYPE Duplicate type #, already declared at line # in # Extended Instances DUPLICATE_INSTANCE Duplicate instance #, already declared at line # in # Extended Blocks DUPLICATE_NAMED_BLOCK Duplicate named block #, already declared at line # in # Extended Vunits DUPLICATE_VUNIT Duplicate vunit #, already declared at line # in # Extended Associated types (fields, variables, functions, etc.) NON_EXISTING_TYPE Non existing type # © AMIQ Extended 67 Rev. 3.5.35 DVT VHDL IDE Chapter 5. Compile Checks www.dvteclipse.com 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 Case enumerated choices DUPLICATE_WHEN_CHOICE Duplicate case enumerated choice # already declared, already Extended declared at line # in # MISSING_ENUM_CHOICE Case enumerated choice # is not defined Extended MISSING_OTHERS_CHOICE Case choice 'others' is not defined Extended OTHERS_CHOICE_USED Case choice 'others' used for non-explicit enumerated choices # ... Extended REDUNDANT_OTHERS_CHOICE Case choice 'others' is redundant Extended INCONSISTENT_CHOICES Case choices inconsistent number of bits Extended © AMIQ 68 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 6. Content Assist (Autocomplete) Content assist provides you with a list of suggested completions for partially entered text. Proposals are context dependent and include accessible entities, architectures, configurations, variables, signals, constants,functions, procedures, etc. as well as templates for various constructs. Press Ctrl+Space to trigger content assist. Content assist is triggered automatically in some contexts, for example when you type in a <=, or := in the editor. Proposals are presented in a list for you to chose 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 69 Rev. 3.5.35 DVT VHDL 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 (variables, signals, functions, procedures etc. depending on the enclosing scope) 2) the second one is for code templates 3) the third one is for other things, like entities/components 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: © AMIQ 70 Rev. 3.5.35 DVT VHDL IDE Variable Name Chapter 6. Content Assist (Autocomplete) Substrings that do find variable www.dvteclipse.com 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 Component Automatic Instantiation You need to type the first letters of the component(entity, configuration, component) name, then press Ctrl+Space three (3) times. You can recognize component instances by their icon, it looks like a chip with ports ready to be glued in. 6.3 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 71 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 6. Content Assist (Autocomplete) 72 www.dvteclipse.com Rev. 3.5.35 DVT VHDL 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 73 Rev. 3.5.35 DVT VHDL 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 74 Rev. 3.5.35 DVT VHDL 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 75 Rev. 3.5.35 DVT VHDL 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 76 Rev. 3.5.35 DVT VHDL 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 77 Rev. 3.5.35 DVT VHDL 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 78 Rev. 3.5.35 DVT VHDL 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 79 Rev. 3.5.35 DVT VHDL 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 80 Rev. 3.5.35 DVT VHDL 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 81 Rev. 3.5.35 DVT VHDL 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 82 Rev. 3.5.35 DVT VHDL 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 83 Rev. 3.5.35 DVT VHDL 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 84 Rev. 3.5.35 DVT VHDL 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 85 Rev. 3.5.35 DVT VHDL 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 86 Rev. 3.5.35 DVT VHDL 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 87 Rev. 3.5.35 DVT VHDL 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 88 Rev. 3.5.35 DVT VHDL 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 89 Rev. 3.5.35 DVT VHDL 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 90 Rev. 3.5.35 DVT VHDL 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 91 Rev. 3.5.35 DVT VHDL 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 92 Rev. 3.5.35 DVT VHDL 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 93 Rev. 3.5.35 DVT VHDL 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 94 Rev. 3.5.35 DVT VHDL 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 95 Rev. 3.5.35 DVT VHDL 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 96 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 10. Project Templates 97 www.dvteclipse.com Rev. 3.5.35 DVT VHDL 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 > VHDL > Editor > Formatting. 11.1 Capitalization • Keywords - This option controls the keywords capitalization • All upper case • All lower case • Data Types - This option controls the data types capitalization • All upper case • All lower case 11.2 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.3 Indentation • then - This option affects the then keyword placement: • On a new line - then is moved on a new line © AMIQ 98 Rev. 3.5.35 DVT VHDL IDE Chapter 11. Code Formatting www.dvteclipse.com • On the same line - then is moved on the same line with it's construct • Leave as is • Parameters - This option affects port, generic, map, function and procedure elements: • One per line - each placed on it's own line • More per line - more are placed on the same line, as fit when line wrapping is enabled • 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. 11.4 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 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; © AMIQ 99 Rev. 3.5.35 DVT VHDL IDE Chapter 11. Code Formatting www.dvteclipse.com 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. 11.5 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. 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.6 External When enabled, all other code formatting options are disabled and code formatting is performed using the given command. © AMIQ 100 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 12. Component Automatic Instantiation 12.1 Autoinstance Using Autocomplete You need to type the first letters of the component(entity, configuration, component) name, then press Ctrl+Space three (3) times. You can recognize component instances by their icon, it looks like a chip with ports ready to be glued in. 12.2 Autoinstance Using Drag and Drop Design elements can be auto instantiated by dragging them from the Types View into the editor. © AMIQ 101 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 13. 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 VHDL 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 VHDL files, in comments or not: • Press Ctrl+H to open the Search Dialog • Click on the VHDL 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 102 Rev. 3.5.35 DVT VHDL IDE Chapter 13. Semantic Search www.dvteclipse.com 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 103 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 14. Search for References (Usages) To search where a procedure, signal, architecture 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 104 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 15. 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. 15.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 105 Rev. 3.5.35 DVT VHDL IDE Chapter 15. 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. 15.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 15.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 106 Rev. 3.5.35 DVT VHDL IDE Chapter 15. 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 107 Rev. 3.5.35 DVT VHDL IDE Chapter 15. Quick Search in Views www.dvteclipse.com 15.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 108 Rev. 3.5.35 DVT VHDL IDE Chapter 15. 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 109 Rev. 3.5.35 DVT VHDL IDE Chapter 15. Quick Search in Views www.dvteclipse.com Filter: gpio/.collect Search by hierarchy and member name. Hierarchical searching and member searching can be combined. 15.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 110 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 15. Quick Search in Views 111 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 16. Trace Port Connections 16.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. 16.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 112 Rev. 3.5.35 DVT VHDL IDE Chapter 16. 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 113 Rev. 3.5.35 DVT VHDL IDE Chapter 16. Trace Port Connections www.dvteclipse.com 16.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 114 Rev. 3.5.35 DVT VHDL IDE Chapter 16. 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 115 Rev. 3.5.35 DVT VHDL IDE Chapter 16. 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 116 Rev. 3.5.35 DVT VHDL IDE Chapter 16. 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. 16.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 117 Rev. 3.5.35 DVT VHDL IDE Chapter 16. 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 118 Rev. 3.5.35 DVT VHDL IDE Chapter 16. 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 119 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 17. 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 120 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 18. Refactoring 18.1 Rename Refactoring To rename an entity (type, method 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 what changes should be performed. After you click Finish the changes are performed, and the project is rebuilt. 1. Select a file/change to see the source differences produced by the refacotring. © AMIQ 121 Rev. 3.5.35 DVT VHDL IDE Chapter 18. Refactoring www.dvteclipse.com 2. Uncheck a file/change to prevent those changes from being applied. 18.2 Connect Instances Across the Design Hierarchy 18.2.1 Connect Instances Using New Ports In order to connect two entity 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. The output instance is presented in the connect toolbar Output textbox: 4. Select another instance, right click and Connect Input. © AMIQ 122 Rev. 3.5.35 DVT VHDL IDE Chapter 18. Refactoring www.dvteclipse.com The input instance is presented in the connect toolbar Input textbox along the previous set output instance: 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 123 Rev. 3.5.35 DVT VHDL IDE Chapter 18. Refactoring www.dvteclipse.com 8. Press the OK button in order to perform the changes. Note 1: If something is wrong (ex: port name already exists) the Refactor Connect operation will give you the cause of the problem and pause. You can go back and make the necessary changes. © AMIQ 124 Rev. 3.5.35 DVT VHDL IDE Chapter 18. Refactoring www.dvteclipse.com Note 2: You can undo the whole refactoring operation using Undo ( Ctrl+Z). 18.2.2 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 125 Rev. 3.5.35 DVT VHDL IDE Chapter 18. 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 126 All Changes Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 18. Refactoring 127 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 18. Refactoring www.dvteclipse.com 18.2.3 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 128 Rev. 3.5.35 DVT VHDL IDE Chapter 18. Refactoring www.dvteclipse.com 8. Press Connect to start the refactoring operation. 9. Press Close to hide the Connect Toolbar. © AMIQ 129 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 19. 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. 19.1 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 130 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 19. Diagrams 131 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 19. 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 132 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 19. Diagrams 133 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 19. Diagrams www.dvteclipse.com 19.1.1 Module Diagrams - Select Entities 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 134 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 19. Diagrams 135 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 19. Diagrams www.dvteclipse.com 19.1.2 Module Diagrams - Preferences Use the Preferences button to customize the diagram contents and layout. © AMIQ 136 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 19. Diagrams 137 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 19. 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 138 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 19. Diagrams 139 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 19. 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 19.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 19.2. Without Collapse Bidirectional Edges © AMIQ With Collapse Bidirectional Edges 140 Rev. 3.5.35 DVT VHDL IDE Chapter 19. Diagrams www.dvteclipse.com The Graph direction can also be customized, as illustrated by the screenshots in this section. © AMIQ 141 Rev. 3.5.35 DVT VHDL IDE Chapter 19. 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 142 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 19. Diagrams 143 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 19. Diagrams www.dvteclipse.com 19.1.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. 19.2 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 19.3 Diagram Preferences The preference page DVT > Diagrams has settings for Graphviz DOT that affect both Class and Module Diagrams. © AMIQ 144 Rev. 3.5.35 DVT VHDL IDE Chapter 19. 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 145 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 20. 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. 20.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 146 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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 147 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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 148 Rev. 3.5.35 DVT VHDL IDE Chapter 20. Export HTML Documentation www.dvteclipse.com 4.Styling Preferences Comments beautify and formatting 5.Link To Existing Documentation © AMIQ 149 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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 150 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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. 20.2 Comments Formatting There are two formatting styles supported: JavaDoc & NaturalDocs. You can use HTML syntax in JavaDoc comments . © AMIQ 151 Rev. 3.5.35 DVT VHDL IDE Chapter 20. Export HTML Documentation www.dvteclipse.com 20.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 152 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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 153 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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 154 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 20. Export HTML Documentation 155 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 20. Export HTML Documentation www.dvteclipse.com 20.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 156 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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. 20.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 157 Rev. 3.5.35 DVT VHDL IDE Chapter 20. 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 158 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 21. External Tools Integration 21.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.... VhdlDT 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 159 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 160 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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): 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. 21.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: Same process session as DVT • The process will be a direct child of DVT © AMIQ 161 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com • 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 162 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com 21.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 163 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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. 21.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 164 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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". 21.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. 21.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} 165 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 166 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com 21.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 21.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 167 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 168 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 169 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 21.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 170 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 171 the Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com Smart Log - Filters Smart Log - Styles Run Configurations © AMIQ 172 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com 21.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"/> © AMIQ 173 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com </list> </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 21.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. Practically it 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 © AMIQ 174 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com 21.3.1 How to define a new external builder Select the project in the Navigator View, right-click and chose Properties. Chose the DVT > External Builders properties. Click the New button to define a new external builder. From the list of external builders chose the generic External Builder or one of the pre-configured ones. Main tab In the Main tab you can: © AMIQ 175 Rev. 3.5.35 DVT VHDL IDE Chapter 21. 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 In the Filters tab you can: 1. Chose 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). © AMIQ 176 Rev. 3.5.35 DVT VHDL IDE Chapter 21. External Tools Integration www.dvteclipse.com 21.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 invoke a specific one 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. 21.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. 21.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 177 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 21. External Tools Integration 178 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 22. 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 179 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 180 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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. 22.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} 22.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 181 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 182 Rev. 3.5.35 DVT VHDL IDE Chapter 22. Custom Dialogs www.dvteclipse.com XML <dvt:Container layout="layout:grid;numColumns:2;" parameters="quoteWith:'"> <Label text="Text:"></Label> <Text id=" -text " style="BORDER" text="text with whitespace that needs to be quoted" /> </dvt:Container> Output: -text 'text with whitespace that needs to be quoted' Note: If you wish to quote a string with double quotes you should escape the double quote character from XML syntax as follows: <dvt:Container parameters="quoteWith:""> • To show information about the value of a certain widget in the console title use showInTitle parameter: XML <dvt:Container parameters="showInTitle:true"> <Label text="Seed:"></Label> <Text id=" -seed " style="BORDER" text="42223" /> </dvt:Container> Output Further customization can easily be achieved by using a simple script for processing arguments. E.g. with the following bash snippet you can convert any argument to any desired form: #!/bin/bash # # bash_arg_converter.sh # while [ $# -gt 0 ]; do case $1 in -custom_*) argname="$1" © AMIQ 183 Rev. 3.5.35 DVT VHDL IDE Chapter 22. Custom Dialogs www.dvteclipse.com shift argval="$1" ## Customize here to desired format ## echo -n " $argname $argval " ;; *) echo -n " $1 " ;; esac shift done In the configuration command box use the following instead of ${dvt_dialog_prompt}: `./bash_arg_converter.sh ${dvt_dialog_prompt:customdialog.swtxml}` How to avoid quoting problems: in the .swtxml file it is recommended to use \" for nested quotes and for the Launch Command (Run Configurations > Launch Command) the variable ${dvt_dialog_prompt:customdialog.swtxml} should be surrounded by quotes, like in the image below: 22.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 184 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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. 22.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 185 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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> 22.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 186 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 187 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 188 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 189 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 190 Rev. 3.5.35 DVT VHDL IDE Chapter 22. 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 191 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 23. 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. 23.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. 23.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 192 Rev. 3.5.35 DVT VHDL IDE Chapter 23. 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 23.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 23.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 193 Rev. 3.5.35 DVT VHDL IDE Chapter 23. 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 23.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 23.6 Commands 23.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 194 Rev. 3.5.35 DVT VHDL IDE Chapter 23. 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 195 Rev. 3.5.35 DVT VHDL IDE Chapter 23. 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 23.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 23.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) 23.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 196 Rev. 3.5.35 DVT VHDL IDE Chapter 23. Command Line Interface www.dvteclipse.com -separator [Optional] Specify a custom separator for the list elements; default is newline. 23.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 23.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). 23.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 23.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 197 Rev. 3.5.35 DVT VHDL IDE Chapter 23. Command Line Interface www.dvteclipse.com 1 the resource and its direct members 0 the resource, but not any of its members 23.6.9 Quit quit Quit DVT 23.6.10 Query the running status status Query the running status of DVT. 23.6.11 Print version version Print the DVT version number. © AMIQ 198 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 24. Reminders (TODO Markers) See the Tasks View. © AMIQ 199 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 25. 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. 25.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 200 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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 201 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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 202 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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 203 Rev. 3.5.35 DVT VHDL IDE Chapter 25. Settings Management www.dvteclipse.com 25.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 25.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 204 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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. 25.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 25.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 205 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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. 25.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 25.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. 25.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. 25.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. 25.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 206 Rev. 3.5.35 DVT VHDL IDE Chapter 25. Settings Management www.dvteclipse.com <project>/.dvt/external_builders.xml and you can reuse them by copying the file in the user location. 25.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. 25.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 207 Rev. 3.5.35 DVT VHDL IDE Chapter 25. Settings Management www.dvteclipse.com 25.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 25.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) 25.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 208 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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 25.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)/ 25.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 209 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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 25.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 210 Rev. 3.5.35 DVT VHDL IDE Chapter 25. 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 211 Rev. 3.5.35 DVT VHDL IDE Chapter 25. Settings Management www.dvteclipse.com dvt.sh [any other argument] -eclipse_args -pluginCustomization <path_to_settings_file> © AMIQ 212 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 26. Reference 26.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, field, entity, architecture, function etc. in the workspace, current project etc. If you select something, it will automatically fill the query. © AMIQ 213 Rev. 3.5.35 DVT VHDL IDE Shift+F4 Chapter 26. Reference www.dvteclipse.com Open and update the Design Hierarchy View to see the design structure. Cursor must be on the entity name. 26.2 Editor Right Click Menu 26.2.1 Folding Collapse All Levels Fold to statement level. 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. 26.2.2 Source Jump to Pair Bracket Format Source See Code Formatting Toggle Comment Comment/uncomment selection or current line. 26.2.3 Code Factory See Code Factory 26.2.4 Show Declaration See Use Hyperlinks to Move Around in the Code Diagram See Diagrams Design Hierarchy See Design Hierarchy View Layers See Layers View Quick Types See Quick Types View Quick Compile Order See Quick Compile Order View Quick Layers See Quick Layers View Quick Outline See Quick Outline View 26.2.5 References See Search For References © AMIQ 214 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 26.2.6 Trace See Trace Port Connections 26.2.7 Refactor See Rename Refactoring 26.3 Icons and Decorations 26.3.1 Icons Regular VHDL File Linked Resource VHDL File See Linked Resources. Out of Project VHDL File The file is not inside a project directory, nor accessible as a linked resource. Functionality is limited on "gray" files. Library Package Package Body Entity Architecture Component Block Generate Function Procedure Input Port Output Port Bidirectional Port Signal Entity Instance Component Instance Unknown Instance Type © AMIQ 215 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com Enumeration literal Constant Generic Process 26.3.2 Decorations Project Scope To enable/disable go to Window > Preferences > General > Appearance > Label Decorations preference page and check/uncheck VHDL Language Included File. The file is compiled. Errors and Warnings To enable/disable go to Window > Preferences > General > Appearance > Label Decorations preference page and check/uncheck VHDL Language * Error or VHDL Language * Warning. Error Warning 26.4 Scripts 26.4.1 dvt.sh The DVT IDE Launcher. Usage dvt.sh dvt.sh -h[elp] dvt.sh [-site site] [-workspace <dir>] [-import_workspace_settings <dir>] [-force_import_workspace_settings <dir>] [-dvt_log_location <file>] [-bg] © AMIQ 216 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com [-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 Examples Start DVT without any option. You will be prompted for the workspace location. $> dvt.sh © AMIQ 217 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 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 26.4.2 dvt_cli.sh See Command Line Interface. 26.4.3 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) © AMIQ 218 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com • 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>] - 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 © AMIQ 219 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 26.4.4 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 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 © AMIQ 220 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 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 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 26.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! 26.6 Views 26.6.1 Code Templates View More details here © AMIQ 221 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 26.6.2 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. 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. © AMIQ 222 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 26.6.3 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. 26.6.4 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. © AMIQ 223 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com • 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. • 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. © AMIQ 224 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 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 225 Rev. 3.5.35 DVT VHDL IDE Chapter 26. 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. 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. © AMIQ 226 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 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. Filter by port name. All instances with ports that contain the filter text are shown. © AMIQ 227 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com Filter by hierarchy and port name. Hierarchical filtering and port filtering may be combined. 26.6.5 Layers View You can quickly see all the architectures of an entity or where a function is overloaded using the Layers View. Position the cursor on an entity, architecture or function 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. 1. Show History List Click to see the previously inspected layers (see the image below): © AMIQ 228 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 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. 26.6.6 Outline View The Outline View presents an overview of the editor contents. Open the view from menu Window > Show View > Other... > General > Outline. 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. © AMIQ 229 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com Filters... Select what elements to show Alphabetical Sort If alphabetical sort is on, all the entities are sorted by name. By default the © AMIQ 230 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 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 231 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com Outline View Preferences You can configure the Outline View contents from menu Window > Preferences > DVT > VHDL > Outline View. © AMIQ 232 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com 26.6.7 Problems View If a project contains errors, for example syntax errors, it will be indicated using decorators: © AMIQ 233 Rev. 3.5.35 DVT VHDL IDE Chapter 26. 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. 26.6.8 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: • FIXME - high priority • TODO - normal priority © AMIQ 234 Rev. 3.5.35 DVT VHDL IDE Chapter 26. Reference www.dvteclipse.com • 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 235 Rev. 3.5.35 DVT VHDL IDE Chapter 26. 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. 26.6.9 Trace Connections View More details here 26.6.10 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 236 Rev. 3.5.35 DVT VHDL IDE Chapter 26. 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 237 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 26. Reference 238 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 27. 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. Component Automatic Instantiation © AMIQ You need to type the first letters of the component (entity, component, configuration) name, then press Ctrl+Space three (3) times. 239 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com Matching begin - end If you double click on/after architecture – end, function – end, etc. the block is highlighted. 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. Format source Use the Source > Format Source action from the right click menu in the editor. The whole file is formatted or the current selection, if any. 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. © AMIQ 240 Rev. 3.5.35 DVT VHDL IDE Reminders (TODO markers) Chapter 27. Tips and Tricks www.dvteclipse.com 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 VHDL 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 241 Rev. 3.5.35 DVT VHDL IDE Chapter 27. 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 242 Rev. 3.5.35 DVT VHDL IDE Chapter 27. 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 chose Compare With/Replace With > Local History.... 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 © AMIQ 243 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com - 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 Column selection © AMIQ 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. 244 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com Tooltips When you position the mouse over a type, method, field etc., a tooltip will popup showing information on corresponding declaration. Hyperlinks 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 Current Scope © AMIQ Your current scope (for example the method or class you are editing) is always presented in the status bar. 245 Rev. 3.5.35 DVT VHDL IDE Quick Type Chapter 27. Tips and Tricks www.dvteclipse.com 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. Quick Outline Press Ctrl+O to open the Quick Outline View. It presents an overview of your file. You can enter any regular expression to locate a place to jump in the current file. © AMIQ 246 Rev. 3.5.35 DVT VHDL IDE Types View Chapter 27. Tips and Tricks www.dvteclipse.com You can view all 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. 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. © AMIQ 247 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com Mark occurrences When working in the VHDL editor, turn on Mark Occurrences in the toolbar or press Alt+Shift+O. 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 chose Add Bookmark... © AMIQ 248 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com Specify a meaningful name: 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 © AMIQ 249 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com 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. 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 250 Rev. 3.5.35 DVT VHDL IDE Chapter 27. 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 VHDL 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 251 Rev. 3.5.35 DVT VHDL IDE Chapter 27. 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 chose Properties. Or from menu Project > Properties. 252 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com Export To generate the HTML Documentation click the Export HTML HTML Documentation Wizard button in the toolbar. Documentation For more details see the Export HTML Documentation chapter. 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. 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. Practically it allows you 253 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com 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 VhdlDT User Guide. Mapping Linux Windows Linux directories can be mapped to Windows drives in order to access to them from Windows. For example /home/simi is mapped to Z:\. This has an impact on paths configured for a DVT project. 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\ 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.... Add a new Go to Window > Preferences > General > Content Types, select a category file extension from the list (for example VHDL 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 © AMIQ 254 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com - 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). Using System You can use System Variables in the path of linked resources. For Varibles 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. © AMIQ 255 Rev. 3.5.35 DVT VHDL IDE Chapter 27. Tips and Tricks www.dvteclipse.com 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 \! *`' 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 256 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 28. Q & A 28.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. 28.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. 28.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 257 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.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. 28.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. 28.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. 28.7 How to start DVT Eclipse with a different eclipse.ini You might encounter situations in 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> If you use the prepacked distribution: © AMIQ 258 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com ./dvt.sh -eclipse_args --launcher.ini <location> 28.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 28.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. 28.10 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 © AMIQ 259 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com where <NEW-XULRunner-directory-path> denotes the location of the newly installed xulrunner. 28.11 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. 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 © AMIQ 260 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 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 '. Finally, to achieve the Problems View/Tasks View filtering you require,you should create a filter ( View Menu > Configure contents > New) with the Scope set to ' 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 261 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.12 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. 28.13 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 related to your project, but 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.vhdl (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. © AMIQ 262 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 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 contains 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 and also slow the platform. An alternative is 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, and it may not be acceptable. 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 Chose 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 28.14 Mapping Linux to Windows (/ proj/ to Z:\proj\) Linux directories can be mapped to Windows drives in order to access them from Windows. For example /home/simi is mapped to Z:\. This has an impact on paths configured for a DVT © AMIQ 263 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com project. 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. 28.15 Subversive vs Subclipse Subversive does not automatically recognize svn projects while Sublicpse does. 28.16 How do I associate a project with both DVT and CDT? To associate a project or remove the aasociation of a project with DVT or CDT: Just right-click on the project and chose Change DVT Nature. The dialog allows you to associate or remove the association with SystemVerilog, VHDL, e Language and C/C++. The C/C++ language appears only when CDT and DVT CDT Support features are installed. Alternatively, C/C++ associatioan can be achieved using: File > New > Other and select C/C++ > Convert to a C/C++ project. 28.17 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/ © AMIQ 264 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com • 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 • 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 28.18 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. 28.19 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 preference 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" © AMIQ 265 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com • 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 #!/bin/sh if [ "$1" != "cvs" ]; then # Remove -l {user} {host} shift shift shift fi exec "$@" 28.20 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). 28.21 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 chose the desired color (the System default checkbox must be unchecked). 28.22 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. © AMIQ 266 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 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. 28.23 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. 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 editors 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. 28.24 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' 28.25 How do I change Internet Proxy Settings? If you want to change the proxy settings go to Window > Preferences > General > Network Connections © AMIQ 267 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 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. 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 the hosts that should not use any proxy, either by name or pattern. 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). 28.26 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: © AMIQ 268 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com • 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 28.27 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. Keywords: unable to save, failed to write, ResourceException, unable to store; © AMIQ 269 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.28 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. 28.29 How do I link mylyn with Bugzilla? It works like this (if mylyn is installed): 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. 28.30 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: © AMIQ 270 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 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 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. © AMIQ 271 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.31 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. 28.32 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. 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. © AMIQ 272 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.33 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 28.34 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 does not include the CVS plugin: go to Help > Install New Software, select Work With: All Available Sites then type CVS in the filter text input. After filtering is done, you should select Eclipse CVS Client under Collaboration, and follow the next steps of the wizard. Configure the CVS repository: After the plug-in is installed, create a repository connection: Window > Open Perspective > Other, then select CVS Repository Exploring. Now, in the CVS Repositories view on the left side right click > New > Repository Location and fill in the connection information. After this step is completed successfully you can browse your repository and check out projects, or (by returning to the e Language Perspective) you should find in the Navigator View that the previously checked out projects 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). 28.35 How to set an environment variable within a Run Configuration? More details here 28.36 How to run a remote Unix command 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. © AMIQ 273 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com More information about how to use plink.exe can be found 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). 28.37 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 28.38 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 © AMIQ 274 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com • 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.). 28.39 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/ 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. © AMIQ 275 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 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. 28.40 I want to use an alias in a DVT Generic Run Configuration, but it's not recognized More details here 28.41 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 28.42 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: 1. Go to Window > Preferences. 2. From here go to: General > Appearance > Colors and Fonts. © AMIQ 276 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 3. In the window on the right side choose: VHDL Language > Editor > VHDL 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 28.43 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) 28.44 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. 28.45 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 277 Rev. 3.5.35 DVT VHDL IDE Chapter 28. 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. 28.46 How to create custom shortcut and button for a Run Configuration? More details here 28.47 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 278 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com Make sure that no pattern in the list matches the name of the file (like for example *.foo). 28.48 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). 28.49 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. 28.50 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 279 Rev. 3.5.35 DVT VHDL IDE Chapter 28. 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 28.51 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 28.52 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 280 Rev. 3.5.35 DVT VHDL IDE © AMIQ Chapter 28. Q & A 281 www.dvteclipse.com Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.53 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"/> 28.54 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 282 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com 28.55 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 28.56 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 283 Rev. 3.5.35 DVT VHDL IDE Chapter 28. Q & A www.dvteclipse.com echo -ne "\033]0;YOUR_WINDOW_TITLE_HERE\007" echo -ne "\033]1;YOUR_TASKBAR_TITLE_HERE\007" © AMIQ 284 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 29. What is New? #.# - major version - Includes new features, major enhancements, architectural changes, bug fixes. #.#.# - minor version - Includes bug fixes, minor enhancements. 3.5.35 (30 January 2015) Features • DVT-6402 "Change DVT nature" allows adding the C/C++ nature when CDT is available • DVT-6954 Switch between eclipse, vi and emacs editor modes using shortcut or toolbar button Enhancements • DVT-5953 vi mode state should be preserved between workspaces • DVT-6365 Automatically set the key scheme for vi plugin when vi mode is enabled • DVT-6397 Show vi command line under the editor instead of the status bar • DVT-6455 Show a larger vi command line Bugfixes • DVT-6515 Incorrect pop-up message from Trace Connections from Editor when the Design Hierarchy view is updating • DVT-6812 Incorrect pop-up message from Trace Connections From Editor when the Design Hierarchy view is filtered • DVT-6949 False UNDECLARED_IDENTIFIER error when System Verilog struct elements are accessed from a VHDL architecture • DVT-6950 Wrong NON_EXISTING_TYPE error on package instantiation type access • DVT-6960 External builder multi-line errors/warnings are not added to the Problems View on Windows • DVT-6966 False UNDECLARED_IDENTIFIER error when accessing a package from another library named 'work' • DVT-6967 Trace Connections view is not properly cleaned after canceling a trace operation • DVT-7000 Build config: next word after -mvchome is considered a top file instead of a directive argument • DVT-7003 "Show Diagram" not working for architectures © AMIQ 285 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 3.5.34 (16 January 2015) Enhancements • DVT-6726 Semantic support for PSL vunit and vunit member constructs • DVT-6936 Semantic support for physical type units • DVT-6948 Questa multi-line errors/warnings are not matched correctly by predefined console log filters Bugfixes • DVT-5377 Paths don't resolve correctly on Windows in wizards • DVT-6961 Wrong hover when an entity an an enum element have the same name 3.5.33 (12 January 2015) Enhancements • DVT-6679 Ability to copy element name in views • DVT-3463 & DVT-3602 & DVT-5673 & DVT-5812 & DVT-6031 Add unified context menu to all views Bugfixes • DVT-6925 False UNDECLARED_IDENTIFIER error when a record member is accessed on a type • DVT-6926 False UNDECLARED_LIBRARY error on incremental build • DVT-6928 Search for text should look into all compiled files regardless of their content type • DVT-6944 Types View Members label is not cleared when changing project 3.5.32 (18 December 2014) Enhancements • DVT-4498 Enclose selected text when typing bracket or quote or begin/end • DVT-5731 Add collapse/expand capability for "when" construct 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 © AMIQ 286 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6740 Wrong UNDECLARED IDENTIFIER for SV packages under common library in VHDL file • DVT-6796 Wrong indexing of pointers • DVT-6810 False UNDECLARED_IDENTIFIER semantic error on mixed select access • DVT-6863 Hyperlinks and autocomplete not working for types in vhdl function/procedure signatures • 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 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-6668 Code formatting fails for generic type without semi before closing paren • DVT-6720 Code formatting fails for procedure/function/package "is new" construct • 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-6893 Auto-instance not working when the initial value of a generic specifies a unit of measure • 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 3.5.30 (28 November 2014) Features • DVT-3222 Ability to create a project from template using dvt_cli.sh Enhancements © AMIQ 287 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6027 Add capability to use commands to open custom hyper links created by run configuration filters • DVT-6873 Add +dvt_env_no_override build directive Bugfixes • 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 Bugfixes • DVT-6794 Wrong auto-completion while instantiation of generic procedure • DVT-6798 No auto-complete of generic identifiers within declaration of generic procedure • DVT-6799 Incomplete mouse-over description of aliases • 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 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 • DVT-6800 Added PSL highlight, hyperlinks and content assist support in comments Bugfixes • DVT-6795 No auto-completion while writing the invocation of an instance of the generic procedure • DVT-6797 False semantic error when using aliases for procedures • DVT-6825 Missing autocomplete after open parenthesis • DVT-6826 Using many Auto-Linked roots results in "Value is too long" error • DVT-6829 Double-click in views to open editor not working after project restore 3.5.27 (7 November 2014) © AMIQ 288 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Enhancements • DVT-6774 Code Formatting: Ability to vertically align to open parenthesis • DVT-6777 Added DUPLICATE_WHEN_CHOICE, MISSING_ENUM_CHOICE, MISSING_OTHERS_CHOICE, OTHERS_CHOICE_USED, REDUNDANT_OTHERS_CHOICE, INCONSISTENT_CHOICES semantic checks • 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-6765 Sometimes dictionary save fails at platform shutdown • DVT-6778 "Conflicting handlers" log entry for each run configuration button • 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-6788 Suppress "First launcher.execute()" messages from ClearCase plugin (patch for distro) • DVT-6789 False UNDECLARED_IDENTIFIER semantic error on array selection using 2 or more indexes 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-6029 Support for URL hyper-links in run configuration filters • DVT-6241 Ability to customize run configurations console title • 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 © AMIQ 289 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Bugfixes • DVT-5768 Wrong signal declaration on second auto-instance • 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 • DVT-6613 Auto-instance should not generate duplicate signals • DVT-6685 False UNDECLARED_IDENTIFIER error on record elements 3.5.25 (23 October 2014) Enhancements • DVT-6431 Specador: Added architecture instances and sub-instances Bugfixes • DVT-6083 Autocomplete shows no valid proposals for "use a." where "a" is a library • DVT-6725 Project Statistics yields all metrics zero when full build option is checked • DVT-6699 Use clause inside a package declaration doesn't work properly • DVT-6701 False semantic error on subprogram instantiation declaration • DVT-6728 After restart with multiple windows opened, rebuild buttons only show on main window 3.5.24 (10 October 2014) Enhancements • DVT-6704 Auto-complete window does not remember the width and height between invocations Bugfixes • DVT-5548 Setting a template as auto-insertable doesn't work • DVT-6700 Waive Problem from Problems View context menu does not escape less than < greater than > and quote " characters • DVT-6702 False UNDECLARED_TYPE semantic error on alias Bugfixes © AMIQ 290 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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) Bugfixes • DVT-5132 No autocomplete and hyperlink on hierarchical access • DVT-6479 No build after CLI createProject on a project that was previously deleted • 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-6657 DVT CLI does not accept DVT as argument of -perspective option • DVT-6667 False UNDECLARED_IDENTIFIER error on generic incomplete types • DVT-6669 Editor preferences for autocomplete not working • DVT-6672 False UNDECLARED_IDENTIFIER error on generic interface object used in a procedure argument • 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 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 Bugfixes • DVT-6633 Trace Connections should be case-insensitive to port names © AMIQ 291 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 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 Bugfixes • DVT-4149 Don't jump to files from other projects when double-click in views • DVT-4835 Wrong autocomplete in empty VHDL source file • DVT-5179 Current scope indication is wrong inside action block inside process • DVT-5323 Build configurations are not correctly parsed when -ncelabargs is encountered • 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 Enhancements • DVT-6609 Preload the IEEE, STD, etc. libraries before incremental compile • DVT-6612 Members sorting in Types/Verification Hierarcy Views is unstable 3.5.19 (21 August 2014) Features • DVT-6592 Ability to browse and search type members in Types View Enhancements • DVT-4050 Add -perspective switch to dvt_cli.sh importProject • DVT-5255 In dvt and ius.irun compatibility modes .pslvhdl extension should be mapped to VHDL Language Syntax • DVT-5418 Ability to specify prefixes that trigger autocomplete • DVT-6051 Hierarchical search in Types View • DVT-6158 Cross-platform Quick Search clear button © AMIQ 292 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6587 Automatically show Types Members view and select first match when search string includes dot Bugfixes • DVT-4736 Eclipse 4: Dynamic Launch Configuration Shortcuts key bindings do not work • 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-6570 Specador: FileNotFoundException (Not a directory) when generating documentation using the new HTML style • DVT-6596 Settings management engine doesn't always work on key bindings with parameters 3.5.18 (1 August 2014) Enhancements • DVT-5715 F2 on identifier should show tooltip • DVT-6211 Highlight javadoc pragmas • DVT-6234 Custom Dialogs: DirectoryFilesListing widget should support listing directories Bugfixes • DVT-6209 Fixed cause for "Job found still running after platform shutdown" message on exit • 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-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 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 © AMIQ 293 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Enhancements • DVT-6113 Ability to "add as -y library", similar with "add as incdir" from Navigator right click menu Bugfixes • DVT-6520 Trace Connections from Editor not working for cross language signals and ports • DVT-6526 Specador: Watermark footer missing in new HTML style 3.5.16 (8 July 2014) Features • DVT-6485 Specador: New HTML look & feel Bugfixes • DVT-4775 Ability to insert single proposals automatically • 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-6481 False 'DEALLOCATE' UNDECLARED_IDENTIFIER semantic error reported for reported for • DVT-6483 False syntactic error when using 'A <- B' (instead of A < -B) • DVT-6484 False UNDECLARED_IDENTIFIER function().member of record semantic error • 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 • DVT-6504 Performance degradation when creating Auto-Linked resources 3.5.14 (24 June 2014) Enhancements • DVT-4411 Trace Connections of internal signals from editor © AMIQ 294 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6372 Unify the task tags and comments collection with the parsing of the file Bugfixes • 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-6353 Specador: Overloaded functions are not visible • DVT-6369 Project is restored twice on project open • DVT-6370 Project restore cannot be interrupted by cancel button • DVT-6376 Read-only indication not working for file with rw:r:r permissions when opened by other user • DVT-6391 Do not restore when using CLI createProject command 3.5.13 (13 June 2014) Enhancements • DVT-5558 Added support for VHDL multiline comment extraction Bugfixes • 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-6338 Exception while searching in Design Hierarchy • 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-6303 Long parsing time for multiple levels of imbricated expressions Bugfixes • DVT-5469 Editing a file during build freezes the GUI • DVT-6288 Specador: FileNotFoundException when documentation is generated with diagrams in same location for multiple projects © AMIQ 295 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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 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-6159 Inconsistency: Outline/Quick Outline/Type Hierarchy filters dialog should have Select/Deselect All buttons • DVT-6260 Design hierarchy doesn't find component mapping in another library • DVT-6069 Open problems reported by DVT with the corresponding DVT editor (for example from Problems View) Bugfixes • DVT-6244 Sometimes Show Whitespace Characters throws an error • 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) Enhancements • DVT-5131 Enhanced VHDL HTML Documentation • 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-6130 False semantic error for function call when class extends its parameter • DVT-6137 Ancestor field not visible if parent class extends its parameter • DVT-6207 Fixed ConcurrentModificationException preventing DVT CLI daemon to start • DVT-6219 False semantic error when referring VHDL-defined types/enums/constants in Verilog © AMIQ 296 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6220 Compare Dialog is not using the editor background color • DVT-6224 Layers View: duplicate layers for functions in package and package body • 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 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-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-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-6198 False semantic DUPLICATE_VARIABLE error reported for procedure generic ports 3.5.8 (30 April 2014) Enhancements • 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-5736 Sometimes when closing a project files remain open and display an error message • DVT-5842 Added Outline View button for configuring element filters © AMIQ 297 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6035 dvt_cli.sh openFile command issues an error if -line is not specified • DVT-6138 Semantic timeout dialog always shows at incremental build when +dvt_file_compile_timeout is set to 0 (disable) • DVT-6185 False semantic UNDECLARED_IDENTIFIER error when using labeled begin/ end inside generate region 3.5.7 (22 April 2014) Enhancements • 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-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-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-6097 Dynamic Launch Configuration Shortcuts should not be visible if they refer to closed projects • DVT-6109 Pre-restore dictionary size too big due to Java serialization inner class issue 3.5.6 (15 April 2014) Enhancements • DVT-5888 Hierarchical search in Compile Order View • DVT-6016 Incremental compilation should not be performed for a build config file opened with a VHDL editor (for example when using -f my_list_of_files.vhd) • DVT-6018 Allow various operations like jump to definition or show hierarchy for the "after cursor" identifier 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 © AMIQ 298 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-6005 Compile Order view in "Show only files with errors" mode should refresh after reapplying compile waivers • DVT-6021 Views are not updated across multiple Workbench Windows when building a project • DVT-6047 External Tools: "Note" filters should use the same color • 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-5967 Ability to control "Disable code folding if file exceeds ### lines" Bugfixes • DVT-5938 Non DVT projects should not show in specific DVT project selection dialogs • 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-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) 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-5930 Missing read-only notification when formatting a read-only or unchecked out file Bugfixes • DVT-5918 Infinite loop sometime when BadLocationException is thrown in tooltip parser • 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 © AMIQ 299 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5928 Wrong vertical align by parenthesis close, bracket close or curly close 3.5.3 (14 March 2014) Enhancements Bugfixes • DVT-5896 Trace Connections View search for port does not bold the matched ports • DVT-5903 Content Filters: Errors and tasks in simlinked files are not filtered • DVT-5905 Content filters do not apply for problems reported on files outside project 3.5.2 (11 March 2014) Enhancements Bugfixes • DVT-5886 Quick Search does not perform prefix matching on CamelCaseStrings 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-5804 Some formatter preferences (like Vertical align > Module port declarations) are not saved under Windows OS • DVT-5808 Performance improvements for Content Filters • 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-5815 Changed Code Factory shortcut conflicting with Copy Full Path shortcut from Shift+Alt+P to Shift+Alt+K • DVT-5819 Wrong semantic errors for duplicate VHDL aliases • DVT-5820 Wrong semantic errors when aliases for subprograms are used © AMIQ 300 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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 • 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 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-2943 Ability to use waivers for build configuration problems • DVT-3791 Ability to capitalize all keywords and types in VHDL • DVT-4049 Auto-Link files included by default.build • DVT-4412 & DVT-5112 Add ports view to Trace Connections View • DVT-5111 Add filter to Trace Connections View tree • DVT-5128 Unify Views context menu actions: Show References, Layers, Hierarchy, Instance Tree, Diagrams © AMIQ 301 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5155 Ability to control memory using dvt.sh arguments • DVT-5265 Unify Checks View • DVT-5277 Ability to disable format for a marked region of code • DVT-5368 Unify Layers View • 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-4795 Predefined project mx_1 does not compile using Questa Simulator • DVT-5025 Trace Connections toolbar icons are not intuitive • DVT-5044 Autoinstance declares signals for all ports • DVT-5068 Show matched/total number of instances in Instance Tree • 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-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-4559 When the Instance Tree gets empty after an incremental build the "work" library is shown • DVT-4614 Cursor jumps on another line after auto-format when using spaces instead of tabs • DVT-5106 Instance Tree and Trace Connections views memory leak • DVT-5130 Code formatting failure when vertical alignment is on • DVT-5210 Types View should reset after a project is cleaned © AMIQ 302 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5380 Invoking Trace Connections in Editor triggers an error when Instance Tree is filtered • DVT-5485 & DVT-5554 Instance Tree loses selection when the editor is changed or when Navigator View is selected • 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-5628 Formatter error when using quote character • 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 3.4.28 (24 February 2014) Enhancements • DVT-3845 Declaring packages with the same name should give a duplicate semantic error Bugfixes • DVT-5724 Do not treat as case-insensitive gcc-like build config directives in ius.irun compatibility mode • 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-5434 Support for predefined 'deallocate' API • DVT-5709 Unrecognized 'ieee.math_real.log2(...)' • DVT-5710 Mismatch of overloaded functions across packages • DVT-5720 Wrong type assignments to variables in functions 3.4.26 (8 January 2014) © AMIQ 303 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Bugfixes • DVT-5680 For VHDL, the -work directive is effective only for the subsequently specified top files 3.4.25 (18 December 2013) Bugfixes • DVT-5659 HTML Documentation: generating documentation throws an error when the option "Exclude files outside project" is set • 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-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-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-5604 False error reported in default.build for -licwait directive Bugfixes • DVT-5582 VHDL configuration specification does not resolve Verilog modules in the same library • DVT-5607 Long-running background activity after Replace All with many occurrences 3.4.22 (15 November 2013) Bugfixes • DVT-5579 "Resource is inaccessible" error in DVT Auto-Linked when updating change sets for SVN © AMIQ 304 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5583 Referencing an entity/package by work.entity/work.package.type triggers false UNDECLARED_IDENTIFIER/ENTITY/TYPE errors 3.4.21 (14 November 2013) Enhancements • DVT-5566 Added dvt_cli.sh -p4 flag for sharing project with Perforce 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 • 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 3.4.17 (29 October 2013) Enhancements • DVT-5468 Build Progress indication with invocation and top file granularity Bugfixes • DVT-5225 Entity 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 • DVT-5470 "Create Testbench" not working for values of entity generics that start with $ © AMIQ 305 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 3.4.16 (11 October 2013) Feature • DVT-3755 Ability to "copy" entity and "paste" as instance, signals or testbench. See Code Factory Enhancements • DVT-5465 Add from Project Template scans for default parameter values in both source and target template.config Bugfixes • 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-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-5449 Add From Template: add option to select a predefined project as a source directory • 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/.vhdl_top_files, .dvt/.vhdl_ignore_files). Enhancements • DVT-4273 & DVT-5410 Added dot in Windows distros Bugfixes • DVT-5415 Duplicated key binding Ctrl+Y for "Redo" in Windows © AMIQ 306 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5422 Instance Tree Ports View broken in VHDL 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-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-5396 Minimize number of disk accesses when writing to dvt_build.log Bugfixes • DVT-4654 ViPlugin state not persisted between sessions • DVT-5384 User interface is not responsive while generating diagrams • DVT-5402 Unwanted ^M control character added when instantiating an entity • DVT-5407 Ability to cancel diagram generation 3.4.12 (11 September 2013) Features • DVT-5349 Support for VHDL 2002 standard • DVT-5350 Support for VHDL AMS 2007 standard Enhancements • DVT-5147 Disable auto-complete triggering (beep) when typing a '.' inside comments Bugfixes • DVT-5366 Keyword "default" not accepted as identifier in VHDL 2008 language syntax 3.4.11 (9 September 2013) Enhancements © AMIQ 307 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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 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-5346 "Project" sub-menu not showing for VHDL projects context menu • DVT-5356 Instance tree is not populated after project restore 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-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-5334 NullPointerException when searching for references on predefined libraries • DVT-5336 VHDL AMS keywords are not ignored in VHDL 2008 compatibility mode • DVT-5338 Switching a project doesn't update the Instance Tree View when no top module is specified • DVT-5339 VHDL 2000 keywords are not ignored in VHDL AMS 99 compatibility mode • 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) Enhancements • DVT-5306 Hide "Project" sub-menu for non DVT project's context menu © AMIQ 308 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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) 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-5296 Sometimes the external tools filter variable '${file}' does not match correctly 3.4.7 (5 August 2013) Enhancements • DVT-5208 Slow hyperlink to module definitions in large designs Bugfixes • DVT-4703 Architecture variable, wrong "not declared" semantic error in instantiated unit • 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-5270 Wrong syntactic errors reported for PSL property declarations in VHDL 2008 • DVT-5284 Disabled EMACS+ plugin auto activation in distros to prevent clipboard problems • DVT-5285 Added range information for vector types © AMIQ 309 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5290 Wrong semantic error for records of a type used in a subtype 3.4.6 (26 July 2013) Enhancements • DVT-4896 Added KIT distro for Linux and MacOS. See dvt_kit_installer.sh 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-5258 Wrong semantic error reported when variable associated type is access or record type • DVT-5259 Wrong semantic error reported when alias an enumerated value • DVT-5260 Wrong semantic error reported for variables defined inside protected body of a type 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 • 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-5211 Set the correct window size for module diagram's legend • DVT-5215 DVT views flicker after building projects that shouldn't affect them © AMIQ 310 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5222 Eclipse Juno - "Cannot get the parent identifier from an undefined context..." exception • DVT-5229 Cross language hyperlinks open the file in wrong editor • DVT-5231 Library logical name WORK denotes the current working library during a given analysis • DVT-5233 Code Templates View: no error message when creating a template with unescaped "$" characters • DVT-5238 Auto-indent after entity instantiation should preserve indentation 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-4542 Match only elements of same kind when folding and performing doubleclick selections • DVT-4748 Use cache when clicking through diagrams • DVT-4754 Add an indication for array of instances in module flow diagrams • 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 • DVT-5114 Module diagram hyperlinks not working when navigating using breadcrumb • DVT-5115 Update the legend of module flows diagrams in order to be VHDL compatible • 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-5175 Update documentation to reflect default VHDL 2008 Language Syntax Bugfixes • DVT-4033 Report an Issue: "save as zip" not closing the wizard • DVT-4768 F3 is not working in the Build Configuration editor © AMIQ 311 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5092 Cancel does not work while generating HTML Documentation with diagrams • DVT-5116 Formatter hangs with certain vertical alignment token sets • 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-5176 VHDL auto-indentation issues in empty lines • DVT-5194 New File Wizard does not show an error message when creating a new file in a virtual folder • 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-5056 Support for encryption directives in VHDL 2008 • DVT-5107 Improved the display of ports and signals in the Trace Connection View • DVT-5108 Added support for NUMERIC_STD_UNSIGNED package Bugfixes • DVT-5038 Types View: after platform restart icons are not visible • DVT-5043 VHDL outline view preferences are not persistent 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 Bugfixes • DVT-4858 Quick filter in Types View should expand the tree and select the first match © AMIQ 312 Rev. 3.5.35 DVT VHDL IDE Chapter 29. 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-5082 Wrong undeclared variable when using VHDL block statements that include port declarations • 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 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-5065 Added trunc(...) procedure to math_real package • DVT-5066 Added predefined types boolean_vector, integer_vector, real_vector, time_vector, file_open_kind, file_open_status • DVT-5067 Added predefined string read procedures sread(...) and string_read(...) • 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 • DVT-5046 Quick Types/Compile Order Views do not close when trying to open an element that is already opened in an editor © AMIQ 313 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-5047 Types View drag and drop entity 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-5063 Path hyperlinks are improperly formatted when file name contains '&' character • DVT-5064 Path hyperlinks are improperly formatted when file name contains whitespace 3.4 (2 June 2013) HIGHLIGHTS • 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 • Fixed some semantic checking limitations • 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 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 • 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-4785 Added VHDL Project Statistics Enhancements • DVT-3107 Unify task tags preferences © AMIQ 314 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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-4724 Unified "Project Statistics" • 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 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-4996 Support for drag and drop VHDL entity auto-instance • DVT-5004 Ability to search for ports in the Instance Tree View • DVT-5018 Added progress reporting for trace port operations Bugfixes • 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 • DVT-5005 Build Config Editor - Some top files include patterns don't get recognized under Windows • DVT-5031 Connect ports: toggle ports view after performing a connect operation duplicates the connect toolbar 3.3.8 (24 May 2013) Enhancements • DVT-5013 Report error if end label does not match the name of the package/entity/ architecture, etc. © AMIQ 315 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Bugfixes • DVT-4833 False undeclared variable error for argument of function call • DVT-4836 False undeclared type std_logic error when syntactic error occurs after use ieee.std_logic_1164.all clause • DVT-5006 Types View: double click on a type does not open it in a new editor (throws a null exception) • DVT-5014 Wrong semantic errors reported when component/entity is instantiated 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 Bugfixes • DVT-4815 Fixed MacOS dot crashes by disabling orthogonal routing option for this platform • DVT-4834 Files under DVT Auto-Linked roots are not removed when added as linked resources • 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-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 © AMIQ 316 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4925 VHDL auto-indentation problems after "port map" • 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 • 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 3.3.5 (22 April 2013) 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-4902 New File Wizard shows an error message when trying to create a new file inside a virtual folder 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 • DVT-4603 Content assist option to combine both search algorithms (CamelCase and prefix match) © AMIQ 317 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4722 Changed Trace in Design to show the reunion of Trace Drive and Trace Load • DVT-4799 Add pointers to Code Template property pages in New File Wizard • DVT-4813 Updated FlexLM libs to v.11.11.1 to add support for "INCLUDE ... PROJECT" option Bugfixes • 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-4864 Generating HTML Documentation does not work if a build job is in progress • DVT-4872 Duplicate error message missing first hyperlink if element declaration line number > 999 3.3.3 (2 April 2013) 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-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-4519 Fixed wrong auto-indentation after "when ... else ... " statement • 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-4729 Copy full path doesn't work for DVT Auto-Linked folders © AMIQ 318 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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-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-4709 Built-in predefined functions 'endfile()' and 'file_close()' not available when using textio package • DVT-4710 Compilation fail sometime when the project contains linked resources 3.3.1 (15 March 2013) Enhancements • DVT-4639 Overwrite closing brackets instead of adding another • DVT-4675 Diagram save as should append the .<ext> to file name specified by the user Bugfixes • DVT-4579 Extend automatic check-out to "Search and Replace" • 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-4688 Increase/Decrease Editor Font Size does not work after modifying the default font from Windows -> Preferences 3.3 (10 March 2013) HIGHLIGHTS • Support for the VHDL-2008 standard • Semantic checking of undeclared signals © AMIQ 319 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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 supp 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-2432 VHDL support for 2008 standard • 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 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-4365 Generate Html Documentation in dvt_html_doc directory • DVT-4386 Jump to matching case statement alternative © AMIQ 320 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4419 Add color preferences page for the *.build configuration file editor • DVT-4433 Serialize Instance Tree top architecture in default.build and automatically populate the view • DVT-4593 Allow sub-second granularity for dvt_debug_utils.sh -thread_dump • DVT-4594 Create an icon for VHDL perspective • 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-4315 Html Documentation Wizard is not in sync with the .xml settings file • DVT-4413 Shift + F4 on non-types should not clear the instance tree but bring it into focus • 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 3.2.20 (6 March 2013) Bugfixes • DVT-4628 Internal builder triggers external builder for files opened from outside project • DVT-4636 Set current build complains about read-only build_config.xml 3.2.19 (5 March 2013) Bugfixes • DVT-4622 Spurious internal debug messages in console 3.2.18 (4 March 2013) Bugfixes © AMIQ 321 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4520 Wrong indent after 2 spaces on a new line • DVT-4599 Set current build fails silently when build_config.xml is read only • 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 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-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 Bugfixes • DVT-4435 Unwanted sticky selection when reloading a file that changed on disk • DVT-4551 Don't auto-insert closing bracket )]} if there are characters after • DVT-4565 Format preference page - NullPointerException when enabling/disabling external program formatting • DVT-4566 Format preference page - broken layout for line wrapping note 3.2.16 (11 February 2013) Features • DVT-1690 Hooks for scripts to perform automatic check-out when editing a read-only file Bugfixes • DVT-4515 A more informative error message if there is a name collision between an imported project and one from the current workspace • DVT-4492 When using split editors, selecting a word in one of them reveals the cursor position in the other 3.2.15 (28 January 2013) Bugfixes • DVT-4491 Run Configurations wizard is very slow when changing settings © AMIQ 322 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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-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 © AMIQ 323 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4459 Dynamic Launch Configuration Shortcuts - show toolbar icon & consider key binding for read-only configurations Bugfixes • 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-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 • 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-3105 Change project (update views) when working with editors on config files © AMIQ 324 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4127 Trace port in gate level designs (netlists) • DVT-4279 Auto-insert pair character when typing '"', '{', '[' or '(' • DVT-4309 Update external builder default command to use ${dvt_current_build_file} • 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-4278 Diagram editor help button doesn't work • DVT-4353 Eclipse Juno - Cancel Custom Dialog triggers an error instead of canceling the action • 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-4416 Auto-indent issue for "if-then-else" nested statements 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-4358 Add quit command to DVT CLI • DVT-4371 Console button for printing build log summary © AMIQ 325 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Bugfixes • DVT-4169 On some OSs, after Quick actions (ex. 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-4377 Editor freezes sometime due to an infinite loop in syntax highlight algorithm • 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-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 • DVT-4389 Fixed Project -> Add to Test files, incdir... for Eclipse Juno 3.2.8 (4 December 2012) REMOVED • DVT-4361 Removed key binding for "Select Project" (Ctrl+Shift+Z) because it was in conflict with the new binding for "Redo" Enhancements • DVT-3576 Multiple hyperlinks from instance to component, entity, architectures Bugfixes • DVT-3984 Added back the key binding Ctrl+Y for "Redo" as it was changed in Eclipse to Ctrl+Shift+Z • 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 © AMIQ 326 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4311 Show file extensions based on project's natures in New File Wizard • 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-4339 Disabled Eclipse Update Site in distributions to speed up the updates (to enable use Preferences -> InstallUpdate -> Available...) Bugfixes • 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 END) • DVT-4330 Spurious AssertionFailedExceptions might occur when switching current build • DVT-4338 Wrong nothing to compile message when multiple invocations in default.build • DVT-4350 Autocomplete issue when function 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-4185 Added Custom Dialog screenshot to documentation • DVT-4216 Right-clik on a folder in DVT Auto-linked and Link Resource in Project Root • 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 • DVT-4292 Added support for "std_logic_misc" predefined package 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 © AMIQ 327 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-4269 Slow editing when block selection mode is used on hundreds lines of code • 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-4221 Ability to Show Instance Tree on right-click on a node in the Instance Tree View Bugfixes • DVT-4146 System variables not expanded for +dvt_compilation_root directive • DVT-4132 Custom dialog example missing from File > New > Example menu • DVT-4200 Un-escaping of strings in default.build does not work 3.2.4 (26 October 2012) Enhancements • DVT-4102 Predefined Projects - uvm-1.1c library and uvm-1.1c_ubus project added Bugfixes • DVT-4126 New Project Wizard - Unable to create a project when the project location is changed • DVT-4201 Fixed deadlock between outline and build process 3.2.3 (17 October 2012) © AMIQ 328 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 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 3.2.2 (12 October 2012) Enhancements • DVT-3618 Instance Tree View: option to copy instance path (right-click menu). • DVT-4045 Store diagrams generated via shortcuts in the dvt_diagrams/ directory Bugfixes • DVT-4079 Code templates not visible when creating them from the Code Templates View 3.2.1 (11 October 2012) Enhancements • DVT-4061 Syntax highlight for user defined types • DVT-4062 Show busy indicator when generating large diagrams • 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. © AMIQ 329 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • Module Diagrams • Trace Port Connections • Connect Instances Across the Design Hierarchy 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. • 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-3085 Autocomplete in *.build and command (*.f) files in general • DVT-3891 Mixed Language Support: Modify "add to top files" to "add to *.build" • DVT-3937 Move language specific workspace preferences under the DVT section • DVT-3938 Move language specific project properties under the DVT section • 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-3349 Refactor connect ports for VHDL • DVT-3577 Mixed Language Support: Module diagrams for mixed Verilog and VHDL projects. See Module Diagrams. © AMIQ 330 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2846 Mixed Language Support: Unify .*_top_files under default.build. See Build Configurations. • 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 • DVT-3089 Propagate system variables to external tools integration. See External Tools Integration. • DVT-3252 Improved file navigation for the files exceeding 10K lines • DVT-3359 Trigger diagrams from the Types View, Instance Tree View and Editor context menu. See Module Diagrams. • DVT-3491 Issue warning when dvt_cli doesn't get both arguments for -map. See Command Line Interface. • DVT-3578 Add support for +dvt_skip_compile+ directive in default.build. See Build Configurations. • DVT-3751 Add a -perspective switch to the dvt_cli.sh createProject command. See Command Line Interface. • DVT-3790 Include diagrams in HTML Documentation. See Export HTML Documentation. • DVT-3796 Add external tools variable containing the path to current build file. See External Tools Integration. • DVT-3810 Added vcs.vhdlan Compatibility Mode in build configurations. See See Build Configurations. • 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 © AMIQ 331 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-3892 Update predefined projects. See Predefined Projects • DVT-3908 dvt_plugin_installer.sh for customizing the Eclipse installation works with any update site • DVT-3923 Signal error when multiple -work flags are provided for the same invocation, and only consider the first one. See Build Configurations. • 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-4003 Build configuration directives for controlling +dvt_build_log_to_console, +dvt_build_log_to_file, +dvt_build_log_file build • DVT-4006 Add support for +dvt_incremental_compile_max_lines+ default.build. See All Build Directives. directive log: in • DVT-4007 Add support for +dvt_auto_link+ directive 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. Bugfixes • DVT-2296 Content assist for protected types • DVT-2574 Matching generate - end for "for ... generate " does not work • DVT-3042 Syntax Page - Restore defaults does not work • DVT-3706 Don't allow creating a no-nature project with dvt_cli.sh. See Command Line Interface. • DVT-3778 dvt_cli.sh should detect locked workspaces and die quickly and gracefully. See Command Line Interface 3.1.16 (5 October 2012) Bugfixes • DVT-4026 Optimize workingset creation via dvt_cli.sh createProject / importProject • DVT-4031 DVT Auto-linked update on rebuild doesn't work when linked resources are changed © AMIQ 332 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 3.1.15 (3 October 2012) Enhancements • DVT-4022 Support escaped quotes in build configuration files Bugfixes • DVT-3989 "reject" should not be treated as a keyword in VHDL-1987 3.1.14 (27 September 2012) 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) Enhancements 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 Bugfixes • DVT-3874 Hyperlink using F3 not working from VHDL to Verilog file in mixed projects 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) Bugfixes • DVT-3957 Updated Clearcase plugin to latest to fix a compare from history bug • DVT-3956 When opening an auto-linked file from a run configuration console link it is opened as outside project 3.1.11 (7 September 2012) Enhancements © AMIQ 333 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-3701 Directives for controlling file extension to Language Syntax mapping • DVT-3933 Keyword set selection for VHDL compilation (87, 93, 2000, AMS 1999) 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-3932 Updated Clearcase Plugin to fix diff view problem 3.1.10 (1 September 2012) Enhancements • 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) Bugfixes • DVT-2668 Autoindent issue when inserting tab • DVT-3137 Added exit to launch configurations interactive shell example to prevent throwing DVT in background • 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 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-3848 Errors/warnings on file specified through multiple symlinks are reported as out of the project • DVT-3849 File specified through multiple symlinks is incrementaly recompiled as out of the project after platform restart © AMIQ 334 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-3856 Restore defaults on Internal builder page not consistent with the defaults at project creation time 3.1.8 (7 August 2012) Enhancements • DVT-2898 Updated ViPlugin build • DVT-3841 Updated all plugins in distribution 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 incrementaly recompiled as out of the project • DVT-3842 Fixed argument passing in deprecated scripts 3.1.7 (2 August 2012) Bugfixes • DVT-3764 Obsolete syntax errors might re-appear on reapply waivers • DVT-3802 VHDL Syntax Problems are reported twice in the DVT Build Console • 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-3821 Move Resource Filters UI to DVT Section in project properties 3.1.6 (24 July 2012) Bugfixes • DVT-3768 Resource Filters - recursive symlinks not visible in UI 3.1.5 (11 July 2012) Enhancements • DVT-3747 Add support for custom location on toolbar for Run Configuration buttons 3.1.4 (10 July 2012) © AMIQ 335 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Enhancements • DVT-3660 Undeclared component semantic problem default severity changed to warning (consistent with Verilog undeclared module) • DVT-3490 Ability to avoid full build when importing a project, by restoring from a saved snapshot • DVT-3725 Ability to specify custom per-project location for the DVT database with +dvt_db_location flag in default.build Bugfixes • DVT-3716 No incremental compilation on non-default extensions even if file associations and content types are properly set • DVT-3731 Waivers are not applied at project restore 3.1.3 (2 July 2012) Enhancements • DVT-3574 Show only files with errors in Compile Order View • DVT-3588 Added progress dialog for Directory Files Listing widget (Custom Dialogs) • DVT-3634 Added server name and license count on DVT License Info Page Bugfixes • DVT-2296 Content assist proposals for protected types • DVT-2574 Matching generate - end for "for ... generate " does not work • DVT-2668 Autoindent issue when inserting a tab • 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 • 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-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) © AMIQ 336 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Enhancements • DVT-2907 Document Compile Waivers • DVT-3543 Warn deprecated directive usage in build config files • DVT-3554 DVT sanity check - check for available space in .eclipse location instead of "home" • DVT-3580 Select top architecture in instance tree takes too much time when thousands of elements • DVT-3583 Instance Tree View - ability to dump to file the list of autodetected top architectures Bugfixes • DVT-3571 Under FC15 OS the -s option of dvt_cli.sh does not suppress all messages • 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 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 Bugfixes • DVT-3534 Instance tree is not populated when an instance of an unknown entity or component is found • DVT-3547 dvt_cli.sh excludes are not taken into account at the initial refresh • DVT-3550 Switching from .*_top_files to default.build and back does not work (nothing is compiled) 3.1 (1 June 2012) Features © AMIQ 337 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2363 Code Templates View • DVT-2450 Create new toolbar button & keyboard shortcut from run configuration (more details here) • DVT-3361 Resource filters wizard (more details here) • DVT-3362 Create linked resources wizard • DVT-3436 Added dvt_updater.sh script for install/uninstall/update operations Enhancements • DVT-606 Configurable source formatter • DVT-1884 Dedicated predefined external builders for OVM/UVM/VMM • DVT-2965 Project config files - multiple selection in dialog with proposals for wildcards matching multiple paths • DVT-2980 Integration with Altera Quartus II • DVT-3022 Automatic instantiation with configurable port order • DVT-3041 Refactoring Rename- user must be forced to review the changes when potential matches • DVT-3165 Add support for +dvt_skip_ext+.ext • DVT-3221 Logging and debug functionality for Linux/Unix • DVT-3254 Set "Always launch the previously launched application" as default in distro • DVT-3259 Suppress dvt.bat terminal in Windows • DVT-3280 Autoinstance preserving ports order and comments fails for multiple single line comments • DVT-3292 Formatting preference for line wrapping parameters : "Leave as is" • DVT-3313 Ability to use "Open with" dvt.bat in Windows • DVT-3340 Semantic checking of process label names • DVT-3341 Select the entire block when double-click on keyword 'begin' • 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-3451 Some errors might not be reported in default.build when multiple project natures are activated © AMIQ 338 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-3476 Sync DVT CLI usage in script / application / user guide • DVT-3469 Vertical alignment using comma as a token Bugfixes • DVT-2571 No folding on entity keyword and no matching entity keyword with its end • DVT-3062 Waive should create a single logical AND match clause using path and message • DVT-3284 The entity "nbsp" was referenced, but not declared - sn 11 / sn_eref.xml • DVT-3289 Formatting issue for attributes of procedures and functions • DVT-3318 Formatting issue for parameters with vertical alignment • DVT-3339 Formatting error with case-when statements • DVT-3341 Select the entire block when double-click on keyword 'begin' • DVT-3342 Wrong indention when you change the last line in process/procedure • DVT-3374 DVT Auto-linked update on rebuild doesn't work when linked resources are changed • DVT-3399 Match begin - end does not work for "entity ... end entity" • DVT-3467 Formatting preference for vertical alignment tokens is greyed out • DVT-3499 Formatting region should keep starting line indent as reference • DVT-3509 "Stop Current Rebuild Job" doesn't work when "Build Automatically" is enabled • DVT-3749 Unexpected switches passed to dvt_cli.sh are treated as arguments of the last known switch 3.0.10 (23 May 2012) Bugfixes • DVT-3322 Fixed "See all available licenses" bug when license source contains multiple servers • DVT-3459 Fixed a race condition in the license client 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 © AMIQ 339 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-3240 Memory cleanup issues on successive project rebuilds • DVT-3392 Refresh "dvt_build.log" file when build is done Bugfixes • DVT-3249 External Builder error decorations are not updated on incremental build • DVT-3365 "What's New" and "Report an Issue" buttons are visible in other perspectives • DVT-3366 Project Templates uppercase - lowercase conversion bug 3.0.7.9 (29 April 2012) Enhancements Bugfixes • DVT-3315 When changing the top files sometime the auto-linked folder is not properly updated on the first build 3.0.7.8 (24 April 2012) Enhancements • DVT-3022 Automatic instantiation with configurable port order • DVT-3112 Ignore backslashes in command files • DVT-3121 Command files: support -flag "several arguments here treated as one" or -flag 'some args' Bugfixes • DVT-3280 Autoinstance preserving ports order and comments fails for multiple single line comments • DVT-3289 Formatting issue for attributes of procedures and functions • DVT-3291 Non-ascii characters trigger errors in argument files (.*_top_files etc.) • 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 • DVT-3311 Syntax error markers are not displayed at full build after reaching the marker limits 3.0.7.7 (13 April 2012) Enhancements • DVT-2586 Support for mixed languages in DVT_CLI © AMIQ 340 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2986 Add -eclipsespace flag for dvt_cli.sh, alias -eclipse_area to -eclipsespace • DVT-3113 Add support for -F for dvt_cli.sh • DVT-3168 Add to default list of known extensions: .a, .o, .cc • 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 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-3213 Function/procedure hyperlink and hover not working 3.0.7.6 (30 March 2012) Bugfixes • DVT-2015 Functions with the same name but different signature are not shown in content assist • 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-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 © AMIQ 341 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-3171 Copy full path on linked resource/virtual folder does not work 3.0.7.5 (16 March 2012) Enhancements • 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-3073 Added JDT (Java Development Tools) plugin to distros Bugfixes • DVT-3067 When adding new function arguments or entity ports the autocomplete shows them in the wrong order after incremental build • 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 • 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-3036 What's new in DVT for VHDL missing 3.0.7.2 (1 March 2012) © AMIQ 342 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 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-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-2969 Splash and license settings validation sometimes start without using DVT functionality • DVT-3011 Wildcards in top files don't work under Windows • DVT-3014 Run configuration filters - ${file} var doesn't recognize Windows paths • DVT-3026 Updated ClearCase plugin to fix the NullPointerException 3.0.7 (13 February 2012) Features • DVT-48 Hyperlinks in argument files (.vhdl_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-2419 Ability to use system variables in waivers • DVT-2453 Option to disable incremental build for large files • DVT-2487 Sort problems in problems view by the creation time/reporting order © AMIQ 343 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • 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-2784 Autocomplete should only match from the beginning of word or right after an underscore • DVT-2828 Make automatic component binding if there is an entity with the same name as the component • DVT-2848 Allow waivers with no name • DVT-2856 Option to copy full path in Navigator • DVT-2868 Rebuild triggers should be ignored if already building the project • DVT-2870 Quick Types view cluttered when many libraries - hard to locate relevant data type when filtering • DVT-2889 Jump to assignment instead of declaration • DVT-2921 Unexpected token errors when using 'procedural' as identifier • 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 architecture - if more than 10 architectures open a filtered selection list • DVT-2939 Fail to create auto-linked files for network mapped files in Windows • 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 Bugfixes • DVT-2576 When creating a new file point out that the empty template can be customized just like any other © AMIQ 344 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2718 New VHDL file is automatically populated with entity template if not saved before closing • DVT-2742 Instance tree misc bug fixes • DVT-2748 Formatting the source sometimes makes the cursor jump to another position • DVT-2869 NullPointerException when Instance Tree show top entities is pressed • DVT-2871 Instance tree history items should show "architecture OF entity" instead of "architecture" only (confusing, as all the architectures may have the same name) • DVT-2913 Fixed deadlock on workspace when a new project is created • DVT-2923 Updating markers for 25K files with problems hangs the UI • DVT-2926 Hyperlinks in project configuration files should open dialog with proposals for wildcards matching multiple paths • DVT-2927 On mixed Verilog/VHDL loading the VHDL identifier index fails • 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-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-2801 F3 jumps to component instead of entity declaration on instantiated components 3.0.6.4 (10 January 2012) Enhancements • DVT-2606 Multiple hyperlink on component/instance (jump to entity declaration) • DVT-2828 Automatic component binding if there is an entity with the same name as the component © AMIQ 345 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Bugfixes • DVT-2844 Too many open files exception when loading 1000s of empty files 3.0.6.3 (27 December 2011) Enhancements • DVT-2757 Added support for -file in .vhdl_top_files Bugfixes • DVT-2776 Autolinked resources are no longer removed if autolink flag is unset • DVT-2794 Deadlock when refreshing during a refactoring operation • DVT-2798 NullPointerException when warnings reported outside project 3.0.6.2 () Enhancements • DVT-2606 Multiple hyperlink on component - jump to entity declaration • DVT-2778 Added a black DVT Theme • DVT-2793 DVT_PREDEFINED_PROJECTS_TARGET predefined projects environment variable for Bugfixes • DVT-2756 False undeclared component error • DVT-2777 Fixed DVT Theme selection dialog filter 3.0.6.1 (12 December 2011) Enhancements • DVT-2688 Move reference search to the new indexer mechanism • 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 • DVT-2741 "Show heap status" activated by default in prepacked distros Bugfixes • DVT-2752 Wrong error reported when using 'break' as identifier • DVT-2762 External builder exception - Variable references empty selection © AMIQ 346 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2765 False undeclared component error (case sensitivity issue for components) • DVT-2766 Instance tree doesn't work when block configuration is declared under a component configuration 3.0.6 (1 December 2011) Features • DVT-642 add .vhdl_top_files support for multiple "instructions" on a single line like +vhdl_libmap+libname +disable_ext file.vhd • DVT-1179 Support for wildcards like *.vhd, *.vhdl etc. in top files • DVT-2455 CamelCase-like autocomplete Enhancements • DVT-1350 Do not allow tabs in the editor (copy/paste, using templates etc.) • DVT-2179 Perform out of sync check before search and ask for refresh • DVT-2330 Hyperlinks for progress log in Internal Builder Console • DVT-2338 A drop-down list to select from top architectures in the Instance Tree View • 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-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-2565 Optimize algorithm for solving workspace resources • 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-2640 Show blocks in instance tree Bugfixes • DVT-2307 Console hyperlinks get opened with wrong editor • DVT-2404 Removed the project context menu -> Source -> Format option that breaks .project • DVT-2436 Html Documentation wizard shows predefined libraries : ieee, std, __vhdl_std © AMIQ 347 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2481 Multiline templates are not indented • DVT-2483 Hyperlink doesn't work on ports in architecture • DVT-2361 VHDL semantic checking is not enabled until an incremental build is triggered • DVT-2502 Tool bar section title for "What's new" & "Report an issue" buttons • DVT-2361 VHDL semantic checking is not enabled until an incremental build is triggered • DVT-2537 Exception thrown when canceling a DVT Custom Dialog started by an external builder • DVT-2563 Report reapply waivers time in DVT Build Console • DVT-2620 Rename 'include/import tree' & 'load order' to 'compile order' • DVT-2604 Hierarchy is not shown when components are defined inside packages • DVT-2635 Search by type (Ctrl+H) for components shows entities • DVT-2684 Changing the location of a file outside project requires 2 builds to correctly autolink the file • DVT-2700 Missing scroll bar on predefined projects list 3.0.5.5 (21 November 2011) Bugfixes • DVT-2591 Obsolete DVT Auto-Linked resources are not cleaned up • DVT-2593 Files with unknown extensions always ignored in .vhdl_top_files • DVT-2595 Wrong error reported on alias declaration • DVT-2596 Wrong unexpected token 'limit' when using it as identifier • DVT-2597 Wrong error reported on bitwise operations • DVT-2627 Wrong UNDECLARED_COMPONENT error when the component's name contains full path: 'library_name.package_name.component_name' 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-2573 Ability to specify how long DVT CLI should wait for DVT to start (-timeout flag) © AMIQ 348 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com Bugfixes • DVT-2361 VHDL semantic checking is not enabled until an incremental build is triggered • DVT-2431 VHDL References show multiple potential matches • DVT-2483 Hyperlink doesn't work on ports in architecture • 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-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-2425 NullPointerException when warnings reported in files outside project • DVT-2435 VHDL creating file from template (entity - architecture) generates errors 3.0.5.1 (16 September 2011) Bugfixes • DVT-2397 VHDL Syntax Coloring : changing Strings color triggers Exception 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 © AMIQ 349 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2252 Add semantic error for instantiation of undeclared components • DVT-2253 Add semantic error for declaration of architectures and configurations of unknown entities Enhancements • DVT-1182 System variables for External Builders • DVT-2177 Hyperlink for jumping to the "associated type" of an element • DVT-2242 Support for use clause with list of clauses • DVT-2248 Support for instance of component with composed named such as library.component • DVT-2279 Parser support for protected types • 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-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 ("\" -> "/") • DVT-2349 VHDL syntax error is signaled in comment by unrecognized unicode characters 3.0.4.4 (9 September 2011) Bugfixes • DVT-2349 VHDL syntax error is signaled in comment by unrecognized unicode characters • DVT-2378 Occasional freezes on incremental build due to a deadlock in plugin startup 3.0.4.3 (29 August 2011) Bugfixes • DVT-2346 VHDL 'reference' keyword generates syntax error when used as port name • DVT-2347 VHDL -f option should not compile files with extensions other than '.vhd' and '.vhdl' • DVT-2348 VHDL top files / f files does not ignore directives it does not recognize © AMIQ 350 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com 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-2254 Search by type not working • 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 Features • DVT-1134 Option to periodically save dirty editors Enhancements • DVT-81 Refactoring potential matches - quick filter/(un)check all • DVT-1594 Add flag "Show builder progress log in console" in VHDL • DVT-1945 New file wizard - create from template option • DVT-1970 incremental build should not remove and re-create all named elements • DVT-2048 Run Configurations dialog/Quick Run working set filtering options • DVT-2104 Use clause should be restricted to the scope where it is placed or the design unit after it • DVT-2105 Enable tool-tips when 'ALT' key is pressed • DVT-2112 Add enumerated types to autocomplete, hyperlinks and references • DVT-2148 f-files support for VHDL • DVT-2150 VHDL templates preview - syntax highlight added • DVT-2152 Quick Filter code templates by name in preference pages • DVT-2153 Add support for record types • DVT-2158 Add content assist support for record types © AMIQ 351 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2159 Show workspace location in title bar • DVT-2172 Add loop index (for loop statements and generates) to autocomplete, hover, hyperlink, references • DVT-2176 Add sequential statement labels (for, case, if, while instructions) to hover, hyperlinks, references • DVT-2178 When rename refactoring has potential matches - warn in the first page of the wizard • DVT-2201 Alt+shift+arrow selects word at cursor • DVT-2231 Add HINT predefined task tag • DVT-2235 Show builder errors in console with hyperlink to source file • DVT-2220 Content assist support for assertion statement with severity clause • DVT-2236 Content assist, hover and references support for predefined attributes • DVT-2237 Content assist, hover and references support for accessing entities from within user-defined libraries Bugfixes • DVT-2096 Content assist support after dot • DVT-2097 Instances on Content assist offer all visible ports not just local ones • DVT-2110 Adding multiple files to ignore list only adds the first file in the list • DVT-2116 Attribute double click does not mark all occurrences • DVT-2162 Help > DVT Quick Help broken links fixed • DVT-2182 Register architectures and configurations when entity name is a selected name • DVT-2204 VHDL 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 • DVT-2221 Wrong hover for keywords "use", "report", "severity" 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-2148 f-files support for VHDL Bugfixes © AMIQ 352 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-2185 A tooltip with long non-whitespace sequences (1000s of characters) freezes the GUI • DVT-2194 Incremental and full build fails 3.0.3.2 (14 July 2011) Bugfixes • DVT-2145 Avoid using resources in non-accessible state • 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-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-1978 Added predefined libraries (IEEE, STD, TEXTIO) • DVT-2051 Parse and auto-link files outside project directory Bugfixes • DVT-2050 Types declared in entities are missing from Types view • DVT-2055 Error is signaled for "file..is in" or "file..is out" • DVT-2060 Folding does not work properly after attribute...of...function is.. • DVT-2061 Folding does not work for record .. is .. end record; • DVT-2097 Instances on content assist contain all visible ports not just local ones 3.0.2 (17 June 2011) Enhancements • DVT-212 Added Eclipse Marketplace Client to distribution © AMIQ 353 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-1657 Quick Types & Import Views - independent of editor • DVT-1907 VHDL parser performance improvements on expression evaluation • DVT-1919 Added Component auto instantiation • DVT-1933 Documentation - contexts.xml updated • DVT-1938 Added source formatting • DVT-1944 VHDL - What's new & report an issue • DVT-1952 Added hyperlink and tooltip for types • DVT-1959 External tools console links jump to resources in current working set • DVT-1960 Added folding for architecture, function, procedure, loop, component, generate, process • DVT-1962 Added folding for port map, generic map • DVT-1963 Added custom region folding using --{{{ }}}-• DVT-1967 Improvements on hyperlink, tooltip, outline for variables, files, constants • DVT-1995 +vhdl_libmap+ directive when multiple libraries are used • DVT-1998 Run Configurations should show quoted arguments when printing the executed command • DVT-2010 Predefined project wizard - option to override target directory • DVT-2016 Instance Tree - multiple enhancements • DVT-2020 Added Content Assist for default proposals and instances proposals • 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 • DVT-2024 Common VHDL constructs added as template proposals • DVT-2025 Context sensitive VHDL templates Bugfixes • DVT-1953 Escaped identifiers \id\ not recognized by the VHDL parser • DVT-1969 Issue when searching by type © AMIQ 354 Rev. 3.5.35 DVT VHDL IDE Chapter 29. What is New? www.dvteclipse.com • DVT-1975 Create new VHDL file wizard overwrites existing file with same name • DVT-1993 DVT CLI importProject takes project name from project folder instead of .project • DVT-1996 Quick outline view duplicates the components of a file added twice in top files • DVT-2005 Outline updated on full build 3.0.1.1 (3 June 2011) Enhancements • DVT-1951 Added hyperlink and tooltip on architectures • DVT-1918 Added quick include tree view, include tree view • DVT-1934 Changed procedure icon to differ from function icon Bugfixes • DVT-1874 Templates - Move these are global templates at the start of the dialog • DVT-1928 Wrong matching begin-end marks occurrences • DVT-1929 Missing grayed icon for files outside project scope • DVT-1935 Wrong linked VHDL file icon • DVT-1936 Fixed tooltip for vhdl generics 3.0.1 (27 May 2011) Features • DVT-1901 DVT Predefined Projects Enhancements • DVT-1581 Name convention checking for method arguments Bugfixes • DVT-1893 Refactoring does not update outline elements in Outline View • DVT-1926 Duplicated entries in Outline/Types View after incremental build © AMIQ 355 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 30. 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 356 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 31. Legal Notices Copyright © 2005-2015 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 357 Rev. 3.5.35 DVT VHDL IDE www.dvteclipse.com Chapter 32. 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 358 Rev. 3.5.35
© Copyright 2024